commit 3ebe98842729659a562c43de70431bb773381d3c
Author: Miltiadis Vasilakis <mvasilak@gmail.com>
Date:   Sun Feb 17 14:30:52 2013 +0200

    Add user catalog request

diff --git a/asi-http-request-with-pithos/Classes/Pithos/ASIPithos.h b/asi-http-request-with-pithos/Classes/Pithos/ASIPithos.h
index 906dd02..e7371f3 100644
--- a/asi-http-request-with-pithos/Classes/Pithos/ASIPithos.h
+++ b/asi-http-request-with-pithos/Classes/Pithos/ASIPithos.h
@@ -46,6 +46,8 @@
     NSString *authToken;
     
     NSString *publicURLPrefix;
+    
+    NSString *userCatalogURL;
 }
 
 @property (strong) NSString *authURL;
@@ -58,6 +60,8 @@
 
 @property (strong) NSString *publicURLPrefix;
 
+@property (strong) NSString *userCatalogURL;
+
 + (id)pithos;
 
 - (NSString *)storageURLWithAuthUser:(NSString *)anAuthUser;
diff --git a/asi-http-request-with-pithos/Classes/Pithos/ASIPithos.m b/asi-http-request-with-pithos/Classes/Pithos/ASIPithos.m
index 51b7387..3ccb3fb 100644
--- a/asi-http-request-with-pithos/Classes/Pithos/ASIPithos.m
+++ b/asi-http-request-with-pithos/Classes/Pithos/ASIPithos.m
@@ -38,7 +38,7 @@
 #import "ASIPithosRequest.h"
 
 @implementation ASIPithos
-@synthesize authURL, authUser, authKey, storageURLPrefix, storageURL, authToken, publicURLPrefix;
+@synthesize authURL, authUser, authKey, storageURLPrefix, storageURL, authToken, publicURLPrefix, userCatalogURL;
 
 #pragma mark - Object Lifecycle
 
@@ -48,8 +48,8 @@
 }
 
 - (NSString *)description {
-    return [NSString stringWithFormat:@"authURL: %@, authUser: %@, authKey: %@, storageURLPrefix: %@, storageURL: %@, authToken: %@, publicURLPrefix: %@", 
-            authURL, authUser, authKey, storageURLPrefix, storageURL, authToken, publicURLPrefix];
+    return [NSString stringWithFormat:@"authURL: %@, authUser: %@, authKey: %@, storageURLPrefix: %@, storageURL: %@, authToken: %@, publicURLPrefix: %@, userCatalogURL: %@",
+            authURL, authUser, authKey, storageURLPrefix, storageURL, authToken, publicURLPrefix, userCatalogURL];
 }
 
 
diff --git a/asi-http-request-with-pithos/Classes/Pithos/ASIPithosRequest.h b/asi-http-request-with-pithos/Classes/Pithos/ASIPithosRequest.h
index 0a30e0d..8284f3e 100644
--- a/asi-http-request-with-pithos/Classes/Pithos/ASIPithosRequest.h
+++ b/asi-http-request-with-pithos/Classes/Pithos/ASIPithosRequest.h
@@ -61,6 +61,13 @@
 + (id)authenticationRequestWithPithos:(ASIPithos *)pithos;
 + (ASIPithos *)authenticateWithPithos:(ASIPithos *)pithos error:(NSError **)error;
 
+// POST userCatalogURL
++ (id)userCatalogRequestWithPithos:(ASIPithos *)pithos displaynames:(NSArray *)displaynames UUIDs:(NSArray *)UUIDs;
+
+- (NSDictionary *)catalogs;
+- (NSDictionary *)displaynameCatalog;
+- (NSDictionary *)UUIDCatalog;
+
 // GET authURL
 + (id)listSharingAccountsRequestWithPithos:(ASIPithos *)pithos;
 // GET authURL?[limit=limit]&[marker=marker]
diff --git a/asi-http-request-with-pithos/Classes/Pithos/ASIPithosRequest.m b/asi-http-request-with-pithos/Classes/Pithos/ASIPithosRequest.m
index b56ebf3..06c2f72 100644
--- a/asi-http-request-with-pithos/Classes/Pithos/ASIPithosRequest.m
+++ b/asi-http-request-with-pithos/Classes/Pithos/ASIPithosRequest.m
@@ -38,6 +38,7 @@
 #import "ASIPithosRequest.h"
 #import "ASIPithos.h"
 #import "ASIPithosAccount.h"
+#import "SBJson.h"
 
 @implementation ASIPithosRequest
 @synthesize currentElement, currentContent, currentAccount;
@@ -100,6 +101,53 @@
 }
 
 #pragma mark -
+#pragma mark User Catalog
+
+// POST userCatalogURL
++ (id)userCatalogRequestWithPithos:(ASIPithos *)pithos displaynames:(NSArray *)displaynames UUIDs:(NSArray *)UUIDs {
+    NSString *urlString = [NSString stringWithString:pithos.userCatalogURL];
+    
+    ASIPithosRequest *request = [self requestWithURL:[NSURL URLWithString:urlString]];
+	[request setRequestMethod:@"POST"];
+    [request addRequestHeader:@"X-Auth-Token" value:pithos.authToken];
+    [request addRequestHeader:@"Content-Type" value:@"application/json"];
+    
+    NSMutableString *dataString = [NSMutableString stringWithString:@"{\"displaynames\":["];
+    if (displaynames) {
+        for (NSUInteger index = 0 ; index < displaynames.count ; index++) {
+            [dataString appendFormat:@"\"%@\"%@",
+             [[[displaynames objectAtIndex:index] stringByReplacingOccurrencesOfString:@"\\" withString:@"\\\\"]
+              stringByReplacingOccurrencesOfString:@"\"" withString:@"\\\""],
+             ((index == displaynames.count - 1) ? @"" : @",")];
+        }
+    }
+    [dataString appendFormat:@"],\"uuids\":["];
+    if (UUIDs) {
+        for (NSUInteger index = 0 ; index < UUIDs.count ; index++) {
+            [dataString appendFormat:@"\"%@\"%@", [UUIDs objectAtIndex:index], ((index == UUIDs.count - 1) ? @"" : @",")];
+        }
+    }
+    [dataString appendFormat:@"]}"];
+    [request appendPostData:[dataString dataUsingEncoding:NSUTF8StringEncoding]];
+    
+	return request;
+}
+
+- (NSDictionary *)catalogs {
+    SBJsonParser *parser = [[SBJsonParser alloc] init];
+    NSDictionary *catalogs = [parser objectWithString:[self responseString]];
+    return catalogs;
+}
+
+- (NSDictionary *)displaynameCatalog {
+    return [[self catalogs] objectForKey:@"displayname_catalog"];
+}
+
+- (NSDictionary *)UUIDCatalog {
+    return [[self catalogs] objectForKey:@"uuid_catalog"];
+}
+
+#pragma mark -
 #pragma mark GET
 
 // GET authURL
diff --git a/json-framework-3.2.0/.gitattributes b/json-framework-3.2.0/.gitattributes
new file mode 100644
index 0000000..af4951e
--- /dev/null
+++ b/json-framework-3.2.0/.gitattributes
@@ -0,0 +1,5 @@
+# Set default behaviour, in case users don't have core.autocrlf set.
+* text=auto
+
+# Ignore whitespace in these files
+Tests/Stream/* binary
diff --git a/json-framework-3.2.0/.gitignore b/json-framework-3.2.0/.gitignore
new file mode 100644
index 0000000..c4b2db6
--- /dev/null
+++ b/json-framework-3.2.0/.gitignore
@@ -0,0 +1,18 @@
+# Xcode
+build/
+*.pbxuser
+!default.pbxuser
+*.mode1v3
+!default.mode1v3
+*.mode2v3
+!default.mode2v3
+*.perspectivev3
+!default.perspectivev3
+*.xcworkspace
+!default.xcworkspace
+xcuserdata/
+profile
+*.moved-aside
+DerivedData
+.idea/
+.DS_Store
\ No newline at end of file
diff --git a/json-framework-3.2.0/CREDITS.md b/json-framework-3.2.0/CREDITS.md
new file mode 100644
index 0000000..7d38af7
--- /dev/null
+++ b/json-framework-3.2.0/CREDITS.md
@@ -0,0 +1,54 @@
+Credits
+=======
+
+My thanks to the following people and organisations, without whom this
+library wouldn't be what it is today. (Please let me know if I've
+mistakenly omitted anyone.)
+
+* Alen Zhou
+* Andrew Hannon
+* Andrew W. Donoho
+* Andy Brett
+* Andy Warwick
+* Antoine Perdaens
+* Ben Rimmington
+* Blake Seely
+* Cary Yang
+* David Keegan
+* Gabriel Handford
+* George MacKerron
+* Greg Bolsinga
+* Hager Hu
+* Hiroshi Saito
+* Jakub Jelonek
+* Jens Alfke
+* Joerg Schwieder
+* John Engelhart
+* Konstantin Welke
+* Lloyd Hilaiel
+* Marc Lehmann
+* Michael Papp
+* Mike Monaco
+* Ole André Vadla Ravnås
+* Phill Baker
+* Robert McNally
+* Robin Lu
+* Ryan Smale
+* Sam Dean
+* Sam Soffes
+* Sean Scanlon
+* Stig Brautaset
+* The Adium Crew
+* Tobias Höhmann
+* Tod Karpinski
+* Ullrich Schäfer
+* Wolfgang Sourdeau
+* aethereal
+* boredzo
+* dewvinci
+* dmaclach
+* jinksys
+* jonkean
+* lukef
+* renerattur
+* upsuper
diff --git a/json-framework-3.2.0/Classes/NSObject+SBJson.h b/json-framework-3.2.0/Classes/NSObject+SBJson.h
new file mode 100644
index 0000000..9a60b59
--- /dev/null
+++ b/json-framework-3.2.0/Classes/NSObject+SBJson.h
@@ -0,0 +1,82 @@
+/*
+ Copyright (C) 2009 Stig Brautaset. All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions are met:
+
+ * Redistributions of source code must retain the above copyright notice, this
+   list of conditions and the following disclaimer.
+
+ * Redistributions in binary form must reproduce the above copyright notice,
+   this list of conditions and the following disclaimer in the documentation
+   and/or other materials provided with the distribution.
+
+ * Neither the name of the author nor the names of its contributors may be used
+   to endorse or promote products derived from this software without specific
+   prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+ FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+ SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+ CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+ OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#import <Foundation/Foundation.h>
+
+#pragma mark JSON Writing
+
+/// Adds JSON generation to NSObject
+@interface NSObject (NSObject_SBJsonWriting)
+
+/**
+ Encodes the receiver into a JSON string
+
+ Although defined as a category on NSObject it is only defined for NSArray and NSDictionary.
+
+ @return the receiver encoded in JSON, or nil on error.
+
+ @warning Deprecated in Version 3.2; will be removed in 4.0
+
+ */
+- (NSString *)JSONRepresentation __attribute__ ((deprecated));
+
+@end
+
+
+#pragma mark JSON Parsing
+
+/// Adds JSON parsing methods to NSString
+@interface NSString (NSString_SBJsonParsing)
+
+/**
+ Decodes the receiver's JSON text
+
+ @return the NSDictionary or NSArray represented by the receiver, or nil on error.
+
+ @warning Deprecated in Version 3.2; will be removed in 4.0
+
+ */
+- (id)JSONValue __attribute__ ((deprecated));
+
+@end
+
+/// Adds JSON parsing methods to NSData
+@interface NSData (NSData_SBJsonParsing)
+
+/**
+ Decodes the receiver's JSON data
+
+ @return the NSDictionary or NSArray represented by the receiver, or nil on error.
+
+ @warning Deprecated in Version 3.2; will be removed in 4.0
+
+ */
+- (id)JSONValue __attribute__ ((deprecated));
+
+@end
diff --git a/json-framework-3.2.0/Classes/NSObject+SBJson.m b/json-framework-3.2.0/Classes/NSObject+SBJson.m
new file mode 100644
index 0000000..192dcb7
--- /dev/null
+++ b/json-framework-3.2.0/Classes/NSObject+SBJson.m
@@ -0,0 +1,76 @@
+/*
+ Copyright (C) 2009 Stig Brautaset. All rights reserved.
+ 
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions are met:
+ 
+ * Redistributions of source code must retain the above copyright notice, this
+   list of conditions and the following disclaimer.
+ 
+ * Redistributions in binary form must reproduce the above copyright notice,
+   this list of conditions and the following disclaimer in the documentation
+   and/or other materials provided with the distribution.
+ 
+ * Neither the name of the author nor the names of its contributors may be used
+   to endorse or promote products derived from this software without specific
+   prior written permission.
+ 
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+ FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+ SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+ CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+ OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#if !__has_feature(objc_arc)
+#error "This source file must be compiled with ARC enabled!"
+#endif
+
+#import "NSObject+SBJson.h"
+#import "SBJsonWriter.h"
+#import "SBJsonParser.h"
+
+@implementation NSObject (NSObject_SBJsonWriting)
+
+- (NSString *)JSONRepresentation {
+    SBJsonWriter *writer = [[SBJsonWriter alloc] init];    
+    NSString *json = [writer stringWithObject:self];
+    if (!json)
+        NSLog(@"-JSONRepresentation failed. Error is: %@", writer.error);
+    return json;
+}
+
+@end
+
+
+
+@implementation NSString (NSString_SBJsonParsing)
+
+- (id)JSONValue {
+    SBJsonParser *parser = [[SBJsonParser alloc] init];
+    id repr = [parser objectWithString:self];
+    if (!repr)
+        NSLog(@"-JSONValue failed. Error is: %@", parser.error);
+    return repr;
+}
+
+@end
+
+
+
+@implementation NSData (NSData_SBJsonParsing)
+
+- (id)JSONValue {
+    SBJsonParser *parser = [[SBJsonParser alloc] init];
+    id repr = [parser objectWithData:self];
+    if (!repr)
+        NSLog(@"-JSONValue failed. Error is: %@", parser.error);
+    return repr;
+}
+
+@end
diff --git a/json-framework-3.2.0/Classes/SBJson.h b/json-framework-3.2.0/Classes/SBJson.h
new file mode 100644
index 0000000..d37ffcd
--- /dev/null
+++ b/json-framework-3.2.0/Classes/SBJson.h
@@ -0,0 +1,36 @@
+/*
+ Copyright (C) 2009-2011 Stig Brautaset. All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions are met:
+
+ * Redistributions of source code must retain the above copyright notice, this
+   list of conditions and the following disclaimer.
+
+ * Redistributions in binary form must reproduce the above copyright notice,
+   this list of conditions and the following disclaimer in the documentation
+   and/or other materials provided with the distribution.
+
+ * Neither the name of the author nor the names of its contributors may be used
+   to endorse or promote products derived from this software without specific
+   prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+ FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+ SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+ CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+ OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#import "SBJsonParser.h"
+#import "SBJsonWriter.h"
+#import "SBJsonStreamParser.h"
+#import "SBJsonStreamParserAdapter.h"
+#import "SBJsonStreamWriter.h"
+#import "NSObject+SBJson.h"
+
diff --git a/json-framework-3.2.0/Classes/SBJsonParser.h b/json-framework-3.2.0/Classes/SBJsonParser.h
new file mode 100644
index 0000000..69c81c8
--- /dev/null
+++ b/json-framework-3.2.0/Classes/SBJsonParser.h
@@ -0,0 +1,102 @@
+/*
+ Copyright (C) 2009 Stig Brautaset. All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions are met:
+
+ * Redistributions of source code must retain the above copyright notice, this
+   list of conditions and the following disclaimer.
+
+ * Redistributions in binary form must reproduce the above copyright notice,
+   this list of conditions and the following disclaimer in the documentation
+   and/or other materials provided with the distribution.
+
+ * Neither the name of the author nor the names of its contributors may be used
+   to endorse or promote products derived from this software without specific
+   prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+ FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+ SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+ CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+ OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#import <Foundation/Foundation.h>
+
+/**
+ Parse JSON Strings and NSData objects
+
+ This uses SBJsonStreamParser internally.
+
+ */
+
+@interface SBJsonParser : NSObject
+
+/**
+ The maximum recursing depth.
+
+ Defaults to 32. If the input is nested deeper than this the input will be deemed to be
+ malicious and the parser returns nil, signalling an error. ("Nested too deep".) You can
+ turn off this security feature by setting the maxDepth value to 0.
+ */
+@property NSUInteger maxDepth;
+
+/**
+ Description of parse error
+
+ This method returns the trace of the last method that failed.
+ You need to check the return value of the call you're making to figure out
+ if the call actually failed, before you know call this method.
+
+ @return A string describing the error encountered, or nil if no error occured.
+
+ */
+@property(copy) NSString *error;
+
+/**
+ Return the object represented by the given NSData object.
+
+ The data *must* be UTF8 encoded.
+
+ @param data An NSData containing UTF8 encoded data to parse.
+ @return The NSArray or NSDictionary represented by the object, or nil if an error occured.
+
+ */
+- (id)objectWithData:(NSData*)data;
+
+/**
+ Return the object represented by the given string
+
+ This method converts its input to an NSData object containing UTF8 and calls -objectWithData: with it.
+
+ @return The NSArray or NSDictionary represented by the object, or nil if an error occured.
+ */
+- (id)objectWithString:(NSString *)repr;
+
+/**
+ Return the object represented by the given string
+
+ This method calls objectWithString: internally. If an error occurs, and if error
+ is not nil, it creates an NSError object and returns this through its second argument.
+
+ @param jsonText the json string to parse
+ @param error pointer to an NSError object to populate on error
+
+ @return The NSArray or NSDictionary represented by the object, or nil if an error occured.
+
+ @warning Deprecated in Version 3.2; will be removed in 4.0
+
+ */
+
+- (id)objectWithString:(NSString*)jsonText
+                 error:(NSError**)error __attribute__ ((deprecated));
+
+@end
+
+
diff --git a/json-framework-3.2.0/Classes/SBJsonParser.m b/json-framework-3.2.0/Classes/SBJsonParser.m
new file mode 100644
index 0000000..729e896
--- /dev/null
+++ b/json-framework-3.2.0/Classes/SBJsonParser.m
@@ -0,0 +1,104 @@
+/*
+ Copyright (C) 2009,2010 Stig Brautaset. All rights reserved.
+ 
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions are met:
+ 
+ * Redistributions of source code must retain the above copyright notice, this
+   list of conditions and the following disclaimer.
+ 
+ * Redistributions in binary form must reproduce the above copyright notice,
+   this list of conditions and the following disclaimer in the documentation
+   and/or other materials provided with the distribution.
+ 
+ * Neither the name of the author nor the names of its contributors may be used
+   to endorse or promote products derived from this software without specific
+   prior written permission.
+ 
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+ FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+ SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+ CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+ OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#if !__has_feature(objc_arc)
+#error "This source file must be compiled with ARC enabled!"
+#endif
+
+#import "SBJsonParser.h"
+#import "SBJsonStreamParser.h"
+#import "SBJsonStreamParserAdapter.h"
+#import "SBJsonStreamParserAccumulator.h"
+
+@implementation SBJsonParser
+
+@synthesize maxDepth;
+@synthesize error;
+
+- (id)init {
+    self = [super init];
+    if (self)
+        self.maxDepth = 32u;
+    return self;
+}
+
+
+#pragma mark Methods
+
+- (id)objectWithData:(NSData *)data {
+
+    if (!data) {
+        self.error = @"Input was 'nil'";
+        return nil;
+    }
+
+	SBJsonStreamParserAccumulator *accumulator = [[SBJsonStreamParserAccumulator alloc] init];
+    
+    SBJsonStreamParserAdapter *adapter = [[SBJsonStreamParserAdapter alloc] init];
+    adapter.delegate = accumulator;
+	
+	SBJsonStreamParser *parser = [[SBJsonStreamParser alloc] init];
+	parser.maxDepth = self.maxDepth;
+	parser.delegate = adapter;
+	
+	switch ([parser parse:data]) {
+		case SBJsonStreamParserComplete:
+            return accumulator.value;
+			break;
+			
+		case SBJsonStreamParserWaitingForData:
+		    self.error = @"Unexpected end of input";
+			break;
+
+		case SBJsonStreamParserError:
+		    self.error = parser.error;
+			break;
+	}
+	
+	return nil;
+}
+
+- (id)objectWithString:(NSString *)repr {
+	return [self objectWithData:[repr dataUsingEncoding:NSUTF8StringEncoding]];
+}
+
+- (id)objectWithString:(NSString*)repr error:(NSError**)error_ {
+	id tmp = [self objectWithString:repr];
+    if (tmp)
+        return tmp;
+    
+    if (error_) {
+		NSDictionary *ui = [NSDictionary dictionaryWithObjectsAndKeys:error, NSLocalizedDescriptionKey, nil];
+        *error_ = [NSError errorWithDomain:@"org.brautaset.SBJsonParser.ErrorDomain" code:0 userInfo:ui];
+	}
+	
+    return nil;
+}
+
+@end
diff --git a/json-framework-3.2.0/Classes/SBJsonStreamParser.h b/json-framework-3.2.0/Classes/SBJsonStreamParser.h
new file mode 100644
index 0000000..619cd55
--- /dev/null
+++ b/json-framework-3.2.0/Classes/SBJsonStreamParser.h
@@ -0,0 +1,179 @@
+/*
+ Copyright (c) 2010, Stig Brautaset.
+ All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions are
+ met:
+
+   Redistributions of source code must retain the above copyright
+   notice, this list of conditions and the following disclaimer.
+
+   Redistributions in binary form must reproduce the above copyright
+   notice, this list of conditions and the following disclaimer in the
+   documentation and/or other materials provided with the distribution.
+
+   Neither the name of the the author nor the names of its contributors
+   may be used to endorse or promote products derived from this software
+   without specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
+ IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
+ TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
+ PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+ HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#import <Foundation/Foundation.h>
+
+@class SBJsonTokeniser;
+@class SBJsonStreamParser;
+@class SBJsonStreamParserState;
+
+typedef enum {
+	SBJsonStreamParserComplete,
+	SBJsonStreamParserWaitingForData,
+	SBJsonStreamParserError,
+} SBJsonStreamParserStatus;
+
+
+/**
+ Delegate for interacting directly with the stream parser
+
+ You will most likely find it much more convenient to implement the
+ SBJsonStreamParserAdapterDelegate protocol instead.
+ */
+@protocol SBJsonStreamParserDelegate
+
+/// Called when object start is found
+- (void)parserFoundObjectStart:(SBJsonStreamParser*)parser;
+
+/// Called when object key is found
+- (void)parser:(SBJsonStreamParser*)parser foundObjectKey:(NSString*)key;
+
+/// Called when object end is found
+- (void)parserFoundObjectEnd:(SBJsonStreamParser*)parser;
+
+/// Called when array start is found
+- (void)parserFoundArrayStart:(SBJsonStreamParser*)parser;
+
+/// Called when array end is found
+- (void)parserFoundArrayEnd:(SBJsonStreamParser*)parser;
+
+/// Called when a boolean value is found
+- (void)parser:(SBJsonStreamParser*)parser foundBoolean:(BOOL)x;
+
+/// Called when a null value is found
+- (void)parserFoundNull:(SBJsonStreamParser*)parser;
+
+/// Called when a number is found
+- (void)parser:(SBJsonStreamParser*)parser foundNumber:(NSNumber*)num;
+
+/// Called when a string is found
+- (void)parser:(SBJsonStreamParser*)parser foundString:(NSString*)string;
+
+@end
+
+
+/**
+ Parse a stream of JSON data.
+
+ Using this class directly you can reduce the apparent latency for each
+ download/parse cycle of documents over a slow connection. You can start
+ parsing *and return chunks of the parsed document* before the entire
+ document is downloaded.
+
+ Using this class is also useful to parse huge documents on disk
+ bit by bit so you don't have to keep them all in memory.
+
+ JSON is mapped to Objective-C types in the following way:
+
+ - null    -> NSNull
+ - string  -> NSString
+ - array   -> NSMutableArray
+ - object  -> NSMutableDictionary
+ - true    -> NSNumber's -numberWithBool:YES
+ - false   -> NSNumber's -numberWithBool:NO
+ - integer up to 19 digits -> NSNumber's -numberWithLongLong:
+ - all other numbers       -> NSDecimalNumber
+
+ Since Objective-C doesn't have a dedicated class for boolean values,
+ these turns into NSNumber instances. However, since these are
+ initialised with the -initWithBool: method they round-trip back to JSON
+ properly. In other words, they won't silently suddenly become 0 or 1;
+ they'll be represented as 'true' and 'false' again.
+
+ As an optimisation integers up to 19 digits in length (the max length
+ for signed long long integers) turn into NSNumber instances, while
+ complex ones turn into NSDecimalNumber instances. We can thus avoid any
+ loss of precision as JSON allows ridiculously large numbers.
+
+ See also SBJsonStreamParserAdapter for more information.
+
+ */
+@interface SBJsonStreamParser : NSObject {
+@private
+	SBJsonTokeniser *tokeniser;
+}
+
+@property (nonatomic, unsafe_unretained) SBJsonStreamParserState *state; // Private
+@property (nonatomic, readonly, strong) NSMutableArray *stateStack; // Private
+
+/**
+ Expect multiple documents separated by whitespace
+
+ Normally the -parse: method returns SBJsonStreamParserComplete when it's found a complete JSON document.
+ Attempting to parse any more data at that point is considered an error. ("Garbage after JSON".)
+
+ If you set this property to true the parser will never return SBJsonStreamParserComplete. Rather,
+ once an object is completed it will expect another object to immediately follow, separated
+ only by (optional) whitespace.
+
+ */
+@property BOOL supportMultipleDocuments;
+
+/**
+ Delegate to receive messages
+
+ The object set here receives a series of messages as the parser breaks down the JSON stream
+ into valid tokens.
+
+ Usually this should be an instance of SBJsonStreamParserAdapter, but you can
+ substitute your own implementation of the SBJsonStreamParserDelegate protocol if you need to.
+ */
+@property (unsafe_unretained) id<SBJsonStreamParserDelegate> delegate;
+
+/**
+ The max parse depth
+
+ If the input is nested deeper than this the parser will halt parsing and return an error.
+
+ Defaults to 32.
+ */
+@property NSUInteger maxDepth;
+
+/// Holds the error after SBJsonStreamParserError was returned
+@property (copy) NSString *error;
+
+/**
+ Parse some JSON
+
+ The JSON is assumed to be UTF8 encoded. This can be a full JSON document, or a part of one.
+
+ @param data An NSData object containing the next chunk of JSON
+
+ @return
+ - SBJsonStreamParserComplete if a full document was found
+ - SBJsonStreamParserWaitingForData if a partial document was found and more data is required to complete it
+ - SBJsonStreamParserError if an error occured. (See the error property for details in this case.)
+
+ */
+- (SBJsonStreamParserStatus)parse:(NSData*)data;
+
+@end
diff --git a/json-framework-3.2.0/Classes/SBJsonStreamParser.m b/json-framework-3.2.0/Classes/SBJsonStreamParser.m
new file mode 100644
index 0000000..57d5016
--- /dev/null
+++ b/json-framework-3.2.0/Classes/SBJsonStreamParser.m
@@ -0,0 +1,255 @@
+/*
+ Copyright (c) 2010, Stig Brautaset.
+ All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions are
+ met:
+
+ Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+
+ Redistributions in binary form must reproduce the above copyright
+ notice, this list of conditions and the following disclaimer in the
+ documentation and/or other materials provided with the distribution.
+
+ Neither the name of the the author nor the names of its contributors
+ may be used to endorse or promote products derived from this software
+ without specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
+ IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
+ TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
+ PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+ HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#if !__has_feature(objc_arc)
+#error "This source file must be compiled with ARC enabled!"
+#endif
+
+#import "SBJsonStreamParser.h"
+#import "SBJsonTokeniser.h"
+#import "SBJsonStreamParserState.h"
+
+@implementation SBJsonStreamParser
+
+@synthesize supportMultipleDocuments;
+@synthesize error;
+@synthesize delegate;
+@synthesize maxDepth;
+@synthesize state;
+@synthesize stateStack;
+
+#pragma mark Housekeeping
+
+- (id)init {
+	self = [super init];
+	if (self) {
+		maxDepth = 32u;
+        stateStack = [[NSMutableArray alloc] initWithCapacity:maxDepth];
+        state = [SBJsonStreamParserStateStart sharedInstance];
+		tokeniser = [[SBJsonTokeniser alloc] init];
+	}
+	return self;
+}
+
+
+#pragma mark Methods
+
+- (NSString*)tokenName:(sbjson_token_t)token {
+	switch (token) {
+		case sbjson_token_array_start:
+			return @"start of array";
+			break;
+
+		case sbjson_token_array_end:
+			return @"end of array";
+			break;
+
+		case sbjson_token_number:
+			return @"number";
+			break;
+
+		case sbjson_token_string:
+			return @"string";
+			break;
+
+		case sbjson_token_true:
+		case sbjson_token_false:
+			return @"boolean";
+			break;
+
+		case sbjson_token_null:
+			return @"null";
+			break;
+
+		case sbjson_token_keyval_separator:
+			return @"key-value separator";
+			break;
+
+		case sbjson_token_separator:
+			return @"value separator";
+			break;
+
+		case sbjson_token_object_start:
+			return @"start of object";
+			break;
+
+		case sbjson_token_object_end:
+			return @"end of object";
+			break;
+
+		case sbjson_token_eof:
+		case sbjson_token_error:
+			break;
+	}
+	NSAssert(NO, @"Should not get here");
+	return @"<aaiiie!>";
+}
+
+- (void)maxDepthError {
+    self.error = [NSString stringWithFormat:@"Input depth exceeds max depth of %lu", (unsigned long)maxDepth];
+    self.state = [SBJsonStreamParserStateError sharedInstance];
+}
+
+- (void)handleObjectStart {
+	if (stateStack.count >= maxDepth) {
+        [self maxDepthError];
+        return;
+	}
+
+    [delegate parserFoundObjectStart:self];
+    [stateStack addObject:state];
+    self.state = [SBJsonStreamParserStateObjectStart sharedInstance];
+}
+
+- (void)handleObjectEnd: (sbjson_token_t) tok  {
+    self.state = [stateStack lastObject];
+    [stateStack removeLastObject];
+    [state parser:self shouldTransitionTo:tok];
+    [delegate parserFoundObjectEnd:self];
+}
+
+- (void)handleArrayStart {
+	if (stateStack.count >= maxDepth) {
+        [self maxDepthError];
+        return;
+    }
+	
+	[delegate parserFoundArrayStart:self];
+    [stateStack addObject:state];
+    self.state = [SBJsonStreamParserStateArrayStart sharedInstance];
+}
+
+- (void)handleArrayEnd: (sbjson_token_t) tok  {
+    self.state = [stateStack lastObject];
+    [stateStack removeLastObject];
+    [state parser:self shouldTransitionTo:tok];
+    [delegate parserFoundArrayEnd:self];
+}
+
+- (void) handleTokenNotExpectedHere: (sbjson_token_t) tok  {
+    NSString *tokenName = [self tokenName:tok];
+    NSString *stateName = [state name];
+
+    self.error = [NSString stringWithFormat:@"Token '%@' not expected %@", tokenName, stateName];
+    self.state = [SBJsonStreamParserStateError sharedInstance];
+}
+
+- (SBJsonStreamParserStatus)parse:(NSData *)data_ {
+    @autoreleasepool {
+        [tokeniser appendData:data_];
+        
+        for (;;) {
+            
+            if ([state isError])
+                return SBJsonStreamParserError;
+            
+            NSObject *token;
+            sbjson_token_t tok = [tokeniser getToken:&token];
+            switch (tok) {
+                case sbjson_token_eof:
+                    return [state parserShouldReturn:self];
+                    break;
+                    
+                case sbjson_token_error:
+                    self.state = [SBJsonStreamParserStateError sharedInstance];
+                    self.error = tokeniser.error;
+                    return SBJsonStreamParserError;
+                    break;
+                    
+                default:
+                    
+                    if (![state parser:self shouldAcceptToken:tok]) {
+                        [self handleTokenNotExpectedHere: tok];
+                        return SBJsonStreamParserError;
+                    }
+                    
+                    switch (tok) {
+                        case sbjson_token_object_start:
+                            [self handleObjectStart];
+                            break;
+                            
+                        case sbjson_token_object_end:
+                            [self handleObjectEnd: tok];
+                            break;
+                            
+                        case sbjson_token_array_start:
+                            [self handleArrayStart];
+                            break;
+                            
+                        case sbjson_token_array_end:
+                            [self handleArrayEnd: tok];
+                            break;
+                            
+                        case sbjson_token_separator:
+                        case sbjson_token_keyval_separator:
+                            [state parser:self shouldTransitionTo:tok];
+                            break;
+                            
+                        case sbjson_token_true:
+                            [delegate parser:self foundBoolean:YES];
+                            [state parser:self shouldTransitionTo:tok];
+                            break;
+                            
+                        case sbjson_token_false:
+                            [delegate parser:self foundBoolean:NO];
+                            [state parser:self shouldTransitionTo:tok];
+                            break;
+                            
+                        case sbjson_token_null:
+                            [delegate parserFoundNull:self];
+                            [state parser:self shouldTransitionTo:tok];
+                            break;
+                            
+                        case sbjson_token_number:
+                            [delegate parser:self foundNumber:(NSNumber*)token];
+                            [state parser:self shouldTransitionTo:tok];
+                            break;
+                            
+                        case sbjson_token_string:
+                            if ([state needKey])
+                                [delegate parser:self foundObjectKey:(NSString*)token];
+                            else
+                                [delegate parser:self foundString:(NSString*)token];
+                            [state parser:self shouldTransitionTo:tok];
+                            break;
+                            
+                        default:
+                            break;
+                    }
+                    break;
+            }
+        }
+        return SBJsonStreamParserComplete;
+    }
+}
+
+@end
diff --git a/json-framework-3.2.0/Classes/SBJsonStreamParserAccumulator.h b/json-framework-3.2.0/Classes/SBJsonStreamParserAccumulator.h
new file mode 100644
index 0000000..141d6ee
--- /dev/null
+++ b/json-framework-3.2.0/Classes/SBJsonStreamParserAccumulator.h
@@ -0,0 +1,37 @@
+/*
+ Copyright (C) 2011 Stig Brautaset. All rights reserved.
+ 
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions are met:
+ 
+ * Redistributions of source code must retain the above copyright notice, this
+   list of conditions and the following disclaimer.
+ 
+ * Redistributions in binary form must reproduce the above copyright notice,
+   this list of conditions and the following disclaimer in the documentation
+   and/or other materials provided with the distribution.
+ 
+ * Neither the name of the author nor the names of its contributors may be used
+   to endorse or promote products derived from this software without specific
+   prior written permission.
+ 
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+ FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+ SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+ CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+ OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#import <Foundation/Foundation.h>
+#import "SBJsonStreamParserAdapter.h"
+
+@interface SBJsonStreamParserAccumulator : NSObject <SBJsonStreamParserAdapterDelegate>
+
+@property (copy) id value;
+
+@end
diff --git a/json-framework-3.2.0/Classes/SBJsonStreamParserAccumulator.m b/json-framework-3.2.0/Classes/SBJsonStreamParserAccumulator.m
new file mode 100644
index 0000000..82d8fe8
--- /dev/null
+++ b/json-framework-3.2.0/Classes/SBJsonStreamParserAccumulator.m
@@ -0,0 +1,51 @@
+/*
+ Copyright (C) 2011 Stig Brautaset. All rights reserved.
+ 
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions are met:
+ 
+ * Redistributions of source code must retain the above copyright notice, this
+   list of conditions and the following disclaimer.
+ 
+ * Redistributions in binary form must reproduce the above copyright notice,
+   this list of conditions and the following disclaimer in the documentation
+   and/or other materials provided with the distribution.
+ 
+ * Neither the name of the author nor the names of its contributors may be used
+   to endorse or promote products derived from this software without specific
+   prior written permission.
+ 
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+ FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+ SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+ CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+ OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#if !__has_feature(objc_arc)
+#error "This source file must be compiled with ARC enabled!"
+#endif
+
+#import "SBJsonStreamParserAccumulator.h"
+
+@implementation SBJsonStreamParserAccumulator
+
+@synthesize value;
+
+
+#pragma mark SBJsonStreamParserAdapterDelegate
+
+- (void)parser:(SBJsonStreamParser*)parser foundArray:(NSArray *)array {
+	value = array;
+}
+
+- (void)parser:(SBJsonStreamParser*)parser foundObject:(NSDictionary *)dict {
+	value = dict;
+}
+
+@end
diff --git a/json-framework-3.2.0/Classes/SBJsonStreamParserAdapter.h b/json-framework-3.2.0/Classes/SBJsonStreamParserAdapter.h
new file mode 100644
index 0000000..8b4bc5d
--- /dev/null
+++ b/json-framework-3.2.0/Classes/SBJsonStreamParserAdapter.h
@@ -0,0 +1,142 @@
+/*
+ Copyright (c) 2010, Stig Brautaset.
+ All rights reserved.
+ 
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions are
+ met:
+ 
+   Redistributions of source code must retain the above copyright
+   notice, this list of conditions and the following disclaimer.
+  
+   Redistributions in binary form must reproduce the above copyright
+   notice, this list of conditions and the following disclaimer in the
+   documentation and/or other materials provided with the distribution.
+ 
+   Neither the name of the the author nor the names of its contributors
+   may be used to endorse or promote products derived from this software
+   without specific prior written permission.
+ 
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
+ IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
+ TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
+ PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+ HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#import <Foundation/Foundation.h>
+#import "SBJsonStreamParser.h"
+
+typedef enum {
+	SBJsonStreamParserAdapterNone,
+	SBJsonStreamParserAdapterArray,
+	SBJsonStreamParserAdapterObject,
+} SBJsonStreamParserAdapterType;
+
+/**
+ Delegate for getting objects & arrays from the stream parser adapter
+
+ */
+@protocol SBJsonStreamParserAdapterDelegate
+
+/**
+ Called if a JSON array is found
+ 
+ This method is called if a JSON array is found.
+ 
+ */
+- (void)parser:(SBJsonStreamParser*)parser foundArray:(NSArray*)array;
+
+/**
+ Called when a JSON object is found
+
+ This method is called if a JSON object is found.
+ */
+- (void)parser:(SBJsonStreamParser*)parser foundObject:(NSDictionary*)dict;
+
+@end
+
+/**
+ SBJsonStreamParserDelegate protocol adapter
+
+ Rather than implementing the SBJsonStreamParserDelegate protocol yourself you will
+ most likely find it much more convenient to use an instance of this class and
+ implement the SBJsonStreamParserAdapterDelegate protocol instead.
+
+ The default behaviour is that the delegate only receives one call from
+ either the -parser:foundArray: or -parser:foundObject: method when the
+ document is fully parsed. However, if your inputs contains multiple JSON
+ documents and you set the parser's -supportMultipleDocuments property to YES
+ you will get one call for each full method.
+
+     SBJsonStreamParserAdapter *adapter = [[[SBJsonStreamParserAdapter alloc] init] autorelease];
+     adapter.delegate = self;
+
+     SBJsonStreamParser *parser = [[[SBJsonStreamParser alloc] init] autorelease];
+     parser.delegate = adapter;
+     parser.supportMultipleDocuments = YES;
+
+     // Note that this input contains multiple top-level JSON documents
+     NSData *json = [@"[]{}[]{}" dataWithEncoding:NSUTF8StringEncoding];
+     [parser parse:data];
+
+ In the above example self will have the following sequence of methods called on it:
+
+ - -parser:foundArray:
+ - -parser:foundObject:
+ - -parser:foundArray:
+ - -parser:foundObject:
+
+ Often you won't have control over the input you're parsing, so can't make use of
+ this feature. But, all is not lost: this class will let you get the same effect by
+ allowing you to skip one or more of the outer enclosing objects. Thus, the next
+ example results in the same sequence of -parser:foundArray: / -parser:foundObject:
+ being called on your delegate.
+
+     SBJsonStreamParserAdapter *adapter = [[[SBJsonStreamParserAdapter alloc] init] autorelease];
+     adapter.delegate = self;
+     adapter.levelsToSkip = 1;
+
+     SBJsonStreamParser *parser = [[[SBJsonStreamParser alloc] init] autorelease];
+     parser.delegate = adapter;
+
+     // Note that this input contains A SINGLE top-level document
+     NSData *json = [@"[[],{},[],{}]" dataWithEncoding:NSUTF8StringEncoding];
+     [parser parse:data];
+
+*/
+@interface SBJsonStreamParserAdapter : NSObject <SBJsonStreamParserDelegate> {
+@private
+	NSUInteger depth;
+    NSMutableArray *array;
+	NSMutableDictionary *dict;
+	NSMutableArray *keyStack;
+	NSMutableArray *stack;
+	
+	SBJsonStreamParserAdapterType currentType;
+}
+
+/**
+ How many levels to skip
+ 
+ This is useful for parsing huge JSON documents, or documents coming in over a very slow link.
+ 
+ If you set this to N it will skip the outer N levels and call the -parser:foundArray:
+ or -parser:foundObject: methods for each of the inner objects, as appropriate.
+
+*/
+@property NSUInteger levelsToSkip;
+
+/**
+ Your delegate object
+ Set this to the object you want to receive the SBJsonStreamParserAdapterDelegate messages.
+ */
+@property (unsafe_unretained) id<SBJsonStreamParserAdapterDelegate> delegate;
+
+@end
diff --git a/json-framework-3.2.0/Classes/SBJsonStreamParserAdapter.m b/json-framework-3.2.0/Classes/SBJsonStreamParserAdapter.m
new file mode 100644
index 0000000..7259a06
--- /dev/null
+++ b/json-framework-3.2.0/Classes/SBJsonStreamParserAdapter.m
@@ -0,0 +1,168 @@
+/*
+ Copyright (c) 2010, Stig Brautaset.
+ All rights reserved.
+ 
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions are
+ met:
+ 
+   Redistributions of source code must retain the above copyright
+   notice, this list of conditions and the following disclaimer.
+  
+   Redistributions in binary form must reproduce the above copyright
+   notice, this list of conditions and the following disclaimer in the
+   documentation and/or other materials provided with the distribution.
+ 
+   Neither the name of the the author nor the names of its contributors
+   may be used to endorse or promote products derived from this software
+   without specific prior written permission.
+ 
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
+ IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
+ TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
+ PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+ HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#if !__has_feature(objc_arc)
+#error "This source file must be compiled with ARC enabled!"
+#endif
+
+#import "SBJsonStreamParserAdapter.h"
+
+@interface SBJsonStreamParserAdapter ()
+
+- (void)pop;
+- (void)parser:(SBJsonStreamParser*)parser found:(id)obj;
+
+@end
+
+
+
+@implementation SBJsonStreamParserAdapter
+
+@synthesize delegate;
+@synthesize levelsToSkip;
+
+#pragma mark Housekeeping
+
+- (id)init {
+	self = [super init];
+	if (self) {
+		keyStack = [[NSMutableArray alloc] initWithCapacity:32];
+		stack = [[NSMutableArray alloc] initWithCapacity:32];
+		
+		currentType = SBJsonStreamParserAdapterNone;
+	}
+	return self;
+}	
+
+
+#pragma mark Private methods
+
+- (void)pop {
+	[stack removeLastObject];
+	array = nil;
+	dict = nil;
+	currentType = SBJsonStreamParserAdapterNone;
+	
+	id value = [stack lastObject];
+	
+	if ([value isKindOfClass:[NSArray class]]) {
+		array = value;
+		currentType = SBJsonStreamParserAdapterArray;
+	} else if ([value isKindOfClass:[NSDictionary class]]) {
+		dict = value;
+		currentType = SBJsonStreamParserAdapterObject;
+	}
+}
+
+- (void)parser:(SBJsonStreamParser*)parser found:(id)obj {
+	NSParameterAssert(obj);
+	
+	switch (currentType) {
+		case SBJsonStreamParserAdapterArray:
+			[array addObject:obj];
+			break;
+
+		case SBJsonStreamParserAdapterObject:
+			NSParameterAssert(keyStack.count);
+			[dict setObject:obj forKey:[keyStack lastObject]];
+			[keyStack removeLastObject];
+			break;
+			
+		case SBJsonStreamParserAdapterNone:
+			if ([obj isKindOfClass:[NSArray class]]) {
+				[delegate parser:parser foundArray:obj];
+			} else {
+				[delegate parser:parser foundObject:obj];
+			}				
+			break;
+
+		default:
+			break;
+	}
+}
+
+
+#pragma mark Delegate methods
+
+- (void)parserFoundObjectStart:(SBJsonStreamParser*)parser {
+	if (++depth > self.levelsToSkip) {
+		dict = [NSMutableDictionary new];
+		[stack addObject:dict];
+		currentType = SBJsonStreamParserAdapterObject;
+	}
+}
+
+- (void)parser:(SBJsonStreamParser*)parser foundObjectKey:(NSString*)key_ {
+	[keyStack addObject:key_];
+}
+
+- (void)parserFoundObjectEnd:(SBJsonStreamParser*)parser {
+	if (depth-- > self.levelsToSkip) {
+		id value = dict;
+		[self pop];
+		[self parser:parser found:value];
+	}
+}
+
+- (void)parserFoundArrayStart:(SBJsonStreamParser*)parser {
+	if (++depth > self.levelsToSkip) {
+		array = [NSMutableArray new];
+		[stack addObject:array];
+		currentType = SBJsonStreamParserAdapterArray;
+	}
+}
+
+- (void)parserFoundArrayEnd:(SBJsonStreamParser*)parser {
+	if (depth-- > self.levelsToSkip) {
+		id value = array;
+		[self pop];
+		[self parser:parser found:value];
+	}
+}
+
+- (void)parser:(SBJsonStreamParser*)parser foundBoolean:(BOOL)x {
+	[self parser:parser found:[NSNumber numberWithBool:x]];
+}
+
+- (void)parserFoundNull:(SBJsonStreamParser*)parser {
+	[self parser:parser found:[NSNull null]];
+}
+
+- (void)parser:(SBJsonStreamParser*)parser foundNumber:(NSNumber*)num {
+	[self parser:parser found:num];
+}
+
+- (void)parser:(SBJsonStreamParser*)parser foundString:(NSString*)string {
+	[self parser:parser found:string];
+}
+
+@end
diff --git a/json-framework-3.2.0/Classes/SBJsonStreamParserState.h b/json-framework-3.2.0/Classes/SBJsonStreamParserState.h
new file mode 100644
index 0000000..ea893cb
--- /dev/null
+++ b/json-framework-3.2.0/Classes/SBJsonStreamParserState.h
@@ -0,0 +1,83 @@
+/*
+ Copyright (c) 2010, Stig Brautaset.
+ All rights reserved.
+ 
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions are
+ met:
+ 
+   Redistributions of source code must retain the above copyright
+   notice, this list of conditions and the following disclaimer.
+  
+   Redistributions in binary form must reproduce the above copyright
+   notice, this list of conditions and the following disclaimer in the
+   documentation and/or other materials provided with the distribution.
+ 
+   Neither the name of the the author nor the names of its contributors
+   may be used to endorse or promote products derived from this software
+   without specific prior written permission.
+ 
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
+ IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
+ TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
+ PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+ HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#import <Foundation/Foundation.h>
+
+#import "SBJsonTokeniser.h"
+#import "SBJsonStreamParser.h"
+
+@interface SBJsonStreamParserState : NSObject
++ (id)sharedInstance;
+
+- (BOOL)parser:(SBJsonStreamParser*)parser shouldAcceptToken:(sbjson_token_t)token;
+- (SBJsonStreamParserStatus)parserShouldReturn:(SBJsonStreamParser*)parser;
+- (void)parser:(SBJsonStreamParser*)parser shouldTransitionTo:(sbjson_token_t)tok;
+- (BOOL)needKey;
+- (BOOL)isError;
+
+- (NSString*)name;
+
+@end
+
+@interface SBJsonStreamParserStateStart : SBJsonStreamParserState
+@end
+
+@interface SBJsonStreamParserStateComplete : SBJsonStreamParserState
+@end
+
+@interface SBJsonStreamParserStateError : SBJsonStreamParserState
+@end
+
+
+@interface SBJsonStreamParserStateObjectStart : SBJsonStreamParserState
+@end
+
+@interface SBJsonStreamParserStateObjectGotKey : SBJsonStreamParserState
+@end
+
+@interface SBJsonStreamParserStateObjectSeparator : SBJsonStreamParserState
+@end
+
+@interface SBJsonStreamParserStateObjectGotValue : SBJsonStreamParserState
+@end
+
+@interface SBJsonStreamParserStateObjectNeedKey : SBJsonStreamParserState
+@end
+
+@interface SBJsonStreamParserStateArrayStart : SBJsonStreamParserState
+@end
+
+@interface SBJsonStreamParserStateArrayGotValue : SBJsonStreamParserState
+@end
+
+@interface SBJsonStreamParserStateArrayNeedValue : SBJsonStreamParserState
+@end
diff --git a/json-framework-3.2.0/Classes/SBJsonStreamParserState.m b/json-framework-3.2.0/Classes/SBJsonStreamParserState.m
new file mode 100644
index 0000000..a59e7dc
--- /dev/null
+++ b/json-framework-3.2.0/Classes/SBJsonStreamParserState.m
@@ -0,0 +1,362 @@
+/*
+ Copyright (c) 2010, Stig Brautaset.
+ All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions are
+ met:
+
+   Redistributions of source code must retain the above copyright
+   notice, this list of conditions and the following disclaimer.
+
+   Redistributions in binary form must reproduce the above copyright
+   notice, this list of conditions and the following disclaimer in the
+   documentation and/or other materials provided with the distribution.
+
+   Neither the name of the the author nor the names of its contributors
+   may be used to endorse or promote products derived from this software
+   without specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
+ IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
+ TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
+ PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+ HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#if !__has_feature(objc_arc)
+#error "This source file must be compiled with ARC enabled!"
+#endif
+
+#import "SBJsonStreamParserState.h"
+
+#define SINGLETON \
++ (id)sharedInstance { \
+    static id state = nil; \
+    if (!state) { \
+        @synchronized(self) { \
+            if (!state) state = [[self alloc] init]; \
+        } \
+    } \
+    return state; \
+}
+
+@implementation SBJsonStreamParserState
+
++ (id)sharedInstance { return nil; }
+
+- (BOOL)parser:(SBJsonStreamParser*)parser shouldAcceptToken:(sbjson_token_t)token {
+	return NO;
+}
+
+- (SBJsonStreamParserStatus)parserShouldReturn:(SBJsonStreamParser*)parser {
+	return SBJsonStreamParserWaitingForData;
+}
+
+- (void)parser:(SBJsonStreamParser*)parser shouldTransitionTo:(sbjson_token_t)tok {}
+
+- (BOOL)needKey {
+	return NO;
+}
+
+- (NSString*)name {
+	return @"<aaiie!>";
+}
+
+- (BOOL)isError {
+    return NO;
+}
+
+@end
+
+#pragma mark -
+
+@implementation SBJsonStreamParserStateStart
+
+SINGLETON
+
+- (BOOL)parser:(SBJsonStreamParser*)parser shouldAcceptToken:(sbjson_token_t)token {
+	return token == sbjson_token_array_start || token == sbjson_token_object_start;
+}
+
+- (void)parser:(SBJsonStreamParser*)parser shouldTransitionTo:(sbjson_token_t)tok {
+
+	SBJsonStreamParserState *state = nil;
+	switch (tok) {
+		case sbjson_token_array_start:
+			state = [SBJsonStreamParserStateArrayStart sharedInstance];
+			break;
+
+		case sbjson_token_object_start:
+			state = [SBJsonStreamParserStateObjectStart sharedInstance];
+			break;
+
+		case sbjson_token_array_end:
+		case sbjson_token_object_end:
+			if (parser.supportMultipleDocuments)
+				state = parser.state;
+			else
+				state = [SBJsonStreamParserStateComplete sharedInstance];
+			break;
+
+		case sbjson_token_eof:
+			return;
+
+		default:
+			state = [SBJsonStreamParserStateError sharedInstance];
+			break;
+	}
+
+
+	parser.state = state;
+}
+
+- (NSString*)name { return @"before outer-most array or object"; }
+
+@end
+
+#pragma mark -
+
+@implementation SBJsonStreamParserStateComplete
+
+SINGLETON
+
+- (NSString*)name { return @"after outer-most array or object"; }
+
+- (SBJsonStreamParserStatus)parserShouldReturn:(SBJsonStreamParser*)parser {
+	return SBJsonStreamParserComplete;
+}
+
+@end
+
+#pragma mark -
+
+@implementation SBJsonStreamParserStateError
+
+SINGLETON
+
+- (NSString*)name { return @"in error"; }
+
+- (SBJsonStreamParserStatus)parserShouldReturn:(SBJsonStreamParser*)parser {
+	return SBJsonStreamParserError;
+}
+
+- (BOOL)isError {
+    return YES;
+}
+
+@end
+
+#pragma mark -
+
+@implementation SBJsonStreamParserStateObjectStart
+
+SINGLETON
+
+- (NSString*)name { return @"at beginning of object"; }
+
+- (BOOL)parser:(SBJsonStreamParser*)parser shouldAcceptToken:(sbjson_token_t)token {
+	switch (token) {
+		case sbjson_token_object_end:
+		case sbjson_token_string:
+			return YES;
+			break;
+		default:
+			return NO;
+			break;
+	}
+}
+
+- (void)parser:(SBJsonStreamParser*)parser shouldTransitionTo:(sbjson_token_t)tok {
+	parser.state = [SBJsonStreamParserStateObjectGotKey sharedInstance];
+}
+
+- (BOOL)needKey {
+	return YES;
+}
+
+@end
+
+#pragma mark -
+
+@implementation SBJsonStreamParserStateObjectGotKey
+
+SINGLETON
+
+- (NSString*)name { return @"after object key"; }
+
+- (BOOL)parser:(SBJsonStreamParser*)parser shouldAcceptToken:(sbjson_token_t)token {
+	return token == sbjson_token_keyval_separator;
+}
+
+- (void)parser:(SBJsonStreamParser*)parser shouldTransitionTo:(sbjson_token_t)tok {
+	parser.state = [SBJsonStreamParserStateObjectSeparator sharedInstance];
+}
+
+@end
+
+#pragma mark -
+
+@implementation SBJsonStreamParserStateObjectSeparator
+
+SINGLETON
+
+- (NSString*)name { return @"as object value"; }
+
+- (BOOL)parser:(SBJsonStreamParser*)parser shouldAcceptToken:(sbjson_token_t)token {
+	switch (token) {
+		case sbjson_token_object_start:
+		case sbjson_token_array_start:
+		case sbjson_token_true:
+		case sbjson_token_false:
+		case sbjson_token_null:
+		case sbjson_token_number:
+		case sbjson_token_string:
+			return YES;
+			break;
+
+		default:
+			return NO;
+			break;
+	}
+}
+
+- (void)parser:(SBJsonStreamParser*)parser shouldTransitionTo:(sbjson_token_t)tok {
+	parser.state = [SBJsonStreamParserStateObjectGotValue sharedInstance];
+}
+
+@end
+
+#pragma mark -
+
+@implementation SBJsonStreamParserStateObjectGotValue
+
+SINGLETON
+
+- (NSString*)name { return @"after object value"; }
+
+- (BOOL)parser:(SBJsonStreamParser*)parser shouldAcceptToken:(sbjson_token_t)token {
+	switch (token) {
+		case sbjson_token_object_end:
+		case sbjson_token_separator:
+			return YES;
+			break;
+		default:
+			return NO;
+			break;
+	}
+}
+
+- (void)parser:(SBJsonStreamParser*)parser shouldTransitionTo:(sbjson_token_t)tok {
+	parser.state = [SBJsonStreamParserStateObjectNeedKey sharedInstance];
+}
+
+
+@end
+
+#pragma mark -
+
+@implementation SBJsonStreamParserStateObjectNeedKey
+
+SINGLETON
+
+- (NSString*)name { return @"in place of object key"; }
+
+- (BOOL)parser:(SBJsonStreamParser*)parser shouldAcceptToken:(sbjson_token_t)token {
+    return sbjson_token_string == token;
+}
+
+- (void)parser:(SBJsonStreamParser*)parser shouldTransitionTo:(sbjson_token_t)tok {
+	parser.state = [SBJsonStreamParserStateObjectGotKey sharedInstance];
+}
+
+- (BOOL)needKey {
+	return YES;
+}
+
+@end
+
+#pragma mark -
+
+@implementation SBJsonStreamParserStateArrayStart
+
+SINGLETON
+
+- (NSString*)name { return @"at array start"; }
+
+- (BOOL)parser:(SBJsonStreamParser*)parser shouldAcceptToken:(sbjson_token_t)token {
+	switch (token) {
+		case sbjson_token_object_end:
+		case sbjson_token_keyval_separator:
+		case sbjson_token_separator:
+			return NO;
+			break;
+
+		default:
+			return YES;
+			break;
+	}
+}
+
+- (void)parser:(SBJsonStreamParser*)parser shouldTransitionTo:(sbjson_token_t)tok {
+	parser.state = [SBJsonStreamParserStateArrayGotValue sharedInstance];
+}
+
+@end
+
+#pragma mark -
+
+@implementation SBJsonStreamParserStateArrayGotValue
+
+SINGLETON
+
+- (NSString*)name { return @"after array value"; }
+
+
+- (BOOL)parser:(SBJsonStreamParser*)parser shouldAcceptToken:(sbjson_token_t)token {
+	return token == sbjson_token_array_end || token == sbjson_token_separator;
+}
+
+- (void)parser:(SBJsonStreamParser*)parser shouldTransitionTo:(sbjson_token_t)tok {
+	if (tok == sbjson_token_separator)
+		parser.state = [SBJsonStreamParserStateArrayNeedValue sharedInstance];
+}
+
+@end
+
+#pragma mark -
+
+@implementation SBJsonStreamParserStateArrayNeedValue
+
+SINGLETON
+
+- (NSString*)name { return @"as array value"; }
+
+
+- (BOOL)parser:(SBJsonStreamParser*)parser shouldAcceptToken:(sbjson_token_t)token {
+	switch (token) {
+		case sbjson_token_array_end:
+		case sbjson_token_keyval_separator:
+		case sbjson_token_object_end:
+		case sbjson_token_separator:
+			return NO;
+			break;
+
+		default:
+			return YES;
+			break;
+	}
+}
+
+- (void)parser:(SBJsonStreamParser*)parser shouldTransitionTo:(sbjson_token_t)tok {
+	parser.state = [SBJsonStreamParserStateArrayGotValue sharedInstance];
+}
+
+@end
+
diff --git a/json-framework-3.2.0/Classes/SBJsonStreamWriter.h b/json-framework-3.2.0/Classes/SBJsonStreamWriter.h
new file mode 100644
index 0000000..7794a14
--- /dev/null
+++ b/json-framework-3.2.0/Classes/SBJsonStreamWriter.h
@@ -0,0 +1,210 @@
+/*
+ Copyright (c) 2010, Stig Brautaset.
+ All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions are
+ met:
+
+   Redistributions of source code must retain the above copyright
+   notice, this list of conditions and the following disclaimer.
+
+   Redistributions in binary form must reproduce the above copyright
+   notice, this list of conditions and the following disclaimer in the
+   documentation and/or other materials provided with the distribution.
+
+   Neither the name of the the author nor the names of its contributors
+   may be used to endorse or promote products derived from this software
+   without specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
+ IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
+ TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
+ PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+ HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#import <Foundation/Foundation.h>
+
+/// Enable JSON writing for non-native objects
+@interface NSObject (SBProxyForJson)
+
+/**
+ Allows generation of JSON for otherwise unsupported classes.
+
+ If you have a custom class that you want to create a JSON representation
+ for you can implement this method in your class. It should return a
+ representation of your object defined in terms of objects that can be
+ translated into JSON. For example, a Person object might implement it like this:
+
+     - (id)proxyForJson {
+        return [NSDictionary dictionaryWithObjectsAndKeys:
+        name, @"name",
+        phone, @"phone",
+        email, @"email",
+        nil];
+     }
+
+ */
+- (id)proxyForJson;
+
+@end
+
+@class SBJsonStreamWriter;
+
+@protocol SBJsonStreamWriterDelegate
+
+- (void)writer:(SBJsonStreamWriter*)writer appendBytes:(const void *)bytes length:(NSUInteger)length;
+
+@end
+
+@class SBJsonStreamWriterState;
+
+/**
+ The Stream Writer class.
+
+ Accepts a stream of messages and writes JSON of these to its delegate object.
+
+ This class provides a range of high-, mid- and low-level methods. You can mix
+ and match calls to these. For example, you may want to call -writeArrayOpen
+ to start an array and then repeatedly call -writeObject: with various objects
+ before finishing off with a -writeArrayClose call.
+
+ Objective-C types are mapped to JSON types in the following way:
+
+ - NSNull        -> null
+ - NSString      -> string
+ - NSArray       -> array
+ - NSDictionary  -> object
+ - NSNumber's -initWithBool:YES -> true
+ - NSNumber's -initWithBool:NO  -> false
+ - NSNumber      -> number
+
+ NSNumber instances created with the -numberWithBool: method are
+ converted into the JSON boolean "true" and "false" values, and vice
+ versa. Any other NSNumber instances are converted to a JSON number the
+ way you would expect.
+
+ @warning: In JSON the keys of an object must be strings. NSDictionary
+ keys need not be, but attempting to convert an NSDictionary with
+ non-string keys into JSON will throw an exception.*
+
+ */
+
+@interface SBJsonStreamWriter : NSObject {
+    NSMutableDictionary *cache;
+}
+
+@property (nonatomic, unsafe_unretained) SBJsonStreamWriterState *state; // Internal
+@property (nonatomic, readonly, strong) NSMutableArray *stateStack; // Internal
+
+/**
+ delegate to receive JSON output
+ Delegate that will receive messages with output.
+ */
+@property (unsafe_unretained) id<SBJsonStreamWriterDelegate> delegate;
+
+/**
+ The maximum recursing depth.
+
+ Defaults to 512. If the input is nested deeper than this the input will be deemed to be
+ malicious and the parser returns nil, signalling an error. ("Nested too deep".) You can
+ turn off this security feature by setting the maxDepth value to 0.
+ */
+@property NSUInteger maxDepth;
+
+/**
+ Whether we are generating human-readable (multiline) JSON.
+
+ Set whether or not to generate human-readable JSON. The default is NO, which produces
+ JSON without any whitespace between tokens. If set to YES, generates human-readable
+ JSON with linebreaks after each array value and dictionary key/value pair, indented two
+ spaces per nesting level.
+ */
+@property BOOL humanReadable;
+
+/**
+ Whether or not to sort the dictionary keys in the output.
+
+ If this is set to YES, the dictionary keys in the JSON output will be in sorted order.
+ (This is useful if you need to compare two structures, for example.) The default is NO.
+ */
+@property BOOL sortKeys;
+
+/**
+ An optional comparator to be used if sortKeys is YES.
+
+ If this is nil, sorting will be done via @selector(compare:).
+ */
+@property (copy) NSComparator sortKeysComparator;
+
+/// Contains the error description after an error has occured.
+@property (copy) NSString *error;
+
+/**
+ Write an NSDictionary to the JSON stream.
+ @return YES if successful, or NO on failure
+ */
+- (BOOL)writeObject:(NSDictionary*)dict;
+
+/**
+ Write an NSArray to the JSON stream.
+ @return YES if successful, or NO on failure
+ */
+- (BOOL)writeArray:(NSArray *)array;
+
+/**
+ Start writing an Object to the stream
+ @return YES if successful, or NO on failure
+*/
+- (BOOL)writeObjectOpen;
+
+/**
+ Close the current object being written
+ @return YES if successful, or NO on failure
+*/
+- (BOOL)writeObjectClose;
+
+/** Start writing an Array to the stream
+ @return YES if successful, or NO on failure
+*/
+- (BOOL)writeArrayOpen;
+
+/** Close the current Array being written
+ @return YES if successful, or NO on failure
+*/
+- (BOOL)writeArrayClose;
+
+/** Write a null to the stream
+ @return YES if successful, or NO on failure
+*/
+- (BOOL)writeNull;
+
+/** Write a boolean to the stream
+ @return YES if successful, or NO on failure
+*/
+- (BOOL)writeBool:(BOOL)x;
+
+/** Write a Number to the stream
+ @return YES if successful, or NO on failure
+*/
+- (BOOL)writeNumber:(NSNumber*)n;
+
+/** Write a String to the stream
+ @return YES if successful, or NO on failure
+*/
+- (BOOL)writeString:(NSString*)s;
+
+@end
+
+@interface SBJsonStreamWriter (Private)
+- (BOOL)writeValue:(id)v;
+- (void)appendBytes:(const void *)bytes length:(NSUInteger)length;
+@end
+
diff --git a/json-framework-3.2.0/Classes/SBJsonStreamWriter.m b/json-framework-3.2.0/Classes/SBJsonStreamWriter.m
new file mode 100644
index 0000000..7302cc0
--- /dev/null
+++ b/json-framework-3.2.0/Classes/SBJsonStreamWriter.m
@@ -0,0 +1,374 @@
+/*
+ Copyright (c) 2010, Stig Brautaset.
+ All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions are
+ met:
+
+   Redistributions of source code must retain the above copyright
+   notice, this list of conditions and the following disclaimer.
+
+   Redistributions in binary form must reproduce the above copyright
+   notice, this list of conditions and the following disclaimer in the
+   documentation and/or other materials provided with the distribution.
+
+   Neither the name of the the author nor the names of its contributors
+   may be used to endorse or promote products derived from this software
+   without specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
+ IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
+ TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
+ PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+ HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#if !__has_feature(objc_arc)
+#error "This source file must be compiled with ARC enabled!"
+#endif
+
+#import "SBJsonStreamWriter.h"
+#import "SBJsonStreamWriterState.h"
+
+static NSNumber *kNotANumber;
+static NSNumber *kTrue;
+static NSNumber *kFalse;
+static NSNumber *kPositiveInfinity;
+static NSNumber *kNegativeInfinity;
+
+
+@implementation SBJsonStreamWriter
+
+@synthesize error;
+@synthesize maxDepth;
+@synthesize state;
+@synthesize stateStack;
+@synthesize humanReadable;
+@synthesize sortKeys;
+@synthesize sortKeysComparator;
+
++ (void)initialize {
+	kNotANumber = [NSDecimalNumber notANumber];
+    kPositiveInfinity = [NSNumber numberWithDouble:+HUGE_VAL];
+    kNegativeInfinity = [NSNumber numberWithDouble:-HUGE_VAL];
+    kTrue = [NSNumber numberWithBool:YES];
+    kFalse = [NSNumber numberWithBool:NO];
+}
+
+#pragma mark Housekeeping
+
+@synthesize delegate;
+
+- (id)init {
+	self = [super init];
+	if (self) {
+		maxDepth = 32u;
+        stateStack = [[NSMutableArray alloc] initWithCapacity:maxDepth];
+        state = [SBJsonStreamWriterStateStart sharedInstance];
+        cache = [[NSMutableDictionary alloc] initWithCapacity:32];
+    }
+	return self;
+}
+
+#pragma mark Methods
+
+- (void)appendBytes:(const void *)bytes length:(NSUInteger)length {
+    [delegate writer:self appendBytes:bytes length:length];
+}
+
+- (BOOL)writeObject:(NSDictionary *)dict {
+	if (![self writeObjectOpen])
+		return NO;
+
+	NSArray *keys = [dict allKeys];
+	
+	if (sortKeys) {
+		if (sortKeysComparator) {
+			keys = [keys sortedArrayWithOptions:NSSortStable usingComparator:sortKeysComparator];
+		}
+		else{
+			keys = [keys sortedArrayUsingSelector:@selector(compare:)];
+		}
+	}
+
+	for (id k in keys) {
+		if (![k isKindOfClass:[NSString class]]) {
+			self.error = [NSString stringWithFormat:@"JSON object key must be string: %@", k];
+			return NO;
+		}
+
+		if (![self writeString:k])
+			return NO;
+		if (![self writeValue:[dict objectForKey:k]])
+			return NO;
+	}
+
+	return [self writeObjectClose];
+}
+
+- (BOOL)writeArray:(NSArray*)array {
+	if (![self writeArrayOpen])
+		return NO;
+	for (id v in array)
+		if (![self writeValue:v])
+			return NO;
+	return [self writeArrayClose];
+}
+
+
+- (BOOL)writeObjectOpen {
+	if ([state isInvalidState:self]) return NO;
+	if ([state expectingKey:self]) return NO;
+	[state appendSeparator:self];
+	if (humanReadable && stateStack.count) [state appendWhitespace:self];
+
+    [stateStack addObject:state];
+    self.state = [SBJsonStreamWriterStateObjectStart sharedInstance];
+
+	if (maxDepth && stateStack.count > maxDepth) {
+		self.error = @"Nested too deep";
+		return NO;
+	}
+
+	[delegate writer:self appendBytes:"{" length:1];
+	return YES;
+}
+
+- (BOOL)writeObjectClose {
+	if ([state isInvalidState:self]) return NO;
+
+    SBJsonStreamWriterState *prev = state;
+
+    self.state = [stateStack lastObject];
+    [stateStack removeLastObject];
+
+	if (humanReadable) [prev appendWhitespace:self];
+	[delegate writer:self appendBytes:"}" length:1];
+
+	[state transitionState:self];
+	return YES;
+}
+
+- (BOOL)writeArrayOpen {
+	if ([state isInvalidState:self]) return NO;
+	if ([state expectingKey:self]) return NO;
+	[state appendSeparator:self];
+	if (humanReadable && stateStack.count) [state appendWhitespace:self];
+
+    [stateStack addObject:state];
+	self.state = [SBJsonStreamWriterStateArrayStart sharedInstance];
+
+	if (maxDepth && stateStack.count > maxDepth) {
+		self.error = @"Nested too deep";
+		return NO;
+	}
+
+	[delegate writer:self appendBytes:"[" length:1];
+	return YES;
+}
+
+- (BOOL)writeArrayClose {
+	if ([state isInvalidState:self]) return NO;
+	if ([state expectingKey:self]) return NO;
+
+    SBJsonStreamWriterState *prev = state;
+
+    self.state = [stateStack lastObject];
+    [stateStack removeLastObject];
+
+	if (humanReadable) [prev appendWhitespace:self];
+	[delegate writer:self appendBytes:"]" length:1];
+
+	[state transitionState:self];
+	return YES;
+}
+
+- (BOOL)writeNull {
+	if ([state isInvalidState:self]) return NO;
+	if ([state expectingKey:self]) return NO;
+	[state appendSeparator:self];
+	if (humanReadable) [state appendWhitespace:self];
+
+	[delegate writer:self appendBytes:"null" length:4];
+	[state transitionState:self];
+	return YES;
+}
+
+- (BOOL)writeBool:(BOOL)x {
+	if ([state isInvalidState:self]) return NO;
+	if ([state expectingKey:self]) return NO;
+	[state appendSeparator:self];
+	if (humanReadable) [state appendWhitespace:self];
+
+	if (x)
+		[delegate writer:self appendBytes:"true" length:4];
+	else
+		[delegate writer:self appendBytes:"false" length:5];
+	[state transitionState:self];
+	return YES;
+}
+
+
+- (BOOL)writeValue:(id)o {
+	if ([o isKindOfClass:[NSDictionary class]]) {
+		return [self writeObject:o];
+
+	} else if ([o isKindOfClass:[NSArray class]]) {
+		return [self writeArray:o];
+
+	} else if ([o isKindOfClass:[NSString class]]) {
+		[self writeString:o];
+		return YES;
+
+	} else if ([o isKindOfClass:[NSNumber class]]) {
+		return [self writeNumber:o];
+
+	} else if ([o isKindOfClass:[NSNull class]]) {
+		return [self writeNull];
+
+	} else if ([o respondsToSelector:@selector(proxyForJson)]) {
+		return [self writeValue:[o proxyForJson]];
+
+	}
+
+	self.error = [NSString stringWithFormat:@"JSON serialisation not supported for %@", [o class]];
+	return NO;
+}
+
+static const char *strForChar(int c) {
+	switch (c) {
+		case 0: return "\\u0000"; break;
+		case 1: return "\\u0001"; break;
+		case 2: return "\\u0002"; break;
+		case 3: return "\\u0003"; break;
+		case 4: return "\\u0004"; break;
+		case 5: return "\\u0005"; break;
+		case 6: return "\\u0006"; break;
+		case 7: return "\\u0007"; break;
+		case 8: return "\\b"; break;
+		case 9: return "\\t"; break;
+		case 10: return "\\n"; break;
+		case 11: return "\\u000b"; break;
+		case 12: return "\\f"; break;
+		case 13: return "\\r"; break;
+		case 14: return "\\u000e"; break;
+		case 15: return "\\u000f"; break;
+		case 16: return "\\u0010"; break;
+		case 17: return "\\u0011"; break;
+		case 18: return "\\u0012"; break;
+		case 19: return "\\u0013"; break;
+		case 20: return "\\u0014"; break;
+		case 21: return "\\u0015"; break;
+		case 22: return "\\u0016"; break;
+		case 23: return "\\u0017"; break;
+		case 24: return "\\u0018"; break;
+		case 25: return "\\u0019"; break;
+		case 26: return "\\u001a"; break;
+		case 27: return "\\u001b"; break;
+		case 28: return "\\u001c"; break;
+		case 29: return "\\u001d"; break;
+		case 30: return "\\u001e"; break;
+		case 31: return "\\u001f"; break;
+		case 34: return "\\\""; break;
+		case 92: return "\\\\"; break;
+	}
+	NSLog(@"FUTFUTFUT: -->'%c'<---", c);
+	return "FUTFUTFUT";
+}
+
+- (BOOL)writeString:(NSString*)string {
+	if ([state isInvalidState:self]) return NO;
+	[state appendSeparator:self];
+	if (humanReadable) [state appendWhitespace:self];
+
+	NSMutableData *buf = [cache objectForKey:string];
+	if (!buf) {
+
+        NSUInteger len = [string lengthOfBytesUsingEncoding:NSUTF8StringEncoding];
+        const char *utf8 = [string UTF8String];
+        NSUInteger written = 0, i = 0;
+
+        buf = [NSMutableData dataWithCapacity:(NSUInteger)(len * 1.1f)];
+        [buf appendBytes:"\"" length:1];
+
+        for (i = 0; i < len; i++) {
+            int c = utf8[i];
+            BOOL isControlChar = c >= 0 && c < 32;
+            if (isControlChar || c == '"' || c == '\\') {
+                if (i - written)
+                    [buf appendBytes:utf8 + written length:i - written];
+                written = i + 1;
+
+                const char *t = strForChar(c);
+                [buf appendBytes:t length:strlen(t)];
+            }
+        }
+
+        if (i - written)
+            [buf appendBytes:utf8 + written length:i - written];
+
+        [buf appendBytes:"\"" length:1];
+        [cache setObject:buf forKey:string];
+    }
+
+	[delegate writer:self appendBytes:[buf bytes] length:[buf length]];
+	[state transitionState:self];
+	return YES;
+}
+
+- (BOOL)writeNumber:(NSNumber*)number {
+	if (number == kTrue || number == kFalse)
+		return [self writeBool:[number boolValue]];
+
+	if ([state isInvalidState:self]) return NO;
+	if ([state expectingKey:self]) return NO;
+	[state appendSeparator:self];
+	if (humanReadable) [state appendWhitespace:self];
+
+	if ([kPositiveInfinity isEqualToNumber:number]) {
+		self.error = @"+Infinity is not a valid number in JSON";
+		return NO;
+
+	} else if ([kNegativeInfinity isEqualToNumber:number]) {
+		self.error = @"-Infinity is not a valid number in JSON";
+		return NO;
+
+	} else if ([kNotANumber isEqualToNumber:number]) {
+		self.error = @"NaN is not a valid number in JSON";
+		return NO;
+	}
+
+	const char *objcType = [number objCType];
+	char num[128];
+	size_t len;
+
+	switch (objcType[0]) {
+		case 'c': case 'i': case 's': case 'l': case 'q':
+			len = snprintf(num, sizeof num, "%lld", [number longLongValue]);
+			break;
+		case 'C': case 'I': case 'S': case 'L': case 'Q':
+			len = snprintf(num, sizeof num, "%llu", [number unsignedLongLongValue]);
+			break;
+		case 'f': case 'd': default:
+			if ([number isKindOfClass:[NSDecimalNumber class]]) {
+				char const *utf8 = [[number stringValue] UTF8String];
+				[delegate writer:self appendBytes:utf8 length: strlen(utf8)];
+				[state transitionState:self];
+				return YES;
+			}
+			len = snprintf(num, sizeof num, "%.17g", [number doubleValue]);
+			break;
+	}
+	[delegate writer:self appendBytes:num length: len];
+	[state transitionState:self];
+	return YES;
+}
+
+@end
diff --git a/json-framework-3.2.0/Classes/SBJsonStreamWriterAccumulator.h b/json-framework-3.2.0/Classes/SBJsonStreamWriterAccumulator.h
new file mode 100644
index 0000000..b12d0d5
--- /dev/null
+++ b/json-framework-3.2.0/Classes/SBJsonStreamWriterAccumulator.h
@@ -0,0 +1,36 @@
+/*
+ Copyright (C) 2011 Stig Brautaset. All rights reserved.
+ 
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions are met:
+ 
+ * Redistributions of source code must retain the above copyright notice, this
+   list of conditions and the following disclaimer.
+ 
+ * Redistributions in binary form must reproduce the above copyright notice,
+   this list of conditions and the following disclaimer in the documentation
+   and/or other materials provided with the distribution.
+ 
+ * Neither the name of the author nor the names of its contributors may be used
+   to endorse or promote products derived from this software without specific
+   prior written permission.
+ 
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+ FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+ SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+ CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+ OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#import "SBJsonStreamWriter.h"
+
+@interface SBJsonStreamWriterAccumulator : NSObject <SBJsonStreamWriterDelegate>
+
+@property (readonly, copy) NSMutableData* data;
+
+@end
diff --git a/json-framework-3.2.0/Classes/SBJsonStreamWriterAccumulator.m b/json-framework-3.2.0/Classes/SBJsonStreamWriterAccumulator.m
new file mode 100644
index 0000000..d78c317
--- /dev/null
+++ b/json-framework-3.2.0/Classes/SBJsonStreamWriterAccumulator.m
@@ -0,0 +1,56 @@
+/*
+ Copyright (C) 2011 Stig Brautaset. All rights reserved.
+ 
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions are met:
+ 
+ * Redistributions of source code must retain the above copyright notice, this
+   list of conditions and the following disclaimer.
+ 
+ * Redistributions in binary form must reproduce the above copyright notice,
+   this list of conditions and the following disclaimer in the documentation
+   and/or other materials provided with the distribution.
+ 
+ * Neither the name of the author nor the names of its contributors may be used
+   to endorse or promote products derived from this software without specific
+   prior written permission.
+ 
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+ FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+ SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+ CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+ OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#if !__has_feature(objc_arc)
+#error "This source file must be compiled with ARC enabled!"
+#endif
+
+#import "SBJsonStreamWriterAccumulator.h"
+
+
+@implementation SBJsonStreamWriterAccumulator
+
+@synthesize data;
+
+- (id)init {
+    self = [super init];
+    if (self) {
+        data = [[NSMutableData alloc] initWithCapacity:8096u];
+    }
+    return self;
+}
+
+
+#pragma mark SBJsonStreamWriterDelegate
+
+- (void)writer:(SBJsonStreamWriter *)writer appendBytes:(const void *)bytes length:(NSUInteger)length {
+    [data appendBytes:bytes length:length];
+}
+
+@end
diff --git a/json-framework-3.2.0/Classes/SBJsonStreamWriterState.h b/json-framework-3.2.0/Classes/SBJsonStreamWriterState.h
new file mode 100644
index 0000000..90d442a
--- /dev/null
+++ b/json-framework-3.2.0/Classes/SBJsonStreamWriterState.h
@@ -0,0 +1,69 @@
+/*
+ Copyright (c) 2010, Stig Brautaset.
+ All rights reserved.
+ 
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions are
+ met:
+ 
+   Redistributions of source code must retain the above copyright
+   notice, this list of conditions and the following disclaimer.
+  
+   Redistributions in binary form must reproduce the above copyright
+   notice, this list of conditions and the following disclaimer in the
+   documentation and/or other materials provided with the distribution.
+ 
+   Neither the name of the the author nor the names of its contributors
+   may be used to endorse or promote products derived from this software
+   without specific prior written permission.
+ 
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
+ IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
+ TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
+ PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+ HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#import <Foundation/Foundation.h>
+
+@class SBJsonStreamWriter;
+
+@interface SBJsonStreamWriterState : NSObject
++ (id)sharedInstance;
+- (BOOL)isInvalidState:(SBJsonStreamWriter*)writer;
+- (void)appendSeparator:(SBJsonStreamWriter*)writer;
+- (BOOL)expectingKey:(SBJsonStreamWriter*)writer;
+- (void)transitionState:(SBJsonStreamWriter*)writer;
+- (void)appendWhitespace:(SBJsonStreamWriter*)writer;
+@end
+
+@interface SBJsonStreamWriterStateObjectStart : SBJsonStreamWriterState
+@end
+
+@interface SBJsonStreamWriterStateObjectKey : SBJsonStreamWriterStateObjectStart
+@end
+
+@interface SBJsonStreamWriterStateObjectValue : SBJsonStreamWriterState
+@end
+
+@interface SBJsonStreamWriterStateArrayStart : SBJsonStreamWriterState
+@end
+
+@interface SBJsonStreamWriterStateArrayValue : SBJsonStreamWriterState
+@end
+
+@interface SBJsonStreamWriterStateStart : SBJsonStreamWriterState
+@end
+
+@interface SBJsonStreamWriterStateComplete : SBJsonStreamWriterState
+@end
+
+@interface SBJsonStreamWriterStateError : SBJsonStreamWriterState
+@end
+
diff --git a/json-framework-3.2.0/Classes/SBJsonStreamWriterState.m b/json-framework-3.2.0/Classes/SBJsonStreamWriterState.m
new file mode 100644
index 0000000..a87b447
--- /dev/null
+++ b/json-framework-3.2.0/Classes/SBJsonStreamWriterState.m
@@ -0,0 +1,147 @@
+/*
+ Copyright (c) 2010, Stig Brautaset.
+ All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions are
+ met:
+
+   Redistributions of source code must retain the above copyright
+   notice, this list of conditions and the following disclaimer.
+
+   Redistributions in binary form must reproduce the above copyright
+   notice, this list of conditions and the following disclaimer in the
+   documentation and/or other materials provided with the distribution.
+
+   Neither the name of the the author nor the names of its contributors
+   may be used to endorse or promote products derived from this software
+   without specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
+ IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
+ TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
+ PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+ HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#if !__has_feature(objc_arc)
+#error "This source file must be compiled with ARC enabled!"
+#endif
+
+#import "SBJsonStreamWriterState.h"
+#import "SBJsonStreamWriter.h"
+
+#define SINGLETON \
++ (id)sharedInstance { \
+    static id state = nil; \
+    if (!state) { \
+        @synchronized(self) { \
+            if (!state) state = [[self alloc] init]; \
+        } \
+    } \
+    return state; \
+}
+
+
+@implementation SBJsonStreamWriterState
++ (id)sharedInstance { return nil; }
+- (BOOL)isInvalidState:(SBJsonStreamWriter*)writer { return NO; }
+- (void)appendSeparator:(SBJsonStreamWriter*)writer {}
+- (BOOL)expectingKey:(SBJsonStreamWriter*)writer { return NO; }
+- (void)transitionState:(SBJsonStreamWriter *)writer {}
+- (void)appendWhitespace:(SBJsonStreamWriter*)writer {
+	[writer appendBytes:"\n" length:1];
+	for (NSUInteger i = 0; i < writer.stateStack.count; i++)
+	    [writer appendBytes:"  " length:2];
+}
+@end
+
+@implementation SBJsonStreamWriterStateObjectStart
+
+SINGLETON
+
+- (void)transitionState:(SBJsonStreamWriter *)writer {
+	writer.state = [SBJsonStreamWriterStateObjectValue sharedInstance];
+}
+- (BOOL)expectingKey:(SBJsonStreamWriter *)writer {
+	writer.error = @"JSON object key must be string";
+	return YES;
+}
+@end
+
+@implementation SBJsonStreamWriterStateObjectKey
+
+SINGLETON
+
+- (void)appendSeparator:(SBJsonStreamWriter *)writer {
+	[writer appendBytes:"," length:1];
+}
+@end
+
+@implementation SBJsonStreamWriterStateObjectValue
+
+SINGLETON
+
+- (void)appendSeparator:(SBJsonStreamWriter *)writer {
+	[writer appendBytes:":" length:1];
+}
+- (void)transitionState:(SBJsonStreamWriter *)writer {
+    writer.state = [SBJsonStreamWriterStateObjectKey sharedInstance];
+}
+- (void)appendWhitespace:(SBJsonStreamWriter *)writer {
+	[writer appendBytes:" " length:1];
+}
+@end
+
+@implementation SBJsonStreamWriterStateArrayStart
+
+SINGLETON
+
+- (void)transitionState:(SBJsonStreamWriter *)writer {
+    writer.state = [SBJsonStreamWriterStateArrayValue sharedInstance];
+}
+@end
+
+@implementation SBJsonStreamWriterStateArrayValue
+
+SINGLETON
+
+- (void)appendSeparator:(SBJsonStreamWriter *)writer {
+	[writer appendBytes:"," length:1];
+}
+@end
+
+@implementation SBJsonStreamWriterStateStart
+
+SINGLETON
+
+
+- (void)transitionState:(SBJsonStreamWriter *)writer {
+    writer.state = [SBJsonStreamWriterStateComplete sharedInstance];
+}
+- (void)appendSeparator:(SBJsonStreamWriter *)writer {
+}
+@end
+
+@implementation SBJsonStreamWriterStateComplete
+
+SINGLETON
+
+- (BOOL)isInvalidState:(SBJsonStreamWriter*)writer {
+	writer.error = @"Stream is closed";
+	return YES;
+}
+@end
+
+@implementation SBJsonStreamWriterStateError
+
+SINGLETON
+
+@end
+
diff --git a/json-framework-3.2.0/Classes/SBJsonTokeniser.h b/json-framework-3.2.0/Classes/SBJsonTokeniser.h
new file mode 100644
index 0000000..e484a94
--- /dev/null
+++ b/json-framework-3.2.0/Classes/SBJsonTokeniser.h
@@ -0,0 +1,67 @@
+/*
+ Copyright (c) 2010, Stig Brautaset.
+ All rights reserved.
+ 
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions are
+ met:
+ 
+ Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+ 
+ Redistributions in binary form must reproduce the above copyright
+ notice, this list of conditions and the following disclaimer in the
+ documentation and/or other materials provided with the distribution.
+ 
+ Neither the name of the the author nor the names of its contributors
+ may be used to endorse or promote products derived from this software
+ without specific prior written permission.
+ 
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
+ IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
+ TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
+ PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+ HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#import <Foundation/Foundation.h>
+
+typedef enum {
+    sbjson_token_error = -1,
+    sbjson_token_eof,
+    
+    sbjson_token_array_start,
+    sbjson_token_array_end,
+    
+    sbjson_token_object_start,
+    sbjson_token_object_end,
+
+    sbjson_token_separator,
+    sbjson_token_keyval_separator,
+    
+    sbjson_token_number,
+    sbjson_token_string,
+    sbjson_token_true,
+    sbjson_token_false,
+    sbjson_token_null,
+    
+} sbjson_token_t;
+
+@class SBJsonUTF8Stream;
+
+@interface SBJsonTokeniser : NSObject 
+
+@property (strong) SBJsonUTF8Stream *stream;
+@property (copy) NSString *error;
+
+- (void)appendData:(NSData*)data_;
+
+- (sbjson_token_t)getToken:(NSObject**)token;
+
+@end
diff --git a/json-framework-3.2.0/Classes/SBJsonTokeniser.m b/json-framework-3.2.0/Classes/SBJsonTokeniser.m
new file mode 100644
index 0000000..9b68d2e
--- /dev/null
+++ b/json-framework-3.2.0/Classes/SBJsonTokeniser.m
@@ -0,0 +1,477 @@
+/*
+ Copyright (c) 2010-2011, Stig Brautaset. All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions are
+ met:
+
+ Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+
+ Redistributions in binary form must reproduce the above copyright
+ notice, this list of conditions and the following disclaimer in the
+ documentation and/or other materials provided with the distribution.
+
+ Neither the name of the the author nor the names of its contributors
+ may be used to endorse or promote products derived from this software
+ without specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
+ IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
+ TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
+ PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+ HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#if !__has_feature(objc_arc)
+#error "This source file must be compiled with ARC enabled!"
+#endif
+
+#import "SBJsonTokeniser.h"
+#import "SBJsonUTF8Stream.h"
+
+#define SBStringIsIllegalSurrogateHighCharacter(character) (((character) >= 0xD800UL) && ((character) <= 0xDFFFUL))
+#define SBStringIsSurrogateLowCharacter(character) ((character >= 0xDC00UL) && (character <= 0xDFFFUL))
+#define SBStringIsSurrogateHighCharacter(character) ((character >= 0xD800UL) && (character <= 0xDBFFUL))
+
+static int const DECIMAL_MAX_PRECISION = 38;
+static int const DECIMAL_EXPONENT_MAX = 127;
+static short const DECIMAL_EXPONENT_MIN = -128;
+static int const LONG_LONG_DIGITS = 19;
+
+static NSCharacterSet *kDecimalDigitCharacterSet;
+
+@implementation SBJsonTokeniser
+
+@synthesize error = _error;
+@synthesize stream = _stream;
+
++ (void)initialize {
+    kDecimalDigitCharacterSet = [NSCharacterSet decimalDigitCharacterSet];
+}
+
+- (id)init {
+    self = [super init];
+    if (self) {
+        _stream = [[SBJsonUTF8Stream alloc] init];
+
+    }
+
+    return self;
+}
+
+
+- (void)appendData:(NSData *)data_ {
+    [_stream appendData:data_];
+}
+
+
+- (sbjson_token_t)match:(const char *)pattern length:(NSUInteger)len retval:(sbjson_token_t)token {
+    if (![_stream haveRemainingCharacters:len])
+        return sbjson_token_eof;
+
+    if ([_stream skipCharacters:pattern length:len])
+        return token;
+
+    self.error = [NSString stringWithFormat:@"Expected '%s' after initial '%.1s'", pattern, pattern];
+    return sbjson_token_error;
+}
+
+- (BOOL)decodeEscape:(unichar)ch into:(unichar*)decoded {
+    switch (ch) {
+        case '\\':
+        case '/':
+        case '"':
+            *decoded = ch;
+            break;
+
+        case 'b':
+            *decoded = '\b';
+            break;
+
+        case 'n':
+            *decoded = '\n';
+            break;
+
+        case 'r':
+            *decoded = '\r';
+            break;
+
+        case 't':
+            *decoded = '\t';
+            break;
+
+        case 'f':
+            *decoded = '\f';
+            break;
+
+        default:
+            self.error = @"Illegal escape character";
+            return NO;
+            break;
+    }
+    return YES;
+}
+
+- (BOOL)decodeHexQuad:(unichar*)quad {
+    unichar c, tmp = 0;
+
+    for (int i = 0; i < 4; i++) {
+        (void)[_stream getNextUnichar:&c];
+        tmp *= 16;
+        switch (c) {
+            case '0' ... '9':
+                tmp += c - '0';
+                break;
+
+            case 'a' ... 'f':
+                tmp += 10 + c - 'a';
+                break;
+
+            case 'A' ... 'F':
+                tmp += 10 + c - 'A';
+                break;
+
+            default:
+                return NO;
+        }
+    }
+    *quad = tmp;
+    return YES;
+}
+
+- (sbjson_token_t)getStringToken:(NSObject**)token {
+    NSMutableString *acc = nil;
+
+    for (;;) {
+        [_stream skip];
+        
+        unichar ch;
+        {
+            NSMutableString *string = nil;
+            
+            if (![_stream getStringFragment:&string])
+                return sbjson_token_eof;
+            
+            if (!string) {
+                self.error = @"Broken Unicode encoding";
+                return sbjson_token_error;
+            }
+            
+            if (![_stream getUnichar:&ch])
+                return sbjson_token_eof;
+            
+            if (acc) {
+                [acc appendString:string];
+                
+            } else if (ch == '"') {
+                *token = [string copy];
+                [_stream skip];
+                return sbjson_token_string;
+                
+            } else {
+                acc = [string mutableCopy];
+            }
+        }
+
+        
+        switch (ch) {
+            case 0 ... 0x1F:
+                self.error = [NSString stringWithFormat:@"Unescaped control character [0x%0.2X]", (int)ch];
+                return sbjson_token_error;
+                break;
+
+            case '"':
+                *token = acc;
+                [_stream skip];
+                return sbjson_token_string;
+                break;
+
+            case '\\':
+                if (![_stream getNextUnichar:&ch])
+                    return sbjson_token_eof;
+
+                if (ch == 'u') {
+                    if (![_stream haveRemainingCharacters:5])
+                        return sbjson_token_eof;
+
+                    unichar hi;
+                    if (![self decodeHexQuad:&hi]) {
+                        self.error = @"Invalid hex quad";
+                        return sbjson_token_error;
+                    }
+
+                    if (SBStringIsSurrogateHighCharacter(hi)) {
+                        unichar lo;
+
+                        if (![_stream haveRemainingCharacters:6])
+                            return sbjson_token_eof;
+
+                        (void)[_stream getNextUnichar:&ch];
+                        (void)[_stream getNextUnichar:&lo];
+                        if (ch != '\\' || lo != 'u' || ![self decodeHexQuad:&lo]) {
+                            self.error = @"Missing low character in surrogate pair";
+                            return sbjson_token_error;
+                        }
+
+                        if (!SBStringIsSurrogateLowCharacter(lo)) {
+                            self.error = @"Invalid low character in surrogate pair";
+                            return sbjson_token_error;
+                        }
+
+                        [acc appendFormat:@"%C%C", hi, lo];
+                    } else if (SBStringIsIllegalSurrogateHighCharacter(hi)) {
+                        self.error = @"Invalid high character in surrogate pair";
+                        return sbjson_token_error;
+                    } else {
+                        [acc appendFormat:@"%C", hi];
+                    }
+
+
+                } else {
+                    unichar decoded;
+                    if (![self decodeEscape:ch into:&decoded])
+                        return sbjson_token_error;
+                    [acc appendFormat:@"%C", decoded];
+                }
+
+                break;
+
+            default: {
+                self.error = [NSString stringWithFormat:@"Invalid UTF-8: '%x'", (int)ch];
+                return sbjson_token_error;
+                break;
+            }
+        }
+    }
+    return sbjson_token_eof;
+}
+
+- (sbjson_token_t)getNumberToken:(NSObject**)token {
+
+    NSUInteger numberStart = _stream.index;
+
+    unichar ch;
+    if (![_stream getUnichar:&ch])
+        return sbjson_token_eof;
+
+    BOOL isNegative = NO;
+    if (ch == '-') {
+        isNegative = YES;
+        if (![_stream getNextUnichar:&ch])
+            return sbjson_token_eof;
+    }
+
+    unsigned long long mantissa = 0;
+    int mantissa_length = 0;
+    
+    if (ch == '0') {
+        mantissa_length++;
+        if (![_stream getNextUnichar:&ch])
+            return sbjson_token_eof;
+
+        if ([kDecimalDigitCharacterSet characterIsMember:ch]) {
+            self.error = @"Leading zero is illegal in number";
+            return sbjson_token_error;
+        }
+    }
+
+    while ([kDecimalDigitCharacterSet characterIsMember:ch]) {
+        mantissa *= 10;
+        mantissa += (ch - '0');
+        mantissa_length++;
+
+        if (![_stream getNextUnichar:&ch])
+            return sbjson_token_eof;
+    }
+
+    short exponent = 0;
+    BOOL isFloat = NO;
+
+    if (ch == '.') {
+        isFloat = YES;
+        if (![_stream getNextUnichar:&ch])
+            return sbjson_token_eof;
+
+        while ([kDecimalDigitCharacterSet characterIsMember:ch]) {
+            mantissa *= 10;
+            mantissa += (ch - '0');
+            mantissa_length++;
+            exponent--;
+
+            if (![_stream getNextUnichar:&ch])
+                return sbjson_token_eof;
+        }
+
+        if (!exponent) {
+            self.error = @"No digits after decimal point";
+            return sbjson_token_error;
+        }
+    }
+
+    BOOL hasExponent = NO;
+    if (ch == 'e' || ch == 'E') {
+        hasExponent = YES;
+
+        if (![_stream getNextUnichar:&ch])
+            return sbjson_token_eof;
+
+        BOOL expIsNegative = NO;
+        if (ch == '-') {
+            expIsNegative = YES;
+            if (![_stream getNextUnichar:&ch])
+                return sbjson_token_eof;
+
+        } else if (ch == '+') {
+            if (![_stream getNextUnichar:&ch])
+                return sbjson_token_eof;
+        }
+
+        short explicit_exponent = 0;
+        short explicit_exponent_length = 0;
+        while ([kDecimalDigitCharacterSet characterIsMember:ch]) {
+            explicit_exponent *= 10;
+            explicit_exponent += (ch - '0');
+            explicit_exponent_length++;
+
+            if (![_stream getNextUnichar:&ch])
+                return sbjson_token_eof;
+        }
+
+        if (explicit_exponent_length == 0) {
+            self.error = @"No digits in exponent";
+            return sbjson_token_error;
+        }
+
+        if (expIsNegative)
+            exponent -= explicit_exponent;
+        else
+            exponent += explicit_exponent;
+    }
+
+    if (!mantissa_length && isNegative) {
+        self.error = @"No digits after initial minus";
+        return sbjson_token_error;
+
+    } else if (mantissa_length > DECIMAL_MAX_PRECISION) {
+        self.error = @"Precision is too high";
+        return sbjson_token_error;
+
+    } else if (exponent > DECIMAL_EXPONENT_MAX || exponent < DECIMAL_EXPONENT_MIN) {
+        self.error = @"Exponent out of range";
+        return sbjson_token_error;
+    }
+
+    if (mantissa_length <= LONG_LONG_DIGITS) {
+        if (!isFloat && !hasExponent) {
+            *token = [NSNumber numberWithLongLong: isNegative ? -mantissa : mantissa];
+        } else if (mantissa == 0) {
+            *token = [NSNumber numberWithFloat:-0.0f];
+        } else {
+            *token = [NSDecimalNumber decimalNumberWithMantissa:mantissa
+                                                       exponent:exponent
+                                                     isNegative:isNegative];
+        }
+
+    } else {
+        NSString *number = [_stream stringWithRange:NSMakeRange(numberStart, _stream.index - numberStart)];
+        *token = [NSDecimalNumber decimalNumberWithString:number];
+
+    }
+
+    return sbjson_token_number;
+}
+
+- (sbjson_token_t)getToken:(NSObject **)token {
+
+    [_stream skipWhitespace];
+
+    unichar ch;
+    if (![_stream getUnichar:&ch])
+        return sbjson_token_eof;
+
+    NSUInteger oldIndexLocation = _stream.index;
+    sbjson_token_t tok;
+
+    switch (ch) {
+        case '[':
+            tok = sbjson_token_array_start;
+            [_stream skip];
+            break;
+
+        case ']':
+            tok = sbjson_token_array_end;
+            [_stream skip];
+            break;
+
+        case '{':
+            tok = sbjson_token_object_start;
+            [_stream skip];
+            break;
+
+        case ':':
+            tok = sbjson_token_keyval_separator;
+            [_stream skip];
+            break;
+
+        case '}':
+            tok = sbjson_token_object_end;
+            [_stream skip];
+            break;
+
+        case ',':
+            tok = sbjson_token_separator;
+            [_stream skip];
+            break;
+
+        case 'n':
+            tok = [self match:"null" length:4 retval:sbjson_token_null];
+            break;
+
+        case 't':
+            tok = [self match:"true" length:4 retval:sbjson_token_true];
+            break;
+
+        case 'f':
+            tok = [self match:"false" length:5 retval:sbjson_token_false];
+            break;
+
+        case '"':
+            tok = [self getStringToken:token];
+            break;
+
+        case '0' ... '9':
+        case '-':
+            tok = [self getNumberToken:token];
+            break;
+
+        case '+':
+            self.error = @"Leading + is illegal in number";
+            tok = sbjson_token_error;
+            break;
+
+        default:
+            self.error = [NSString stringWithFormat:@"Illegal start of token [%c]", ch];
+            tok = sbjson_token_error;
+            break;
+    }
+
+    if (tok == sbjson_token_eof) {
+        // We ran out of bytes in the middle of a token.
+        // We don't know how to restart in mid-flight, so
+        // rewind to the start of the token for next attempt.
+        // Hopefully we'll have more data then.
+        _stream.index = oldIndexLocation;
+    }
+
+    return tok;
+}
+
+
+@end
diff --git a/json-framework-3.2.0/Classes/SBJsonUTF8Stream.h b/json-framework-3.2.0/Classes/SBJsonUTF8Stream.h
new file mode 100644
index 0000000..a26f032
--- /dev/null
+++ b/json-framework-3.2.0/Classes/SBJsonUTF8Stream.h
@@ -0,0 +1,58 @@
+/*
+ Copyright (c) 2011, Stig Brautaset. All rights reserved.
+ 
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions are
+ met:
+ 
+ Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+ 
+ Redistributions in binary form must reproduce the above copyright
+ notice, this list of conditions and the following disclaimer in the
+ documentation and/or other materials provided with the distribution.
+ 
+ Neither the name of the the author nor the names of its contributors
+ may be used to endorse or promote products derived from this software
+ without specific prior written permission.
+ 
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
+ IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
+ TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
+ PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+ HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#import <Foundation/Foundation.h>
+
+
+@interface SBJsonUTF8Stream : NSObject {
+@private
+    const char *_bytes;
+    NSMutableData *_data;
+    NSUInteger _length;
+}
+
+@property (assign) NSUInteger index;
+
+- (void)appendData:(NSData*)data_;
+
+- (BOOL)haveRemainingCharacters:(NSUInteger)chars;
+
+- (void)skip;
+- (void)skipWhitespace;
+- (BOOL)skipCharacters:(const char *)chars length:(NSUInteger)len;
+
+- (BOOL)getUnichar:(unichar*)ch;
+- (BOOL)getNextUnichar:(unichar*)ch;
+- (BOOL)getStringFragment:(NSString**)string;
+
+- (NSString*)stringWithRange:(NSRange)range;
+
+@end
diff --git a/json-framework-3.2.0/Classes/SBJsonUTF8Stream.m b/json-framework-3.2.0/Classes/SBJsonUTF8Stream.m
new file mode 100644
index 0000000..8185ee1
--- /dev/null
+++ b/json-framework-3.2.0/Classes/SBJsonUTF8Stream.m
@@ -0,0 +1,145 @@
+/*
+ Copyright (c) 2011, Stig Brautaset. All rights reserved.
+ 
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions are
+ met:
+ 
+ Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+ 
+ Redistributions in binary form must reproduce the above copyright
+ notice, this list of conditions and the following disclaimer in the
+ documentation and/or other materials provided with the distribution.
+ 
+ Neither the name of the the author nor the names of its contributors
+ may be used to endorse or promote products derived from this software
+ without specific prior written permission.
+ 
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
+ IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
+ TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
+ PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+ HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#if !__has_feature(objc_arc)
+#error "This source file must be compiled with ARC enabled!"
+#endif
+
+#import "SBJsonUTF8Stream.h"
+
+
+@implementation SBJsonUTF8Stream
+
+@synthesize index = _index;
+
+- (id)init {
+    self = [super init];
+    if (self) {
+        _data = [[NSMutableData alloc] initWithCapacity:4096u];
+    }
+    return self;
+}
+
+
+- (void)appendData:(NSData *)data_ {
+    
+    if (_index) {
+        // Discard data we've already parsed
+		[_data replaceBytesInRange:NSMakeRange(0, _index) withBytes:"" length:0];
+        
+        // Reset index to point to current position
+		_index = 0;
+	}
+    
+    [_data appendData:data_];
+    
+    // This is an optimisation. 
+    _bytes = (const char*)[_data bytes];
+    _length = [_data length];
+}
+
+
+- (BOOL)getUnichar:(unichar*)ch {
+    if (_index < _length) {
+        *ch = (unichar)_bytes[_index];
+        return YES;
+    }
+    return NO;
+}
+
+- (BOOL)getNextUnichar:(unichar*)ch {
+    if (++_index < _length) {
+        *ch = (unichar)_bytes[_index];
+        return YES;
+    }
+    return NO;
+}
+
+- (BOOL)getStringFragment:(NSString **)string {
+    NSUInteger start = _index;
+    while (_index < _length) {
+        switch (_bytes[_index]) {
+            case '"':
+            case '\\':
+            case 0 ... 0x1f:
+                *string = [[NSString alloc] initWithBytes:(_bytes + start)
+                                                   length:(_index - start)
+                                                 encoding:NSUTF8StringEncoding];
+                return YES;
+                break;
+            default:
+                _index++;
+                break;
+        }
+    }
+    return NO;
+}
+
+- (void)skip {
+    _index++;
+}
+
+- (void)skipWhitespace {
+    while (_index < _length) {
+        switch (_bytes[_index]) {
+            case ' ':
+            case '\t':
+            case '\r':
+            case '\n':
+                _index++;
+                break;
+            default:
+                return;
+                break;
+        }
+    }
+}
+
+- (BOOL)haveRemainingCharacters:(NSUInteger)chars {
+    return [_data length] - _index >= chars;
+}
+
+- (BOOL)skipCharacters:(const char *)chars length:(NSUInteger)len {
+    const void *bytes = ((const char*)[_data bytes]) + _index;
+    if (!memcmp(bytes, chars, len)) {
+        _index += len;
+        return YES;
+    }
+    return NO;
+}
+
+- (NSString*)stringWithRange:(NSRange)range {
+    return [[NSString alloc] initWithBytes:_bytes + range.location length:range.length encoding:NSUTF8StringEncoding];
+    
+}
+
+
+@end
diff --git a/json-framework-3.2.0/Classes/SBJsonWriter.h b/json-framework-3.2.0/Classes/SBJsonWriter.h
new file mode 100644
index 0000000..8b0a059
--- /dev/null
+++ b/json-framework-3.2.0/Classes/SBJsonWriter.h
@@ -0,0 +1,119 @@
+/*
+ Copyright (C) 2009 Stig Brautaset. All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions are met:
+
+ * Redistributions of source code must retain the above copyright notice, this
+   list of conditions and the following disclaimer.
+
+ * Redistributions in binary form must reproduce the above copyright notice,
+   this list of conditions and the following disclaimer in the documentation
+   and/or other materials provided with the distribution.
+
+ * Neither the name of the author nor the names of its contributors may be used
+   to endorse or promote products derived from this software without specific
+   prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+ FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+ SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+ CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+ OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#import <Foundation/Foundation.h>
+
+/**
+ The JSON writer class.
+
+ This uses SBJsonStreamWriter internally.
+
+ */
+
+@interface SBJsonWriter : NSObject
+
+/**
+ The maximum recursing depth.
+
+ Defaults to 32. If the input is nested deeper than this the input will be deemed to be
+ malicious and the parser returns nil, signalling an error. ("Nested too deep".) You can
+ turn off this security feature by setting the maxDepth value to 0.
+ */
+@property NSUInteger maxDepth;
+
+/**
+ Return an error trace, or nil if there was no errors.
+
+ Note that this method returns the trace of the last method that failed.
+ You need to check the return value of the call you're making to figure out
+ if the call actually failed, before you know call this method.
+ */
+@property (readonly, copy) NSString *error;
+
+/**
+ Whether we are generating human-readable (multiline) JSON.
+
+ Set whether or not to generate human-readable JSON. The default is NO, which produces
+ JSON without any whitespace. (Except inside strings.) If set to YES, generates human-readable
+ JSON with linebreaks after each array value and dictionary key/value pair, indented two
+ spaces per nesting level.
+ */
+@property BOOL humanReadable;
+
+/**
+ Whether or not to sort the dictionary keys in the output.
+
+ If this is set to YES, the dictionary keys in the JSON output will be in sorted order.
+ (This is useful if you need to compare two structures, for example.) The default is NO.
+ */
+@property BOOL sortKeys;
+
+/**
+ An optional comparator to be used if sortKeys is YES.
+
+ If this is nil, sorting will be done via @selector(compare:).
+ */
+@property (copy) NSComparator sortKeysComparator;
+
+/**
+ Return JSON representation for the given object.
+
+ Returns a string containing JSON representation of the passed in value, or nil on error.
+ If nil is returned and error is not NULL, *error can be interrogated to find the cause of the error.
+
+ @param value any instance that can be represented as JSON text.
+ */
+- (NSString*)stringWithObject:(id)value;
+
+/**
+ Return JSON representation for the given object.
+
+ Returns an NSData object containing JSON represented as UTF8 text, or nil on error.
+
+ @param value any instance that can be represented as JSON text.
+ */
+- (NSData*)dataWithObject:(id)value;
+
+/**
+ Return JSON representation (or fragment) for the given object.
+
+ Returns a string containing JSON representation of the passed in value, or nil on error.
+ If nil is returned and error is not NULL, *error can be interrogated to find the cause of the error.
+
+ @param value any instance that can be represented as a JSON fragment
+ @param error pointer to object to be populated with NSError on failure
+
+  @warning Deprecated in Version 3.2; will be removed in 4.0
+
+ */
+- (NSString*)stringWithObject:(id)value
+                        error:(NSError**)error __attribute__ ((deprecated));
+
+
+@end
diff --git a/json-framework-3.2.0/Classes/SBJsonWriter.m b/json-framework-3.2.0/Classes/SBJsonWriter.m
new file mode 100644
index 0000000..105acb9
--- /dev/null
+++ b/json-framework-3.2.0/Classes/SBJsonWriter.m
@@ -0,0 +1,116 @@
+/*
+ Copyright (C) 2009 Stig Brautaset. All rights reserved.
+ 
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions are met:
+ 
+ * Redistributions of source code must retain the above copyright notice, this
+   list of conditions and the following disclaimer.
+ 
+ * Redistributions in binary form must reproduce the above copyright notice,
+   this list of conditions and the following disclaimer in the documentation
+   and/or other materials provided with the distribution.
+ 
+ * Neither the name of the author nor the names of its contributors may be used
+   to endorse or promote products derived from this software without specific
+   prior written permission.
+ 
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+ FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+ SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+ CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+ OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#if !__has_feature(objc_arc)
+#error "This source file must be compiled with ARC enabled!"
+#endif
+
+#import "SBJsonWriter.h"
+#import "SBJsonStreamWriter.h"
+#import "SBJsonStreamWriterAccumulator.h"
+
+
+@interface SBJsonWriter ()
+@property (copy) NSString *error;
+@end
+
+@implementation SBJsonWriter
+
+@synthesize sortKeys;
+@synthesize humanReadable;
+
+@synthesize error;
+@synthesize maxDepth;
+
+@synthesize sortKeysComparator;
+
+- (id)init {
+    self = [super init];
+    if (self) {
+        self.maxDepth = 32u;        
+    }
+    return self;
+}
+
+
+- (NSString*)stringWithObject:(id)value {
+	NSData *data = [self dataWithObject:value];
+	if (data)
+		return [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
+	return nil;
+}	
+
+- (NSString*)stringWithObject:(id)value error:(NSError**)error_ {
+    NSString *tmp = [self stringWithObject:value];
+    if (tmp)
+        return tmp;
+    
+    if (error_) {
+		NSDictionary *ui = [NSDictionary dictionaryWithObjectsAndKeys:error, NSLocalizedDescriptionKey, nil];
+        *error_ = [NSError errorWithDomain:@"org.brautaset.SBJsonWriter.ErrorDomain" code:0 userInfo:ui];
+	}
+	
+    return nil;
+}
+
+- (NSData*)dataWithObject:(id)object {	
+    self.error = nil;
+
+    SBJsonStreamWriterAccumulator *accumulator = [[SBJsonStreamWriterAccumulator alloc] init];
+    
+	SBJsonStreamWriter *streamWriter = [[SBJsonStreamWriter alloc] init];
+	streamWriter.sortKeys = self.sortKeys;
+	streamWriter.maxDepth = self.maxDepth;
+	streamWriter.sortKeysComparator = self.sortKeysComparator;
+	streamWriter.humanReadable = self.humanReadable;
+    streamWriter.delegate = accumulator;
+	
+	BOOL ok = NO;
+	if ([object isKindOfClass:[NSDictionary class]])
+		ok = [streamWriter writeObject:object];
+	
+	else if ([object isKindOfClass:[NSArray class]])
+		ok = [streamWriter writeArray:object];
+		
+	else if ([object respondsToSelector:@selector(proxyForJson)])
+		return [self dataWithObject:[object proxyForJson]];
+	else {
+		self.error = @"Not valid type for JSON";
+		return nil;
+	}
+	
+	if (ok)
+		return accumulator.data;
+	
+	self.error = streamWriter.error;
+	return nil;	
+}
+	
+	
+@end
diff --git a/json-framework-3.2.0/Examples/DisplayPretty/.gitignore b/json-framework-3.2.0/Examples/DisplayPretty/.gitignore
new file mode 100644
index 0000000..12cbb71
--- /dev/null
+++ b/json-framework-3.2.0/Examples/DisplayPretty/.gitignore
@@ -0,0 +1,2 @@
+*.xcodeproj/*
+!*.xcodeproj/project.pbxproj
diff --git a/json-framework-3.2.0/Examples/DisplayPretty/DisplayPretty.xcodeproj/project.pbxproj b/json-framework-3.2.0/Examples/DisplayPretty/DisplayPretty.xcodeproj/project.pbxproj
new file mode 100644
index 0000000..789d5be
--- /dev/null
+++ b/json-framework-3.2.0/Examples/DisplayPretty/DisplayPretty.xcodeproj/project.pbxproj
@@ -0,0 +1,409 @@
+// !$*UTF8*$!
+{
+	archiveVersion = 1;
+	classes = {
+	};
+	objectVersion = 46;
+	objects = {
+
+/* Begin PBXBuildFile section */
+		BC70BEF8138D35AF00638110 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BC70BEF7138D35AF00638110 /* Cocoa.framework */; };
+		BC70BF02138D35AF00638110 /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = BC70BF00138D35AF00638110 /* InfoPlist.strings */; };
+		BC70BF05138D35AF00638110 /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = BC70BF04138D35AF00638110 /* main.m */; };
+		BC70BF08138D35AF00638110 /* Credits.rtf in Resources */ = {isa = PBXBuildFile; fileRef = BC70BF06138D35AF00638110 /* Credits.rtf */; };
+		BC70BF0B138D35AF00638110 /* DisplayPrettyAppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = BC70BF0A138D35AF00638110 /* DisplayPrettyAppDelegate.m */; };
+		BC70BF0E138D35AF00638110 /* MainMenu.xib in Resources */ = {isa = PBXBuildFile; fileRef = BC70BF0C138D35AF00638110 /* MainMenu.xib */; };
+		BC70BF62138D408900638110 /* DisplayPrettyController.m in Sources */ = {isa = PBXBuildFile; fileRef = BC70BF61138D408900638110 /* DisplayPrettyController.m */; };
+		BCA5BD8013BE00DD00223625 /* SBJson.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BCA5BD6513BE00A200223625 /* SBJson.framework */; };
+/* End PBXBuildFile section */
+
+/* Begin PBXContainerItemProxy section */
+		BCA5BD6413BE00A200223625 /* PBXContainerItemProxy */ = {
+			isa = PBXContainerItemProxy;
+			containerPortal = BCA5BD5D13BE00A200223625 /* SBJson.xcodeproj */;
+			proxyType = 2;
+			remoteGlobalIDString = BC12323D1391D5CC00131607;
+			remoteInfo = SBJson;
+		};
+		BCA5BD6613BE00A200223625 /* PBXContainerItemProxy */ = {
+			isa = PBXContainerItemProxy;
+			containerPortal = BCA5BD5D13BE00A200223625 /* SBJson.xcodeproj */;
+			proxyType = 2;
+			remoteGlobalIDString = BC1232521391D5CC00131607;
+			remoteInfo = SBJsonTests;
+		};
+		BCA5BD6813BE00A200223625 /* PBXContainerItemProxy */ = {
+			isa = PBXContainerItemProxy;
+			containerPortal = BCA5BD5D13BE00A200223625 /* SBJson.xcodeproj */;
+			proxyType = 2;
+			remoteGlobalIDString = BCC2626913920FC7003D9994;
+			remoteInfo = "sbjson-ios";
+		};
+		BCA5BD6A13BE00A200223625 /* PBXContainerItemProxy */ = {
+			isa = PBXContainerItemProxy;
+			containerPortal = BCA5BD5D13BE00A200223625 /* SBJson.xcodeproj */;
+			proxyType = 2;
+			remoteGlobalIDString = BCC2627313920FC7003D9994;
+			remoteInfo = "sbjson-iosTests";
+		};
+		BCA5BD7E13BE00D600223625 /* PBXContainerItemProxy */ = {
+			isa = PBXContainerItemProxy;
+			containerPortal = BCA5BD5D13BE00A200223625 /* SBJson.xcodeproj */;
+			proxyType = 1;
+			remoteGlobalIDString = BC12323C1391D5CC00131607;
+			remoteInfo = SBJson;
+		};
+/* End PBXContainerItemProxy section */
+
+/* Begin PBXFileReference section */
+		BC70BEF3138D35AF00638110 /* DisplayPretty.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = DisplayPretty.app; sourceTree = BUILT_PRODUCTS_DIR; };
+		BC70BEF7138D35AF00638110 /* Cocoa.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Cocoa.framework; path = System/Library/Frameworks/Cocoa.framework; sourceTree = SDKROOT; };
+		BC70BEFA138D35AF00638110 /* AppKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AppKit.framework; path = System/Library/Frameworks/AppKit.framework; sourceTree = SDKROOT; };
+		BC70BEFB138D35AF00638110 /* CoreData.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreData.framework; path = System/Library/Frameworks/CoreData.framework; sourceTree = SDKROOT; };
+		BC70BEFC138D35AF00638110 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; };
+		BC70BEFF138D35AF00638110 /* DisplayPretty-Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = "DisplayPretty-Info.plist"; sourceTree = "<group>"; };
+		BC70BF01138D35AF00638110 /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/InfoPlist.strings; sourceTree = "<group>"; };
+		BC70BF03138D35AF00638110 /* DisplayPretty-Prefix.pch */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "DisplayPretty-Prefix.pch"; sourceTree = "<group>"; };
+		BC70BF04138D35AF00638110 /* main.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = "<group>"; };
+		BC70BF07138D35AF00638110 /* en */ = {isa = PBXFileReference; lastKnownFileType = text.rtf; name = en; path = en.lproj/Credits.rtf; sourceTree = "<group>"; };
+		BC70BF09138D35AF00638110 /* DisplayPrettyAppDelegate.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = DisplayPrettyAppDelegate.h; sourceTree = "<group>"; };
+		BC70BF0A138D35AF00638110 /* DisplayPrettyAppDelegate.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = DisplayPrettyAppDelegate.m; sourceTree = "<group>"; };
+		BC70BF0D138D35AF00638110 /* en */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = en; path = en.lproj/MainMenu.xib; sourceTree = "<group>"; };
+		BC70BF60138D408900638110 /* DisplayPrettyController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DisplayPrettyController.h; sourceTree = "<group>"; };
+		BC70BF61138D408900638110 /* DisplayPrettyController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = DisplayPrettyController.m; sourceTree = "<group>"; };
+		BC76484113A3600500666A48 /* SBJson.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = SBJson.framework; sourceTree = SOURCE_ROOT; };
+		BCA5BD5D13BE00A200223625 /* SBJson.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = SBJson.xcodeproj; path = ../../SBJson.xcodeproj; sourceTree = "<group>"; };
+/* End PBXFileReference section */
+
+/* Begin PBXFrameworksBuildPhase section */
+		BC70BEF0138D35AF00638110 /* Frameworks */ = {
+			isa = PBXFrameworksBuildPhase;
+			buildActionMask = 2147483647;
+			files = (
+				BCA5BD8013BE00DD00223625 /* SBJson.framework in Frameworks */,
+				BC70BEF8138D35AF00638110 /* Cocoa.framework in Frameworks */,
+			);
+			runOnlyForDeploymentPostprocessing = 0;
+		};
+/* End PBXFrameworksBuildPhase section */
+
+/* Begin PBXGroup section */
+		BC70BEE8138D35AF00638110 = {
+			isa = PBXGroup;
+			children = (
+				BCA5BD5D13BE00A200223625 /* SBJson.xcodeproj */,
+				BC70BEFD138D35AF00638110 /* DisplayPretty */,
+				BC70BEF6138D35AF00638110 /* Frameworks */,
+				BC70BEF4138D35AF00638110 /* Products */,
+			);
+			sourceTree = "<group>";
+		};
+		BC70BEF4138D35AF00638110 /* Products */ = {
+			isa = PBXGroup;
+			children = (
+				BC70BEF3138D35AF00638110 /* DisplayPretty.app */,
+			);
+			name = Products;
+			sourceTree = "<group>";
+		};
+		BC70BEF6138D35AF00638110 /* Frameworks */ = {
+			isa = PBXGroup;
+			children = (
+				BC76484113A3600500666A48 /* SBJson.framework */,
+				BC70BEF7138D35AF00638110 /* Cocoa.framework */,
+				BC70BEF9138D35AF00638110 /* Other Frameworks */,
+			);
+			name = Frameworks;
+			sourceTree = "<group>";
+		};
+		BC70BEF9138D35AF00638110 /* Other Frameworks */ = {
+			isa = PBXGroup;
+			children = (
+				BC70BEFA138D35AF00638110 /* AppKit.framework */,
+				BC70BEFB138D35AF00638110 /* CoreData.framework */,
+				BC70BEFC138D35AF00638110 /* Foundation.framework */,
+			);
+			name = "Other Frameworks";
+			sourceTree = "<group>";
+		};
+		BC70BEFD138D35AF00638110 /* DisplayPretty */ = {
+			isa = PBXGroup;
+			children = (
+				BC70BF09138D35AF00638110 /* DisplayPrettyAppDelegate.h */,
+				BC70BF0A138D35AF00638110 /* DisplayPrettyAppDelegate.m */,
+				BC70BF60138D408900638110 /* DisplayPrettyController.h */,
+				BC70BF61138D408900638110 /* DisplayPrettyController.m */,
+				BC70BF0C138D35AF00638110 /* MainMenu.xib */,
+				BC70BEFE138D35AF00638110 /* Supporting Files */,
+			);
+			path = DisplayPretty;
+			sourceTree = "<group>";
+		};
+		BC70BEFE138D35AF00638110 /* Supporting Files */ = {
+			isa = PBXGroup;
+			children = (
+				BC70BEFF138D35AF00638110 /* DisplayPretty-Info.plist */,
+				BC70BF00138D35AF00638110 /* InfoPlist.strings */,
+				BC70BF03138D35AF00638110 /* DisplayPretty-Prefix.pch */,
+				BC70BF04138D35AF00638110 /* main.m */,
+				BC70BF06138D35AF00638110 /* Credits.rtf */,
+			);
+			name = "Supporting Files";
+			sourceTree = "<group>";
+		};
+		BCA5BD5E13BE00A200223625 /* Products */ = {
+			isa = PBXGroup;
+			children = (
+				BCA5BD6513BE00A200223625 /* SBJson.framework */,
+				BCA5BD6713BE00A200223625 /* SBJsonTests.octest */,
+				BCA5BD6913BE00A200223625 /* libsbjson-ios.a */,
+				BCA5BD6B13BE00A200223625 /* sbjson-iosTests.octest */,
+			);
+			name = Products;
+			sourceTree = "<group>";
+		};
+/* End PBXGroup section */
+
+/* Begin PBXNativeTarget section */
+		BC70BEF2138D35AF00638110 /* DisplayPretty */ = {
+			isa = PBXNativeTarget;
+			buildConfigurationList = BC70BF11138D35AF00638110 /* Build configuration list for PBXNativeTarget "DisplayPretty" */;
+			buildPhases = (
+				BC70BEEF138D35AF00638110 /* Sources */,
+				BC70BEF0138D35AF00638110 /* Frameworks */,
+				BC70BEF1138D35AF00638110 /* Resources */,
+			);
+			buildRules = (
+			);
+			dependencies = (
+				BCA5BD7F13BE00D600223625 /* PBXTargetDependency */,
+			);
+			name = DisplayPretty;
+			productName = DisplayPretty;
+			productReference = BC70BEF3138D35AF00638110 /* DisplayPretty.app */;
+			productType = "com.apple.product-type.application";
+		};
+/* End PBXNativeTarget section */
+
+/* Begin PBXProject section */
+		BC70BEEA138D35AF00638110 /* Project object */ = {
+			isa = PBXProject;
+			attributes = {
+				LastUpgradeCheck = 0420;
+				ORGANIZATIONNAME = "Stig Brautaset";
+			};
+			buildConfigurationList = BC70BEED138D35AF00638110 /* Build configuration list for PBXProject "DisplayPretty" */;
+			compatibilityVersion = "Xcode 3.2";
+			developmentRegion = English;
+			hasScannedForEncodings = 0;
+			knownRegions = (
+				en,
+			);
+			mainGroup = BC70BEE8138D35AF00638110;
+			productRefGroup = BC70BEF4138D35AF00638110 /* Products */;
+			projectDirPath = "";
+			projectReferences = (
+				{
+					ProductGroup = BCA5BD5E13BE00A200223625 /* Products */;
+					ProjectRef = BCA5BD5D13BE00A200223625 /* SBJson.xcodeproj */;
+				},
+			);
+			projectRoot = "";
+			targets = (
+				BC70BEF2138D35AF00638110 /* DisplayPretty */,
+			);
+		};
+/* End PBXProject section */
+
+/* Begin PBXReferenceProxy section */
+		BCA5BD6513BE00A200223625 /* SBJson.framework */ = {
+			isa = PBXReferenceProxy;
+			fileType = wrapper.framework;
+			path = SBJson.framework;
+			remoteRef = BCA5BD6413BE00A200223625 /* PBXContainerItemProxy */;
+			sourceTree = BUILT_PRODUCTS_DIR;
+		};
+		BCA5BD6713BE00A200223625 /* SBJsonTests.octest */ = {
+			isa = PBXReferenceProxy;
+			fileType = wrapper.cfbundle;
+			path = SBJsonTests.octest;
+			remoteRef = BCA5BD6613BE00A200223625 /* PBXContainerItemProxy */;
+			sourceTree = BUILT_PRODUCTS_DIR;
+		};
+		BCA5BD6913BE00A200223625 /* libsbjson-ios.a */ = {
+			isa = PBXReferenceProxy;
+			fileType = archive.ar;
+			path = "libsbjson-ios.a";
+			remoteRef = BCA5BD6813BE00A200223625 /* PBXContainerItemProxy */;
+			sourceTree = BUILT_PRODUCTS_DIR;
+		};
+		BCA5BD6B13BE00A200223625 /* sbjson-iosTests.octest */ = {
+			isa = PBXReferenceProxy;
+			fileType = wrapper.cfbundle;
+			path = "sbjson-iosTests.octest";
+			remoteRef = BCA5BD6A13BE00A200223625 /* PBXContainerItemProxy */;
+			sourceTree = BUILT_PRODUCTS_DIR;
+		};
+/* End PBXReferenceProxy section */
+
+/* Begin PBXResourcesBuildPhase section */
+		BC70BEF1138D35AF00638110 /* Resources */ = {
+			isa = PBXResourcesBuildPhase;
+			buildActionMask = 2147483647;
+			files = (
+				BC70BF02138D35AF00638110 /* InfoPlist.strings in Resources */,
+				BC70BF08138D35AF00638110 /* Credits.rtf in Resources */,
+				BC70BF0E138D35AF00638110 /* MainMenu.xib in Resources */,
+			);
+			runOnlyForDeploymentPostprocessing = 0;
+		};
+/* End PBXResourcesBuildPhase section */
+
+/* Begin PBXSourcesBuildPhase section */
+		BC70BEEF138D35AF00638110 /* Sources */ = {
+			isa = PBXSourcesBuildPhase;
+			buildActionMask = 2147483647;
+			files = (
+				BC70BF05138D35AF00638110 /* main.m in Sources */,
+				BC70BF0B138D35AF00638110 /* DisplayPrettyAppDelegate.m in Sources */,
+				BC70BF62138D408900638110 /* DisplayPrettyController.m in Sources */,
+			);
+			runOnlyForDeploymentPostprocessing = 0;
+		};
+/* End PBXSourcesBuildPhase section */
+
+/* Begin PBXTargetDependency section */
+		BCA5BD7F13BE00D600223625 /* PBXTargetDependency */ = {
+			isa = PBXTargetDependency;
+			name = SBJson;
+			targetProxy = BCA5BD7E13BE00D600223625 /* PBXContainerItemProxy */;
+		};
+/* End PBXTargetDependency section */
+
+/* Begin PBXVariantGroup section */
+		BC70BF00138D35AF00638110 /* InfoPlist.strings */ = {
+			isa = PBXVariantGroup;
+			children = (
+				BC70BF01138D35AF00638110 /* en */,
+			);
+			name = InfoPlist.strings;
+			sourceTree = "<group>";
+		};
+		BC70BF06138D35AF00638110 /* Credits.rtf */ = {
+			isa = PBXVariantGroup;
+			children = (
+				BC70BF07138D35AF00638110 /* en */,
+			);
+			name = Credits.rtf;
+			sourceTree = "<group>";
+		};
+		BC70BF0C138D35AF00638110 /* MainMenu.xib */ = {
+			isa = PBXVariantGroup;
+			children = (
+				BC70BF0D138D35AF00638110 /* en */,
+			);
+			name = MainMenu.xib;
+			sourceTree = "<group>";
+		};
+/* End PBXVariantGroup section */
+
+/* Begin XCBuildConfiguration section */
+		BC70BF0F138D35AF00638110 /* Debug */ = {
+			isa = XCBuildConfiguration;
+			buildSettings = {
+				ARCHS = "$(ARCHS_STANDARD_32_64_BIT)";
+				GCC_C_LANGUAGE_STANDARD = gnu99;
+				GCC_OPTIMIZATION_LEVEL = 0;
+				GCC_PREPROCESSOR_DEFINITIONS = DEBUG;
+				GCC_SYMBOLS_PRIVATE_EXTERN = NO;
+				GCC_VERSION = com.apple.compilers.llvm.clang.1_0;
+				GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
+				GCC_WARN_ABOUT_MISSING_PROTOTYPES = YES;
+				GCC_WARN_ABOUT_RETURN_TYPE = YES;
+				GCC_WARN_UNUSED_VARIABLE = YES;
+				MACOSX_DEPLOYMENT_TARGET = 10.6;
+				ONLY_ACTIVE_ARCH = YES;
+				SDKROOT = macosx;
+			};
+			name = Debug;
+		};
+		BC70BF10138D35AF00638110 /* Release */ = {
+			isa = XCBuildConfiguration;
+			buildSettings = {
+				ARCHS = "$(ARCHS_STANDARD_32_64_BIT)";
+				GCC_C_LANGUAGE_STANDARD = gnu99;
+				GCC_VERSION = com.apple.compilers.llvm.clang.1_0;
+				GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
+				GCC_WARN_ABOUT_MISSING_PROTOTYPES = YES;
+				GCC_WARN_ABOUT_RETURN_TYPE = YES;
+				GCC_WARN_UNUSED_VARIABLE = YES;
+				MACOSX_DEPLOYMENT_TARGET = 10.6;
+				SDKROOT = macosx;
+			};
+			name = Release;
+		};
+		BC70BF12138D35AF00638110 /* Debug */ = {
+			isa = XCBuildConfiguration;
+			buildSettings = {
+				ALWAYS_SEARCH_USER_PATHS = NO;
+				ARCHS = "$(ARCHS_STANDARD_64_BIT)";
+				COPY_PHASE_STRIP = NO;
+				FRAMEWORK_SEARCH_PATHS = (
+					"$(inherited)",
+					"\"$(SRCROOT)\"",
+				);
+				GCC_DYNAMIC_NO_PIC = NO;
+				GCC_ENABLE_OBJC_EXCEPTIONS = YES;
+				GCC_PRECOMPILE_PREFIX_HEADER = YES;
+				GCC_PREFIX_HEADER = "DisplayPretty/DisplayPretty-Prefix.pch";
+				INFOPLIST_FILE = "DisplayPretty/DisplayPretty-Info.plist";
+				PRODUCT_NAME = "$(TARGET_NAME)";
+				WRAPPER_EXTENSION = app;
+			};
+			name = Debug;
+		};
+		BC70BF13138D35AF00638110 /* Release */ = {
+			isa = XCBuildConfiguration;
+			buildSettings = {
+				ALWAYS_SEARCH_USER_PATHS = NO;
+				ARCHS = "$(ARCHS_STANDARD_64_BIT)";
+				COPY_PHASE_STRIP = YES;
+				DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
+				FRAMEWORK_SEARCH_PATHS = (
+					"$(inherited)",
+					"\"$(SRCROOT)\"",
+				);
+				GCC_ENABLE_OBJC_EXCEPTIONS = YES;
+				GCC_PRECOMPILE_PREFIX_HEADER = YES;
+				GCC_PREFIX_HEADER = "DisplayPretty/DisplayPretty-Prefix.pch";
+				INFOPLIST_FILE = "DisplayPretty/DisplayPretty-Info.plist";
+				PRODUCT_NAME = "$(TARGET_NAME)";
+				WRAPPER_EXTENSION = app;
+			};
+			name = Release;
+		};
+/* End XCBuildConfiguration section */
+
+/* Begin XCConfigurationList section */
+		BC70BEED138D35AF00638110 /* Build configuration list for PBXProject "DisplayPretty" */ = {
+			isa = XCConfigurationList;
+			buildConfigurations = (
+				BC70BF0F138D35AF00638110 /* Debug */,
+				BC70BF10138D35AF00638110 /* Release */,
+			);
+			defaultConfigurationIsVisible = 0;
+			defaultConfigurationName = Release;
+		};
+		BC70BF11138D35AF00638110 /* Build configuration list for PBXNativeTarget "DisplayPretty" */ = {
+			isa = XCConfigurationList;
+			buildConfigurations = (
+				BC70BF12138D35AF00638110 /* Debug */,
+				BC70BF13138D35AF00638110 /* Release */,
+			);
+			defaultConfigurationIsVisible = 0;
+			defaultConfigurationName = Release;
+		};
+/* End XCConfigurationList section */
+	};
+	rootObject = BC70BEEA138D35AF00638110 /* Project object */;
+}
diff --git a/json-framework-3.2.0/Examples/DisplayPretty/DisplayPretty/DisplayPretty-Info.plist b/json-framework-3.2.0/Examples/DisplayPretty/DisplayPretty/DisplayPretty-Info.plist
new file mode 100644
index 0000000..9b51702
--- /dev/null
+++ b/json-framework-3.2.0/Examples/DisplayPretty/DisplayPretty/DisplayPretty-Info.plist
@@ -0,0 +1,32 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+	<key>CFBundleDevelopmentRegion</key>
+	<string>en</string>
+	<key>CFBundleExecutable</key>
+	<string>${EXECUTABLE_NAME}</string>
+	<key>CFBundleIconFile</key>
+	<string></string>
+	<key>CFBundleIdentifier</key>
+	<string>org.brautaset.${PRODUCT_NAME:rfc1034identifier}</string>
+	<key>CFBundleInfoDictionaryVersion</key>
+	<string>6.0</string>
+	<key>CFBundleName</key>
+	<string>${PRODUCT_NAME}</string>
+	<key>CFBundlePackageType</key>
+	<string>APPL</string>
+	<key>CFBundleShortVersionString</key>
+	<string>1.0</string>
+	<key>CFBundleSignature</key>
+	<string>????</string>
+	<key>CFBundleVersion</key>
+	<string>1</string>
+	<key>LSMinimumSystemVersion</key>
+	<string>${MACOSX_DEPLOYMENT_TARGET}</string>
+	<key>NSMainNibFile</key>
+	<string>MainMenu</string>
+	<key>NSPrincipalClass</key>
+	<string>NSApplication</string>
+</dict>
+</plist>
diff --git a/json-framework-3.2.0/Examples/DisplayPretty/DisplayPretty/DisplayPretty-Prefix.pch b/json-framework-3.2.0/Examples/DisplayPretty/DisplayPretty/DisplayPretty-Prefix.pch
new file mode 100644
index 0000000..704c823
--- /dev/null
+++ b/json-framework-3.2.0/Examples/DisplayPretty/DisplayPretty/DisplayPretty-Prefix.pch
@@ -0,0 +1,7 @@
+//
+// Prefix header for all source files of the 'DisplayPretty' target in the 'DisplayPretty' project
+//
+
+#ifdef __OBJC__
+    #import <Cocoa/Cocoa.h>
+#endif
diff --git a/json-framework-3.2.0/Examples/DisplayPretty/DisplayPretty/DisplayPrettyAppDelegate.h b/json-framework-3.2.0/Examples/DisplayPretty/DisplayPretty/DisplayPrettyAppDelegate.h
new file mode 100644
index 0000000..6a5244b
--- /dev/null
+++ b/json-framework-3.2.0/Examples/DisplayPretty/DisplayPretty/DisplayPrettyAppDelegate.h
@@ -0,0 +1,18 @@
+//
+//  DisplayPrettyAppDelegate.h
+//  DisplayPretty
+//
+//  Created by Stig Brautaset on 25/05/2011.
+//  Copyright 2011 Stig Brautaset. All rights reserved.
+//
+
+#import <Cocoa/Cocoa.h>
+
+@interface DisplayPrettyAppDelegate : NSObject <NSApplicationDelegate> {
+@private
+    NSWindow *window;
+}
+
+@property (assign) IBOutlet NSWindow *window;
+
+@end
diff --git a/json-framework-3.2.0/Examples/DisplayPretty/DisplayPretty/DisplayPrettyAppDelegate.m b/json-framework-3.2.0/Examples/DisplayPretty/DisplayPretty/DisplayPrettyAppDelegate.m
new file mode 100644
index 0000000..bff32e5
--- /dev/null
+++ b/json-framework-3.2.0/Examples/DisplayPretty/DisplayPretty/DisplayPrettyAppDelegate.m
@@ -0,0 +1,20 @@
+//
+//  DisplayPrettyAppDelegate.m
+//  DisplayPretty
+//
+//  Created by Stig Brautaset on 25/05/2011.
+//  Copyright 2011 Stig Brautaset. All rights reserved.
+//
+
+#import "DisplayPrettyAppDelegate.h"
+
+@implementation DisplayPrettyAppDelegate
+
+@synthesize window;
+
+- (void)applicationDidFinishLaunching:(NSNotification *)aNotification
+{
+    // Insert code here to initialize your application
+}
+
+@end
diff --git a/json-framework-3.2.0/Examples/DisplayPretty/DisplayPretty/DisplayPrettyController.h b/json-framework-3.2.0/Examples/DisplayPretty/DisplayPretty/DisplayPrettyController.h
new file mode 100644
index 0000000..ea59140
--- /dev/null
+++ b/json-framework-3.2.0/Examples/DisplayPretty/DisplayPretty/DisplayPrettyController.h
@@ -0,0 +1,25 @@
+//
+//  DisplayPrettyController.h
+//  DisplayPretty
+//
+//  Created by Stig Brautaset on 25/05/2011.
+//  Copyright 2011 Stig Brautaset. All rights reserved.
+//
+
+#import <Foundation/Foundation.h>
+
+@class SBJsonParser;
+@class SBJsonWriter;
+
+@interface DisplayPrettyController : NSObject {
+@private
+    SBJsonParser *_parser;
+    SBJsonWriter *_writer;
+    
+    IBOutlet NSTextField *_source;
+    IBOutlet NSTextField *_formatted;
+}
+
+- (IBAction)formatText:(id)sender;
+
+@end
diff --git a/json-framework-3.2.0/Examples/DisplayPretty/DisplayPretty/DisplayPrettyController.m b/json-framework-3.2.0/Examples/DisplayPretty/DisplayPretty/DisplayPrettyController.m
new file mode 100644
index 0000000..7f76012
--- /dev/null
+++ b/json-framework-3.2.0/Examples/DisplayPretty/DisplayPretty/DisplayPrettyController.m
@@ -0,0 +1,43 @@
+//
+//  DisplayPrettyController.m
+//  DisplayPretty
+//
+//  Created by Stig Brautaset on 25/05/2011.
+//  Copyright 2011 Stig Brautaset. All rights reserved.
+//
+
+#import "DisplayPrettyController.h"
+#import <SBJson/SBJson.h>
+
+@implementation DisplayPrettyController
+
+- (id)init
+{
+    self = [super init];
+    if (self) {
+        _parser = [[SBJsonParser alloc] init];
+        _writer = [[SBJsonWriter alloc] init];
+        _writer.humanReadable = YES;
+        _writer.sortKeys = YES;
+    }    
+    return self;
+}
+
+- (void)dealloc
+{
+    [_parser release];
+    [_writer release];
+    [super dealloc];
+}
+
+- (IBAction)formatText:(id)sender {
+    id object = [_parser objectWithString:[_source stringValue]];
+    if (object) {
+        [_formatted setStringValue:[_writer stringWithObject:object]];
+    } else {
+        [_formatted setStringValue:[NSString stringWithFormat:@"An error occurred: %@", _parser.error]];
+    }
+    
+}
+
+@end
diff --git a/json-framework-3.2.0/Examples/DisplayPretty/DisplayPretty/en.lproj/Credits.rtf b/json-framework-3.2.0/Examples/DisplayPretty/DisplayPretty/en.lproj/Credits.rtf
new file mode 100644
index 0000000..46576ef
--- /dev/null
+++ b/json-framework-3.2.0/Examples/DisplayPretty/DisplayPretty/en.lproj/Credits.rtf
@@ -0,0 +1,29 @@
+{\rtf0\ansi{\fonttbl\f0\fswiss Helvetica;}
+{\colortbl;\red255\green255\blue255;}
+\paperw9840\paperh8400
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\ql\qnatural
+
+\f0\b\fs24 \cf0 Engineering:
+\b0 \
+	Some people\
+\
+
+\b Human Interface Design:
+\b0 \
+	Some other people\
+\
+
+\b Testing:
+\b0 \
+	Hopefully not nobody\
+\
+
+\b Documentation:
+\b0 \
+	Whoever\
+\
+
+\b With special thanks to:
+\b0 \
+	Mom\
+}
diff --git a/json-framework-3.2.0/Examples/DisplayPretty/DisplayPretty/en.lproj/InfoPlist.strings b/json-framework-3.2.0/Examples/DisplayPretty/DisplayPretty/en.lproj/InfoPlist.strings
new file mode 100644
index 0000000..477b28f
--- /dev/null
+++ b/json-framework-3.2.0/Examples/DisplayPretty/DisplayPretty/en.lproj/InfoPlist.strings
@@ -0,0 +1,2 @@
+/* Localized versions of Info.plist keys */
+
diff --git a/json-framework-3.2.0/Examples/DisplayPretty/DisplayPretty/en.lproj/MainMenu.xib b/json-framework-3.2.0/Examples/DisplayPretty/DisplayPretty/en.lproj/MainMenu.xib
new file mode 100644
index 0000000..61a762e
--- /dev/null
+++ b/json-framework-3.2.0/Examples/DisplayPretty/DisplayPretty/en.lproj/MainMenu.xib
@@ -0,0 +1,4040 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<archive type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="7.10">
+	<data>
+		<int key="IBDocument.SystemTarget">1060</int>
+		<string key="IBDocument.SystemVersion">10J869</string>
+		<string key="IBDocument.InterfaceBuilderVersion">1306</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">1306</string>
+		</object>
+		<object class="NSArray" key="IBDocument.IntegratedClassDependencies">
+			<bool key="EncodedWithXMLCoder">YES</bool>
+			<string>NSTextField</string>
+			<string>NSMenu</string>
+			<string>NSWindowTemplate</string>
+			<string>NSMenuItem</string>
+			<string>NSCustomObject</string>
+			<string>NSView</string>
+			<string>NSSplitView</string>
+			<string>NSCustomView</string>
+			<string>NSTextFieldCell</string>
+		</object>
+		<object class="NSArray" key="IBDocument.PluginDependencies">
+			<bool key="EncodedWithXMLCoder">YES</bool>
+			<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>
+			<reference key="dict.values" ref="0"/>
+		</object>
+		<object class="NSMutableArray" key="IBDocument.RootObjects" id="1048">
+			<bool key="EncodedWithXMLCoder">YES</bool>
+			<object class="NSCustomObject" id="1021">
+				<string key="NSClassName">NSApplication</string>
+			</object>
+			<object class="NSCustomObject" id="1014">
+				<string key="NSClassName">FirstResponder</string>
+			</object>
+			<object class="NSCustomObject" id="1050">
+				<string key="NSClassName">NSApplication</string>
+			</object>
+			<object class="NSMenu" id="649796088">
+				<string key="NSTitle">AMainMenu</string>
+				<object class="NSMutableArray" key="NSMenuItems">
+					<bool key="EncodedWithXMLCoder">YES</bool>
+					<object class="NSMenuItem" id="694149608">
+						<reference key="NSMenu" ref="649796088"/>
+						<string key="NSTitle">DisplayPretty</string>
+						<string key="NSKeyEquiv"/>
+						<int key="NSKeyEquivModMask">1048576</int>
+						<int key="NSMnemonicLoc">2147483647</int>
+						<object class="NSCustomResource" key="NSOnImage" id="35465992">
+							<string key="NSClassName">NSImage</string>
+							<string key="NSResourceName">NSMenuCheckmark</string>
+						</object>
+						<object class="NSCustomResource" key="NSMixedImage" id="502551668">
+							<string key="NSClassName">NSImage</string>
+							<string key="NSResourceName">NSMenuMixedState</string>
+						</object>
+						<string key="NSAction">submenuAction:</string>
+						<object class="NSMenu" key="NSSubmenu" id="110575045">
+							<string key="NSTitle">DisplayPretty</string>
+							<object class="NSMutableArray" key="NSMenuItems">
+								<bool key="EncodedWithXMLCoder">YES</bool>
+								<object class="NSMenuItem" id="238522557">
+									<reference key="NSMenu" ref="110575045"/>
+									<string key="NSTitle">About DisplayPretty</string>
+									<string key="NSKeyEquiv"/>
+									<int key="NSMnemonicLoc">2147483647</int>
+									<reference key="NSOnImage" ref="35465992"/>
+									<reference key="NSMixedImage" ref="502551668"/>
+								</object>
+								<object class="NSMenuItem" id="304266470">
+									<reference key="NSMenu" ref="110575045"/>
+									<bool key="NSIsDisabled">YES</bool>
+									<bool key="NSIsSeparator">YES</bool>
+									<string key="NSTitle"/>
+									<string key="NSKeyEquiv"/>
+									<int key="NSKeyEquivModMask">1048576</int>
+									<int key="NSMnemonicLoc">2147483647</int>
+									<reference key="NSOnImage" ref="35465992"/>
+									<reference key="NSMixedImage" ref="502551668"/>
+								</object>
+								<object class="NSMenuItem" id="609285721">
+									<reference key="NSMenu" ref="110575045"/>
+									<string key="NSTitle">Preferences…</string>
+									<string key="NSKeyEquiv">,</string>
+									<int key="NSKeyEquivModMask">1048576</int>
+									<int key="NSMnemonicLoc">2147483647</int>
+									<reference key="NSOnImage" ref="35465992"/>
+									<reference key="NSMixedImage" ref="502551668"/>
+								</object>
+								<object class="NSMenuItem" id="481834944">
+									<reference key="NSMenu" ref="110575045"/>
+									<bool key="NSIsDisabled">YES</bool>
+									<bool key="NSIsSeparator">YES</bool>
+									<string key="NSTitle"/>
+									<string key="NSKeyEquiv"/>
+									<int key="NSKeyEquivModMask">1048576</int>
+									<int key="NSMnemonicLoc">2147483647</int>
+									<reference key="NSOnImage" ref="35465992"/>
+									<reference key="NSMixedImage" ref="502551668"/>
+								</object>
+								<object class="NSMenuItem" id="1046388886">
+									<reference key="NSMenu" ref="110575045"/>
+									<string key="NSTitle">Services</string>
+									<string key="NSKeyEquiv"/>
+									<int key="NSKeyEquivModMask">1048576</int>
+									<int key="NSMnemonicLoc">2147483647</int>
+									<reference key="NSOnImage" ref="35465992"/>
+									<reference key="NSMixedImage" ref="502551668"/>
+									<string key="NSAction">submenuAction:</string>
+									<object class="NSMenu" key="NSSubmenu" id="752062318">
+										<string key="NSTitle">Services</string>
+										<object class="NSMutableArray" key="NSMenuItems">
+											<bool key="EncodedWithXMLCoder">YES</bool>
+										</object>
+										<string key="NSName">_NSServicesMenu</string>
+									</object>
+								</object>
+								<object class="NSMenuItem" id="646227648">
+									<reference key="NSMenu" ref="110575045"/>
+									<bool key="NSIsDisabled">YES</bool>
+									<bool key="NSIsSeparator">YES</bool>
+									<string key="NSTitle"/>
+									<string key="NSKeyEquiv"/>
+									<int key="NSKeyEquivModMask">1048576</int>
+									<int key="NSMnemonicLoc">2147483647</int>
+									<reference key="NSOnImage" ref="35465992"/>
+									<reference key="NSMixedImage" ref="502551668"/>
+								</object>
+								<object class="NSMenuItem" id="755159360">
+									<reference key="NSMenu" ref="110575045"/>
+									<string key="NSTitle">Hide DisplayPretty</string>
+									<string key="NSKeyEquiv">h</string>
+									<int key="NSKeyEquivModMask">1048576</int>
+									<int key="NSMnemonicLoc">2147483647</int>
+									<reference key="NSOnImage" ref="35465992"/>
+									<reference key="NSMixedImage" ref="502551668"/>
+								</object>
+								<object class="NSMenuItem" id="342932134">
+									<reference key="NSMenu" ref="110575045"/>
+									<string key="NSTitle">Hide Others</string>
+									<string key="NSKeyEquiv">h</string>
+									<int key="NSKeyEquivModMask">1572864</int>
+									<int key="NSMnemonicLoc">2147483647</int>
+									<reference key="NSOnImage" ref="35465992"/>
+									<reference key="NSMixedImage" ref="502551668"/>
+								</object>
+								<object class="NSMenuItem" id="908899353">
+									<reference key="NSMenu" ref="110575045"/>
+									<string key="NSTitle">Show All</string>
+									<string key="NSKeyEquiv"/>
+									<int key="NSKeyEquivModMask">1048576</int>
+									<int key="NSMnemonicLoc">2147483647</int>
+									<reference key="NSOnImage" ref="35465992"/>
+									<reference key="NSMixedImage" ref="502551668"/>
+								</object>
+								<object class="NSMenuItem" id="1056857174">
+									<reference key="NSMenu" ref="110575045"/>
+									<bool key="NSIsDisabled">YES</bool>
+									<bool key="NSIsSeparator">YES</bool>
+									<string key="NSTitle"/>
+									<string key="NSKeyEquiv"/>
+									<int key="NSKeyEquivModMask">1048576</int>
+									<int key="NSMnemonicLoc">2147483647</int>
+									<reference key="NSOnImage" ref="35465992"/>
+									<reference key="NSMixedImage" ref="502551668"/>
+								</object>
+								<object class="NSMenuItem" id="632727374">
+									<reference key="NSMenu" ref="110575045"/>
+									<string key="NSTitle">Quit DisplayPretty</string>
+									<string key="NSKeyEquiv">q</string>
+									<int key="NSKeyEquivModMask">1048576</int>
+									<int key="NSMnemonicLoc">2147483647</int>
+									<reference key="NSOnImage" ref="35465992"/>
+									<reference key="NSMixedImage" ref="502551668"/>
+								</object>
+							</object>
+							<string key="NSName">_NSAppleMenu</string>
+						</object>
+					</object>
+					<object class="NSMenuItem" id="379814623">
+						<reference key="NSMenu" ref="649796088"/>
+						<string key="NSTitle">File</string>
+						<string key="NSKeyEquiv"/>
+						<int key="NSKeyEquivModMask">1048576</int>
+						<int key="NSMnemonicLoc">2147483647</int>
+						<reference key="NSOnImage" ref="35465992"/>
+						<reference key="NSMixedImage" ref="502551668"/>
+						<string key="NSAction">submenuAction:</string>
+						<object class="NSMenu" key="NSSubmenu" id="720053764">
+							<string key="NSTitle">File</string>
+							<object class="NSMutableArray" key="NSMenuItems">
+								<bool key="EncodedWithXMLCoder">YES</bool>
+								<object class="NSMenuItem" id="705341025">
+									<reference key="NSMenu" ref="720053764"/>
+									<string key="NSTitle">New</string>
+									<string key="NSKeyEquiv">n</string>
+									<int key="NSKeyEquivModMask">1048576</int>
+									<int key="NSMnemonicLoc">2147483647</int>
+									<reference key="NSOnImage" ref="35465992"/>
+									<reference key="NSMixedImage" ref="502551668"/>
+								</object>
+								<object class="NSMenuItem" id="722745758">
+									<reference key="NSMenu" ref="720053764"/>
+									<string key="NSTitle">Open…</string>
+									<string key="NSKeyEquiv">o</string>
+									<int key="NSKeyEquivModMask">1048576</int>
+									<int key="NSMnemonicLoc">2147483647</int>
+									<reference key="NSOnImage" ref="35465992"/>
+									<reference key="NSMixedImage" ref="502551668"/>
+								</object>
+								<object class="NSMenuItem" id="1025936716">
+									<reference key="NSMenu" ref="720053764"/>
+									<string key="NSTitle">Open Recent</string>
+									<string key="NSKeyEquiv"/>
+									<int key="NSKeyEquivModMask">1048576</int>
+									<int key="NSMnemonicLoc">2147483647</int>
+									<reference key="NSOnImage" ref="35465992"/>
+									<reference key="NSMixedImage" ref="502551668"/>
+									<string key="NSAction">submenuAction:</string>
+									<object class="NSMenu" key="NSSubmenu" id="1065607017">
+										<string key="NSTitle">Open Recent</string>
+										<object class="NSMutableArray" key="NSMenuItems">
+											<bool key="EncodedWithXMLCoder">YES</bool>
+											<object class="NSMenuItem" id="759406840">
+												<reference key="NSMenu" ref="1065607017"/>
+												<string key="NSTitle">Clear Menu</string>
+												<string key="NSKeyEquiv"/>
+												<int key="NSKeyEquivModMask">1048576</int>
+												<int key="NSMnemonicLoc">2147483647</int>
+												<reference key="NSOnImage" ref="35465992"/>
+												<reference key="NSMixedImage" ref="502551668"/>
+											</object>
+										</object>
+										<string key="NSName">_NSRecentDocumentsMenu</string>
+									</object>
+								</object>
+								<object class="NSMenuItem" id="425164168">
+									<reference key="NSMenu" ref="720053764"/>
+									<bool key="NSIsDisabled">YES</bool>
+									<bool key="NSIsSeparator">YES</bool>
+									<string key="NSTitle"/>
+									<string key="NSKeyEquiv"/>
+									<int key="NSKeyEquivModMask">1048576</int>
+									<int key="NSMnemonicLoc">2147483647</int>
+									<reference key="NSOnImage" ref="35465992"/>
+									<reference key="NSMixedImage" ref="502551668"/>
+								</object>
+								<object class="NSMenuItem" id="776162233">
+									<reference key="NSMenu" ref="720053764"/>
+									<string key="NSTitle">Close</string>
+									<string key="NSKeyEquiv">w</string>
+									<int key="NSKeyEquivModMask">1048576</int>
+									<int key="NSMnemonicLoc">2147483647</int>
+									<reference key="NSOnImage" ref="35465992"/>
+									<reference key="NSMixedImage" ref="502551668"/>
+								</object>
+								<object class="NSMenuItem" id="1023925487">
+									<reference key="NSMenu" ref="720053764"/>
+									<string key="NSTitle">Save</string>
+									<string key="NSKeyEquiv">s</string>
+									<int key="NSKeyEquivModMask">1048576</int>
+									<int key="NSMnemonicLoc">2147483647</int>
+									<reference key="NSOnImage" ref="35465992"/>
+									<reference key="NSMixedImage" ref="502551668"/>
+								</object>
+								<object class="NSMenuItem" id="117038363">
+									<reference key="NSMenu" ref="720053764"/>
+									<string key="NSTitle">Save As…</string>
+									<string key="NSKeyEquiv">S</string>
+									<int key="NSKeyEquivModMask">1179648</int>
+									<int key="NSMnemonicLoc">2147483647</int>
+									<reference key="NSOnImage" ref="35465992"/>
+									<reference key="NSMixedImage" ref="502551668"/>
+								</object>
+								<object class="NSMenuItem" id="579971712">
+									<reference key="NSMenu" ref="720053764"/>
+									<string key="NSTitle">Revert to Saved</string>
+									<string key="NSKeyEquiv"/>
+									<int key="NSMnemonicLoc">2147483647</int>
+									<reference key="NSOnImage" ref="35465992"/>
+									<reference key="NSMixedImage" ref="502551668"/>
+								</object>
+								<object class="NSMenuItem" id="1010469920">
+									<reference key="NSMenu" ref="720053764"/>
+									<bool key="NSIsDisabled">YES</bool>
+									<bool key="NSIsSeparator">YES</bool>
+									<string key="NSTitle"/>
+									<string key="NSKeyEquiv"/>
+									<int key="NSKeyEquivModMask">1048576</int>
+									<int key="NSMnemonicLoc">2147483647</int>
+									<reference key="NSOnImage" ref="35465992"/>
+									<reference key="NSMixedImage" ref="502551668"/>
+								</object>
+								<object class="NSMenuItem" id="294629803">
+									<reference key="NSMenu" ref="720053764"/>
+									<string key="NSTitle">Page Setup...</string>
+									<string key="NSKeyEquiv">P</string>
+									<int key="NSKeyEquivModMask">1179648</int>
+									<int key="NSMnemonicLoc">2147483647</int>
+									<reference key="NSOnImage" ref="35465992"/>
+									<reference key="NSMixedImage" ref="502551668"/>
+									<string key="NSToolTip"/>
+								</object>
+								<object class="NSMenuItem" id="49223823">
+									<reference key="NSMenu" ref="720053764"/>
+									<string key="NSTitle">Print…</string>
+									<string key="NSKeyEquiv">p</string>
+									<int key="NSKeyEquivModMask">1048576</int>
+									<int key="NSMnemonicLoc">2147483647</int>
+									<reference key="NSOnImage" ref="35465992"/>
+									<reference key="NSMixedImage" ref="502551668"/>
+								</object>
+							</object>
+						</object>
+					</object>
+					<object class="NSMenuItem" id="952259628">
+						<reference key="NSMenu" ref="649796088"/>
+						<string key="NSTitle">Edit</string>
+						<string key="NSKeyEquiv"/>
+						<int key="NSKeyEquivModMask">1048576</int>
+						<int key="NSMnemonicLoc">2147483647</int>
+						<reference key="NSOnImage" ref="35465992"/>
+						<reference key="NSMixedImage" ref="502551668"/>
+						<string key="NSAction">submenuAction:</string>
+						<object class="NSMenu" key="NSSubmenu" id="789758025">
+							<string key="NSTitle">Edit</string>
+							<object class="NSMutableArray" key="NSMenuItems">
+								<bool key="EncodedWithXMLCoder">YES</bool>
+								<object class="NSMenuItem" id="1058277027">
+									<reference key="NSMenu" ref="789758025"/>
+									<string key="NSTitle">Undo</string>
+									<string key="NSKeyEquiv">z</string>
+									<int key="NSKeyEquivModMask">1048576</int>
+									<int key="NSMnemonicLoc">2147483647</int>
+									<reference key="NSOnImage" ref="35465992"/>
+									<reference key="NSMixedImage" ref="502551668"/>
+								</object>
+								<object class="NSMenuItem" id="790794224">
+									<reference key="NSMenu" ref="789758025"/>
+									<string key="NSTitle">Redo</string>
+									<string key="NSKeyEquiv">Z</string>
+									<int key="NSKeyEquivModMask">1179648</int>
+									<int key="NSMnemonicLoc">2147483647</int>
+									<reference key="NSOnImage" ref="35465992"/>
+									<reference key="NSMixedImage" ref="502551668"/>
+								</object>
+								<object class="NSMenuItem" id="1040322652">
+									<reference key="NSMenu" ref="789758025"/>
+									<bool key="NSIsDisabled">YES</bool>
+									<bool key="NSIsSeparator">YES</bool>
+									<string key="NSTitle"/>
+									<string key="NSKeyEquiv"/>
+									<int key="NSKeyEquivModMask">1048576</int>
+									<int key="NSMnemonicLoc">2147483647</int>
+									<reference key="NSOnImage" ref="35465992"/>
+									<reference key="NSMixedImage" ref="502551668"/>
+								</object>
+								<object class="NSMenuItem" id="296257095">
+									<reference key="NSMenu" ref="789758025"/>
+									<string key="NSTitle">Cut</string>
+									<string key="NSKeyEquiv">x</string>
+									<int key="NSKeyEquivModMask">1048576</int>
+									<int key="NSMnemonicLoc">2147483647</int>
+									<reference key="NSOnImage" ref="35465992"/>
+									<reference key="NSMixedImage" ref="502551668"/>
+								</object>
+								<object class="NSMenuItem" id="860595796">
+									<reference key="NSMenu" ref="789758025"/>
+									<string key="NSTitle">Copy</string>
+									<string key="NSKeyEquiv">c</string>
+									<int key="NSKeyEquivModMask">1048576</int>
+									<int key="NSMnemonicLoc">2147483647</int>
+									<reference key="NSOnImage" ref="35465992"/>
+									<reference key="NSMixedImage" ref="502551668"/>
+								</object>
+								<object class="NSMenuItem" id="29853731">
+									<reference key="NSMenu" ref="789758025"/>
+									<string key="NSTitle">Paste</string>
+									<string key="NSKeyEquiv">v</string>
+									<int key="NSKeyEquivModMask">1048576</int>
+									<int key="NSMnemonicLoc">2147483647</int>
+									<reference key="NSOnImage" ref="35465992"/>
+									<reference key="NSMixedImage" ref="502551668"/>
+								</object>
+								<object class="NSMenuItem" id="82994268">
+									<reference key="NSMenu" ref="789758025"/>
+									<string key="NSTitle">Paste and Match Style</string>
+									<string key="NSKeyEquiv">V</string>
+									<int key="NSKeyEquivModMask">1572864</int>
+									<int key="NSMnemonicLoc">2147483647</int>
+									<reference key="NSOnImage" ref="35465992"/>
+									<reference key="NSMixedImage" ref="502551668"/>
+								</object>
+								<object class="NSMenuItem" id="437104165">
+									<reference key="NSMenu" ref="789758025"/>
+									<string key="NSTitle">Delete</string>
+									<string key="NSKeyEquiv"/>
+									<int key="NSKeyEquivModMask">1048576</int>
+									<int key="NSMnemonicLoc">2147483647</int>
+									<reference key="NSOnImage" ref="35465992"/>
+									<reference key="NSMixedImage" ref="502551668"/>
+								</object>
+								<object class="NSMenuItem" id="583158037">
+									<reference key="NSMenu" ref="789758025"/>
+									<string key="NSTitle">Select All</string>
+									<string key="NSKeyEquiv">a</string>
+									<int key="NSKeyEquivModMask">1048576</int>
+									<int key="NSMnemonicLoc">2147483647</int>
+									<reference key="NSOnImage" ref="35465992"/>
+									<reference key="NSMixedImage" ref="502551668"/>
+								</object>
+								<object class="NSMenuItem" id="212016141">
+									<reference key="NSMenu" ref="789758025"/>
+									<bool key="NSIsDisabled">YES</bool>
+									<bool key="NSIsSeparator">YES</bool>
+									<string key="NSTitle"/>
+									<string key="NSKeyEquiv"/>
+									<int key="NSKeyEquivModMask">1048576</int>
+									<int key="NSMnemonicLoc">2147483647</int>
+									<reference key="NSOnImage" ref="35465992"/>
+									<reference key="NSMixedImage" ref="502551668"/>
+								</object>
+								<object class="NSMenuItem" id="892235320">
+									<reference key="NSMenu" ref="789758025"/>
+									<string key="NSTitle">Find</string>
+									<string key="NSKeyEquiv"/>
+									<int key="NSKeyEquivModMask">1048576</int>
+									<int key="NSMnemonicLoc">2147483647</int>
+									<reference key="NSOnImage" ref="35465992"/>
+									<reference key="NSMixedImage" ref="502551668"/>
+									<string key="NSAction">submenuAction:</string>
+									<object class="NSMenu" key="NSSubmenu" id="963351320">
+										<string key="NSTitle">Find</string>
+										<object class="NSMutableArray" key="NSMenuItems">
+											<bool key="EncodedWithXMLCoder">YES</bool>
+											<object class="NSMenuItem" id="447796847">
+												<reference key="NSMenu" ref="963351320"/>
+												<string key="NSTitle">Find…</string>
+												<string key="NSKeyEquiv">f</string>
+												<int key="NSKeyEquivModMask">1048576</int>
+												<int key="NSMnemonicLoc">2147483647</int>
+												<reference key="NSOnImage" ref="35465992"/>
+												<reference key="NSMixedImage" ref="502551668"/>
+												<int key="NSTag">1</int>
+											</object>
+											<object class="NSMenuItem" id="326711663">
+												<reference key="NSMenu" ref="963351320"/>
+												<string key="NSTitle">Find Next</string>
+												<string key="NSKeyEquiv">g</string>
+												<int key="NSKeyEquivModMask">1048576</int>
+												<int key="NSMnemonicLoc">2147483647</int>
+												<reference key="NSOnImage" ref="35465992"/>
+												<reference key="NSMixedImage" ref="502551668"/>
+												<int key="NSTag">2</int>
+											</object>
+											<object class="NSMenuItem" id="270902937">
+												<reference key="NSMenu" ref="963351320"/>
+												<string key="NSTitle">Find Previous</string>
+												<string key="NSKeyEquiv">G</string>
+												<int key="NSKeyEquivModMask">1179648</int>
+												<int key="NSMnemonicLoc">2147483647</int>
+												<reference key="NSOnImage" ref="35465992"/>
+												<reference key="NSMixedImage" ref="502551668"/>
+												<int key="NSTag">3</int>
+											</object>
+											<object class="NSMenuItem" id="159080638">
+												<reference key="NSMenu" ref="963351320"/>
+												<string key="NSTitle">Use Selection for Find</string>
+												<string key="NSKeyEquiv">e</string>
+												<int key="NSKeyEquivModMask">1048576</int>
+												<int key="NSMnemonicLoc">2147483647</int>
+												<reference key="NSOnImage" ref="35465992"/>
+												<reference key="NSMixedImage" ref="502551668"/>
+												<int key="NSTag">7</int>
+											</object>
+											<object class="NSMenuItem" id="88285865">
+												<reference key="NSMenu" ref="963351320"/>
+												<string key="NSTitle">Jump to Selection</string>
+												<string key="NSKeyEquiv">j</string>
+												<int key="NSKeyEquivModMask">1048576</int>
+												<int key="NSMnemonicLoc">2147483647</int>
+												<reference key="NSOnImage" ref="35465992"/>
+												<reference key="NSMixedImage" ref="502551668"/>
+											</object>
+										</object>
+									</object>
+								</object>
+								<object class="NSMenuItem" id="972420730">
+									<reference key="NSMenu" ref="789758025"/>
+									<string key="NSTitle">Spelling and Grammar</string>
+									<string key="NSKeyEquiv"/>
+									<int key="NSKeyEquivModMask">1048576</int>
+									<int key="NSMnemonicLoc">2147483647</int>
+									<reference key="NSOnImage" ref="35465992"/>
+									<reference key="NSMixedImage" ref="502551668"/>
+									<string key="NSAction">submenuAction:</string>
+									<object class="NSMenu" key="NSSubmenu" id="769623530">
+										<string key="NSTitle">Spelling and Grammar</string>
+										<object class="NSMutableArray" key="NSMenuItems">
+											<bool key="EncodedWithXMLCoder">YES</bool>
+											<object class="NSMenuItem" id="679648819">
+												<reference key="NSMenu" ref="769623530"/>
+												<string key="NSTitle">Show Spelling and Grammar</string>
+												<string key="NSKeyEquiv">:</string>
+												<int key="NSKeyEquivModMask">1048576</int>
+												<int key="NSMnemonicLoc">2147483647</int>
+												<reference key="NSOnImage" ref="35465992"/>
+												<reference key="NSMixedImage" ref="502551668"/>
+											</object>
+											<object class="NSMenuItem" id="96193923">
+												<reference key="NSMenu" ref="769623530"/>
+												<string key="NSTitle">Check Document Now</string>
+												<string key="NSKeyEquiv">;</string>
+												<int key="NSKeyEquivModMask">1048576</int>
+												<int key="NSMnemonicLoc">2147483647</int>
+												<reference key="NSOnImage" ref="35465992"/>
+												<reference key="NSMixedImage" ref="502551668"/>
+											</object>
+											<object class="NSMenuItem" id="859480356">
+												<reference key="NSMenu" ref="769623530"/>
+												<bool key="NSIsDisabled">YES</bool>
+												<bool key="NSIsSeparator">YES</bool>
+												<string key="NSTitle"/>
+												<string key="NSKeyEquiv"/>
+												<int key="NSMnemonicLoc">2147483647</int>
+												<reference key="NSOnImage" ref="35465992"/>
+												<reference key="NSMixedImage" ref="502551668"/>
+											</object>
+											<object class="NSMenuItem" id="948374510">
+												<reference key="NSMenu" ref="769623530"/>
+												<string key="NSTitle">Check Spelling While Typing</string>
+												<string key="NSKeyEquiv"/>
+												<int key="NSKeyEquivModMask">1048576</int>
+												<int key="NSMnemonicLoc">2147483647</int>
+												<reference key="NSOnImage" ref="35465992"/>
+												<reference key="NSMixedImage" ref="502551668"/>
+											</object>
+											<object class="NSMenuItem" id="967646866">
+												<reference key="NSMenu" ref="769623530"/>
+												<string key="NSTitle">Check Grammar With Spelling</string>
+												<string key="NSKeyEquiv"/>
+												<int key="NSKeyEquivModMask">1048576</int>
+												<int key="NSMnemonicLoc">2147483647</int>
+												<reference key="NSOnImage" ref="35465992"/>
+												<reference key="NSMixedImage" ref="502551668"/>
+											</object>
+											<object class="NSMenuItem" id="795346622">
+												<reference key="NSMenu" ref="769623530"/>
+												<string key="NSTitle">Correct Spelling Automatically</string>
+												<string key="NSKeyEquiv"/>
+												<int key="NSMnemonicLoc">2147483647</int>
+												<reference key="NSOnImage" ref="35465992"/>
+												<reference key="NSMixedImage" ref="502551668"/>
+											</object>
+										</object>
+									</object>
+								</object>
+								<object class="NSMenuItem" id="507821607">
+									<reference key="NSMenu" ref="789758025"/>
+									<string key="NSTitle">Substitutions</string>
+									<string key="NSKeyEquiv"/>
+									<int key="NSKeyEquivModMask">1048576</int>
+									<int key="NSMnemonicLoc">2147483647</int>
+									<reference key="NSOnImage" ref="35465992"/>
+									<reference key="NSMixedImage" ref="502551668"/>
+									<string key="NSAction">submenuAction:</string>
+									<object class="NSMenu" key="NSSubmenu" id="698887838">
+										<string key="NSTitle">Substitutions</string>
+										<object class="NSMutableArray" key="NSMenuItems">
+											<bool key="EncodedWithXMLCoder">YES</bool>
+											<object class="NSMenuItem" id="65139061">
+												<reference key="NSMenu" ref="698887838"/>
+												<string key="NSTitle">Show Substitutions</string>
+												<string key="NSKeyEquiv"/>
+												<int key="NSMnemonicLoc">2147483647</int>
+												<reference key="NSOnImage" ref="35465992"/>
+												<reference key="NSMixedImage" ref="502551668"/>
+											</object>
+											<object class="NSMenuItem" id="19036812">
+												<reference key="NSMenu" ref="698887838"/>
+												<bool key="NSIsDisabled">YES</bool>
+												<bool key="NSIsSeparator">YES</bool>
+												<string key="NSTitle"/>
+												<string key="NSKeyEquiv"/>
+												<int key="NSMnemonicLoc">2147483647</int>
+												<reference key="NSOnImage" ref="35465992"/>
+												<reference key="NSMixedImage" ref="502551668"/>
+											</object>
+											<object class="NSMenuItem" id="605118523">
+												<reference key="NSMenu" ref="698887838"/>
+												<string key="NSTitle">Smart Copy/Paste</string>
+												<string key="NSKeyEquiv">f</string>
+												<int key="NSKeyEquivModMask">1048576</int>
+												<int key="NSMnemonicLoc">2147483647</int>
+												<reference key="NSOnImage" ref="35465992"/>
+												<reference key="NSMixedImage" ref="502551668"/>
+												<int key="NSTag">1</int>
+											</object>
+											<object class="NSMenuItem" id="197661976">
+												<reference key="NSMenu" ref="698887838"/>
+												<string key="NSTitle">Smart Quotes</string>
+												<string key="NSKeyEquiv">g</string>
+												<int key="NSKeyEquivModMask">1048576</int>
+												<int key="NSMnemonicLoc">2147483647</int>
+												<reference key="NSOnImage" ref="35465992"/>
+												<reference key="NSMixedImage" ref="502551668"/>
+												<int key="NSTag">2</int>
+											</object>
+											<object class="NSMenuItem" id="672708820">
+												<reference key="NSMenu" ref="698887838"/>
+												<string key="NSTitle">Smart Dashes</string>
+												<string key="NSKeyEquiv"/>
+												<int key="NSMnemonicLoc">2147483647</int>
+												<reference key="NSOnImage" ref="35465992"/>
+												<reference key="NSMixedImage" ref="502551668"/>
+											</object>
+											<object class="NSMenuItem" id="708854459">
+												<reference key="NSMenu" ref="698887838"/>
+												<string key="NSTitle">Smart Links</string>
+												<string key="NSKeyEquiv">G</string>
+												<int key="NSKeyEquivModMask">1179648</int>
+												<int key="NSMnemonicLoc">2147483647</int>
+												<reference key="NSOnImage" ref="35465992"/>
+												<reference key="NSMixedImage" ref="502551668"/>
+												<int key="NSTag">3</int>
+											</object>
+											<object class="NSMenuItem" id="537092702">
+												<reference key="NSMenu" ref="698887838"/>
+												<string key="NSTitle">Text Replacement</string>
+												<string key="NSKeyEquiv"/>
+												<int key="NSMnemonicLoc">2147483647</int>
+												<reference key="NSOnImage" ref="35465992"/>
+												<reference key="NSMixedImage" ref="502551668"/>
+											</object>
+										</object>
+									</object>
+								</object>
+								<object class="NSMenuItem" id="288088188">
+									<reference key="NSMenu" ref="789758025"/>
+									<string key="NSTitle">Transformations</string>
+									<string key="NSKeyEquiv"/>
+									<int key="NSMnemonicLoc">2147483647</int>
+									<reference key="NSOnImage" ref="35465992"/>
+									<reference key="NSMixedImage" ref="502551668"/>
+									<string key="NSAction">submenuAction:</string>
+									<object class="NSMenu" key="NSSubmenu" id="579392910">
+										<string key="NSTitle">Transformations</string>
+										<object class="NSMutableArray" key="NSMenuItems">
+											<bool key="EncodedWithXMLCoder">YES</bool>
+											<object class="NSMenuItem" id="1060694897">
+												<reference key="NSMenu" ref="579392910"/>
+												<string key="NSTitle">Make Upper Case</string>
+												<string key="NSKeyEquiv"/>
+												<int key="NSMnemonicLoc">2147483647</int>
+												<reference key="NSOnImage" ref="35465992"/>
+												<reference key="NSMixedImage" ref="502551668"/>
+											</object>
+											<object class="NSMenuItem" id="879586729">
+												<reference key="NSMenu" ref="579392910"/>
+												<string key="NSTitle">Make Lower Case</string>
+												<string key="NSKeyEquiv"/>
+												<int key="NSMnemonicLoc">2147483647</int>
+												<reference key="NSOnImage" ref="35465992"/>
+												<reference key="NSMixedImage" ref="502551668"/>
+											</object>
+											<object class="NSMenuItem" id="56570060">
+												<reference key="NSMenu" ref="579392910"/>
+												<string key="NSTitle">Capitalize</string>
+												<string key="NSKeyEquiv"/>
+												<int key="NSMnemonicLoc">2147483647</int>
+												<reference key="NSOnImage" ref="35465992"/>
+												<reference key="NSMixedImage" ref="502551668"/>
+											</object>
+										</object>
+									</object>
+								</object>
+								<object class="NSMenuItem" id="676164635">
+									<reference key="NSMenu" ref="789758025"/>
+									<string key="NSTitle">Speech</string>
+									<string key="NSKeyEquiv"/>
+									<int key="NSKeyEquivModMask">1048576</int>
+									<int key="NSMnemonicLoc">2147483647</int>
+									<reference key="NSOnImage" ref="35465992"/>
+									<reference key="NSMixedImage" ref="502551668"/>
+									<string key="NSAction">submenuAction:</string>
+									<object class="NSMenu" key="NSSubmenu" id="785027613">
+										<string key="NSTitle">Speech</string>
+										<object class="NSMutableArray" key="NSMenuItems">
+											<bool key="EncodedWithXMLCoder">YES</bool>
+											<object class="NSMenuItem" id="731782645">
+												<reference key="NSMenu" ref="785027613"/>
+												<string key="NSTitle">Start Speaking</string>
+												<string key="NSKeyEquiv"/>
+												<int key="NSKeyEquivModMask">1048576</int>
+												<int key="NSMnemonicLoc">2147483647</int>
+												<reference key="NSOnImage" ref="35465992"/>
+												<reference key="NSMixedImage" ref="502551668"/>
+											</object>
+											<object class="NSMenuItem" id="680220178">
+												<reference key="NSMenu" ref="785027613"/>
+												<string key="NSTitle">Stop Speaking</string>
+												<string key="NSKeyEquiv"/>
+												<int key="NSKeyEquivModMask">1048576</int>
+												<int key="NSMnemonicLoc">2147483647</int>
+												<reference key="NSOnImage" ref="35465992"/>
+												<reference key="NSMixedImage" ref="502551668"/>
+											</object>
+										</object>
+									</object>
+								</object>
+							</object>
+						</object>
+					</object>
+					<object class="NSMenuItem" id="302598603">
+						<reference key="NSMenu" ref="649796088"/>
+						<string key="NSTitle">Format</string>
+						<string key="NSKeyEquiv"/>
+						<int key="NSMnemonicLoc">2147483647</int>
+						<reference key="NSOnImage" ref="35465992"/>
+						<reference key="NSMixedImage" ref="502551668"/>
+						<string key="NSAction">submenuAction:</string>
+						<object class="NSMenu" key="NSSubmenu" id="941447902">
+							<string key="NSTitle">Format</string>
+							<object class="NSMutableArray" key="NSMenuItems">
+								<bool key="EncodedWithXMLCoder">YES</bool>
+								<object class="NSMenuItem" id="792887677">
+									<reference key="NSMenu" ref="941447902"/>
+									<string key="NSTitle">Font</string>
+									<string key="NSKeyEquiv"/>
+									<int key="NSMnemonicLoc">2147483647</int>
+									<reference key="NSOnImage" ref="35465992"/>
+									<reference key="NSMixedImage" ref="502551668"/>
+									<string key="NSAction">submenuAction:</string>
+									<object class="NSMenu" key="NSSubmenu" id="786677654">
+										<string key="NSTitle">Font</string>
+										<object class="NSMutableArray" key="NSMenuItems">
+											<bool key="EncodedWithXMLCoder">YES</bool>
+											<object class="NSMenuItem" id="159677712">
+												<reference key="NSMenu" ref="786677654"/>
+												<string key="NSTitle">Show Fonts</string>
+												<string key="NSKeyEquiv">t</string>
+												<int key="NSKeyEquivModMask">1048576</int>
+												<int key="NSMnemonicLoc">2147483647</int>
+												<reference key="NSOnImage" ref="35465992"/>
+												<reference key="NSMixedImage" ref="502551668"/>
+											</object>
+											<object class="NSMenuItem" id="305399458">
+												<reference key="NSMenu" ref="786677654"/>
+												<string key="NSTitle">Bold</string>
+												<string key="NSKeyEquiv">b</string>
+												<int key="NSKeyEquivModMask">1048576</int>
+												<int key="NSMnemonicLoc">2147483647</int>
+												<reference key="NSOnImage" ref="35465992"/>
+												<reference key="NSMixedImage" ref="502551668"/>
+												<int key="NSTag">2</int>
+											</object>
+											<object class="NSMenuItem" id="814362025">
+												<reference key="NSMenu" ref="786677654"/>
+												<string key="NSTitle">Italic</string>
+												<string key="NSKeyEquiv">i</string>
+												<int key="NSKeyEquivModMask">1048576</int>
+												<int key="NSMnemonicLoc">2147483647</int>
+												<reference key="NSOnImage" ref="35465992"/>
+												<reference key="NSMixedImage" ref="502551668"/>
+												<int key="NSTag">1</int>
+											</object>
+											<object class="NSMenuItem" id="330926929">
+												<reference key="NSMenu" ref="786677654"/>
+												<string key="NSTitle">Underline</string>
+												<string key="NSKeyEquiv">u</string>
+												<int key="NSKeyEquivModMask">1048576</int>
+												<int key="NSMnemonicLoc">2147483647</int>
+												<reference key="NSOnImage" ref="35465992"/>
+												<reference key="NSMixedImage" ref="502551668"/>
+											</object>
+											<object class="NSMenuItem" id="533507878">
+												<reference key="NSMenu" ref="786677654"/>
+												<bool key="NSIsDisabled">YES</bool>
+												<bool key="NSIsSeparator">YES</bool>
+												<string key="NSTitle"/>
+												<string key="NSKeyEquiv"/>
+												<int key="NSMnemonicLoc">2147483647</int>
+												<reference key="NSOnImage" ref="35465992"/>
+												<reference key="NSMixedImage" ref="502551668"/>
+											</object>
+											<object class="NSMenuItem" id="158063935">
+												<reference key="NSMenu" ref="786677654"/>
+												<string key="NSTitle">Bigger</string>
+												<string key="NSKeyEquiv">+</string>
+												<int key="NSKeyEquivModMask">1048576</int>
+												<int key="NSMnemonicLoc">2147483647</int>
+												<reference key="NSOnImage" ref="35465992"/>
+												<reference key="NSMixedImage" ref="502551668"/>
+												<int key="NSTag">3</int>
+											</object>
+											<object class="NSMenuItem" id="885547335">
+												<reference key="NSMenu" ref="786677654"/>
+												<string key="NSTitle">Smaller</string>
+												<string key="NSKeyEquiv">-</string>
+												<int key="NSKeyEquivModMask">1048576</int>
+												<int key="NSMnemonicLoc">2147483647</int>
+												<reference key="NSOnImage" ref="35465992"/>
+												<reference key="NSMixedImage" ref="502551668"/>
+												<int key="NSTag">4</int>
+											</object>
+											<object class="NSMenuItem" id="901062459">
+												<reference key="NSMenu" ref="786677654"/>
+												<bool key="NSIsDisabled">YES</bool>
+												<bool key="NSIsSeparator">YES</bool>
+												<string key="NSTitle"/>
+												<string key="NSKeyEquiv"/>
+												<int key="NSMnemonicLoc">2147483647</int>
+												<reference key="NSOnImage" ref="35465992"/>
+												<reference key="NSMixedImage" ref="502551668"/>
+											</object>
+											<object class="NSMenuItem" id="767671776">
+												<reference key="NSMenu" ref="786677654"/>
+												<string key="NSTitle">Kern</string>
+												<string key="NSKeyEquiv"/>
+												<int key="NSMnemonicLoc">2147483647</int>
+												<reference key="NSOnImage" ref="35465992"/>
+												<reference key="NSMixedImage" ref="502551668"/>
+												<string key="NSAction">submenuAction:</string>
+												<object class="NSMenu" key="NSSubmenu" id="175441468">
+													<string key="NSTitle">Kern</string>
+													<object class="NSMutableArray" key="NSMenuItems">
+														<bool key="EncodedWithXMLCoder">YES</bool>
+														<object class="NSMenuItem" id="252969304">
+															<reference key="NSMenu" ref="175441468"/>
+															<string key="NSTitle">Use Default</string>
+															<string key="NSKeyEquiv"/>
+															<int key="NSMnemonicLoc">2147483647</int>
+															<reference key="NSOnImage" ref="35465992"/>
+															<reference key="NSMixedImage" ref="502551668"/>
+														</object>
+														<object class="NSMenuItem" id="766922938">
+															<reference key="NSMenu" ref="175441468"/>
+															<string key="NSTitle">Use None</string>
+															<string key="NSKeyEquiv"/>
+															<int key="NSMnemonicLoc">2147483647</int>
+															<reference key="NSOnImage" ref="35465992"/>
+															<reference key="NSMixedImage" ref="502551668"/>
+														</object>
+														<object class="NSMenuItem" id="677519740">
+															<reference key="NSMenu" ref="175441468"/>
+															<string key="NSTitle">Tighten</string>
+															<string key="NSKeyEquiv"/>
+															<int key="NSMnemonicLoc">2147483647</int>
+															<reference key="NSOnImage" ref="35465992"/>
+															<reference key="NSMixedImage" ref="502551668"/>
+														</object>
+														<object class="NSMenuItem" id="238351151">
+															<reference key="NSMenu" ref="175441468"/>
+															<string key="NSTitle">Loosen</string>
+															<string key="NSKeyEquiv"/>
+															<int key="NSMnemonicLoc">2147483647</int>
+															<reference key="NSOnImage" ref="35465992"/>
+															<reference key="NSMixedImage" ref="502551668"/>
+														</object>
+													</object>
+												</object>
+											</object>
+											<object class="NSMenuItem" id="691570813">
+												<reference key="NSMenu" ref="786677654"/>
+												<string key="NSTitle">Ligature</string>
+												<string key="NSKeyEquiv"/>
+												<int key="NSMnemonicLoc">2147483647</int>
+												<reference key="NSOnImage" ref="35465992"/>
+												<reference key="NSMixedImage" ref="502551668"/>
+												<string key="NSAction">submenuAction:</string>
+												<object class="NSMenu" key="NSSubmenu" id="1058217995">
+													<string key="NSTitle">Ligature</string>
+													<object class="NSMutableArray" key="NSMenuItems">
+														<bool key="EncodedWithXMLCoder">YES</bool>
+														<object class="NSMenuItem" id="706297211">
+															<reference key="NSMenu" ref="1058217995"/>
+															<string key="NSTitle">Use Default</string>
+															<string key="NSKeyEquiv"/>
+															<int key="NSMnemonicLoc">2147483647</int>
+															<reference key="NSOnImage" ref="35465992"/>
+															<reference key="NSMixedImage" ref="502551668"/>
+														</object>
+														<object class="NSMenuItem" id="568384683">
+															<reference key="NSMenu" ref="1058217995"/>
+															<string key="NSTitle">Use None</string>
+															<string key="NSKeyEquiv"/>
+															<int key="NSMnemonicLoc">2147483647</int>
+															<reference key="NSOnImage" ref="35465992"/>
+															<reference key="NSMixedImage" ref="502551668"/>
+														</object>
+														<object class="NSMenuItem" id="663508465">
+															<reference key="NSMenu" ref="1058217995"/>
+															<string key="NSTitle">Use All</string>
+															<string key="NSKeyEquiv"/>
+															<int key="NSMnemonicLoc">2147483647</int>
+															<reference key="NSOnImage" ref="35465992"/>
+															<reference key="NSMixedImage" ref="502551668"/>
+														</object>
+													</object>
+												</object>
+											</object>
+											<object class="NSMenuItem" id="769124883">
+												<reference key="NSMenu" ref="786677654"/>
+												<string key="NSTitle">Baseline</string>
+												<string key="NSKeyEquiv"/>
+												<int key="NSMnemonicLoc">2147483647</int>
+												<reference key="NSOnImage" ref="35465992"/>
+												<reference key="NSMixedImage" ref="502551668"/>
+												<string key="NSAction">submenuAction:</string>
+												<object class="NSMenu" key="NSSubmenu" id="18263474">
+													<string key="NSTitle">Baseline</string>
+													<object class="NSMutableArray" key="NSMenuItems">
+														<bool key="EncodedWithXMLCoder">YES</bool>
+														<object class="NSMenuItem" id="257962622">
+															<reference key="NSMenu" ref="18263474"/>
+															<string key="NSTitle">Use Default</string>
+															<string key="NSKeyEquiv"/>
+															<int key="NSMnemonicLoc">2147483647</int>
+															<reference key="NSOnImage" ref="35465992"/>
+															<reference key="NSMixedImage" ref="502551668"/>
+														</object>
+														<object class="NSMenuItem" id="644725453">
+															<reference key="NSMenu" ref="18263474"/>
+															<string key="NSTitle">Superscript</string>
+															<string key="NSKeyEquiv"/>
+															<int key="NSMnemonicLoc">2147483647</int>
+															<reference key="NSOnImage" ref="35465992"/>
+															<reference key="NSMixedImage" ref="502551668"/>
+														</object>
+														<object class="NSMenuItem" id="1037576581">
+															<reference key="NSMenu" ref="18263474"/>
+															<string key="NSTitle">Subscript</string>
+															<string key="NSKeyEquiv"/>
+															<int key="NSMnemonicLoc">2147483647</int>
+															<reference key="NSOnImage" ref="35465992"/>
+															<reference key="NSMixedImage" ref="502551668"/>
+														</object>
+														<object class="NSMenuItem" id="941806246">
+															<reference key="NSMenu" ref="18263474"/>
+															<string key="NSTitle">Raise</string>
+															<string key="NSKeyEquiv"/>
+															<int key="NSMnemonicLoc">2147483647</int>
+															<reference key="NSOnImage" ref="35465992"/>
+															<reference key="NSMixedImage" ref="502551668"/>
+														</object>
+														<object class="NSMenuItem" id="1045724900">
+															<reference key="NSMenu" ref="18263474"/>
+															<string key="NSTitle">Lower</string>
+															<string key="NSKeyEquiv"/>
+															<int key="NSMnemonicLoc">2147483647</int>
+															<reference key="NSOnImage" ref="35465992"/>
+															<reference key="NSMixedImage" ref="502551668"/>
+														</object>
+													</object>
+												</object>
+											</object>
+											<object class="NSMenuItem" id="739652853">
+												<reference key="NSMenu" ref="786677654"/>
+												<bool key="NSIsDisabled">YES</bool>
+												<bool key="NSIsSeparator">YES</bool>
+												<string key="NSTitle"/>
+												<string key="NSKeyEquiv"/>
+												<int key="NSMnemonicLoc">2147483647</int>
+												<reference key="NSOnImage" ref="35465992"/>
+												<reference key="NSMixedImage" ref="502551668"/>
+											</object>
+											<object class="NSMenuItem" id="1012600125">
+												<reference key="NSMenu" ref="786677654"/>
+												<string key="NSTitle">Show Colors</string>
+												<string key="NSKeyEquiv">C</string>
+												<int key="NSKeyEquivModMask">1048576</int>
+												<int key="NSMnemonicLoc">2147483647</int>
+												<reference key="NSOnImage" ref="35465992"/>
+												<reference key="NSMixedImage" ref="502551668"/>
+											</object>
+											<object class="NSMenuItem" id="214559597">
+												<reference key="NSMenu" ref="786677654"/>
+												<bool key="NSIsDisabled">YES</bool>
+												<bool key="NSIsSeparator">YES</bool>
+												<string key="NSTitle"/>
+												<string key="NSKeyEquiv"/>
+												<int key="NSMnemonicLoc">2147483647</int>
+												<reference key="NSOnImage" ref="35465992"/>
+												<reference key="NSMixedImage" ref="502551668"/>
+											</object>
+											<object class="NSMenuItem" id="596732606">
+												<reference key="NSMenu" ref="786677654"/>
+												<string key="NSTitle">Copy Style</string>
+												<string key="NSKeyEquiv">c</string>
+												<int key="NSKeyEquivModMask">1572864</int>
+												<int key="NSMnemonicLoc">2147483647</int>
+												<reference key="NSOnImage" ref="35465992"/>
+												<reference key="NSMixedImage" ref="502551668"/>
+											</object>
+											<object class="NSMenuItem" id="393423671">
+												<reference key="NSMenu" ref="786677654"/>
+												<string key="NSTitle">Paste Style</string>
+												<string key="NSKeyEquiv">v</string>
+												<int key="NSKeyEquivModMask">1572864</int>
+												<int key="NSMnemonicLoc">2147483647</int>
+												<reference key="NSOnImage" ref="35465992"/>
+												<reference key="NSMixedImage" ref="502551668"/>
+											</object>
+										</object>
+										<string key="NSName">_NSFontMenu</string>
+									</object>
+								</object>
+								<object class="NSMenuItem" id="215659978">
+									<reference key="NSMenu" ref="941447902"/>
+									<string key="NSTitle">Text</string>
+									<string key="NSKeyEquiv"/>
+									<int key="NSMnemonicLoc">2147483647</int>
+									<reference key="NSOnImage" ref="35465992"/>
+									<reference key="NSMixedImage" ref="502551668"/>
+									<string key="NSAction">submenuAction:</string>
+									<object class="NSMenu" key="NSSubmenu" id="446991534">
+										<string key="NSTitle">Text</string>
+										<object class="NSMutableArray" key="NSMenuItems">
+											<bool key="EncodedWithXMLCoder">YES</bool>
+											<object class="NSMenuItem" id="875092757">
+												<reference key="NSMenu" ref="446991534"/>
+												<string key="NSTitle">Align Left</string>
+												<string key="NSKeyEquiv">{</string>
+												<int key="NSKeyEquivModMask">1048576</int>
+												<int key="NSMnemonicLoc">2147483647</int>
+												<reference key="NSOnImage" ref="35465992"/>
+												<reference key="NSMixedImage" ref="502551668"/>
+											</object>
+											<object class="NSMenuItem" id="630155264">
+												<reference key="NSMenu" ref="446991534"/>
+												<string key="NSTitle">Center</string>
+												<string key="NSKeyEquiv">|</string>
+												<int key="NSKeyEquivModMask">1048576</int>
+												<int key="NSMnemonicLoc">2147483647</int>
+												<reference key="NSOnImage" ref="35465992"/>
+												<reference key="NSMixedImage" ref="502551668"/>
+											</object>
+											<object class="NSMenuItem" id="945678886">
+												<reference key="NSMenu" ref="446991534"/>
+												<string key="NSTitle">Justify</string>
+												<string key="NSKeyEquiv"/>
+												<int key="NSMnemonicLoc">2147483647</int>
+												<reference key="NSOnImage" ref="35465992"/>
+												<reference key="NSMixedImage" ref="502551668"/>
+											</object>
+											<object class="NSMenuItem" id="512868991">
+												<reference key="NSMenu" ref="446991534"/>
+												<string key="NSTitle">Align Right</string>
+												<string key="NSKeyEquiv">}</string>
+												<int key="NSKeyEquivModMask">1048576</int>
+												<int key="NSMnemonicLoc">2147483647</int>
+												<reference key="NSOnImage" ref="35465992"/>
+												<reference key="NSMixedImage" ref="502551668"/>
+											</object>
+											<object class="NSMenuItem" id="163117631">
+												<reference key="NSMenu" ref="446991534"/>
+												<bool key="NSIsDisabled">YES</bool>
+												<bool key="NSIsSeparator">YES</bool>
+												<string key="NSTitle"/>
+												<string key="NSKeyEquiv"/>
+												<int key="NSMnemonicLoc">2147483647</int>
+												<reference key="NSOnImage" ref="35465992"/>
+												<reference key="NSMixedImage" ref="502551668"/>
+											</object>
+											<object class="NSMenuItem" id="31516759">
+												<reference key="NSMenu" ref="446991534"/>
+												<string key="NSTitle">Writing Direction</string>
+												<string key="NSKeyEquiv"/>
+												<int key="NSMnemonicLoc">2147483647</int>
+												<reference key="NSOnImage" ref="35465992"/>
+												<reference key="NSMixedImage" ref="502551668"/>
+												<string key="NSAction">submenuAction:</string>
+												<object class="NSMenu" key="NSSubmenu" id="956096989">
+													<string key="NSTitle">Writing Direction</string>
+													<object class="NSMutableArray" key="NSMenuItems">
+														<bool key="EncodedWithXMLCoder">YES</bool>
+														<object class="NSMenuItem" id="257099033">
+															<reference key="NSMenu" ref="956096989"/>
+															<bool key="NSIsDisabled">YES</bool>
+															<string key="NSTitle">Paragraph</string>
+															<string key="NSKeyEquiv"/>
+															<int key="NSMnemonicLoc">2147483647</int>
+															<reference key="NSOnImage" ref="35465992"/>
+															<reference key="NSMixedImage" ref="502551668"/>
+														</object>
+														<object class="NSMenuItem" id="551969625">
+															<reference key="NSMenu" ref="956096989"/>
+															<string type="base64-UTF8" key="NSTitle">CURlZmF1bHQ</string>
+															<string key="NSKeyEquiv"/>
+															<int key="NSMnemonicLoc">2147483647</int>
+															<reference key="NSOnImage" ref="35465992"/>
+															<reference key="NSMixedImage" ref="502551668"/>
+														</object>
+														<object class="NSMenuItem" id="249532473">
+															<reference key="NSMenu" ref="956096989"/>
+															<string type="base64-UTF8" key="NSTitle">CUxlZnQgdG8gUmlnaHQ</string>
+															<string key="NSKeyEquiv"/>
+															<int key="NSMnemonicLoc">2147483647</int>
+															<reference key="NSOnImage" ref="35465992"/>
+															<reference key="NSMixedImage" ref="502551668"/>
+														</object>
+														<object class="NSMenuItem" id="607364498">
+															<reference key="NSMenu" ref="956096989"/>
+															<string type="base64-UTF8" key="NSTitle">CVJpZ2h0IHRvIExlZnQ</string>
+															<string key="NSKeyEquiv"/>
+															<int key="NSMnemonicLoc">2147483647</int>
+															<reference key="NSOnImage" ref="35465992"/>
+															<reference key="NSMixedImage" ref="502551668"/>
+														</object>
+														<object class="NSMenuItem" id="508151438">
+															<reference key="NSMenu" ref="956096989"/>
+															<bool key="NSIsDisabled">YES</bool>
+															<bool key="NSIsSeparator">YES</bool>
+															<string key="NSTitle"/>
+															<string key="NSKeyEquiv"/>
+															<int key="NSMnemonicLoc">2147483647</int>
+															<reference key="NSOnImage" ref="35465992"/>
+															<reference key="NSMixedImage" ref="502551668"/>
+														</object>
+														<object class="NSMenuItem" id="981751889">
+															<reference key="NSMenu" ref="956096989"/>
+															<bool key="NSIsDisabled">YES</bool>
+															<string key="NSTitle">Selection</string>
+															<string key="NSKeyEquiv"/>
+															<int key="NSMnemonicLoc">2147483647</int>
+															<reference key="NSOnImage" ref="35465992"/>
+															<reference key="NSMixedImage" ref="502551668"/>
+														</object>
+														<object class="NSMenuItem" id="380031999">
+															<reference key="NSMenu" ref="956096989"/>
+															<string type="base64-UTF8" key="NSTitle">CURlZmF1bHQ</string>
+															<string key="NSKeyEquiv"/>
+															<int key="NSMnemonicLoc">2147483647</int>
+															<reference key="NSOnImage" ref="35465992"/>
+															<reference key="NSMixedImage" ref="502551668"/>
+														</object>
+														<object class="NSMenuItem" id="825984362">
+															<reference key="NSMenu" ref="956096989"/>
+															<string type="base64-UTF8" key="NSTitle">CUxlZnQgdG8gUmlnaHQ</string>
+															<string key="NSKeyEquiv"/>
+															<int key="NSMnemonicLoc">2147483647</int>
+															<reference key="NSOnImage" ref="35465992"/>
+															<reference key="NSMixedImage" ref="502551668"/>
+														</object>
+														<object class="NSMenuItem" id="560145579">
+															<reference key="NSMenu" ref="956096989"/>
+															<string type="base64-UTF8" key="NSTitle">CVJpZ2h0IHRvIExlZnQ</string>
+															<string key="NSKeyEquiv"/>
+															<int key="NSMnemonicLoc">2147483647</int>
+															<reference key="NSOnImage" ref="35465992"/>
+															<reference key="NSMixedImage" ref="502551668"/>
+														</object>
+													</object>
+												</object>
+											</object>
+											<object class="NSMenuItem" id="908105787">
+												<reference key="NSMenu" ref="446991534"/>
+												<bool key="NSIsDisabled">YES</bool>
+												<bool key="NSIsSeparator">YES</bool>
+												<string key="NSTitle"/>
+												<string key="NSKeyEquiv"/>
+												<int key="NSMnemonicLoc">2147483647</int>
+												<reference key="NSOnImage" ref="35465992"/>
+												<reference key="NSMixedImage" ref="502551668"/>
+											</object>
+											<object class="NSMenuItem" id="644046920">
+												<reference key="NSMenu" ref="446991534"/>
+												<string key="NSTitle">Show Ruler</string>
+												<string key="NSKeyEquiv"/>
+												<int key="NSMnemonicLoc">2147483647</int>
+												<reference key="NSOnImage" ref="35465992"/>
+												<reference key="NSMixedImage" ref="502551668"/>
+											</object>
+											<object class="NSMenuItem" id="231811626">
+												<reference key="NSMenu" ref="446991534"/>
+												<string key="NSTitle">Copy Ruler</string>
+												<string key="NSKeyEquiv">c</string>
+												<int key="NSKeyEquivModMask">1310720</int>
+												<int key="NSMnemonicLoc">2147483647</int>
+												<reference key="NSOnImage" ref="35465992"/>
+												<reference key="NSMixedImage" ref="502551668"/>
+											</object>
+											<object class="NSMenuItem" id="883618387">
+												<reference key="NSMenu" ref="446991534"/>
+												<string key="NSTitle">Paste Ruler</string>
+												<string key="NSKeyEquiv">v</string>
+												<int key="NSKeyEquivModMask">1310720</int>
+												<int key="NSMnemonicLoc">2147483647</int>
+												<reference key="NSOnImage" ref="35465992"/>
+												<reference key="NSMixedImage" ref="502551668"/>
+											</object>
+										</object>
+									</object>
+								</object>
+							</object>
+						</object>
+					</object>
+					<object class="NSMenuItem" id="586577488">
+						<reference key="NSMenu" ref="649796088"/>
+						<string key="NSTitle">View</string>
+						<string key="NSKeyEquiv"/>
+						<int key="NSKeyEquivModMask">1048576</int>
+						<int key="NSMnemonicLoc">2147483647</int>
+						<reference key="NSOnImage" ref="35465992"/>
+						<reference key="NSMixedImage" ref="502551668"/>
+						<string key="NSAction">submenuAction:</string>
+						<object class="NSMenu" key="NSSubmenu" id="466310130">
+							<string key="NSTitle">View</string>
+							<object class="NSMutableArray" key="NSMenuItems">
+								<bool key="EncodedWithXMLCoder">YES</bool>
+								<object class="NSMenuItem" id="102151532">
+									<reference key="NSMenu" ref="466310130"/>
+									<string key="NSTitle">Show Toolbar</string>
+									<string key="NSKeyEquiv">t</string>
+									<int key="NSKeyEquivModMask">1572864</int>
+									<int key="NSMnemonicLoc">2147483647</int>
+									<reference key="NSOnImage" ref="35465992"/>
+									<reference key="NSMixedImage" ref="502551668"/>
+								</object>
+								<object class="NSMenuItem" id="237841660">
+									<reference key="NSMenu" ref="466310130"/>
+									<string key="NSTitle">Customize Toolbar…</string>
+									<string key="NSKeyEquiv"/>
+									<int key="NSKeyEquivModMask">1048576</int>
+									<int key="NSMnemonicLoc">2147483647</int>
+									<reference key="NSOnImage" ref="35465992"/>
+									<reference key="NSMixedImage" ref="502551668"/>
+								</object>
+							</object>
+						</object>
+					</object>
+					<object class="NSMenuItem" id="713487014">
+						<reference key="NSMenu" ref="649796088"/>
+						<string key="NSTitle">Window</string>
+						<string key="NSKeyEquiv"/>
+						<int key="NSKeyEquivModMask">1048576</int>
+						<int key="NSMnemonicLoc">2147483647</int>
+						<reference key="NSOnImage" ref="35465992"/>
+						<reference key="NSMixedImage" ref="502551668"/>
+						<string key="NSAction">submenuAction:</string>
+						<object class="NSMenu" key="NSSubmenu" id="835318025">
+							<string key="NSTitle">Window</string>
+							<object class="NSMutableArray" key="NSMenuItems">
+								<bool key="EncodedWithXMLCoder">YES</bool>
+								<object class="NSMenuItem" id="1011231497">
+									<reference key="NSMenu" ref="835318025"/>
+									<string key="NSTitle">Minimize</string>
+									<string key="NSKeyEquiv">m</string>
+									<int key="NSKeyEquivModMask">1048576</int>
+									<int key="NSMnemonicLoc">2147483647</int>
+									<reference key="NSOnImage" ref="35465992"/>
+									<reference key="NSMixedImage" ref="502551668"/>
+								</object>
+								<object class="NSMenuItem" id="575023229">
+									<reference key="NSMenu" ref="835318025"/>
+									<string key="NSTitle">Zoom</string>
+									<string key="NSKeyEquiv"/>
+									<int key="NSKeyEquivModMask">1048576</int>
+									<int key="NSMnemonicLoc">2147483647</int>
+									<reference key="NSOnImage" ref="35465992"/>
+									<reference key="NSMixedImage" ref="502551668"/>
+								</object>
+								<object class="NSMenuItem" id="299356726">
+									<reference key="NSMenu" ref="835318025"/>
+									<bool key="NSIsDisabled">YES</bool>
+									<bool key="NSIsSeparator">YES</bool>
+									<string key="NSTitle"/>
+									<string key="NSKeyEquiv"/>
+									<int key="NSKeyEquivModMask">1048576</int>
+									<int key="NSMnemonicLoc">2147483647</int>
+									<reference key="NSOnImage" ref="35465992"/>
+									<reference key="NSMixedImage" ref="502551668"/>
+								</object>
+								<object class="NSMenuItem" id="625202149">
+									<reference key="NSMenu" ref="835318025"/>
+									<string key="NSTitle">Bring All to Front</string>
+									<string key="NSKeyEquiv"/>
+									<int key="NSKeyEquivModMask">1048576</int>
+									<int key="NSMnemonicLoc">2147483647</int>
+									<reference key="NSOnImage" ref="35465992"/>
+									<reference key="NSMixedImage" ref="502551668"/>
+								</object>
+							</object>
+							<string key="NSName">_NSWindowsMenu</string>
+						</object>
+					</object>
+					<object class="NSMenuItem" id="448692316">
+						<reference key="NSMenu" ref="649796088"/>
+						<string key="NSTitle">Help</string>
+						<string key="NSKeyEquiv"/>
+						<int key="NSMnemonicLoc">2147483647</int>
+						<reference key="NSOnImage" ref="35465992"/>
+						<reference key="NSMixedImage" ref="502551668"/>
+						<string key="NSAction">submenuAction:</string>
+						<object class="NSMenu" key="NSSubmenu" id="992780483">
+							<string key="NSTitle">Help</string>
+							<object class="NSMutableArray" key="NSMenuItems">
+								<bool key="EncodedWithXMLCoder">YES</bool>
+								<object class="NSMenuItem" id="105068016">
+									<reference key="NSMenu" ref="992780483"/>
+									<string key="NSTitle">DisplayPretty Help</string>
+									<string key="NSKeyEquiv">?</string>
+									<int key="NSKeyEquivModMask">1048576</int>
+									<int key="NSMnemonicLoc">2147483647</int>
+									<reference key="NSOnImage" ref="35465992"/>
+									<reference key="NSMixedImage" ref="502551668"/>
+								</object>
+							</object>
+							<string key="NSName">_NSHelpMenu</string>
+						</object>
+					</object>
+				</object>
+				<string key="NSName">_NSMainMenu</string>
+			</object>
+			<object class="NSWindowTemplate" id="972006081">
+				<int key="NSWindowStyleMask">15</int>
+				<int key="NSWindowBacking">2</int>
+				<string key="NSWindowRect">{{335, 390}, {480, 360}}</string>
+				<int key="NSWTFlags">1954021376</int>
+				<string key="NSWindowTitle">DisplayPretty</string>
+				<string key="NSWindowClass">NSWindow</string>
+				<nil key="NSViewClass"/>
+				<object class="NSView" key="NSWindowView" id="439893737">
+					<reference key="NSNextResponder"/>
+					<int key="NSvFlags">256</int>
+					<object class="NSMutableArray" key="NSSubviews">
+						<bool key="EncodedWithXMLCoder">YES</bool>
+						<object class="NSSplitView" id="32394578">
+							<reference key="NSNextResponder" ref="439893737"/>
+							<int key="NSvFlags">274</int>
+							<object class="NSMutableArray" key="NSSubviews">
+								<bool key="EncodedWithXMLCoder">YES</bool>
+								<object class="NSCustomView" id="820488047">
+									<reference key="NSNextResponder" ref="32394578"/>
+									<int key="NSvFlags">256</int>
+									<object class="NSMutableArray" key="NSSubviews">
+										<bool key="EncodedWithXMLCoder">YES</bool>
+										<object class="NSTextField" id="359108043">
+											<reference key="NSNextResponder" ref="820488047"/>
+											<int key="NSvFlags">274</int>
+											<string key="NSFrameSize">{229, 320}</string>
+											<reference key="NSSuperview" ref="820488047"/>
+											<reference key="NSWindow"/>
+											<reference key="NSNextKeyView" ref="701764425"/>
+											<bool key="NSEnabled">YES</bool>
+											<object class="NSTextFieldCell" key="NSCell" id="773694245">
+												<int key="NSCellFlags">-1805517311</int>
+												<int key="NSCellFlags2">272629760</int>
+												<string key="NSContents"/>
+												<object class="NSFont" key="NSSupport" id="684382246">
+													<string key="NSName">Monaco</string>
+													<double key="NSSize">13</double>
+													<int key="NSfFlags">16</int>
+												</object>
+												<reference key="NSControlView" ref="359108043"/>
+												<bool key="NSDrawsBackground">YES</bool>
+												<object class="NSColor" key="NSBackgroundColor" id="815357474">
+													<int key="NSColorSpace">6</int>
+													<string key="NSCatalogName">System</string>
+													<string key="NSColorName">textBackgroundColor</string>
+													<object class="NSColor" key="NSColor">
+														<int key="NSColorSpace">3</int>
+														<bytes key="NSWhite">MQA</bytes>
+													</object>
+												</object>
+												<object class="NSColor" key="NSTextColor" id="701852074">
+													<int key="NSColorSpace">6</int>
+													<string key="NSCatalogName">System</string>
+													<string key="NSColorName">textColor</string>
+													<object class="NSColor" key="NSColor" id="727230834">
+														<int key="NSColorSpace">3</int>
+														<bytes key="NSWhite">MAA</bytes>
+													</object>
+												</object>
+											</object>
+										</object>
+									</object>
+									<string key="NSFrameSize">{229, 320}</string>
+									<reference key="NSSuperview" ref="32394578"/>
+									<reference key="NSWindow"/>
+									<reference key="NSNextKeyView" ref="359108043"/>
+									<string key="NSClassName">NSView</string>
+								</object>
+								<object class="NSCustomView" id="701764425">
+									<reference key="NSNextResponder" ref="32394578"/>
+									<int key="NSvFlags">256</int>
+									<object class="NSMutableArray" key="NSSubviews">
+										<bool key="EncodedWithXMLCoder">YES</bool>
+										<object class="NSTextField" id="718129166">
+											<reference key="NSNextResponder" ref="701764425"/>
+											<int key="NSvFlags">274</int>
+											<string key="NSFrameSize">{201, 320}</string>
+											<reference key="NSSuperview" ref="701764425"/>
+											<reference key="NSWindow"/>
+											<reference key="NSNextKeyView"/>
+											<bool key="NSEnabled">YES</bool>
+											<object class="NSTextFieldCell" key="NSCell" id="913764213">
+												<int key="NSCellFlags">-2073952767</int>
+												<int key="NSCellFlags2">272633856</int>
+												<string key="NSContents"/>
+												<reference key="NSSupport" ref="684382246"/>
+												<reference key="NSControlView" ref="718129166"/>
+												<bool key="NSDrawsBackground">YES</bool>
+												<reference key="NSBackgroundColor" ref="815357474"/>
+												<reference key="NSTextColor" ref="701852074"/>
+											</object>
+										</object>
+									</object>
+									<string key="NSFrame">{{239, 0}, {201, 320}}</string>
+									<reference key="NSSuperview" ref="32394578"/>
+									<reference key="NSWindow"/>
+									<reference key="NSNextKeyView" ref="718129166"/>
+									<string key="NSClassName">NSView</string>
+								</object>
+							</object>
+							<string key="NSFrame">{{20, 20}, {440, 320}}</string>
+							<reference key="NSSuperview" ref="439893737"/>
+							<reference key="NSWindow"/>
+							<reference key="NSNextKeyView" ref="820488047"/>
+							<bool key="NSIsVertical">YES</bool>
+							<int key="NSDividerStyle">3</int>
+						</object>
+					</object>
+					<string key="NSFrame">{{7, 11}, {480, 360}}</string>
+					<reference key="NSSuperview"/>
+					<reference key="NSWindow"/>
+					<reference key="NSNextKeyView" ref="32394578"/>
+				</object>
+				<string key="NSScreenRect">{{0, 0}, {1920, 1178}}</string>
+				<string key="NSMaxSize">{1e+13, 1e+13}</string>
+			</object>
+			<object class="NSCustomObject" id="976324537">
+				<string key="NSClassName">DisplayPrettyAppDelegate</string>
+			</object>
+			<object class="NSCustomObject" id="852646754">
+				<string key="NSClassName">DisplayPrettyController</string>
+			</object>
+			<object class="NSCustomObject" id="755631768">
+				<string key="NSClassName">NSFontManager</string>
+			</object>
+			<object class="NSTextField" id="136512752">
+				<nil key="NSNextResponder"/>
+				<int key="NSvFlags">268</int>
+				<string key="NSFrameSize">{696, 17}</string>
+				<bool key="NSEnabled">YES</bool>
+				<object class="NSTextFieldCell" key="NSCell" id="195541490">
+					<int key="NSCellFlags">68288064</int>
+					<int key="NSCellFlags2">272630784</int>
+					<string key="NSContents">Label</string>
+					<object class="NSFont" key="NSSupport">
+						<string key="NSName">LucidaGrande</string>
+						<double key="NSSize">13</double>
+						<int key="NSfFlags">1044</int>
+					</object>
+					<reference key="NSControlView" ref="136512752"/>
+					<object class="NSColor" key="NSBackgroundColor">
+						<int key="NSColorSpace">6</int>
+						<string key="NSCatalogName">System</string>
+						<string key="NSColorName">controlColor</string>
+						<object class="NSColor" key="NSColor">
+							<int key="NSColorSpace">3</int>
+							<bytes key="NSWhite">MC42NjY2NjY2NjY3AA</bytes>
+						</object>
+					</object>
+					<object class="NSColor" key="NSTextColor">
+						<int key="NSColorSpace">6</int>
+						<string key="NSCatalogName">System</string>
+						<string key="NSColorName">controlTextColor</string>
+						<reference key="NSColor" ref="727230834"/>
+					</object>
+				</object>
+			</object>
+		</object>
+		<object class="IBObjectContainer" key="IBDocument.Objects">
+			<object class="NSMutableArray" key="connectionRecords">
+				<bool key="EncodedWithXMLCoder">YES</bool>
+				<object class="IBConnectionRecord">
+					<object class="IBActionConnection" key="connection">
+						<string key="label">performMiniaturize:</string>
+						<reference key="source" ref="1014"/>
+						<reference key="destination" ref="1011231497"/>
+					</object>
+					<int key="connectionID">37</int>
+				</object>
+				<object class="IBConnectionRecord">
+					<object class="IBActionConnection" key="connection">
+						<string key="label">arrangeInFront:</string>
+						<reference key="source" ref="1014"/>
+						<reference key="destination" ref="625202149"/>
+					</object>
+					<int key="connectionID">39</int>
+				</object>
+				<object class="IBConnectionRecord">
+					<object class="IBActionConnection" key="connection">
+						<string key="label">print:</string>
+						<reference key="source" ref="1014"/>
+						<reference key="destination" ref="49223823"/>
+					</object>
+					<int key="connectionID">86</int>
+				</object>
+				<object class="IBConnectionRecord">
+					<object class="IBActionConnection" key="connection">
+						<string key="label">runPageLayout:</string>
+						<reference key="source" ref="1014"/>
+						<reference key="destination" ref="294629803"/>
+					</object>
+					<int key="connectionID">87</int>
+				</object>
+				<object class="IBConnectionRecord">
+					<object class="IBActionConnection" key="connection">
+						<string key="label">clearRecentDocuments:</string>
+						<reference key="source" ref="1014"/>
+						<reference key="destination" ref="759406840"/>
+					</object>
+					<int key="connectionID">127</int>
+				</object>
+				<object class="IBConnectionRecord">
+					<object class="IBActionConnection" key="connection">
+						<string key="label">orderFrontStandardAboutPanel:</string>
+						<reference key="source" ref="1021"/>
+						<reference key="destination" ref="238522557"/>
+					</object>
+					<int key="connectionID">142</int>
+				</object>
+				<object class="IBConnectionRecord">
+					<object class="IBActionConnection" key="connection">
+						<string key="label">performClose:</string>
+						<reference key="source" ref="1014"/>
+						<reference key="destination" ref="776162233"/>
+					</object>
+					<int key="connectionID">193</int>
+				</object>
+				<object class="IBConnectionRecord">
+					<object class="IBActionConnection" key="connection">
+						<string key="label">toggleContinuousSpellChecking:</string>
+						<reference key="source" ref="1014"/>
+						<reference key="destination" ref="948374510"/>
+					</object>
+					<int key="connectionID">222</int>
+				</object>
+				<object class="IBConnectionRecord">
+					<object class="IBActionConnection" key="connection">
+						<string key="label">undo:</string>
+						<reference key="source" ref="1014"/>
+						<reference key="destination" ref="1058277027"/>
+					</object>
+					<int key="connectionID">223</int>
+				</object>
+				<object class="IBConnectionRecord">
+					<object class="IBActionConnection" key="connection">
+						<string key="label">copy:</string>
+						<reference key="source" ref="1014"/>
+						<reference key="destination" ref="860595796"/>
+					</object>
+					<int key="connectionID">224</int>
+				</object>
+				<object class="IBConnectionRecord">
+					<object class="IBActionConnection" key="connection">
+						<string key="label">checkSpelling:</string>
+						<reference key="source" ref="1014"/>
+						<reference key="destination" ref="96193923"/>
+					</object>
+					<int key="connectionID">225</int>
+				</object>
+				<object class="IBConnectionRecord">
+					<object class="IBActionConnection" key="connection">
+						<string key="label">paste:</string>
+						<reference key="source" ref="1014"/>
+						<reference key="destination" ref="29853731"/>
+					</object>
+					<int key="connectionID">226</int>
+				</object>
+				<object class="IBConnectionRecord">
+					<object class="IBActionConnection" key="connection">
+						<string key="label">stopSpeaking:</string>
+						<reference key="source" ref="1014"/>
+						<reference key="destination" ref="680220178"/>
+					</object>
+					<int key="connectionID">227</int>
+				</object>
+				<object class="IBConnectionRecord">
+					<object class="IBActionConnection" key="connection">
+						<string key="label">cut:</string>
+						<reference key="source" ref="1014"/>
+						<reference key="destination" ref="296257095"/>
+					</object>
+					<int key="connectionID">228</int>
+				</object>
+				<object class="IBConnectionRecord">
+					<object class="IBActionConnection" key="connection">
+						<string key="label">showGuessPanel:</string>
+						<reference key="source" ref="1014"/>
+						<reference key="destination" ref="679648819"/>
+					</object>
+					<int key="connectionID">230</int>
+				</object>
+				<object class="IBConnectionRecord">
+					<object class="IBActionConnection" key="connection">
+						<string key="label">redo:</string>
+						<reference key="source" ref="1014"/>
+						<reference key="destination" ref="790794224"/>
+					</object>
+					<int key="connectionID">231</int>
+				</object>
+				<object class="IBConnectionRecord">
+					<object class="IBActionConnection" key="connection">
+						<string key="label">selectAll:</string>
+						<reference key="source" ref="1014"/>
+						<reference key="destination" ref="583158037"/>
+					</object>
+					<int key="connectionID">232</int>
+				</object>
+				<object class="IBConnectionRecord">
+					<object class="IBActionConnection" key="connection">
+						<string key="label">startSpeaking:</string>
+						<reference key="source" ref="1014"/>
+						<reference key="destination" ref="731782645"/>
+					</object>
+					<int key="connectionID">233</int>
+				</object>
+				<object class="IBConnectionRecord">
+					<object class="IBActionConnection" key="connection">
+						<string key="label">delete:</string>
+						<reference key="source" ref="1014"/>
+						<reference key="destination" ref="437104165"/>
+					</object>
+					<int key="connectionID">235</int>
+				</object>
+				<object class="IBConnectionRecord">
+					<object class="IBActionConnection" key="connection">
+						<string key="label">performZoom:</string>
+						<reference key="source" ref="1014"/>
+						<reference key="destination" ref="575023229"/>
+					</object>
+					<int key="connectionID">240</int>
+				</object>
+				<object class="IBConnectionRecord">
+					<object class="IBActionConnection" key="connection">
+						<string key="label">performFindPanelAction:</string>
+						<reference key="source" ref="1014"/>
+						<reference key="destination" ref="447796847"/>
+					</object>
+					<int key="connectionID">241</int>
+				</object>
+				<object class="IBConnectionRecord">
+					<object class="IBActionConnection" key="connection">
+						<string key="label">centerSelectionInVisibleArea:</string>
+						<reference key="source" ref="1014"/>
+						<reference key="destination" ref="88285865"/>
+					</object>
+					<int key="connectionID">245</int>
+				</object>
+				<object class="IBConnectionRecord">
+					<object class="IBActionConnection" key="connection">
+						<string key="label">toggleGrammarChecking:</string>
+						<reference key="source" ref="1014"/>
+						<reference key="destination" ref="967646866"/>
+					</object>
+					<int key="connectionID">347</int>
+				</object>
+				<object class="IBConnectionRecord">
+					<object class="IBActionConnection" key="connection">
+						<string key="label">toggleSmartInsertDelete:</string>
+						<reference key="source" ref="1014"/>
+						<reference key="destination" ref="605118523"/>
+					</object>
+					<int key="connectionID">355</int>
+				</object>
+				<object class="IBConnectionRecord">
+					<object class="IBActionConnection" key="connection">
+						<string key="label">toggleAutomaticQuoteSubstitution:</string>
+						<reference key="source" ref="1014"/>
+						<reference key="destination" ref="197661976"/>
+					</object>
+					<int key="connectionID">356</int>
+				</object>
+				<object class="IBConnectionRecord">
+					<object class="IBActionConnection" key="connection">
+						<string key="label">toggleAutomaticLinkDetection:</string>
+						<reference key="source" ref="1014"/>
+						<reference key="destination" ref="708854459"/>
+					</object>
+					<int key="connectionID">357</int>
+				</object>
+				<object class="IBConnectionRecord">
+					<object class="IBActionConnection" key="connection">
+						<string key="label">saveDocument:</string>
+						<reference key="source" ref="1014"/>
+						<reference key="destination" ref="1023925487"/>
+					</object>
+					<int key="connectionID">362</int>
+				</object>
+				<object class="IBConnectionRecord">
+					<object class="IBActionConnection" key="connection">
+						<string key="label">saveDocumentAs:</string>
+						<reference key="source" ref="1014"/>
+						<reference key="destination" ref="117038363"/>
+					</object>
+					<int key="connectionID">363</int>
+				</object>
+				<object class="IBConnectionRecord">
+					<object class="IBActionConnection" key="connection">
+						<string key="label">revertDocumentToSaved:</string>
+						<reference key="source" ref="1014"/>
+						<reference key="destination" ref="579971712"/>
+					</object>
+					<int key="connectionID">364</int>
+				</object>
+				<object class="IBConnectionRecord">
+					<object class="IBActionConnection" key="connection">
+						<string key="label">runToolbarCustomizationPalette:</string>
+						<reference key="source" ref="1014"/>
+						<reference key="destination" ref="237841660"/>
+					</object>
+					<int key="connectionID">365</int>
+				</object>
+				<object class="IBConnectionRecord">
+					<object class="IBActionConnection" key="connection">
+						<string key="label">toggleToolbarShown:</string>
+						<reference key="source" ref="1014"/>
+						<reference key="destination" ref="102151532"/>
+					</object>
+					<int key="connectionID">366</int>
+				</object>
+				<object class="IBConnectionRecord">
+					<object class="IBActionConnection" key="connection">
+						<string key="label">hide:</string>
+						<reference key="source" ref="1014"/>
+						<reference key="destination" ref="755159360"/>
+					</object>
+					<int key="connectionID">367</int>
+				</object>
+				<object class="IBConnectionRecord">
+					<object class="IBActionConnection" key="connection">
+						<string key="label">hideOtherApplications:</string>
+						<reference key="source" ref="1014"/>
+						<reference key="destination" ref="342932134"/>
+					</object>
+					<int key="connectionID">368</int>
+				</object>
+				<object class="IBConnectionRecord">
+					<object class="IBActionConnection" key="connection">
+						<string key="label">unhideAllApplications:</string>
+						<reference key="source" ref="1014"/>
+						<reference key="destination" ref="908899353"/>
+					</object>
+					<int key="connectionID">370</int>
+				</object>
+				<object class="IBConnectionRecord">
+					<object class="IBActionConnection" key="connection">
+						<string key="label">newDocument:</string>
+						<reference key="source" ref="1014"/>
+						<reference key="destination" ref="705341025"/>
+					</object>
+					<int key="connectionID">373</int>
+				</object>
+				<object class="IBConnectionRecord">
+					<object class="IBActionConnection" key="connection">
+						<string key="label">openDocument:</string>
+						<reference key="source" ref="1014"/>
+						<reference key="destination" ref="722745758"/>
+					</object>
+					<int key="connectionID">374</int>
+				</object>
+				<object class="IBConnectionRecord">
+					<object class="IBActionConnection" key="connection">
+						<string key="label">addFontTrait:</string>
+						<reference key="source" ref="755631768"/>
+						<reference key="destination" ref="305399458"/>
+					</object>
+					<int key="connectionID">421</int>
+				</object>
+				<object class="IBConnectionRecord">
+					<object class="IBActionConnection" key="connection">
+						<string key="label">addFontTrait:</string>
+						<reference key="source" ref="755631768"/>
+						<reference key="destination" ref="814362025"/>
+					</object>
+					<int key="connectionID">422</int>
+				</object>
+				<object class="IBConnectionRecord">
+					<object class="IBActionConnection" key="connection">
+						<string key="label">modifyFont:</string>
+						<reference key="source" ref="755631768"/>
+						<reference key="destination" ref="885547335"/>
+					</object>
+					<int key="connectionID">423</int>
+				</object>
+				<object class="IBConnectionRecord">
+					<object class="IBActionConnection" key="connection">
+						<string key="label">orderFrontFontPanel:</string>
+						<reference key="source" ref="755631768"/>
+						<reference key="destination" ref="159677712"/>
+					</object>
+					<int key="connectionID">424</int>
+				</object>
+				<object class="IBConnectionRecord">
+					<object class="IBActionConnection" key="connection">
+						<string key="label">modifyFont:</string>
+						<reference key="source" ref="755631768"/>
+						<reference key="destination" ref="158063935"/>
+					</object>
+					<int key="connectionID">425</int>
+				</object>
+				<object class="IBConnectionRecord">
+					<object class="IBActionConnection" key="connection">
+						<string key="label">raiseBaseline:</string>
+						<reference key="source" ref="1014"/>
+						<reference key="destination" ref="941806246"/>
+					</object>
+					<int key="connectionID">426</int>
+				</object>
+				<object class="IBConnectionRecord">
+					<object class="IBActionConnection" key="connection">
+						<string key="label">lowerBaseline:</string>
+						<reference key="source" ref="1014"/>
+						<reference key="destination" ref="1045724900"/>
+					</object>
+					<int key="connectionID">427</int>
+				</object>
+				<object class="IBConnectionRecord">
+					<object class="IBActionConnection" key="connection">
+						<string key="label">copyFont:</string>
+						<reference key="source" ref="1014"/>
+						<reference key="destination" ref="596732606"/>
+					</object>
+					<int key="connectionID">428</int>
+				</object>
+				<object class="IBConnectionRecord">
+					<object class="IBActionConnection" key="connection">
+						<string key="label">subscript:</string>
+						<reference key="source" ref="1014"/>
+						<reference key="destination" ref="1037576581"/>
+					</object>
+					<int key="connectionID">429</int>
+				</object>
+				<object class="IBConnectionRecord">
+					<object class="IBActionConnection" key="connection">
+						<string key="label">superscript:</string>
+						<reference key="source" ref="1014"/>
+						<reference key="destination" ref="644725453"/>
+					</object>
+					<int key="connectionID">430</int>
+				</object>
+				<object class="IBConnectionRecord">
+					<object class="IBActionConnection" key="connection">
+						<string key="label">tightenKerning:</string>
+						<reference key="source" ref="1014"/>
+						<reference key="destination" ref="677519740"/>
+					</object>
+					<int key="connectionID">431</int>
+				</object>
+				<object class="IBConnectionRecord">
+					<object class="IBActionConnection" key="connection">
+						<string key="label">underline:</string>
+						<reference key="source" ref="1014"/>
+						<reference key="destination" ref="330926929"/>
+					</object>
+					<int key="connectionID">432</int>
+				</object>
+				<object class="IBConnectionRecord">
+					<object class="IBActionConnection" key="connection">
+						<string key="label">orderFrontColorPanel:</string>
+						<reference key="source" ref="1014"/>
+						<reference key="destination" ref="1012600125"/>
+					</object>
+					<int key="connectionID">433</int>
+				</object>
+				<object class="IBConnectionRecord">
+					<object class="IBActionConnection" key="connection">
+						<string key="label">useAllLigatures:</string>
+						<reference key="source" ref="1014"/>
+						<reference key="destination" ref="663508465"/>
+					</object>
+					<int key="connectionID">434</int>
+				</object>
+				<object class="IBConnectionRecord">
+					<object class="IBActionConnection" key="connection">
+						<string key="label">loosenKerning:</string>
+						<reference key="source" ref="1014"/>
+						<reference key="destination" ref="238351151"/>
+					</object>
+					<int key="connectionID">435</int>
+				</object>
+				<object class="IBConnectionRecord">
+					<object class="IBActionConnection" key="connection">
+						<string key="label">pasteFont:</string>
+						<reference key="source" ref="1014"/>
+						<reference key="destination" ref="393423671"/>
+					</object>
+					<int key="connectionID">436</int>
+				</object>
+				<object class="IBConnectionRecord">
+					<object class="IBActionConnection" key="connection">
+						<string key="label">unscript:</string>
+						<reference key="source" ref="1014"/>
+						<reference key="destination" ref="257962622"/>
+					</object>
+					<int key="connectionID">437</int>
+				</object>
+				<object class="IBConnectionRecord">
+					<object class="IBActionConnection" key="connection">
+						<string key="label">useStandardKerning:</string>
+						<reference key="source" ref="1014"/>
+						<reference key="destination" ref="252969304"/>
+					</object>
+					<int key="connectionID">438</int>
+				</object>
+				<object class="IBConnectionRecord">
+					<object class="IBActionConnection" key="connection">
+						<string key="label">useStandardLigatures:</string>
+						<reference key="source" ref="1014"/>
+						<reference key="destination" ref="706297211"/>
+					</object>
+					<int key="connectionID">439</int>
+				</object>
+				<object class="IBConnectionRecord">
+					<object class="IBActionConnection" key="connection">
+						<string key="label">turnOffLigatures:</string>
+						<reference key="source" ref="1014"/>
+						<reference key="destination" ref="568384683"/>
+					</object>
+					<int key="connectionID">440</int>
+				</object>
+				<object class="IBConnectionRecord">
+					<object class="IBActionConnection" key="connection">
+						<string key="label">turnOffKerning:</string>
+						<reference key="source" ref="1014"/>
+						<reference key="destination" ref="766922938"/>
+					</object>
+					<int key="connectionID">441</int>
+				</object>
+				<object class="IBConnectionRecord">
+					<object class="IBActionConnection" key="connection">
+						<string key="label">terminate:</string>
+						<reference key="source" ref="1050"/>
+						<reference key="destination" ref="632727374"/>
+					</object>
+					<int key="connectionID">449</int>
+				</object>
+				<object class="IBConnectionRecord">
+					<object class="IBActionConnection" key="connection">
+						<string key="label">toggleAutomaticSpellingCorrection:</string>
+						<reference key="source" ref="1014"/>
+						<reference key="destination" ref="795346622"/>
+					</object>
+					<int key="connectionID">456</int>
+				</object>
+				<object class="IBConnectionRecord">
+					<object class="IBActionConnection" key="connection">
+						<string key="label">orderFrontSubstitutionsPanel:</string>
+						<reference key="source" ref="1014"/>
+						<reference key="destination" ref="65139061"/>
+					</object>
+					<int key="connectionID">458</int>
+				</object>
+				<object class="IBConnectionRecord">
+					<object class="IBActionConnection" key="connection">
+						<string key="label">toggleAutomaticDashSubstitution:</string>
+						<reference key="source" ref="1014"/>
+						<reference key="destination" ref="672708820"/>
+					</object>
+					<int key="connectionID">461</int>
+				</object>
+				<object class="IBConnectionRecord">
+					<object class="IBActionConnection" key="connection">
+						<string key="label">toggleAutomaticTextReplacement:</string>
+						<reference key="source" ref="1014"/>
+						<reference key="destination" ref="537092702"/>
+					</object>
+					<int key="connectionID">463</int>
+				</object>
+				<object class="IBConnectionRecord">
+					<object class="IBActionConnection" key="connection">
+						<string key="label">uppercaseWord:</string>
+						<reference key="source" ref="1014"/>
+						<reference key="destination" ref="1060694897"/>
+					</object>
+					<int key="connectionID">464</int>
+				</object>
+				<object class="IBConnectionRecord">
+					<object class="IBActionConnection" key="connection">
+						<string key="label">capitalizeWord:</string>
+						<reference key="source" ref="1014"/>
+						<reference key="destination" ref="56570060"/>
+					</object>
+					<int key="connectionID">467</int>
+				</object>
+				<object class="IBConnectionRecord">
+					<object class="IBActionConnection" key="connection">
+						<string key="label">lowercaseWord:</string>
+						<reference key="source" ref="1014"/>
+						<reference key="destination" ref="879586729"/>
+					</object>
+					<int key="connectionID">468</int>
+				</object>
+				<object class="IBConnectionRecord">
+					<object class="IBActionConnection" key="connection">
+						<string key="label">pasteAsPlainText:</string>
+						<reference key="source" ref="1014"/>
+						<reference key="destination" ref="82994268"/>
+					</object>
+					<int key="connectionID">486</int>
+				</object>
+				<object class="IBConnectionRecord">
+					<object class="IBActionConnection" key="connection">
+						<string key="label">performFindPanelAction:</string>
+						<reference key="source" ref="1014"/>
+						<reference key="destination" ref="326711663"/>
+					</object>
+					<int key="connectionID">487</int>
+				</object>
+				<object class="IBConnectionRecord">
+					<object class="IBActionConnection" key="connection">
+						<string key="label">performFindPanelAction:</string>
+						<reference key="source" ref="1014"/>
+						<reference key="destination" ref="270902937"/>
+					</object>
+					<int key="connectionID">488</int>
+				</object>
+				<object class="IBConnectionRecord">
+					<object class="IBActionConnection" key="connection">
+						<string key="label">performFindPanelAction:</string>
+						<reference key="source" ref="1014"/>
+						<reference key="destination" ref="159080638"/>
+					</object>
+					<int key="connectionID">489</int>
+				</object>
+				<object class="IBConnectionRecord">
+					<object class="IBActionConnection" key="connection">
+						<string key="label">showHelp:</string>
+						<reference key="source" ref="1014"/>
+						<reference key="destination" ref="105068016"/>
+					</object>
+					<int key="connectionID">493</int>
+				</object>
+				<object class="IBConnectionRecord">
+					<object class="IBOutletConnection" key="connection">
+						<string key="label">delegate</string>
+						<reference key="source" ref="1021"/>
+						<reference key="destination" ref="976324537"/>
+					</object>
+					<int key="connectionID">495</int>
+				</object>
+				<object class="IBConnectionRecord">
+					<object class="IBActionConnection" key="connection">
+						<string key="label">alignCenter:</string>
+						<reference key="source" ref="1014"/>
+						<reference key="destination" ref="630155264"/>
+					</object>
+					<int key="connectionID">518</int>
+				</object>
+				<object class="IBConnectionRecord">
+					<object class="IBActionConnection" key="connection">
+						<string key="label">pasteRuler:</string>
+						<reference key="source" ref="1014"/>
+						<reference key="destination" ref="883618387"/>
+					</object>
+					<int key="connectionID">519</int>
+				</object>
+				<object class="IBConnectionRecord">
+					<object class="IBActionConnection" key="connection">
+						<string key="label">toggleRuler:</string>
+						<reference key="source" ref="1014"/>
+						<reference key="destination" ref="644046920"/>
+					</object>
+					<int key="connectionID">520</int>
+				</object>
+				<object class="IBConnectionRecord">
+					<object class="IBActionConnection" key="connection">
+						<string key="label">alignRight:</string>
+						<reference key="source" ref="1014"/>
+						<reference key="destination" ref="512868991"/>
+					</object>
+					<int key="connectionID">521</int>
+				</object>
+				<object class="IBConnectionRecord">
+					<object class="IBActionConnection" key="connection">
+						<string key="label">copyRuler:</string>
+						<reference key="source" ref="1014"/>
+						<reference key="destination" ref="231811626"/>
+					</object>
+					<int key="connectionID">522</int>
+				</object>
+				<object class="IBConnectionRecord">
+					<object class="IBActionConnection" key="connection">
+						<string key="label">alignJustified:</string>
+						<reference key="source" ref="1014"/>
+						<reference key="destination" ref="945678886"/>
+					</object>
+					<int key="connectionID">523</int>
+				</object>
+				<object class="IBConnectionRecord">
+					<object class="IBActionConnection" key="connection">
+						<string key="label">alignLeft:</string>
+						<reference key="source" ref="1014"/>
+						<reference key="destination" ref="875092757"/>
+					</object>
+					<int key="connectionID">524</int>
+				</object>
+				<object class="IBConnectionRecord">
+					<object class="IBActionConnection" key="connection">
+						<string key="label">makeBaseWritingDirectionNatural:</string>
+						<reference key="source" ref="1014"/>
+						<reference key="destination" ref="551969625"/>
+					</object>
+					<int key="connectionID">525</int>
+				</object>
+				<object class="IBConnectionRecord">
+					<object class="IBActionConnection" key="connection">
+						<string key="label">makeBaseWritingDirectionLeftToRight:</string>
+						<reference key="source" ref="1014"/>
+						<reference key="destination" ref="249532473"/>
+					</object>
+					<int key="connectionID">526</int>
+				</object>
+				<object class="IBConnectionRecord">
+					<object class="IBActionConnection" key="connection">
+						<string key="label">makeBaseWritingDirectionRightToLeft:</string>
+						<reference key="source" ref="1014"/>
+						<reference key="destination" ref="607364498"/>
+					</object>
+					<int key="connectionID">527</int>
+				</object>
+				<object class="IBConnectionRecord">
+					<object class="IBActionConnection" key="connection">
+						<string key="label">makeTextWritingDirectionNatural:</string>
+						<reference key="source" ref="1014"/>
+						<reference key="destination" ref="380031999"/>
+					</object>
+					<int key="connectionID">528</int>
+				</object>
+				<object class="IBConnectionRecord">
+					<object class="IBActionConnection" key="connection">
+						<string key="label">makeTextWritingDirectionLeftToRight:</string>
+						<reference key="source" ref="1014"/>
+						<reference key="destination" ref="825984362"/>
+					</object>
+					<int key="connectionID">529</int>
+				</object>
+				<object class="IBConnectionRecord">
+					<object class="IBActionConnection" key="connection">
+						<string key="label">makeTextWritingDirectionRightToLeft:</string>
+						<reference key="source" ref="1014"/>
+						<reference key="destination" ref="560145579"/>
+					</object>
+					<int key="connectionID">530</int>
+				</object>
+				<object class="IBConnectionRecord">
+					<object class="IBOutletConnection" key="connection">
+						<string key="label">window</string>
+						<reference key="source" ref="976324537"/>
+						<reference key="destination" ref="972006081"/>
+					</object>
+					<int key="connectionID">532</int>
+				</object>
+				<object class="IBConnectionRecord">
+					<object class="IBOutletConnection" key="connection">
+						<string key="label">_error</string>
+						<reference key="source" ref="852646754"/>
+						<reference key="destination" ref="136512752"/>
+					</object>
+					<int key="connectionID">559</int>
+				</object>
+				<object class="IBConnectionRecord">
+					<object class="IBOutletConnection" key="connection">
+						<string key="label">_source</string>
+						<reference key="source" ref="852646754"/>
+						<reference key="destination" ref="359108043"/>
+					</object>
+					<int key="connectionID">583</int>
+				</object>
+				<object class="IBConnectionRecord">
+					<object class="IBActionConnection" key="connection">
+						<string key="label">formatText:</string>
+						<reference key="source" ref="852646754"/>
+						<reference key="destination" ref="359108043"/>
+					</object>
+					<int key="connectionID">584</int>
+				</object>
+				<object class="IBConnectionRecord">
+					<object class="IBOutletConnection" key="connection">
+						<string key="label">_formatted</string>
+						<reference key="source" ref="852646754"/>
+						<reference key="destination" ref="718129166"/>
+					</object>
+					<int key="connectionID">590</int>
+				</object>
+			</object>
+			<object class="IBMutableOrderedSet" key="objectRecords">
+				<object class="NSArray" key="orderedObjects">
+					<bool key="EncodedWithXMLCoder">YES</bool>
+					<object class="IBObjectRecord">
+						<int key="objectID">0</int>
+						<reference key="object" ref="0"/>
+						<reference key="children" ref="1048"/>
+						<nil key="parent"/>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">-2</int>
+						<reference key="object" ref="1021"/>
+						<reference key="parent" ref="0"/>
+						<string key="objectName">File's Owner</string>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">-1</int>
+						<reference key="object" ref="1014"/>
+						<reference key="parent" ref="0"/>
+						<string key="objectName">First Responder</string>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">-3</int>
+						<reference key="object" ref="1050"/>
+						<reference key="parent" ref="0"/>
+						<string key="objectName">Application</string>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">29</int>
+						<reference key="object" ref="649796088"/>
+						<object class="NSMutableArray" key="children">
+							<bool key="EncodedWithXMLCoder">YES</bool>
+							<reference ref="713487014"/>
+							<reference ref="694149608"/>
+							<reference ref="952259628"/>
+							<reference ref="379814623"/>
+							<reference ref="586577488"/>
+							<reference ref="302598603"/>
+							<reference ref="448692316"/>
+						</object>
+						<reference key="parent" ref="0"/>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">19</int>
+						<reference key="object" ref="713487014"/>
+						<object class="NSMutableArray" key="children">
+							<bool key="EncodedWithXMLCoder">YES</bool>
+							<reference ref="835318025"/>
+						</object>
+						<reference key="parent" ref="649796088"/>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">56</int>
+						<reference key="object" ref="694149608"/>
+						<object class="NSMutableArray" key="children">
+							<bool key="EncodedWithXMLCoder">YES</bool>
+							<reference ref="110575045"/>
+						</object>
+						<reference key="parent" ref="649796088"/>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">217</int>
+						<reference key="object" ref="952259628"/>
+						<object class="NSMutableArray" key="children">
+							<bool key="EncodedWithXMLCoder">YES</bool>
+							<reference ref="789758025"/>
+						</object>
+						<reference key="parent" ref="649796088"/>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">83</int>
+						<reference key="object" ref="379814623"/>
+						<object class="NSMutableArray" key="children">
+							<bool key="EncodedWithXMLCoder">YES</bool>
+							<reference ref="720053764"/>
+						</object>
+						<reference key="parent" ref="649796088"/>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">81</int>
+						<reference key="object" ref="720053764"/>
+						<object class="NSMutableArray" key="children">
+							<bool key="EncodedWithXMLCoder">YES</bool>
+							<reference ref="1023925487"/>
+							<reference ref="117038363"/>
+							<reference ref="49223823"/>
+							<reference ref="722745758"/>
+							<reference ref="705341025"/>
+							<reference ref="1025936716"/>
+							<reference ref="294629803"/>
+							<reference ref="776162233"/>
+							<reference ref="425164168"/>
+							<reference ref="579971712"/>
+							<reference ref="1010469920"/>
+						</object>
+						<reference key="parent" ref="379814623"/>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">75</int>
+						<reference key="object" ref="1023925487"/>
+						<reference key="parent" ref="720053764"/>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">80</int>
+						<reference key="object" ref="117038363"/>
+						<reference key="parent" ref="720053764"/>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">78</int>
+						<reference key="object" ref="49223823"/>
+						<reference key="parent" ref="720053764"/>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">72</int>
+						<reference key="object" ref="722745758"/>
+						<reference key="parent" ref="720053764"/>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">82</int>
+						<reference key="object" ref="705341025"/>
+						<reference key="parent" ref="720053764"/>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">124</int>
+						<reference key="object" ref="1025936716"/>
+						<object class="NSMutableArray" key="children">
+							<bool key="EncodedWithXMLCoder">YES</bool>
+							<reference ref="1065607017"/>
+						</object>
+						<reference key="parent" ref="720053764"/>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">77</int>
+						<reference key="object" ref="294629803"/>
+						<reference key="parent" ref="720053764"/>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">73</int>
+						<reference key="object" ref="776162233"/>
+						<reference key="parent" ref="720053764"/>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">79</int>
+						<reference key="object" ref="425164168"/>
+						<reference key="parent" ref="720053764"/>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">112</int>
+						<reference key="object" ref="579971712"/>
+						<reference key="parent" ref="720053764"/>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">74</int>
+						<reference key="object" ref="1010469920"/>
+						<reference key="parent" ref="720053764"/>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">125</int>
+						<reference key="object" ref="1065607017"/>
+						<object class="NSMutableArray" key="children">
+							<bool key="EncodedWithXMLCoder">YES</bool>
+							<reference ref="759406840"/>
+						</object>
+						<reference key="parent" ref="1025936716"/>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">126</int>
+						<reference key="object" ref="759406840"/>
+						<reference key="parent" ref="1065607017"/>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">205</int>
+						<reference key="object" ref="789758025"/>
+						<object class="NSMutableArray" key="children">
+							<bool key="EncodedWithXMLCoder">YES</bool>
+							<reference ref="437104165"/>
+							<reference ref="583158037"/>
+							<reference ref="1058277027"/>
+							<reference ref="212016141"/>
+							<reference ref="296257095"/>
+							<reference ref="29853731"/>
+							<reference ref="860595796"/>
+							<reference ref="1040322652"/>
+							<reference ref="790794224"/>
+							<reference ref="892235320"/>
+							<reference ref="972420730"/>
+							<reference ref="676164635"/>
+							<reference ref="507821607"/>
+							<reference ref="288088188"/>
+							<reference ref="82994268"/>
+						</object>
+						<reference key="parent" ref="952259628"/>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">202</int>
+						<reference key="object" ref="437104165"/>
+						<reference key="parent" ref="789758025"/>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">198</int>
+						<reference key="object" ref="583158037"/>
+						<reference key="parent" ref="789758025"/>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">207</int>
+						<reference key="object" ref="1058277027"/>
+						<reference key="parent" ref="789758025"/>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">214</int>
+						<reference key="object" ref="212016141"/>
+						<reference key="parent" ref="789758025"/>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">199</int>
+						<reference key="object" ref="296257095"/>
+						<reference key="parent" ref="789758025"/>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">203</int>
+						<reference key="object" ref="29853731"/>
+						<reference key="parent" ref="789758025"/>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">197</int>
+						<reference key="object" ref="860595796"/>
+						<reference key="parent" ref="789758025"/>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">206</int>
+						<reference key="object" ref="1040322652"/>
+						<reference key="parent" ref="789758025"/>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">215</int>
+						<reference key="object" ref="790794224"/>
+						<reference key="parent" ref="789758025"/>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">218</int>
+						<reference key="object" ref="892235320"/>
+						<object class="NSMutableArray" key="children">
+							<bool key="EncodedWithXMLCoder">YES</bool>
+							<reference ref="963351320"/>
+						</object>
+						<reference key="parent" ref="789758025"/>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">216</int>
+						<reference key="object" ref="972420730"/>
+						<object class="NSMutableArray" key="children">
+							<bool key="EncodedWithXMLCoder">YES</bool>
+							<reference ref="769623530"/>
+						</object>
+						<reference key="parent" ref="789758025"/>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">200</int>
+						<reference key="object" ref="769623530"/>
+						<object class="NSMutableArray" key="children">
+							<bool key="EncodedWithXMLCoder">YES</bool>
+							<reference ref="948374510"/>
+							<reference ref="96193923"/>
+							<reference ref="679648819"/>
+							<reference ref="967646866"/>
+							<reference ref="859480356"/>
+							<reference ref="795346622"/>
+						</object>
+						<reference key="parent" ref="972420730"/>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">219</int>
+						<reference key="object" ref="948374510"/>
+						<reference key="parent" ref="769623530"/>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">201</int>
+						<reference key="object" ref="96193923"/>
+						<reference key="parent" ref="769623530"/>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">204</int>
+						<reference key="object" ref="679648819"/>
+						<reference key="parent" ref="769623530"/>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">220</int>
+						<reference key="object" ref="963351320"/>
+						<object class="NSMutableArray" key="children">
+							<bool key="EncodedWithXMLCoder">YES</bool>
+							<reference ref="270902937"/>
+							<reference ref="88285865"/>
+							<reference ref="159080638"/>
+							<reference ref="326711663"/>
+							<reference ref="447796847"/>
+						</object>
+						<reference key="parent" ref="892235320"/>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">213</int>
+						<reference key="object" ref="270902937"/>
+						<reference key="parent" ref="963351320"/>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">210</int>
+						<reference key="object" ref="88285865"/>
+						<reference key="parent" ref="963351320"/>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">221</int>
+						<reference key="object" ref="159080638"/>
+						<reference key="parent" ref="963351320"/>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">208</int>
+						<reference key="object" ref="326711663"/>
+						<reference key="parent" ref="963351320"/>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">209</int>
+						<reference key="object" ref="447796847"/>
+						<reference key="parent" ref="963351320"/>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">57</int>
+						<reference key="object" ref="110575045"/>
+						<object class="NSMutableArray" key="children">
+							<bool key="EncodedWithXMLCoder">YES</bool>
+							<reference ref="238522557"/>
+							<reference ref="755159360"/>
+							<reference ref="908899353"/>
+							<reference ref="632727374"/>
+							<reference ref="646227648"/>
+							<reference ref="609285721"/>
+							<reference ref="481834944"/>
+							<reference ref="304266470"/>
+							<reference ref="1046388886"/>
+							<reference ref="1056857174"/>
+							<reference ref="342932134"/>
+						</object>
+						<reference key="parent" ref="694149608"/>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">58</int>
+						<reference key="object" ref="238522557"/>
+						<reference key="parent" ref="110575045"/>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">134</int>
+						<reference key="object" ref="755159360"/>
+						<reference key="parent" ref="110575045"/>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">150</int>
+						<reference key="object" ref="908899353"/>
+						<reference key="parent" ref="110575045"/>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">136</int>
+						<reference key="object" ref="632727374"/>
+						<reference key="parent" ref="110575045"/>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">144</int>
+						<reference key="object" ref="646227648"/>
+						<reference key="parent" ref="110575045"/>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">129</int>
+						<reference key="object" ref="609285721"/>
+						<reference key="parent" ref="110575045"/>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">143</int>
+						<reference key="object" ref="481834944"/>
+						<reference key="parent" ref="110575045"/>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">236</int>
+						<reference key="object" ref="304266470"/>
+						<reference key="parent" ref="110575045"/>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">131</int>
+						<reference key="object" ref="1046388886"/>
+						<object class="NSMutableArray" key="children">
+							<bool key="EncodedWithXMLCoder">YES</bool>
+							<reference ref="752062318"/>
+						</object>
+						<reference key="parent" ref="110575045"/>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">149</int>
+						<reference key="object" ref="1056857174"/>
+						<reference key="parent" ref="110575045"/>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">145</int>
+						<reference key="object" ref="342932134"/>
+						<reference key="parent" ref="110575045"/>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">130</int>
+						<reference key="object" ref="752062318"/>
+						<reference key="parent" ref="1046388886"/>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">24</int>
+						<reference key="object" ref="835318025"/>
+						<object class="NSMutableArray" key="children">
+							<bool key="EncodedWithXMLCoder">YES</bool>
+							<reference ref="299356726"/>
+							<reference ref="625202149"/>
+							<reference ref="575023229"/>
+							<reference ref="1011231497"/>
+						</object>
+						<reference key="parent" ref="713487014"/>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">92</int>
+						<reference key="object" ref="299356726"/>
+						<reference key="parent" ref="835318025"/>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">5</int>
+						<reference key="object" ref="625202149"/>
+						<reference key="parent" ref="835318025"/>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">239</int>
+						<reference key="object" ref="575023229"/>
+						<reference key="parent" ref="835318025"/>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">23</int>
+						<reference key="object" ref="1011231497"/>
+						<reference key="parent" ref="835318025"/>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">295</int>
+						<reference key="object" ref="586577488"/>
+						<object class="NSMutableArray" key="children">
+							<bool key="EncodedWithXMLCoder">YES</bool>
+							<reference ref="466310130"/>
+						</object>
+						<reference key="parent" ref="649796088"/>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">296</int>
+						<reference key="object" ref="466310130"/>
+						<object class="NSMutableArray" key="children">
+							<bool key="EncodedWithXMLCoder">YES</bool>
+							<reference ref="102151532"/>
+							<reference ref="237841660"/>
+						</object>
+						<reference key="parent" ref="586577488"/>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">297</int>
+						<reference key="object" ref="102151532"/>
+						<reference key="parent" ref="466310130"/>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">298</int>
+						<reference key="object" ref="237841660"/>
+						<reference key="parent" ref="466310130"/>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">211</int>
+						<reference key="object" ref="676164635"/>
+						<object class="NSMutableArray" key="children">
+							<bool key="EncodedWithXMLCoder">YES</bool>
+							<reference ref="785027613"/>
+						</object>
+						<reference key="parent" ref="789758025"/>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">212</int>
+						<reference key="object" ref="785027613"/>
+						<object class="NSMutableArray" key="children">
+							<bool key="EncodedWithXMLCoder">YES</bool>
+							<reference ref="680220178"/>
+							<reference ref="731782645"/>
+						</object>
+						<reference key="parent" ref="676164635"/>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">195</int>
+						<reference key="object" ref="680220178"/>
+						<reference key="parent" ref="785027613"/>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">196</int>
+						<reference key="object" ref="731782645"/>
+						<reference key="parent" ref="785027613"/>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">346</int>
+						<reference key="object" ref="967646866"/>
+						<reference key="parent" ref="769623530"/>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">348</int>
+						<reference key="object" ref="507821607"/>
+						<object class="NSMutableArray" key="children">
+							<bool key="EncodedWithXMLCoder">YES</bool>
+							<reference ref="698887838"/>
+						</object>
+						<reference key="parent" ref="789758025"/>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">349</int>
+						<reference key="object" ref="698887838"/>
+						<object class="NSMutableArray" key="children">
+							<bool key="EncodedWithXMLCoder">YES</bool>
+							<reference ref="605118523"/>
+							<reference ref="197661976"/>
+							<reference ref="708854459"/>
+							<reference ref="65139061"/>
+							<reference ref="19036812"/>
+							<reference ref="672708820"/>
+							<reference ref="537092702"/>
+						</object>
+						<reference key="parent" ref="507821607"/>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">350</int>
+						<reference key="object" ref="605118523"/>
+						<reference key="parent" ref="698887838"/>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">351</int>
+						<reference key="object" ref="197661976"/>
+						<reference key="parent" ref="698887838"/>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">354</int>
+						<reference key="object" ref="708854459"/>
+						<reference key="parent" ref="698887838"/>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">375</int>
+						<reference key="object" ref="302598603"/>
+						<object class="NSMutableArray" key="children">
+							<bool key="EncodedWithXMLCoder">YES</bool>
+							<reference ref="941447902"/>
+						</object>
+						<reference key="parent" ref="649796088"/>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">376</int>
+						<reference key="object" ref="941447902"/>
+						<object class="NSMutableArray" key="children">
+							<bool key="EncodedWithXMLCoder">YES</bool>
+							<reference ref="792887677"/>
+							<reference ref="215659978"/>
+						</object>
+						<reference key="parent" ref="302598603"/>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">377</int>
+						<reference key="object" ref="792887677"/>
+						<object class="NSMutableArray" key="children">
+							<bool key="EncodedWithXMLCoder">YES</bool>
+							<reference ref="786677654"/>
+						</object>
+						<reference key="parent" ref="941447902"/>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">388</int>
+						<reference key="object" ref="786677654"/>
+						<object class="NSMutableArray" key="children">
+							<bool key="EncodedWithXMLCoder">YES</bool>
+							<reference ref="159677712"/>
+							<reference ref="305399458"/>
+							<reference ref="814362025"/>
+							<reference ref="330926929"/>
+							<reference ref="533507878"/>
+							<reference ref="158063935"/>
+							<reference ref="885547335"/>
+							<reference ref="901062459"/>
+							<reference ref="767671776"/>
+							<reference ref="691570813"/>
+							<reference ref="769124883"/>
+							<reference ref="739652853"/>
+							<reference ref="1012600125"/>
+							<reference ref="214559597"/>
+							<reference ref="596732606"/>
+							<reference ref="393423671"/>
+						</object>
+						<reference key="parent" ref="792887677"/>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">389</int>
+						<reference key="object" ref="159677712"/>
+						<reference key="parent" ref="786677654"/>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">390</int>
+						<reference key="object" ref="305399458"/>
+						<reference key="parent" ref="786677654"/>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">391</int>
+						<reference key="object" ref="814362025"/>
+						<reference key="parent" ref="786677654"/>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">392</int>
+						<reference key="object" ref="330926929"/>
+						<reference key="parent" ref="786677654"/>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">393</int>
+						<reference key="object" ref="533507878"/>
+						<reference key="parent" ref="786677654"/>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">394</int>
+						<reference key="object" ref="158063935"/>
+						<reference key="parent" ref="786677654"/>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">395</int>
+						<reference key="object" ref="885547335"/>
+						<reference key="parent" ref="786677654"/>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">396</int>
+						<reference key="object" ref="901062459"/>
+						<reference key="parent" ref="786677654"/>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">397</int>
+						<reference key="object" ref="767671776"/>
+						<object class="NSMutableArray" key="children">
+							<bool key="EncodedWithXMLCoder">YES</bool>
+							<reference ref="175441468"/>
+						</object>
+						<reference key="parent" ref="786677654"/>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">398</int>
+						<reference key="object" ref="691570813"/>
+						<object class="NSMutableArray" key="children">
+							<bool key="EncodedWithXMLCoder">YES</bool>
+							<reference ref="1058217995"/>
+						</object>
+						<reference key="parent" ref="786677654"/>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">399</int>
+						<reference key="object" ref="769124883"/>
+						<object class="NSMutableArray" key="children">
+							<bool key="EncodedWithXMLCoder">YES</bool>
+							<reference ref="18263474"/>
+						</object>
+						<reference key="parent" ref="786677654"/>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">400</int>
+						<reference key="object" ref="739652853"/>
+						<reference key="parent" ref="786677654"/>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">401</int>
+						<reference key="object" ref="1012600125"/>
+						<reference key="parent" ref="786677654"/>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">402</int>
+						<reference key="object" ref="214559597"/>
+						<reference key="parent" ref="786677654"/>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">403</int>
+						<reference key="object" ref="596732606"/>
+						<reference key="parent" ref="786677654"/>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">404</int>
+						<reference key="object" ref="393423671"/>
+						<reference key="parent" ref="786677654"/>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">405</int>
+						<reference key="object" ref="18263474"/>
+						<object class="NSMutableArray" key="children">
+							<bool key="EncodedWithXMLCoder">YES</bool>
+							<reference ref="257962622"/>
+							<reference ref="644725453"/>
+							<reference ref="1037576581"/>
+							<reference ref="941806246"/>
+							<reference ref="1045724900"/>
+						</object>
+						<reference key="parent" ref="769124883"/>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">406</int>
+						<reference key="object" ref="257962622"/>
+						<reference key="parent" ref="18263474"/>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">407</int>
+						<reference key="object" ref="644725453"/>
+						<reference key="parent" ref="18263474"/>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">408</int>
+						<reference key="object" ref="1037576581"/>
+						<reference key="parent" ref="18263474"/>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">409</int>
+						<reference key="object" ref="941806246"/>
+						<reference key="parent" ref="18263474"/>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">410</int>
+						<reference key="object" ref="1045724900"/>
+						<reference key="parent" ref="18263474"/>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">411</int>
+						<reference key="object" ref="1058217995"/>
+						<object class="NSMutableArray" key="children">
+							<bool key="EncodedWithXMLCoder">YES</bool>
+							<reference ref="706297211"/>
+							<reference ref="568384683"/>
+							<reference ref="663508465"/>
+						</object>
+						<reference key="parent" ref="691570813"/>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">412</int>
+						<reference key="object" ref="706297211"/>
+						<reference key="parent" ref="1058217995"/>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">413</int>
+						<reference key="object" ref="568384683"/>
+						<reference key="parent" ref="1058217995"/>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">414</int>
+						<reference key="object" ref="663508465"/>
+						<reference key="parent" ref="1058217995"/>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">415</int>
+						<reference key="object" ref="175441468"/>
+						<object class="NSMutableArray" key="children">
+							<bool key="EncodedWithXMLCoder">YES</bool>
+							<reference ref="252969304"/>
+							<reference ref="766922938"/>
+							<reference ref="677519740"/>
+							<reference ref="238351151"/>
+						</object>
+						<reference key="parent" ref="767671776"/>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">416</int>
+						<reference key="object" ref="252969304"/>
+						<reference key="parent" ref="175441468"/>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">417</int>
+						<reference key="object" ref="766922938"/>
+						<reference key="parent" ref="175441468"/>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">418</int>
+						<reference key="object" ref="677519740"/>
+						<reference key="parent" ref="175441468"/>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">419</int>
+						<reference key="object" ref="238351151"/>
+						<reference key="parent" ref="175441468"/>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">420</int>
+						<reference key="object" ref="755631768"/>
+						<reference key="parent" ref="0"/>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">450</int>
+						<reference key="object" ref="288088188"/>
+						<object class="NSMutableArray" key="children">
+							<bool key="EncodedWithXMLCoder">YES</bool>
+							<reference ref="579392910"/>
+						</object>
+						<reference key="parent" ref="789758025"/>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">451</int>
+						<reference key="object" ref="579392910"/>
+						<object class="NSMutableArray" key="children">
+							<bool key="EncodedWithXMLCoder">YES</bool>
+							<reference ref="1060694897"/>
+							<reference ref="879586729"/>
+							<reference ref="56570060"/>
+						</object>
+						<reference key="parent" ref="288088188"/>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">452</int>
+						<reference key="object" ref="1060694897"/>
+						<reference key="parent" ref="579392910"/>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">453</int>
+						<reference key="object" ref="859480356"/>
+						<reference key="parent" ref="769623530"/>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">454</int>
+						<reference key="object" ref="795346622"/>
+						<reference key="parent" ref="769623530"/>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">457</int>
+						<reference key="object" ref="65139061"/>
+						<reference key="parent" ref="698887838"/>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">459</int>
+						<reference key="object" ref="19036812"/>
+						<reference key="parent" ref="698887838"/>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">460</int>
+						<reference key="object" ref="672708820"/>
+						<reference key="parent" ref="698887838"/>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">462</int>
+						<reference key="object" ref="537092702"/>
+						<reference key="parent" ref="698887838"/>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">465</int>
+						<reference key="object" ref="879586729"/>
+						<reference key="parent" ref="579392910"/>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">466</int>
+						<reference key="object" ref="56570060"/>
+						<reference key="parent" ref="579392910"/>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">485</int>
+						<reference key="object" ref="82994268"/>
+						<reference key="parent" ref="789758025"/>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">490</int>
+						<reference key="object" ref="448692316"/>
+						<object class="NSMutableArray" key="children">
+							<bool key="EncodedWithXMLCoder">YES</bool>
+							<reference ref="992780483"/>
+						</object>
+						<reference key="parent" ref="649796088"/>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">491</int>
+						<reference key="object" ref="992780483"/>
+						<object class="NSMutableArray" key="children">
+							<bool key="EncodedWithXMLCoder">YES</bool>
+							<reference ref="105068016"/>
+						</object>
+						<reference key="parent" ref="448692316"/>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">492</int>
+						<reference key="object" ref="105068016"/>
+						<reference key="parent" ref="992780483"/>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">494</int>
+						<reference key="object" ref="976324537"/>
+						<reference key="parent" ref="0"/>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">496</int>
+						<reference key="object" ref="215659978"/>
+						<object class="NSMutableArray" key="children">
+							<bool key="EncodedWithXMLCoder">YES</bool>
+							<reference ref="446991534"/>
+						</object>
+						<reference key="parent" ref="941447902"/>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">497</int>
+						<reference key="object" ref="446991534"/>
+						<object class="NSMutableArray" key="children">
+							<bool key="EncodedWithXMLCoder">YES</bool>
+							<reference ref="875092757"/>
+							<reference ref="630155264"/>
+							<reference ref="945678886"/>
+							<reference ref="512868991"/>
+							<reference ref="163117631"/>
+							<reference ref="31516759"/>
+							<reference ref="908105787"/>
+							<reference ref="644046920"/>
+							<reference ref="231811626"/>
+							<reference ref="883618387"/>
+						</object>
+						<reference key="parent" ref="215659978"/>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">498</int>
+						<reference key="object" ref="875092757"/>
+						<reference key="parent" ref="446991534"/>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">499</int>
+						<reference key="object" ref="630155264"/>
+						<reference key="parent" ref="446991534"/>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">500</int>
+						<reference key="object" ref="945678886"/>
+						<reference key="parent" ref="446991534"/>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">501</int>
+						<reference key="object" ref="512868991"/>
+						<reference key="parent" ref="446991534"/>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">502</int>
+						<reference key="object" ref="163117631"/>
+						<reference key="parent" ref="446991534"/>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">503</int>
+						<reference key="object" ref="31516759"/>
+						<object class="NSMutableArray" key="children">
+							<bool key="EncodedWithXMLCoder">YES</bool>
+							<reference ref="956096989"/>
+						</object>
+						<reference key="parent" ref="446991534"/>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">504</int>
+						<reference key="object" ref="908105787"/>
+						<reference key="parent" ref="446991534"/>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">505</int>
+						<reference key="object" ref="644046920"/>
+						<reference key="parent" ref="446991534"/>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">506</int>
+						<reference key="object" ref="231811626"/>
+						<reference key="parent" ref="446991534"/>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">507</int>
+						<reference key="object" ref="883618387"/>
+						<reference key="parent" ref="446991534"/>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">508</int>
+						<reference key="object" ref="956096989"/>
+						<object class="NSMutableArray" key="children">
+							<bool key="EncodedWithXMLCoder">YES</bool>
+							<reference ref="257099033"/>
+							<reference ref="551969625"/>
+							<reference ref="249532473"/>
+							<reference ref="607364498"/>
+							<reference ref="508151438"/>
+							<reference ref="981751889"/>
+							<reference ref="380031999"/>
+							<reference ref="825984362"/>
+							<reference ref="560145579"/>
+						</object>
+						<reference key="parent" ref="31516759"/>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">509</int>
+						<reference key="object" ref="257099033"/>
+						<reference key="parent" ref="956096989"/>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">510</int>
+						<reference key="object" ref="551969625"/>
+						<reference key="parent" ref="956096989"/>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">511</int>
+						<reference key="object" ref="249532473"/>
+						<reference key="parent" ref="956096989"/>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">512</int>
+						<reference key="object" ref="607364498"/>
+						<reference key="parent" ref="956096989"/>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">513</int>
+						<reference key="object" ref="508151438"/>
+						<reference key="parent" ref="956096989"/>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">514</int>
+						<reference key="object" ref="981751889"/>
+						<reference key="parent" ref="956096989"/>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">515</int>
+						<reference key="object" ref="380031999"/>
+						<reference key="parent" ref="956096989"/>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">516</int>
+						<reference key="object" ref="825984362"/>
+						<reference key="parent" ref="956096989"/>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">517</int>
+						<reference key="object" ref="560145579"/>
+						<reference key="parent" ref="956096989"/>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">547</int>
+						<reference key="object" ref="136512752"/>
+						<object class="NSMutableArray" key="children">
+							<bool key="EncodedWithXMLCoder">YES</bool>
+							<reference ref="195541490"/>
+						</object>
+						<reference key="parent" ref="0"/>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">548</int>
+						<reference key="object" ref="195541490"/>
+						<reference key="parent" ref="136512752"/>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">558</int>
+						<reference key="object" ref="852646754"/>
+						<reference key="parent" ref="0"/>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">371</int>
+						<reference key="object" ref="972006081"/>
+						<object class="NSMutableArray" key="children">
+							<bool key="EncodedWithXMLCoder">YES</bool>
+							<reference ref="439893737"/>
+						</object>
+						<reference key="parent" ref="0"/>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">372</int>
+						<reference key="object" ref="439893737"/>
+						<object class="NSMutableArray" key="children">
+							<bool key="EncodedWithXMLCoder">YES</bool>
+							<reference ref="32394578"/>
+						</object>
+						<reference key="parent" ref="972006081"/>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">563</int>
+						<reference key="object" ref="32394578"/>
+						<object class="NSMutableArray" key="children">
+							<bool key="EncodedWithXMLCoder">YES</bool>
+							<reference ref="820488047"/>
+							<reference ref="701764425"/>
+						</object>
+						<reference key="parent" ref="439893737"/>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">565</int>
+						<reference key="object" ref="701764425"/>
+						<object class="NSMutableArray" key="children">
+							<bool key="EncodedWithXMLCoder">YES</bool>
+							<reference ref="718129166"/>
+						</object>
+						<reference key="parent" ref="32394578"/>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">588</int>
+						<reference key="object" ref="718129166"/>
+						<object class="NSMutableArray" key="children">
+							<bool key="EncodedWithXMLCoder">YES</bool>
+							<reference ref="913764213"/>
+						</object>
+						<reference key="parent" ref="701764425"/>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">589</int>
+						<reference key="object" ref="913764213"/>
+						<reference key="parent" ref="718129166"/>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">564</int>
+						<reference key="object" ref="820488047"/>
+						<object class="NSMutableArray" key="children">
+							<bool key="EncodedWithXMLCoder">YES</bool>
+							<reference ref="359108043"/>
+						</object>
+						<reference key="parent" ref="32394578"/>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">577</int>
+						<reference key="object" ref="359108043"/>
+						<object class="NSMutableArray" key="children">
+							<bool key="EncodedWithXMLCoder">YES</bool>
+							<reference ref="773694245"/>
+						</object>
+						<reference key="parent" ref="820488047"/>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">578</int>
+						<reference key="object" ref="773694245"/>
+						<reference key="parent" ref="359108043"/>
+					</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>-1.IBPluginDependency</string>
+					<string>-2.IBPluginDependency</string>
+					<string>-3.IBPluginDependency</string>
+					<string>112.IBPluginDependency</string>
+					<string>112.ImportedFromIB2</string>
+					<string>124.IBPluginDependency</string>
+					<string>124.ImportedFromIB2</string>
+					<string>125.IBPluginDependency</string>
+					<string>125.ImportedFromIB2</string>
+					<string>125.editorWindowContentRectSynchronizationRect</string>
+					<string>126.IBPluginDependency</string>
+					<string>126.ImportedFromIB2</string>
+					<string>129.IBPluginDependency</string>
+					<string>129.ImportedFromIB2</string>
+					<string>130.IBPluginDependency</string>
+					<string>130.ImportedFromIB2</string>
+					<string>130.editorWindowContentRectSynchronizationRect</string>
+					<string>131.IBPluginDependency</string>
+					<string>131.ImportedFromIB2</string>
+					<string>134.IBPluginDependency</string>
+					<string>134.ImportedFromIB2</string>
+					<string>136.IBPluginDependency</string>
+					<string>136.ImportedFromIB2</string>
+					<string>143.IBPluginDependency</string>
+					<string>143.ImportedFromIB2</string>
+					<string>144.IBPluginDependency</string>
+					<string>144.ImportedFromIB2</string>
+					<string>145.IBPluginDependency</string>
+					<string>145.ImportedFromIB2</string>
+					<string>149.IBPluginDependency</string>
+					<string>149.ImportedFromIB2</string>
+					<string>150.IBPluginDependency</string>
+					<string>150.ImportedFromIB2</string>
+					<string>19.IBPluginDependency</string>
+					<string>19.ImportedFromIB2</string>
+					<string>195.IBPluginDependency</string>
+					<string>195.ImportedFromIB2</string>
+					<string>196.IBPluginDependency</string>
+					<string>196.ImportedFromIB2</string>
+					<string>197.IBPluginDependency</string>
+					<string>197.ImportedFromIB2</string>
+					<string>198.IBPluginDependency</string>
+					<string>198.ImportedFromIB2</string>
+					<string>199.IBPluginDependency</string>
+					<string>199.ImportedFromIB2</string>
+					<string>200.IBEditorWindowLastContentRect</string>
+					<string>200.IBPluginDependency</string>
+					<string>200.ImportedFromIB2</string>
+					<string>200.editorWindowContentRectSynchronizationRect</string>
+					<string>201.IBPluginDependency</string>
+					<string>201.ImportedFromIB2</string>
+					<string>202.IBPluginDependency</string>
+					<string>202.ImportedFromIB2</string>
+					<string>203.IBPluginDependency</string>
+					<string>203.ImportedFromIB2</string>
+					<string>204.IBPluginDependency</string>
+					<string>204.ImportedFromIB2</string>
+					<string>205.IBEditorWindowLastContentRect</string>
+					<string>205.IBPluginDependency</string>
+					<string>205.ImportedFromIB2</string>
+					<string>205.editorWindowContentRectSynchronizationRect</string>
+					<string>206.IBPluginDependency</string>
+					<string>206.ImportedFromIB2</string>
+					<string>207.IBPluginDependency</string>
+					<string>207.ImportedFromIB2</string>
+					<string>208.IBPluginDependency</string>
+					<string>208.ImportedFromIB2</string>
+					<string>209.IBPluginDependency</string>
+					<string>209.ImportedFromIB2</string>
+					<string>210.IBPluginDependency</string>
+					<string>210.ImportedFromIB2</string>
+					<string>211.IBPluginDependency</string>
+					<string>211.ImportedFromIB2</string>
+					<string>212.IBPluginDependency</string>
+					<string>212.ImportedFromIB2</string>
+					<string>212.editorWindowContentRectSynchronizationRect</string>
+					<string>213.IBPluginDependency</string>
+					<string>213.ImportedFromIB2</string>
+					<string>214.IBPluginDependency</string>
+					<string>214.ImportedFromIB2</string>
+					<string>215.IBPluginDependency</string>
+					<string>215.ImportedFromIB2</string>
+					<string>216.IBPluginDependency</string>
+					<string>216.ImportedFromIB2</string>
+					<string>217.IBPluginDependency</string>
+					<string>217.ImportedFromIB2</string>
+					<string>218.IBPluginDependency</string>
+					<string>218.ImportedFromIB2</string>
+					<string>219.IBPluginDependency</string>
+					<string>219.ImportedFromIB2</string>
+					<string>220.IBEditorWindowLastContentRect</string>
+					<string>220.IBPluginDependency</string>
+					<string>220.ImportedFromIB2</string>
+					<string>220.editorWindowContentRectSynchronizationRect</string>
+					<string>221.IBPluginDependency</string>
+					<string>221.ImportedFromIB2</string>
+					<string>23.IBPluginDependency</string>
+					<string>23.ImportedFromIB2</string>
+					<string>236.IBPluginDependency</string>
+					<string>236.ImportedFromIB2</string>
+					<string>239.IBPluginDependency</string>
+					<string>239.ImportedFromIB2</string>
+					<string>24.IBEditorWindowLastContentRect</string>
+					<string>24.IBPluginDependency</string>
+					<string>24.ImportedFromIB2</string>
+					<string>24.editorWindowContentRectSynchronizationRect</string>
+					<string>29.IBEditorWindowLastContentRect</string>
+					<string>29.IBPluginDependency</string>
+					<string>29.ImportedFromIB2</string>
+					<string>29.WindowOrigin</string>
+					<string>29.editorWindowContentRectSynchronizationRect</string>
+					<string>295.IBPluginDependency</string>
+					<string>296.IBEditorWindowLastContentRect</string>
+					<string>296.IBPluginDependency</string>
+					<string>296.editorWindowContentRectSynchronizationRect</string>
+					<string>297.IBPluginDependency</string>
+					<string>298.IBPluginDependency</string>
+					<string>346.IBPluginDependency</string>
+					<string>346.ImportedFromIB2</string>
+					<string>348.IBPluginDependency</string>
+					<string>348.ImportedFromIB2</string>
+					<string>349.IBEditorWindowLastContentRect</string>
+					<string>349.IBPluginDependency</string>
+					<string>349.ImportedFromIB2</string>
+					<string>349.editorWindowContentRectSynchronizationRect</string>
+					<string>350.IBPluginDependency</string>
+					<string>350.ImportedFromIB2</string>
+					<string>351.IBPluginDependency</string>
+					<string>351.ImportedFromIB2</string>
+					<string>354.IBPluginDependency</string>
+					<string>354.ImportedFromIB2</string>
+					<string>371.IBEditorWindowLastContentRect</string>
+					<string>371.IBNSWindowAutoPositionCentersHorizontal</string>
+					<string>371.IBNSWindowAutoPositionCentersVertical</string>
+					<string>371.IBPluginDependency</string>
+					<string>371.IBWindowTemplateEditedContentRect</string>
+					<string>371.NSWindowTemplate.visibleAtLaunch</string>
+					<string>371.editorWindowContentRectSynchronizationRect</string>
+					<string>372.IBPluginDependency</string>
+					<string>375.IBPluginDependency</string>
+					<string>376.IBEditorWindowLastContentRect</string>
+					<string>376.IBPluginDependency</string>
+					<string>377.IBPluginDependency</string>
+					<string>388.IBEditorWindowLastContentRect</string>
+					<string>388.IBPluginDependency</string>
+					<string>389.IBPluginDependency</string>
+					<string>390.IBPluginDependency</string>
+					<string>391.IBPluginDependency</string>
+					<string>392.IBPluginDependency</string>
+					<string>393.IBPluginDependency</string>
+					<string>394.IBPluginDependency</string>
+					<string>395.IBPluginDependency</string>
+					<string>396.IBPluginDependency</string>
+					<string>397.IBPluginDependency</string>
+					<string>398.IBPluginDependency</string>
+					<string>399.IBPluginDependency</string>
+					<string>400.IBPluginDependency</string>
+					<string>401.IBPluginDependency</string>
+					<string>402.IBPluginDependency</string>
+					<string>403.IBPluginDependency</string>
+					<string>404.IBPluginDependency</string>
+					<string>405.IBPluginDependency</string>
+					<string>406.IBPluginDependency</string>
+					<string>407.IBPluginDependency</string>
+					<string>408.IBPluginDependency</string>
+					<string>409.IBPluginDependency</string>
+					<string>410.IBPluginDependency</string>
+					<string>411.IBPluginDependency</string>
+					<string>412.IBPluginDependency</string>
+					<string>413.IBPluginDependency</string>
+					<string>414.IBPluginDependency</string>
+					<string>415.IBPluginDependency</string>
+					<string>416.IBPluginDependency</string>
+					<string>417.IBPluginDependency</string>
+					<string>418.IBPluginDependency</string>
+					<string>419.IBPluginDependency</string>
+					<string>420.IBPluginDependency</string>
+					<string>450.IBPluginDependency</string>
+					<string>451.IBEditorWindowLastContentRect</string>
+					<string>451.IBPluginDependency</string>
+					<string>452.IBPluginDependency</string>
+					<string>453.IBPluginDependency</string>
+					<string>454.IBPluginDependency</string>
+					<string>457.IBPluginDependency</string>
+					<string>459.IBPluginDependency</string>
+					<string>460.IBPluginDependency</string>
+					<string>462.IBPluginDependency</string>
+					<string>465.IBPluginDependency</string>
+					<string>466.IBPluginDependency</string>
+					<string>485.IBPluginDependency</string>
+					<string>490.IBPluginDependency</string>
+					<string>491.IBEditorWindowLastContentRect</string>
+					<string>491.IBPluginDependency</string>
+					<string>492.IBPluginDependency</string>
+					<string>494.IBPluginDependency</string>
+					<string>496.IBPluginDependency</string>
+					<string>497.IBEditorWindowLastContentRect</string>
+					<string>497.IBPluginDependency</string>
+					<string>498.IBPluginDependency</string>
+					<string>499.IBPluginDependency</string>
+					<string>5.IBPluginDependency</string>
+					<string>5.ImportedFromIB2</string>
+					<string>500.IBPluginDependency</string>
+					<string>501.IBPluginDependency</string>
+					<string>502.IBPluginDependency</string>
+					<string>503.IBPluginDependency</string>
+					<string>504.IBPluginDependency</string>
+					<string>505.IBPluginDependency</string>
+					<string>506.IBPluginDependency</string>
+					<string>507.IBPluginDependency</string>
+					<string>508.IBEditorWindowLastContentRect</string>
+					<string>508.IBPluginDependency</string>
+					<string>509.IBPluginDependency</string>
+					<string>510.IBPluginDependency</string>
+					<string>511.IBPluginDependency</string>
+					<string>512.IBPluginDependency</string>
+					<string>513.IBPluginDependency</string>
+					<string>514.IBPluginDependency</string>
+					<string>515.IBPluginDependency</string>
+					<string>516.IBPluginDependency</string>
+					<string>517.IBPluginDependency</string>
+					<string>547.IBPluginDependency</string>
+					<string>548.IBPluginDependency</string>
+					<string>558.IBPluginDependency</string>
+					<string>56.IBPluginDependency</string>
+					<string>56.ImportedFromIB2</string>
+					<string>563.IBPluginDependency</string>
+					<string>564.IBPluginDependency</string>
+					<string>565.IBPluginDependency</string>
+					<string>57.IBEditorWindowLastContentRect</string>
+					<string>57.IBPluginDependency</string>
+					<string>57.ImportedFromIB2</string>
+					<string>57.editorWindowContentRectSynchronizationRect</string>
+					<string>577.IBPluginDependency</string>
+					<string>578.IBPluginDependency</string>
+					<string>58.IBPluginDependency</string>
+					<string>58.ImportedFromIB2</string>
+					<string>588.IBPluginDependency</string>
+					<string>589.IBPluginDependency</string>
+					<string>72.IBPluginDependency</string>
+					<string>72.ImportedFromIB2</string>
+					<string>73.IBPluginDependency</string>
+					<string>73.ImportedFromIB2</string>
+					<string>74.IBPluginDependency</string>
+					<string>74.ImportedFromIB2</string>
+					<string>75.IBPluginDependency</string>
+					<string>75.ImportedFromIB2</string>
+					<string>77.IBPluginDependency</string>
+					<string>77.ImportedFromIB2</string>
+					<string>78.IBPluginDependency</string>
+					<string>78.ImportedFromIB2</string>
+					<string>79.IBPluginDependency</string>
+					<string>79.ImportedFromIB2</string>
+					<string>80.IBPluginDependency</string>
+					<string>80.ImportedFromIB2</string>
+					<string>81.IBEditorWindowLastContentRect</string>
+					<string>81.IBPluginDependency</string>
+					<string>81.ImportedFromIB2</string>
+					<string>81.editorWindowContentRectSynchronizationRect</string>
+					<string>82.IBPluginDependency</string>
+					<string>82.ImportedFromIB2</string>
+					<string>83.IBPluginDependency</string>
+					<string>83.ImportedFromIB2</string>
+					<string>92.IBPluginDependency</string>
+					<string>92.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>
+					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+					<integer value="1"/>
+					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+					<integer value="1"/>
+					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+					<integer value="1"/>
+					<string>{{522, 812}, {146, 23}}</string>
+					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+					<integer value="1"/>
+					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+					<integer value="1"/>
+					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+					<integer value="1"/>
+					<string>{{436, 809}, {64, 6}}</string>
+					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+					<integer value="1"/>
+					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+					<integer value="1"/>
+					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+					<integer value="1"/>
+					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+					<integer value="1"/>
+					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+					<integer value="1"/>
+					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+					<integer value="1"/>
+					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+					<integer value="1"/>
+					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+					<integer value="1"/>
+					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+					<integer value="1"/>
+					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+					<integer value="1"/>
+					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+					<integer value="1"/>
+					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+					<integer value="1"/>
+					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+					<integer value="1"/>
+					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+					<integer value="1"/>
+					<string>{{753, 187}, {275, 113}}</string>
+					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+					<integer value="1"/>
+					<string>{{608, 612}, {275, 83}}</string>
+					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+					<integer value="1"/>
+					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+					<integer value="1"/>
+					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+					<integer value="1"/>
+					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+					<integer value="1"/>
+					<string>{{547, 180}, {254, 283}}</string>
+					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+					<integer value="1"/>
+					<string>{{187, 434}, {243, 243}}</string>
+					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+					<integer value="1"/>
+					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+					<integer value="1"/>
+					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+					<integer value="1"/>
+					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+					<integer value="1"/>
+					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+					<integer value="1"/>
+					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+					<integer value="1"/>
+					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+					<integer value="1"/>
+					<string>{{608, 612}, {167, 43}}</string>
+					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+					<integer value="1"/>
+					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+					<integer value="1"/>
+					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+					<integer value="1"/>
+					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+					<integer value="1"/>
+					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+					<integer value="1"/>
+					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+					<integer value="1"/>
+					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+					<integer value="1"/>
+					<string>{{753, 217}, {238, 103}}</string>
+					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+					<integer value="1"/>
+					<string>{{608, 612}, {241, 103}}</string>
+					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+					<integer value="1"/>
+					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+					<integer value="1"/>
+					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+					<integer value="1"/>
+					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+					<integer value="1"/>
+					<string>{{654, 239}, {194, 73}}</string>
+					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+					<integer value="1"/>
+					<string>{{525, 802}, {197, 73}}</string>
+					<string>{{380, 836}, {512, 20}}</string>
+					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+					<integer value="1"/>
+					<string>{74, 862}</string>
+					<string>{{6, 978}, {478, 20}}</string>
+					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+					<string>{{604, 269}, {231, 43}}</string>
+					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+					<string>{{475, 832}, {234, 43}}</string>
+					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+					<integer value="1"/>
+					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+					<integer value="1"/>
+					<string>{{746, 287}, {220, 133}}</string>
+					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+					<integer value="1"/>
+					<string>{{608, 612}, {215, 63}}</string>
+					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+					<integer value="1"/>
+					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+					<integer value="1"/>
+					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+					<integer value="1"/>
+					<string>{{380, 496}, {480, 360}}</string>
+					<boolean value="NO"/>
+					<boolean value="NO"/>
+					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+					<string>{{380, 496}, {480, 360}}</string>
+					<integer value="1"/>
+					<string>{{33, 99}, {480, 360}}</string>
+					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+					<string>{{591, 420}, {83, 43}}</string>
+					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+					<string>{{523, 2}, {178, 283}}</string>
+					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+					<string>{{753, 197}, {170, 63}}</string>
+					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+					<string>{{725, 289}, {246, 23}}</string>
+					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+					<string>{{674, 260}, {204, 183}}</string>
+					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+					<integer value="1"/>
+					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+					<string>{{878, 180}, {164, 173}}</string>
+					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+					<integer value="1"/>
+					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+					<string>{{286, 129}, {275, 183}}</string>
+					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+					<integer value="1"/>
+					<string>{{23, 794}, {245, 183}}</string>
+					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+					<integer value="1"/>
+					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+					<integer value="1"/>
+					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+					<integer value="1"/>
+					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+					<integer value="1"/>
+					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+					<integer value="1"/>
+					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+					<integer value="1"/>
+					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+					<integer value="1"/>
+					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+					<integer value="1"/>
+					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+					<integer value="1"/>
+					<string>{{452, 109}, {196, 203}}</string>
+					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+					<integer value="1"/>
+					<string>{{145, 474}, {199, 203}}</string>
+					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+					<integer value="1"/>
+					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+					<integer value="1"/>
+					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+					<integer value="1"/>
+				</object>
+			</object>
+			<object class="NSMutableDictionary" key="unlocalizedProperties">
+				<bool key="EncodedWithXMLCoder">YES</bool>
+				<reference key="dict.sortedKeys" ref="0"/>
+				<reference key="dict.values" ref="0"/>
+			</object>
+			<nil key="activeLocalization"/>
+			<object class="NSMutableDictionary" key="localizations">
+				<bool key="EncodedWithXMLCoder">YES</bool>
+				<reference key="dict.sortedKeys" ref="0"/>
+				<reference key="dict.values" ref="0"/>
+			</object>
+			<nil key="sourceID"/>
+			<int key="maxID">590</int>
+		</object>
+		<object class="IBClassDescriber" key="IBDocument.Classes">
+			<object class="NSMutableArray" key="referencedPartialClassDescriptions">
+				<bool key="EncodedWithXMLCoder">YES</bool>
+				<object class="IBPartialClassDescription">
+					<string key="className">DisplayPrettyAppDelegate</string>
+					<string key="superclassName">NSObject</string>
+					<object class="NSMutableDictionary" key="outlets">
+						<string key="NS.key.0">window</string>
+						<string key="NS.object.0">NSWindow</string>
+					</object>
+					<object class="NSMutableDictionary" key="toOneOutletInfosByName">
+						<string key="NS.key.0">window</string>
+						<object class="IBToOneOutletInfo" key="NS.object.0">
+							<string key="name">window</string>
+							<string key="candidateClassName">NSWindow</string>
+						</object>
+					</object>
+					<object class="IBClassDescriptionSource" key="sourceIdentifier">
+						<string key="majorKey">IBProjectSource</string>
+						<string key="minorKey">./Classes/DisplayPrettyAppDelegate.h</string>
+					</object>
+				</object>
+				<object class="IBPartialClassDescription">
+					<string key="className">DisplayPrettyController</string>
+					<string key="superclassName">NSObject</string>
+					<object class="NSMutableDictionary" key="actions">
+						<string key="NS.key.0">formatText:</string>
+						<string key="NS.object.0">id</string>
+					</object>
+					<object class="NSMutableDictionary" key="actionInfosByName">
+						<string key="NS.key.0">formatText:</string>
+						<object class="IBActionInfo" key="NS.object.0">
+							<string key="name">formatText:</string>
+							<string key="candidateClassName">id</string>
+						</object>
+					</object>
+					<object class="NSMutableDictionary" key="outlets">
+						<bool key="EncodedWithXMLCoder">YES</bool>
+						<object class="NSArray" key="dict.sortedKeys">
+							<bool key="EncodedWithXMLCoder">YES</bool>
+							<string>_formatted</string>
+							<string>_source</string>
+						</object>
+						<object class="NSMutableArray" key="dict.values">
+							<bool key="EncodedWithXMLCoder">YES</bool>
+							<string>NSTextField</string>
+							<string>NSTextField</string>
+						</object>
+					</object>
+					<object class="NSMutableDictionary" key="toOneOutletInfosByName">
+						<bool key="EncodedWithXMLCoder">YES</bool>
+						<object class="NSArray" key="dict.sortedKeys">
+							<bool key="EncodedWithXMLCoder">YES</bool>
+							<string>_formatted</string>
+							<string>_source</string>
+						</object>
+						<object class="NSMutableArray" key="dict.values">
+							<bool key="EncodedWithXMLCoder">YES</bool>
+							<object class="IBToOneOutletInfo">
+								<string key="name">_formatted</string>
+								<string key="candidateClassName">NSTextField</string>
+							</object>
+							<object class="IBToOneOutletInfo">
+								<string key="name">_source</string>
+								<string key="candidateClassName">NSTextField</string>
+							</object>
+						</object>
+					</object>
+					<object class="IBClassDescriptionSource" key="sourceIdentifier">
+						<string key="majorKey">IBProjectSource</string>
+						<string key="minorKey">./Classes/DisplayPrettyController.h</string>
+					</object>
+				</object>
+				<object class="IBPartialClassDescription">
+					<string key="className">NSDocument</string>
+					<object class="NSMutableDictionary" key="actions">
+						<bool key="EncodedWithXMLCoder">YES</bool>
+						<object class="NSArray" key="dict.sortedKeys">
+							<bool key="EncodedWithXMLCoder">YES</bool>
+							<string>printDocument:</string>
+							<string>revertDocumentToSaved:</string>
+							<string>runPageLayout:</string>
+							<string>saveDocument:</string>
+							<string>saveDocumentAs:</string>
+							<string>saveDocumentTo:</string>
+						</object>
+						<object class="NSMutableArray" key="dict.values">
+							<bool key="EncodedWithXMLCoder">YES</bool>
+							<string>id</string>
+							<string>id</string>
+							<string>id</string>
+							<string>id</string>
+							<string>id</string>
+							<string>id</string>
+						</object>
+					</object>
+					<object class="NSMutableDictionary" key="actionInfosByName">
+						<bool key="EncodedWithXMLCoder">YES</bool>
+						<object class="NSArray" key="dict.sortedKeys">
+							<bool key="EncodedWithXMLCoder">YES</bool>
+							<string>printDocument:</string>
+							<string>revertDocumentToSaved:</string>
+							<string>runPageLayout:</string>
+							<string>saveDocument:</string>
+							<string>saveDocumentAs:</string>
+							<string>saveDocumentTo:</string>
+						</object>
+						<object class="NSMutableArray" key="dict.values">
+							<bool key="EncodedWithXMLCoder">YES</bool>
+							<object class="IBActionInfo">
+								<string key="name">printDocument:</string>
+								<string key="candidateClassName">id</string>
+							</object>
+							<object class="IBActionInfo">
+								<string key="name">revertDocumentToSaved:</string>
+								<string key="candidateClassName">id</string>
+							</object>
+							<object class="IBActionInfo">
+								<string key="name">runPageLayout:</string>
+								<string key="candidateClassName">id</string>
+							</object>
+							<object class="IBActionInfo">
+								<string key="name">saveDocument:</string>
+								<string key="candidateClassName">id</string>
+							</object>
+							<object class="IBActionInfo">
+								<string key="name">saveDocumentAs:</string>
+								<string key="candidateClassName">id</string>
+							</object>
+							<object class="IBActionInfo">
+								<string key="name">saveDocumentTo:</string>
+								<string key="candidateClassName">id</string>
+							</object>
+						</object>
+					</object>
+					<object class="IBClassDescriptionSource" key="sourceIdentifier">
+						<string key="majorKey">IBProjectSource</string>
+						<string key="minorKey">./Classes/NSDocument.h</string>
+					</object>
+				</object>
+			</object>
+		</object>
+		<int key="IBDocument.localizationMode">0</int>
+		<string key="IBDocument.TargetRuntimeIdentifier">IBCocoaFramework</string>
+		<object class="NSMutableDictionary" key="IBDocument.PluginDeclaredDependencyDefaults">
+			<string key="NS.key.0">com.apple.InterfaceBuilder.CocoaPlugin.macosx</string>
+			<integer value="1060" key="NS.object.0"/>
+		</object>
+		<object class="NSMutableDictionary" key="IBDocument.PluginDeclaredDevelopmentDependencies">
+			<string key="NS.key.0">com.apple.InterfaceBuilder.CocoaPlugin.InterfaceBuilder3</string>
+			<integer value="3000" key="NS.object.0"/>
+		</object>
+		<bool key="IBDocument.PluginDeclaredDependenciesTrackSystemTargetVersion">YES</bool>
+		<int key="IBDocument.defaultPropertyAccessControl">3</int>
+		<object class="NSMutableDictionary" key="IBDocument.LastKnownImageSizes">
+			<bool key="EncodedWithXMLCoder">YES</bool>
+			<object class="NSArray" key="dict.sortedKeys">
+				<bool key="EncodedWithXMLCoder">YES</bool>
+				<string>NSMenuCheckmark</string>
+				<string>NSMenuMixedState</string>
+			</object>
+			<object class="NSMutableArray" key="dict.values">
+				<bool key="EncodedWithXMLCoder">YES</bool>
+				<string>{9, 8}</string>
+				<string>{7, 2}</string>
+			</object>
+		</object>
+	</data>
+</archive>
diff --git a/json-framework-3.2.0/Examples/DisplayPretty/DisplayPretty/main.m b/json-framework-3.2.0/Examples/DisplayPretty/DisplayPretty/main.m
new file mode 100644
index 0000000..3fa681c
--- /dev/null
+++ b/json-framework-3.2.0/Examples/DisplayPretty/DisplayPretty/main.m
@@ -0,0 +1,14 @@
+//
+//  main.m
+//  DisplayPretty
+//
+//  Created by Stig Brautaset on 25/05/2011.
+//  Copyright 2011 Stig Brautaset. All rights reserved.
+//
+
+#import <Cocoa/Cocoa.h>
+
+int main(int argc, char *argv[])
+{
+    return NSApplicationMain(argc, (const char **)argv);
+}
diff --git a/json-framework-3.2.0/Examples/DisplayPretty/Readme.md b/json-framework-3.2.0/Examples/DisplayPretty/Readme.md
new file mode 100644
index 0000000..8e081af
--- /dev/null
+++ b/json-framework-3.2.0/Examples/DisplayPretty/Readme.md
@@ -0,0 +1,4 @@
+## Display Pretty
+
+This example contains two text boxes. Input JSON into the left one, and
+have it reformatted into the right one when you hit Enter.
diff --git a/json-framework-3.2.0/Examples/TweetStream/.gitignore b/json-framework-3.2.0/Examples/TweetStream/.gitignore
new file mode 100644
index 0000000..12cbb71
--- /dev/null
+++ b/json-framework-3.2.0/Examples/TweetStream/.gitignore
@@ -0,0 +1,2 @@
+*.xcodeproj/*
+!*.xcodeproj/project.pbxproj
diff --git a/json-framework-3.2.0/Examples/TweetStream/Readme.md b/json-framework-3.2.0/Examples/TweetStream/Readme.md
new file mode 100644
index 0000000..30ff894
--- /dev/null
+++ b/json-framework-3.2.0/Examples/TweetStream/Readme.md
@@ -0,0 +1,5 @@
+# Tweet Stream
+
+This is an example of how to use json-framework to interact with [Twitter's streaming API](http://dev.twitter.com/pages/streaming_api). It uses the streaming capabilities of the parser to display an "endless" stream of tweets, despite performing only a single HTTP request.
+
+Additionally, this shows how you can use external linking to link to a checkout of json-framework in the same workspace, rather than copying the sources into your project.
diff --git a/json-framework-3.2.0/Examples/TweetStream/TweetStream.xcodeproj/project.pbxproj b/json-framework-3.2.0/Examples/TweetStream/TweetStream.xcodeproj/project.pbxproj
new file mode 100644
index 0000000..816a501
--- /dev/null
+++ b/json-framework-3.2.0/Examples/TweetStream/TweetStream.xcodeproj/project.pbxproj
@@ -0,0 +1,413 @@
+// !$*UTF8*$!
+{
+	archiveVersion = 1;
+	classes = {
+	};
+	objectVersion = 46;
+	objects = {
+
+/* Begin PBXBuildFile section */
+		BC70BE51138C025500638110 /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BC70BE50138C025500638110 /* UIKit.framework */; };
+		BC70BE53138C025500638110 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BC70BE52138C025500638110 /* Foundation.framework */; };
+		BC70BE55138C025500638110 /* CoreGraphics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BC70BE54138C025500638110 /* CoreGraphics.framework */; };
+		BC70BE5B138C025500638110 /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = BC70BE59138C025500638110 /* InfoPlist.strings */; };
+		BC70BE5E138C025500638110 /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = BC70BE5D138C025500638110 /* main.m */; };
+		BC70BE61138C025500638110 /* TweetStreamAppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = BC70BE60138C025500638110 /* TweetStreamAppDelegate.m */; };
+		BC70BE64138C025600638110 /* MainWindow.xib in Resources */ = {isa = PBXBuildFile; fileRef = BC70BE62138C025500638110 /* MainWindow.xib */; };
+		BC70BE67138C025600638110 /* TweetStreamViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = BC70BE66138C025600638110 /* TweetStreamViewController.m */; };
+		BC70BE6A138C025600638110 /* TweetStreamViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = BC70BE68138C025600638110 /* TweetStreamViewController.xib */; };
+		BCA5BD7D13BE00CF00223625 /* libsbjson-ios.a in Frameworks */ = {isa = PBXBuildFile; fileRef = BCA5BD7813BE00A700223625 /* libsbjson-ios.a */; };
+/* End PBXBuildFile section */
+
+/* Begin PBXContainerItemProxy section */
+		BCA5BD7313BE00A700223625 /* PBXContainerItemProxy */ = {
+			isa = PBXContainerItemProxy;
+			containerPortal = BCA5BD6C13BE00A600223625 /* SBJson.xcodeproj */;
+			proxyType = 2;
+			remoteGlobalIDString = BC12323D1391D5CC00131607;
+			remoteInfo = SBJson;
+		};
+		BCA5BD7513BE00A700223625 /* PBXContainerItemProxy */ = {
+			isa = PBXContainerItemProxy;
+			containerPortal = BCA5BD6C13BE00A600223625 /* SBJson.xcodeproj */;
+			proxyType = 2;
+			remoteGlobalIDString = BC1232521391D5CC00131607;
+			remoteInfo = SBJsonTests;
+		};
+		BCA5BD7713BE00A700223625 /* PBXContainerItemProxy */ = {
+			isa = PBXContainerItemProxy;
+			containerPortal = BCA5BD6C13BE00A600223625 /* SBJson.xcodeproj */;
+			proxyType = 2;
+			remoteGlobalIDString = BCC2626913920FC7003D9994;
+			remoteInfo = "sbjson-ios";
+		};
+		BCA5BD7913BE00A700223625 /* PBXContainerItemProxy */ = {
+			isa = PBXContainerItemProxy;
+			containerPortal = BCA5BD6C13BE00A600223625 /* SBJson.xcodeproj */;
+			proxyType = 2;
+			remoteGlobalIDString = BCC2627313920FC7003D9994;
+			remoteInfo = "sbjson-iosTests";
+		};
+		BCA5BD7B13BE00C900223625 /* PBXContainerItemProxy */ = {
+			isa = PBXContainerItemProxy;
+			containerPortal = BCA5BD6C13BE00A600223625 /* SBJson.xcodeproj */;
+			proxyType = 1;
+			remoteGlobalIDString = BCC2626813920FC7003D9994;
+			remoteInfo = "sbjson-ios";
+		};
+/* End PBXContainerItemProxy section */
+
+/* Begin PBXFileReference section */
+		BC70BE4C138C025500638110 /* TweetStream.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = TweetStream.app; sourceTree = BUILT_PRODUCTS_DIR; };
+		BC70BE50138C025500638110 /* UIKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = UIKit.framework; path = System/Library/Frameworks/UIKit.framework; sourceTree = SDKROOT; };
+		BC70BE52138C025500638110 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; };
+		BC70BE54138C025500638110 /* CoreGraphics.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreGraphics.framework; path = System/Library/Frameworks/CoreGraphics.framework; sourceTree = SDKROOT; };
+		BC70BE58138C025500638110 /* TweetStream-Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = "TweetStream-Info.plist"; sourceTree = "<group>"; };
+		BC70BE5A138C025500638110 /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/InfoPlist.strings; sourceTree = "<group>"; };
+		BC70BE5C138C025500638110 /* TweetStream-Prefix.pch */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "TweetStream-Prefix.pch"; sourceTree = "<group>"; };
+		BC70BE5D138C025500638110 /* main.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = "<group>"; };
+		BC70BE5F138C025500638110 /* TweetStreamAppDelegate.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = TweetStreamAppDelegate.h; sourceTree = "<group>"; };
+		BC70BE60138C025500638110 /* TweetStreamAppDelegate.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = TweetStreamAppDelegate.m; sourceTree = "<group>"; };
+		BC70BE63138C025600638110 /* en */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = en; path = en.lproj/MainWindow.xib; sourceTree = "<group>"; };
+		BC70BE65138C025600638110 /* TweetStreamViewController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = TweetStreamViewController.h; sourceTree = "<group>"; };
+		BC70BE66138C025600638110 /* TweetStreamViewController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = TweetStreamViewController.m; sourceTree = "<group>"; };
+		BC70BE69138C025600638110 /* en */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = en; path = en.lproj/TweetStreamViewController.xib; sourceTree = "<group>"; };
+		BCA5BD6C13BE00A600223625 /* SBJson.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = SBJson.xcodeproj; path = ../../SBJson.xcodeproj; sourceTree = "<group>"; };
+/* End PBXFileReference section */
+
+/* Begin PBXFrameworksBuildPhase section */
+		BC70BE49138C025500638110 /* Frameworks */ = {
+			isa = PBXFrameworksBuildPhase;
+			buildActionMask = 2147483647;
+			files = (
+				BCA5BD7D13BE00CF00223625 /* libsbjson-ios.a in Frameworks */,
+				BC70BE51138C025500638110 /* UIKit.framework in Frameworks */,
+				BC70BE53138C025500638110 /* Foundation.framework in Frameworks */,
+				BC70BE55138C025500638110 /* CoreGraphics.framework in Frameworks */,
+			);
+			runOnlyForDeploymentPostprocessing = 0;
+		};
+/* End PBXFrameworksBuildPhase section */
+
+/* Begin PBXGroup section */
+		BC70BE41138C025500638110 = {
+			isa = PBXGroup;
+			children = (
+				BCA5BD6C13BE00A600223625 /* SBJson.xcodeproj */,
+				BC70BE56138C025500638110 /* TweetStream */,
+				BC70BE4F138C025500638110 /* Frameworks */,
+				BC70BE4D138C025500638110 /* Products */,
+			);
+			sourceTree = "<group>";
+		};
+		BC70BE4D138C025500638110 /* Products */ = {
+			isa = PBXGroup;
+			children = (
+				BC70BE4C138C025500638110 /* TweetStream.app */,
+			);
+			name = Products;
+			sourceTree = "<group>";
+		};
+		BC70BE4F138C025500638110 /* Frameworks */ = {
+			isa = PBXGroup;
+			children = (
+				BC70BE50138C025500638110 /* UIKit.framework */,
+				BC70BE52138C025500638110 /* Foundation.framework */,
+				BC70BE54138C025500638110 /* CoreGraphics.framework */,
+			);
+			name = Frameworks;
+			sourceTree = "<group>";
+		};
+		BC70BE56138C025500638110 /* TweetStream */ = {
+			isa = PBXGroup;
+			children = (
+				BC70BE5F138C025500638110 /* TweetStreamAppDelegate.h */,
+				BC70BE60138C025500638110 /* TweetStreamAppDelegate.m */,
+				BC70BE62138C025500638110 /* MainWindow.xib */,
+				BC70BE65138C025600638110 /* TweetStreamViewController.h */,
+				BC70BE66138C025600638110 /* TweetStreamViewController.m */,
+				BC70BE68138C025600638110 /* TweetStreamViewController.xib */,
+				BC70BE57138C025500638110 /* Supporting Files */,
+			);
+			path = TweetStream;
+			sourceTree = "<group>";
+		};
+		BC70BE57138C025500638110 /* Supporting Files */ = {
+			isa = PBXGroup;
+			children = (
+				BC70BE58138C025500638110 /* TweetStream-Info.plist */,
+				BC70BE59138C025500638110 /* InfoPlist.strings */,
+				BC70BE5C138C025500638110 /* TweetStream-Prefix.pch */,
+				BC70BE5D138C025500638110 /* main.m */,
+			);
+			name = "Supporting Files";
+			sourceTree = "<group>";
+		};
+		BCA5BD6D13BE00A600223625 /* Products */ = {
+			isa = PBXGroup;
+			children = (
+				BCA5BD7413BE00A700223625 /* SBJson.framework */,
+				BCA5BD7613BE00A700223625 /* SBJsonTests.octest */,
+				BCA5BD7813BE00A700223625 /* libsbjson-ios.a */,
+				BCA5BD7A13BE00A700223625 /* sbjson-iosTests.octest */,
+			);
+			name = Products;
+			sourceTree = "<group>";
+		};
+/* End PBXGroup section */
+
+/* Begin PBXNativeTarget section */
+		BC70BE4B138C025500638110 /* TweetStream */ = {
+			isa = PBXNativeTarget;
+			buildConfigurationList = BC70BE6D138C025600638110 /* Build configuration list for PBXNativeTarget "TweetStream" */;
+			buildPhases = (
+				BC70BE48138C025500638110 /* Sources */,
+				BC70BE49138C025500638110 /* Frameworks */,
+				BC70BE4A138C025500638110 /* Resources */,
+			);
+			buildRules = (
+			);
+			dependencies = (
+				BCA5BD7C13BE00C900223625 /* PBXTargetDependency */,
+			);
+			name = TweetStream;
+			productName = TweetStream;
+			productReference = BC70BE4C138C025500638110 /* TweetStream.app */;
+			productType = "com.apple.product-type.application";
+		};
+/* End PBXNativeTarget section */
+
+/* Begin PBXProject section */
+		BC70BE43138C025500638110 /* Project object */ = {
+			isa = PBXProject;
+			attributes = {
+				LastUpgradeCheck = 0420;
+				ORGANIZATIONNAME = "Stig Brautaset";
+			};
+			buildConfigurationList = BC70BE46138C025500638110 /* Build configuration list for PBXProject "TweetStream" */;
+			compatibilityVersion = "Xcode 3.2";
+			developmentRegion = English;
+			hasScannedForEncodings = 0;
+			knownRegions = (
+				en,
+			);
+			mainGroup = BC70BE41138C025500638110;
+			productRefGroup = BC70BE4D138C025500638110 /* Products */;
+			projectDirPath = "";
+			projectReferences = (
+				{
+					ProductGroup = BCA5BD6D13BE00A600223625 /* Products */;
+					ProjectRef = BCA5BD6C13BE00A600223625 /* SBJson.xcodeproj */;
+				},
+			);
+			projectRoot = "";
+			targets = (
+				BC70BE4B138C025500638110 /* TweetStream */,
+			);
+		};
+/* End PBXProject section */
+
+/* Begin PBXReferenceProxy section */
+		BCA5BD7413BE00A700223625 /* SBJson.framework */ = {
+			isa = PBXReferenceProxy;
+			fileType = wrapper.framework;
+			path = SBJson.framework;
+			remoteRef = BCA5BD7313BE00A700223625 /* PBXContainerItemProxy */;
+			sourceTree = BUILT_PRODUCTS_DIR;
+		};
+		BCA5BD7613BE00A700223625 /* SBJsonTests.octest */ = {
+			isa = PBXReferenceProxy;
+			fileType = wrapper.cfbundle;
+			path = SBJsonTests.octest;
+			remoteRef = BCA5BD7513BE00A700223625 /* PBXContainerItemProxy */;
+			sourceTree = BUILT_PRODUCTS_DIR;
+		};
+		BCA5BD7813BE00A700223625 /* libsbjson-ios.a */ = {
+			isa = PBXReferenceProxy;
+			fileType = archive.ar;
+			path = "libsbjson-ios.a";
+			remoteRef = BCA5BD7713BE00A700223625 /* PBXContainerItemProxy */;
+			sourceTree = BUILT_PRODUCTS_DIR;
+		};
+		BCA5BD7A13BE00A700223625 /* sbjson-iosTests.octest */ = {
+			isa = PBXReferenceProxy;
+			fileType = wrapper.cfbundle;
+			path = "sbjson-iosTests.octest";
+			remoteRef = BCA5BD7913BE00A700223625 /* PBXContainerItemProxy */;
+			sourceTree = BUILT_PRODUCTS_DIR;
+		};
+/* End PBXReferenceProxy section */
+
+/* Begin PBXResourcesBuildPhase section */
+		BC70BE4A138C025500638110 /* Resources */ = {
+			isa = PBXResourcesBuildPhase;
+			buildActionMask = 2147483647;
+			files = (
+				BC70BE5B138C025500638110 /* InfoPlist.strings in Resources */,
+				BC70BE64138C025600638110 /* MainWindow.xib in Resources */,
+				BC70BE6A138C025600638110 /* TweetStreamViewController.xib in Resources */,
+			);
+			runOnlyForDeploymentPostprocessing = 0;
+		};
+/* End PBXResourcesBuildPhase section */
+
+/* Begin PBXSourcesBuildPhase section */
+		BC70BE48138C025500638110 /* Sources */ = {
+			isa = PBXSourcesBuildPhase;
+			buildActionMask = 2147483647;
+			files = (
+				BC70BE5E138C025500638110 /* main.m in Sources */,
+				BC70BE61138C025500638110 /* TweetStreamAppDelegate.m in Sources */,
+				BC70BE67138C025600638110 /* TweetStreamViewController.m in Sources */,
+			);
+			runOnlyForDeploymentPostprocessing = 0;
+		};
+/* End PBXSourcesBuildPhase section */
+
+/* Begin PBXTargetDependency section */
+		BCA5BD7C13BE00C900223625 /* PBXTargetDependency */ = {
+			isa = PBXTargetDependency;
+			name = "sbjson-ios";
+			targetProxy = BCA5BD7B13BE00C900223625 /* PBXContainerItemProxy */;
+		};
+/* End PBXTargetDependency section */
+
+/* Begin PBXVariantGroup section */
+		BC70BE59138C025500638110 /* InfoPlist.strings */ = {
+			isa = PBXVariantGroup;
+			children = (
+				BC70BE5A138C025500638110 /* en */,
+			);
+			name = InfoPlist.strings;
+			sourceTree = "<group>";
+		};
+		BC70BE62138C025500638110 /* MainWindow.xib */ = {
+			isa = PBXVariantGroup;
+			children = (
+				BC70BE63138C025600638110 /* en */,
+			);
+			name = MainWindow.xib;
+			sourceTree = "<group>";
+		};
+		BC70BE68138C025600638110 /* TweetStreamViewController.xib */ = {
+			isa = PBXVariantGroup;
+			children = (
+				BC70BE69138C025600638110 /* en */,
+			);
+			name = TweetStreamViewController.xib;
+			sourceTree = "<group>";
+		};
+/* End PBXVariantGroup section */
+
+/* Begin XCBuildConfiguration section */
+		BC70BE6B138C025600638110 /* Debug */ = {
+			isa = XCBuildConfiguration;
+			buildSettings = {
+				ARCHS = "$(ARCHS_STANDARD_32_BIT)";
+				"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
+				GCC_C_LANGUAGE_STANDARD = gnu99;
+				GCC_OPTIMIZATION_LEVEL = 0;
+				GCC_PREPROCESSOR_DEFINITIONS = DEBUG;
+				GCC_SYMBOLS_PRIVATE_EXTERN = NO;
+				GCC_VERSION = com.apple.compilers.llvmgcc42;
+				GCC_WARN_ABOUT_MISSING_PROTOTYPES = YES;
+				GCC_WARN_ABOUT_RETURN_TYPE = YES;
+				GCC_WARN_UNUSED_VARIABLE = YES;
+				IPHONEOS_DEPLOYMENT_TARGET = 4.3;
+				SDKROOT = iphoneos;
+			};
+			name = Debug;
+		};
+		BC70BE6C138C025600638110 /* Release */ = {
+			isa = XCBuildConfiguration;
+			buildSettings = {
+				ARCHS = "$(ARCHS_STANDARD_32_BIT)";
+				"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
+				GCC_C_LANGUAGE_STANDARD = gnu99;
+				GCC_VERSION = com.apple.compilers.llvmgcc42;
+				GCC_WARN_ABOUT_MISSING_PROTOTYPES = YES;
+				GCC_WARN_ABOUT_RETURN_TYPE = YES;
+				GCC_WARN_UNUSED_VARIABLE = YES;
+				IPHONEOS_DEPLOYMENT_TARGET = 4.3;
+				OTHER_CFLAGS = "-DNS_BLOCK_ASSERTIONS=1";
+				SDKROOT = iphoneos;
+			};
+			name = Release;
+		};
+		BC70BE6E138C025600638110 /* Debug */ = {
+			isa = XCBuildConfiguration;
+			buildSettings = {
+				ALWAYS_SEARCH_USER_PATHS = NO;
+				CLANG_ENABLE_OBJC_ARC = YES;
+				COPY_PHASE_STRIP = NO;
+				FRAMEWORK_SEARCH_PATHS = (
+					"$(inherited)",
+					"\"$(SRCROOT)\"",
+					"\"$(SRCROOT)/../../../Library/Developer/Xcode/DerivedData/Examples-atkbdjffzwdsgfgrgywggtsrhcwl/Build/Products/Debug\"",
+				);
+				GCC_DYNAMIC_NO_PIC = NO;
+				GCC_PRECOMPILE_PREFIX_HEADER = YES;
+				GCC_PREFIX_HEADER = "TweetStream/TweetStream-Prefix.pch";
+				GCC_VERSION = com.apple.compilers.llvm.clang.1_0;
+				INFOPLIST_FILE = "TweetStream/TweetStream-Info.plist";
+				LIBRARY_SEARCH_PATHS = (
+					"$(inherited)",
+					"\"$(SRCROOT)\"",
+				);
+				OTHER_LDFLAGS = "";
+				PRODUCT_NAME = "$(TARGET_NAME)";
+				WRAPPER_EXTENSION = app;
+			};
+			name = Debug;
+		};
+		BC70BE6F138C025600638110 /* Release */ = {
+			isa = XCBuildConfiguration;
+			buildSettings = {
+				ALWAYS_SEARCH_USER_PATHS = NO;
+				CLANG_ENABLE_OBJC_ARC = YES;
+				COPY_PHASE_STRIP = YES;
+				FRAMEWORK_SEARCH_PATHS = (
+					"$(inherited)",
+					"\"$(SRCROOT)\"",
+					"\"$(SRCROOT)/../../../Library/Developer/Xcode/DerivedData/Examples-atkbdjffzwdsgfgrgywggtsrhcwl/Build/Products/Debug\"",
+				);
+				GCC_PRECOMPILE_PREFIX_HEADER = YES;
+				GCC_PREFIX_HEADER = "TweetStream/TweetStream-Prefix.pch";
+				GCC_VERSION = com.apple.compilers.llvm.clang.1_0;
+				INFOPLIST_FILE = "TweetStream/TweetStream-Info.plist";
+				LIBRARY_SEARCH_PATHS = (
+					"$(inherited)",
+					"\"$(SRCROOT)\"",
+				);
+				OTHER_LDFLAGS = "";
+				PRODUCT_NAME = "$(TARGET_NAME)";
+				VALIDATE_PRODUCT = YES;
+				WRAPPER_EXTENSION = app;
+			};
+			name = Release;
+		};
+/* End XCBuildConfiguration section */
+
+/* Begin XCConfigurationList section */
+		BC70BE46138C025500638110 /* Build configuration list for PBXProject "TweetStream" */ = {
+			isa = XCConfigurationList;
+			buildConfigurations = (
+				BC70BE6B138C025600638110 /* Debug */,
+				BC70BE6C138C025600638110 /* Release */,
+			);
+			defaultConfigurationIsVisible = 0;
+			defaultConfigurationName = Release;
+		};
+		BC70BE6D138C025600638110 /* Build configuration list for PBXNativeTarget "TweetStream" */ = {
+			isa = XCConfigurationList;
+			buildConfigurations = (
+				BC70BE6E138C025600638110 /* Debug */,
+				BC70BE6F138C025600638110 /* Release */,
+			);
+			defaultConfigurationIsVisible = 0;
+			defaultConfigurationName = Release;
+		};
+/* End XCConfigurationList section */
+	};
+	rootObject = BC70BE43138C025500638110 /* Project object */;
+}
diff --git a/json-framework-3.2.0/Examples/TweetStream/TweetStream/TweetStream-Info.plist b/json-framework-3.2.0/Examples/TweetStream/TweetStream/TweetStream-Info.plist
new file mode 100644
index 0000000..1a12571
--- /dev/null
+++ b/json-framework-3.2.0/Examples/TweetStream/TweetStream/TweetStream-Info.plist
@@ -0,0 +1,38 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+	<key>CFBundleDevelopmentRegion</key>
+	<string>en</string>
+	<key>CFBundleDisplayName</key>
+	<string>${PRODUCT_NAME}</string>
+	<key>CFBundleExecutable</key>
+	<string>${EXECUTABLE_NAME}</string>
+	<key>CFBundleIconFile</key>
+	<string></string>
+	<key>CFBundleIdentifier</key>
+	<string>org.brautaset.${PRODUCT_NAME:rfc1034identifier}</string>
+	<key>CFBundleInfoDictionaryVersion</key>
+	<string>6.0</string>
+	<key>CFBundleName</key>
+	<string>${PRODUCT_NAME}</string>
+	<key>CFBundlePackageType</key>
+	<string>APPL</string>
+	<key>CFBundleShortVersionString</key>
+	<string>1.0</string>
+	<key>CFBundleSignature</key>
+	<string>????</string>
+	<key>CFBundleVersion</key>
+	<string>1.0</string>
+	<key>LSRequiresIPhoneOS</key>
+	<true/>
+	<key>NSMainNibFile</key>
+	<string>MainWindow</string>
+	<key>UISupportedInterfaceOrientations</key>
+	<array>
+		<string>UIInterfaceOrientationPortrait</string>
+		<string>UIInterfaceOrientationLandscapeLeft</string>
+		<string>UIInterfaceOrientationLandscapeRight</string>
+	</array>
+</dict>
+</plist>
diff --git a/json-framework-3.2.0/Examples/TweetStream/TweetStream/TweetStream-Prefix.pch b/json-framework-3.2.0/Examples/TweetStream/TweetStream/TweetStream-Prefix.pch
new file mode 100644
index 0000000..55f74f8
--- /dev/null
+++ b/json-framework-3.2.0/Examples/TweetStream/TweetStream/TweetStream-Prefix.pch
@@ -0,0 +1,14 @@
+//
+// Prefix header for all source files of the 'TweetStream' target in the 'TweetStream' project
+//
+
+#import <Availability.h>
+
+#ifndef __IPHONE_3_0
+#warning "This project uses features only available in iPhone SDK 3.0 and later."
+#endif
+
+#ifdef __OBJC__
+    #import <UIKit/UIKit.h>
+    #import <Foundation/Foundation.h>
+#endif
diff --git a/json-framework-3.2.0/Examples/TweetStream/TweetStream/TweetStreamAppDelegate.h b/json-framework-3.2.0/Examples/TweetStream/TweetStream/TweetStreamAppDelegate.h
new file mode 100644
index 0000000..43732ab
--- /dev/null
+++ b/json-framework-3.2.0/Examples/TweetStream/TweetStream/TweetStreamAppDelegate.h
@@ -0,0 +1,21 @@
+//
+//  TweetStreamAppDelegate.h
+//  TweetStream
+//
+//  Created by Stig Brautaset on 24/05/2011.
+//  Copyright 2011 Stig Brautaset. All rights reserved.
+//
+
+#import <UIKit/UIKit.h>
+
+@class TweetStreamViewController;
+
+@interface TweetStreamAppDelegate : NSObject <UIApplicationDelegate> {
+
+}
+
+@property (nonatomic, retain) IBOutlet UIWindow *window;
+
+@property (nonatomic, retain) IBOutlet TweetStreamViewController *viewController;
+
+@end
diff --git a/json-framework-3.2.0/Examples/TweetStream/TweetStream/TweetStreamAppDelegate.m b/json-framework-3.2.0/Examples/TweetStream/TweetStream/TweetStreamAppDelegate.m
new file mode 100644
index 0000000..3e73430
--- /dev/null
+++ b/json-framework-3.2.0/Examples/TweetStream/TweetStream/TweetStreamAppDelegate.m
@@ -0,0 +1,69 @@
+//
+//  TweetStreamAppDelegate.m
+//  TweetStream
+//
+//  Created by Stig Brautaset on 24/05/2011.
+//  Copyright 2011 Stig Brautaset. All rights reserved.
+//
+
+#import "TweetStreamAppDelegate.h"
+
+#import "TweetStreamViewController.h"
+
+@implementation TweetStreamAppDelegate
+
+
+@synthesize window=_window;
+
+@synthesize viewController=_viewController;
+
+- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
+{
+    // Override point for customization after application launch.
+     
+    self.window.rootViewController = self.viewController;
+    [self.window makeKeyAndVisible];
+    return YES;
+}
+
+- (void)applicationWillResignActive:(UIApplication *)application
+{
+    /*
+     Sent when the application is about to move from active to inactive state. This can occur for certain types of temporary interruptions (such as an incoming phone call or SMS message) or when the user quits the application and it begins the transition to the background state.
+     Use this method to pause ongoing tasks, disable timers, and throttle down OpenGL ES frame rates. Games should use this method to pause the game.
+     */
+}
+
+- (void)applicationDidEnterBackground:(UIApplication *)application
+{
+    /*
+     Use this method to release shared resources, save user data, invalidate timers, and store enough application state information to restore your application to its current state in case it is terminated later. 
+     If your application supports background execution, this method is called instead of applicationWillTerminate: when the user quits.
+     */
+}
+
+- (void)applicationWillEnterForeground:(UIApplication *)application
+{
+    /*
+     Called as part of the transition from the background to the inactive state; here you can undo many of the changes made on entering the background.
+     */
+}
+
+- (void)applicationDidBecomeActive:(UIApplication *)application
+{
+    /*
+     Restart any tasks that were paused (or not yet started) while the application was inactive. If the application was previously in the background, optionally refresh the user interface.
+     */
+}
+
+- (void)applicationWillTerminate:(UIApplication *)application
+{
+    /*
+     Called when the application is about to terminate.
+     Save data if appropriate.
+     See also applicationDidEnterBackground:.
+     */
+}
+
+
+@end
diff --git a/json-framework-3.2.0/Examples/TweetStream/TweetStream/TweetStreamViewController.h b/json-framework-3.2.0/Examples/TweetStream/TweetStream/TweetStreamViewController.h
new file mode 100644
index 0000000..6ed1d6b
--- /dev/null
+++ b/json-framework-3.2.0/Examples/TweetStream/TweetStream/TweetStreamViewController.h
@@ -0,0 +1,26 @@
+//
+//  TweetStreamViewController.h
+//  TweetStream
+//
+//  Created by Stig Brautaset on 24/05/2011.
+//  Copyright 2011 Stig Brautaset. All rights reserved.
+//
+
+#import <UIKit/UIKit.h>
+
+@class SBJsonStreamParser;
+@class SBJsonStreamParserAdapter;
+
+@interface TweetStreamViewController : UIViewController {
+    IBOutlet UITextField *username;
+    IBOutlet UITextField *password;
+    IBOutlet UITextView *tweet;
+    
+    NSURLConnection *theConnection;
+    SBJsonStreamParser *parser;
+    SBJsonStreamParserAdapter *adapter;
+}
+
+- (IBAction)go;
+
+@end
diff --git a/json-framework-3.2.0/Examples/TweetStream/TweetStream/TweetStreamViewController.m b/json-framework-3.2.0/Examples/TweetStream/TweetStream/TweetStreamViewController.m
new file mode 100644
index 0000000..550a7f3
--- /dev/null
+++ b/json-framework-3.2.0/Examples/TweetStream/TweetStream/TweetStreamViewController.m
@@ -0,0 +1,132 @@
+//
+//  TweetStreamViewController.m
+//  TweetStream
+//
+//  Created by Stig Brautaset on 24/05/2011.
+//  Copyright 2011 Stig Brautaset. All rights reserved.
+//
+
+#import "TweetStreamViewController.h"
+#import <SBJson/SBJson.h>
+
+@interface TweetStreamViewController () <SBJsonStreamParserAdapterDelegate>
+@end
+
+@implementation TweetStreamViewController
+
+
+- (void)didReceiveMemoryWarning
+{
+    // Releases the view if it doesn't have a superview.
+    [super didReceiveMemoryWarning];
+    
+    // Release any cached data, images, etc that aren't in use.
+}
+
+#pragma mark - View lifecycle
+
+// Implement viewDidLoad to do additional setup after loading the view, typically from a nib.
+- (void)viewDidLoad {
+    [super viewDidLoad];
+}
+
+- (void)viewDidUnload {
+    [super viewDidUnload];    
+}
+
+- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
+{
+    // Return YES for supported orientations
+    return (interfaceOrientation == UIInterfaceOrientationPortrait);
+}
+
+#pragma mark Actions
+
+- (IBAction)go {
+    [username resignFirstResponder];
+	[password resignFirstResponder];
+	
+	// We don't want *all* the individual messages from the
+	// SBJsonStreamParser, just the top-level objects. The stream
+	// parser adapter exists for this purpose.
+	adapter = [[SBJsonStreamParserAdapter alloc] init];
+	
+	// Set ourselves as the delegate, so we receive the messages
+	// from the adapter.
+	adapter.delegate = self;
+	
+	// Create a new stream parser..
+	parser = [[SBJsonStreamParser alloc] init];
+	
+	// .. and set our adapter as its delegate.
+	parser.delegate = adapter;
+	
+	// Normally it's an error if JSON is followed by anything but
+	// whitespace. Setting this means that the parser will be
+	// expecting the stream to contain multiple whitespace-separated
+	// JSON documents.
+	parser.supportMultipleDocuments = YES;
+	
+	NSString *url = @"https://stream.twitter.com/1/statuses/sample.json";
+	
+	NSURLRequest *theRequest=[NSURLRequest requestWithURL:[NSURL URLWithString:url]
+											  cachePolicy:NSURLRequestUseProtocolCachePolicy
+										  timeoutInterval:60.0];
+	
+	theConnection = [[NSURLConnection alloc] initWithRequest:theRequest delegate:self];
+}
+
+#pragma mark SBJsonStreamParserAdapterDelegate methods
+
+- (void)parser:(SBJsonStreamParser *)parser foundArray:(NSArray *)array {
+    [NSException raise:@"unexpected" format:@"Should not get here"];
+}
+
+- (void)parser:(SBJsonStreamParser *)parser foundObject:(NSDictionary *)dict {
+	tweet.text = [dict objectForKey:@"text"];
+}
+
+#pragma mark NSURLConnectionDelegate methods
+
+- (void)connection:(NSURLConnection *)connection didReceiveResponse:(NSURLResponse *)response {
+	NSLog(@"Connection didReceiveResponse: %@ - %@", response, [response MIMEType]);
+}
+
+- (void)connection:(NSURLConnection *)connection didReceiveAuthenticationChallenge:(NSURLAuthenticationChallenge *)challenge {
+	NSLog(@"Connection didReceiveAuthenticationChallenge: %@", challenge);
+	
+	NSURLCredential *credential = [NSURLCredential credentialWithUser:username.text
+															 password:password.text
+														  persistence:NSURLCredentialPersistenceForSession];
+	
+	[[challenge sender] useCredential:credential forAuthenticationChallenge:challenge];
+}
+
+- (void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data {
+	NSLog(@"Connection didReceiveData of length: %u", data.length);
+	
+	// Parse the new chunk of data. The parser will append it to
+	// its internal buffer, then parse from where it left off in
+	// the last chunk.
+	SBJsonStreamParserStatus status = [parser parse:data];
+	
+	if (status == SBJsonStreamParserError) {
+        tweet.text = [NSString stringWithFormat: @"The parser encountered an error: %@", parser.error];
+		NSLog(@"Parser error: %@", parser.error);
+		
+	} else if (status == SBJsonStreamParserWaitingForData) {
+		NSLog(@"Parser waiting for more data");
+	}
+}
+
+- (void)connection:(NSURLConnection *)connection didFailWithError:(NSError *)error {
+    NSLog(@"Connection failed! Error - %@ %@",
+          [error localizedDescription],
+          [[error userInfo] objectForKey:NSURLErrorFailingURLStringErrorKey]);
+}
+
+- (void)connectionDidFinishLoading:(NSURLConnection *)connection {
+}
+
+
+@end
diff --git a/json-framework-3.2.0/Examples/TweetStream/TweetStream/en.lproj/InfoPlist.strings b/json-framework-3.2.0/Examples/TweetStream/TweetStream/en.lproj/InfoPlist.strings
new file mode 100644
index 0000000..477b28f
--- /dev/null
+++ b/json-framework-3.2.0/Examples/TweetStream/TweetStream/en.lproj/InfoPlist.strings
@@ -0,0 +1,2 @@
+/* Localized versions of Info.plist keys */
+
diff --git a/json-framework-3.2.0/Examples/TweetStream/TweetStream/en.lproj/MainWindow.xib b/json-framework-3.2.0/Examples/TweetStream/TweetStream/en.lproj/MainWindow.xib
new file mode 100644
index 0000000..d5faea3
--- /dev/null
+++ b/json-framework-3.2.0/Examples/TweetStream/TweetStream/en.lproj/MainWindow.xib
@@ -0,0 +1,444 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<archive type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="7.10">
+	<data>
+		<int key="IBDocument.SystemTarget">1024</int>
+		<string key="IBDocument.SystemVersion">10D571</string>
+		<string key="IBDocument.InterfaceBuilderVersion">786</string>
+		<string key="IBDocument.AppKitVersion">1038.29</string>
+		<string key="IBDocument.HIToolboxVersion">460.00</string>
+		<object class="NSMutableDictionary" key="IBDocument.PluginVersions">
+			<string key="NS.key.0">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
+			<string key="NS.object.0">112</string>
+		</object>
+		<object class="NSMutableArray" key="IBDocument.EditedObjectIDs">
+			<bool key="EncodedWithXMLCoder">YES</bool>
+			<integer value="10"/>
+		</object>
+		<object class="NSArray" key="IBDocument.PluginDependencies">
+			<bool key="EncodedWithXMLCoder">YES</bool>
+			<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</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="1000">
+			<bool key="EncodedWithXMLCoder">YES</bool>
+			<object class="IBProxyObject" id="841351856">
+				<string key="IBProxiedObjectIdentifier">IBFilesOwner</string>
+				<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
+			</object>
+			<object class="IBProxyObject" id="427554174">
+				<string key="IBProxiedObjectIdentifier">IBFirstResponder</string>
+				<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
+			</object>
+			<object class="IBUICustomObject" id="664661524">
+				<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
+			</object>
+			<object class="IBUIViewController" id="943309135">
+				<string key="IBUINibName">TweetStreamViewController</string>
+				<object class="IBUISimulatedStatusBarMetrics" key="IBUISimulatedStatusBarMetrics"/>
+				<object class="IBUISimulatedOrientationMetrics" key="IBUISimulatedOrientationMetrics">
+					<int key="interfaceOrientation">1</int>
+				</object>
+				<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
+				<bool key="IBUIHorizontal">NO</bool>
+			</object>
+			<object class="IBUIWindow" id="117978783">
+				<nil key="NSNextResponder"/>
+				<int key="NSvFlags">292</int>
+				<string key="NSFrameSize">{320, 480}</string>
+				<object class="NSColor" key="IBUIBackgroundColor">
+					<int key="NSColorSpace">1</int>
+					<bytes key="NSRGB">MSAxIDEAA</bytes>
+				</object>
+				<bool key="IBUIOpaque">NO</bool>
+				<bool key="IBUIClearsContextBeforeDrawing">NO</bool>
+				<object class="IBUISimulatedStatusBarMetrics" key="IBUISimulatedStatusBarMetrics"/>
+				<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
+				<bool key="IBUIResizesToFullScreen">YES</bool>
+			</object>
+		</object>
+		<object class="IBObjectContainer" key="IBDocument.Objects">
+			<object class="NSMutableArray" key="connectionRecords">
+				<bool key="EncodedWithXMLCoder">YES</bool>
+				<object class="IBConnectionRecord">
+					<object class="IBCocoaTouchOutletConnection" key="connection">
+						<string key="label">delegate</string>
+						<reference key="source" ref="841351856"/>
+						<reference key="destination" ref="664661524"/>
+					</object>
+					<int key="connectionID">4</int>
+				</object>
+				<object class="IBConnectionRecord">
+					<object class="IBCocoaTouchOutletConnection" key="connection">
+						<string key="label">viewController</string>
+						<reference key="source" ref="664661524"/>
+						<reference key="destination" ref="943309135"/>
+					</object>
+					<int key="connectionID">11</int>
+				</object>
+				<object class="IBConnectionRecord">
+					<object class="IBCocoaTouchOutletConnection" key="connection">
+						<string key="label">window</string>
+						<reference key="source" ref="664661524"/>
+						<reference key="destination" ref="117978783"/>
+					</object>
+					<int key="connectionID">14</int>
+				</object>
+			</object>
+			<object class="IBMutableOrderedSet" key="objectRecords">
+				<object class="NSArray" key="orderedObjects">
+					<bool key="EncodedWithXMLCoder">YES</bool>
+					<object class="IBObjectRecord">
+						<int key="objectID">0</int>
+						<reference key="object" ref="0"/>
+						<reference key="children" ref="1000"/>
+						<nil key="parent"/>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">-1</int>
+						<reference key="object" ref="841351856"/>
+						<reference key="parent" ref="0"/>
+						<string key="objectName">File's Owner</string>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">3</int>
+						<reference key="object" ref="664661524"/>
+						<reference key="parent" ref="0"/>
+						<string key="objectName">TweetStream App Delegate</string>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">-2</int>
+						<reference key="object" ref="427554174"/>
+						<reference key="parent" ref="0"/>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">10</int>
+						<reference key="object" ref="943309135"/>
+						<reference key="parent" ref="0"/>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">12</int>
+						<reference key="object" ref="117978783"/>
+						<reference key="parent" ref="0"/>
+					</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>-1.CustomClassName</string>
+					<string>-2.CustomClassName</string>
+					<string>10.CustomClassName</string>
+					<string>10.IBEditorWindowLastContentRect</string>
+					<string>10.IBPluginDependency</string>
+					<string>12.IBEditorWindowLastContentRect</string>
+					<string>12.IBPluginDependency</string>
+					<string>3.CustomClassName</string>
+					<string>3.IBPluginDependency</string>
+				</object>
+				<object class="NSMutableArray" key="dict.values">
+					<bool key="EncodedWithXMLCoder">YES</bool>
+					<string>UIApplication</string>
+					<string>UIResponder</string>
+					<string>TweetStreamViewController</string>
+					<string>{{234, 376}, {320, 480}}</string>
+					<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
+					<string>{{525, 346}, {320, 480}}</string>
+					<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
+					<string>TweetStreamAppDelegate</string>
+					<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
+				</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>
+			<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>
+			<nil key="sourceID"/>
+			<int key="maxID">15</int>
+		</object>
+		<object class="IBClassDescriber" key="IBDocument.Classes">
+			<object class="NSMutableArray" key="referencedPartialClassDescriptions">
+				<bool key="EncodedWithXMLCoder">YES</bool>
+				<object class="IBPartialClassDescription">
+					<string key="className">UIWindow</string>
+					<string key="superclassName">UIView</string>
+					<object class="IBClassDescriptionSource" key="sourceIdentifier">
+						<string key="majorKey">IBUserSource</string>
+						<string key="minorKey"/>
+					</object>
+				</object>
+				<object class="IBPartialClassDescription">
+					<string key="className">TweetStreamAppDelegate</string>
+					<string key="superclassName">NSObject</string>
+					<object class="NSMutableDictionary" key="outlets">
+						<bool key="EncodedWithXMLCoder">YES</bool>
+						<object class="NSArray" key="dict.sortedKeys">
+							<bool key="EncodedWithXMLCoder">YES</bool>
+							<string>viewController</string>
+							<string>window</string>
+						</object>
+						<object class="NSMutableArray" key="dict.values">
+							<bool key="EncodedWithXMLCoder">YES</bool>
+							<string>TweetStreamViewController</string>
+							<string>UIWindow</string>
+						</object>
+					</object>
+					<object class="NSMutableDictionary" key="toOneOutletInfosByName">
+						<bool key="EncodedWithXMLCoder">YES</bool>
+						<object class="NSArray" key="dict.sortedKeys">
+							<bool key="EncodedWithXMLCoder">YES</bool>
+							<string>viewController</string>
+							<string>window</string>
+						</object>
+						<object class="NSMutableArray" key="dict.values">
+							<bool key="EncodedWithXMLCoder">YES</bool>
+							<object class="IBToOneOutletInfo">
+								<string key="name">viewController</string>
+								<string key="candidateClassName">TweetStreamViewController</string>
+							</object>
+							<object class="IBToOneOutletInfo">
+								<string key="name">window</string>
+								<string key="candidateClassName">UIWindow</string>
+							</object>
+						</object>
+					</object>
+					<object class="IBClassDescriptionSource" key="sourceIdentifier">
+						<string key="majorKey">IBProjectSource</string>
+						<string key="minorKey">TweetStreamAppDelegate.h</string>
+					</object>
+				</object>
+				<object class="IBPartialClassDescription">
+					<string key="className">TweetStreamAppDelegate</string>
+					<string key="superclassName">NSObject</string>
+					<object class="IBClassDescriptionSource" key="sourceIdentifier">
+						<string key="majorKey">IBUserSource</string>
+						<string key="minorKey"/>
+					</object>
+				</object>
+				<object class="IBPartialClassDescription">
+					<string key="className">TweetStreamViewController</string>
+					<string key="superclassName">UIViewController</string>
+					<object class="IBClassDescriptionSource" key="sourceIdentifier">
+						<string key="majorKey">IBProjectSource</string>
+						<string key="minorKey">TweetStreamViewController.h</string>
+					</object>
+				</object>
+			</object>
+			<object class="NSMutableArray" key="referencedPartialClassDescriptionsV3.2+">
+				<bool key="EncodedWithXMLCoder">YES</bool>
+				<object class="IBPartialClassDescription">
+					<string key="className">NSObject</string>
+					<object class="IBClassDescriptionSource" key="sourceIdentifier">
+						<string key="majorKey">IBFrameworkSource</string>
+						<string key="minorKey">Foundation.framework/Headers/NSError.h</string>
+					</object>
+				</object>
+				<object class="IBPartialClassDescription">
+					<string key="className">NSObject</string>
+					<object class="IBClassDescriptionSource" key="sourceIdentifier">
+						<string key="majorKey">IBFrameworkSource</string>
+						<string key="minorKey">Foundation.framework/Headers/NSFileManager.h</string>
+					</object>
+				</object>
+				<object class="IBPartialClassDescription">
+					<string key="className">NSObject</string>
+					<object class="IBClassDescriptionSource" key="sourceIdentifier">
+						<string key="majorKey">IBFrameworkSource</string>
+						<string key="minorKey">Foundation.framework/Headers/NSKeyValueCoding.h</string>
+					</object>
+				</object>
+				<object class="IBPartialClassDescription">
+					<string key="className">NSObject</string>
+					<object class="IBClassDescriptionSource" key="sourceIdentifier">
+						<string key="majorKey">IBFrameworkSource</string>
+						<string key="minorKey">Foundation.framework/Headers/NSKeyValueObserving.h</string>
+					</object>
+				</object>
+				<object class="IBPartialClassDescription">
+					<string key="className">NSObject</string>
+					<object class="IBClassDescriptionSource" key="sourceIdentifier">
+						<string key="majorKey">IBFrameworkSource</string>
+						<string key="minorKey">Foundation.framework/Headers/NSKeyedArchiver.h</string>
+					</object>
+				</object>
+				<object class="IBPartialClassDescription">
+					<string key="className">NSObject</string>
+					<object class="IBClassDescriptionSource" key="sourceIdentifier">
+						<string key="majorKey">IBFrameworkSource</string>
+						<string key="minorKey">Foundation.framework/Headers/NSObject.h</string>
+					</object>
+				</object>
+				<object class="IBPartialClassDescription">
+					<string key="className">NSObject</string>
+					<object class="IBClassDescriptionSource" key="sourceIdentifier">
+						<string key="majorKey">IBFrameworkSource</string>
+						<string key="minorKey">Foundation.framework/Headers/NSRunLoop.h</string>
+					</object>
+				</object>
+				<object class="IBPartialClassDescription">
+					<string key="className">NSObject</string>
+					<object class="IBClassDescriptionSource" key="sourceIdentifier">
+						<string key="majorKey">IBFrameworkSource</string>
+						<string key="minorKey">Foundation.framework/Headers/NSThread.h</string>
+					</object>
+				</object>
+				<object class="IBPartialClassDescription">
+					<string key="className">NSObject</string>
+					<object class="IBClassDescriptionSource" key="sourceIdentifier">
+						<string key="majorKey">IBFrameworkSource</string>
+						<string key="minorKey">Foundation.framework/Headers/NSURL.h</string>
+					</object>
+				</object>
+				<object class="IBPartialClassDescription">
+					<string key="className">NSObject</string>
+					<object class="IBClassDescriptionSource" key="sourceIdentifier">
+						<string key="majorKey">IBFrameworkSource</string>
+						<string key="minorKey">Foundation.framework/Headers/NSURLConnection.h</string>
+					</object>
+				</object>
+				<object class="IBPartialClassDescription">
+					<string key="className">NSObject</string>
+					<object class="IBClassDescriptionSource" key="sourceIdentifier">
+						<string key="majorKey">IBFrameworkSource</string>
+						<string key="minorKey">UIKit.framework/Headers/UIAccessibility.h</string>
+					</object>
+				</object>
+				<object class="IBPartialClassDescription">
+					<string key="className">NSObject</string>
+					<object class="IBClassDescriptionSource" key="sourceIdentifier">
+						<string key="majorKey">IBFrameworkSource</string>
+						<string key="minorKey">UIKit.framework/Headers/UINibLoading.h</string>
+					</object>
+				</object>
+				<object class="IBPartialClassDescription">
+					<string key="className">NSObject</string>
+					<object class="IBClassDescriptionSource" key="sourceIdentifier" id="356479594">
+						<string key="majorKey">IBFrameworkSource</string>
+						<string key="minorKey">UIKit.framework/Headers/UIResponder.h</string>
+					</object>
+				</object>
+				<object class="IBPartialClassDescription">
+					<string key="className">UIApplication</string>
+					<string key="superclassName">UIResponder</string>
+					<object class="IBClassDescriptionSource" key="sourceIdentifier">
+						<string key="majorKey">IBFrameworkSource</string>
+						<string key="minorKey">UIKit.framework/Headers/UIApplication.h</string>
+					</object>
+				</object>
+				<object class="IBPartialClassDescription">
+					<string key="className">UIResponder</string>
+					<string key="superclassName">NSObject</string>
+					<reference key="sourceIdentifier" ref="356479594"/>
+				</object>
+				<object class="IBPartialClassDescription">
+					<string key="className">UISearchBar</string>
+					<string key="superclassName">UIView</string>
+					<object class="IBClassDescriptionSource" key="sourceIdentifier">
+						<string key="majorKey">IBFrameworkSource</string>
+						<string key="minorKey">UIKit.framework/Headers/UISearchBar.h</string>
+					</object>
+				</object>
+				<object class="IBPartialClassDescription">
+					<string key="className">UISearchDisplayController</string>
+					<string key="superclassName">NSObject</string>
+					<object class="IBClassDescriptionSource" key="sourceIdentifier">
+						<string key="majorKey">IBFrameworkSource</string>
+						<string key="minorKey">UIKit.framework/Headers/UISearchDisplayController.h</string>
+					</object>
+				</object>
+				<object class="IBPartialClassDescription">
+					<string key="className">UIView</string>
+					<object class="IBClassDescriptionSource" key="sourceIdentifier">
+						<string key="majorKey">IBFrameworkSource</string>
+						<string key="minorKey">UIKit.framework/Headers/UITextField.h</string>
+					</object>
+				</object>
+				<object class="IBPartialClassDescription">
+					<string key="className">UIView</string>
+					<string key="superclassName">UIResponder</string>
+					<object class="IBClassDescriptionSource" key="sourceIdentifier">
+						<string key="majorKey">IBFrameworkSource</string>
+						<string key="minorKey">UIKit.framework/Headers/UIView.h</string>
+					</object>
+				</object>
+				<object class="IBPartialClassDescription">
+					<string key="className">UIViewController</string>
+					<object class="IBClassDescriptionSource" key="sourceIdentifier">
+						<string key="majorKey">IBFrameworkSource</string>
+						<string key="minorKey">UIKit.framework/Headers/UINavigationController.h</string>
+					</object>
+				</object>
+				<object class="IBPartialClassDescription">
+					<string key="className">UIViewController</string>
+					<object class="IBClassDescriptionSource" key="sourceIdentifier">
+						<string key="majorKey">IBFrameworkSource</string>
+						<string key="minorKey">UIKit.framework/Headers/UIPopoverController.h</string>
+					</object>
+				</object>
+				<object class="IBPartialClassDescription">
+					<string key="className">UIViewController</string>
+					<object class="IBClassDescriptionSource" key="sourceIdentifier">
+						<string key="majorKey">IBFrameworkSource</string>
+						<string key="minorKey">UIKit.framework/Headers/UISplitViewController.h</string>
+					</object>
+				</object>
+				<object class="IBPartialClassDescription">
+					<string key="className">UIViewController</string>
+					<object class="IBClassDescriptionSource" key="sourceIdentifier">
+						<string key="majorKey">IBFrameworkSource</string>
+						<string key="minorKey">UIKit.framework/Headers/UITabBarController.h</string>
+					</object>
+				</object>
+				<object class="IBPartialClassDescription">
+					<string key="className">UIViewController</string>
+					<string key="superclassName">UIResponder</string>
+					<object class="IBClassDescriptionSource" key="sourceIdentifier">
+						<string key="majorKey">IBFrameworkSource</string>
+						<string key="minorKey">UIKit.framework/Headers/UIViewController.h</string>
+					</object>
+				</object>
+				<object class="IBPartialClassDescription">
+					<string key="className">UIWindow</string>
+					<string key="superclassName">UIView</string>
+					<object class="IBClassDescriptionSource" key="sourceIdentifier">
+						<string key="majorKey">IBFrameworkSource</string>
+						<string key="minorKey">UIKit.framework/Headers/UIWindow.h</string>
+					</object>
+				</object>
+			</object>
+		</object>
+		<int key="IBDocument.localizationMode">0</int>
+		<string key="IBDocument.TargetRuntimeIdentifier">IBCocoaTouchFramework</string>
+		<object class="NSMutableDictionary" key="IBDocument.PluginDeclaredDependencyDefaults">
+			<string key="NS.key.0">com.apple.InterfaceBuilder.CocoaTouchPlugin.iPhoneOS</string>
+			<integer value="1024" key="NS.object.0"/>
+		</object>
+		<object class="NSMutableDictionary" key="IBDocument.PluginDeclaredDevelopmentDependencies">
+			<string key="NS.key.0">com.apple.InterfaceBuilder.CocoaTouchPlugin.InterfaceBuilder3</string>
+			<integer value="3100" key="NS.object.0"/>
+		</object>
+		<bool key="IBDocument.PluginDeclaredDependenciesTrackSystemTargetVersion">YES</bool>
+		<string key="IBDocument.LastKnownRelativeProjectPath">TweetStream.xcodeproj</string>
+		<int key="IBDocument.defaultPropertyAccessControl">3</int>
+		<string key="IBCocoaTouchPluginVersion">112</string>
+	</data>
+</archive>
diff --git a/json-framework-3.2.0/Examples/TweetStream/TweetStream/en.lproj/TweetStreamViewController.xib b/json-framework-3.2.0/Examples/TweetStream/TweetStream/en.lproj/TweetStreamViewController.xib
new file mode 100644
index 0000000..89aa803
--- /dev/null
+++ b/json-framework-3.2.0/Examples/TweetStream/TweetStream/en.lproj/TweetStreamViewController.xib
@@ -0,0 +1,384 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<archive type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="7.10">
+	<data>
+		<int key="IBDocument.SystemTarget">1056</int>
+		<string key="IBDocument.SystemVersion">10J869</string>
+		<string key="IBDocument.InterfaceBuilderVersion">1306</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.IBCocoaTouchPlugin</string>
+			<string key="NS.object.0">301</string>
+		</object>
+		<object class="NSArray" key="IBDocument.IntegratedClassDependencies">
+			<bool key="EncodedWithXMLCoder">YES</bool>
+			<string>IBUITextView</string>
+			<string>IBUIButton</string>
+			<string>IBUIView</string>
+			<string>IBUITextField</string>
+			<string>IBProxyObject</string>
+		</object>
+		<object class="NSArray" key="IBDocument.PluginDependencies">
+			<bool key="EncodedWithXMLCoder">YES</bool>
+			<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</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>
+			<reference key="dict.values" ref="0"/>
+		</object>
+		<object class="NSMutableArray" key="IBDocument.RootObjects" id="1000">
+			<bool key="EncodedWithXMLCoder">YES</bool>
+			<object class="IBProxyObject" id="372490531">
+				<string key="IBProxiedObjectIdentifier">IBFilesOwner</string>
+				<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
+			</object>
+			<object class="IBProxyObject" id="843779117">
+				<string key="IBProxiedObjectIdentifier">IBFirstResponder</string>
+				<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
+			</object>
+			<object class="IBUIView" id="774585933">
+				<reference key="NSNextResponder"/>
+				<int key="NSvFlags">274</int>
+				<object class="NSMutableArray" key="NSSubviews">
+					<bool key="EncodedWithXMLCoder">YES</bool>
+					<object class="IBUITextField" id="930153005">
+						<reference key="NSNextResponder" ref="774585933"/>
+						<int key="NSvFlags">292</int>
+						<string key="NSFrame">{{20, 20}, {280, 31}}</string>
+						<reference key="NSSuperview" ref="774585933"/>
+						<reference key="NSWindow"/>
+						<reference key="NSNextKeyView" ref="809255231"/>
+						<bool key="IBUIOpaque">NO</bool>
+						<bool key="IBUIClipsSubviews">YES</bool>
+						<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
+						<int key="IBUIContentVerticalAlignment">0</int>
+						<string key="IBUIText"/>
+						<int key="IBUIBorderStyle">3</int>
+						<string key="IBUIPlaceholder">Username</string>
+						<object class="NSColor" key="IBUITextColor">
+							<int key="NSColorSpace">3</int>
+							<bytes key="NSWhite">MAA</bytes>
+							<object class="NSColorSpace" key="NSCustomColorSpace" id="806270782">
+								<int key="NSID">2</int>
+							</object>
+						</object>
+						<object class="NSFont" key="IBUIFont" id="293376885">
+							<string key="NSName">Helvetica</string>
+							<double key="NSSize">12</double>
+							<int key="NSfFlags">16</int>
+						</object>
+						<bool key="IBUIAdjustsFontSizeToFit">YES</bool>
+						<float key="IBUIMinimumFontSize">17</float>
+						<object class="IBUITextInputTraits" key="IBUITextInputTraits">
+							<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
+						</object>
+					</object>
+					<object class="IBUITextField" id="809255231">
+						<reference key="NSNextResponder" ref="774585933"/>
+						<int key="NSvFlags">292</int>
+						<string key="NSFrame">{{20, 59}, {280, 31}}</string>
+						<reference key="NSSuperview" ref="774585933"/>
+						<reference key="NSWindow"/>
+						<reference key="NSNextKeyView" ref="138478363"/>
+						<bool key="IBUIOpaque">NO</bool>
+						<bool key="IBUIClipsSubviews">YES</bool>
+						<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
+						<int key="IBUIContentVerticalAlignment">0</int>
+						<string key="IBUIText"/>
+						<int key="IBUIBorderStyle">3</int>
+						<string key="IBUIPlaceholder">Password</string>
+						<object class="NSColor" key="IBUITextColor">
+							<int key="NSColorSpace">3</int>
+							<bytes key="NSWhite">MAA</bytes>
+							<reference key="NSCustomColorSpace" ref="806270782"/>
+						</object>
+						<reference key="IBUIFont" ref="293376885"/>
+						<bool key="IBUIAdjustsFontSizeToFit">YES</bool>
+						<float key="IBUIMinimumFontSize">17</float>
+						<object class="IBUITextInputTraits" key="IBUITextInputTraits">
+							<bool key="IBUIEnablesReturnKeyAutomatically">YES</bool>
+							<bool key="IBUISecureTextEntry">YES</bool>
+							<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
+						</object>
+					</object>
+					<object class="IBUIButton" id="138478363">
+						<reference key="NSNextResponder" ref="774585933"/>
+						<int key="NSvFlags">292</int>
+						<string key="NSFrame">{{124, 98}, {72, 37}}</string>
+						<reference key="NSSuperview" ref="774585933"/>
+						<reference key="NSWindow"/>
+						<reference key="NSNextKeyView" ref="1007492855"/>
+						<bool key="IBUIOpaque">NO</bool>
+						<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
+						<int key="IBUIContentHorizontalAlignment">0</int>
+						<int key="IBUIContentVerticalAlignment">0</int>
+						<object class="NSFont" key="IBUIFont">
+							<string key="NSName">Helvetica-Bold</string>
+							<double key="NSSize">15</double>
+							<int key="NSfFlags">16</int>
+						</object>
+						<int key="IBUIButtonType">1</int>
+						<string key="IBUINormalTitle">Go!</string>
+						<object class="NSColor" key="IBUIHighlightedTitleColor">
+							<int key="NSColorSpace">3</int>
+							<bytes key="NSWhite">MQA</bytes>
+						</object>
+						<object class="NSColor" key="IBUINormalTitleColor">
+							<int key="NSColorSpace">1</int>
+							<bytes key="NSRGB">MC4xOTYwNzg0MzQ2IDAuMzA5ODAzOTMyOSAwLjUyMTU2ODY1NgA</bytes>
+						</object>
+						<object class="NSColor" key="IBUINormalTitleShadowColor">
+							<int key="NSColorSpace">3</int>
+							<bytes key="NSWhite">MC41AA</bytes>
+						</object>
+					</object>
+					<object class="IBUITextView" id="1007492855">
+						<reference key="NSNextResponder" ref="774585933"/>
+						<int key="NSvFlags">292</int>
+						<string key="NSFrame">{{20, 143}, {280, 297}}</string>
+						<reference key="NSSuperview" ref="774585933"/>
+						<reference key="NSWindow"/>
+						<reference key="NSNextKeyView"/>
+						<object class="NSColor" key="IBUIBackgroundColor">
+							<int key="NSColorSpace">1</int>
+							<bytes key="NSRGB">MSAxIDEAA</bytes>
+						</object>
+						<bool key="IBUIClipsSubviews">YES</bool>
+						<bool key="IBUIMultipleTouchEnabled">YES</bool>
+						<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
+						<string key="IBUIText">Lorem ipsum dolor sit er elit lamet, consectetaur cillium adipisicing pecu, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum. Nam liber te conscient to factor tum poen legum odioque civiuda.</string>
+						<object class="IBUITextInputTraits" key="IBUITextInputTraits">
+							<int key="IBUIAutocapitalizationType">2</int>
+							<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
+						</object>
+					</object>
+				</object>
+				<string key="NSFrame">{{0, 20}, {320, 460}}</string>
+				<reference key="NSSuperview"/>
+				<reference key="NSWindow"/>
+				<reference key="NSNextKeyView" ref="930153005"/>
+				<object class="NSColor" key="IBUIBackgroundColor">
+					<int key="NSColorSpace">3</int>
+					<bytes key="NSWhite">MC43NQA</bytes>
+					<reference key="NSCustomColorSpace" ref="806270782"/>
+				</object>
+				<bool key="IBUIClearsContextBeforeDrawing">NO</bool>
+				<object class="IBUISimulatedStatusBarMetrics" key="IBUISimulatedStatusBarMetrics"/>
+				<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
+			</object>
+		</object>
+		<object class="IBObjectContainer" key="IBDocument.Objects">
+			<object class="NSMutableArray" key="connectionRecords">
+				<bool key="EncodedWithXMLCoder">YES</bool>
+				<object class="IBConnectionRecord">
+					<object class="IBCocoaTouchOutletConnection" key="connection">
+						<string key="label">view</string>
+						<reference key="source" ref="372490531"/>
+						<reference key="destination" ref="774585933"/>
+					</object>
+					<int key="connectionID">7</int>
+				</object>
+				<object class="IBConnectionRecord">
+					<object class="IBCocoaTouchOutletConnection" key="connection">
+						<string key="label">password</string>
+						<reference key="source" ref="372490531"/>
+						<reference key="destination" ref="809255231"/>
+					</object>
+					<int key="connectionID">18</int>
+				</object>
+				<object class="IBConnectionRecord">
+					<object class="IBCocoaTouchOutletConnection" key="connection">
+						<string key="label">tweet</string>
+						<reference key="source" ref="372490531"/>
+						<reference key="destination" ref="1007492855"/>
+					</object>
+					<int key="connectionID">19</int>
+				</object>
+				<object class="IBConnectionRecord">
+					<object class="IBCocoaTouchOutletConnection" key="connection">
+						<string key="label">username</string>
+						<reference key="source" ref="372490531"/>
+						<reference key="destination" ref="930153005"/>
+					</object>
+					<int key="connectionID">20</int>
+				</object>
+				<object class="IBConnectionRecord">
+					<object class="IBCocoaTouchEventConnection" key="connection">
+						<string key="label">go</string>
+						<reference key="source" ref="138478363"/>
+						<reference key="destination" ref="372490531"/>
+						<int key="IBEventType">7</int>
+					</object>
+					<int key="connectionID">21</int>
+				</object>
+			</object>
+			<object class="IBMutableOrderedSet" key="objectRecords">
+				<object class="NSArray" key="orderedObjects">
+					<bool key="EncodedWithXMLCoder">YES</bool>
+					<object class="IBObjectRecord">
+						<int key="objectID">0</int>
+						<reference key="object" ref="0"/>
+						<reference key="children" ref="1000"/>
+						<nil key="parent"/>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">-1</int>
+						<reference key="object" ref="372490531"/>
+						<reference key="parent" ref="0"/>
+						<string key="objectName">File's Owner</string>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">-2</int>
+						<reference key="object" ref="843779117"/>
+						<reference key="parent" ref="0"/>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">6</int>
+						<reference key="object" ref="774585933"/>
+						<object class="NSMutableArray" key="children">
+							<bool key="EncodedWithXMLCoder">YES</bool>
+							<reference ref="930153005"/>
+							<reference ref="138478363"/>
+							<reference ref="1007492855"/>
+							<reference ref="809255231"/>
+						</object>
+						<reference key="parent" ref="0"/>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">9</int>
+						<reference key="object" ref="930153005"/>
+						<reference key="parent" ref="774585933"/>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">10</int>
+						<reference key="object" ref="809255231"/>
+						<reference key="parent" ref="774585933"/>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">11</int>
+						<reference key="object" ref="138478363"/>
+						<reference key="parent" ref="774585933"/>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">12</int>
+						<reference key="object" ref="1007492855"/>
+						<reference key="parent" ref="774585933"/>
+					</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>-1.CustomClassName</string>
+					<string>-2.CustomClassName</string>
+					<string>10.IBPluginDependency</string>
+					<string>11.IBPluginDependency</string>
+					<string>12.IBPluginDependency</string>
+					<string>6.IBEditorWindowLastContentRect</string>
+					<string>6.IBPluginDependency</string>
+					<string>9.IBPluginDependency</string>
+				</object>
+				<object class="NSMutableArray" key="dict.values">
+					<bool key="EncodedWithXMLCoder">YES</bool>
+					<string>TweetStreamViewController</string>
+					<string>UIResponder</string>
+					<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
+					<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
+					<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
+					<string>{{239, 654}, {320, 480}}</string>
+					<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
+					<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
+				</object>
+			</object>
+			<object class="NSMutableDictionary" key="unlocalizedProperties">
+				<bool key="EncodedWithXMLCoder">YES</bool>
+				<reference key="dict.sortedKeys" ref="0"/>
+				<reference key="dict.values" ref="0"/>
+			</object>
+			<nil key="activeLocalization"/>
+			<object class="NSMutableDictionary" key="localizations">
+				<bool key="EncodedWithXMLCoder">YES</bool>
+				<reference key="dict.sortedKeys" ref="0"/>
+				<reference key="dict.values" ref="0"/>
+			</object>
+			<nil key="sourceID"/>
+			<int key="maxID">21</int>
+		</object>
+		<object class="IBClassDescriber" key="IBDocument.Classes">
+			<object class="NSMutableArray" key="referencedPartialClassDescriptions">
+				<bool key="EncodedWithXMLCoder">YES</bool>
+				<object class="IBPartialClassDescription">
+					<string key="className">TweetStreamViewController</string>
+					<string key="superclassName">UIViewController</string>
+					<object class="NSMutableDictionary" key="actions">
+						<string key="NS.key.0">go</string>
+						<string key="NS.object.0">id</string>
+					</object>
+					<object class="NSMutableDictionary" key="actionInfosByName">
+						<string key="NS.key.0">go</string>
+						<object class="IBActionInfo" key="NS.object.0">
+							<string key="name">go</string>
+							<string key="candidateClassName">id</string>
+						</object>
+					</object>
+					<object class="NSMutableDictionary" key="outlets">
+						<bool key="EncodedWithXMLCoder">YES</bool>
+						<object class="NSArray" key="dict.sortedKeys">
+							<bool key="EncodedWithXMLCoder">YES</bool>
+							<string>password</string>
+							<string>tweet</string>
+							<string>username</string>
+						</object>
+						<object class="NSMutableArray" key="dict.values">
+							<bool key="EncodedWithXMLCoder">YES</bool>
+							<string>UITextField</string>
+							<string>UITextView</string>
+							<string>UITextField</string>
+						</object>
+					</object>
+					<object class="NSMutableDictionary" key="toOneOutletInfosByName">
+						<bool key="EncodedWithXMLCoder">YES</bool>
+						<object class="NSArray" key="dict.sortedKeys">
+							<bool key="EncodedWithXMLCoder">YES</bool>
+							<string>password</string>
+							<string>tweet</string>
+							<string>username</string>
+						</object>
+						<object class="NSMutableArray" key="dict.values">
+							<bool key="EncodedWithXMLCoder">YES</bool>
+							<object class="IBToOneOutletInfo">
+								<string key="name">password</string>
+								<string key="candidateClassName">UITextField</string>
+							</object>
+							<object class="IBToOneOutletInfo">
+								<string key="name">tweet</string>
+								<string key="candidateClassName">UITextView</string>
+							</object>
+							<object class="IBToOneOutletInfo">
+								<string key="name">username</string>
+								<string key="candidateClassName">UITextField</string>
+							</object>
+						</object>
+					</object>
+					<object class="IBClassDescriptionSource" key="sourceIdentifier">
+						<string key="majorKey">IBProjectSource</string>
+						<string key="minorKey">./Classes/TweetStreamViewController.h</string>
+					</object>
+				</object>
+			</object>
+		</object>
+		<int key="IBDocument.localizationMode">0</int>
+		<string key="IBDocument.TargetRuntimeIdentifier">IBCocoaTouchFramework</string>
+		<object class="NSMutableDictionary" key="IBDocument.PluginDeclaredDevelopmentDependencies">
+			<string key="NS.key.0">com.apple.InterfaceBuilder.CocoaTouchPlugin.InterfaceBuilder3</string>
+			<integer value="3100" key="NS.object.0"/>
+		</object>
+		<bool key="IBDocument.PluginDeclaredDependenciesTrackSystemTargetVersion">YES</bool>
+		<int key="IBDocument.defaultPropertyAccessControl">3</int>
+		<string key="IBCocoaTouchPluginVersion">301</string>
+	</data>
+</archive>
diff --git a/json-framework-3.2.0/Examples/TweetStream/TweetStream/main.m b/json-framework-3.2.0/Examples/TweetStream/TweetStream/main.m
new file mode 100644
index 0000000..3e99043
--- /dev/null
+++ b/json-framework-3.2.0/Examples/TweetStream/TweetStream/main.m
@@ -0,0 +1,20 @@
+//
+//  main.m
+//  TweetStream
+//
+//  Created by Stig Brautaset on 24/05/2011.
+//  Copyright 2011 Stig Brautaset. All rights reserved.
+//
+
+#import <UIKit/UIKit.h>
+
+#import "TweetStreamAppDelegate.h"
+
+int main(int argc, char *argv[])
+{
+    int retVal = 0;
+    @autoreleasepool {
+        retVal = UIApplicationMain(argc, argv, nil, NSStringFromClass([TweetStreamAppDelegate class]));
+    }
+    return retVal;
+}
diff --git a/json-framework-3.2.0/NEWS.md b/json-framework-3.2.0/NEWS.md
new file mode 100644
index 0000000..ccdace1
--- /dev/null
+++ b/json-framework-3.2.0/NEWS.md
@@ -0,0 +1,136 @@
+3.2.0 (January 19th, 2013)
+==========================
+
+Version 3.2.0 was released, with no changes since rc1.
+
+3.2.0-rc1 (January 4th, 2013)
+=============================
+
+**Deprecations**
+
+* Deprecated the `JSONValue` and `JSONRepresentation` category methods.
+* Deprecated several methods that return an error through an `NSError**` argument.
+
+These will be removed in the next major version release.
+
+**Changes**
+
+* Absorb LICENSE and INSTALL files into README.
+* Remove the Xcode Workspace from the top-level source checkout; the less
+  clutter the better and this doesn't seem to serve any function.
+* Change to use AppleDoc for creating API documentation. This results in
+  output looking more consistent with Apple's documentation.
+
+**Bugfixes**
+
+* Replace use of INFINITY with HUGE_VAL where used as double (reported by
+Antoine Cœur)
+* Correctly parse -0.0 as a JSON number (Cary Yang)
+
+3.1.1 (August 4th, 2012)
+========================
+
+Bugfix release. This release is special in that it mainly contains code by other people. Thanks guys!
+
+* Fix bug that could result in a long long overflow (Ole André Vadla Ravnås)
+* Make SINGLETON thread safe (Alen Zhou)
+* Updated .gitattributes to say that tests are binary files (Phill Baker)
+* Fix string formatter warning in new XCode (Andy Brett)
+* Fix issue that could lead to "bad access" or zombie errors (jonkean)
+* Update links to API docs
+
+
+3.1 (March 26th, 2012)
+=====================
+
+Automatic Reference Counting
+----------------------------
+
+3.1 requires Xcode 4.2 to build, because previous versions did
+not have ARC support. If you can't use Xcode 4.2, or for some reason
+can't use ARC, you need to stick with version 3.0.
+
+To make this move simpler I decided to move to 64-bit only & remove
+instance variables for properties.
+
+Miscellaneous
+-------------
+
+* Added an optional comparator that is used when sorting keys.
+* Be more memory-efficient when parsing long strings containing escaped characters.
+* Add a Workspace that includes the sample projects, for ease of browsing.
+* Report error for numbers with exponents outside range of -128 to 127.
+
+
+3.0 (June 18th, 2011)
+=====================
+
+JSON Stream Support
+-------------------
+
+We now support parsing of documents split into several NSData chunks,
+like those returned by *NSURLConnection*. This means you can start
+parsing a JSON document before it is fully downloaded. Depending how you
+configure the delegates you can chose to have the entire document
+delivered to your process when it's finished parsing, or delivered
+bit-by-bit as records on a particular level finishes downloading. For
+more details see *SBJsonStreamParser* and *SBJsonStreamParserAdapter* in
+the [API docs][api].
+
+There is also support for *writing to* JSON streams. This means you can
+write huge JSON documents to disk, or an HTTP destination, without
+having to hold the entire structure in memory. You can use this to
+generate a stream of tick data for a stock trading simulation, for
+example. For more information see *SBJsonStreamWriter* in the [API
+docs][api].
+
+Parse and write UTF8-encoded NSData
+-----------------------------------
+
+The internals of *SBJsonParser* and *SBJsonWriter* have been rewritten
+to be NSData based. It is no longer necessary to convert data returned
+by NSURLConnection into an NSString before feeding it to the parser. The
+old NSString-oriented API methods still exists, but now converts their
+inputs to NSData objects and delegates to the new methods.
+
+Project renamed to SBJson
+-------------------------
+
+The project was renamed to avoid clashing with Apple's private
+JSON.framework. (And to make it easier to Google for.)
+
+* If you copy the classes into your project then all you need to update
+is to change the header inclusion from `#import "JSON.h"` to `#import
+"SBJson.h"`.
+* If you link to the library rather than copy the classes you have to
+change the library you link to. On the Mac `JSON.framework` became
+`SBJson.framework`. On iOS `libjson.a` became `libsbjson-ios.a`. In both
+cases you now have to `#import <SBJson/SBJson.h>` in your code.
+
+API documentation integrated with Xcode
+---------------------------------------
+
+The *InstallDocumentation.sh* script allows you to generate [API
+documentation][api] from the source and install it into Xcode, so it's
+always at your fingertips. (This script requires [Doxygen][] to be
+installed.) After running the script from the top-level directory, open
+Xcode's documentation window and search for SBJson. (You might have to
+close and re-open Xcode for the changes to take effect.)
+
+[api]: http://stig.github.com/json-framework/api/3.0/
+[Doxygen]: http://doxygen.org
+
+Example Projects
+----------------
+
+These can be found in the Examples folder in the distribution.
+
+* TweetStream: An exampleshowing how to use the new streaming
+functionality to interact with Twitter's multi-document streams. This
+also shows how to link to the iOS static lib rather than having to copy
+the classes into your project.
+* DisplayPretty: A small Mac example project showing how to link to an
+external JSON framework rather than copying the sources into your
+project. This is a fully functional (though simplistic) application that
+takes JSON input from a text field and presents it nicely formatted into
+another text field.
diff --git a/json-framework-3.2.0/README.md b/json-framework-3.2.0/README.md
new file mode 100644
index 0000000..8700dfc
--- /dev/null
+++ b/json-framework-3.2.0/README.md
@@ -0,0 +1,80 @@
+JSON (JavaScript Object Notation) is a light-weight data interchange
+format that's easy to read and write for humans and computers alike.
+This library implements strict JSON parsing and generation in
+Objective-C.
+
+Features
+========
+
+* Streaming Support (see SBJsonStreamParser & SBJsonStreamWriter)
+* Configurable recursion depth limit
+* Automatic Reference Counting (ARC)
+* Optionally sort dictionary keys in JSON output
+* Optional pretty-printing of JSON output
+
+Links
+=====
+
+* [GitHub project page](http://github.com/stig/json-framework)
+* [Online API docs](http://sbjson.org/api/3.2)
+* [SBJson tag on Stack Overflow](http://stackoverflow.com/questions/tagged/sbjson)
+
+
+Installation
+============
+
+The simplest way to start using JSON in your application is to copy all
+the source files (the contents of the `Classes` folder) into your own
+Xcode project.
+
+1. In the Finder, navigate into the `Classes` folder.
+2. Select all the files and drag-and-drop them into your Xcode project.
+3. Tick the **Copy items into destination group's folder** option.
+4. Use `#import "SBJson.h"` in  your source files.
+
+That should be it. Now create that Twitter client!
+
+*If you're upgrading from a previous version, make sure you're deleting the
+old SBJson classes first, moving all the files to Trash.*
+
+
+Alternative Installation Instructions
+=====================================
+
+* With Xcode 4's workspaces it has become much simpler to link to dependant
+projects. The examples in the distribution link to the iOS library and Mac
+framework, respectively. Des Hartman wrote [a blog post with step-by-step
+instructions for iOS][link-ios]. This is the recommended way if you need to
+make local changes to SBJson.
+* You can also install SBJson using [CocoaPods](http://cocoapods.org).
+
+[link-ios]: http://deshartman.wordpress.com/2011/09/02/configuring-sbjson-framework-for-xcode-4-2/
+
+
+License
+=======
+
+Copyright (C) 2007-2013 Stig Brautaset. All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are met:
+
+* Redistributions of source code must retain the above copyright notice, this
+  list of conditions and the following disclaimer.
+* Redistributions in binary form must reproduce the above copyright notice,
+  this list of conditions and the following disclaimer in the documentation
+  and/or other materials provided with the distribution.
+* Neither the name of the author nor the names of its contributors may be used
+  to endorse or promote products derived from this software without specific
+  prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
diff --git a/json-framework-3.2.0/SBJson.xcodeproj/project.pbxproj b/json-framework-3.2.0/SBJson.xcodeproj/project.pbxproj
new file mode 100644
index 0000000..39fe64a
--- /dev/null
+++ b/json-framework-3.2.0/SBJson.xcodeproj/project.pbxproj
@@ -0,0 +1,967 @@
+// !$*UTF8*$!
+{
+	archiveVersion = 1;
+	classes = {
+	};
+	objectVersion = 46;
+	objects = {
+
+/* Begin PBXBuildFile section */
+		3BB5955C14EAA4B8001BE91E /* SortedFormatTest.m in Sources */ = {isa = PBXBuildFile; fileRef = 3BB5955B14EAA4B8001BE91E /* SortedFormatTest.m */; };
+		3BB5955D14EAA4B8001BE91E /* SortedFormatTest.m in Sources */ = {isa = PBXBuildFile; fileRef = 3BB5955B14EAA4B8001BE91E /* SortedFormatTest.m */; };
+		BC12324B1391D5CC00131607 /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = BC1232491391D5CC00131607 /* InfoPlist.strings */; };
+		BC1232561391D5CC00131607 /* SBJson.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BC12323D1391D5CC00131607 /* SBJson.framework */; };
+		BC12325C1391D5CC00131607 /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = BC12325A1391D5CC00131607 /* InfoPlist.strings */; };
+		BC417FF413A1008F00C8BC49 /* ErrorTest.m in Sources */ = {isa = PBXBuildFile; fileRef = BC88522B1391D6DD00370E55 /* ErrorTest.m */; };
+		BC417FF513A1008F00C8BC49 /* FormatTest.m in Sources */ = {isa = PBXBuildFile; fileRef = BC88522C1391D6DD00370E55 /* FormatTest.m */; };
+		BC417FF613A1008F00C8BC49 /* JsonCheckerTest.m in Sources */ = {isa = PBXBuildFile; fileRef = BC88522D1391D6DD00370E55 /* JsonCheckerTest.m */; };
+		BC417FF813A1008F00C8BC49 /* JsonTestCase.m in Sources */ = {isa = PBXBuildFile; fileRef = BC88522F1391D6DD00370E55 /* JsonTestCase.m */; };
+		BC417FF913A1008F00C8BC49 /* ProxyTest.m in Sources */ = {isa = PBXBuildFile; fileRef = BC8852301391D6DD00370E55 /* ProxyTest.m */; };
+		BC417FFA13A1008F00C8BC49 /* RoundTripTest.m in Sources */ = {isa = PBXBuildFile; fileRef = BC8852311391D6DD00370E55 /* RoundTripTest.m */; };
+		BC417FFB13A1008F00C8BC49 /* StreamParserIntegrationTest.m in Sources */ = {isa = PBXBuildFile; fileRef = BC8852971391D6DE00370E55 /* StreamParserIntegrationTest.m */; };
+		BC417FFC13A1008F00C8BC49 /* WriterTest.m in Sources */ = {isa = PBXBuildFile; fileRef = BC8852981391D6DE00370E55 /* WriterTest.m */; };
+		BC88513F1391D6CD00370E55 /* NSObject+SBJson.h in Headers */ = {isa = PBXBuildFile; fileRef = BC8851251391D6CD00370E55 /* NSObject+SBJson.h */; settings = {ATTRIBUTES = (Public, ); }; };
+		BC8851401391D6CD00370E55 /* NSObject+SBJson.m in Sources */ = {isa = PBXBuildFile; fileRef = BC8851261391D6CD00370E55 /* NSObject+SBJson.m */; };
+		BC8851411391D6CD00370E55 /* SBJson.h in Headers */ = {isa = PBXBuildFile; fileRef = BC8851271391D6CD00370E55 /* SBJson.h */; settings = {ATTRIBUTES = (Public, ); }; };
+		BC8851421391D6CD00370E55 /* SBJsonParser.h in Headers */ = {isa = PBXBuildFile; fileRef = BC8851281391D6CD00370E55 /* SBJsonParser.h */; settings = {ATTRIBUTES = (Public, ); }; };
+		BC8851431391D6CD00370E55 /* SBJsonParser.m in Sources */ = {isa = PBXBuildFile; fileRef = BC8851291391D6CD00370E55 /* SBJsonParser.m */; };
+		BC8851441391D6CD00370E55 /* SBJsonStreamParser.h in Headers */ = {isa = PBXBuildFile; fileRef = BC88512A1391D6CD00370E55 /* SBJsonStreamParser.h */; settings = {ATTRIBUTES = (Public, ); }; };
+		BC8851451391D6CD00370E55 /* SBJsonStreamParser.m in Sources */ = {isa = PBXBuildFile; fileRef = BC88512B1391D6CD00370E55 /* SBJsonStreamParser.m */; };
+		BC8851461391D6CD00370E55 /* SBJsonStreamParserAccumulator.h in Headers */ = {isa = PBXBuildFile; fileRef = BC88512C1391D6CD00370E55 /* SBJsonStreamParserAccumulator.h */; settings = {ATTRIBUTES = (Public, ); }; };
+		BC8851471391D6CD00370E55 /* SBJsonStreamParserAccumulator.m in Sources */ = {isa = PBXBuildFile; fileRef = BC88512D1391D6CD00370E55 /* SBJsonStreamParserAccumulator.m */; };
+		BC8851481391D6CD00370E55 /* SBJsonStreamParserAdapter.h in Headers */ = {isa = PBXBuildFile; fileRef = BC88512E1391D6CD00370E55 /* SBJsonStreamParserAdapter.h */; settings = {ATTRIBUTES = (Public, ); }; };
+		BC8851491391D6CD00370E55 /* SBJsonStreamParserAdapter.m in Sources */ = {isa = PBXBuildFile; fileRef = BC88512F1391D6CD00370E55 /* SBJsonStreamParserAdapter.m */; };
+		BC88514A1391D6CD00370E55 /* SBJsonStreamParserState.h in Headers */ = {isa = PBXBuildFile; fileRef = BC8851301391D6CD00370E55 /* SBJsonStreamParserState.h */; };
+		BC88514B1391D6CD00370E55 /* SBJsonStreamParserState.m in Sources */ = {isa = PBXBuildFile; fileRef = BC8851311391D6CD00370E55 /* SBJsonStreamParserState.m */; };
+		BC88514C1391D6CD00370E55 /* SBJsonStreamWriter.h in Headers */ = {isa = PBXBuildFile; fileRef = BC8851321391D6CD00370E55 /* SBJsonStreamWriter.h */; settings = {ATTRIBUTES = (Public, ); }; };
+		BC88514D1391D6CD00370E55 /* SBJsonStreamWriter.m in Sources */ = {isa = PBXBuildFile; fileRef = BC8851331391D6CD00370E55 /* SBJsonStreamWriter.m */; };
+		BC88514E1391D6CD00370E55 /* SBJsonStreamWriterAccumulator.h in Headers */ = {isa = PBXBuildFile; fileRef = BC8851341391D6CD00370E55 /* SBJsonStreamWriterAccumulator.h */; settings = {ATTRIBUTES = (Public, ); }; };
+		BC88514F1391D6CD00370E55 /* SBJsonStreamWriterAccumulator.m in Sources */ = {isa = PBXBuildFile; fileRef = BC8851351391D6CD00370E55 /* SBJsonStreamWriterAccumulator.m */; };
+		BC8851501391D6CD00370E55 /* SBJsonStreamWriterState.h in Headers */ = {isa = PBXBuildFile; fileRef = BC8851361391D6CD00370E55 /* SBJsonStreamWriterState.h */; };
+		BC8851511391D6CD00370E55 /* SBJsonStreamWriterState.m in Sources */ = {isa = PBXBuildFile; fileRef = BC8851371391D6CD00370E55 /* SBJsonStreamWriterState.m */; };
+		BC8851521391D6CD00370E55 /* SBJsonTokeniser.h in Headers */ = {isa = PBXBuildFile; fileRef = BC8851381391D6CD00370E55 /* SBJsonTokeniser.h */; };
+		BC8851531391D6CD00370E55 /* SBJsonTokeniser.m in Sources */ = {isa = PBXBuildFile; fileRef = BC8851391391D6CD00370E55 /* SBJsonTokeniser.m */; };
+		BC8851541391D6CD00370E55 /* SBJsonWriter.h in Headers */ = {isa = PBXBuildFile; fileRef = BC88513A1391D6CD00370E55 /* SBJsonWriter.h */; settings = {ATTRIBUTES = (Public, ); }; };
+		BC8851551391D6CD00370E55 /* SBJsonWriter.m in Sources */ = {isa = PBXBuildFile; fileRef = BC88513B1391D6CD00370E55 /* SBJsonWriter.m */; };
+		BC8851561391D6CD00370E55 /* SBJsonUTF8Stream.h in Headers */ = {isa = PBXBuildFile; fileRef = BC88513C1391D6CD00370E55 /* SBJsonUTF8Stream.h */; };
+		BC8851571391D6CD00370E55 /* SBJsonUTF8Stream.m in Sources */ = {isa = PBXBuildFile; fileRef = BC88513D1391D6CD00370E55 /* SBJsonUTF8Stream.m */; };
+		BC8853271391D6DE00370E55 /* ErrorTest.m in Sources */ = {isa = PBXBuildFile; fileRef = BC88522B1391D6DD00370E55 /* ErrorTest.m */; };
+		BC8853281391D6DE00370E55 /* FormatTest.m in Sources */ = {isa = PBXBuildFile; fileRef = BC88522C1391D6DD00370E55 /* FormatTest.m */; };
+		BC8853291391D6DE00370E55 /* JsonCheckerTest.m in Sources */ = {isa = PBXBuildFile; fileRef = BC88522D1391D6DD00370E55 /* JsonCheckerTest.m */; };
+		BC88532A1391D6DE00370E55 /* JsonTestCase.m in Sources */ = {isa = PBXBuildFile; fileRef = BC88522F1391D6DD00370E55 /* JsonTestCase.m */; };
+		BC88532B1391D6DE00370E55 /* ProxyTest.m in Sources */ = {isa = PBXBuildFile; fileRef = BC8852301391D6DD00370E55 /* ProxyTest.m */; };
+		BC88532C1391D6DE00370E55 /* RoundTripTest.m in Sources */ = {isa = PBXBuildFile; fileRef = BC8852311391D6DD00370E55 /* RoundTripTest.m */; };
+		BC8853911391D6DE00370E55 /* StreamParserIntegrationTest.m in Sources */ = {isa = PBXBuildFile; fileRef = BC8852971391D6DE00370E55 /* StreamParserIntegrationTest.m */; };
+		BC8853921391D6DE00370E55 /* WriterTest.m in Sources */ = {isa = PBXBuildFile; fileRef = BC8852981391D6DE00370E55 /* WriterTest.m */; };
+		BCADB7CE139210C90057A705 /* SBJson.h in Headers */ = {isa = PBXBuildFile; fileRef = BC8851271391D6CD00370E55 /* SBJson.h */; settings = {ATTRIBUTES = (Public, ); }; };
+		BCADB7CF139210C90057A705 /* NSObject+SBJson.h in Headers */ = {isa = PBXBuildFile; fileRef = BC8851251391D6CD00370E55 /* NSObject+SBJson.h */; settings = {ATTRIBUTES = (Public, ); }; };
+		BCADB7D0139210C90057A705 /* SBJsonParser.h in Headers */ = {isa = PBXBuildFile; fileRef = BC8851281391D6CD00370E55 /* SBJsonParser.h */; settings = {ATTRIBUTES = (Public, ); }; };
+		BCADB7D1139210C90057A705 /* SBJsonStreamParser.h in Headers */ = {isa = PBXBuildFile; fileRef = BC88512A1391D6CD00370E55 /* SBJsonStreamParser.h */; settings = {ATTRIBUTES = (Public, ); }; };
+		BCADB7D2139210C90057A705 /* SBJsonStreamParserAccumulator.h in Headers */ = {isa = PBXBuildFile; fileRef = BC88512C1391D6CD00370E55 /* SBJsonStreamParserAccumulator.h */; settings = {ATTRIBUTES = (Public, ); }; };
+		BCADB7D3139210C90057A705 /* SBJsonStreamParserAdapter.h in Headers */ = {isa = PBXBuildFile; fileRef = BC88512E1391D6CD00370E55 /* SBJsonStreamParserAdapter.h */; settings = {ATTRIBUTES = (Public, ); }; };
+		BCADB7D4139210C90057A705 /* SBJsonStreamParserState.h in Headers */ = {isa = PBXBuildFile; fileRef = BC8851301391D6CD00370E55 /* SBJsonStreamParserState.h */; };
+		BCADB7D5139210C90057A705 /* SBJsonStreamWriter.h in Headers */ = {isa = PBXBuildFile; fileRef = BC8851321391D6CD00370E55 /* SBJsonStreamWriter.h */; settings = {ATTRIBUTES = (Public, ); }; };
+		BCADB7D6139210C90057A705 /* SBJsonStreamWriterAccumulator.h in Headers */ = {isa = PBXBuildFile; fileRef = BC8851341391D6CD00370E55 /* SBJsonStreamWriterAccumulator.h */; settings = {ATTRIBUTES = (Public, ); }; };
+		BCADB7D7139210C90057A705 /* SBJsonStreamWriterState.h in Headers */ = {isa = PBXBuildFile; fileRef = BC8851361391D6CD00370E55 /* SBJsonStreamWriterState.h */; };
+		BCADB7D8139210C90057A705 /* SBJsonTokeniser.h in Headers */ = {isa = PBXBuildFile; fileRef = BC8851381391D6CD00370E55 /* SBJsonTokeniser.h */; };
+		BCADB7D9139210C90057A705 /* SBJsonWriter.h in Headers */ = {isa = PBXBuildFile; fileRef = BC88513A1391D6CD00370E55 /* SBJsonWriter.h */; settings = {ATTRIBUTES = (Public, ); }; };
+		BCADB7DA139210C90057A705 /* SBJsonUTF8Stream.h in Headers */ = {isa = PBXBuildFile; fileRef = BC88513C1391D6CD00370E55 /* SBJsonUTF8Stream.h */; };
+		BCC2626313920EE8003D9994 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BC8853981391D74C00370E55 /* Foundation.framework */; };
+		BCC2626413920F25003D9994 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BC8853981391D74C00370E55 /* Foundation.framework */; };
+		BCC2626A13920FC7003D9994 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BC8853981391D74C00370E55 /* Foundation.framework */; };
+		BCC2627613920FC7003D9994 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BC8853981391D74C00370E55 /* Foundation.framework */; };
+		BCC2627B13920FC7003D9994 /* libsbjson-ios.a in Frameworks */ = {isa = PBXBuildFile; fileRef = BCC2626913920FC7003D9994 /* libsbjson-ios.a */; };
+		BCC2628113920FC7003D9994 /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = BCC2627F13920FC7003D9994 /* InfoPlist.strings */; };
+		BCC2628D13921035003D9994 /* NSObject+SBJson.m in Sources */ = {isa = PBXBuildFile; fileRef = BC8851261391D6CD00370E55 /* NSObject+SBJson.m */; };
+		BCC2628E13921035003D9994 /* SBJsonParser.m in Sources */ = {isa = PBXBuildFile; fileRef = BC8851291391D6CD00370E55 /* SBJsonParser.m */; };
+		BCC2628F13921035003D9994 /* SBJsonStreamParser.m in Sources */ = {isa = PBXBuildFile; fileRef = BC88512B1391D6CD00370E55 /* SBJsonStreamParser.m */; };
+		BCC2629013921035003D9994 /* SBJsonStreamParserAccumulator.m in Sources */ = {isa = PBXBuildFile; fileRef = BC88512D1391D6CD00370E55 /* SBJsonStreamParserAccumulator.m */; };
+		BCC2629113921035003D9994 /* SBJsonStreamParserAdapter.m in Sources */ = {isa = PBXBuildFile; fileRef = BC88512F1391D6CD00370E55 /* SBJsonStreamParserAdapter.m */; };
+		BCC2629213921035003D9994 /* SBJsonStreamParserState.m in Sources */ = {isa = PBXBuildFile; fileRef = BC8851311391D6CD00370E55 /* SBJsonStreamParserState.m */; };
+		BCC2629313921035003D9994 /* SBJsonStreamWriter.m in Sources */ = {isa = PBXBuildFile; fileRef = BC8851331391D6CD00370E55 /* SBJsonStreamWriter.m */; };
+		BCC2629413921035003D9994 /* SBJsonStreamWriterAccumulator.m in Sources */ = {isa = PBXBuildFile; fileRef = BC8851351391D6CD00370E55 /* SBJsonStreamWriterAccumulator.m */; };
+		BCC2629513921035003D9994 /* SBJsonStreamWriterState.m in Sources */ = {isa = PBXBuildFile; fileRef = BC8851371391D6CD00370E55 /* SBJsonStreamWriterState.m */; };
+		BCC2629613921035003D9994 /* SBJsonTokeniser.m in Sources */ = {isa = PBXBuildFile; fileRef = BC8851391391D6CD00370E55 /* SBJsonTokeniser.m */; };
+		BCC2629713921035003D9994 /* SBJsonWriter.m in Sources */ = {isa = PBXBuildFile; fileRef = BC88513B1391D6CD00370E55 /* SBJsonWriter.m */; };
+		BCC2629813921035003D9994 /* SBJsonUTF8Stream.m in Sources */ = {isa = PBXBuildFile; fileRef = BC88513D1391D6CD00370E55 /* SBJsonUTF8Stream.m */; };
+/* End PBXBuildFile section */
+
+/* Begin PBXContainerItemProxy section */
+		BC1232541391D5CC00131607 /* PBXContainerItemProxy */ = {
+			isa = PBXContainerItemProxy;
+			containerPortal = BC1232331391D5CC00131607 /* Project object */;
+			proxyType = 1;
+			remoteGlobalIDString = BC12323C1391D5CC00131607;
+			remoteInfo = SBJson;
+		};
+		BCC2627913920FC7003D9994 /* PBXContainerItemProxy */ = {
+			isa = PBXContainerItemProxy;
+			containerPortal = BC1232331391D5CC00131607 /* Project object */;
+			proxyType = 1;
+			remoteGlobalIDString = BCC2626813920FC7003D9994;
+			remoteInfo = "sbjson-ios";
+		};
+/* End PBXContainerItemProxy section */
+
+/* Begin PBXFileReference section */
+		3BB5955B14EAA4B8001BE91E /* SortedFormatTest.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SortedFormatTest.m; sourceTree = "<group>"; };
+		BC12323D1391D5CC00131607 /* SBJson.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = SBJson.framework; sourceTree = BUILT_PRODUCTS_DIR; };
+		BC1232481391D5CC00131607 /* SBJson-Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = "SBJson-Info.plist"; sourceTree = "<group>"; };
+		BC12324A1391D5CC00131607 /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/InfoPlist.strings; sourceTree = "<group>"; };
+		BC12324C1391D5CC00131607 /* SBJson-Prefix.pch */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "SBJson-Prefix.pch"; sourceTree = "<group>"; };
+		BC1232521391D5CC00131607 /* SBJsonTests.octest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = SBJsonTests.octest; sourceTree = BUILT_PRODUCTS_DIR; };
+		BC1232591391D5CC00131607 /* SBJsonTests-Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = "SBJsonTests-Info.plist"; sourceTree = "<group>"; };
+		BC12325B1391D5CC00131607 /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/InfoPlist.strings; sourceTree = "<group>"; };
+		BC12325D1391D5CC00131607 /* SBJsonTests-Prefix.pch */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "SBJsonTests-Prefix.pch"; sourceTree = "<group>"; };
+		BC8851251391D6CD00370E55 /* NSObject+SBJson.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "NSObject+SBJson.h"; sourceTree = "<group>"; };
+		BC8851261391D6CD00370E55 /* NSObject+SBJson.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "NSObject+SBJson.m"; sourceTree = "<group>"; };
+		BC8851271391D6CD00370E55 /* SBJson.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SBJson.h; sourceTree = "<group>"; };
+		BC8851281391D6CD00370E55 /* SBJsonParser.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SBJsonParser.h; sourceTree = "<group>"; };
+		BC8851291391D6CD00370E55 /* SBJsonParser.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SBJsonParser.m; sourceTree = "<group>"; };
+		BC88512A1391D6CD00370E55 /* SBJsonStreamParser.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SBJsonStreamParser.h; sourceTree = "<group>"; };
+		BC88512B1391D6CD00370E55 /* SBJsonStreamParser.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SBJsonStreamParser.m; sourceTree = "<group>"; };
+		BC88512C1391D6CD00370E55 /* SBJsonStreamParserAccumulator.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SBJsonStreamParserAccumulator.h; sourceTree = "<group>"; };
+		BC88512D1391D6CD00370E55 /* SBJsonStreamParserAccumulator.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SBJsonStreamParserAccumulator.m; sourceTree = "<group>"; };
+		BC88512E1391D6CD00370E55 /* SBJsonStreamParserAdapter.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SBJsonStreamParserAdapter.h; sourceTree = "<group>"; };
+		BC88512F1391D6CD00370E55 /* SBJsonStreamParserAdapter.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SBJsonStreamParserAdapter.m; sourceTree = "<group>"; };
+		BC8851301391D6CD00370E55 /* SBJsonStreamParserState.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SBJsonStreamParserState.h; sourceTree = "<group>"; };
+		BC8851311391D6CD00370E55 /* SBJsonStreamParserState.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SBJsonStreamParserState.m; sourceTree = "<group>"; };
+		BC8851321391D6CD00370E55 /* SBJsonStreamWriter.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SBJsonStreamWriter.h; sourceTree = "<group>"; };
+		BC8851331391D6CD00370E55 /* SBJsonStreamWriter.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SBJsonStreamWriter.m; sourceTree = "<group>"; };
+		BC8851341391D6CD00370E55 /* SBJsonStreamWriterAccumulator.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SBJsonStreamWriterAccumulator.h; sourceTree = "<group>"; };
+		BC8851351391D6CD00370E55 /* SBJsonStreamWriterAccumulator.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SBJsonStreamWriterAccumulator.m; sourceTree = "<group>"; };
+		BC8851361391D6CD00370E55 /* SBJsonStreamWriterState.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SBJsonStreamWriterState.h; sourceTree = "<group>"; };
+		BC8851371391D6CD00370E55 /* SBJsonStreamWriterState.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SBJsonStreamWriterState.m; sourceTree = "<group>"; };
+		BC8851381391D6CD00370E55 /* SBJsonTokeniser.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SBJsonTokeniser.h; sourceTree = "<group>"; };
+		BC8851391391D6CD00370E55 /* SBJsonTokeniser.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SBJsonTokeniser.m; sourceTree = "<group>"; };
+		BC88513A1391D6CD00370E55 /* SBJsonWriter.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SBJsonWriter.h; sourceTree = "<group>"; };
+		BC88513B1391D6CD00370E55 /* SBJsonWriter.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SBJsonWriter.m; sourceTree = "<group>"; };
+		BC88513C1391D6CD00370E55 /* SBJsonUTF8Stream.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SBJsonUTF8Stream.h; sourceTree = "<group>"; };
+		BC88513D1391D6CD00370E55 /* SBJsonUTF8Stream.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SBJsonUTF8Stream.m; sourceTree = "<group>"; };
+		BC88522B1391D6DD00370E55 /* ErrorTest.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ErrorTest.m; sourceTree = "<group>"; };
+		BC88522C1391D6DD00370E55 /* FormatTest.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = FormatTest.m; sourceTree = "<group>"; };
+		BC88522D1391D6DD00370E55 /* JsonCheckerTest.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = JsonCheckerTest.m; sourceTree = "<group>"; };
+		BC88522E1391D6DD00370E55 /* JsonTestCase.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = JsonTestCase.h; sourceTree = "<group>"; };
+		BC88522F1391D6DD00370E55 /* JsonTestCase.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = JsonTestCase.m; sourceTree = "<group>"; };
+		BC8852301391D6DD00370E55 /* ProxyTest.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ProxyTest.m; sourceTree = "<group>"; };
+		BC8852311391D6DD00370E55 /* RoundTripTest.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = RoundTripTest.m; sourceTree = "<group>"; };
+		BC8852971391D6DE00370E55 /* StreamParserIntegrationTest.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = StreamParserIntegrationTest.m; sourceTree = "<group>"; };
+		BC8852981391D6DE00370E55 /* WriterTest.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = WriterTest.m; sourceTree = "<group>"; };
+		BC8853981391D74C00370E55 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; };
+		BCC2626913920FC7003D9994 /* libsbjson-ios.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libsbjson-ios.a"; sourceTree = BUILT_PRODUCTS_DIR; };
+		BCC2626D13920FC7003D9994 /* sbjson-ios-Prefix.pch */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "sbjson-ios-Prefix.pch"; sourceTree = "<group>"; };
+		BCC2627313920FC7003D9994 /* sbjson-iosTests.octest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = "sbjson-iosTests.octest"; sourceTree = BUILT_PRODUCTS_DIR; };
+		BCC2627E13920FC7003D9994 /* sbjson-iosTests-Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = "sbjson-iosTests-Info.plist"; sourceTree = "<group>"; };
+		BCC2628013920FC7003D9994 /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/InfoPlist.strings; sourceTree = "<group>"; };
+		BCC2628213920FC7003D9994 /* sbjson-iosTests-Prefix.pch */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "sbjson-iosTests-Prefix.pch"; sourceTree = "<group>"; };
+/* End PBXFileReference section */
+
+/* Begin PBXFrameworksBuildPhase section */
+		BC1232391391D5CC00131607 /* Frameworks */ = {
+			isa = PBXFrameworksBuildPhase;
+			buildActionMask = 2147483647;
+			files = (
+				BCC2626313920EE8003D9994 /* Foundation.framework in Frameworks */,
+			);
+			runOnlyForDeploymentPostprocessing = 0;
+		};
+		BC12324E1391D5CC00131607 /* Frameworks */ = {
+			isa = PBXFrameworksBuildPhase;
+			buildActionMask = 2147483647;
+			files = (
+				BC1232561391D5CC00131607 /* SBJson.framework in Frameworks */,
+				BCC2626413920F25003D9994 /* Foundation.framework in Frameworks */,
+			);
+			runOnlyForDeploymentPostprocessing = 0;
+		};
+		BCC2626613920FC7003D9994 /* Frameworks */ = {
+			isa = PBXFrameworksBuildPhase;
+			buildActionMask = 2147483647;
+			files = (
+				BCC2626A13920FC7003D9994 /* Foundation.framework in Frameworks */,
+			);
+			runOnlyForDeploymentPostprocessing = 0;
+		};
+		BCC2626F13920FC7003D9994 /* Frameworks */ = {
+			isa = PBXFrameworksBuildPhase;
+			buildActionMask = 2147483647;
+			files = (
+				BCC2627613920FC7003D9994 /* Foundation.framework in Frameworks */,
+				BCC2627B13920FC7003D9994 /* libsbjson-ios.a in Frameworks */,
+			);
+			runOnlyForDeploymentPostprocessing = 0;
+		};
+/* End PBXFrameworksBuildPhase section */
+
+/* Begin PBXGroup section */
+		A0E92A8E16276E3F0091EDF6 /* Assets */ = {
+			isa = PBXGroup;
+			children = (
+			);
+			name = Assets;
+			sourceTree = "<group>";
+		};
+		BC1232311391D5CC00131607 = {
+			isa = PBXGroup;
+			children = (
+				BC8851231391D6CD00370E55 /* Classes */,
+				BC8851581391D6DD00370E55 /* Tests */,
+				BC1232461391D5CC00131607 /* SBJson */,
+				BC1232571391D5CC00131607 /* SBJsonTests */,
+				BCC2626B13920FC7003D9994 /* sbjson-ios */,
+				BCC2627C13920FC7003D9994 /* sbjson-iosTests */,
+				BC12323F1391D5CC00131607 /* Frameworks */,
+				BC12323E1391D5CC00131607 /* Products */,
+			);
+			sourceTree = "<group>";
+		};
+		BC12323E1391D5CC00131607 /* Products */ = {
+			isa = PBXGroup;
+			children = (
+				BC12323D1391D5CC00131607 /* SBJson.framework */,
+				BC1232521391D5CC00131607 /* SBJsonTests.octest */,
+				BCC2626913920FC7003D9994 /* libsbjson-ios.a */,
+				BCC2627313920FC7003D9994 /* sbjson-iosTests.octest */,
+			);
+			name = Products;
+			sourceTree = "<group>";
+		};
+		BC12323F1391D5CC00131607 /* Frameworks */ = {
+			isa = PBXGroup;
+			children = (
+				BC8853981391D74C00370E55 /* Foundation.framework */,
+			);
+			name = Frameworks;
+			sourceTree = "<group>";
+		};
+		BC1232461391D5CC00131607 /* SBJson */ = {
+			isa = PBXGroup;
+			children = (
+				BC1232471391D5CC00131607 /* Supporting Files */,
+			);
+			path = SBJson;
+			sourceTree = "<group>";
+		};
+		BC1232471391D5CC00131607 /* Supporting Files */ = {
+			isa = PBXGroup;
+			children = (
+				BC1232481391D5CC00131607 /* SBJson-Info.plist */,
+				BC1232491391D5CC00131607 /* InfoPlist.strings */,
+				BC12324C1391D5CC00131607 /* SBJson-Prefix.pch */,
+			);
+			name = "Supporting Files";
+			sourceTree = "<group>";
+		};
+		BC1232571391D5CC00131607 /* SBJsonTests */ = {
+			isa = PBXGroup;
+			children = (
+				BC1232581391D5CC00131607 /* Supporting Files */,
+			);
+			path = SBJsonTests;
+			sourceTree = "<group>";
+		};
+		BC1232581391D5CC00131607 /* Supporting Files */ = {
+			isa = PBXGroup;
+			children = (
+				BC1232591391D5CC00131607 /* SBJsonTests-Info.plist */,
+				BC12325A1391D5CC00131607 /* InfoPlist.strings */,
+				BC12325D1391D5CC00131607 /* SBJsonTests-Prefix.pch */,
+			);
+			name = "Supporting Files";
+			sourceTree = "<group>";
+		};
+		BC8851231391D6CD00370E55 /* Classes */ = {
+			isa = PBXGroup;
+			children = (
+				BC8851271391D6CD00370E55 /* SBJson.h */,
+				BC8851251391D6CD00370E55 /* NSObject+SBJson.h */,
+				BC8851261391D6CD00370E55 /* NSObject+SBJson.m */,
+				BCADB7DD139213960057A705 /* Parser */,
+				BCADB7DE139213A10057A705 /* Writer */,
+			);
+			path = Classes;
+			sourceTree = "<group>";
+		};
+		BC8851581391D6DD00370E55 /* Tests */ = {
+			isa = PBXGroup;
+			children = (
+				A0E92A8E16276E3F0091EDF6 /* Assets */,
+				BC88522B1391D6DD00370E55 /* ErrorTest.m */,
+				BC88522C1391D6DD00370E55 /* FormatTest.m */,
+				BC88522D1391D6DD00370E55 /* JsonCheckerTest.m */,
+				BC88522E1391D6DD00370E55 /* JsonTestCase.h */,
+				BC88522F1391D6DD00370E55 /* JsonTestCase.m */,
+				BC8852301391D6DD00370E55 /* ProxyTest.m */,
+				BC8852311391D6DD00370E55 /* RoundTripTest.m */,
+				BC8852971391D6DE00370E55 /* StreamParserIntegrationTest.m */,
+				BC8852981391D6DE00370E55 /* WriterTest.m */,
+				3BB5955B14EAA4B8001BE91E /* SortedFormatTest.m */,
+			);
+			path = Tests;
+			sourceTree = "<group>";
+		};
+		BCADB7DB139213450057A705 /* Private */ = {
+			isa = PBXGroup;
+			children = (
+				BC8851361391D6CD00370E55 /* SBJsonStreamWriterState.h */,
+				BC8851371391D6CD00370E55 /* SBJsonStreamWriterState.m */,
+			);
+			name = Private;
+			sourceTree = "<group>";
+		};
+		BCADB7DD139213960057A705 /* Parser */ = {
+			isa = PBXGroup;
+			children = (
+				BCADB7DF139213D70057A705 /* Private */,
+				BC8851281391D6CD00370E55 /* SBJsonParser.h */,
+				BC8851291391D6CD00370E55 /* SBJsonParser.m */,
+				BC88512A1391D6CD00370E55 /* SBJsonStreamParser.h */,
+				BC88512B1391D6CD00370E55 /* SBJsonStreamParser.m */,
+				BC88512C1391D6CD00370E55 /* SBJsonStreamParserAccumulator.h */,
+				BC88512D1391D6CD00370E55 /* SBJsonStreamParserAccumulator.m */,
+				BC88512E1391D6CD00370E55 /* SBJsonStreamParserAdapter.h */,
+				BC88512F1391D6CD00370E55 /* SBJsonStreamParserAdapter.m */,
+			);
+			name = Parser;
+			sourceTree = "<group>";
+		};
+		BCADB7DE139213A10057A705 /* Writer */ = {
+			isa = PBXGroup;
+			children = (
+				BCADB7DB139213450057A705 /* Private */,
+				BC88513A1391D6CD00370E55 /* SBJsonWriter.h */,
+				BC88513B1391D6CD00370E55 /* SBJsonWriter.m */,
+				BC8851321391D6CD00370E55 /* SBJsonStreamWriter.h */,
+				BC8851331391D6CD00370E55 /* SBJsonStreamWriter.m */,
+				BC8851341391D6CD00370E55 /* SBJsonStreamWriterAccumulator.h */,
+				BC8851351391D6CD00370E55 /* SBJsonStreamWriterAccumulator.m */,
+			);
+			name = Writer;
+			sourceTree = "<group>";
+		};
+		BCADB7DF139213D70057A705 /* Private */ = {
+			isa = PBXGroup;
+			children = (
+				BC8851301391D6CD00370E55 /* SBJsonStreamParserState.h */,
+				BC8851311391D6CD00370E55 /* SBJsonStreamParserState.m */,
+				BC8851381391D6CD00370E55 /* SBJsonTokeniser.h */,
+				BC8851391391D6CD00370E55 /* SBJsonTokeniser.m */,
+				BC88513C1391D6CD00370E55 /* SBJsonUTF8Stream.h */,
+				BC88513D1391D6CD00370E55 /* SBJsonUTF8Stream.m */,
+			);
+			name = Private;
+			sourceTree = "<group>";
+		};
+		BCC2626B13920FC7003D9994 /* sbjson-ios */ = {
+			isa = PBXGroup;
+			children = (
+				BCC2626C13920FC7003D9994 /* Supporting Files */,
+			);
+			path = "sbjson-ios";
+			sourceTree = "<group>";
+		};
+		BCC2626C13920FC7003D9994 /* Supporting Files */ = {
+			isa = PBXGroup;
+			children = (
+				BCC2626D13920FC7003D9994 /* sbjson-ios-Prefix.pch */,
+			);
+			name = "Supporting Files";
+			sourceTree = "<group>";
+		};
+		BCC2627C13920FC7003D9994 /* sbjson-iosTests */ = {
+			isa = PBXGroup;
+			children = (
+				BCC2627D13920FC7003D9994 /* Supporting Files */,
+			);
+			path = "sbjson-iosTests";
+			sourceTree = "<group>";
+		};
+		BCC2627D13920FC7003D9994 /* Supporting Files */ = {
+			isa = PBXGroup;
+			children = (
+				BCC2627E13920FC7003D9994 /* sbjson-iosTests-Info.plist */,
+				BCC2627F13920FC7003D9994 /* InfoPlist.strings */,
+				BCC2628213920FC7003D9994 /* sbjson-iosTests-Prefix.pch */,
+			);
+			name = "Supporting Files";
+			sourceTree = "<group>";
+		};
+/* End PBXGroup section */
+
+/* Begin PBXHeadersBuildPhase section */
+		BC12323A1391D5CC00131607 /* Headers */ = {
+			isa = PBXHeadersBuildPhase;
+			buildActionMask = 2147483647;
+			files = (
+				BC88513F1391D6CD00370E55 /* NSObject+SBJson.h in Headers */,
+				BC8851421391D6CD00370E55 /* SBJsonParser.h in Headers */,
+				BC8851441391D6CD00370E55 /* SBJsonStreamParser.h in Headers */,
+				BC8851461391D6CD00370E55 /* SBJsonStreamParserAccumulator.h in Headers */,
+				BC8851481391D6CD00370E55 /* SBJsonStreamParserAdapter.h in Headers */,
+				BC88514C1391D6CD00370E55 /* SBJsonStreamWriter.h in Headers */,
+				BC88514E1391D6CD00370E55 /* SBJsonStreamWriterAccumulator.h in Headers */,
+				BC8851541391D6CD00370E55 /* SBJsonWriter.h in Headers */,
+				BC8851411391D6CD00370E55 /* SBJson.h in Headers */,
+				BC88514A1391D6CD00370E55 /* SBJsonStreamParserState.h in Headers */,
+				BC8851501391D6CD00370E55 /* SBJsonStreamWriterState.h in Headers */,
+				BC8851521391D6CD00370E55 /* SBJsonTokeniser.h in Headers */,
+				BC8851561391D6CD00370E55 /* SBJsonUTF8Stream.h in Headers */,
+			);
+			runOnlyForDeploymentPostprocessing = 0;
+		};
+		BCC2626713920FC7003D9994 /* Headers */ = {
+			isa = PBXHeadersBuildPhase;
+			buildActionMask = 2147483647;
+			files = (
+				BCADB7CE139210C90057A705 /* SBJson.h in Headers */,
+				BCADB7D0139210C90057A705 /* SBJsonParser.h in Headers */,
+				BCADB7D9139210C90057A705 /* SBJsonWriter.h in Headers */,
+				BCADB7D1139210C90057A705 /* SBJsonStreamParser.h in Headers */,
+				BCADB7D3139210C90057A705 /* SBJsonStreamParserAdapter.h in Headers */,
+				BCADB7D5139210C90057A705 /* SBJsonStreamWriter.h in Headers */,
+				BCADB7CF139210C90057A705 /* NSObject+SBJson.h in Headers */,
+				BCADB7D2139210C90057A705 /* SBJsonStreamParserAccumulator.h in Headers */,
+				BCADB7D6139210C90057A705 /* SBJsonStreamWriterAccumulator.h in Headers */,
+				BCADB7D4139210C90057A705 /* SBJsonStreamParserState.h in Headers */,
+				BCADB7D7139210C90057A705 /* SBJsonStreamWriterState.h in Headers */,
+				BCADB7D8139210C90057A705 /* SBJsonTokeniser.h in Headers */,
+				BCADB7DA139210C90057A705 /* SBJsonUTF8Stream.h in Headers */,
+			);
+			runOnlyForDeploymentPostprocessing = 0;
+		};
+/* End PBXHeadersBuildPhase section */
+
+/* Begin PBXNativeTarget section */
+		BC12323C1391D5CC00131607 /* SBJson */ = {
+			isa = PBXNativeTarget;
+			buildConfigurationList = BC1232641391D5CC00131607 /* Build configuration list for PBXNativeTarget "SBJson" */;
+			buildPhases = (
+				BC1232381391D5CC00131607 /* Sources */,
+				BC1232391391D5CC00131607 /* Frameworks */,
+				BC12323A1391D5CC00131607 /* Headers */,
+				BC12323B1391D5CC00131607 /* Resources */,
+			);
+			buildRules = (
+			);
+			dependencies = (
+			);
+			name = SBJson;
+			productName = SBJson;
+			productReference = BC12323D1391D5CC00131607 /* SBJson.framework */;
+			productType = "com.apple.product-type.framework";
+		};
+		BC1232511391D5CC00131607 /* SBJsonTests */ = {
+			isa = PBXNativeTarget;
+			buildConfigurationList = BC1232671391D5CC00131607 /* Build configuration list for PBXNativeTarget "SBJsonTests" */;
+			buildPhases = (
+				BC12324D1391D5CC00131607 /* Sources */,
+				BC12324E1391D5CC00131607 /* Frameworks */,
+				BC12324F1391D5CC00131607 /* Resources */,
+				BC1232501391D5CC00131607 /* ShellScript */,
+			);
+			buildRules = (
+			);
+			dependencies = (
+				BC1232551391D5CC00131607 /* PBXTargetDependency */,
+			);
+			name = SBJsonTests;
+			productName = SBJsonTests;
+			productReference = BC1232521391D5CC00131607 /* SBJsonTests.octest */;
+			productType = "com.apple.product-type.bundle";
+		};
+		BCC2626813920FC7003D9994 /* sbjson-ios */ = {
+			isa = PBXNativeTarget;
+			buildConfigurationList = BCC2628713920FC7003D9994 /* Build configuration list for PBXNativeTarget "sbjson-ios" */;
+			buildPhases = (
+				BCC2626513920FC7003D9994 /* Sources */,
+				BCC2626613920FC7003D9994 /* Frameworks */,
+				BCC2626713920FC7003D9994 /* Headers */,
+			);
+			buildRules = (
+			);
+			dependencies = (
+			);
+			name = "sbjson-ios";
+			productName = "sbjson-ios";
+			productReference = BCC2626913920FC7003D9994 /* libsbjson-ios.a */;
+			productType = "com.apple.product-type.library.static";
+		};
+		BCC2627213920FC7003D9994 /* sbjson-iosTests */ = {
+			isa = PBXNativeTarget;
+			buildConfigurationList = BCC2628A13920FC7003D9994 /* Build configuration list for PBXNativeTarget "sbjson-iosTests" */;
+			buildPhases = (
+				BCC2626E13920FC7003D9994 /* Sources */,
+				BCC2626F13920FC7003D9994 /* Frameworks */,
+				BCC2627013920FC7003D9994 /* Resources */,
+				A0E92BF5162772BB0091EDF6 /* ShellScript */,
+				BCC2627113920FC7003D9994 /* ShellScript */,
+			);
+			buildRules = (
+			);
+			dependencies = (
+				BCC2627A13920FC7003D9994 /* PBXTargetDependency */,
+			);
+			name = "sbjson-iosTests";
+			productName = "sbjson-iosTests";
+			productReference = BCC2627313920FC7003D9994 /* sbjson-iosTests.octest */;
+			productType = "com.apple.product-type.bundle";
+		};
+/* End PBXNativeTarget section */
+
+/* Begin PBXProject section */
+		BC1232331391D5CC00131607 /* Project object */ = {
+			isa = PBXProject;
+			attributes = {
+				LastUpgradeCheck = 0450;
+				ORGANIZATIONNAME = "Stig Brautaset";
+			};
+			buildConfigurationList = BC1232361391D5CC00131607 /* Build configuration list for PBXProject "SBJson" */;
+			compatibilityVersion = "Xcode 3.2";
+			developmentRegion = English;
+			hasScannedForEncodings = 0;
+			knownRegions = (
+				en,
+			);
+			mainGroup = BC1232311391D5CC00131607;
+			productRefGroup = BC12323E1391D5CC00131607 /* Products */;
+			projectDirPath = "";
+			projectRoot = "";
+			targets = (
+				BC12323C1391D5CC00131607 /* SBJson */,
+				BC1232511391D5CC00131607 /* SBJsonTests */,
+				BCC2626813920FC7003D9994 /* sbjson-ios */,
+				BCC2627213920FC7003D9994 /* sbjson-iosTests */,
+			);
+		};
+/* End PBXProject section */
+
+/* Begin PBXResourcesBuildPhase section */
+		BC12323B1391D5CC00131607 /* Resources */ = {
+			isa = PBXResourcesBuildPhase;
+			buildActionMask = 2147483647;
+			files = (
+				BC12324B1391D5CC00131607 /* InfoPlist.strings in Resources */,
+			);
+			runOnlyForDeploymentPostprocessing = 0;
+		};
+		BC12324F1391D5CC00131607 /* Resources */ = {
+			isa = PBXResourcesBuildPhase;
+			buildActionMask = 2147483647;
+			files = (
+				BC12325C1391D5CC00131607 /* InfoPlist.strings in Resources */,
+			);
+			runOnlyForDeploymentPostprocessing = 0;
+		};
+		BCC2627013920FC7003D9994 /* Resources */ = {
+			isa = PBXResourcesBuildPhase;
+			buildActionMask = 2147483647;
+			files = (
+				BCC2628113920FC7003D9994 /* InfoPlist.strings in Resources */,
+			);
+			runOnlyForDeploymentPostprocessing = 0;
+		};
+/* End PBXResourcesBuildPhase section */
+
+/* Begin PBXShellScriptBuildPhase section */
+		A0E92BF5162772BB0091EDF6 /* ShellScript */ = {
+			isa = PBXShellScriptBuildPhase;
+			buildActionMask = 2147483647;
+			files = (
+			);
+			inputPaths = (
+				"",
+			);
+			outputPaths = (
+			);
+			runOnlyForDeploymentPostprocessing = 0;
+			shellPath = /bin/sh;
+			shellScript = "mkdir -p \"${BUILT_PRODUCTS_DIR}/${CONTENTS_FOLDER_PATH}/Tests/\"\ncp -r \"${PROJECT_DIR}/Tests/Data/\" \"${BUILT_PRODUCTS_DIR}/${CONTENTS_FOLDER_PATH}/Tests/Data\"\ncp -r \"${PROJECT_DIR}/Tests/Stream/\" \"${BUILT_PRODUCTS_DIR}/${CONTENTS_FOLDER_PATH}/Tests/Stream\"";
+		};
+		BC1232501391D5CC00131607 /* ShellScript */ = {
+			isa = PBXShellScriptBuildPhase;
+			buildActionMask = 2147483647;
+			files = (
+			);
+			inputPaths = (
+			);
+			outputPaths = (
+			);
+			runOnlyForDeploymentPostprocessing = 0;
+			shellPath = /bin/sh;
+			shellScript = "# Run the unit tests in this test bundle.\n\"${SYSTEM_DEVELOPER_DIR}/Tools/RunUnitTests\"\n";
+		};
+		BCC2627113920FC7003D9994 /* ShellScript */ = {
+			isa = PBXShellScriptBuildPhase;
+			buildActionMask = 2147483647;
+			files = (
+			);
+			inputPaths = (
+			);
+			outputPaths = (
+			);
+			runOnlyForDeploymentPostprocessing = 0;
+			shellPath = /bin/sh;
+			shellScript = "# Run the unit tests in this test bundle.\n\"${SYSTEM_DEVELOPER_DIR}/Tools/RunUnitTests\"\n";
+		};
+/* End PBXShellScriptBuildPhase section */
+
+/* Begin PBXSourcesBuildPhase section */
+		BC1232381391D5CC00131607 /* Sources */ = {
+			isa = PBXSourcesBuildPhase;
+			buildActionMask = 2147483647;
+			files = (
+				BC8851401391D6CD00370E55 /* NSObject+SBJson.m in Sources */,
+				BC8851431391D6CD00370E55 /* SBJsonParser.m in Sources */,
+				BC8851451391D6CD00370E55 /* SBJsonStreamParser.m in Sources */,
+				BC8851471391D6CD00370E55 /* SBJsonStreamParserAccumulator.m in Sources */,
+				BC8851491391D6CD00370E55 /* SBJsonStreamParserAdapter.m in Sources */,
+				BC88514B1391D6CD00370E55 /* SBJsonStreamParserState.m in Sources */,
+				BC88514D1391D6CD00370E55 /* SBJsonStreamWriter.m in Sources */,
+				BC88514F1391D6CD00370E55 /* SBJsonStreamWriterAccumulator.m in Sources */,
+				BC8851511391D6CD00370E55 /* SBJsonStreamWriterState.m in Sources */,
+				BC8851531391D6CD00370E55 /* SBJsonTokeniser.m in Sources */,
+				BC8851551391D6CD00370E55 /* SBJsonWriter.m in Sources */,
+				BC8851571391D6CD00370E55 /* SBJsonUTF8Stream.m in Sources */,
+			);
+			runOnlyForDeploymentPostprocessing = 0;
+		};
+		BC12324D1391D5CC00131607 /* Sources */ = {
+			isa = PBXSourcesBuildPhase;
+			buildActionMask = 2147483647;
+			files = (
+				BC8853271391D6DE00370E55 /* ErrorTest.m in Sources */,
+				BC8853281391D6DE00370E55 /* FormatTest.m in Sources */,
+				BC8853291391D6DE00370E55 /* JsonCheckerTest.m in Sources */,
+				BC88532A1391D6DE00370E55 /* JsonTestCase.m in Sources */,
+				BC88532B1391D6DE00370E55 /* ProxyTest.m in Sources */,
+				BC88532C1391D6DE00370E55 /* RoundTripTest.m in Sources */,
+				BC8853911391D6DE00370E55 /* StreamParserIntegrationTest.m in Sources */,
+				BC8853921391D6DE00370E55 /* WriterTest.m in Sources */,
+				3BB5955C14EAA4B8001BE91E /* SortedFormatTest.m in Sources */,
+			);
+			runOnlyForDeploymentPostprocessing = 0;
+		};
+		BCC2626513920FC7003D9994 /* Sources */ = {
+			isa = PBXSourcesBuildPhase;
+			buildActionMask = 2147483647;
+			files = (
+				BCC2628D13921035003D9994 /* NSObject+SBJson.m in Sources */,
+				BCC2628E13921035003D9994 /* SBJsonParser.m in Sources */,
+				BCC2628F13921035003D9994 /* SBJsonStreamParser.m in Sources */,
+				BCC2629013921035003D9994 /* SBJsonStreamParserAccumulator.m in Sources */,
+				BCC2629113921035003D9994 /* SBJsonStreamParserAdapter.m in Sources */,
+				BCC2629213921035003D9994 /* SBJsonStreamParserState.m in Sources */,
+				BCC2629313921035003D9994 /* SBJsonStreamWriter.m in Sources */,
+				BCC2629413921035003D9994 /* SBJsonStreamWriterAccumulator.m in Sources */,
+				BCC2629513921035003D9994 /* SBJsonStreamWriterState.m in Sources */,
+				BCC2629613921035003D9994 /* SBJsonTokeniser.m in Sources */,
+				BCC2629713921035003D9994 /* SBJsonWriter.m in Sources */,
+				BCC2629813921035003D9994 /* SBJsonUTF8Stream.m in Sources */,
+			);
+			runOnlyForDeploymentPostprocessing = 0;
+		};
+		BCC2626E13920FC7003D9994 /* Sources */ = {
+			isa = PBXSourcesBuildPhase;
+			buildActionMask = 2147483647;
+			files = (
+				BC417FF413A1008F00C8BC49 /* ErrorTest.m in Sources */,
+				BC417FF513A1008F00C8BC49 /* FormatTest.m in Sources */,
+				BC417FF613A1008F00C8BC49 /* JsonCheckerTest.m in Sources */,
+				BC417FF813A1008F00C8BC49 /* JsonTestCase.m in Sources */,
+				BC417FF913A1008F00C8BC49 /* ProxyTest.m in Sources */,
+				BC417FFA13A1008F00C8BC49 /* RoundTripTest.m in Sources */,
+				BC417FFB13A1008F00C8BC49 /* StreamParserIntegrationTest.m in Sources */,
+				BC417FFC13A1008F00C8BC49 /* WriterTest.m in Sources */,
+				3BB5955D14EAA4B8001BE91E /* SortedFormatTest.m in Sources */,
+			);
+			runOnlyForDeploymentPostprocessing = 0;
+		};
+/* End PBXSourcesBuildPhase section */
+
+/* Begin PBXTargetDependency section */
+		BC1232551391D5CC00131607 /* PBXTargetDependency */ = {
+			isa = PBXTargetDependency;
+			target = BC12323C1391D5CC00131607 /* SBJson */;
+			targetProxy = BC1232541391D5CC00131607 /* PBXContainerItemProxy */;
+		};
+		BCC2627A13920FC7003D9994 /* PBXTargetDependency */ = {
+			isa = PBXTargetDependency;
+			target = BCC2626813920FC7003D9994 /* sbjson-ios */;
+			targetProxy = BCC2627913920FC7003D9994 /* PBXContainerItemProxy */;
+		};
+/* End PBXTargetDependency section */
+
+/* Begin PBXVariantGroup section */
+		BC1232491391D5CC00131607 /* InfoPlist.strings */ = {
+			isa = PBXVariantGroup;
+			children = (
+				BC12324A1391D5CC00131607 /* en */,
+			);
+			name = InfoPlist.strings;
+			sourceTree = "<group>";
+		};
+		BC12325A1391D5CC00131607 /* InfoPlist.strings */ = {
+			isa = PBXVariantGroup;
+			children = (
+				BC12325B1391D5CC00131607 /* en */,
+			);
+			name = InfoPlist.strings;
+			sourceTree = "<group>";
+		};
+		BCC2627F13920FC7003D9994 /* InfoPlist.strings */ = {
+			isa = PBXVariantGroup;
+			children = (
+				BCC2628013920FC7003D9994 /* en */,
+			);
+			name = InfoPlist.strings;
+			sourceTree = "<group>";
+		};
+/* End PBXVariantGroup section */
+
+/* Begin XCBuildConfiguration section */
+		BC1232621391D5CC00131607 /* Debug */ = {
+			isa = XCBuildConfiguration;
+			buildSettings = {
+				ARCHS = "$(ARCHS_STANDARD_32_64_BIT)";
+				CLANG_ENABLE_OBJC_ARC = YES;
+				FRAMEWORK_SEARCH_PATHS = "$(DEVELOPER_LIBRARY_DIR)/Frameworks";
+				GCC_C_LANGUAGE_STANDARD = "compiler-default";
+				GCC_OPTIMIZATION_LEVEL = 0;
+				GCC_PRECOMPILE_PREFIX_HEADER = YES;
+				GCC_PREPROCESSOR_DEFINITIONS = DEBUG;
+				GCC_SYMBOLS_PRIVATE_EXTERN = NO;
+				GCC_VERSION = "";
+				GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
+				GCC_WARN_ABOUT_MISSING_PROTOTYPES = YES;
+				GCC_WARN_ABOUT_RETURN_TYPE = YES;
+				GCC_WARN_UNUSED_FUNCTION = YES;
+				GCC_WARN_UNUSED_LABEL = YES;
+				GCC_WARN_UNUSED_VARIABLE = YES;
+				MACOSX_DEPLOYMENT_TARGET = "";
+				ONLY_ACTIVE_ARCH = YES;
+				RUN_CLANG_STATIC_ANALYZER = YES;
+				SDKROOT = macosx;
+			};
+			name = Debug;
+		};
+		BC1232631391D5CC00131607 /* Release */ = {
+			isa = XCBuildConfiguration;
+			buildSettings = {
+				ARCHS = "$(ARCHS_STANDARD_32_64_BIT)";
+				CLANG_ENABLE_OBJC_ARC = YES;
+				FRAMEWORK_SEARCH_PATHS = "$(DEVELOPER_LIBRARY_DIR)/Frameworks";
+				GCC_C_LANGUAGE_STANDARD = "compiler-default";
+				GCC_PRECOMPILE_PREFIX_HEADER = YES;
+				GCC_VERSION = "";
+				GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
+				GCC_WARN_ABOUT_MISSING_PROTOTYPES = YES;
+				GCC_WARN_ABOUT_RETURN_TYPE = YES;
+				GCC_WARN_UNUSED_FUNCTION = YES;
+				GCC_WARN_UNUSED_LABEL = YES;
+				GCC_WARN_UNUSED_VARIABLE = YES;
+				MACOSX_DEPLOYMENT_TARGET = "";
+				RUN_CLANG_STATIC_ANALYZER = YES;
+				SDKROOT = macosx;
+			};
+			name = Release;
+		};
+		BC1232651391D5CC00131607 /* Debug */ = {
+			isa = XCBuildConfiguration;
+			buildSettings = {
+				ARCHS = "$(ARCHS_STANDARD_64_BIT)";
+				COMBINE_HIDPI_IMAGES = YES;
+				COPY_PHASE_STRIP = NO;
+				CURRENT_PROJECT_VERSION = 38;
+				DYLIB_COMPATIBILITY_VERSION = 1;
+				DYLIB_CURRENT_VERSION = 38;
+				FRAMEWORK_VERSION = A;
+				GCC_PREFIX_HEADER = "SBJson/SBJson-Prefix.pch";
+				INFOPLIST_FILE = "SBJson/SBJson-Info.plist";
+				PRODUCT_NAME = "$(TARGET_NAME)";
+				VERSIONING_SYSTEM = "apple-generic";
+				WRAPPER_EXTENSION = framework;
+			};
+			name = Debug;
+		};
+		BC1232661391D5CC00131607 /* Release */ = {
+			isa = XCBuildConfiguration;
+			buildSettings = {
+				ARCHS = "$(ARCHS_STANDARD_64_BIT)";
+				COMBINE_HIDPI_IMAGES = YES;
+				COPY_PHASE_STRIP = YES;
+				CURRENT_PROJECT_VERSION = 38;
+				DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
+				DYLIB_COMPATIBILITY_VERSION = 1;
+				DYLIB_CURRENT_VERSION = 38;
+				FRAMEWORK_VERSION = A;
+				GCC_PREFIX_HEADER = "SBJson/SBJson-Prefix.pch";
+				INFOPLIST_FILE = "SBJson/SBJson-Info.plist";
+				PRODUCT_NAME = "$(TARGET_NAME)";
+				VERSIONING_SYSTEM = "apple-generic";
+				WRAPPER_EXTENSION = framework;
+			};
+			name = Release;
+		};
+		BC1232681391D5CC00131607 /* Debug */ = {
+			isa = XCBuildConfiguration;
+			buildSettings = {
+				ARCHS = "$(ARCHS_STANDARD_64_BIT)";
+				COMBINE_HIDPI_IMAGES = YES;
+				COPY_PHASE_STRIP = NO;
+				GCC_PREFIX_HEADER = "SBJsonTests/SBJsonTests-Prefix.pch";
+				INFOPLIST_FILE = "SBJsonTests/SBJsonTests-Info.plist";
+				OTHER_LDFLAGS = (
+					"-framework",
+					SenTestingKit,
+				);
+				PRODUCT_NAME = "$(TARGET_NAME)";
+				WRAPPER_EXTENSION = octest;
+			};
+			name = Debug;
+		};
+		BC1232691391D5CC00131607 /* Release */ = {
+			isa = XCBuildConfiguration;
+			buildSettings = {
+				ARCHS = "$(ARCHS_STANDARD_64_BIT)";
+				COMBINE_HIDPI_IMAGES = YES;
+				COPY_PHASE_STRIP = YES;
+				DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
+				GCC_PREFIX_HEADER = "SBJsonTests/SBJsonTests-Prefix.pch";
+				INFOPLIST_FILE = "SBJsonTests/SBJsonTests-Info.plist";
+				OTHER_LDFLAGS = (
+					"-framework",
+					SenTestingKit,
+				);
+				PRODUCT_NAME = "$(TARGET_NAME)";
+				WRAPPER_EXTENSION = octest;
+			};
+			name = Release;
+		};
+		BCC2628813920FC7003D9994 /* Debug */ = {
+			isa = XCBuildConfiguration;
+			buildSettings = {
+				DSTROOT = /tmp/sbjson_ios.dst;
+				GCC_PREFIX_HEADER = "sbjson-ios/sbjson-ios-Prefix.pch";
+				HEADER_SEARCH_PATHS = (
+					include/,
+					"$(BUILT_PRODUCTS_DIR)/usr/local/lib/include/",
+				);
+				IPHONEOS_DEPLOYMENT_TARGET = 4.3;
+				ONLY_ACTIVE_ARCH = NO;
+				OTHER_LDFLAGS = "-ObjC";
+				PRODUCT_NAME = "$(TARGET_NAME)";
+				PUBLIC_HEADERS_FOLDER_PATH = include/SBJson/;
+				SDKROOT = iphoneos;
+				SKIP_INSTALL = YES;
+			};
+			name = Debug;
+		};
+		BCC2628913920FC7003D9994 /* Release */ = {
+			isa = XCBuildConfiguration;
+			buildSettings = {
+				DSTROOT = /tmp/sbjson_ios.dst;
+				GCC_PREFIX_HEADER = "sbjson-ios/sbjson-ios-Prefix.pch";
+				HEADER_SEARCH_PATHS = "$(TARGET_BUILD_DIR)/include/";
+				IPHONEOS_DEPLOYMENT_TARGET = 4.3;
+				OTHER_LDFLAGS = "-ObjC";
+				PRODUCT_NAME = "$(TARGET_NAME)";
+				PUBLIC_HEADERS_FOLDER_PATH = include/SBJson/;
+				SDKROOT = iphoneos;
+				SKIP_INSTALL = YES;
+			};
+			name = Release;
+		};
+		BCC2628B13920FC7003D9994 /* Debug */ = {
+			isa = XCBuildConfiguration;
+			buildSettings = {
+				FRAMEWORK_SEARCH_PATHS = (
+					"$(SDKROOT)/Developer/Library/Frameworks",
+					"$(DEVELOPER_LIBRARY_DIR)/Frameworks",
+				);
+				GCC_PREFIX_HEADER = "sbjson-iosTests/sbjson-iosTests-Prefix.pch";
+				INFOPLIST_FILE = "sbjson-iosTests/sbjson-iosTests-Info.plist";
+				IPHONEOS_DEPLOYMENT_TARGET = 4.3;
+				OTHER_LDFLAGS = (
+					"-framework",
+					SenTestingKit,
+					"-all_load",
+				);
+				PRODUCT_NAME = "$(TARGET_NAME)";
+				SDKROOT = iphoneos;
+				WRAPPER_EXTENSION = octest;
+			};
+			name = Debug;
+		};
+		BCC2628C13920FC7003D9994 /* Release */ = {
+			isa = XCBuildConfiguration;
+			buildSettings = {
+				FRAMEWORK_SEARCH_PATHS = (
+					"$(SDKROOT)/Developer/Library/Frameworks",
+					"$(DEVELOPER_LIBRARY_DIR)/Frameworks",
+				);
+				GCC_PREFIX_HEADER = "sbjson-iosTests/sbjson-iosTests-Prefix.pch";
+				INFOPLIST_FILE = "sbjson-iosTests/sbjson-iosTests-Info.plist";
+				IPHONEOS_DEPLOYMENT_TARGET = 4.3;
+				OTHER_LDFLAGS = (
+					"-framework",
+					SenTestingKit,
+					"-all_load",
+				);
+				PRODUCT_NAME = "$(TARGET_NAME)";
+				SDKROOT = iphoneos;
+				WRAPPER_EXTENSION = octest;
+			};
+			name = Release;
+		};
+/* End XCBuildConfiguration section */
+
+/* Begin XCConfigurationList section */
+		BC1232361391D5CC00131607 /* Build configuration list for PBXProject "SBJson" */ = {
+			isa = XCConfigurationList;
+			buildConfigurations = (
+				BC1232621391D5CC00131607 /* Debug */,
+				BC1232631391D5CC00131607 /* Release */,
+			);
+			defaultConfigurationIsVisible = 0;
+			defaultConfigurationName = Release;
+		};
+		BC1232641391D5CC00131607 /* Build configuration list for PBXNativeTarget "SBJson" */ = {
+			isa = XCConfigurationList;
+			buildConfigurations = (
+				BC1232651391D5CC00131607 /* Debug */,
+				BC1232661391D5CC00131607 /* Release */,
+			);
+			defaultConfigurationIsVisible = 0;
+			defaultConfigurationName = Release;
+		};
+		BC1232671391D5CC00131607 /* Build configuration list for PBXNativeTarget "SBJsonTests" */ = {
+			isa = XCConfigurationList;
+			buildConfigurations = (
+				BC1232681391D5CC00131607 /* Debug */,
+				BC1232691391D5CC00131607 /* Release */,
+			);
+			defaultConfigurationIsVisible = 0;
+			defaultConfigurationName = Release;
+		};
+		BCC2628713920FC7003D9994 /* Build configuration list for PBXNativeTarget "sbjson-ios" */ = {
+			isa = XCConfigurationList;
+			buildConfigurations = (
+				BCC2628813920FC7003D9994 /* Debug */,
+				BCC2628913920FC7003D9994 /* Release */,
+			);
+			defaultConfigurationIsVisible = 0;
+			defaultConfigurationName = Release;
+		};
+		BCC2628A13920FC7003D9994 /* Build configuration list for PBXNativeTarget "sbjson-iosTests" */ = {
+			isa = XCConfigurationList;
+			buildConfigurations = (
+				BCC2628B13920FC7003D9994 /* Debug */,
+				BCC2628C13920FC7003D9994 /* Release */,
+			);
+			defaultConfigurationIsVisible = 0;
+			defaultConfigurationName = Release;
+		};
+/* End XCConfigurationList section */
+	};
+	rootObject = BC1232331391D5CC00131607 /* Project object */;
+}
diff --git a/json-framework-3.2.0/SBJson/SBJson-Info.plist b/json-framework-3.2.0/SBJson/SBJson-Info.plist
new file mode 100644
index 0000000..7007f0f
--- /dev/null
+++ b/json-framework-3.2.0/SBJson/SBJson-Info.plist
@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+	<key>CFBundleDevelopmentRegion</key>
+	<string>English</string>
+	<key>CFBundleExecutable</key>
+	<string>${EXECUTABLE_NAME}</string>
+	<key>CFBundleIconFile</key>
+	<string></string>
+	<key>CFBundleIdentifier</key>
+	<string>org.brautaset.${PRODUCT_NAME:rfc1034identifier}</string>
+	<key>CFBundleInfoDictionaryVersion</key>
+	<string>6.0</string>
+	<key>CFBundleName</key>
+	<string>${PRODUCT_NAME}</string>
+	<key>CFBundlePackageType</key>
+	<string>FMWK</string>
+	<key>CFBundleShortVersionString</key>
+	<string>3.2.0</string>
+	<key>CFBundleSignature</key>
+	<string>????</string>
+	<key>CFBundleVersion</key>
+	<string>${CURRENT_PROJECT_VERSION}</string>
+	<key>NSHumanReadableCopyright</key>
+	<string>Copyright © 2011 Stig Brautaset. All rights reserved.</string>
+	<key>NSPrincipalClass</key>
+	<string></string>
+</dict>
+</plist>
diff --git a/json-framework-3.2.0/SBJson/SBJson-Prefix.pch b/json-framework-3.2.0/SBJson/SBJson-Prefix.pch
new file mode 100644
index 0000000..56b8bf3
--- /dev/null
+++ b/json-framework-3.2.0/SBJson/SBJson-Prefix.pch
@@ -0,0 +1,7 @@
+//
+// Prefix header for all source files of the 'SBJson' target in the 'SBJson' project
+//
+
+#ifdef __OBJC__
+    #import <Cocoa/Cocoa.h>
+#endif
diff --git a/json-framework-3.2.0/SBJson/en.lproj/InfoPlist.strings b/json-framework-3.2.0/SBJson/en.lproj/InfoPlist.strings
new file mode 100644
index 0000000..477b28f
--- /dev/null
+++ b/json-framework-3.2.0/SBJson/en.lproj/InfoPlist.strings
@@ -0,0 +1,2 @@
+/* Localized versions of Info.plist keys */
+
diff --git a/json-framework-3.2.0/SBJsonTests/SBJsonTests-Info.plist b/json-framework-3.2.0/SBJsonTests/SBJsonTests-Info.plist
new file mode 100644
index 0000000..f5deb9d
--- /dev/null
+++ b/json-framework-3.2.0/SBJsonTests/SBJsonTests-Info.plist
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+	<key>CFBundleDevelopmentRegion</key>
+	<string>en</string>
+	<key>CFBundleExecutable</key>
+	<string>${EXECUTABLE_NAME}</string>
+	<key>CFBundleIdentifier</key>
+	<string>org.brautaset.${PRODUCT_NAME:rfc1034identifier}</string>
+	<key>CFBundleInfoDictionaryVersion</key>
+	<string>6.0</string>
+	<key>CFBundlePackageType</key>
+	<string>BNDL</string>
+	<key>CFBundleShortVersionString</key>
+	<string>3.2.0</string>
+	<key>CFBundleSignature</key>
+	<string>????</string>
+	<key>CFBundleVersion</key>
+	<string>${CURRENT_PROJECT_VERSION}</string>
+</dict>
+</plist>
diff --git a/json-framework-3.2.0/SBJsonTests/SBJsonTests-Prefix.pch b/json-framework-3.2.0/SBJsonTests/SBJsonTests-Prefix.pch
new file mode 100644
index 0000000..289d1dc
--- /dev/null
+++ b/json-framework-3.2.0/SBJsonTests/SBJsonTests-Prefix.pch
@@ -0,0 +1,8 @@
+//
+// Prefix header for all source files of the 'SBJsonTests' target in the 'SBJsonTests' project
+//
+
+#ifdef __OBJC__
+    #import <Cocoa/Cocoa.h>
+    #import <SenTestingKit/SenTestingKit.h>
+#endif
diff --git a/json-framework-3.2.0/SBJsonTests/en.lproj/InfoPlist.strings b/json-framework-3.2.0/SBJsonTests/en.lproj/InfoPlist.strings
new file mode 100644
index 0000000..477b28f
--- /dev/null
+++ b/json-framework-3.2.0/SBJsonTests/en.lproj/InfoPlist.strings
@@ -0,0 +1,2 @@
+/* Localized versions of Info.plist keys */
+
diff --git a/json-framework-3.2.0/Tests/Data/comparatorsort/basic/input b/json-framework-3.2.0/Tests/Data/comparatorsort/basic/input
new file mode 100644
index 0000000..2b65785
--- /dev/null
+++ b/json-framework-3.2.0/Tests/Data/comparatorsort/basic/input
@@ -0,0 +1 @@
+["one",2,{"foo":null,"Boo":false,"quux":true,"bar":[1, 2, []]},{}]
diff --git a/json-framework-3.2.0/Tests/Data/comparatorsort/basic/output b/json-framework-3.2.0/Tests/Data/comparatorsort/basic/output
new file mode 100644
index 0000000..60184b5
--- /dev/null
+++ b/json-framework-3.2.0/Tests/Data/comparatorsort/basic/output
@@ -0,0 +1,17 @@
+[
+  "one",
+  2,
+  {
+    "bar": [
+      1,
+      2,
+      [
+      ]
+    ],
+    "Boo": false,
+    "foo": null,
+    "quux": true
+  },
+  {
+  }
+]
diff --git a/json-framework-3.2.0/Tests/Data/comparatorsort/json.org/a/input b/json-framework-3.2.0/Tests/Data/comparatorsort/json.org/a/input
new file mode 100644
index 0000000..c8f1d8c
--- /dev/null
+++ b/json-framework-3.2.0/Tests/Data/comparatorsort/json.org/a/input
@@ -0,0 +1,22 @@
+{
+    "glossary": {
+        "title": "example glossary",
+        "GlossDiv": {
+            "title": "S",
+            "GlossList": {
+                "GlossEntry": {
+                    "ID": "SGML",
+                    "SortAs": "SGML",
+                    "GlossTerm": "Standard Generalized Markup Language",
+                    "Acronym": "SGML",
+                    "Abbrev": "ISO 8879:1986",
+                    "GlossDef": {
+                        "para": "A meta-markup language, used to create markup languages such as DocBook.",
+                        "GlossSeeAlso": ["GML", "XML"]
+                    },
+                    "GlossSee": "markup"
+                }
+            }
+        }
+    }
+}
diff --git a/json-framework-3.2.0/Tests/Data/comparatorsort/json.org/a/output b/json-framework-3.2.0/Tests/Data/comparatorsort/json.org/a/output
new file mode 100644
index 0000000..db268bf
--- /dev/null
+++ b/json-framework-3.2.0/Tests/Data/comparatorsort/json.org/a/output
@@ -0,0 +1,25 @@
+{
+  "glossary": {
+    "GlossDiv": {
+      "GlossList": {
+        "GlossEntry": {
+          "Abbrev": "ISO 8879:1986",
+          "Acronym": "SGML",
+          "GlossDef": {
+            "GlossSeeAlso": [
+              "GML",
+              "XML"
+            ],
+            "para": "A meta-markup language, used to create markup languages such as DocBook."
+          },
+          "GlossSee": "markup",
+          "GlossTerm": "Standard Generalized Markup Language",
+          "ID": "SGML",
+          "SortAs": "SGML"
+        }
+      },
+      "title": "S"
+    },
+    "title": "example glossary"
+  }
+}
diff --git a/json-framework-3.2.0/Tests/Data/comparatorsort/rfc4627/a/input b/json-framework-3.2.0/Tests/Data/comparatorsort/rfc4627/a/input
new file mode 100644
index 0000000..8454dc2
--- /dev/null
+++ b/json-framework-3.2.0/Tests/Data/comparatorsort/rfc4627/a/input
@@ -0,0 +1,13 @@
+   {
+      "Image": {
+          "Width":  800,
+          "Height": 600,
+          "Title":  "View from 15th Floor",
+          "Thumbnail": {
+              "Url":    "http://www.example.com/image/481989943",
+              "Height": 125,
+              "Width":  "100"
+          },
+          "IDs": [116, 943, 234, 38793]
+        }
+   }
\ No newline at end of file
diff --git a/json-framework-3.2.0/Tests/Data/comparatorsort/rfc4627/a/output b/json-framework-3.2.0/Tests/Data/comparatorsort/rfc4627/a/output
new file mode 100644
index 0000000..b668287
--- /dev/null
+++ b/json-framework-3.2.0/Tests/Data/comparatorsort/rfc4627/a/output
@@ -0,0 +1,18 @@
+{
+  "Image": {
+    "Height": 600,
+    "IDs": [
+      116,
+      943,
+      234,
+      38793
+    ],
+    "Thumbnail": {
+      "Height": 125,
+      "Url": "http://www.example.com/image/481989943",
+      "Width": "100"
+    },
+    "Title": "View from 15th Floor",
+    "Width": 800
+  }
+}
diff --git a/json-framework-3.2.0/Tests/Data/format/basic/input b/json-framework-3.2.0/Tests/Data/format/basic/input
new file mode 100644
index 0000000..2e69327
--- /dev/null
+++ b/json-framework-3.2.0/Tests/Data/format/basic/input
@@ -0,0 +1 @@
+["one",2,{"foo":null,"quux":true,"bar":[1, 2, []]},{}]
diff --git a/json-framework-3.2.0/Tests/Data/format/basic/output b/json-framework-3.2.0/Tests/Data/format/basic/output
new file mode 100644
index 0000000..7584dad
--- /dev/null
+++ b/json-framework-3.2.0/Tests/Data/format/basic/output
@@ -0,0 +1,16 @@
+[
+  "one",
+  2,
+  {
+    "bar": [
+      1,
+      2,
+      [
+      ]
+    ],
+    "foo": null,
+    "quux": true
+  },
+  {
+  }
+]
diff --git a/json-framework-3.2.0/Tests/Data/format/json.org/README b/json-framework-3.2.0/Tests/Data/format/json.org/README
new file mode 100644
index 0000000..5110cde
--- /dev/null
+++ b/json-framework-3.2.0/Tests/Data/format/json.org/README
@@ -0,0 +1 @@
+Source: http://json.org/example.html
\ No newline at end of file
diff --git a/json-framework-3.2.0/Tests/Data/format/json.org/a/input b/json-framework-3.2.0/Tests/Data/format/json.org/a/input
new file mode 100644
index 0000000..c8f1d8c
--- /dev/null
+++ b/json-framework-3.2.0/Tests/Data/format/json.org/a/input
@@ -0,0 +1,22 @@
+{
+    "glossary": {
+        "title": "example glossary",
+        "GlossDiv": {
+            "title": "S",
+            "GlossList": {
+                "GlossEntry": {
+                    "ID": "SGML",
+                    "SortAs": "SGML",
+                    "GlossTerm": "Standard Generalized Markup Language",
+                    "Acronym": "SGML",
+                    "Abbrev": "ISO 8879:1986",
+                    "GlossDef": {
+                        "para": "A meta-markup language, used to create markup languages such as DocBook.",
+                        "GlossSeeAlso": ["GML", "XML"]
+                    },
+                    "GlossSee": "markup"
+                }
+            }
+        }
+    }
+}
diff --git a/json-framework-3.2.0/Tests/Data/format/json.org/a/output b/json-framework-3.2.0/Tests/Data/format/json.org/a/output
new file mode 100644
index 0000000..db268bf
--- /dev/null
+++ b/json-framework-3.2.0/Tests/Data/format/json.org/a/output
@@ -0,0 +1,25 @@
+{
+  "glossary": {
+    "GlossDiv": {
+      "GlossList": {
+        "GlossEntry": {
+          "Abbrev": "ISO 8879:1986",
+          "Acronym": "SGML",
+          "GlossDef": {
+            "GlossSeeAlso": [
+              "GML",
+              "XML"
+            ],
+            "para": "A meta-markup language, used to create markup languages such as DocBook."
+          },
+          "GlossSee": "markup",
+          "GlossTerm": "Standard Generalized Markup Language",
+          "ID": "SGML",
+          "SortAs": "SGML"
+        }
+      },
+      "title": "S"
+    },
+    "title": "example glossary"
+  }
+}
diff --git a/json-framework-3.2.0/Tests/Data/format/json.org/b/input b/json-framework-3.2.0/Tests/Data/format/json.org/b/input
new file mode 100644
index 0000000..5600991
--- /dev/null
+++ b/json-framework-3.2.0/Tests/Data/format/json.org/b/input
@@ -0,0 +1,11 @@
+{"menu": {
+  "id": "file",
+  "value": "File",
+  "popup": {
+    "menuitem": [
+      {"value": "New", "onclick": "CreateNewDoc()"},
+      {"value": "Open", "onclick": "OpenDoc()"},
+      {"value": "Close", "onclick": "CloseDoc()"}
+    ]
+  }
+}}
diff --git a/json-framework-3.2.0/Tests/Data/format/json.org/b/output b/json-framework-3.2.0/Tests/Data/format/json.org/b/output
new file mode 100644
index 0000000..05af1d7
--- /dev/null
+++ b/json-framework-3.2.0/Tests/Data/format/json.org/b/output
@@ -0,0 +1,22 @@
+{
+  "menu": {
+    "id": "file",
+    "popup": {
+      "menuitem": [
+        {
+          "onclick": "CreateNewDoc()",
+          "value": "New"
+        },
+        {
+          "onclick": "OpenDoc()",
+          "value": "Open"
+        },
+        {
+          "onclick": "CloseDoc()",
+          "value": "Close"
+        }
+      ]
+    },
+    "value": "File"
+  }
+}
diff --git a/json-framework-3.2.0/Tests/Data/format/json.org/c/input b/json-framework-3.2.0/Tests/Data/format/json.org/c/input
new file mode 100644
index 0000000..9b820d8
--- /dev/null
+++ b/json-framework-3.2.0/Tests/Data/format/json.org/c/input
@@ -0,0 +1,26 @@
+{"widget": {
+    "debug": "on",
+    "window": {
+        "title": "Sample Konfabulator Widget",
+        "name": "main_window",
+        "width": 500,
+        "height": 500
+    },
+    "image": { 
+        "src": "Images/Sun.png",
+        "name": "sun1",
+        "hOffset": 250,
+        "vOffset": 250,
+        "alignment": "center"
+    },
+    "text": {
+        "data": "Click Here",
+        "size": 36,
+        "style": "bold",
+        "name": "text1",
+        "hOffset": 250,
+        "vOffset": 100,
+        "alignment": "center",
+        "onMouseUp": "sun1.opacity = (sun1.opacity / 100) * 90;"
+    }
+}}    
diff --git a/json-framework-3.2.0/Tests/Data/format/json.org/c/output b/json-framework-3.2.0/Tests/Data/format/json.org/c/output
new file mode 100644
index 0000000..3b4c09e
--- /dev/null
+++ b/json-framework-3.2.0/Tests/Data/format/json.org/c/output
@@ -0,0 +1,28 @@
+{
+  "widget": {
+    "debug": "on",
+    "image": {
+      "alignment": "center",
+      "hOffset": 250,
+      "name": "sun1",
+      "src": "Images/Sun.png",
+      "vOffset": 250
+    },
+    "text": {
+      "alignment": "center",
+      "data": "Click Here",
+      "hOffset": 250,
+      "name": "text1",
+      "onMouseUp": "sun1.opacity = (sun1.opacity / 100) * 90;",
+      "size": 36,
+      "style": "bold",
+      "vOffset": 100
+    },
+    "window": {
+      "height": 500,
+      "name": "main_window",
+      "title": "Sample Konfabulator Widget",
+      "width": 500
+    }
+  }
+}
diff --git a/json-framework-3.2.0/Tests/Data/format/json.org/d/input b/json-framework-3.2.0/Tests/Data/format/json.org/d/input
new file mode 100644
index 0000000..d540b57
--- /dev/null
+++ b/json-framework-3.2.0/Tests/Data/format/json.org/d/input
@@ -0,0 +1,88 @@
+{"web-app": {
+  "servlet": [   
+    {
+      "servlet-name": "cofaxCDS",
+      "servlet-class": "org.cofax.cds.CDSServlet",
+      "init-param": {
+        "configGlossary:installationAt": "Philadelphia, PA",
+        "configGlossary:adminEmail": "ksm@pobox.com",
+        "configGlossary:poweredBy": "Cofax",
+        "configGlossary:poweredByIcon": "/images/cofax.gif",
+        "configGlossary:staticPath": "/content/static",
+        "templateProcessorClass": "org.cofax.WysiwygTemplate",
+        "templateLoaderClass": "org.cofax.FilesTemplateLoader",
+        "templatePath": "templates",
+        "templateOverridePath": "",
+        "defaultListTemplate": "listTemplate.htm",
+        "defaultFileTemplate": "articleTemplate.htm",
+        "useJSP": false,
+        "jspListTemplate": "listTemplate.jsp",
+        "jspFileTemplate": "articleTemplate.jsp",
+        "cachePackageTagsTrack": 200,
+        "cachePackageTagsStore": 200,
+        "cachePackageTagsRefresh": 60,
+        "cacheTemplatesTrack": 100,
+        "cacheTemplatesStore": 50,
+        "cacheTemplatesRefresh": 15,
+        "cachePagesTrack": 200,
+        "cachePagesStore": 100,
+        "cachePagesRefresh": 10,
+        "cachePagesDirtyRead": 10,
+        "searchEngineListTemplate": "forSearchEnginesList.htm",
+        "searchEngineFileTemplate": "forSearchEngines.htm",
+        "searchEngineRobotsDb": "WEB-INF/robots.db",
+        "useDataStore": true,
+        "dataStoreClass": "org.cofax.SqlDataStore",
+        "redirectionClass": "org.cofax.SqlRedirection",
+        "dataStoreName": "cofax",
+        "dataStoreDriver": "com.microsoft.jdbc.sqlserver.SQLServerDriver",
+        "dataStoreUrl": "jdbc:microsoft:sqlserver://LOCALHOST:1433;DatabaseName=goon",
+        "dataStoreUser": "sa",
+        "dataStorePassword": "dataStoreTestQuery",
+        "dataStoreTestQuery": "SET NOCOUNT ON;select test='test';",
+        "dataStoreLogFile": "/usr/local/tomcat/logs/datastore.log",
+        "dataStoreInitConns": 10,
+        "dataStoreMaxConns": 100,
+        "dataStoreConnUsageLimit": 100,
+        "dataStoreLogLevel": "debug",
+        "maxUrlLength": 500}},
+    {
+      "servlet-name": "cofaxEmail",
+      "servlet-class": "org.cofax.cds.EmailServlet",
+      "init-param": {
+      "mailHost": "mail1",
+      "mailHostOverride": "mail2"}},
+    {
+      "servlet-name": "cofaxAdmin",
+      "servlet-class": "org.cofax.cds.AdminServlet"},
+ 
+    {
+      "servlet-name": "fileServlet",
+      "servlet-class": "org.cofax.cds.FileServlet"},
+    {
+      "servlet-name": "cofaxTools",
+      "servlet-class": "org.cofax.cms.CofaxToolsServlet",
+      "init-param": {
+        "templatePath": "toolstemplates/",
+        "log": 1,
+        "logLocation": "/usr/local/tomcat/logs/CofaxTools.log",
+        "logMaxSize": "",
+        "dataLog": 1,
+        "dataLogLocation": "/usr/local/tomcat/logs/dataLog.log",
+        "dataLogMaxSize": "",
+        "removePageCache": "/content/admin/remove?cache=pages&id=",
+        "removeTemplateCache": "/content/admin/remove?cache=templates&id=",
+        "fileTransferFolder": "/usr/local/tomcat/webapps/content/fileTransferFolder",
+        "lookInContext": 1,
+        "adminGroupID": 4,
+        "betaServer": true}}],
+  "servlet-mapping": {
+    "cofaxCDS": "/",
+    "cofaxEmail": "/cofaxutil/aemail/*",
+    "cofaxAdmin": "/admin/*",
+    "fileServlet": "/static/*",
+    "cofaxTools": "/tools/*"},
+ 
+  "taglib": {
+    "taglib-uri": "cofax.tld",
+    "taglib-location": "/WEB-INF/tlds/cofax.tld"}}}
\ No newline at end of file
diff --git a/json-framework-3.2.0/Tests/Data/format/json.org/d/output b/json-framework-3.2.0/Tests/Data/format/json.org/d/output
new file mode 100644
index 0000000..538bba2
--- /dev/null
+++ b/json-framework-3.2.0/Tests/Data/format/json.org/d/output
@@ -0,0 +1,100 @@
+{
+  "web-app": {
+    "servlet": [
+      {
+        "init-param": {
+          "cachePackageTagsRefresh": 60,
+          "cachePackageTagsStore": 200,
+          "cachePackageTagsTrack": 200,
+          "cachePagesDirtyRead": 10,
+          "cachePagesRefresh": 10,
+          "cachePagesStore": 100,
+          "cachePagesTrack": 200,
+          "cacheTemplatesRefresh": 15,
+          "cacheTemplatesStore": 50,
+          "cacheTemplatesTrack": 100,
+          "configGlossary:adminEmail": "ksm@pobox.com",
+          "configGlossary:installationAt": "Philadelphia, PA",
+          "configGlossary:poweredBy": "Cofax",
+          "configGlossary:poweredByIcon": "/images/cofax.gif",
+          "configGlossary:staticPath": "/content/static",
+          "dataStoreClass": "org.cofax.SqlDataStore",
+          "dataStoreConnUsageLimit": 100,
+          "dataStoreDriver": "com.microsoft.jdbc.sqlserver.SQLServerDriver",
+          "dataStoreInitConns": 10,
+          "dataStoreLogFile": "/usr/local/tomcat/logs/datastore.log",
+          "dataStoreLogLevel": "debug",
+          "dataStoreMaxConns": 100,
+          "dataStoreName": "cofax",
+          "dataStorePassword": "dataStoreTestQuery",
+          "dataStoreTestQuery": "SET NOCOUNT ON;select test='test';",
+          "dataStoreUrl": "jdbc:microsoft:sqlserver://LOCALHOST:1433;DatabaseName=goon",
+          "dataStoreUser": "sa",
+          "defaultFileTemplate": "articleTemplate.htm",
+          "defaultListTemplate": "listTemplate.htm",
+          "jspFileTemplate": "articleTemplate.jsp",
+          "jspListTemplate": "listTemplate.jsp",
+          "maxUrlLength": 500,
+          "redirectionClass": "org.cofax.SqlRedirection",
+          "searchEngineFileTemplate": "forSearchEngines.htm",
+          "searchEngineListTemplate": "forSearchEnginesList.htm",
+          "searchEngineRobotsDb": "WEB-INF/robots.db",
+          "templateLoaderClass": "org.cofax.FilesTemplateLoader",
+          "templateOverridePath": "",
+          "templatePath": "templates",
+          "templateProcessorClass": "org.cofax.WysiwygTemplate",
+          "useDataStore": true,
+          "useJSP": false
+        },
+        "servlet-class": "org.cofax.cds.CDSServlet",
+        "servlet-name": "cofaxCDS"
+      },
+      {
+        "init-param": {
+          "mailHost": "mail1",
+          "mailHostOverride": "mail2"
+        },
+        "servlet-class": "org.cofax.cds.EmailServlet",
+        "servlet-name": "cofaxEmail"
+      },
+      {
+        "servlet-class": "org.cofax.cds.AdminServlet",
+        "servlet-name": "cofaxAdmin"
+      },
+      {
+        "servlet-class": "org.cofax.cds.FileServlet",
+        "servlet-name": "fileServlet"
+      },
+      {
+        "init-param": {
+          "adminGroupID": 4,
+          "betaServer": true,
+          "dataLog": 1,
+          "dataLogLocation": "/usr/local/tomcat/logs/dataLog.log",
+          "dataLogMaxSize": "",
+          "fileTransferFolder": "/usr/local/tomcat/webapps/content/fileTransferFolder",
+          "log": 1,
+          "logLocation": "/usr/local/tomcat/logs/CofaxTools.log",
+          "logMaxSize": "",
+          "lookInContext": 1,
+          "removePageCache": "/content/admin/remove?cache=pages&id=",
+          "removeTemplateCache": "/content/admin/remove?cache=templates&id=",
+          "templatePath": "toolstemplates/"
+        },
+        "servlet-class": "org.cofax.cms.CofaxToolsServlet",
+        "servlet-name": "cofaxTools"
+      }
+    ],
+    "servlet-mapping": {
+      "cofaxAdmin": "/admin/*",
+      "cofaxCDS": "/",
+      "cofaxEmail": "/cofaxutil/aemail/*",
+      "cofaxTools": "/tools/*",
+      "fileServlet": "/static/*"
+    },
+    "taglib": {
+      "taglib-location": "/WEB-INF/tlds/cofax.tld",
+      "taglib-uri": "cofax.tld"
+    }
+  }
+}
diff --git a/json-framework-3.2.0/Tests/Data/format/json.org/e/input b/json-framework-3.2.0/Tests/Data/format/json.org/e/input
new file mode 100644
index 0000000..49980ca
--- /dev/null
+++ b/json-framework-3.2.0/Tests/Data/format/json.org/e/input
@@ -0,0 +1,27 @@
+{"menu": {
+    "header": "SVG Viewer",
+    "items": [
+        {"id": "Open"},
+        {"id": "OpenNew", "label": "Open New"},
+        null,
+        {"id": "ZoomIn", "label": "Zoom In"},
+        {"id": "ZoomOut", "label": "Zoom Out"},
+        {"id": "OriginalView", "label": "Original View"},
+        null,
+        {"id": "Quality"},
+        {"id": "Pause"},
+        {"id": "Mute"},
+        null,
+        {"id": "Find", "label": "Find..."},
+        {"id": "FindAgain", "label": "Find Again"},
+        {"id": "Copy"},
+        {"id": "CopyAgain", "label": "Copy Again"},
+        {"id": "CopySVG", "label": "Copy SVG"},
+        {"id": "ViewSVG", "label": "View SVG"},
+        {"id": "ViewSource", "label": "View Source"},
+        {"id": "SaveAs", "label": "Save As"},
+        null,
+        {"id": "Help"},
+        {"id": "About", "label": "About Adobe CVG Viewer..."}
+    ]
+}}
diff --git a/json-framework-3.2.0/Tests/Data/format/json.org/e/output b/json-framework-3.2.0/Tests/Data/format/json.org/e/output
new file mode 100644
index 0000000..114f890
--- /dev/null
+++ b/json-framework-3.2.0/Tests/Data/format/json.org/e/output
@@ -0,0 +1,77 @@
+{
+  "menu": {
+    "header": "SVG Viewer",
+    "items": [
+      {
+        "id": "Open"
+      },
+      {
+        "id": "OpenNew",
+        "label": "Open New"
+      },
+      null,
+      {
+        "id": "ZoomIn",
+        "label": "Zoom In"
+      },
+      {
+        "id": "ZoomOut",
+        "label": "Zoom Out"
+      },
+      {
+        "id": "OriginalView",
+        "label": "Original View"
+      },
+      null,
+      {
+        "id": "Quality"
+      },
+      {
+        "id": "Pause"
+      },
+      {
+        "id": "Mute"
+      },
+      null,
+      {
+        "id": "Find",
+        "label": "Find..."
+      },
+      {
+        "id": "FindAgain",
+        "label": "Find Again"
+      },
+      {
+        "id": "Copy"
+      },
+      {
+        "id": "CopyAgain",
+        "label": "Copy Again"
+      },
+      {
+        "id": "CopySVG",
+        "label": "Copy SVG"
+      },
+      {
+        "id": "ViewSVG",
+        "label": "View SVG"
+      },
+      {
+        "id": "ViewSource",
+        "label": "View Source"
+      },
+      {
+        "id": "SaveAs",
+        "label": "Save As"
+      },
+      null,
+      {
+        "id": "Help"
+      },
+      {
+        "id": "About",
+        "label": "About Adobe CVG Viewer..."
+      }
+    ]
+  }
+}
diff --git a/json-framework-3.2.0/Tests/Data/format/rfc4627/README b/json-framework-3.2.0/Tests/Data/format/rfc4627/README
new file mode 100644
index 0000000..2bbac38
--- /dev/null
+++ b/json-framework-3.2.0/Tests/Data/format/rfc4627/README
@@ -0,0 +1 @@
+Source: http://www.ietf.org/rfc/rfc4627.txt?number=4627
\ No newline at end of file
diff --git a/json-framework-3.2.0/Tests/Data/format/rfc4627/a/input b/json-framework-3.2.0/Tests/Data/format/rfc4627/a/input
new file mode 100644
index 0000000..8454dc2
--- /dev/null
+++ b/json-framework-3.2.0/Tests/Data/format/rfc4627/a/input
@@ -0,0 +1,13 @@
+   {
+      "Image": {
+          "Width":  800,
+          "Height": 600,
+          "Title":  "View from 15th Floor",
+          "Thumbnail": {
+              "Url":    "http://www.example.com/image/481989943",
+              "Height": 125,
+              "Width":  "100"
+          },
+          "IDs": [116, 943, 234, 38793]
+        }
+   }
\ No newline at end of file
diff --git a/json-framework-3.2.0/Tests/Data/format/rfc4627/a/output b/json-framework-3.2.0/Tests/Data/format/rfc4627/a/output
new file mode 100644
index 0000000..b668287
--- /dev/null
+++ b/json-framework-3.2.0/Tests/Data/format/rfc4627/a/output
@@ -0,0 +1,18 @@
+{
+  "Image": {
+    "Height": 600,
+    "IDs": [
+      116,
+      943,
+      234,
+      38793
+    ],
+    "Thumbnail": {
+      "Height": 125,
+      "Url": "http://www.example.com/image/481989943",
+      "Width": "100"
+    },
+    "Title": "View from 15th Floor",
+    "Width": 800
+  }
+}
diff --git a/json-framework-3.2.0/Tests/Data/format/rfc4627/b/input b/json-framework-3.2.0/Tests/Data/format/rfc4627/b/input
new file mode 100644
index 0000000..29cc776
--- /dev/null
+++ b/json-framework-3.2.0/Tests/Data/format/rfc4627/b/input
@@ -0,0 +1,22 @@
+   [
+      {
+         "precision": "zip",
+         "Latitude":  37.7668,
+         "Longitude": -122.3959,
+         "Address":   "",
+         "City":      "SAN FRANCISCO",
+         "State":     "CA",
+         "Zip":       "94107",
+         "Country":   "US"
+      },
+      {
+         "precision": "zip",
+         "Latitude":  37.371991,
+         "Longitude": -122.026020,
+         "Address":   "",
+         "City":      "SUNNYVALE",
+         "State":     "CA",
+         "Zip":       "94085",
+         "Country":   "US"
+      }
+   ]
diff --git a/json-framework-3.2.0/Tests/Data/format/rfc4627/b/output b/json-framework-3.2.0/Tests/Data/format/rfc4627/b/output
new file mode 100644
index 0000000..42017b1
--- /dev/null
+++ b/json-framework-3.2.0/Tests/Data/format/rfc4627/b/output
@@ -0,0 +1,22 @@
+[
+  {
+    "Address": "",
+    "City": "SAN FRANCISCO",
+    "Country": "US",
+    "Latitude": 37.7668,
+    "Longitude": -122.3959,
+    "State": "CA",
+    "Zip": "94107",
+    "precision": "zip"
+  },
+  {
+    "Address": "",
+    "City": "SUNNYVALE",
+    "Country": "US",
+    "Latitude": 37.371991,
+    "Longitude": -122.02602,
+    "State": "CA",
+    "Zip": "94085",
+    "precision": "zip"
+  }
+]
diff --git a/json-framework-3.2.0/Tests/Data/invalid/array/eof-1/error b/json-framework-3.2.0/Tests/Data/invalid/array/eof-1/error
new file mode 100644
index 0000000..a3eac87
--- /dev/null
+++ b/json-framework-3.2.0/Tests/Data/invalid/array/eof-1/error
@@ -0,0 +1 @@
+Unexpected end of input
diff --git a/json-framework-3.2.0/Tests/Data/invalid/array/eof-1/input b/json-framework-3.2.0/Tests/Data/invalid/array/eof-1/input
new file mode 100644
index 0000000..558ed37
--- /dev/null
+++ b/json-framework-3.2.0/Tests/Data/invalid/array/eof-1/input
@@ -0,0 +1 @@
+[
diff --git a/json-framework-3.2.0/Tests/Data/invalid/array/eof-2/error b/json-framework-3.2.0/Tests/Data/invalid/array/eof-2/error
new file mode 100644
index 0000000..a3eac87
--- /dev/null
+++ b/json-framework-3.2.0/Tests/Data/invalid/array/eof-2/error
@@ -0,0 +1 @@
+Unexpected end of input
diff --git a/json-framework-3.2.0/Tests/Data/invalid/array/eof-2/input b/json-framework-3.2.0/Tests/Data/invalid/array/eof-2/input
new file mode 100644
index 0000000..7d85cb2
--- /dev/null
+++ b/json-framework-3.2.0/Tests/Data/invalid/array/eof-2/input
@@ -0,0 +1 @@
+[1
diff --git a/json-framework-3.2.0/Tests/Data/invalid/array/eof-3/error b/json-framework-3.2.0/Tests/Data/invalid/array/eof-3/error
new file mode 100644
index 0000000..a3eac87
--- /dev/null
+++ b/json-framework-3.2.0/Tests/Data/invalid/array/eof-3/error
@@ -0,0 +1 @@
+Unexpected end of input
diff --git a/json-framework-3.2.0/Tests/Data/invalid/array/eof-3/input b/json-framework-3.2.0/Tests/Data/invalid/array/eof-3/input
new file mode 100644
index 0000000..2534919
--- /dev/null
+++ b/json-framework-3.2.0/Tests/Data/invalid/array/eof-3/input
@@ -0,0 +1 @@
+[[]
diff --git a/json-framework-3.2.0/Tests/Data/invalid/array/eof-4/error b/json-framework-3.2.0/Tests/Data/invalid/array/eof-4/error
new file mode 100644
index 0000000..a3eac87
--- /dev/null
+++ b/json-framework-3.2.0/Tests/Data/invalid/array/eof-4/error
@@ -0,0 +1 @@
+Unexpected end of input
diff --git a/json-framework-3.2.0/Tests/Data/invalid/array/eof-4/input b/json-framework-3.2.0/Tests/Data/invalid/array/eof-4/input
new file mode 100644
index 0000000..f950969
--- /dev/null
+++ b/json-framework-3.2.0/Tests/Data/invalid/array/eof-4/input
@@ -0,0 +1 @@
+["a]
\ No newline at end of file
diff --git a/json-framework-3.2.0/Tests/Data/invalid/boolean/false/error b/json-framework-3.2.0/Tests/Data/invalid/boolean/false/error
new file mode 100644
index 0000000..06dfb06
--- /dev/null
+++ b/json-framework-3.2.0/Tests/Data/invalid/boolean/false/error
@@ -0,0 +1 @@
+Expected 'false' after initial 'f'
diff --git a/json-framework-3.2.0/Tests/Data/invalid/boolean/false/input b/json-framework-3.2.0/Tests/Data/invalid/boolean/false/input
new file mode 100644
index 0000000..5257238
--- /dev/null
+++ b/json-framework-3.2.0/Tests/Data/invalid/boolean/false/input
@@ -0,0 +1 @@
+[failing
diff --git a/json-framework-3.2.0/Tests/Data/invalid/boolean/true/error b/json-framework-3.2.0/Tests/Data/invalid/boolean/true/error
new file mode 100644
index 0000000..14ff3b0
--- /dev/null
+++ b/json-framework-3.2.0/Tests/Data/invalid/boolean/true/error
@@ -0,0 +1 @@
+Expected 'true' after initial 't'
diff --git a/json-framework-3.2.0/Tests/Data/invalid/boolean/true/input b/json-framework-3.2.0/Tests/Data/invalid/boolean/true/input
new file mode 100644
index 0000000..52b9bc2
--- /dev/null
+++ b/json-framework-3.2.0/Tests/Data/invalid/boolean/true/input
@@ -0,0 +1 @@
+[truth
diff --git a/json-framework-3.2.0/Tests/Data/invalid/depth/error b/json-framework-3.2.0/Tests/Data/invalid/depth/error
new file mode 100644
index 0000000..65cd336
--- /dev/null
+++ b/json-framework-3.2.0/Tests/Data/invalid/depth/error
@@ -0,0 +1 @@
+Input depth exceeds max depth of 4
diff --git a/json-framework-3.2.0/Tests/Data/invalid/depth/input b/json-framework-3.2.0/Tests/Data/invalid/depth/input
new file mode 100644
index 0000000..8748994
--- /dev/null
+++ b/json-framework-3.2.0/Tests/Data/invalid/depth/input
@@ -0,0 +1 @@
+[{"foo":[{"bar":[
diff --git a/json-framework-3.2.0/Tests/Data/invalid/encoding/utf8/error b/json-framework-3.2.0/Tests/Data/invalid/encoding/utf8/error
new file mode 100644
index 0000000..6dcfd89
--- /dev/null
+++ b/json-framework-3.2.0/Tests/Data/invalid/encoding/utf8/error
@@ -0,0 +1 @@
+Broken Unicode encoding
diff --git a/json-framework-3.2.0/Tests/Data/invalid/encoding/utf8/input b/json-framework-3.2.0/Tests/Data/invalid/encoding/utf8/input
new file mode 100644
index 0000000..d1d4699
--- /dev/null
+++ b/json-framework-3.2.0/Tests/Data/invalid/encoding/utf8/input
@@ -0,0 +1 @@
+["UTF-8 decoder capability and stress test\n----------------------------------------\n\nMarkus Kuhn <http://www.cl.cam.ac.uk/~mgk25/> - 2003-02-19\n\nThis test file can help you examine, how your UTF-8 decoder handles\nvarious types of correct, malformed, or otherwise interesting UTF-8\nsequences. This file is not meant to be a conformance test. It does\nnot prescribes any particular outcome and therefore there is no way to\n\"pass\" or \"fail\" this test file, even though the texts suggests a\npreferable decoder behaviour at some places. The aim is instead to\nhelp you think about and test the behaviour of your UTF-8 on a\nsystematic collection of unusual inputs. Experience so far suggests\nthat most first-time authors of UTF-8 decoders find at least one\nserious problem in their decoder by using this file.\n\nThe test lines below cover boundary conditions, malformed UTF-8\nsequences as well as correctly encoded UTF-8 sequences of Unicode code\npoints that should never occur in a correct UTF-8 file.\n\nAccording to ISO 10646-1:2000, sections D.7 and 2.3c, a device\nreceiving UTF-8 shall interpret a \"malformed sequence in the same way\nthat it interprets a character that is outside the adopted subset\" and\n\"characters that are not within the adopted subset shall be indicated\nto the user\" by a receiving device. A quite commonly used approach in\nUTF-8 decoders is to replace any malformed UTF-8 sequence by a\nreplacement character (U+FFFD), which looks a bit like an inverted\nquestion mark, or a similar symbol. It might be a good idea to\nvisually distinguish a malformed UTF-8 sequence from a correctly\nencoded Unicode character that is just not available in the current\nfont but otherwise fully legal, even though ISO 10646-1 doesn't\nmandate this. In any case, just ignoring malformed sequences or\nunavailable characters does not conform to ISO 10646, will make\ndebugging more difficult, and can lead to user confusion.\n\nPlease check, whether a malformed UTF-8 sequence is (1) represented at\nall, (2) represented by exactly one single replacement character (or\nequivalent signal), and (3) the following quotation mark after an\nillegal UTF-8 sequence is correctly displayed, i.e. proper\nresynchronization takes place immageately after any malformed\nsequence. This file says \"THE END\" in the last line, so if you don't\nsee that, your decoder crashed somehow before, which should always be\ncause for concern.\n\nAll lines in this file are exactly 79 characters long (plus the line\nfeed). In addition, all lines end with \"|\", except for the two test\nlines 2.1.1 and 2.2.1, which contain non-printable ASCII controls\nU+0000 and U+007F. If you display this file with a fixed-width font,\nthese \"|\" characters should all line up in column 79 (right margin).\nThis allows you to test quickly, whether your UTF-8 decoder finds the\ncorrect number of characters in every line, that is whether each\nmalformed sequences is replaced by a single replacement character.\n\nNote that as an alternative to the notion of malformed sequence used\nNote that as an alternative to the notion of malformed sequence used\npreferable) solution to represent each individual byte of a malformed\nsequence by a replacement character. If you follow this strategy in\nyour decoder, then please ignore the \"|\" column.\n\n\nHere come the tests:                                                          |\n                                                                              |\n1  Some correct UTF-8 text                                                    |\n1  Some correct UTF-8 text                                                    |\nYou should see the Greek word 'kosme':       \"κόσμε\"                          |\n                                                                              |\n2  Boundary condition test cases                                              |\n                                                                              |\n2.1  First possible sequence of a certain length                              |\n                                                                              |\n2.1.1  1 byte  (U-00000000):        \"NUL\"                                        \n2.1.2  2 bytes (U-00000080):        \"\"                                       |\n2.1.3  3 bytes (U-00000800):        \"ࠀ\"                                       |\n2.1.4  4 bytes (U-00010000):        \"𐀀\"                                       |\n2.1.5  5 bytes (U-00200000):        \"�����\"                                       |\n2.1.6  6 bytes (U-04000000):        \"������\"                                       |\n                                                                              |\n2.2  Last possible sequence of a certain length                               |\n                                                                              |\n2.2.1  1 byte  (U-0000007F):        \"\"                                        \n2.2.2  2 bytes (U-000007FF):        \"߿\"                                       |\n2.2.3  3 bytes (U-0000FFFF):        \"\"                                       |\n2.2.4  4 bytes (U-001FFFFF):        \"����\"                                       |\n2.2.5  5 bytes (U-03FFFFFF):        \"�����\"                                       |\n2.2.6  6 bytes (U-7FFFFFFF):        \"������\"                                       |\n                                                                              |\n2.3  Other boundary conditions                                                |\n                                                                              |\n2.3.1  U-0000D7FF = ed 9f bf = \"퟿\"                                            |\n2.3.2  U-0000E000 = ee 80 80 = \"\"                                            |\n2.3.3  U-0000FFFD = ef bf bd = \"�\"                                            |\n2.3.4  U-0010FFFF = f4 8f bf bf = \"􏿿\"                                         |\n2.3.5  U-00110000 = f4 90 80 80 = \"����\"                                         |\n                                                                              |\n3  Malformed sequences                                                        |\n                                                                              |\n3.1  Unexpected continuation bytes                                            |\n                                                                              |\nEach unexpected continuation byte should be separately signalled as a         |\nmalformed sequence of its own.                                                |\n                                                                              |\n3.1.1  First continuation byte 0x80: \"�\"                                      |\n3.1.2  Last  continuation byte 0xbf: \"�\"                                      |\n                                                                              |\n3.1.3  2 continuation bytes: \"��\"                                             |\n3.1.4  3 continuation bytes: \"���\"                                            |\n3.1.5  4 continuation bytes: \"����\"                                           |\n3.1.6  5 continuation bytes: \"�����\"                                          |\n3.1.7  6 continuation bytes: \"������\"                                         |\n3.1.8  7 continuation bytes: \"�������\"                                        |\n                                                                              |\n3.1.9  Sequence of all 64 possible continuation bytes (0x80-0xbf):            |\n                                                                              |\n   \"����������������                                                          |\n    ����������������                                                          |\n    ����������������                                                          |\n    ����������������\"                                                         |\n                                                                              |\n3.2  Lonely start characters                                                  |\n                                                                              |\n3.2.1  All 32 first bytes of 2-byte sequences (0xc0-0xdf),                    |\n       each followed by a space character:                                    |\n                                                                              |\n   \"� � � � � � � � � � � � � � � �                                           |\n    � � � � � � � � � � � � � � � � \"                                         |\n                                                                              |\n3.2.2  All 16 first bytes of 3-byte sequences (0xe0-0xef),                    |\n       each followed by a space character:                                    |\n                                                                              |\n   \"� � � � � � � � � � � � � � � � \"                                         |\n                                                                              |\n3.2.3  All 8 first bytes of 4-byte sequences (0xf0-0xf7),                     |\n       each followed by a space character:                                    |\n                                                                              |\n   \"� � � � � � � � \"                                                         |\n                                                                              |\n3.2.4  All 4 first bytes of 5-byte sequences (0xf8-0xfb),                     |\n       each followed by a space character:                                    |\n                                                                              |\n   \"� � � � \"                                                                 |\n                                                                              |\n3.2.5  All 2 first bytes of 6-byte sequences (0xfc-0xfd),                     |\n       each followed by a space character:                                    |\n                                                                              |\n   \"� � \"                                                                     |\n                                                                              |\n3.3  Sequences with last continuation byte missing                            |\n                                                                              |\nAll bytes of an incomplete sequence should be signalled as a single           |\nmalformed sequence, i.e., you should see only a single replacement            |\ncharacter in each of the next 10 tests. (Characters as in section 2)          |\n                                                                              |\n3.3.1  2-byte sequence with last byte missing (U+0000):     \"�\"               |\n3.3.2  3-byte sequence with last byte missing (U+0000):     \"��\"               |\n3.3.3  4-byte sequence with last byte missing (U+0000):     \"���\"               |\n3.3.4  5-byte sequence with last byte missing (U+0000):     \"����\"               |\n3.3.5  6-byte sequence with last byte missing (U+0000):     \"�����\"               |\n3.3.6  2-byte sequence with last byte missing (U-000007FF): \"�\"               |\n3.3.7  3-byte sequence with last byte missing (U-0000FFFF): \"�\"               |\n3.3.8  4-byte sequence with last byte missing (U-001FFFFF): \"���\"               |\n3.3.9  5-byte sequence with last byte missing (U-03FFFFFF): \"����\"               |\n3.3.10 6-byte sequence with last byte missing (U-7FFFFFFF): \"�����\"               |\n                                                                              |\n3.4  Concatenation of incomplete sequences                                    |\n                                                                              |\nAll the 10 sequences of 3.3 concatenated, you should see 10 malformed         |\nsequences being signalled:                                                    |\n                                                                              |\n   \"�����������������������������\"                                                               |\n                                                                              |\n3.5  Impossible bytes                                                         |\n                                                                              |\nThe following two bytes cannot appear in a correct UTF-8 string               |\n                                                                              |\n3.5.1  fe = \"�\"                                                               |\n3.5.2  ff = \"�\"                                                               |\n3.5.3  fe fe ff ff = \"����\"                                                   |\n                                                                              |\n4  Overlong sequences                                                         |\n                                                                              |\nThe following sequences are not malformed according to the letter of          |\nthe Unicode 2.0 standard. However, they are longer then necessary and         |\na correct UTF-8 encoder is not allowed to produce them. A \"safe UTF-8         |\ndecoder\" should reject them just like malformed sequences for two             |\nreasons: (1) It helps to debug applications if overlong sequences are         |\nnot treated as valid representations of characters, because this helps        |\nto spot problems more quickly. (2) Overlong sequences provide                 |\nalternative representations of characters, that could maliciously be          |\nused to bypass filters that check only for ASCII characters. For              |\ninstance, a 2-byte encoded line feed (LF) would not be caught by a            |\nline counter that counts only 0x0a bytes, but it would still be               |\nprocessed as a line feed by an unsafe UTF-8 decoder later in the              |\npipeline. From a security point of view, ASCII compatibility of UTF-8         |\nsequences means also, that ASCII characters are *only* allowed to be          |\nrepresented by ASCII bytes in the range 0x00-0x7f. To ensure this             |\naspect of ASCII compatibility, use only \"safe UTF-8 decoders\" that            |\nreject overlong UTF-8 sequences for which a shorter encoding exists.          |\n                                                                              |\n4.1  Examples of an overlong ASCII character                                  |\n                                                                              |\nWith a safe UTF-8 decoder, all of the following five overlong                 |\nrepresentations of the ASCII character slash (\"/\") should be rejected         |\nlike a malformed UTF-8 sequence, for instance by substituting it with         |\na replacement character. If you see a slash below, you do not have a          |\nsafe UTF-8 decoder!                                                           |\n                                                                              |\n4.1.1 U+002F = c0 af             = \"��\"                                        |\n4.1.2 U+002F = e0 80 af          = \"���\"                                        |\n4.1.3 U+002F = f0 80 80 af       = \"����\"                                        |\n4.1.4 U+002F = f8 80 80 80 af    = \"�����\"                                        |\n4.1.5 U+002F = fc 80 80 80 80 af = \"������\"                                        |\n                                                                              |\n4.2  Maximum overlong sequences                                               |\n                                                                              |\nBelow you see the highest Unicode value that is still resulting in an         |\noverlong sequence if represented with the given number of bytes. This         |\nis a boundary test for safe UTF-8 decoders. All five characters should        |\nbe rejected like malformed UTF-8 sequences.                                   |\n                                                                              |\n4.2.1  U-0000007F = c1 bf             = \"��\"                                   |\n4.2.2  U-000007FF = e0 9f bf          = \"���\"                                   |\n4.2.3  U-0000FFFF = f0 8f bf bf       = \"����\"                                   |\n4.2.4  U-001FFFFF = f8 87 bf bf bf    = \"�����\"                                   |\n4.2.5  U-03FFFFFF = fc 83 bf bf bf bf = \"������\"                                   |\n                                                                              |\n4.3  Overlong representation of the NUL character                             |\n                                                                              |\nThe following five sequences should also be rejected like malformed           |\nUTF-8 sequences and should not be treated like the ASCII NUL                  |\ncharacter.                                                                    |\n                                                                              |\n4.3.1  U+0000 = c0 80             = \"��\"                                       |\n4.3.2  U+0000 = e0 80 80          = \"���\"                                       |\n4.3.3  U+0000 = f0 80 80 80       = \"����\"                                       |\n4.3.4  U+0000 = f8 80 80 80 80    = \"�����\"                                       |\n4.3.5  U+0000 = fc 80 80 80 80 80 = \"������\"                                       |\n                                                                              |\n5  Illegal code positions                                                     |\n                                                                              |\nThe following UTF-8 sequences should be rejected like malformed               |\nsequences, because they never represent valid ISO 10646 characters and        |\na UTF-8 decoder that accepts them might introduce security problems           |\ncomparable to overlong UTF-8 sequences.                                       |\n                                                                              |\n5.1 Single UTF-16 surrogates                                                  |\n                                                                              |\n5.1.1  U+D800 = ed a0 80 = \"���\"                                                |\n5.1.2  U+DB7F = ed ad bf = \"���\"                                                |\n5.1.3  U+DB80 = ed ae 80 = \"���\"                                                |\n5.1.4  U+DBFF = ed af bf = \"���\"                                                |\n5.1.5  U+DC00 = ed b0 80 = \"���\"                                                |\n5.1.6  U+DF80 = ed be 80 = \"���\"                                                |\n5.1.7  U+DFFF = ed bf bf = \"���\"                                                |\n                                                                              |\n5.2 Paired UTF-16 surrogates                                                  |\n                                                                              |\n5.2.1  U+D800 U+DC00 = ed a0 80 ed b0 80 = \"������\"                               |\n5.2.2  U+D800 U+DFFF = ed a0 80 ed bf bf = \"������\"                               |\n5.2.3  U+DB7F U+DC00 = ed ad bf ed b0 80 = \"������\"                               |\n5.2.4  U+DB7F U+DFFF = ed ad bf ed bf bf = \"������\"                               |\n5.2.5  U+DB80 U+DC00 = ed ae 80 ed b0 80 = \"������\"                               |\n5.2.6  U+DB80 U+DFFF = ed ae 80 ed bf bf = \"������\"                               |\n5.2.7  U+DBFF U+DC00 = ed af bf ed b0 80 = \"������\"                               |\n5.2.8  U+DBFF U+DFFF = ed af bf ed bf bf = \"������\"                               |\n                                                                              |\n5.3 Other illegal code positions                                              |\n                                                                              |\n5.3.1  U+FFFE = ef bf be = \"\"                                                |\n5.3.2  U+FFFF = ef bf bf = \"\"                                                |\n                                                                              |\nTHE END                                                                       |\n"]
diff --git a/json-framework-3.2.0/Tests/Data/invalid/eof/error b/json-framework-3.2.0/Tests/Data/invalid/eof/error
new file mode 100644
index 0000000..a3eac87
--- /dev/null
+++ b/json-framework-3.2.0/Tests/Data/invalid/eof/error
@@ -0,0 +1 @@
+Unexpected end of input
diff --git a/json-framework-3.2.0/Tests/Data/invalid/garbage/asterisk/error b/json-framework-3.2.0/Tests/Data/invalid/garbage/asterisk/error
new file mode 100644
index 0000000..0d8f963
--- /dev/null
+++ b/json-framework-3.2.0/Tests/Data/invalid/garbage/asterisk/error
@@ -0,0 +1 @@
+Illegal start of token [*]
diff --git a/json-framework-3.2.0/Tests/Data/invalid/garbage/asterisk/input b/json-framework-3.2.0/Tests/Data/invalid/garbage/asterisk/input
new file mode 100644
index 0000000..f6bcc5b
--- /dev/null
+++ b/json-framework-3.2.0/Tests/Data/invalid/garbage/asterisk/input
@@ -0,0 +1 @@
+[*
diff --git a/json-framework-3.2.0/Tests/Data/invalid/garbage/single-quote/error b/json-framework-3.2.0/Tests/Data/invalid/garbage/single-quote/error
new file mode 100644
index 0000000..3b20f63
--- /dev/null
+++ b/json-framework-3.2.0/Tests/Data/invalid/garbage/single-quote/error
@@ -0,0 +1 @@
+Illegal start of token [']
diff --git a/json-framework-3.2.0/Tests/Data/invalid/garbage/single-quote/input b/json-framework-3.2.0/Tests/Data/invalid/garbage/single-quote/input
new file mode 100644
index 0000000..f2dd4d2
--- /dev/null
+++ b/json-framework-3.2.0/Tests/Data/invalid/garbage/single-quote/input
@@ -0,0 +1 @@
+['
diff --git a/json-framework-3.2.0/Tests/Data/invalid/null/error b/json-framework-3.2.0/Tests/Data/invalid/null/error
new file mode 100644
index 0000000..6f82085
--- /dev/null
+++ b/json-framework-3.2.0/Tests/Data/invalid/null/error
@@ -0,0 +1 @@
+Expected 'null' after initial 'n'
diff --git a/json-framework-3.2.0/Tests/Data/invalid/null/input b/json-framework-3.2.0/Tests/Data/invalid/null/input
new file mode 100644
index 0000000..4a04698
--- /dev/null
+++ b/json-framework-3.2.0/Tests/Data/invalid/null/input
@@ -0,0 +1 @@
+[nill
diff --git a/json-framework-3.2.0/Tests/Data/invalid/number/leading-plus/error b/json-framework-3.2.0/Tests/Data/invalid/number/leading-plus/error
new file mode 100644
index 0000000..0b00748
--- /dev/null
+++ b/json-framework-3.2.0/Tests/Data/invalid/number/leading-plus/error
@@ -0,0 +1 @@
+Leading + is illegal in number
diff --git a/json-framework-3.2.0/Tests/Data/invalid/number/leading-plus/input b/json-framework-3.2.0/Tests/Data/invalid/number/leading-plus/input
new file mode 100644
index 0000000..63cb3e7
--- /dev/null
+++ b/json-framework-3.2.0/Tests/Data/invalid/number/leading-plus/input
@@ -0,0 +1 @@
+[+1
diff --git a/json-framework-3.2.0/Tests/Data/invalid/number/leading-zero/error b/json-framework-3.2.0/Tests/Data/invalid/number/leading-zero/error
new file mode 100644
index 0000000..dd41a0c
--- /dev/null
+++ b/json-framework-3.2.0/Tests/Data/invalid/number/leading-zero/error
@@ -0,0 +1 @@
+Leading zero is illegal in number
diff --git a/json-framework-3.2.0/Tests/Data/invalid/number/leading-zero/input b/json-framework-3.2.0/Tests/Data/invalid/number/leading-zero/input
new file mode 100644
index 0000000..3a07129
--- /dev/null
+++ b/json-framework-3.2.0/Tests/Data/invalid/number/leading-zero/input
@@ -0,0 +1 @@
+[01
diff --git a/json-framework-3.2.0/Tests/Data/invalid/number/no-digits-after-decimal/error b/json-framework-3.2.0/Tests/Data/invalid/number/no-digits-after-decimal/error
new file mode 100644
index 0000000..6c149d0
--- /dev/null
+++ b/json-framework-3.2.0/Tests/Data/invalid/number/no-digits-after-decimal/error
@@ -0,0 +1 @@
+No digits after decimal point
diff --git a/json-framework-3.2.0/Tests/Data/invalid/number/no-digits-after-decimal/input b/json-framework-3.2.0/Tests/Data/invalid/number/no-digits-after-decimal/input
new file mode 100644
index 0000000..894f9db
--- /dev/null
+++ b/json-framework-3.2.0/Tests/Data/invalid/number/no-digits-after-decimal/input
@@ -0,0 +1 @@
+[0.
diff --git a/json-framework-3.2.0/Tests/Data/invalid/number/no-digits-after-exponent-1/error b/json-framework-3.2.0/Tests/Data/invalid/number/no-digits-after-exponent-1/error
new file mode 100644
index 0000000..461d0d1
--- /dev/null
+++ b/json-framework-3.2.0/Tests/Data/invalid/number/no-digits-after-exponent-1/error
@@ -0,0 +1 @@
+No digits in exponent
diff --git a/json-framework-3.2.0/Tests/Data/invalid/number/no-digits-after-exponent-1/input b/json-framework-3.2.0/Tests/Data/invalid/number/no-digits-after-exponent-1/input
new file mode 100644
index 0000000..5d5119b
--- /dev/null
+++ b/json-framework-3.2.0/Tests/Data/invalid/number/no-digits-after-exponent-1/input
@@ -0,0 +1 @@
+[1e-
diff --git a/json-framework-3.2.0/Tests/Data/invalid/number/no-digits-after-exponent-2/error b/json-framework-3.2.0/Tests/Data/invalid/number/no-digits-after-exponent-2/error
new file mode 100644
index 0000000..461d0d1
--- /dev/null
+++ b/json-framework-3.2.0/Tests/Data/invalid/number/no-digits-after-exponent-2/error
@@ -0,0 +1 @@
+No digits in exponent
diff --git a/json-framework-3.2.0/Tests/Data/invalid/number/no-digits-after-exponent-2/input b/json-framework-3.2.0/Tests/Data/invalid/number/no-digits-after-exponent-2/input
new file mode 100644
index 0000000..d3a79c2
--- /dev/null
+++ b/json-framework-3.2.0/Tests/Data/invalid/number/no-digits-after-exponent-2/input
@@ -0,0 +1 @@
+[1e
diff --git a/json-framework-3.2.0/Tests/Data/invalid/number/no-digits-after-exponent-3/error b/json-framework-3.2.0/Tests/Data/invalid/number/no-digits-after-exponent-3/error
new file mode 100644
index 0000000..461d0d1
--- /dev/null
+++ b/json-framework-3.2.0/Tests/Data/invalid/number/no-digits-after-exponent-3/error
@@ -0,0 +1 @@
+No digits in exponent
diff --git a/json-framework-3.2.0/Tests/Data/invalid/number/no-digits-after-exponent-3/input b/json-framework-3.2.0/Tests/Data/invalid/number/no-digits-after-exponent-3/input
new file mode 100644
index 0000000..81bb4fc
--- /dev/null
+++ b/json-framework-3.2.0/Tests/Data/invalid/number/no-digits-after-exponent-3/input
@@ -0,0 +1 @@
+[1e+
diff --git a/json-framework-3.2.0/Tests/Data/invalid/number/no-digits-after-minus/error b/json-framework-3.2.0/Tests/Data/invalid/number/no-digits-after-minus/error
new file mode 100644
index 0000000..2b0eb1c
--- /dev/null
+++ b/json-framework-3.2.0/Tests/Data/invalid/number/no-digits-after-minus/error
@@ -0,0 +1 @@
+No digits after initial minus
diff --git a/json-framework-3.2.0/Tests/Data/invalid/number/no-digits-after-minus/input b/json-framework-3.2.0/Tests/Data/invalid/number/no-digits-after-minus/input
new file mode 100644
index 0000000..31a3b40
--- /dev/null
+++ b/json-framework-3.2.0/Tests/Data/invalid/number/no-digits-after-minus/input
@@ -0,0 +1 @@
+[-
diff --git a/json-framework-3.2.0/Tests/Data/invalid/number/overflow-exponent-1/error b/json-framework-3.2.0/Tests/Data/invalid/number/overflow-exponent-1/error
new file mode 100644
index 0000000..4406ef9
--- /dev/null
+++ b/json-framework-3.2.0/Tests/Data/invalid/number/overflow-exponent-1/error
@@ -0,0 +1 @@
+Exponent out of range
diff --git a/json-framework-3.2.0/Tests/Data/invalid/number/overflow-exponent-1/input b/json-framework-3.2.0/Tests/Data/invalid/number/overflow-exponent-1/input
new file mode 100644
index 0000000..71d2fc2
--- /dev/null
+++ b/json-framework-3.2.0/Tests/Data/invalid/number/overflow-exponent-1/input
@@ -0,0 +1 @@
+[1e128]
diff --git a/json-framework-3.2.0/Tests/Data/invalid/number/overflow-exponent-2/error b/json-framework-3.2.0/Tests/Data/invalid/number/overflow-exponent-2/error
new file mode 100644
index 0000000..4406ef9
--- /dev/null
+++ b/json-framework-3.2.0/Tests/Data/invalid/number/overflow-exponent-2/error
@@ -0,0 +1 @@
+Exponent out of range
diff --git a/json-framework-3.2.0/Tests/Data/invalid/number/overflow-exponent-2/input b/json-framework-3.2.0/Tests/Data/invalid/number/overflow-exponent-2/input
new file mode 100644
index 0000000..b386b91
--- /dev/null
+++ b/json-framework-3.2.0/Tests/Data/invalid/number/overflow-exponent-2/input
@@ -0,0 +1 @@
+[1e-129]
diff --git a/json-framework-3.2.0/Tests/Data/invalid/number/overflow-mantissa/error b/json-framework-3.2.0/Tests/Data/invalid/number/overflow-mantissa/error
new file mode 100644
index 0000000..226a8a5
--- /dev/null
+++ b/json-framework-3.2.0/Tests/Data/invalid/number/overflow-mantissa/error
@@ -0,0 +1 @@
+Precision is too high
diff --git a/json-framework-3.2.0/Tests/Data/invalid/number/overflow-mantissa/input b/json-framework-3.2.0/Tests/Data/invalid/number/overflow-mantissa/input
new file mode 100644
index 0000000..8e6e809
--- /dev/null
+++ b/json-framework-3.2.0/Tests/Data/invalid/number/overflow-mantissa/input
@@ -0,0 +1 @@
+[123456789012345678901234567890123456789]
diff --git a/json-framework-3.2.0/Tests/Data/invalid/object/eof-1/error b/json-framework-3.2.0/Tests/Data/invalid/object/eof-1/error
new file mode 100644
index 0000000..a3eac87
--- /dev/null
+++ b/json-framework-3.2.0/Tests/Data/invalid/object/eof-1/error
@@ -0,0 +1 @@
+Unexpected end of input
diff --git a/json-framework-3.2.0/Tests/Data/invalid/object/eof-1/input b/json-framework-3.2.0/Tests/Data/invalid/object/eof-1/input
new file mode 100644
index 0000000..98232c6
--- /dev/null
+++ b/json-framework-3.2.0/Tests/Data/invalid/object/eof-1/input
@@ -0,0 +1 @@
+{
diff --git a/json-framework-3.2.0/Tests/Data/invalid/object/eof-2/error b/json-framework-3.2.0/Tests/Data/invalid/object/eof-2/error
new file mode 100644
index 0000000..a3eac87
--- /dev/null
+++ b/json-framework-3.2.0/Tests/Data/invalid/object/eof-2/error
@@ -0,0 +1 @@
+Unexpected end of input
diff --git a/json-framework-3.2.0/Tests/Data/invalid/object/eof-2/input b/json-framework-3.2.0/Tests/Data/invalid/object/eof-2/input
new file mode 100644
index 0000000..107e626
--- /dev/null
+++ b/json-framework-3.2.0/Tests/Data/invalid/object/eof-2/input
@@ -0,0 +1 @@
+{"a"
diff --git a/json-framework-3.2.0/Tests/Data/invalid/object/eof-3/error b/json-framework-3.2.0/Tests/Data/invalid/object/eof-3/error
new file mode 100644
index 0000000..a3eac87
--- /dev/null
+++ b/json-framework-3.2.0/Tests/Data/invalid/object/eof-3/error
@@ -0,0 +1 @@
+Unexpected end of input
diff --git a/json-framework-3.2.0/Tests/Data/invalid/object/eof-3/input b/json-framework-3.2.0/Tests/Data/invalid/object/eof-3/input
new file mode 100644
index 0000000..f68f262
--- /dev/null
+++ b/json-framework-3.2.0/Tests/Data/invalid/object/eof-3/input
@@ -0,0 +1 @@
+{"a":
diff --git a/json-framework-3.2.0/Tests/Data/invalid/object/eof-4/error b/json-framework-3.2.0/Tests/Data/invalid/object/eof-4/error
new file mode 100644
index 0000000..a3eac87
--- /dev/null
+++ b/json-framework-3.2.0/Tests/Data/invalid/object/eof-4/error
@@ -0,0 +1 @@
+Unexpected end of input
diff --git a/json-framework-3.2.0/Tests/Data/invalid/object/eof-4/input b/json-framework-3.2.0/Tests/Data/invalid/object/eof-4/input
new file mode 100644
index 0000000..8c3441c
--- /dev/null
+++ b/json-framework-3.2.0/Tests/Data/invalid/object/eof-4/input
@@ -0,0 +1 @@
+{"a":{}
diff --git a/json-framework-3.2.0/Tests/Data/invalid/string/ctrl-chars/newline/error b/json-framework-3.2.0/Tests/Data/invalid/string/ctrl-chars/newline/error
new file mode 100644
index 0000000..fcf86fe
--- /dev/null
+++ b/json-framework-3.2.0/Tests/Data/invalid/string/ctrl-chars/newline/error
@@ -0,0 +1 @@
+Unescaped control character [0x0A]
diff --git a/json-framework-3.2.0/Tests/Data/invalid/string/ctrl-chars/newline/input b/json-framework-3.2.0/Tests/Data/invalid/string/ctrl-chars/newline/input
new file mode 100644
index 0000000..9b30aac
--- /dev/null
+++ b/json-framework-3.2.0/Tests/Data/invalid/string/ctrl-chars/newline/input
@@ -0,0 +1,2 @@
+["
+
diff --git a/json-framework-3.2.0/Tests/Data/invalid/string/ctrl-chars/tab/error b/json-framework-3.2.0/Tests/Data/invalid/string/ctrl-chars/tab/error
new file mode 100644
index 0000000..b727ec3
--- /dev/null
+++ b/json-framework-3.2.0/Tests/Data/invalid/string/ctrl-chars/tab/error
@@ -0,0 +1 @@
+Unescaped control character [0x09]
diff --git a/json-framework-3.2.0/Tests/Data/invalid/string/ctrl-chars/tab/input b/json-framework-3.2.0/Tests/Data/invalid/string/ctrl-chars/tab/input
new file mode 100644
index 0000000..ea5f696
--- /dev/null
+++ b/json-framework-3.2.0/Tests/Data/invalid/string/ctrl-chars/tab/input
@@ -0,0 +1 @@
+["	"
diff --git a/json-framework-3.2.0/Tests/Data/invalid/string/invalid-hex-quad/error b/json-framework-3.2.0/Tests/Data/invalid/string/invalid-hex-quad/error
new file mode 100644
index 0000000..6cc5878
--- /dev/null
+++ b/json-framework-3.2.0/Tests/Data/invalid/string/invalid-hex-quad/error
@@ -0,0 +1 @@
+Invalid hex quad
diff --git a/json-framework-3.2.0/Tests/Data/invalid/string/invalid-hex-quad/input b/json-framework-3.2.0/Tests/Data/invalid/string/invalid-hex-quad/input
new file mode 100644
index 0000000..aa681fc
--- /dev/null
+++ b/json-framework-3.2.0/Tests/Data/invalid/string/invalid-hex-quad/input
@@ -0,0 +1 @@
+["\udefg
diff --git a/json-framework-3.2.0/Tests/Data/invalid/string/unicode-invalid-high-surrogate/error b/json-framework-3.2.0/Tests/Data/invalid/string/unicode-invalid-high-surrogate/error
new file mode 100644
index 0000000..4fe6471
--- /dev/null
+++ b/json-framework-3.2.0/Tests/Data/invalid/string/unicode-invalid-high-surrogate/error
@@ -0,0 +1 @@
+Invalid high character in surrogate pair
diff --git a/json-framework-3.2.0/Tests/Data/invalid/string/unicode-invalid-high-surrogate/input b/json-framework-3.2.0/Tests/Data/invalid/string/unicode-invalid-high-surrogate/input
new file mode 100644
index 0000000..4a1d124
--- /dev/null
+++ b/json-framework-3.2.0/Tests/Data/invalid/string/unicode-invalid-high-surrogate/input
@@ -0,0 +1 @@
+["\udd1ef
diff --git a/json-framework-3.2.0/Tests/Data/invalid/string/unicode-invalid-low-surrogate/error b/json-framework-3.2.0/Tests/Data/invalid/string/unicode-invalid-low-surrogate/error
new file mode 100644
index 0000000..0cb209f
--- /dev/null
+++ b/json-framework-3.2.0/Tests/Data/invalid/string/unicode-invalid-low-surrogate/error
@@ -0,0 +1 @@
+Invalid low character in surrogate pair
diff --git a/json-framework-3.2.0/Tests/Data/invalid/string/unicode-invalid-low-surrogate/input b/json-framework-3.2.0/Tests/Data/invalid/string/unicode-invalid-low-surrogate/input
new file mode 100644
index 0000000..9925021
--- /dev/null
+++ b/json-framework-3.2.0/Tests/Data/invalid/string/unicode-invalid-low-surrogate/input
@@ -0,0 +1 @@
+["\ud834\u001e
diff --git a/json-framework-3.2.0/Tests/Data/invalid/string/unicode-missing-low-surrogate/error b/json-framework-3.2.0/Tests/Data/invalid/string/unicode-missing-low-surrogate/error
new file mode 100644
index 0000000..9f36b78
--- /dev/null
+++ b/json-framework-3.2.0/Tests/Data/invalid/string/unicode-missing-low-surrogate/error
@@ -0,0 +1 @@
+Missing low character in surrogate pair
diff --git a/json-framework-3.2.0/Tests/Data/invalid/string/unicode-missing-low-surrogate/input b/json-framework-3.2.0/Tests/Data/invalid/string/unicode-missing-low-surrogate/input
new file mode 100644
index 0000000..dbf75bd
--- /dev/null
+++ b/json-framework-3.2.0/Tests/Data/invalid/string/unicode-missing-low-surrogate/input
@@ -0,0 +1 @@
+["\ud834foobar
diff --git a/json-framework-3.2.0/Tests/Data/jsonchecker/README b/json-framework-3.2.0/Tests/Data/jsonchecker/README
new file mode 100644
index 0000000..425dc55
--- /dev/null
+++ b/json-framework-3.2.0/Tests/Data/jsonchecker/README
@@ -0,0 +1 @@
+Source: http://json.org/JSON_checker/
\ No newline at end of file
diff --git a/json-framework-3.2.0/Tests/Data/jsonchecker/fail1.json b/json-framework-3.2.0/Tests/Data/jsonchecker/fail1.json
new file mode 100644
index 0000000..6216b86
--- /dev/null
+++ b/json-framework-3.2.0/Tests/Data/jsonchecker/fail1.json
@@ -0,0 +1 @@
+"A JSON payload should be an object or array, not a string."
\ No newline at end of file
diff --git a/json-framework-3.2.0/Tests/Data/jsonchecker/fail10.json b/json-framework-3.2.0/Tests/Data/jsonchecker/fail10.json
new file mode 100644
index 0000000..5d8c004
--- /dev/null
+++ b/json-framework-3.2.0/Tests/Data/jsonchecker/fail10.json
@@ -0,0 +1 @@
+{"Extra value after close": true} "misplaced quoted value"
\ No newline at end of file
diff --git a/json-framework-3.2.0/Tests/Data/jsonchecker/fail11.json b/json-framework-3.2.0/Tests/Data/jsonchecker/fail11.json
new file mode 100644
index 0000000..76eb95b
--- /dev/null
+++ b/json-framework-3.2.0/Tests/Data/jsonchecker/fail11.json
@@ -0,0 +1 @@
+{"Illegal expression": 1 + 2}
\ No newline at end of file
diff --git a/json-framework-3.2.0/Tests/Data/jsonchecker/fail12.json b/json-framework-3.2.0/Tests/Data/jsonchecker/fail12.json
new file mode 100644
index 0000000..77580a4
--- /dev/null
+++ b/json-framework-3.2.0/Tests/Data/jsonchecker/fail12.json
@@ -0,0 +1 @@
+{"Illegal invocation": alert()}
\ No newline at end of file
diff --git a/json-framework-3.2.0/Tests/Data/jsonchecker/fail13.json b/json-framework-3.2.0/Tests/Data/jsonchecker/fail13.json
new file mode 100644
index 0000000..379406b
--- /dev/null
+++ b/json-framework-3.2.0/Tests/Data/jsonchecker/fail13.json
@@ -0,0 +1 @@
+{"Numbers cannot have leading zeroes": 013}
\ No newline at end of file
diff --git a/json-framework-3.2.0/Tests/Data/jsonchecker/fail14.json b/json-framework-3.2.0/Tests/Data/jsonchecker/fail14.json
new file mode 100644
index 0000000..0ed366b
--- /dev/null
+++ b/json-framework-3.2.0/Tests/Data/jsonchecker/fail14.json
@@ -0,0 +1 @@
+{"Numbers cannot be hex": 0x14}
\ No newline at end of file
diff --git a/json-framework-3.2.0/Tests/Data/jsonchecker/fail15.json b/json-framework-3.2.0/Tests/Data/jsonchecker/fail15.json
new file mode 100644
index 0000000..fc8376b
--- /dev/null
+++ b/json-framework-3.2.0/Tests/Data/jsonchecker/fail15.json
@@ -0,0 +1 @@
+["Illegal backslash escape: \x15"]
\ No newline at end of file
diff --git a/json-framework-3.2.0/Tests/Data/jsonchecker/fail16.json b/json-framework-3.2.0/Tests/Data/jsonchecker/fail16.json
new file mode 100644
index 0000000..3fe21d4
--- /dev/null
+++ b/json-framework-3.2.0/Tests/Data/jsonchecker/fail16.json
@@ -0,0 +1 @@
+[\naked]
\ No newline at end of file
diff --git a/json-framework-3.2.0/Tests/Data/jsonchecker/fail17.json b/json-framework-3.2.0/Tests/Data/jsonchecker/fail17.json
new file mode 100644
index 0000000..62b9214
--- /dev/null
+++ b/json-framework-3.2.0/Tests/Data/jsonchecker/fail17.json
@@ -0,0 +1 @@
+["Illegal backslash escape: \017"]
\ No newline at end of file
diff --git a/json-framework-3.2.0/Tests/Data/jsonchecker/fail18.json b/json-framework-3.2.0/Tests/Data/jsonchecker/fail18.json
new file mode 100644
index 0000000..edac927
--- /dev/null
+++ b/json-framework-3.2.0/Tests/Data/jsonchecker/fail18.json
@@ -0,0 +1 @@
+[[[[[[[[[[[[[[[[[[[["Too deep"]]]]]]]]]]]]]]]]]]]]
\ No newline at end of file
diff --git a/json-framework-3.2.0/Tests/Data/jsonchecker/fail19.json b/json-framework-3.2.0/Tests/Data/jsonchecker/fail19.json
new file mode 100644
index 0000000..3b9c46f
--- /dev/null
+++ b/json-framework-3.2.0/Tests/Data/jsonchecker/fail19.json
@@ -0,0 +1 @@
+{"Missing colon" null}
\ No newline at end of file
diff --git a/json-framework-3.2.0/Tests/Data/jsonchecker/fail2.json b/json-framework-3.2.0/Tests/Data/jsonchecker/fail2.json
new file mode 100644
index 0000000..6b7c11e
--- /dev/null
+++ b/json-framework-3.2.0/Tests/Data/jsonchecker/fail2.json
@@ -0,0 +1 @@
+["Unclosed array"
\ No newline at end of file
diff --git a/json-framework-3.2.0/Tests/Data/jsonchecker/fail20.json b/json-framework-3.2.0/Tests/Data/jsonchecker/fail20.json
new file mode 100644
index 0000000..27c1af3
--- /dev/null
+++ b/json-framework-3.2.0/Tests/Data/jsonchecker/fail20.json
@@ -0,0 +1 @@
+{"Double colon":: null}
\ No newline at end of file
diff --git a/json-framework-3.2.0/Tests/Data/jsonchecker/fail21.json b/json-framework-3.2.0/Tests/Data/jsonchecker/fail21.json
new file mode 100644
index 0000000..6247457
--- /dev/null
+++ b/json-framework-3.2.0/Tests/Data/jsonchecker/fail21.json
@@ -0,0 +1 @@
+{"Comma instead of colon", null}
\ No newline at end of file
diff --git a/json-framework-3.2.0/Tests/Data/jsonchecker/fail22.json b/json-framework-3.2.0/Tests/Data/jsonchecker/fail22.json
new file mode 100644
index 0000000..a775258
--- /dev/null
+++ b/json-framework-3.2.0/Tests/Data/jsonchecker/fail22.json
@@ -0,0 +1 @@
+["Colon instead of comma": false]
\ No newline at end of file
diff --git a/json-framework-3.2.0/Tests/Data/jsonchecker/fail23.json b/json-framework-3.2.0/Tests/Data/jsonchecker/fail23.json
new file mode 100644
index 0000000..494add1
--- /dev/null
+++ b/json-framework-3.2.0/Tests/Data/jsonchecker/fail23.json
@@ -0,0 +1 @@
+["Bad value", truth]
\ No newline at end of file
diff --git a/json-framework-3.2.0/Tests/Data/jsonchecker/fail24.json b/json-framework-3.2.0/Tests/Data/jsonchecker/fail24.json
new file mode 100644
index 0000000..caff239
--- /dev/null
+++ b/json-framework-3.2.0/Tests/Data/jsonchecker/fail24.json
@@ -0,0 +1 @@
+['single quote']
\ No newline at end of file
diff --git a/json-framework-3.2.0/Tests/Data/jsonchecker/fail25.json b/json-framework-3.2.0/Tests/Data/jsonchecker/fail25.json
new file mode 100644
index 0000000..8b7ad23
--- /dev/null
+++ b/json-framework-3.2.0/Tests/Data/jsonchecker/fail25.json
@@ -0,0 +1 @@
+["	tab	character	in	string	"]
\ No newline at end of file
diff --git a/json-framework-3.2.0/Tests/Data/jsonchecker/fail26.json b/json-framework-3.2.0/Tests/Data/jsonchecker/fail26.json
new file mode 100644
index 0000000..845d26a
--- /dev/null
+++ b/json-framework-3.2.0/Tests/Data/jsonchecker/fail26.json
@@ -0,0 +1 @@
+["tab\   character\   in\  string\  "]
\ No newline at end of file
diff --git a/json-framework-3.2.0/Tests/Data/jsonchecker/fail27.json b/json-framework-3.2.0/Tests/Data/jsonchecker/fail27.json
new file mode 100644
index 0000000..6b01a2c
--- /dev/null
+++ b/json-framework-3.2.0/Tests/Data/jsonchecker/fail27.json
@@ -0,0 +1,2 @@
+["line
+break"]
\ No newline at end of file
diff --git a/json-framework-3.2.0/Tests/Data/jsonchecker/fail28.json b/json-framework-3.2.0/Tests/Data/jsonchecker/fail28.json
new file mode 100644
index 0000000..621a010
--- /dev/null
+++ b/json-framework-3.2.0/Tests/Data/jsonchecker/fail28.json
@@ -0,0 +1,2 @@
+["line\
+break"]
\ No newline at end of file
diff --git a/json-framework-3.2.0/Tests/Data/jsonchecker/fail29.json b/json-framework-3.2.0/Tests/Data/jsonchecker/fail29.json
new file mode 100644
index 0000000..47ec421
--- /dev/null
+++ b/json-framework-3.2.0/Tests/Data/jsonchecker/fail29.json
@@ -0,0 +1 @@
+[0e]
\ No newline at end of file
diff --git a/json-framework-3.2.0/Tests/Data/jsonchecker/fail3.json b/json-framework-3.2.0/Tests/Data/jsonchecker/fail3.json
new file mode 100644
index 0000000..168c81e
--- /dev/null
+++ b/json-framework-3.2.0/Tests/Data/jsonchecker/fail3.json
@@ -0,0 +1 @@
+{unquoted_key: "keys must be quoted"}
\ No newline at end of file
diff --git a/json-framework-3.2.0/Tests/Data/jsonchecker/fail30.json b/json-framework-3.2.0/Tests/Data/jsonchecker/fail30.json
new file mode 100644
index 0000000..8ab0bc4
--- /dev/null
+++ b/json-framework-3.2.0/Tests/Data/jsonchecker/fail30.json
@@ -0,0 +1 @@
+[0e+]
\ No newline at end of file
diff --git a/json-framework-3.2.0/Tests/Data/jsonchecker/fail31.json b/json-framework-3.2.0/Tests/Data/jsonchecker/fail31.json
new file mode 100644
index 0000000..1cce602
--- /dev/null
+++ b/json-framework-3.2.0/Tests/Data/jsonchecker/fail31.json
@@ -0,0 +1 @@
+[0e+-1]
\ No newline at end of file
diff --git a/json-framework-3.2.0/Tests/Data/jsonchecker/fail32.json b/json-framework-3.2.0/Tests/Data/jsonchecker/fail32.json
new file mode 100644
index 0000000..45cba73
--- /dev/null
+++ b/json-framework-3.2.0/Tests/Data/jsonchecker/fail32.json
@@ -0,0 +1 @@
+{"Comma instead if closing brace": true,
\ No newline at end of file
diff --git a/json-framework-3.2.0/Tests/Data/jsonchecker/fail33.json b/json-framework-3.2.0/Tests/Data/jsonchecker/fail33.json
new file mode 100644
index 0000000..ca5eb19
--- /dev/null
+++ b/json-framework-3.2.0/Tests/Data/jsonchecker/fail33.json
@@ -0,0 +1 @@
+["mismatch"}
\ No newline at end of file
diff --git a/json-framework-3.2.0/Tests/Data/jsonchecker/fail4.json b/json-framework-3.2.0/Tests/Data/jsonchecker/fail4.json
new file mode 100644
index 0000000..9de168b
--- /dev/null
+++ b/json-framework-3.2.0/Tests/Data/jsonchecker/fail4.json
@@ -0,0 +1 @@
+["extra comma",]
\ No newline at end of file
diff --git a/json-framework-3.2.0/Tests/Data/jsonchecker/fail5.json b/json-framework-3.2.0/Tests/Data/jsonchecker/fail5.json
new file mode 100644
index 0000000..ddf3ce3
--- /dev/null
+++ b/json-framework-3.2.0/Tests/Data/jsonchecker/fail5.json
@@ -0,0 +1 @@
+["double extra comma",,]
\ No newline at end of file
diff --git a/json-framework-3.2.0/Tests/Data/jsonchecker/fail6.json b/json-framework-3.2.0/Tests/Data/jsonchecker/fail6.json
new file mode 100644
index 0000000..ed91580
--- /dev/null
+++ b/json-framework-3.2.0/Tests/Data/jsonchecker/fail6.json
@@ -0,0 +1 @@
+[   , "<-- missing value"]
\ No newline at end of file
diff --git a/json-framework-3.2.0/Tests/Data/jsonchecker/fail7.json b/json-framework-3.2.0/Tests/Data/jsonchecker/fail7.json
new file mode 100644
index 0000000..8a96af3
--- /dev/null
+++ b/json-framework-3.2.0/Tests/Data/jsonchecker/fail7.json
@@ -0,0 +1 @@
+["Comma after the close"],
\ No newline at end of file
diff --git a/json-framework-3.2.0/Tests/Data/jsonchecker/fail8.json b/json-framework-3.2.0/Tests/Data/jsonchecker/fail8.json
new file mode 100644
index 0000000..b28479c
--- /dev/null
+++ b/json-framework-3.2.0/Tests/Data/jsonchecker/fail8.json
@@ -0,0 +1 @@
+["Extra close"]]
\ No newline at end of file
diff --git a/json-framework-3.2.0/Tests/Data/jsonchecker/fail9.json b/json-framework-3.2.0/Tests/Data/jsonchecker/fail9.json
new file mode 100644
index 0000000..5815574
--- /dev/null
+++ b/json-framework-3.2.0/Tests/Data/jsonchecker/fail9.json
@@ -0,0 +1 @@
+{"Extra comma": true,}
\ No newline at end of file
diff --git a/json-framework-3.2.0/Tests/Data/jsonchecker/pass1.json b/json-framework-3.2.0/Tests/Data/jsonchecker/pass1.json
new file mode 100644
index 0000000..70e2685
--- /dev/null
+++ b/json-framework-3.2.0/Tests/Data/jsonchecker/pass1.json
@@ -0,0 +1,58 @@
+[
+    "JSON Test Pattern pass1",
+    {"object with 1 member":["array with 1 element"]},
+    {},
+    [],
+    -42,
+    true,
+    false,
+    null,
+    {
+        "integer": 1234567890,
+        "real": -9876.543210,
+        "e": 0.123456789e-12,
+        "E": 1.234567890E+34,
+        "":  23456789012E66,
+        "zero": 0,
+        "one": 1,
+        "space": " ",
+        "quote": "\"",
+        "backslash": "\\",
+        "controls": "\b\f\n\r\t",
+        "slash": "/ & \/",
+        "alpha": "abcdefghijklmnopqrstuvwyz",
+        "ALPHA": "ABCDEFGHIJKLMNOPQRSTUVWYZ",
+        "digit": "0123456789",
+        "0123456789": "digit",
+        "special": "`1~!@#$%^&*()_+-={':[,]}|;.</>?",
+        "hex": "\u0123\u4567\u89AB\uCDEF\uabcd\uef4A",
+        "true": true,
+        "false": false,
+        "null": null,
+        "array":[  ],
+        "object":{  },
+        "address": "50 St. James Street",
+        "url": "http://www.JSON.org/",
+        "comment": "// /* <!-- --",
+        "# -- --> */": " ",
+        " s p a c e d " :[1,2 , 3
+
+,
+
+4 , 5        ,          6           ,7        ],"compact":[1,2,3,4,5,6,7],
+        "jsontext": "{\"object with 1 member\":[\"array with 1 element\"]}",
+        "quotes": "&#34; \u0022 %22 0x22 034 &#x22;",
+        "\/\\\"\uCAFE\uBABE\uAB98\uFCDE\ubcda\uef4A\b\f\n\r\t`1~!@#$%^&*()_+-=[]{}|;:',./<>?"
+: "A key can be any string"
+    },
+    0.5 ,98.6
+,
+99.44
+,
+
+1066,
+1e1,
+0.1e1,
+1e-1,
+1e00,2e+00,2e-00
+,"rosebud"]
\ No newline at end of file
diff --git a/json-framework-3.2.0/Tests/Data/jsonchecker/pass2.json b/json-framework-3.2.0/Tests/Data/jsonchecker/pass2.json
new file mode 100644
index 0000000..d3c63c7
--- /dev/null
+++ b/json-framework-3.2.0/Tests/Data/jsonchecker/pass2.json
@@ -0,0 +1 @@
+[[[[[[[[[[[[[[[[[[["Not too deep"]]]]]]]]]]]]]]]]]]]
\ No newline at end of file
diff --git a/json-framework-3.2.0/Tests/Data/jsonchecker/pass3.json b/json-framework-3.2.0/Tests/Data/jsonchecker/pass3.json
new file mode 100644
index 0000000..4528d51
--- /dev/null
+++ b/json-framework-3.2.0/Tests/Data/jsonchecker/pass3.json
@@ -0,0 +1,6 @@
+{
+    "JSON Test Pattern pass3": {
+        "The outermost value": "must be an object or array.",
+        "In this test": "It is an object."
+    }
+}
diff --git a/json-framework-3.2.0/Tests/Data/valid/array/input b/json-framework-3.2.0/Tests/Data/valid/array/input
new file mode 100644
index 0000000..15dd919
--- /dev/null
+++ b/json-framework-3.2.0/Tests/Data/valid/array/input
@@ -0,0 +1,6 @@
+[
+[],
+["foo"],
+["foo",["bar"]],
+["foo",["bar",["quux"]]]
+]
\ No newline at end of file
diff --git a/json-framework-3.2.0/Tests/Data/valid/array/output b/json-framework-3.2.0/Tests/Data/valid/array/output
new file mode 100644
index 0000000..d3b834a
--- /dev/null
+++ b/json-framework-3.2.0/Tests/Data/valid/array/output
@@ -0,0 +1 @@
+[[],["foo"],["foo",["bar"]],["foo",["bar",["quux"]]]]
diff --git a/json-framework-3.2.0/Tests/Data/valid/boolean/input b/json-framework-3.2.0/Tests/Data/valid/boolean/input
new file mode 100644
index 0000000..b29ad08
--- /dev/null
+++ b/json-framework-3.2.0/Tests/Data/valid/boolean/input
@@ -0,0 +1 @@
+[true,false]
diff --git a/json-framework-3.2.0/Tests/Data/valid/boolean/output b/json-framework-3.2.0/Tests/Data/valid/boolean/output
new file mode 100644
index 0000000..b29ad08
--- /dev/null
+++ b/json-framework-3.2.0/Tests/Data/valid/boolean/output
@@ -0,0 +1 @@
+[true,false]
diff --git a/json-framework-3.2.0/Tests/Data/valid/null/input b/json-framework-3.2.0/Tests/Data/valid/null/input
new file mode 100644
index 0000000..62864b3
--- /dev/null
+++ b/json-framework-3.2.0/Tests/Data/valid/null/input
@@ -0,0 +1 @@
+[null]
diff --git a/json-framework-3.2.0/Tests/Data/valid/null/output b/json-framework-3.2.0/Tests/Data/valid/null/output
new file mode 100644
index 0000000..62864b3
--- /dev/null
+++ b/json-framework-3.2.0/Tests/Data/valid/null/output
@@ -0,0 +1 @@
+[null]
diff --git a/json-framework-3.2.0/Tests/Data/valid/number/exponential/input b/json-framework-3.2.0/Tests/Data/valid/number/exponential/input
new file mode 100644
index 0000000..8a605aa
--- /dev/null
+++ b/json-framework-3.2.0/Tests/Data/valid/number/exponential/input
@@ -0,0 +1,8 @@
+[
+-333e-3,
+-333e1,
+-333e+3,
+88.8e-2,
+88.8e1,
+88.8e+2
+]
diff --git a/json-framework-3.2.0/Tests/Data/valid/number/exponential/output b/json-framework-3.2.0/Tests/Data/valid/number/exponential/output
new file mode 100644
index 0000000..4409680
--- /dev/null
+++ b/json-framework-3.2.0/Tests/Data/valid/number/exponential/output
@@ -0,0 +1 @@
+[-0.333,-3330,-333000,0.888,888,8880]
diff --git a/json-framework-3.2.0/Tests/Data/valid/number/float/input b/json-framework-3.2.0/Tests/Data/valid/number/float/input
new file mode 100644
index 0000000..3a06805
--- /dev/null
+++ b/json-framework-3.2.0/Tests/Data/valid/number/float/input
@@ -0,0 +1,8 @@
+[
+0.0001,
+2.5,
+4.4,
+99.99,
+720.17300000000000182,
+-0.0000
+]
diff --git a/json-framework-3.2.0/Tests/Data/valid/number/float/output b/json-framework-3.2.0/Tests/Data/valid/number/float/output
new file mode 100644
index 0000000..672b9ff
--- /dev/null
+++ b/json-framework-3.2.0/Tests/Data/valid/number/float/output
@@ -0,0 +1 @@
+[0.0001,2.5,4.4,99.99,720.17300000000000182,-0]
diff --git a/json-framework-3.2.0/Tests/Data/valid/number/integer/input b/json-framework-3.2.0/Tests/Data/valid/number/integer/input
new file mode 100644
index 0000000..da08926
--- /dev/null
+++ b/json-framework-3.2.0/Tests/Data/valid/number/integer/input
@@ -0,0 +1,8 @@
+[
+-98877665544332211009988776655443322110,
+-1,
+0,
+-0,
+1,
+98877665544332211009988776655443322110
+]
diff --git a/json-framework-3.2.0/Tests/Data/valid/number/integer/output b/json-framework-3.2.0/Tests/Data/valid/number/integer/output
new file mode 100644
index 0000000..a8e8e2b
--- /dev/null
+++ b/json-framework-3.2.0/Tests/Data/valid/number/integer/output
@@ -0,0 +1 @@
+[-98877665544332211009988776655443322110,-1,0,0,1,98877665544332211009988776655443322110]
diff --git a/json-framework-3.2.0/Tests/Data/valid/number/snowflake/README b/json-framework-3.2.0/Tests/Data/valid/number/snowflake/README
new file mode 100644
index 0000000..352ebd5
--- /dev/null
+++ b/json-framework-3.2.0/Tests/Data/valid/number/snowflake/README
@@ -0,0 +1,3 @@
+This test verifies Snowflake compatibility. See also:
+
+https://dev.twitter.com/docs/twitter-ids-json-and-snowflake
diff --git a/json-framework-3.2.0/Tests/Data/valid/number/snowflake/input b/json-framework-3.2.0/Tests/Data/valid/number/snowflake/input
new file mode 100644
index 0000000..8baf847
--- /dev/null
+++ b/json-framework-3.2.0/Tests/Data/valid/number/snowflake/input
@@ -0,0 +1,4 @@
+{
+	"id": 10765432100123456789,
+ 	"id_str": "10765432100123456789"
+}
diff --git a/json-framework-3.2.0/Tests/Data/valid/number/snowflake/output b/json-framework-3.2.0/Tests/Data/valid/number/snowflake/output
new file mode 100644
index 0000000..8d68d6f
--- /dev/null
+++ b/json-framework-3.2.0/Tests/Data/valid/number/snowflake/output
@@ -0,0 +1 @@
+{"id":10765432100123456789,"id_str":"10765432100123456789"}
diff --git a/json-framework-3.2.0/Tests/Data/valid/object/input b/json-framework-3.2.0/Tests/Data/valid/object/input
new file mode 100644
index 0000000..aefce17
--- /dev/null
+++ b/json-framework-3.2.0/Tests/Data/valid/object/input
@@ -0,0 +1,6 @@
+[
+{},
+{"foo":"bar"},
+{"foo":{"bar":"quux"}},
+{"foo":{"bar":{"quux":{}}}}
+]
\ No newline at end of file
diff --git a/json-framework-3.2.0/Tests/Data/valid/object/output b/json-framework-3.2.0/Tests/Data/valid/object/output
new file mode 100644
index 0000000..820cf08
--- /dev/null
+++ b/json-framework-3.2.0/Tests/Data/valid/object/output
@@ -0,0 +1 @@
+[{},{"foo":"bar"},{"foo":{"bar":"quux"}},{"foo":{"bar":{"quux":{}}}}]
diff --git a/json-framework-3.2.0/Tests/Data/valid/string/ctrl-shorthand/input b/json-framework-3.2.0/Tests/Data/valid/string/ctrl-shorthand/input
new file mode 100644
index 0000000..a70593c
--- /dev/null
+++ b/json-framework-3.2.0/Tests/Data/valid/string/ctrl-shorthand/input
@@ -0,0 +1,8 @@
+[
+"\b",
+"\t",
+"\n",
+"\f",
+"\r",
+" "
+]
\ No newline at end of file
diff --git a/json-framework-3.2.0/Tests/Data/valid/string/ctrl-shorthand/output b/json-framework-3.2.0/Tests/Data/valid/string/ctrl-shorthand/output
new file mode 100644
index 0000000..1f9f739
--- /dev/null
+++ b/json-framework-3.2.0/Tests/Data/valid/string/ctrl-shorthand/output
@@ -0,0 +1 @@
+["\b","\t","\n","\f","\r"," "]
diff --git a/json-framework-3.2.0/Tests/Data/valid/string/ctrl/input b/json-framework-3.2.0/Tests/Data/valid/string/ctrl/input
new file mode 100644
index 0000000..61d5bf8
--- /dev/null
+++ b/json-framework-3.2.0/Tests/Data/valid/string/ctrl/input
@@ -0,0 +1,35 @@
+[
+"\u0000",
+"\u0001",
+"\u0002",
+"\u0003",
+"\u0004",
+"\u0005",
+"\u0006",
+"\u0007",
+"\u0008",
+"\u0009",
+"\u000a",
+"\u000b",
+"\u000c",
+"\u000d",
+"\u000e",
+"\u000f",
+"\u0010",
+"\u0011",
+"\u0012",
+"\u0013",
+"\u0014",
+"\u0015",
+"\u0016",
+"\u0017",
+"\u0018",
+"\u0019",
+"\u001a",
+"\u001b",
+"\u001c",
+"\u001d",
+"\u001e",
+"\u001f",
+"\u0020"
+]
\ No newline at end of file
diff --git a/json-framework-3.2.0/Tests/Data/valid/string/ctrl/output b/json-framework-3.2.0/Tests/Data/valid/string/ctrl/output
new file mode 100644
index 0000000..556305b
--- /dev/null
+++ b/json-framework-3.2.0/Tests/Data/valid/string/ctrl/output
@@ -0,0 +1 @@
+["\u0000","\u0001","\u0002","\u0003","\u0004","\u0005","\u0006","\u0007","\b","\t","\n","\u000b","\f","\r","\u000e","\u000f","\u0010","\u0011","\u0012","\u0013","\u0014","\u0015","\u0016","\u0017","\u0018","\u0019","\u001a","\u001b","\u001c","\u001d","\u001e","\u001f"," "]
diff --git a/json-framework-3.2.0/Tests/Data/valid/string/escapes/input b/json-framework-3.2.0/Tests/Data/valid/string/escapes/input
new file mode 100644
index 0000000..be52c35
--- /dev/null
+++ b/json-framework-3.2.0/Tests/Data/valid/string/escapes/input
@@ -0,0 +1,18 @@
+[
+"",
+" spaces ",
+"/",
+"\\ \" \\ \"",
+"foo\"",
+"foo\"\"",
+"foo\"\"bar",
+"foo\"bar",
+"foo\\",
+"foo\\\\bar",
+"foo\\bar",
+"foobar",
+"with internal   spaces",
+"/unescaped/slashes",
+"\/escaped\/slashes",
+"\\/test\\/path"
+]
diff --git a/json-framework-3.2.0/Tests/Data/valid/string/escapes/output b/json-framework-3.2.0/Tests/Data/valid/string/escapes/output
new file mode 100644
index 0000000..8a9bdb9
--- /dev/null
+++ b/json-framework-3.2.0/Tests/Data/valid/string/escapes/output
@@ -0,0 +1 @@
+[""," spaces ","/","\\ \" \\ \"","foo\"","foo\"\"","foo\"\"bar","foo\"bar","foo\\","foo\\\\bar","foo\\bar","foobar","with internal   spaces","/unescaped/slashes","/escaped/slashes","\\/test\\/path"]
diff --git a/json-framework-3.2.0/Tests/Data/valid/string/simple/input b/json-framework-3.2.0/Tests/Data/valid/string/simple/input
new file mode 100644
index 0000000..be52c35
--- /dev/null
+++ b/json-framework-3.2.0/Tests/Data/valid/string/simple/input
@@ -0,0 +1,18 @@
+[
+"",
+" spaces ",
+"/",
+"\\ \" \\ \"",
+"foo\"",
+"foo\"\"",
+"foo\"\"bar",
+"foo\"bar",
+"foo\\",
+"foo\\\\bar",
+"foo\\bar",
+"foobar",
+"with internal   spaces",
+"/unescaped/slashes",
+"\/escaped\/slashes",
+"\\/test\\/path"
+]
diff --git a/json-framework-3.2.0/Tests/Data/valid/string/simple/output b/json-framework-3.2.0/Tests/Data/valid/string/simple/output
new file mode 100644
index 0000000..8a9bdb9
--- /dev/null
+++ b/json-framework-3.2.0/Tests/Data/valid/string/simple/output
@@ -0,0 +1 @@
+[""," spaces ","/","\\ \" \\ \"","foo\"","foo\"\"","foo\"\"bar","foo\"bar","foo\\","foo\\\\bar","foo\\bar","foobar","with internal   spaces","/unescaped/slashes","/escaped/slashes","\\/test\\/path"]
diff --git a/json-framework-3.2.0/Tests/Data/valid/string/unicode-captial-alpha/input b/json-framework-3.2.0/Tests/Data/valid/string/unicode-captial-alpha/input
new file mode 100644
index 0000000..bc0a97e
--- /dev/null
+++ b/json-framework-3.2.0/Tests/Data/valid/string/unicode-captial-alpha/input
@@ -0,0 +1,3 @@
+{
+"MATHEMATICAL ITALIC CAPITAL ALPHA": "\uD835\uDEE2"
+}
diff --git a/json-framework-3.2.0/Tests/Data/valid/string/unicode-captial-alpha/output b/json-framework-3.2.0/Tests/Data/valid/string/unicode-captial-alpha/output
new file mode 100644
index 0000000..8b0f178
--- /dev/null
+++ b/json-framework-3.2.0/Tests/Data/valid/string/unicode-captial-alpha/output
@@ -0,0 +1 @@
+{"MATHEMATICAL ITALIC CAPITAL ALPHA":"𝛢"}
diff --git a/json-framework-3.2.0/Tests/Data/valid/string/unicode-e-acute-and-ge-and-42/input b/json-framework-3.2.0/Tests/Data/valid/string/unicode-e-acute-and-ge-and-42/input
new file mode 100644
index 0000000..1b6924c
--- /dev/null
+++ b/json-framework-3.2.0/Tests/Data/valid/string/unicode-e-acute-and-ge-and-42/input
@@ -0,0 +1,3 @@
+{
+"e-acute and greater-than-or-equal-to, and 42": "42\u00e942\u226542"
+}
diff --git a/json-framework-3.2.0/Tests/Data/valid/string/unicode-e-acute-and-ge-and-42/output b/json-framework-3.2.0/Tests/Data/valid/string/unicode-e-acute-and-ge-and-42/output
new file mode 100644
index 0000000..b4bcf07
--- /dev/null
+++ b/json-framework-3.2.0/Tests/Data/valid/string/unicode-e-acute-and-ge-and-42/output
@@ -0,0 +1 @@
+{"e-acute and greater-than-or-equal-to, and 42":"42é42≥42"}
diff --git a/json-framework-3.2.0/Tests/Data/valid/string/unicode-e-acute-and-ge/input b/json-framework-3.2.0/Tests/Data/valid/string/unicode-e-acute-and-ge/input
new file mode 100644
index 0000000..88ae48c
--- /dev/null
+++ b/json-framework-3.2.0/Tests/Data/valid/string/unicode-e-acute-and-ge/input
@@ -0,0 +1,3 @@
+{
+"e-acute and greater-than-or-equal-to": "\u00e9\u2265"
+}
diff --git a/json-framework-3.2.0/Tests/Data/valid/string/unicode-e-acute-and-ge/output b/json-framework-3.2.0/Tests/Data/valid/string/unicode-e-acute-and-ge/output
new file mode 100644
index 0000000..f34f372
--- /dev/null
+++ b/json-framework-3.2.0/Tests/Data/valid/string/unicode-e-acute-and-ge/output
@@ -0,0 +1 @@
+{"e-acute and greater-than-or-equal-to":"é≥"}
diff --git a/json-framework-3.2.0/Tests/Data/valid/string/unicode-e-acute/input b/json-framework-3.2.0/Tests/Data/valid/string/unicode-e-acute/input
new file mode 100644
index 0000000..a6046ad
--- /dev/null
+++ b/json-framework-3.2.0/Tests/Data/valid/string/unicode-e-acute/input
@@ -0,0 +1,3 @@
+{
+"e-acute with upper-case hex":"\u00E9"
+}
diff --git a/json-framework-3.2.0/Tests/Data/valid/string/unicode-e-acute/output b/json-framework-3.2.0/Tests/Data/valid/string/unicode-e-acute/output
new file mode 100644
index 0000000..408fb16
--- /dev/null
+++ b/json-framework-3.2.0/Tests/Data/valid/string/unicode-e-acute/output
@@ -0,0 +1 @@
+{"e-acute with upper-case hex":"é"}
diff --git a/json-framework-3.2.0/Tests/Data/valid/string/unicode-g-clef/input b/json-framework-3.2.0/Tests/Data/valid/string/unicode-g-clef/input
new file mode 100644
index 0000000..fb51fae
--- /dev/null
+++ b/json-framework-3.2.0/Tests/Data/valid/string/unicode-g-clef/input
@@ -0,0 +1,3 @@
+{
+"MUSICAL SYMBOL G CLEF": "\uD834\uDD1E"
+}
diff --git a/json-framework-3.2.0/Tests/Data/valid/string/unicode-g-clef/output b/json-framework-3.2.0/Tests/Data/valid/string/unicode-g-clef/output
new file mode 100644
index 0000000..1a6869a
--- /dev/null
+++ b/json-framework-3.2.0/Tests/Data/valid/string/unicode-g-clef/output
@@ -0,0 +1 @@
+{"MUSICAL SYMBOL G CLEF":"𝄞"}
diff --git a/json-framework-3.2.0/Tests/ErrorTest.m b/json-framework-3.2.0/Tests/ErrorTest.m
new file mode 100644
index 0000000..210d6e9
--- /dev/null
+++ b/json-framework-3.2.0/Tests/ErrorTest.m
@@ -0,0 +1,160 @@
+/*
+ Copyright (C) 2007-2011 Stig Brautaset. All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions
+ are met:
+
+ * Redistributions of source code must retain the above copyright
+   notice, this list of conditions and the following disclaimer.
+
+ * Redistributions in binary form must reproduce the above copyright
+   notice, this list of conditions and the following disclaimer in the
+   documentation and/or other materials provided with the distribution.
+
+ * Neither the name of the author nor the names of its contributors
+   may be used to endorse or promote products derived from this
+   software without specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+ OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+ */
+
+
+#import "JsonTestCase.h"
+
+
+#define SBAssertStringContains(e, s) \
+STAssertTrue([e rangeOfString:s].location != NSNotFound, @"%@ vs %@", e, s)
+
+@interface ErrorTest : JsonTestCase
+@end
+
+@implementation ErrorTest
+
+- (void)setUp {
+    [super setUp];
+    parser.maxDepth = 4u;
+    writer.maxDepth = 4u;
+}
+
+- (NSString*)otherFileName {
+    return @"error";
+}
+
+- (void)testData {
+    [self foreachTestInSuite:@"Tests/Data/invalid" apply:^(NSString *inpath, NSString *errpath) {
+        NSData *input = [NSData dataWithContentsOfFile:inpath options:0 error:nil];
+        STAssertNotNil(input, inpath);
+        
+        NSString *error = [NSString stringWithContentsOfFile:errpath encoding:NSUTF8StringEncoding error:nil];
+        STAssertNotNil(error, errpath);
+        
+        error = [error stringByReplacingOccurrencesOfString:@"\n" withString:@""];
+        
+        STAssertNil([parser objectWithData:input], inpath);
+        STAssertEqualObjects(parser.error, error, @"%@: %@", inpath, input);
+        
+    }];
+    
+    STAssertEquals(count, (NSUInteger)31, nil);
+}
+
+- (void)testWriteRecursion {
+    // create a challenge!
+    NSMutableArray *a1 = [NSMutableArray array];
+    NSMutableArray *a2 = [NSMutableArray arrayWithObject:a1];
+    [a1 addObject:a2];
+    
+    STAssertNil([writer stringWithObject:a1], nil);
+    STAssertEqualObjects(writer.error, @"Nested too deep", writer.error);
+}
+
+
+- (void)testUnsupportedObject {
+    
+    STAssertNil([writer stringWithObject:[NSData data]], nil);
+    STAssertNotNil(writer.error, nil);
+}
+
+- (void)testNonStringDictionaryKey {
+    NSArray *keys = [NSArray arrayWithObjects:[NSNull null],
+                     [NSNumber numberWithInt:1],
+                     [NSArray array],
+                     [NSDictionary dictionary],
+                     nil];
+    
+    for (id key in keys) {
+        NSDictionary *object = [NSDictionary dictionaryWithObject:@"1" forKey:key];
+        STAssertEqualObjects([writer stringWithObject:object], nil, nil);
+        STAssertNotNil(writer.error, nil);
+    }
+}
+
+
+- (void)testScalar {
+    NSArray *fragments = [NSArray arrayWithObjects:@"foo", @"", [NSNull null], [NSNumber numberWithInt:1], [NSNumber numberWithBool:YES], nil];
+    for (NSUInteger i = 0; i < [fragments count]; i++) {
+        NSString *fragment = [fragments objectAtIndex:i];
+        
+        // We don't check the convenience category here, like we do for parsing,
+        // because the category is explicitly on the NSArray and NSDictionary objects.
+        // STAssertNil([fragment JSONRepresentation], nil);
+        
+        STAssertNil([writer stringWithObject:fragment], @"%@", fragment);
+        SBAssertStringContains(parser.error, @"Not valid type for JSON");
+    }
+}
+
+- (void)testInfinity {
+    NSArray *obj = [NSArray arrayWithObject:[NSNumber numberWithDouble:INFINITY]];    
+    STAssertNil([writer stringWithObject:obj], @"%@", obj);
+    SBAssertStringContains(parser.error, @"Infinity is not a valid number in JSON");
+}
+
+- (void)testNegativeInfinity {
+    NSArray *obj = [NSArray arrayWithObject:[NSNumber numberWithDouble:-INFINITY]];
+    
+    STAssertNil([writer stringWithObject:obj], nil);
+    SBAssertStringContains(parser.error, @"Infinity is not a valid number in JSON");
+}
+
+- (void)testNaN {
+    NSArray *obj = [NSArray arrayWithObject:[NSDecimalNumber notANumber]];
+    
+    STAssertNil([writer stringWithObject:obj], nil);
+    SBAssertStringContains(parser.error, @"NaN is not a valid number in JSON");
+}
+
+- (void)testNil {
+    STAssertNil([parser objectWithString:nil], nil);
+    STAssertEqualObjects(parser.error, @"Input was 'nil'", nil);
+    
+    STAssertNil([writer stringWithObject:nil], nil);
+    SBAssertStringContains(parser.error, @"Input was 'nil'");
+    
+}
+
+- (void)testWriteDepth {
+    writer.maxDepth = 2;
+    
+    NSArray *a1 = [NSArray array];
+    NSArray *a2 = [NSArray arrayWithObject:a1];
+    STAssertNotNil([writer stringWithObject:a2], nil);
+    
+    NSArray *a3 = [NSArray arrayWithObject:a2];
+    STAssertNil([writer stringWithObject:a3], nil);
+    STAssertEqualObjects(writer.error, @"Nested too deep", writer.error);
+}
+
+@end
diff --git a/json-framework-3.2.0/Tests/FormatTest.m b/json-framework-3.2.0/Tests/FormatTest.m
new file mode 100644
index 0000000..e322472
--- /dev/null
+++ b/json-framework-3.2.0/Tests/FormatTest.m
@@ -0,0 +1,92 @@
+/*
+ Copyright (C) 2011 Stig Brautaset. All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions
+ are met:
+
+ * Redistributions of source code must retain the above copyright
+   notice, this list of conditions and the following disclaimer.
+
+ * Redistributions in binary form must reproduce the above copyright
+   notice, this list of conditions and the following disclaimer in the
+   documentation and/or other materials provided with the distribution.
+
+ * Neither the name of the author nor the names of its contributors
+   may be used to endorse or promote products derived from this
+   software without specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+ OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+ */
+
+
+#import "JsonTestCase.h"
+
+@interface FormatTest : JsonTestCase
+@end
+
+@implementation FormatTest
+
+- (void)setUp {
+    [super setUp];
+    writer.humanReadable = YES;
+    writer.sortKeys = YES;    
+}
+
+
+- (void)testString {
+    [self foreachTestInSuite:@"Tests/Data/format" apply:^(NSString *inpath, NSString *outpath) {
+        NSError *error = nil;
+        NSString *input = [NSString stringWithContentsOfFile:inpath encoding:NSUTF8StringEncoding error:&error];
+        STAssertNotNil(input, @"%@ - %@", inpath, error);
+
+        NSString *output = [NSString stringWithContentsOfFile:outpath encoding:NSUTF8StringEncoding error:&error];
+        STAssertNotNil(output, @"%@ - %@", outpath, error);
+
+        id object = [parser objectWithString:input];
+        STAssertNotNil(object, nil);
+
+        NSString *json = [writer stringWithObject:object];
+        STAssertNotNil(json, nil);
+
+        json = [json stringByAppendingString:@"\n"];
+        STAssertEqualObjects(json, output, nil);
+    }];
+
+    STAssertEquals(count, (NSUInteger)8, nil);
+}
+
+- (void)testData {
+    [self foreachTestInSuite:@"Tests/Data/format" apply:^(NSString *inpath, NSString *outpath) {
+        NSError *error = nil;
+        NSData *input = [NSData dataWithContentsOfFile:inpath];
+        STAssertNotNil(input, @"%@ - %@", inpath, error);
+
+        id object = [parser objectWithData:input];
+        STAssertNotNil(object, nil);
+
+        NSData *json = [writer dataWithObject:object];
+        STAssertNotNil(json, nil);
+
+        NSData *output = [NSData dataWithContentsOfFile:outpath];
+        STAssertNotNil(output, @"%@ - %@", outpath, error);
+
+        output = [NSData dataWithBytes:output.bytes length:output.length-1];
+        STAssertEqualObjects(json, output, nil);
+    }];
+
+    STAssertEquals(count, (NSUInteger)8, nil);
+}
+
+@end
diff --git a/json-framework-3.2.0/Tests/JsonCheckerTest.m b/json-framework-3.2.0/Tests/JsonCheckerTest.m
new file mode 100644
index 0000000..9157b8d
--- /dev/null
+++ b/json-framework-3.2.0/Tests/JsonCheckerTest.m
@@ -0,0 +1,90 @@
+/*
+ Copyright (C) 2011 Stig Brautaset. All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions
+ are met:
+
+ * Redistributions of source code must retain the above copyright
+   notice, this list of conditions and the following disclaimer.
+
+ * Redistributions in binary form must reproduce the above copyright
+   notice, this list of conditions and the following disclaimer in the
+   documentation and/or other materials provided with the distribution.
+
+ * Neither the name of the author nor the names of its contributors
+   may be used to endorse or promote products derived from this
+   software without specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+ OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+ */
+
+
+#import "JsonTestCase.h"
+
+@interface JsonCheckerTest : JsonTestCase
+@end
+
+@implementation JsonCheckerTest
+
+- (void)setUp {
+    [super setUp];
+    parser.maxDepth = 19;
+}
+
+- (void)foreachFilePrefixedBy:(NSString*)prefix inSuite:(NSString*)suite apply:(void(^)(NSString*))block {
+    NSString *file;
+    NSString *rootPath = [[self class] pathForSuite:suite];
+    NSDirectoryEnumerator *enumerator = [[NSFileManager defaultManager] enumeratorAtPath:rootPath];
+    
+    while ((file = [enumerator nextObject])) {
+        if (![file hasPrefix:prefix])
+            continue;
+
+        NSString *path = [rootPath stringByAppendingPathComponent:file];
+        if ([[NSFileManager defaultManager] isReadableFileAtPath:path]) {
+            block(path);
+            count++;
+        }
+    }
+}
+
+- (void)testPass {
+    [self foreachFilePrefixedBy:@"pass" inSuite:@"Tests/Data/jsonchecker" apply:^(NSString* path) {
+        NSError *error = nil;
+        NSString *input = [NSString stringWithContentsOfFile:path encoding:NSUTF8StringEncoding error:&error];
+        STAssertNotNil(input, @"%@ - %@", path, error);
+
+        id object = [parser objectWithString:input];
+        STAssertNotNil(object, path);
+        STAssertNil(parser.error, path);
+
+    }];
+    STAssertEquals(count, (NSUInteger)3, nil);
+}
+
+- (void)testFail {
+    [self foreachFilePrefixedBy:@"fail" inSuite:@"Tests/Data/jsonchecker" apply:^(NSString* path) {
+        NSError *error = nil;
+        NSString *input = [NSString stringWithContentsOfFile:path encoding:NSUTF8StringEncoding error:&error];
+        STAssertNotNil(input, @"%@ - %@", path, error);
+
+        STAssertNil([parser objectWithString:input], @"%@ - %@", input, path);
+        STAssertNotNil(parser.error, @"%@ at %@", input, path);
+    }];
+
+    STAssertEquals(count, (NSUInteger)33, nil);
+}
+
+@end
diff --git a/json-framework-3.2.0/Tests/JsonTestCase.h b/json-framework-3.2.0/Tests/JsonTestCase.h
new file mode 100644
index 0000000..c1af88d
--- /dev/null
+++ b/json-framework-3.2.0/Tests/JsonTestCase.h
@@ -0,0 +1,56 @@
+/*
+ Copyright (C) 2011 Stig Brautaset. All rights reserved.
+ 
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions
+ are met:
+ 
+ * Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+ 
+ * Redistributions in binary form must reproduce the above copyright
+ notice, this list of conditions and the following disclaimer in the
+ documentation and/or other materials provided with the distribution.
+ 
+ * Neither the name of the author nor the names of its contributors
+ may be used to endorse or promote products derived from this
+ software without specific prior written permission.
+ 
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+ OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ 
+ */
+
+
+#import <SBJson/SBJson.h>
+
+typedef void (^ JsonTestCaseBlock)(NSString *, NSString *);
+
+
+@interface JsonTestCase : SenTestCase {
+    SBJsonWriter * writer;
+    SBJsonParser * parser;
+    NSUInteger  count;    
+}
+
+- (NSString*)otherFileName;
+
+- (void)foreachTestInSuite:(NSString *)suite apply:(JsonTestCaseBlock)block;
+
+/*
+ * If you want to get a valid path to enumerate over, this method
+ * deals with iOS vs Mac OSX. The path returned is guarenteed to
+ * work with NSFileManager enumeratorWithPath:
+ */
++ (NSString *)pathForSuite:(NSString *)suite;
+
+@end
diff --git a/json-framework-3.2.0/Tests/JsonTestCase.m b/json-framework-3.2.0/Tests/JsonTestCase.m
new file mode 100644
index 0000000..f3d6ec4
--- /dev/null
+++ b/json-framework-3.2.0/Tests/JsonTestCase.m
@@ -0,0 +1,89 @@
+/*
+ Copyright (C) 2011 Stig Brautaset. All rights reserved.
+ 
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions
+ are met:
+ 
+ * Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+ 
+ * Redistributions in binary form must reproduce the above copyright
+ notice, this list of conditions and the following disclaimer in the
+ documentation and/or other materials provided with the distribution.
+ 
+ * Neither the name of the author nor the names of its contributors
+ may be used to endorse or promote products derived from this
+ software without specific prior written permission.
+ 
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+ OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ 
+ */
+
+#import "JsonTestCase.h"
+
+
+
+@implementation JsonTestCase
+
+- (void)setUp {
+    count = 0;
+    parser = [[SBJsonParser alloc] init];
+    writer = [[SBJsonWriter alloc] init];
+}
+
+- (NSString*)otherFileName {
+    return @"output";
+}
+
++ (NSString *)pathForSuite:(NSString *)suite {
+    // First, can we just find the files from a relative path (Mac OSX tests)
+    NSFileManager *manager = [NSFileManager new];
+    BOOL isDir = NO;
+    if ([manager fileExistsAtPath:suite isDirectory:&isDir] && YES == isDir) {
+        return suite;
+    } else {
+        // Fall back to checking to see if the files are found in a bundle (fix for iOS tests)
+        for (NSBundle *bundle in [NSBundle allBundles]) {
+            NSString *path = [NSString stringWithFormat:@"%@/%@", [bundle resourcePath], suite];
+            isDir = YES;
+            if (NO == [manager fileExistsAtPath:path isDirectory:&isDir] || NO == isDir)
+                continue;
+            
+            NSLog(@"Valid bundle path for suite '%@' : %@", suite, path);
+            return path;
+        }
+    }
+    
+    return nil;
+}
+
+- (void)foreachTestInSuite:(NSString *)suite apply:(JsonTestCaseBlock)block {
+    NSFileManager *manager = [NSFileManager new];
+    NSString *rootPath = [[self class] pathForSuite:suite];
+    NSEnumerator *enumerator = [manager enumeratorAtPath:rootPath];
+    
+    for (NSString *file in enumerator) {
+        NSString *path = [rootPath stringByAppendingPathComponent:file];
+        NSString *inpath = [path stringByAppendingPathComponent:@"input"];
+        
+        if ([manager isReadableFileAtPath:inpath]) {
+            NSString *outpath = [path stringByAppendingPathComponent:[self otherFileName]];
+            STAssertTrue([manager isReadableFileAtPath:outpath], nil);
+            block(inpath, outpath);
+            count++;
+        }
+    }
+}
+
+@end
diff --git a/json-framework-3.2.0/Tests/ProxyTest.m b/json-framework-3.2.0/Tests/ProxyTest.m
new file mode 100644
index 0000000..6412889
--- /dev/null
+++ b/json-framework-3.2.0/Tests/ProxyTest.m
@@ -0,0 +1,108 @@
+/*
+ Copyright (C) 2009-2010 Stig Brautaset. All rights reserved.
+ 
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions are met:
+ 
+ * Redistributions of source code must retain the above copyright notice, this
+   list of conditions and the following disclaimer.
+ 
+ * Redistributions in binary form must reproduce the above copyright notice,
+   this list of conditions and the following disclaimer in the documentation
+   and/or other materials provided with the distribution.
+ 
+ * Neither the name of the author nor the names of its contributors may be used
+   to endorse or promote products derived from this software without specific
+   prior written permission.
+ 
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+ FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+ SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+ CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+ OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#import <SenTestingKit/SenTestingKit.h>
+#import <SBJson/SBJson.h>
+
+#pragma mark Helper objects
+
+@interface True : NSObject
+@end
+
+@implementation True
+- (id)proxyForJson {
+    return [NSNumber numberWithBool:YES];
+}
+@end
+
+@interface False : NSObject
+@end
+
+@implementation False
+- (id)proxyForJson {
+    return [NSNumber numberWithBool:NO];
+}
+@end
+
+@interface Bool : NSObject
+@end
+
+@implementation Bool
+- (id)proxyForJson {
+    return [NSArray arrayWithObjects:[True new], [False new], nil];
+}
+@end
+
+@implementation NSDate (Private)
+- (id)proxyForJson {
+    return [NSArray arrayWithObject:[self description]];
+}
+@end
+
+#pragma mark Tests
+
+@interface ProxyTest : SenTestCase {
+	SBJsonWriter * writer;
+}
+@end
+
+
+@implementation ProxyTest
+
+- (void)setUp {
+    writer = [SBJsonWriter new];
+}
+
+- (void)testUnsupportedWithoutProxy {
+    STAssertNil([writer stringWithObject:[NSArray arrayWithObject:[NSObject new]]], nil);
+	STAssertEqualObjects(writer.error, @"JSON serialisation not supported for NSObject", nil);
+}
+
+- (void)testUnsupportedWithProxy {
+    STAssertEqualObjects([writer stringWithObject:[NSArray arrayWithObject:[True new]]], @"[true]", nil);
+}
+
+- (void)testUnsupportedWithProxyWithoutWrapper {
+    STAssertNil([writer stringWithObject:[True new]], nil);
+}
+
+- (void)testUnsupportedWithNestedProxy {
+    STAssertEqualObjects([writer stringWithObject:[NSArray arrayWithObject:[Bool new]]], @"[[true,false]]", nil);
+}
+
+- (void)testUnsupportedWithProxyAsCategory {
+    STAssertNotNil([writer stringWithObject:[NSArray arrayWithObject:[NSDate date]]], nil);
+}
+
+- (void)testUnsupportedWithProxyAsCategoryWithoutWrapper {
+    STAssertNotNil([writer stringWithObject:[NSDate date]], nil);
+}
+
+
+@end
diff --git a/json-framework-3.2.0/Tests/RoundTripTest.m b/json-framework-3.2.0/Tests/RoundTripTest.m
new file mode 100644
index 0000000..3704b4c
--- /dev/null
+++ b/json-framework-3.2.0/Tests/RoundTripTest.m
@@ -0,0 +1,131 @@
+/*
+ Copyright (C) 2011 Stig Brautaset. All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions
+ are met:
+
+ * Redistributions of source code must retain the above copyright
+   notice, this list of conditions and the following disclaimer.
+
+ * Redistributions in binary form must reproduce the above copyright
+   notice, this list of conditions and the following disclaimer in the
+   documentation and/or other materials provided with the distribution.
+
+ * Neither the name of the author nor the names of its contributors
+   may be used to endorse or promote products derived from this
+   software without specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+ OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+ */
+
+
+#import "JsonTestCase.h"
+
+@interface RoundTripTest : JsonTestCase
+@end
+
+@implementation RoundTripTest
+
+- (void)testString {
+    [self foreachTestInSuite:@"Tests/Data/valid" apply:^(NSString *inpath, NSString *outpath) {
+        NSError *error = nil;
+        NSString *input = [NSString stringWithContentsOfFile:inpath encoding:NSUTF8StringEncoding error:&error];
+        STAssertNotNil(input, @"%@ - %@", inpath, error);
+
+        NSString *output = [NSString stringWithContentsOfFile:outpath encoding:NSUTF8StringEncoding error:&error];
+        STAssertNotNil(output, @"%@ - %@", outpath, error);
+
+        id object = [parser objectWithString:input];
+        STAssertNotNil(object, parser.error);
+
+        NSString *json = [writer stringWithObject:object];
+        STAssertNotNil(json, writer.error);
+
+        json = [json stringByAppendingString:@"\n"];
+        STAssertEqualObjects(json, output, @"%@ vs %@", json, output);
+    }];
+
+    STAssertEquals(count, (NSUInteger)17, nil);
+}
+
+
+- (void)testData {
+    [self foreachTestInSuite:@"Tests/Data/valid" apply:^(NSString *inpath, NSString *outpath) {
+        NSError *error = nil;
+        NSData *input = [NSData dataWithContentsOfFile:inpath];
+        STAssertNotNil(input, @"%@ - %@", inpath, error);
+
+        id object = [parser objectWithData:input];
+        STAssertNotNil(object, nil);
+
+        NSData *json = [writer dataWithObject:object];
+        STAssertNotNil(json, nil);
+
+        NSData *output = [NSData dataWithContentsOfFile:outpath];
+        STAssertNotNil(output, @"%@ - %@", outpath, error);
+
+        output = [NSData dataWithBytes:output.bytes length:output.length-1];
+        STAssertEqualObjects(json, output, nil);
+    }];
+
+    STAssertEquals(count, (NSUInteger)17, nil);
+}
+
+
+- (void)testStringCategory {
+    [self foreachTestInSuite:@"Tests/Data/valid" apply:^(NSString *inpath, NSString *outpath) {
+        NSError *error = nil;
+        NSString *input = [NSString stringWithContentsOfFile:inpath encoding:NSUTF8StringEncoding error:&error];
+        STAssertNotNil(input, @"%@ - %@", inpath, error);
+
+        NSString *output = [NSString stringWithContentsOfFile:outpath encoding:NSUTF8StringEncoding error:&error];
+        STAssertNotNil(output, @"%@ - %@", outpath, error);
+
+        id object = [input JSONValue];
+        STAssertNotNil(object, nil);
+
+        NSString *json = [object JSONRepresentation];
+        STAssertNotNil(json, nil);
+
+        json = [json stringByAppendingString:@"\n"];
+        STAssertEqualObjects(json, output, nil);
+    }];
+
+    STAssertEquals(count, (NSUInteger)17, nil);
+}
+
+- (void)testDataCategory {
+    [self foreachTestInSuite:@"Tests/Data/valid" apply:^(NSString *inpath, NSString *outpath) {
+        NSError *error = nil;
+        NSData *input = [NSData dataWithContentsOfFile:inpath];
+        STAssertNotNil(input, @"%@ - %@", inpath, error);
+
+        NSString *output = [NSString stringWithContentsOfFile:outpath encoding:NSUTF8StringEncoding error:&error];
+        STAssertNotNil(output, @"%@ - %@", outpath, error);
+
+        id object = [input JSONValue];
+        STAssertNotNil(object, nil);
+
+        NSString *json = [object JSONRepresentation];
+        STAssertNotNil(json, nil);
+
+        json = [json stringByAppendingString:@"\n"];
+        STAssertEqualObjects(json, output, nil);
+    }];
+
+    STAssertEquals(count, (NSUInteger)17, nil);
+}
+
+@end
diff --git a/json-framework-3.2.0/Tests/SortedFormatTest.m b/json-framework-3.2.0/Tests/SortedFormatTest.m
new file mode 100644
index 0000000..5ebcbeb
--- /dev/null
+++ b/json-framework-3.2.0/Tests/SortedFormatTest.m
@@ -0,0 +1,93 @@
+/*
+ Copyright (C) 2011 Stig Brautaset. All rights reserved.
+ 
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions
+ are met:
+ 
+ * Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+ 
+ * Redistributions in binary form must reproduce the above copyright
+ notice, this list of conditions and the following disclaimer in the
+ documentation and/or other materials provided with the distribution.
+ 
+ * Neither the name of the author nor the names of its contributors
+ may be used to endorse or promote products derived from this
+ software without specific prior written permission.
+ 
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+ OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ 
+ */
+
+#import "JsonTestCase.h"
+
+@interface SortedFormatTest : JsonTestCase
+@end
+
+@implementation SortedFormatTest
+
+- (void)setUp {
+    [super setUp];
+    writer.humanReadable = YES;
+    writer.sortKeys = YES;    
+	writer.sortKeysComparator = ^(id obj1, id obj2) {
+		return [obj1 compare:obj2 options:NSCaseInsensitiveSearch|NSLiteralSearch];
+	};
+}
+
+- (void)testString {
+    [self foreachTestInSuite:@"Tests/Data/comparatorsort" apply:^(NSString *inpath, NSString *outpath) {
+        NSError *error = nil;
+        NSString *input = [NSString stringWithContentsOfFile:inpath encoding:NSUTF8StringEncoding error:&error];
+        STAssertNotNil(input, @"%@ - %@", inpath, error);
+		
+        NSString *output = [NSString stringWithContentsOfFile:outpath encoding:NSUTF8StringEncoding error:&error];
+        STAssertNotNil(output, @"%@ - %@", outpath, error);
+		
+        id object = [parser objectWithString:input];
+        STAssertNotNil(object, nil);
+		
+        NSString *json = [writer stringWithObject:object];
+        STAssertNotNil(json, nil);
+		
+        json = [json stringByAppendingString:@"\n"];
+        STAssertEqualObjects(json, output, nil);
+    }];
+	
+    STAssertEquals(count, (NSUInteger)3, nil);
+}
+
+- (void)testData {
+    [self foreachTestInSuite:@"Tests/Data/comparatorsort" apply:^(NSString *inpath, NSString *outpath) {
+        NSError *error = nil;
+        NSData *input = [NSData dataWithContentsOfFile:inpath];
+        STAssertNotNil(input, @"%@ - %@", inpath, error);
+		
+        id object = [parser objectWithData:input];
+        STAssertNotNil(object, nil);
+		
+        NSData *json = [writer dataWithObject:object];
+        STAssertNotNil(json, nil);
+		
+        NSData *output = [NSData dataWithContentsOfFile:outpath];
+        STAssertNotNil(output, @"%@ - %@", outpath, error);
+		
+        output = [NSData dataWithBytes:output.bytes length:output.length-1];
+        STAssertEqualObjects(json, output, nil);
+    }];
+	
+    STAssertEquals(count, (NSUInteger)3, nil);
+}
+
+@end
diff --git a/json-framework-3.2.0/Tests/Stream/xaa b/json-framework-3.2.0/Tests/Stream/xaa
new file mode 100644
index 0000000..de13ad9
--- /dev/null
+++ b/json-framework-3.2.0/Tests/Stream/xaa
@@ -0,0 +1 @@
+{"coordinates":null,"text":":) Our secret weapon is no alternative. Golda Meir","entities":{"user_mentions":[],"urls":[],"hashtags":[]},"in_reply_to_screen_name":null,"in_reply_to_status_id_str":null,"place":null,"contributors":null,"retweet_count":0,"in_reply_to_status_id":null,"in_reply_to_user_id_str":null,"source":"\u003Ca href=\"http:\/\/www.socialoomph.com\" rel=\"nofollow\"\u003ESocialOomph\u003C\/a\u003E","retweeted":false,"geo":null,"created_at":"Wed Dec 08 07:43:21 +0000 2010","truncated":false,"id_str":"12411897663979520","user":{"follow_request_sent":null,"following":null,"verified":false,"profile_sidebar_border_color":"C0DEED","show_all_inline_media":false,"geo_enabled":false,"description":"Young and Energetic. I just sold my first house and will be posting Tweets about my new career as a house flipper","listed_count":49,"profile_background_tile":false,"profile_background_image_url":"http:\/\/a3.twimg.com\/profile_background_images\/38409971\/problemsolver.jpg","profile_background_color":"C0DEED"
\ No newline at end of file
diff --git a/json-framework-3.2.0/Tests/Stream/xab b/json-framework-3.2.0/Tests/Stream/xab
new file mode 100644
index 0000000..00a54a8
--- /dev/null
+++ b/json-framework-3.2.0/Tests/Stream/xab
@@ -0,0 +1,2 @@
+,"location":"Ontario Canada","profile_use_background_image":true,"profile_text_color":"4d1c12","followers_count":7991,"statuses_count":41594,"time_zone":"Quito","created_at":"Sun Sep 20 20:32:38 +0000 2009","friends_count":8789,"protected":false,"profile_image_url":"http:\/\/a0.twimg.com\/profile_images\/426248904\/homes_normal.jpg","notifications":null,"profile_link_color":"055673","url":"http:\/\/www.the-problemsolver.com","name":"We Flip","id_str":"75869159","favourites_count":0,"screen_name":"house_flipper","id":75869159,"contributors_enabled":false,"lang":"en","utc_offset":-18000,"profile_sidebar_fill_color":"c1a38c"},"id":12411897663979520,"in_reply_to_user_id":null,"favorited":false}
+{"coordinates":null,"text":"RT @therealdjrell click (retweet) if you still up","entities":{"hashtags":[],"urls":[],"user_mentions":[{"indices":[3,17],"name":"Dj Rell OF BBC","screen_name":"therealdjrell","id_str":"180669193","id":180669193}]},"in_reply_to_screen_name":null,"in_reply_to_status_id_str":null,"place":null,"co
\ No newline at end of file
diff --git a/json-framework-3.2.0/Tests/Stream/xac b/json-framework-3.2.0/Tests/Stream/xac
new file mode 100644
index 0000000..e760491
--- /dev/null
+++ b/json-framework-3.2.0/Tests/Stream/xac
@@ -0,0 +1 @@
+ntributors":null,"retweet_count":null,"in_reply_to_status_id":null,"in_reply_to_user_id_str":null,"source":"\u003Ca href=\"http:\/\/www.htc.com\" rel=\"nofollow\"\u003E  HTC Peep\u003C\/a\u003E","retweeted":false,"geo":null,"created_at":"Wed Dec 08 07:43:21 +0000 2010","truncated":false,"id_str":"12411897680764928","user":{"following":null,"listed_count":4,"profile_background_tile":true,"profile_background_image_url":"http:\/\/a1.twimg.com\/profile_background_images\/179020444\/Picnik_collage.jpg","profile_sidebar_border_color":"3d3739","profile_use_background_image":true,"description":"BABY KNOWS WHAT SHE WANTS & ALWAYS GETS IT. :) ArizonaStateUni (DowntownPHX) '14 * 18 YrOld * Chicago is Home * FOLLOW ME & I'LL FOLLOW YOU! :) #TEAMLAKERS","statuses_count":2206,"time_zone":"Arizona","friends_count":115,"profile_background_color":"0f0604","location":"N 33\u00b027' 0'' \/ W 112\u00b04' 0''","profile_text_color":"66585a","followers_count":120,"contributors_enabled":false,"created_at":"Tue Apr 07 01:55:15 +0000 
\ No newline at end of file
diff --git a/json-framework-3.2.0/Tests/Stream/xad b/json-framework-3.2.0/Tests/Stream/xad
new file mode 100644
index 0000000..90eb135
--- /dev/null
+++ b/json-framework-3.2.0/Tests/Stream/xad
@@ -0,0 +1,2 @@
+2009","protected":false,"profile_image_url":"http:\/\/a2.twimg.com\/profile_images\/1182977830\/FB1_normal.jpg","follow_request_sent":null,"verified":false,"notifications":null,"profile_link_color":"cf1919","url":"http:\/\/www.facebook.com\/profile.php?id=610064376","name":"Shayla Brown","id_str":"29351068","favourites_count":16,"screen_name":"BabyistheDream4","id":29351068,"show_all_inline_media":false,"lang":"en","geo_enabled":false,"utc_offset":-25200,"profile_sidebar_fill_color":"ffffff"},"id":12411897680764928,"in_reply_to_user_id":null,"favorited":false}
+{"coordinates":null,"text":"THT..boseenn..(\u02c7_\u02c7'!l)\u200b\u200e ..","entities":{"urls":[],"hashtags":[],"user_mentions":[]},"in_reply_to_screen_name":null,"in_reply_to_status_id_str":null,"place":null,"contributors":null,"retweet_count":0,"in_reply_to_status_id":null,"in_reply_to_user_id_str":null,"source":"\u003Ca href=\"http:\/\/blackberry.com\/twitter\" rel=\"nofollow\"\u003ETwitter for BlackBerry\u00ae\u003C\/a\u003E","retweeted":false,"ge
\ No newline at end of file
diff --git a/json-framework-3.2.0/Tests/Stream/xae b/json-framework-3.2.0/Tests/Stream/xae
new file mode 100644
index 0000000..8b8cecd
--- /dev/null
+++ b/json-framework-3.2.0/Tests/Stream/xae
@@ -0,0 +1 @@
+o":null,"created_at":"Wed Dec 08 07:43:21 +0000 2010","truncated":false,"id_str":"12411897668177920","user":{"follow_request_sent":null,"following":null,"verified":false,"profile_sidebar_border_color":"eb1a44","show_all_inline_media":false,"geo_enabled":false,"description":"\u2661 Simple and nice Lady \u2661..\u263a ","listed_count":3,"profile_background_tile":false,"profile_background_image_url":"http:\/\/s.twimg.com\/a\/1290538325\/images\/themes\/theme1\/bg.png","profile_background_color":"e01660","location":"\u00dcT: -6.171394,106.868656","profile_use_background_image":true,"profile_text_color":"333333","followers_count":205,"statuses_count":6045,"time_zone":"Pacific Time (US & Canada)","created_at":"Thu Oct 29 06:35:04 +0000 2009","friends_count":232,"protected":false,"profile_image_url":"http:\/\/a0.twimg.com\/profile_images\/1145910676\/Picture_202584_normal.jpg","notifications":null,"profile_link_color":"CC3366","url":"http:\/\/null","name":"dila Zitria yuzar","id_str":"86008365","favourites_count":17
\ No newline at end of file
diff --git a/json-framework-3.2.0/Tests/Stream/xaf b/json-framework-3.2.0/Tests/Stream/xaf
new file mode 100644
index 0000000..f11be42
--- /dev/null
+++ b/json-framework-3.2.0/Tests/Stream/xaf
@@ -0,0 +1,2 @@
+,"screen_name":"dilaZitria","id":86008365,"contributors_enabled":false,"lang":"en","utc_offset":-28800,"profile_sidebar_fill_color":"e61e89"},"id":12411897668177920,"in_reply_to_user_id":null,"favorited":false}
+{"coordinates":null,"text":"\u6628\u591c\u3001\u6b53\u9001\u8fce\u4f1a\u306e\u4e8c\u6b21\u4f1a\u306e\u30b9\u30ca\u30c3\u30af\u306750\u66f2\u304f\u3089\u3044\u4e00\u4eba\u3067\u6c38\u9060\u306b\u6b4c\u3063\u3066\u305f\u3089\u3057\u3044www\u3042\u307e\u308a\u899a\u3048\u3066\u306a\u3044\u3093\u3060\u304c\u3001\u78ba\u304b\u306b\u5589\u306f\u75db\u3044\u306e\u3067\u3042\u308b\u3002","entities":{"hashtags":[],"urls":[],"user_mentions":[]},"in_reply_to_screen_name":null,"in_reply_to_status_id_str":null,"place":null,"contributors":null,"retweet_count":0,"in_reply_to_status_id":null,"in_reply_to_user_id_str":null,"source":"\u003Ca href=\"http:\/\/www.movatwi.jp\" rel=\"nofollow\"\u003Ewww.movatwi.jp\u003C\/a\u003E","retweeted":false,"geo":null,"created_at":"Wed Dec 08 07:43:21 +0000 2010","truncated":false,"
\ No newline at end of file
diff --git a/json-framework-3.2.0/Tests/Stream/xag b/json-framework-3.2.0/Tests/Stream/xag
new file mode 100644
index 0000000..a4aac62
--- /dev/null
+++ b/json-framework-3.2.0/Tests/Stream/xag
@@ -0,0 +1 @@
+id_str":"12411897668182016","user":{"following":null,"listed_count":12,"profile_background_tile":true,"profile_background_image_url":"http:\/\/a1.twimg.com\/profile_background_images\/92964430\/0287.jpg","profile_sidebar_border_color":"a8c7f7","profile_use_background_image":true,"description":"\u30f2\u30bf\u5c5e\u6027\u306f\u25cf\u25cf\u25cf\u25cf\u25cf(\u4eee\uff09\r\n\u5168\u529b\u8150\u6d3b\u52d5\u4e2d\uff01\uff01\r\n\u4e2d\u91ce\u8150\u5973\u30b7\u30b9\u30bf\u30fc\u30ba\u30fb\u8150\u7537\u587e\u306b\u6367\u3052\u308b\u30ed\u30fc\u30de\u30fc\u30f3\u30fc\u30b9\u3063\uff01","statuses_count":5862,"time_zone":"Tokyo","friends_count":314,"profile_background_color":"022330","location":"\u306a\u306b\u308f\uff01\u306a\u306b\u308f\uff01","profile_text_color":"333333","followers_count":245,"contributors_enabled":false,"created_at":"Tue Aug 11 08:24:20 +0000 2009","protected":false,"profile_image_url":"http:\/\/a3.twimg.com\/profile_images\/574158539\/roreapple_normal.jpg","follow_request_sent":null,"verified":false,
\ No newline at end of file
diff --git a/json-framework-3.2.0/Tests/Stream/xah b/json-framework-3.2.0/Tests/Stream/xah
new file mode 100644
index 0000000..10acfde
--- /dev/null
+++ b/json-framework-3.2.0/Tests/Stream/xah
@@ -0,0 +1,2 @@
+"notifications":null,"profile_link_color":"0084B4","url":"http:\/\/ameblo.jp\/roreapple\/","name":"\u30ed\u30ec\u308a\u3093\u3054","id_str":"64662506","favourites_count":42,"screen_name":"roreapple","id":64662506,"show_all_inline_media":false,"lang":"ja","geo_enabled":false,"utc_offset":32400,"profile_sidebar_fill_color":"C0DFEC"},"id":12411897668182016,"in_reply_to_user_id":null,"favorited":false}
+{"coordinates":null,"text":"Gaaa RT @nisa_sukin: Menanti gaunku... Muat gak yah,, hiks","entities":{"hashtags":[],"urls":[],"user_mentions":[{"indices":[8,19],"name":"Masitoh Hairunisa","screen_name":"nisa_sukin","id_str":"29117556","id":29117556}]},"in_reply_to_screen_name":null,"in_reply_to_status_id_str":null,"place":null,"contributors":null,"retweet_count":0,"in_reply_to_status_id":null,"in_reply_to_user_id_str":null,"source":"\u003Ca href=\"http:\/\/www.ubertwitter.com\/bb\/download.php\" rel=\"nofollow\"\u003E\u00dcberTwitter\u003C\/a\u003E","retweeted":false,"geo":null,"created_at":"Wed Dec 08 07:43:22 +000
\ No newline at end of file
diff --git a/json-framework-3.2.0/Tests/Stream/xai b/json-framework-3.2.0/Tests/Stream/xai
new file mode 100644
index 0000000..ce7d9a2
--- /dev/null
+++ b/json-framework-3.2.0/Tests/Stream/xai
@@ -0,0 +1 @@
+0 2010","truncated":false,"id_str":"12411901849903104","user":{"follow_request_sent":null,"following":null,"verified":false,"profile_sidebar_border_color":"C0DEED","show_all_inline_media":false,"geo_enabled":false,"description":"Happy wifey ;)","listed_count":0,"profile_background_tile":false,"profile_background_image_url":"http:\/\/s.twimg.com\/a\/1291661299\/images\/themes\/theme1\/bg.png","profile_background_color":"C0DEED","location":"Here,there n everywhere","profile_use_background_image":true,"profile_text_color":"333333","followers_count":26,"statuses_count":255,"time_zone":null,"created_at":"Fri May 15 07:33:06 +0000 2009","friends_count":68,"protected":false,"profile_image_url":"http:\/\/a2.twimg.com\/profile_images\/1166898498\/209967688_normal.jpg","notifications":null,"profile_link_color":"0084B4","url":null,"name":"Dian Supramanik","id_str":"40197229","favourites_count":0,"screen_name":"supramanik","id":40197229,"contributors_enabled":false,"lang":"en","utc_offset":null,"profile_sidebar_fill_colo
\ No newline at end of file
diff --git a/json-framework-3.2.0/Tests/Stream/xaj b/json-framework-3.2.0/Tests/Stream/xaj
new file mode 100644
index 0000000..d28bcc0
--- /dev/null
+++ b/json-framework-3.2.0/Tests/Stream/xaj
@@ -0,0 +1,2 @@
+r":"DDEEF6"},"id":12411901849903104,"in_reply_to_user_id":null,"favorited":false}
+{"coordinates":null,"text":"@FatboyRoberts Christ! I almost thought you were spam! My brain is melting, so I'll have to look at that tomorrow. Now: Brain death.","entities":{"urls":[],"hashtags":[],"user_mentions":[{"indices":[0,14],"name":"Fatboy Roberts","screen_name":"FatboyRoberts","id_str":"20921327","id":20921327}]},"in_reply_to_screen_name":"FatboyRoberts","in_reply_to_status_id_str":"12362450682773504","place":null,"contributors":null,"retweet_count":null,"in_reply_to_status_id":12362450682773504,"in_reply_to_user_id_str":"20921327","source":"\u003Ca href=\"http:\/\/www.tweetdeck.com\" rel=\"nofollow\"\u003ETweetDeck\u003C\/a\u003E","retweeted":false,"geo":null,"created_at":"Wed Dec 08 07:43:22 +0000 2010","truncated":false,"id_str":"12411901837320192","user":{"following":null,"listed_count":35,"profile_background_tile":false,"profile_background_image_url":"http:\/\/s.twimg.com\/a\/1290538325\/images\/themes\/theme9\/bg
\ No newline at end of file
diff --git a/json-framework-3.2.0/Tests/Stream/xak b/json-framework-3.2.0/Tests/Stream/xak
new file mode 100644
index 0000000..1067e83
--- /dev/null
+++ b/json-framework-3.2.0/Tests/Stream/xak
@@ -0,0 +1,2 @@
+.gif","profile_sidebar_border_color":"ffffff","profile_use_background_image":false,"description":"Bad motherfucker, game journalist, taller than your boyfriend.","statuses_count":10032,"time_zone":"Pacific Time (US & Canada)","friends_count":148,"profile_background_color":"545454","location":"Portland, Oregon","profile_text_color":"878787","followers_count":716,"contributors_enabled":false,"created_at":"Thu Feb 07 02:55:38 +0000 2008","protected":false,"profile_image_url":"http:\/\/a1.twimg.com\/profile_images\/688559405\/twinklestarsprites_normal.png","follow_request_sent":null,"verified":false,"notifications":null,"profile_link_color":"ad0000","url":"http:\/\/nex.vox.com\/","name":"Earnest Cavalli","id_str":"13189102","favourites_count":0,"screen_name":"ecavalli","id":13189102,"show_all_inline_media":true,"lang":"en","geo_enabled":true,"utc_offset":-28800,"profile_sidebar_fill_color":"1c1c1c"},"id":12411901837320192,"in_reply_to_user_id":20921327,"favorited":false}
+{"coordinates":null,"text":"@crumpitout s
\ No newline at end of file
diff --git a/json-framework-3.2.0/Tests/Stream/xal b/json-framework-3.2.0/Tests/Stream/xal
new file mode 100644
index 0000000..d3ab6f6
--- /dev/null
+++ b/json-framework-3.2.0/Tests/Stream/xal
@@ -0,0 +1 @@
+hane.. we miss you with alesana\u00a1\u00a1 \ncome to mexico please :]\nwe love u :]\nxoxo","entities":{"hashtags":[],"urls":[],"user_mentions":[{"indices":[0,11],"name":"Shane Crump","screen_name":"crumpitout","id_str":"145315047","id":145315047}]},"in_reply_to_screen_name":"crumpitout","in_reply_to_status_id_str":null,"place":null,"contributors":null,"retweet_count":0,"in_reply_to_status_id":null,"in_reply_to_user_id_str":"145315047","source":"web","retweeted":false,"geo":null,"created_at":"Wed Dec 08 07:43:22 +0000 2010","truncated":false,"id_str":"12411901854093312","user":{"following":null,"listed_count":0,"profile_background_tile":true,"profile_background_image_url":"http:\/\/a1.twimg.com\/profile_background_images\/149753364\/2mbdax.jpg","profile_sidebar_border_color":"ff00ff","profile_use_background_image":true,"description":"","statuses_count":338,"time_zone":"Mexico City","friends_count":114,"profile_background_color":"f50af5","location":"mexico, city","profile_text_color":"f009d5","followers_count"
\ No newline at end of file
diff --git a/json-framework-3.2.0/Tests/Stream/xam b/json-framework-3.2.0/Tests/Stream/xam
new file mode 100644
index 0000000..c2266d3
--- /dev/null
+++ b/json-framework-3.2.0/Tests/Stream/xam
@@ -0,0 +1,2 @@
+:31,"contributors_enabled":false,"created_at":"Sat Aug 29 23:25:10 +0000 2009","protected":false,"profile_image_url":"http:\/\/a1.twimg.com\/profile_images\/1126473913\/48906_1376585645_7669_q_normal.jpg","follow_request_sent":null,"verified":false,"notifications":null,"profile_link_color":"de13f0","url":"http:\/\/www.facebook.com\/profile.php?id=1376585645","name":"jezz sandoval","id_str":"69990626","favourites_count":0,"screen_name":"jezz_sandoval","id":69990626,"show_all_inline_media":true,"lang":"es","geo_enabled":false,"utc_offset":-21600,"profile_sidebar_fill_color":"08fc08"},"id":12411901854093312,"in_reply_to_user_id":145315047,"favorited":false}
+{"coordinates":null,"text":"A new franchised business is opened every 8 minutes of every business day....Read more facts at http:\/\/ow.ly\/2ktXb","entities":{"urls":[{"expanded_url":null,"indices":[96,114],"url":"http:\/\/ow.ly\/2ktXb"}],"hashtags":[],"user_mentions":[]},"in_reply_to_screen_name":null,"in_reply_to_status_id_str":null,"place":null,"contribut
\ No newline at end of file
diff --git a/json-framework-3.2.0/Tests/Stream/xan b/json-framework-3.2.0/Tests/Stream/xan
new file mode 100644
index 0000000..be0c908
--- /dev/null
+++ b/json-framework-3.2.0/Tests/Stream/xan
@@ -0,0 +1 @@
+ors":null,"retweet_count":0,"in_reply_to_status_id":null,"in_reply_to_user_id_str":null,"source":"\u003Ca href=\"http:\/\/socialcreeper.com\" rel=\"nofollow\"\u003ESocialcreeper\u003C\/a\u003E","retweeted":false,"geo":null,"created_at":"Wed Dec 08 07:43:22 +0000 2010","truncated":false,"id_str":"12411901854097408","user":{"follow_request_sent":null,"following":null,"verified":false,"profile_sidebar_border_color":"5ED4DC","show_all_inline_media":false,"geo_enabled":false,"description":"No charge consulting services be your own boss work from home recession, proof businesses, available financing. our role is to help  you and give you the best","listed_count":15,"profile_background_tile":false,"profile_background_image_url":"http:\/\/s.twimg.com\/a\/1289607957\/images\/themes\/theme4\/bg.gif","profile_background_color":"0099B9","location":"new jersey","profile_use_background_image":true,"profile_text_color":"3C3940","followers_count":1918,"statuses_count":8216,"time_zone":"Eastern Time (US & Canada)","created_at
\ No newline at end of file
diff --git a/json-framework-3.2.0/Tests/Stream/xao b/json-framework-3.2.0/Tests/Stream/xao
new file mode 100644
index 0000000..d127479
--- /dev/null
+++ b/json-framework-3.2.0/Tests/Stream/xao
@@ -0,0 +1,2 @@
+":"Wed Aug 04 08:30:19 +0000 2010","friends_count":2110,"protected":false,"profile_image_url":"http:\/\/a0.twimg.com\/profile_images\/1097183072\/franchise_normal.jpg","notifications":null,"profile_link_color":"0099B9","url":"http:\/\/www.facebook.com\/pages\/Advantage-Franchise-Consulting\/132423546795977?v=app_4949752878 ","name":"franchiseconsutling","id_str":"174584532","favourites_count":0,"screen_name":"consultingfree","id":174584532,"contributors_enabled":false,"lang":"en","utc_offset":-18000,"profile_sidebar_fill_color":"95E8EC"},"id":12411901854097408,"in_reply_to_user_id":null,"favorited":false}
+{"coordinates":null,"text":"La cruda es como la risa !","entities":{"hashtags":[],"urls":[],"user_mentions":[]},"in_reply_to_screen_name":null,"in_reply_to_status_id_str":null,"place":null,"contributors":null,"retweet_count":null,"in_reply_to_status_id":null,"in_reply_to_user_id_str":null,"source":"web","retweeted":false,"geo":null,"created_at":"Wed Dec 08 07:43:22 +0000 2010","truncated":false,"id_str":"12
\ No newline at end of file
diff --git a/json-framework-3.2.0/Tests/Stream/xap b/json-framework-3.2.0/Tests/Stream/xap
new file mode 100644
index 0000000..1bb58e7
--- /dev/null
+++ b/json-framework-3.2.0/Tests/Stream/xap
@@ -0,0 +1 @@
+411901875060736","user":{"follow_request_sent":null,"following":null,"verified":false,"profile_sidebar_border_color":"C0DEED","show_all_inline_media":false,"geo_enabled":false,"description":"La felicidad no es un estado de \u00e1nimo,sino una DECISI\u00d3N!","listed_count":1,"profile_background_tile":false,"profile_background_image_url":"http:\/\/a1.twimg.com\/profile_background_images\/163795950\/cover.jpg","profile_background_color":"C0DEED","location":"","profile_use_background_image":true,"profile_text_color":"333333","followers_count":73,"statuses_count":1019,"time_zone":"Guadalajara","created_at":"Sun May 02 00:25:43 +0000 2010","friends_count":211,"protected":false,"profile_image_url":"http:\/\/a1.twimg.com\/profile_images\/1151825365\/40766_10150244183920072_565820071_14195871_5748381_n_normal.jpg","notifications":null,"profile_link_color":"0084B4","url":null,"name":"karmen beltr\u00e1n ","id_str":"139233639","favourites_count":2,"screen_name":"ka_beltran","id":139233639,"contributors_enabled":false,"
\ No newline at end of file
diff --git a/json-framework-3.2.0/Tests/Stream/xaq b/json-framework-3.2.0/Tests/Stream/xaq
new file mode 100644
index 0000000..0953bae
--- /dev/null
+++ b/json-framework-3.2.0/Tests/Stream/xaq
@@ -0,0 +1,2 @@
+lang":"es","utc_offset":-21600,"profile_sidebar_fill_color":"DDEEF6"},"id":12411901875060736,"in_reply_to_user_id":null,"favorited":false}
+{"coordinates":null,"text":"\u30d5\u30a9\u30ed\u30fc\u3057\u3066\u306d(^-^)\/ #followmejp #sougofollow #followdaibosyu \uff8a\uff9f\uff81\uff9d\uff7a \uff8a\uff9f\uff81\uff7d\uff9b \u7af6\u99ac \uff9b\uff84 \uff85\uff9d\uff8a\uff9e\uff70\uff7d\uff9e 1643128","entities":{"urls":[],"user_mentions":[],"hashtags":[{"text":"followmejp","indices":[14,25]},{"text":"sougofollow","indices":[26,38]},{"text":"followdaibosyu","indices":[39,54]}]},"in_reply_to_screen_name":null,"in_reply_to_status_id_str":null,"place":null,"contributors":null,"retweet_count":0,"in_reply_to_status_id":null,"in_reply_to_user_id_str":null,"source":"\u003Ca href=\"http:\/\/www.movatwi.jp\" rel=\"nofollow\"\u003Ewww.movatwi.jp\u003C\/a\u003E","retweeted":false,"geo":null,"created_at":"Wed Dec 08 07:43:23 +0000 2010","truncated":false,"id_str":"12411906056790016","user":{"follow_request_sent":null,"followin
\ No newline at end of file
diff --git a/json-framework-3.2.0/Tests/Stream/xar b/json-framework-3.2.0/Tests/Stream/xar
new file mode 100644
index 0000000..6d765a7
--- /dev/null
+++ b/json-framework-3.2.0/Tests/Stream/xar
@@ -0,0 +1,2 @@
+g":null,"verified":false,"profile_sidebar_border_color":"C0DEED","show_all_inline_media":false,"geo_enabled":false,"description":"","listed_count":7,"profile_background_tile":false,"profile_background_image_url":"http:\/\/s.twimg.com\/a\/1291163542\/images\/themes\/theme1\/bg.png","profile_background_color":"C0DEED","location":"","profile_use_background_image":true,"profile_text_color":"333333","followers_count":1371,"statuses_count":5503,"time_zone":"Hawaii","created_at":"Thu Jul 29 13:53:49 +0000 2010","friends_count":1278,"protected":false,"profile_image_url":"http:\/\/a1.twimg.com\/profile_images\/1094558749\/_____normal.jpg","notifications":null,"profile_link_color":"0084B4","url":null,"name":"\u30e1\u30b0\u30df","id_str":"172346562","favourites_count":0,"screen_name":"megumi2258","id":172346562,"contributors_enabled":false,"lang":"ja","utc_offset":-36000,"profile_sidebar_fill_color":"DDEEF6"},"id":12411906056790016,"in_reply_to_user_id":null,"favorited":false}
+{"coordinates":null,"text":"Rant Forum: Sp
\ No newline at end of file
diff --git a/json-framework-3.2.0/Tests/Stream/xas b/json-framework-3.2.0/Tests/Stream/xas
new file mode 100644
index 0000000..fe7684d
--- /dev/null
+++ b/json-framework-3.2.0/Tests/Stream/xas
@@ -0,0 +1 @@
+ike on \"HOT BED OF FOOTBALL.........MOST KNOWLEDGABLE SUPPORTERS  BLAH  BLAH  BLAH!\" http:\/\/bit.ly\/hF9G1y #mufc #manutd","entities":{"hashtags":[{"text":"mufc","indices":[120,125]},{"text":"manutd","indices":[126,133]}],"urls":[{"expanded_url":null,"indices":[99,119],"url":"http:\/\/bit.ly\/hF9G1y"}],"user_mentions":[]},"in_reply_to_screen_name":null,"in_reply_to_status_id_str":null,"place":null,"contributors":null,"retweet_count":0,"in_reply_to_status_id":null,"in_reply_to_user_id_str":null,"source":"\u003Ca href=\"http:\/\/twitterfeed.com\" rel=\"nofollow\"\u003Etwitterfeed\u003C\/a\u003E","retweeted":false,"geo":null,"created_at":"Wed Dec 08 07:43:23 +0000 2010","truncated":false,"id_str":"12411906035818496","user":{"following":null,"listed_count":31,"profile_background_tile":true,"profile_background_image_url":"http:\/\/a3.twimg.com\/profile_background_images\/151777477\/twitter-background.png","profile_sidebar_border_color":"990000","profile_use_background_image":true,"description":"Forum of the Uni
\ No newline at end of file
diff --git a/json-framework-3.2.0/Tests/Stream/xat b/json-framework-3.2.0/Tests/Stream/xat
new file mode 100644
index 0000000..839825e
--- /dev/null
+++ b/json-framework-3.2.0/Tests/Stream/xat
@@ -0,0 +1,2 @@
+ted Rant blog visit www.unitedrant.co.uk\/forum for lively discussion.","statuses_count":6688,"time_zone":"London","friends_count":837,"profile_background_color":"000000","location":"Old Trafford","profile_text_color":"000000","followers_count":290,"contributors_enabled":false,"created_at":"Thu Jul 22 11:37:05 +0000 2010","protected":false,"profile_image_url":"http:\/\/a2.twimg.com\/profile_images\/1128154622\/twitter_new_badge_forum_normal.jpg","follow_request_sent":null,"verified":false,"notifications":null,"profile_link_color":"ccb100","url":"http:\/\/www.unitedrant.co.uk\/forum","name":"United Rant Forum","id_str":"169458574","favourites_count":0,"screen_name":"rant_forum","id":169458574,"show_all_inline_media":false,"lang":"en","geo_enabled":false,"utc_offset":0,"profile_sidebar_fill_color":"e00700"},"id":12411906035818496,"in_reply_to_user_id":null,"favorited":false}
+{"coordinates":null,"text":"Don't waste her time, if you still want to play around let her go. Its only fair. #MessageToMyBoys","entities
\ No newline at end of file
diff --git a/json-framework-3.2.0/Tests/Stream/xau b/json-framework-3.2.0/Tests/Stream/xau
new file mode 100644
index 0000000..ed4a919
--- /dev/null
+++ b/json-framework-3.2.0/Tests/Stream/xau
@@ -0,0 +1 @@
+":{"hashtags":[{"text":"MessageToMyBoys","indices":[82,98]}],"urls":[],"user_mentions":[]},"in_reply_to_screen_name":null,"in_reply_to_status_id_str":null,"place":null,"contributors":null,"retweet_count":0,"in_reply_to_status_id":null,"in_reply_to_user_id_str":null,"source":"web","retweeted":false,"geo":null,"created_at":"Wed Dec 08 07:43:23 +0000 2010","truncated":false,"id_str":"12411906069368832","user":{"following":null,"listed_count":2,"profile_background_tile":true,"profile_background_image_url":"http:\/\/a3.twimg.com\/profile_background_images\/177052687\/3235134362_c0f681f914_o.jpg","profile_sidebar_border_color":"C0DEED","profile_use_background_image":true,"description":"I am an enigma, wrapped in a sesame and nestled in a riddle of some mystery.","statuses_count":5795,"time_zone":"Pretoria","friends_count":207,"profile_background_color":"C0DEED","location":"\u00dcT: -26.193627,28.041314","profile_text_color":"333333","followers_count":275,"contributors_enabled":false,"created_at":"Fri May 01 06:55:0
\ No newline at end of file
diff --git a/json-framework-3.2.0/Tests/Stream/xav b/json-framework-3.2.0/Tests/Stream/xav
new file mode 100644
index 0000000..9623624
--- /dev/null
+++ b/json-framework-3.2.0/Tests/Stream/xav
@@ -0,0 +1,2 @@
+3 +0000 2009","protected":false,"profile_image_url":"http:\/\/a3.twimg.com\/profile_images\/1183768439\/DSC06923_normal.JPG","follow_request_sent":null,"verified":false,"notifications":null,"profile_link_color":"0084B4","url":"http:\/\/www.mspmc.co.za","name":"Mafedi Selepe","id_str":"36901018","favourites_count":0,"screen_name":"MafediSelepe","id":36901018,"show_all_inline_media":false,"lang":"en","geo_enabled":true,"utc_offset":7200,"profile_sidebar_fill_color":"DDEEF6"},"id":12411906069368832,"in_reply_to_user_id":null,"favorited":false}
+{"coordinates":null,"text":"Ada setan. *katanyasih. RT @PROMOTEfor: #tanyaremaja (jaman sd) hal apa yg membuat km takut ke toilet sendirian ?","entities":{"urls":[],"hashtags":[{"text":"tanyaremaja","indices":[40,52]}],"user_mentions":[{"indices":[27,38],"name":"Hendra J.P.","screen_name":"PROMOTEfor","id_str":"112023841","id":112023841}]},"in_reply_to_screen_name":null,"in_reply_to_status_id_str":null,"place":null,"contributors":null,"retweet_count":0,"in_reply_to_status
\ No newline at end of file
diff --git a/json-framework-3.2.0/Tests/Stream/xaw b/json-framework-3.2.0/Tests/Stream/xaw
new file mode 100644
index 0000000..2aa8c1a
--- /dev/null
+++ b/json-framework-3.2.0/Tests/Stream/xaw
@@ -0,0 +1 @@
+_id":null,"in_reply_to_user_id_str":null,"source":"\u003Ca href=\"http:\/\/www.ubertwitter.com\/bb\/download.php\" rel=\"nofollow\"\u003E\u00dcberTwitter\u003C\/a\u003E","retweeted":false,"geo":null,"created_at":"Wed Dec 08 07:43:23 +0000 2010","truncated":false,"id_str":"12411906052587520","user":{"following":null,"listed_count":0,"profile_background_tile":true,"profile_background_image_url":"http:\/\/a1.twimg.com\/profile_background_images\/107674614\/1237098635915429223StudioFibonacci_Cartoon_Hillside_with_Butterfly_and_Flowers.svg.hi","profile_sidebar_border_color":"e61739","profile_use_background_image":true,"description":"229EB3B1 :)))\r\ni'm a big fans of @xtianbautista  . \r\nAn ordinary girl with a big dreams.  you will confuse  if you know who really i am. ","statuses_count":2529,"time_zone":"Pacific Time (US & Canada)","friends_count":56,"profile_background_color":"B2DFDA","location":"Canada. \u00dcT: -6.224251,106.9222","profile_text_color":"e61010","followers_count":69,"contributors_enabled":fals
\ No newline at end of file
diff --git a/json-framework-3.2.0/Tests/Stream/xax b/json-framework-3.2.0/Tests/Stream/xax
new file mode 100644
index 0000000..947ad0f
--- /dev/null
+++ b/json-framework-3.2.0/Tests/Stream/xax
@@ -0,0 +1,2 @@
+e,"created_at":"Tue Feb 23 09:35:19 +0000 2010","protected":false,"profile_image_url":"http:\/\/a3.twimg.com\/profile_images\/1174458315\/ajeng_normal.jpg","follow_request_sent":null,"verified":false,"notifications":null,"profile_link_color":"1ce1e8","url":null,"name":"Ajeng Lintang","id_str":"116697581","favourites_count":0,"screen_name":"AjengLD","id":116697581,"show_all_inline_media":false,"lang":"en","geo_enabled":false,"utc_offset":-28800,"profile_sidebar_fill_color":"e08db3"},"id":12411906052587520,"in_reply_to_user_id":null,"favorited":false}
+{"coordinates":null,"text":"\u958b\u62d3\u9ad8\u6821\u306e\u6821\u6b4c\u304c\u9244\u8155\u30a2\u30c8\u30e0\u3060\u3063\u305f\u4ef6","entities":{"urls":[],"hashtags":[],"user_mentions":[]},"in_reply_to_screen_name":null,"in_reply_to_status_id_str":null,"place":null,"contributors":null,"retweet_count":0,"in_reply_to_status_id":null,"in_reply_to_user_id_str":null,"source":"web","retweeted":false,"geo":null,"created_at":"Wed Dec 08 07:43:23 +0000 2010","truncated":fa
\ No newline at end of file
diff --git a/json-framework-3.2.0/Tests/Stream/xay b/json-framework-3.2.0/Tests/Stream/xay
new file mode 100644
index 0000000..9758387
--- /dev/null
+++ b/json-framework-3.2.0/Tests/Stream/xay
@@ -0,0 +1 @@
+lse,"id_str":"12411906035818497","user":{"following":null,"listed_count":0,"profile_background_tile":true,"profile_background_image_url":"http:\/\/a3.twimg.com\/profile_background_images\/166881635\/sas.png","profile_sidebar_border_color":"C0DEED","profile_use_background_image":true,"description":"\u30d7\u30ed\u30b9\u30d4\u3067\u81ea\u5206\u4f5c\u3063\u305f\u3089\u5929\u72d7\u4e26\u307f\u306e\u8d70\u529b\u306b\u306a\u3063\u305f\u30fb\u30fb\u30fb\u308f\u3051\u3067\u3082\u306a\u304b\u3063\u305f\u30fb\u30fb\u30fb\u3068\u304b\u8a00\u3063\u3066\u4f5c\u308a\u76f4\u3057\u305f\u3089\u672c\u5f53\u306b\u5929\u72d7\u306b\u306a\u3063\u305f","statuses_count":1324,"time_zone":"Osaka","friends_count":24,"profile_background_color":"C0DEED","location":"\u65e7\u5730\u7344\u8857\u9053\u5165\u308a\u53e3\u4ed8\u8fd1","profile_text_color":"333333","followers_count":18,"contributors_enabled":false,"created_at":"Sat Oct 30 08:39:38 +0000 2010","protected":false,"profile_image_url":"http:\/\/a0.twimg.com\/profile_images\/1179158108\/
\ No newline at end of file
diff --git a/json-framework-3.2.0/Tests/Stream/xaz b/json-framework-3.2.0/Tests/Stream/xaz
new file mode 100644
index 0000000..d044ddd
--- /dev/null
+++ b/json-framework-3.2.0/Tests/Stream/xaz
@@ -0,0 +1,2 @@
+52_normal.png","follow_request_sent":null,"verified":false,"notifications":null,"profile_link_color":"0084B4","url":null,"name":"\u53e4\u660e\u5730\u60a0\u99ac","id_str":"209976874","favourites_count":7,"screen_name":"Komeiji88","id":209976874,"show_all_inline_media":false,"lang":"ja","geo_enabled":true,"utc_offset":32400,"profile_sidebar_fill_color":"DDEEF6"},"id":12411906035818497,"in_reply_to_user_id":null,"favorited":false}
+{"coordinates":null,"text":"@KOOL_GANG \uc0b4\uc544\ub098\ub77c \uc6b0\ub9ac \uc5d0\uc774\uc2a4.","entities":{"urls":[],"hashtags":[],"user_mentions":[{"indices":[0,10],"name":"Kool Gang","screen_name":"KOOL_GANG","id_str":"173724958","id":173724958}]},"in_reply_to_screen_name":"KOOL_GANG","in_reply_to_status_id_str":"12410887285506048","place":null,"contributors":null,"retweet_count":null,"in_reply_to_status_id":12410887285506048,"in_reply_to_user_id_str":"173724958","source":"\u003Ca href=\"http:\/\/twtkr.com\" rel=\"nofollow\"\u003Etwtkr\u003C\/a\u003E","retweeted":false,"geo":null
\ No newline at end of file
diff --git a/json-framework-3.2.0/Tests/Stream/xba b/json-framework-3.2.0/Tests/Stream/xba
new file mode 100644
index 0000000..661d420
--- /dev/null
+++ b/json-framework-3.2.0/Tests/Stream/xba
@@ -0,0 +1 @@
+,"created_at":"Wed Dec 08 07:43:23 +0000 2010","truncated":false,"id_str":"12411906052591616","user":{"follow_request_sent":null,"following":null,"verified":false,"profile_sidebar_border_color":"C0DEED","show_all_inline_media":false,"geo_enabled":false,"description":"","listed_count":1,"profile_background_tile":false,"profile_background_image_url":"http:\/\/s.twimg.com\/a\/1290538325\/images\/themes\/theme1\/bg.png","profile_background_color":"C0DEED","location":"\uc5f0\ud76c\uc8fc\ubbfc","profile_use_background_image":true,"profile_text_color":"333333","followers_count":34,"statuses_count":416,"time_zone":"Hawaii","created_at":"Thu Aug 19 06:08:37 +0000 2010","friends_count":36,"protected":false,"profile_image_url":"http:\/\/a0.twimg.com\/profile_images\/1106972912\/aa_normal.jpg","notifications":null,"profile_link_color":"0084B4","url":null,"name":"dub&beard","id_str":"180269638","favourites_count":1,"screen_name":"yaguwang","id":180269638,"contributors_enabled":false,"lang":"en","utc_offset":-36000,"profil
\ No newline at end of file
diff --git a/json-framework-3.2.0/Tests/Stream/xbb b/json-framework-3.2.0/Tests/Stream/xbb
new file mode 100644
index 0000000..cde3be0
--- /dev/null
+++ b/json-framework-3.2.0/Tests/Stream/xbb
@@ -0,0 +1,2 @@
+e_sidebar_fill_color":"DDEEF6"},"id":12411906052591616,"in_reply_to_user_id":173724958,"favorited":false}
+{"coordinates":null,"text":"RT @Ricki_MINAJ: @TeemFollowBack @1109_2904 #teamfollowback twitter famous boy&gt;&gt;&gt; @Ricki_MINAJ &lt;&lt;&lt;","entities":{"urls":[],"hashtags":[{"text":"teamfollowback","indices":[44,59]}],"user_mentions":[{"indices":[3,15],"name":"Ricky Johnson","screen_name":"Ricki_MINAJ","id_str":"51198602","id":51198602},{"indices":[17,32],"name":"Teem Follow Back","screen_name":"TeemFollowBack","id_str":"185188539","id":185188539},{"indices":[33,43],"name":"Aprilian Angel","screen_name":"1109_2904","id_str":"92217048","id":92217048},{"indices":[91,103],"name":"Ricky Johnson","screen_name":"Ricki_MINAJ","id_str":"51198602","id":51198602}]},"in_reply_to_screen_name":null,"in_reply_to_status_id_str":null,"place":null,"contributors":null,"retweet_count":null,"in_reply_to_status_id":null,"in_reply_to_user_id_str":null,"source":"\u003Ca href=\"http:\/\/seesmic.com\/app\" rel=\"nofollow\
\ No newline at end of file
diff --git a/json-framework-3.2.0/Tests/Stream/xbc b/json-framework-3.2.0/Tests/Stream/xbc
new file mode 100644
index 0000000..ed7c101
--- /dev/null
+++ b/json-framework-3.2.0/Tests/Stream/xbc
@@ -0,0 +1 @@
+"\u003ESeesmic Web\u003C\/a\u003E","retweeted_status":{"coordinates":null,"text":"@TeemFollowBack @1109_2904 #teamfollowback twitter famous boy&gt;&gt;&gt; @Ricki_MINAJ &lt;&lt;&lt;","entities":{"urls":[],"hashtags":[{"text":"teamfollowback","indices":[27,42]}],"user_mentions":[{"indices":[0,15],"name":"Teem Follow Back","screen_name":"TeemFollowBack","id_str":"185188539","id":185188539},{"indices":[16,26],"name":"Aprilian Angel","screen_name":"1109_2904","id_str":"92217048","id":92217048},{"indices":[74,86],"name":"Ricky Johnson","screen_name":"Ricki_MINAJ","id_str":"51198602","id":51198602}]},"in_reply_to_screen_name":"TeemFollowBack","in_reply_to_status_id_str":"12405913709191168","place":null,"contributors":null,"retweet_count":null,"in_reply_to_status_id":12405913709191168,"in_reply_to_user_id_str":"185188539","source":"web","retweeted":false,"geo":null,"created_at":"Wed Dec 08 07:43:04 +0000 2010","truncated":false,"id_str":"12411825870077952","user":{"follow_request_sent":null,"following":null,"verifie
\ No newline at end of file
diff --git a/json-framework-3.2.0/Tests/Stream/xbd b/json-framework-3.2.0/Tests/Stream/xbd
new file mode 100644
index 0000000..1a709bd
--- /dev/null
+++ b/json-framework-3.2.0/Tests/Stream/xbd
@@ -0,0 +1 @@
+d":false,"profile_sidebar_border_color":"65B0DA","show_all_inline_media":false,"geo_enabled":false,"description":"I LOVE SWEET BABY JESUS..FASHION IS MY LIFE..MUSIC IS NEXT..THEN FOOD, LOL MY LIFE IS MY BRAND,SO I DRESS LIKE IT!!","listed_count":18,"profile_background_tile":true,"profile_background_image_url":"http:\/\/a1.twimg.com\/profile_background_images\/20055732\/a2f270d4e7d605ac34e48d0fc454b_3701.jpg","profile_background_color":"642D8B","location":"NEW YORK RIHANNA WORLD","profile_use_background_image":true,"profile_text_color":"3D1957","followers_count":1822,"statuses_count":12985,"time_zone":"Mountain Time (US & Canada)","created_at":"Fri Jun 26 19:51:29 +0000 2009","friends_count":1990,"protected":false,"profile_image_url":"http:\/\/a2.twimg.com\/profile_images\/1170133326\/jess_and_ricki_normal.jpg","notifications":null,"profile_link_color":"FF0000","url":"http:\/\/www.blogtv.com\/People\/koolzone","name":"Ricky Johnson","id_str":"51198602","favourites_count":6,"screen_name":"Ricki_MINAJ","id":5119
\ No newline at end of file
diff --git a/json-framework-3.2.0/Tests/Stream/xbe b/json-framework-3.2.0/Tests/Stream/xbe
new file mode 100644
index 0000000..ba04816
--- /dev/null
+++ b/json-framework-3.2.0/Tests/Stream/xbe
@@ -0,0 +1 @@
+8602,"contributors_enabled":false,"lang":"en","utc_offset":-25200,"profile_sidebar_fill_color":"7AC3EE"},"id":12411825870077952,"in_reply_to_user_id":185188539,"favorited":false},"retweeted":false,"geo":null,"created_at":"Wed Dec 08 07:43:23 +0000 2010","truncated":false,"id_str":"12411906035810304","user":{"follow_request_sent":null,"following":null,"verified":false,"profile_sidebar_border_color":"3fdbe3","show_all_inline_media":false,"geo_enabled":true,"description":"\u2665 I am 12 years old \u2665 Simple \u2665 Cool Guy \u2665 Stitch \u2665 Sanurians \u2665 Tasya \u2665 Boys \u2665 Follow me and I will folback, Just Mention Me \u2665 Aprilian Angel \u2665","listed_count":16,"profile_background_tile":false,"profile_background_image_url":"http:\/\/a3.twimg.com\/profile_background_images\/169085711\/4___.jpg","profile_background_color":"25646b","location":"Jakarta","profile_use_background_image":false,"profile_text_color":"2579b0","followers_count":613,"statuses_count":9079,"time_zone":"Jakarta","created_at":
\ No newline at end of file
diff --git a/json-framework-3.2.0/Tests/Stream/xbf b/json-framework-3.2.0/Tests/Stream/xbf
new file mode 100644
index 0000000..42448fc
--- /dev/null
+++ b/json-framework-3.2.0/Tests/Stream/xbf
@@ -0,0 +1,2 @@
+"Tue Nov 24 06:49:28 +0000 2009","friends_count":563,"protected":false,"profile_image_url":"http:\/\/a3.twimg.com\/profile_images\/1161334751\/75785_1659322691840_1500333081_1624686_3546893_n_normal.jpg","notifications":null,"profile_link_color":"40b892","url":null,"name":"Aprilian Angel","id_str":"92217048","favourites_count":27,"screen_name":"1109_2904","id":92217048,"contributors_enabled":false,"lang":"en","utc_offset":25200,"profile_sidebar_fill_color":"c3e1e3"},"id":12411906035810304,"in_reply_to_user_id":null,"favorited":false}
+{"coordinates":null,"text":"@naxvee ohhhh I DOOO :D","entities":{"urls":[],"user_mentions":[{"indices":[0,7],"name":"nax vee","screen_name":"naxvee","id_str":"22720749","id":22720749}],"hashtags":[]},"in_reply_to_screen_name":"naxvee","in_reply_to_status_id_str":"12411850935242752","place":null,"contributors":null,"retweet_count":0,"in_reply_to_status_id":12411850935242752,"in_reply_to_user_id_str":"22720749","source":"web","retweeted":false,"geo":null,"created_at":"Wed Dec 08 0
\ No newline at end of file
diff --git a/json-framework-3.2.0/Tests/Stream/xbg b/json-framework-3.2.0/Tests/Stream/xbg
new file mode 100644
index 0000000..6ff206a
--- /dev/null
+++ b/json-framework-3.2.0/Tests/Stream/xbg
@@ -0,0 +1 @@
+7:43:24 +0000 2010","truncated":false,"id_str":"12411910238502912","user":{"contributors_enabled":false,"following":null,"follow_request_sent":null,"verified":false,"profile_sidebar_border_color":"efff12","show_all_inline_media":false,"geo_enabled":false,"description":"i like to ponder. that is all.","profile_background_color":"760dff","location":"Straya","listed_count":5,"profile_background_tile":true,"profile_background_image_url":"http:\/\/a1.twimg.com\/profile_background_images\/124352628\/5576399.jpg","profile_text_color":"121eff","followers_count":145,"profile_use_background_image":true,"created_at":"Sun Feb 14 01:15:20 +0000 2010","protected":false,"profile_image_url":"http:\/\/a2.twimg.com\/profile_images\/1185036286\/Untitled_normal.png","statuses_count":3899,"notifications":null,"time_zone":"Hawaii","friends_count":146,"profile_link_color":"00ff00","url":"http:\/\/www.formspring.me\/lizzwilko","name":"I\u2665JohnnyDepp","id_str":"114068978","favourites_count":164,"screen_name":"TheLizzyEnd","id":114
\ No newline at end of file
diff --git a/json-framework-3.2.0/Tests/Stream/xbh b/json-framework-3.2.0/Tests/Stream/xbh
new file mode 100644
index 0000000..203acbc
--- /dev/null
+++ b/json-framework-3.2.0/Tests/Stream/xbh
@@ -0,0 +1,2 @@
+068978,"lang":"en","utc_offset":-36000,"profile_sidebar_fill_color":"ff0558"},"id":12411910238502912,"in_reply_to_user_id":22720749,"favorited":false}
+{"coordinates":null,"text":"#Nighttweeters hmu DM or txt &lt;3","entities":{"urls":[],"hashtags":[{"text":"Nighttweeters","indices":[0,14]}],"user_mentions":[]},"in_reply_to_screen_name":null,"in_reply_to_status_id_str":null,"place":null,"contributors":null,"retweet_count":0,"in_reply_to_status_id":null,"in_reply_to_user_id_str":null,"source":"web","retweeted":false,"geo":null,"created_at":"Wed Dec 08 07:43:24 +0000 2010","truncated":false,"id_str":"12411910242705408","user":{"follow_request_sent":null,"following":null,"verified":false,"profile_sidebar_border_color":"C0DEED","show_all_inline_media":false,"geo_enabled":false,"description":"Mexican|19|Raves|Electro,Dubstep,Trance|drinking|Working|Down To Earth|Straight Out|Girls|:) Txting|Webcam|Snakebites|\r\nSingle|Follow me & Ill Follow you :)","listed_count":5,"profile_background_tile":true,"profile_backgrou
\ No newline at end of file
diff --git a/json-framework-3.2.0/Tests/Stream/xbi b/json-framework-3.2.0/Tests/Stream/xbi
new file mode 100644
index 0000000..6a8017d
--- /dev/null
+++ b/json-framework-3.2.0/Tests/Stream/xbi
@@ -0,0 +1,2 @@
+nd_image_url":"http:\/\/a1.twimg.com\/profile_background_images\/130349966\/4638030806_55122db25e_o.jpg","profile_background_color":"C0DEED","location":"Fontana, Ca","profile_use_background_image":true,"profile_text_color":"333333","followers_count":250,"statuses_count":4189,"time_zone":"Alaska","created_at":"Tue Aug 03 05:28:53 +0000 2010","friends_count":463,"protected":false,"profile_image_url":"http:\/\/a1.twimg.com\/profile_images\/1184365797\/gothamcity-189-of-294_normal.png","notifications":null,"profile_link_color":"0084B4","url":"http:\/\/www.myspace.com\/fourlokoking","name":"Juan Felix","id_str":"174137258","favourites_count":0,"screen_name":"Lostboyyyy","id":174137258,"contributors_enabled":false,"lang":"en","utc_offset":-32400,"profile_sidebar_fill_color":"DDEEF6"},"id":12411910242705408,"in_reply_to_user_id":null,"favorited":false}
+{"coordinates":null,"text":"@amaeletronica  D'Baginyus : S.A.K.I.T LOL --&gt; RT oliiind: Hooo eksssss RT WilliamWilz: oliiind engga jelek :b http:\/\/boo.lol.vc\/lL
\ No newline at end of file
diff --git a/json-framework-3.2.0/Tests/Stream/xbj b/json-framework-3.2.0/Tests/Stream/xbj
new file mode 100644
index 0000000..725acc2
--- /dev/null
+++ b/json-framework-3.2.0/Tests/Stream/xbj
@@ -0,0 +1 @@
+fE8","entities":{"urls":[{"expanded_url":null,"indices":[114,137],"url":"http:\/\/boo.lol.vc\/lLfE8"}],"hashtags":[],"user_mentions":[{"indices":[0,14],"name":"anderson avila","screen_name":"amaeletronica","id_str":"73257249","id":73257249}]},"in_reply_to_screen_name":"amaeletronica","in_reply_to_status_id_str":null,"place":null,"contributors":null,"retweet_count":0,"in_reply_to_status_id":null,"in_reply_to_user_id_str":"73257249","source":"web","retweeted":false,"geo":null,"created_at":"Wed Dec 08 07:43:24 +0000 2010","truncated":false,"id_str":"12411910242697216","user":{"follow_request_sent":null,"following":null,"verified":false,"profile_sidebar_border_color":"C0DEED","show_all_inline_media":false,"geo_enabled":false,"description":null,"listed_count":0,"profile_background_tile":false,"profile_background_image_url":"http:\/\/s.twimg.com\/a\/1291318259\/images\/themes\/theme1\/bg.png","profile_background_color":"C0DEED","location":null,"profile_use_background_image":true,"profile_text_color":"333333","follo
\ No newline at end of file
diff --git a/json-framework-3.2.0/Tests/Stream/xbk b/json-framework-3.2.0/Tests/Stream/xbk
new file mode 100644
index 0000000..2a5d7e2
--- /dev/null
+++ b/json-framework-3.2.0/Tests/Stream/xbk
@@ -0,0 +1,2 @@
+wers_count":4,"statuses_count":378,"time_zone":null,"created_at":"Sun Dec 05 17:31:14 +0000 2010","friends_count":0,"protected":false,"profile_image_url":"http:\/\/s.twimg.com\/a\/1291318259\/images\/default_profile_2_normal.png","notifications":null,"profile_link_color":"0084B4","url":null,"name":"irene aguilera","id_str":"223191796","favourites_count":0,"screen_name":"bunndeknalifa","id":223191796,"contributors_enabled":false,"lang":"en","utc_offset":null,"profile_sidebar_fill_color":"DDEEF6"},"id":12411910242697216,"in_reply_to_user_id":73257249,"favorited":false}
+{"coordinates":null,"text":"Haha ejiyek lia mainannya gombal sekarang hahaRT @_ameliahudayana: yoiii RT @vanyaau: Rerun extravaganza","entities":{"urls":[],"hashtags":[],"user_mentions":[{"indices":[49,65],"name":"Amelia Hudayana","screen_name":"_ameliahudayana","id_str":"162588680","id":162588680},{"indices":[76,84],"name":"vanya Beti La Venus","screen_name":"vanyaau","id_str":"65334621","id":65334621}]},"in_reply_to_screen_name":null,"in_reply
\ No newline at end of file
diff --git a/json-framework-3.2.0/Tests/Stream/xbl b/json-framework-3.2.0/Tests/Stream/xbl
new file mode 100644
index 0000000..ba7e2fd
--- /dev/null
+++ b/json-framework-3.2.0/Tests/Stream/xbl
@@ -0,0 +1 @@
+_to_status_id_str":null,"place":null,"contributors":null,"retweet_count":0,"in_reply_to_status_id":null,"in_reply_to_user_id_str":null,"source":"\u003Ca href=\"https:\/\/dabr.mobi\" rel=\"nofollow\"\u003EE = mc\u00b2\u003C\/a\u003E","retweeted":false,"geo":null,"created_at":"Wed Dec 08 07:43:24 +0000 2010","truncated":false,"id_str":"12411910238511104","user":{"following":null,"listed_count":8,"profile_background_tile":true,"profile_background_image_url":"http:\/\/a3.twimg.com\/profile_background_images\/62088481\/cup_cakes.JPG","profile_sidebar_border_color":"7e3091","profile_use_background_image":true,"description":"260695, 15th, FH, ALFAJAR JHS, MUHAMMADIYAH SHS, #THRH's HEART, A PART OF X.3, jazz addict, #AnakGalau\u2665 beti la gondrong venus GREET: vanyaau@hot xoxo :*","statuses_count":10309,"time_zone":"Pacific Time (US & Canada)","friends_count":287,"profile_background_color":"fa197e","location":"Planet venus~ fairy world","profile_text_color":"e8099a","followers_count":255,"contributors_enabled":fals
\ No newline at end of file
diff --git a/json-framework-3.2.0/Tests/Stream/xbm b/json-framework-3.2.0/Tests/Stream/xbm
new file mode 100644
index 0000000..a0772a7
--- /dev/null
+++ b/json-framework-3.2.0/Tests/Stream/xbm
@@ -0,0 +1,2 @@
+e,"created_at":"Thu Aug 13 10:32:49 +0000 2009","protected":false,"profile_image_url":"http:\/\/a3.twimg.com\/profile_images\/1176654063\/vanyac_normal.jpg","follow_request_sent":null,"verified":false,"notifications":null,"profile_link_color":"7135cc","url":"http:\/\/vanyaau.blogspot.com","name":"vanya Beti La Venus","id_str":"65334621","favourites_count":104,"screen_name":"vanyaau","id":65334621,"show_all_inline_media":false,"lang":"en","geo_enabled":false,"utc_offset":-28800,"profile_sidebar_fill_color":"d880f5"},"id":12411910238511104,"in_reply_to_user_id":null,"favorited":false}
+{"coordinates":null,"text":"Orange Soda.","entities":{"urls":[],"hashtags":[],"user_mentions":[]},"in_reply_to_screen_name":null,"in_reply_to_status_id_str":null,"place":null,"contributors":null,"retweet_count":0,"in_reply_to_status_id":null,"in_reply_to_user_id_str":null,"source":"web","retweeted":false,"geo":null,"created_at":"Wed Dec 08 07:43:24 +0000 2010","truncated":false,"id_str":"12411910255288320","user":{"following":nul
\ No newline at end of file
diff --git a/json-framework-3.2.0/Tests/Stream/xbn b/json-framework-3.2.0/Tests/Stream/xbn
new file mode 100644
index 0000000..e49ed4d
--- /dev/null
+++ b/json-framework-3.2.0/Tests/Stream/xbn
@@ -0,0 +1 @@
+l,"listed_count":23,"profile_background_tile":true,"profile_background_image_url":"http:\/\/a3.twimg.com\/profile_background_images\/179350469\/PacManTee.jpg","profile_sidebar_border_color":"badcad","profile_use_background_image":true,"description":"Deadly Robot love Owner. Lifestyle Blogger. Designer. Poet. Collector. Grandson.","statuses_count":56123,"time_zone":"Eastern Time (US & Canada)","friends_count":196,"profile_background_color":"919191","location":"Atlanta","profile_text_color":"333333","followers_count":716,"contributors_enabled":false,"created_at":"Mon May 04 22:27:05 +0000 2009","protected":false,"profile_image_url":"http:\/\/a2.twimg.com\/profile_images\/1180397702\/KevinDRL_normal.jpg","follow_request_sent":null,"verified":false,"notifications":null,"profile_link_color":"0a0a0a","url":"http:\/\/www.deadlyrobotlove.com\/","name":"K\u2665vin, The Robot.","id_str":"37777826","favourites_count":4,"screen_name":"deadlyrobotlove","id":37777826,"show_all_inline_media":false,"lang":"en","geo_enabled":
\ No newline at end of file
diff --git a/json-framework-3.2.0/Tests/Stream/xbo b/json-framework-3.2.0/Tests/Stream/xbo
new file mode 100644
index 0000000..5dc974e
--- /dev/null
+++ b/json-framework-3.2.0/Tests/Stream/xbo
@@ -0,0 +1,2 @@
+false,"utc_offset":-18000,"profile_sidebar_fill_color":"686e6e"},"id":12411910255288320,"in_reply_to_user_id":null,"favorited":false}
+{"coordinates":null,"text":"@chiru_hms DMCSjp RT denamamoto: I'd swim across the world for you... lol joking, there are sharks in there. http:\/\/zry.m2r.ru\/HPOon","entities":{"urls":[{"expanded_url":null,"indices":[109,132],"url":"http:\/\/zry.m2r.ru\/HPOon"}],"user_mentions":[{"indices":[0,10],"name":"chiru","screen_name":"chiru_hms","id_str":"114779568","id":114779568}],"hashtags":[]},"in_reply_to_screen_name":"chiru_hms","in_reply_to_status_id_str":null,"place":null,"contributors":null,"retweet_count":0,"in_reply_to_status_id":null,"in_reply_to_user_id_str":"114779568","source":"web","retweeted":false,"geo":null,"created_at":"Wed Dec 08 07:43:24 +0000 2010","truncated":false,"id_str":"12411910259474432","user":{"follow_request_sent":null,"following":null,"verified":false,"profile_sidebar_border_color":"C0DEED","show_all_inline_media":false,"geo_enabled":false,"description
\ No newline at end of file
diff --git a/json-framework-3.2.0/Tests/Stream/xbp b/json-framework-3.2.0/Tests/Stream/xbp
new file mode 100644
index 0000000..cf9456e
--- /dev/null
+++ b/json-framework-3.2.0/Tests/Stream/xbp
@@ -0,0 +1,2 @@
+":"","listed_count":0,"profile_background_tile":false,"profile_background_image_url":"http:\/\/s.twimg.com\/a\/1291318259\/images\/themes\/theme1\/bg.png","profile_background_color":"C0DEED","location":"","profile_use_background_image":true,"profile_text_color":"333333","followers_count":9,"statuses_count":575,"time_zone":null,"created_at":"Sun Dec 05 17:14:25 +0000 2010","friends_count":0,"protected":false,"profile_image_url":"http:\/\/a0.twimg.com\/profile_images\/1183205820\/twitterProfilePhoto_normal.jpg_normal.146","notifications":null,"profile_link_color":"0084B4","url":null,"name":"shanel thornton","id_str":"223186483","favourites_count":0,"screen_name":"frn_JBiebtrBR","id":223186483,"contributors_enabled":false,"lang":"en","utc_offset":null,"profile_sidebar_fill_color":"DDEEF6"},"id":12411910259474432,"in_reply_to_user_id":114779568,"favorited":false}
+{"coordinates":null,"text":"\u039a\u03b1\u03bb\u03b7\u03bc\u03b5\u03c1\u03b1 \u03ba\u03b1\u03b9 \u03c5\u03c0\u03bf\u03bc\u03bf\u03bd\u03b7! \u039f\u03c
\ No newline at end of file
diff --git a/json-framework-3.2.0/Tests/Stream/xbq b/json-framework-3.2.0/Tests/Stream/xbq
new file mode 100644
index 0000000..8fe2dc8
--- /dev/null
+++ b/json-framework-3.2.0/Tests/Stream/xbq
@@ -0,0 +1 @@
+3\u03bf\u03b9 \u03b5\u03b9\u03c3\u03c4\u03b5 \u03ba\u03bf\u03bd\u03c4\u03b1 \u03bc\u03b7\u03bd \u03c0\u03b1\u03c1\u03b5\u03c4\u03b5 \u03b1\u03c5\u03c4\u03bf\u03ba\u03b9\u03bd\u03b7\u03c4\u03bf, \u03c0\u03bf\u03b4\u03b9\u03b1 \u03b7 \u03c0\u03bf\u03b4\u03b7\u03bb\u03b1\u03c4\u03bf..!","entities":{"urls":[],"hashtags":[],"user_mentions":[]},"in_reply_to_screen_name":null,"in_reply_to_status_id_str":null,"place":null,"contributors":null,"retweet_count":0,"in_reply_to_status_id":null,"in_reply_to_user_id_str":null,"source":"\u003Ca href=\"http:\/\/twitter.com\/\" rel=\"nofollow\"\u003ETwitter for iPhone\u003C\/a\u003E","retweeted":false,"geo":null,"created_at":"Wed Dec 08 07:43:24 +0000 2010","truncated":false,"id_str":"12411910234308608","user":{"following":null,"listed_count":10,"profile_background_tile":true,"profile_background_image_url":"http:\/\/a3.twimg.com\/profile_background_images\/167969569\/bodypaint_floyd.jpg","profile_sidebar_border_color":"829D5E","profile_use_background_image":true,"description":"
\ No newline at end of file
diff --git a/json-framework-3.2.0/Tests/Stream/xbr b/json-framework-3.2.0/Tests/Stream/xbr
new file mode 100644
index 0000000..eb0f520
--- /dev/null
+++ b/json-framework-3.2.0/Tests/Stream/xbr
@@ -0,0 +1,2 @@
+Summer Dream!","statuses_count":1932,"time_zone":"Athens","friends_count":240,"profile_background_color":"352726","location":"Currently Lost","profile_text_color":"3E4415","followers_count":235,"contributors_enabled":false,"created_at":"Thu Oct 28 22:40:07 +0000 2010","protected":false,"profile_image_url":"http:\/\/a3.twimg.com\/profile_images\/1154617775\/IMG_3032_normal.JPG","follow_request_sent":null,"verified":false,"notifications":null,"profile_link_color":"0c1bc7","url":null,"name":"Psychophski","id_str":"209295433","favourites_count":33,"screen_name":"Psychophski","id":209295433,"show_all_inline_media":false,"lang":"en","geo_enabled":true,"utc_offset":7200,"profile_sidebar_fill_color":"336bcc"},"id":12411910234308608,"in_reply_to_user_id":null,"favorited":false}
+{"coordinates":{"coordinates":[0,0],"type":"Point"},"text":"to protest or not to protest...that is the question!","entities":{"urls":[],"hashtags":[],"user_mentions":[]},"in_reply_to_screen_name":null,"in_reply_to_status_id_str":null,"place":n
\ No newline at end of file
diff --git a/json-framework-3.2.0/Tests/Stream/xbs b/json-framework-3.2.0/Tests/Stream/xbs
new file mode 100644
index 0000000..4a1eb7b
--- /dev/null
+++ b/json-framework-3.2.0/Tests/Stream/xbs
@@ -0,0 +1 @@
+ull,"contributors":null,"retweet_count":null,"in_reply_to_status_id":null,"in_reply_to_user_id_str":null,"source":"\u003Ca href=\"http:\/\/www.tweetdeck.com\" rel=\"nofollow\"\u003ETweetDeck\u003C\/a\u003E","retweeted":false,"geo":{"coordinates":[0,0],"type":"Point"},"created_at":"Wed Dec 08 07:43:24 +0000 2010","truncated":false,"id_str":"12411910251085824","user":{"follow_request_sent":null,"following":null,"verified":false,"profile_sidebar_border_color":"aef5fa","show_all_inline_media":false,"geo_enabled":true,"description":"you'll never regret giving it your best, so go on and do it. ","listed_count":1,"profile_background_tile":false,"profile_background_image_url":"http:\/\/s.twimg.com\/a\/1291750721\/images\/themes\/theme1\/bg.png","profile_background_color":"214542","location":"Washington","profile_use_background_image":true,"profile_text_color":"739e9f","followers_count":32,"statuses_count":516,"time_zone":null,"created_at":"Wed Sep 15 06:21:58 +0000 2010","friends_count":85,"protected":false,"profile_
\ No newline at end of file
diff --git a/json-framework-3.2.0/Tests/Stream/xbt b/json-framework-3.2.0/Tests/Stream/xbt
new file mode 100644
index 0000000..fcbcf1a
--- /dev/null
+++ b/json-framework-3.2.0/Tests/Stream/xbt
@@ -0,0 +1,2 @@
+image_url":"http:\/\/a2.twimg.com\/profile_images\/1155612338\/26_normal.jpg","notifications":null,"profile_link_color":"b4d9ad","url":null,"name":"Sarah Jane Burns","id_str":"190941250","favourites_count":0,"screen_name":"sarahjb93","id":190941250,"contributors_enabled":false,"lang":"en","utc_offset":null,"profile_sidebar_fill_color":"3b615d"},"id":12411910251085824,"in_reply_to_user_id":null,"favorited":false}
+{"coordinates":null,"text":"@soyFayo me puse peor hoy esta semana quiero recuperarme para que no se me complique u.u","entities":{"urls":[],"user_mentions":[{"indices":[0,8],"name":"Fayo","screen_name":"soyFayo","id_str":"72220601","id":72220601}],"hashtags":[]},"in_reply_to_screen_name":"soyFayo","in_reply_to_status_id_str":"12411227426787328","place":null,"contributors":null,"retweet_count":0,"in_reply_to_status_id":12411227426787328,"in_reply_to_user_id_str":"72220601","source":"\u003Ca href=\"http:\/\/twittme.mobi\" rel=\"nofollow\"\u003Etwittme.mobi\u003C\/a\u003E","retweeted":false,"geo":null,"
\ No newline at end of file
diff --git a/json-framework-3.2.0/Tests/Stream/xbu b/json-framework-3.2.0/Tests/Stream/xbu
new file mode 100644
index 0000000..78fd96f
--- /dev/null
+++ b/json-framework-3.2.0/Tests/Stream/xbu
@@ -0,0 +1 @@
+created_at":"Wed Dec 08 07:43:24 +0000 2010","truncated":false,"id_str":"12411910230118400","user":{"follow_request_sent":null,"following":null,"verified":false,"profile_sidebar_border_color":"fff8ad","show_all_inline_media":false,"geo_enabled":false,"description":"ESCRITORAILUSTRADORA, CARTONISTA,FISICA-MATEMATICAS,futura vulcanologa. Y ENAMORADA D LA VIDA Y SOY 100%UNAM Hija adoptiva de @marinataibo3 y @monicamateosV","listed_count":158,"profile_background_tile":false,"profile_background_image_url":"http:\/\/a1.twimg.com\/profile_background_images\/137229680\/Fenix_ohen_small.jpg","profile_background_color":"FFF04D","location":"estado de Ebriedad M\u00e9xico ","profile_use_background_image":true,"profile_text_color":"333333","followers_count":2066,"statuses_count":60566,"time_zone":"Mexico City","created_at":"Sun Nov 15 02:51:14 +0000 2009","friends_count":1890,"protected":false,"profile_image_url":"http:\/\/a1.twimg.com\/profile_images\/1184479641\/imagesCANA8G7F_normal.jpg","notifications":null,"profile_l
\ No newline at end of file
diff --git a/json-framework-3.2.0/Tests/Stream/xbv b/json-framework-3.2.0/Tests/Stream/xbv
new file mode 100644
index 0000000..4b9c71b
--- /dev/null
+++ b/json-framework-3.2.0/Tests/Stream/xbv
@@ -0,0 +1,2 @@
+ink_color":"0099CC","url":"http:\/\/cienciasartes.blogspot.com\/  ","name":"Luc\u00edaVillarrealLuna","id_str":"90079038","favourites_count":39,"screen_name":"pokemonera","id":90079038,"contributors_enabled":false,"lang":"es","utc_offset":-21600,"profile_sidebar_fill_color":"f6ffd1"},"id":12411910230118400,"in_reply_to_user_id":72220601,"favorited":false}
+{"coordinates":null,"text":"@bonita_Niyah she gotta txt & tell kuz she dnt have a fb she da shy type so idk but she gon have 2 tell soon or lata","entities":{"urls":[],"user_mentions":[{"indices":[0,13],"name":"\ue32d. . . \ue144","screen_name":"bonita_Niyah","id_str":"123750163","id":123750163}],"hashtags":[]},"in_reply_to_screen_name":"bonita_Niyah","in_reply_to_status_id_str":"12408747867508737","place":null,"contributors":null,"retweet_count":0,"in_reply_to_status_id":12408747867508737,"in_reply_to_user_id_str":"123750163","source":"\u003Ca href=\"http:\/\/www.ubertwitter.com\/bb\/download.php\" rel=\"nofollow\"\u003E\u00dcberTwitter\u003C\/a\u003E","re
\ No newline at end of file
diff --git a/json-framework-3.2.0/Tests/Stream/xbw b/json-framework-3.2.0/Tests/Stream/xbw
new file mode 100644
index 0000000..e52236a
--- /dev/null
+++ b/json-framework-3.2.0/Tests/Stream/xbw
@@ -0,0 +1 @@
+tweeted":false,"geo":null,"created_at":"Wed Dec 08 07:43:24 +0000 2010","truncated":false,"id_str":"12411910255284224","user":{"contributors_enabled":false,"following":null,"follow_request_sent":null,"verified":false,"profile_sidebar_border_color":"C0DEED","show_all_inline_media":false,"geo_enabled":true,"description":"I'M A DAUGHTER..A BESTFRIEND..A FRIEND..A SISTER..A COUSIN..A AUNTIE..A FIGHTER..A LOVER..A SINNER..A SAINT..I WILL TELL YOU 1 THING IM NOT A DOORMAT.. ","profile_background_color":"C0DEED","location":"Nwk NJ","listed_count":0,"profile_background_tile":false,"profile_background_image_url":"http:\/\/s.twimg.com\/a\/1291318259\/images\/themes\/theme1\/bg.png","profile_text_color":"333333","followers_count":30,"profile_use_background_image":true,"created_at":"Fri Aug 13 03:42:52 +0000 2010","protected":false,"profile_image_url":"http:\/\/a0.twimg.com\/profile_images\/1101800168\/x2_24cd30d_normal.jpg","statuses_count":715,"notifications":null,"time_zone":"Eastern Time (US & Canada)","friends_count
\ No newline at end of file
diff --git a/json-framework-3.2.0/Tests/Stream/xbx b/json-framework-3.2.0/Tests/Stream/xbx
new file mode 100644
index 0000000..4f885d0
--- /dev/null
+++ b/json-framework-3.2.0/Tests/Stream/xbx
@@ -0,0 +1,2 @@
+":157,"profile_link_color":"0084B4","url":null,"name":"Iesha Bankston","id_str":"177814999","favourites_count":0,"screen_name":"Pretty_Esh_B","id":177814999,"lang":"en","utc_offset":-18000,"profile_sidebar_fill_color":"DDEEF6"},"id":12411910255284224,"in_reply_to_user_id":123750163,"favorited":false}
+{"coordinates":null,"text":"galau ga enek tebengan hahaha RT @ridowidi: galau kok jek ttp twitteranRT @anityaardiyani: nambah2i galauku wae RT... http:\/\/mtw.tl\/lf6idh","entities":{"urls":[{"expanded_url":null,"indices":[118,138],"url":"http:\/\/mtw.tl\/lf6idh"}],"hashtags":[],"user_mentions":[{"indices":[33,42],"name":"ridho widi","screen_name":"ridowidi","id_str":"216939950","id":216939950},{"indices":[74,89],"name":"anitya ardiyani p","screen_name":"anityaardiyani","id_str":"77723022","id":77723022}]},"in_reply_to_screen_name":null,"in_reply_to_status_id_str":null,"place":null,"contributors":null,"retweet_count":0,"in_reply_to_status_id":null,"in_reply_to_user_id_str":null,"source":"\u003Ca href=\"http:\/\/
\ No newline at end of file
diff --git a/json-framework-3.2.0/Tests/Stream/xby b/json-framework-3.2.0/Tests/Stream/xby
new file mode 100644
index 0000000..c686945
--- /dev/null
+++ b/json-framework-3.2.0/Tests/Stream/xby
@@ -0,0 +1 @@
+m.tweete.net\" rel=\"nofollow\"\u003Em.tweete.net\u003C\/a\u003E","retweeted":false,"geo":null,"created_at":"Wed Dec 08 07:43:25 +0000 2010","truncated":false,"id_str":"12411914441195520","user":{"follow_request_sent":null,"following":null,"verified":false,"profile_sidebar_border_color":"C0DEED","show_all_inline_media":true,"geo_enabled":true,"description":"","listed_count":0,"profile_background_tile":true,"profile_background_image_url":"http:\/\/a1.twimg.com\/profile_background_images\/176784334\/Shichibukai.jpg","profile_background_color":"C0DEED","location":"Indonesia","profile_use_background_image":true,"profile_text_color":"333333","followers_count":32,"statuses_count":433,"time_zone":"Jakarta","created_at":"Tue Nov 02 11:14:29 +0000 2010","friends_count":53,"protected":false,"profile_image_url":"http:\/\/a3.twimg.com\/profile_images\/1179237591\/Image026_normal.jpg","notifications":null,"profile_link_color":"0084B4","url":null,"name":"Irwan Syah","id_str":"211117875","favourites_count":0,"screen_name":"
\ No newline at end of file
diff --git a/json-framework-3.2.0/Tests/Stream/xbz b/json-framework-3.2.0/Tests/Stream/xbz
new file mode 100644
index 0000000..575146f
--- /dev/null
+++ b/json-framework-3.2.0/Tests/Stream/xbz
@@ -0,0 +1,2 @@
+irwan_akt","id":211117875,"contributors_enabled":false,"lang":"en","utc_offset":25200,"profile_sidebar_fill_color":"DDEEF6"},"id":12411914441195520,"in_reply_to_user_id":null,"favorited":false}
+{"coordinates":null,"text":"@nanafatemn7 \u77e5\u3089\u306d\u3048\u3088\uff57\uff57\uff57\u3044\u3044\u3058\u3083\u3093\u3002\u544a\u3063\u3061\u3083\u3048\uff01","entities":{"urls":[],"hashtags":[],"user_mentions":[{"indices":[0,12],"name":"\u306a\u306a\u30d5\u30a7\u30a4! \u795d\uff01\u5948\u3005\u3055\u3093\u7d05\u767d\u51fa\u5834\uff01","screen_name":"nanafatemn7","id_str":"155566960","id":155566960}]},"in_reply_to_screen_name":"nanafatemn7","in_reply_to_status_id_str":"12411662476775424","place":null,"contributors":null,"retweet_count":0,"in_reply_to_status_id":12411662476775424,"in_reply_to_user_id_str":"155566960","source":"web","retweeted":false,"geo":null,"created_at":"Wed Dec 08 07:43:25 +0000 2010","truncated":false,"id_str":"12411914445393920","user":{"follow_request_sent":null,"following":null,"verified":f
\ No newline at end of file
diff --git a/json-framework-3.2.0/Tests/Stream/xca b/json-framework-3.2.0/Tests/Stream/xca
new file mode 100644
index 0000000..b058410
--- /dev/null
+++ b/json-framework-3.2.0/Tests/Stream/xca
@@ -0,0 +1 @@
+alse,"profile_sidebar_border_color":"FFFFFF","show_all_inline_media":false,"geo_enabled":false,"description":"\u5909\u614b\u3067\u3059\u3002\u53d6\u308a\u6562\u3048\u305a\u9a12\u3044\u3067\u308b\u91ce\u90ce\u3067\u3059\u3002\u4e2d\uff13\u3002\u6b63\u76f4\u3001\u30a8\u30ed\u3044\u306e\u306f\u4ed5\u65b9\u306a\u3044\u3068\u601d\u3063\u3066\u307e\u3059\u3002\r\n\r\n\uff12\u6b21\u5143\u306f\u305d\u308c\u306a\u308a\u306b\u306f\u7406\u89e3\u51fa\u6765\u307e\u3059\u304c\u2026\r\n\r\n\u30dd\u30b1\u30e2\u30f3\u3084\u3063\u3066\u307e\u3059\r\n\r\n\r\n\u75db\u3044\u3067\u3059\u3051\u308c\u3069\r\n\r\n\u3088\u308d\u3057\u304f\u304a\u9858\u3044\u3057\u307e\u3059(\u7206)","listed_count":0,"profile_background_tile":false,"profile_background_image_url":"http:\/\/a1.twimg.com\/profile_background_images\/124093074\/bg.jpg","profile_background_color":"000000","location":"\u30a8\u30f3\u30b8\u30e5\u30b7\u30c6\u30a3","profile_use_background_image":true,"profile_text_color":"b344b3","followers_count":24,"statuses_count":1547,"time_z
\ No newline at end of file
diff --git a/json-framework-3.2.0/Tests/Stream/xcb b/json-framework-3.2.0/Tests/Stream/xcb
new file mode 100644
index 0000000..0c55cb5
--- /dev/null
+++ b/json-framework-3.2.0/Tests/Stream/xcb
@@ -0,0 +1,2 @@
+one":"Osaka","created_at":"Fri Mar 19 08:48:17 +0000 2010","friends_count":55,"protected":false,"profile_image_url":"http:\/\/a1.twimg.com\/profile_images\/1182098397\/100813_1246340001_normal.jpg","notifications":null,"profile_link_color":"CC3300","url":null,"name":"\u30b7\u30fc\u30c9\u6a29\u0444","id_str":"124404959","favourites_count":2,"screen_name":"Sheadken","id":124404959,"contributors_enabled":false,"lang":"ja","utc_offset":32400,"profile_sidebar_fill_color":"F7DA93"},"id":12411914445393920,"in_reply_to_user_id":155566960,"favorited":false}
+{"coordinates":null,"text":"\u7720\u3044\u30fb\u30fb\u30fb","entities":{"urls":[],"user_mentions":[],"hashtags":[]},"in_reply_to_screen_name":null,"in_reply_to_status_id_str":null,"place":null,"contributors":null,"retweet_count":0,"in_reply_to_status_id":null,"in_reply_to_user_id_str":null,"source":"web","retweeted":false,"geo":null,"created_at":"Wed Dec 08 07:43:25 +0000 2010","truncated":false,"id_str":"12411914437009408","user":{"follow_request_sent":null,"foll
\ No newline at end of file
diff --git a/json-framework-3.2.0/Tests/Stream/xcc b/json-framework-3.2.0/Tests/Stream/xcc
new file mode 100644
index 0000000..49da381
--- /dev/null
+++ b/json-framework-3.2.0/Tests/Stream/xcc
@@ -0,0 +1 @@
+owing":null,"verified":false,"profile_sidebar_border_color":"ffcb47","show_all_inline_media":false,"geo_enabled":false,"description":"WORKING\u3001\u30dc\u30ab\u30ed\u3001\u30dc\u30fc\u30dc\u30dc\u3001DRRR\u597d\u304d\u3067\u3059\uff57(\u00b4\u03c9\uff40)","listed_count":0,"profile_background_tile":true,"profile_background_image_url":"http:\/\/a1.twimg.com\/profile_background_images\/179023784\/14533769_p9.png","profile_background_color":"ffd4ff","location":"\u5922\u306e\u4e2d\u266c","profile_use_background_image":true,"profile_text_color":"089629","followers_count":15,"statuses_count":465,"time_zone":"Hawaii","created_at":"Wed Oct 27 11:15:34 +0000 2010","friends_count":38,"protected":false,"profile_image_url":"http:\/\/a3.twimg.com\/profile_images\/1161025943\/magnet_normal.jpg","notifications":null,"profile_link_color":"ff2499","url":"http:\/\/ameblo.jp\/work-ing\/","name":"\u5922\u65e5\u8a18\u266a","id_str":"208488936","favourites_count":0,"screen_name":"yumenonikki327","id":208488936,"contributors_enable
\ No newline at end of file
diff --git a/json-framework-3.2.0/Tests/Stream/xcd b/json-framework-3.2.0/Tests/Stream/xcd
new file mode 100644
index 0000000..23c744f
--- /dev/null
+++ b/json-framework-3.2.0/Tests/Stream/xcd
@@ -0,0 +1,2 @@
+d":false,"lang":"ja","utc_offset":-36000,"profile_sidebar_fill_color":"fdff82"},"id":12411914437009408,"in_reply_to_user_id":null,"favorited":false}
+{"coordinates":null,"text":"14.79 euro valt nog wel mee voor 8 dagen tijd","entities":{"urls":[],"hashtags":[],"user_mentions":[]},"in_reply_to_screen_name":null,"in_reply_to_status_id_str":null,"place":null,"contributors":null,"retweet_count":0,"in_reply_to_status_id":null,"in_reply_to_user_id_str":null,"source":"\u003Ca href=\"http:\/\/www.tweetdeck.com\" rel=\"nofollow\"\u003ETweetDeck\u003C\/a\u003E","retweeted":false,"geo":null,"created_at":"Wed Dec 08 07:43:25 +0000 2010","truncated":false,"id_str":"12411914457980928","user":{"following":null,"listed_count":0,"profile_background_tile":false,"profile_background_image_url":"http:\/\/s.twimg.com\/a\/1290538325\/images\/themes\/theme5\/bg.gif","profile_sidebar_border_color":"829D5E","profile_use_background_image":true,"description":"- -","statuses_count":3291,"time_zone":"Amsterdam","friends_count":71,"profile
\ No newline at end of file
diff --git a/json-framework-3.2.0/Tests/Stream/xce b/json-framework-3.2.0/Tests/Stream/xce
new file mode 100644
index 0000000..61e6016
--- /dev/null
+++ b/json-framework-3.2.0/Tests/Stream/xce
@@ -0,0 +1,2 @@
+_background_color":"352726","location":"Vlaardingen","profile_text_color":"3E4415","followers_count":67,"contributors_enabled":false,"created_at":"Mon Nov 23 07:34:26 +0000 2009","protected":false,"profile_image_url":"http:\/\/a1.twimg.com\/profile_images\/1160466321\/Foto0850_normal.jpg","follow_request_sent":null,"verified":false,"notifications":null,"profile_link_color":"D02B55","url":"http:\/\/www.priscillaa15.hyves.nl","name":"Priscilla v Vliet","id_str":"91959124","favourites_count":1,"screen_name":"xpriscil","id":91959124,"show_all_inline_media":false,"lang":"en","geo_enabled":false,"utc_offset":3600,"profile_sidebar_fill_color":"99CC33"},"id":12411914457980928,"in_reply_to_user_id":null,"favorited":false}
+{"coordinates":null,"text":"Is This A Serious Question? -___- (iamskippytv) RT @JBooqiie_DEC20 @iamSkippyTV what's ya oovoo","entities":{"hashtags":[],"urls":[],"user_mentions":[{"indices":[51,66],"name":"Joshua && Yhu ?!","screen_name":"JBooqiie_DEC20","id_str":"89241118","id":89241118},{"indices":
\ No newline at end of file
diff --git a/json-framework-3.2.0/Tests/Stream/xcf b/json-framework-3.2.0/Tests/Stream/xcf
new file mode 100644
index 0000000..abefbbc
--- /dev/null
+++ b/json-framework-3.2.0/Tests/Stream/xcf
@@ -0,0 +1 @@
+[67,79],"name":"Skippy MaKenzi","screen_name":"iamSkippyTV","id_str":"30615809","id":30615809}]},"in_reply_to_screen_name":null,"in_reply_to_status_id_str":null,"place":null,"contributors":null,"retweet_count":0,"in_reply_to_status_id":null,"in_reply_to_user_id_str":null,"source":"\u003Ca href=\"http:\/\/mobile.twitter.com\" rel=\"nofollow\"\u003EMobile Web\u003C\/a\u003E","retweeted":false,"geo":null,"created_at":"Wed Dec 08 07:43:25 +0000 2010","truncated":false,"id_str":"12411914453782528","user":{"following":null,"listed_count":22,"profile_background_tile":true,"profile_background_image_url":"http:\/\/a1.twimg.com\/profile_background_images\/178920818\/iamskippytv.jpg","profile_sidebar_border_color":"eeeeee","profile_use_background_image":true,"description":"Youtube Video Blogger, Twitter Addict, Socialist, SKIPPY \u2665's BOYS! #TeamTaurus \u2649","statuses_count":36360,"time_zone":"Central Time (US & Canada)","friends_count":97,"profile_background_color":"3b3c3d","location":"CottenCandy & Rainbow Field"
\ No newline at end of file
diff --git a/json-framework-3.2.0/Tests/Stream/xcg b/json-framework-3.2.0/Tests/Stream/xcg
new file mode 100644
index 0000000..f9ffaf3
--- /dev/null
+++ b/json-framework-3.2.0/Tests/Stream/xcg
@@ -0,0 +1,2 @@
+,"profile_text_color":"121112","followers_count":471,"contributors_enabled":false,"created_at":"Sun Apr 12 06:41:34 +0000 2009","protected":false,"profile_image_url":"http:\/\/a1.twimg.com\/profile_images\/1183274157\/IMG00169-20101205-0211_normal.jpg","follow_request_sent":null,"verified":false,"notifications":null,"profile_link_color":"889494","url":"http:\/\/itsmyurls.com\/skippy","name":"Skippy MaKenzi","id_str":"30615809","favourites_count":117,"screen_name":"iamSkippyTV","id":30615809,"show_all_inline_media":false,"lang":"en","geo_enabled":false,"utc_offset":-21600,"profile_sidebar_fill_color":"efefef"},"id":12411914453782528,"in_reply_to_user_id":null,"favorited":false}
+{"coordinates":null,"text":"nyasar gak yak?","entities":{"urls":[],"user_mentions":[],"hashtags":[]},"in_reply_to_screen_name":null,"in_reply_to_status_id_str":null,"place":null,"contributors":null,"retweet_count":0,"in_reply_to_status_id":null,"in_reply_to_user_id_str":null,"source":"\u003Ca href=\"http:\/\/202.153.132.152\" rel=\"nof
\ No newline at end of file
diff --git a/json-framework-3.2.0/Tests/Stream/xch b/json-framework-3.2.0/Tests/Stream/xch
new file mode 100644
index 0000000..eeaa8e9
--- /dev/null
+++ b/json-framework-3.2.0/Tests/Stream/xch
@@ -0,0 +1 @@
+ollow\"\u003EHP_Esia\u003C\/a\u003E","retweeted":false,"geo":null,"created_at":"Wed Dec 08 07:43:25 +0000 2010","truncated":false,"id_str":"12411914428616705","user":{"follow_request_sent":null,"following":null,"verified":false,"profile_sidebar_border_color":"C0DEED","show_all_inline_media":false,"geo_enabled":false,"description":"be my self :)","listed_count":0,"profile_background_tile":false,"profile_background_image_url":"http:\/\/s.twimg.com\/a\/1291064993\/images\/themes\/theme1\/bg.png","profile_background_color":"C0DEED","location":"","profile_use_background_image":true,"profile_text_color":"333333","followers_count":31,"statuses_count":875,"time_zone":"Pacific Time (US & Canada)","created_at":"Tue Sep 21 08:36:25 +0000 2010","friends_count":19,"protected":false,"profile_image_url":"http:\/\/a1.twimg.com\/profile_images\/1161524757\/IMG8943A_normal.jpg","notifications":null,"profile_link_color":"0084B4","url":null,"name":"Nnisa Lutfi Zuldah","id_str":"193220237","favourites_count":1,"screen_name":"zuld
\ No newline at end of file
diff --git a/json-framework-3.2.0/Tests/Stream/xci b/json-framework-3.2.0/Tests/Stream/xci
new file mode 100644
index 0000000..6c14456
--- /dev/null
+++ b/json-framework-3.2.0/Tests/Stream/xci
@@ -0,0 +1,2 @@
+annisa","id":193220237,"contributors_enabled":false,"lang":"en","utc_offset":-28800,"profile_sidebar_fill_color":"DDEEF6"},"id":12411914428616705,"in_reply_to_user_id":null,"favorited":false}
+{"coordinates":null,"text":"@bayfm78 \u3046\u3093\u3001\u307e\u3041\u305d\u3046\u89e3\u91c8\u3059\u308b\u306a\u3089\u305d\u308c\u3067\u3082\u3044\u3044\u3093\u3058\u3083\u306a\u3044\u3002","entities":{"urls":[],"user_mentions":[{"indices":[0,8],"name":"\u304b\u305a\u304f\u3093\u3001\u3075\u3049\u3048\u3070","screen_name":"bayfm78","id_str":"21861792","id":21861792}],"hashtags":[]},"in_reply_to_screen_name":"bayfm78","in_reply_to_status_id_str":"12409691430715392","place":null,"contributors":null,"retweet_count":0,"in_reply_to_status_id":12409691430715392,"in_reply_to_user_id_str":"21861792","source":"\u003Ca href=\"http:\/\/twtr.jp\" rel=\"nofollow\"\u003EKeitai Web\u003C\/a\u003E","retweeted":false,"geo":null,"created_at":"Wed Dec 08 07:43:25 +0000 2010","truncated":false,"id_str":"12411914449588224","user":{"follow_re
\ No newline at end of file
diff --git a/json-framework-3.2.0/Tests/Stream/xcj b/json-framework-3.2.0/Tests/Stream/xcj
new file mode 100644
index 0000000..9245d71
--- /dev/null
+++ b/json-framework-3.2.0/Tests/Stream/xcj
@@ -0,0 +1 @@
+quest_sent":null,"following":null,"verified":false,"profile_sidebar_border_color":"C0DEED","show_all_inline_media":false,"geo_enabled":false,"description":"NAME:FENNEL SP:\u5341\u6bb5 ID:6294-9963 mixi\u30fbpixiv:\u5efb\u7409 mixi\u306f\u97f3\u30b2\u30fc\u30de\u30fc\u3057\u304b\u627f\u8a8d\u3057\u307e\u305b\u3093","listed_count":3,"profile_background_tile":false,"profile_background_image_url":"http:\/\/s.twimg.com\/a\/1291661299\/images\/themes\/theme1\/bg.png","profile_background_color":"C0DEED","location":"","profile_use_background_image":true,"profile_text_color":"333333","followers_count":32,"statuses_count":760,"time_zone":"Tokyo","created_at":"Tue Feb 02 13:38:00 +0000 2010","friends_count":27,"protected":false,"profile_image_url":"http:\/\/a3.twimg.com\/profile_images\/1174879155\/101116_1351_01000100010002_normal.jpg","notifications":null,"profile_link_color":"0084B4","url":null,"name":"\u3075\u3047\u3093\u306d\u308b","id_str":"110701310","favourites_count":0,"screen_name":"fennel62949963","id":110701
\ No newline at end of file
diff --git a/json-framework-3.2.0/Tests/Stream/xck b/json-framework-3.2.0/Tests/Stream/xck
new file mode 100644
index 0000000..3ca295d
--- /dev/null
+++ b/json-framework-3.2.0/Tests/Stream/xck
@@ -0,0 +1,2 @@
+310,"contributors_enabled":false,"lang":"ja","utc_offset":32400,"profile_sidebar_fill_color":"DDEEF6"},"id":12411914449588224,"in_reply_to_user_id":21861792,"favorited":false}
+{"coordinates":null,"text":"RT @mrkie: RT @divamayday: 3daagse staking tnt is begonnen #geenrekeningen","entities":{"urls":[],"hashtags":[{"text":"geenrekeningen","indices":[59,74]}],"user_mentions":[{"indices":[3,9],"name":"Marky Mark","screen_name":"mrkie","id_str":"26185044","id":26185044},{"indices":[14,25],"name":"mayday","screen_name":"divamayday","id_str":"47942511","id":47942511}]},"in_reply_to_screen_name":null,"in_reply_to_status_id_str":null,"place":null,"contributors":null,"retweet_count":1,"in_reply_to_status_id":null,"in_reply_to_user_id_str":null,"source":"web","retweeted_status":{"coordinates":null,"text":"RT @divamayday: 3daagse staking tnt is begonnen #geenrekeningen","entities":{"urls":[],"hashtags":[{"text":"geenrekeningen","indices":[48,63]}],"user_mentions":[{"indices":[3,14],"name":"mayday","screen_name":"divamay
\ No newline at end of file
diff --git a/json-framework-3.2.0/Tests/Stream/xcl b/json-framework-3.2.0/Tests/Stream/xcl
new file mode 100644
index 0000000..a11528d
--- /dev/null
+++ b/json-framework-3.2.0/Tests/Stream/xcl
@@ -0,0 +1 @@
+day","id_str":"47942511","id":47942511}]},"in_reply_to_screen_name":null,"in_reply_to_status_id_str":null,"place":null,"contributors":null,"retweet_count":1,"in_reply_to_status_id":null,"in_reply_to_user_id_str":null,"source":"\u003Ca href=\"http:\/\/motionobj.com\/simplytweet\" rel=\"nofollow\"\u003ESimplyTweet\u003C\/a\u003E","retweeted":false,"geo":null,"created_at":"Wed Dec 08 05:09:22 +0000 2010","truncated":false,"id_str":"12373147395301376","user":{"follow_request_sent":null,"following":null,"verified":false,"profile_sidebar_border_color":"BDDCAD","show_all_inline_media":true,"geo_enabled":false,"description":"Bodybuilding by obsession, Hairstylist by profession..... | '78 | iPhone | iMac | Las Vegas | Uncle | Brother | Son | Frienemy |","listed_count":2,"profile_background_tile":false,"profile_background_image_url":"http:\/\/s.twimg.com\/a\/1290123564\/images\/themes\/theme16\/bg.gif","profile_background_color":"9AE4E8","location":"South Holland, Netherlands","profile_use_background_image":true,"profi
\ No newline at end of file
diff --git a/json-framework-3.2.0/Tests/Stream/xcm b/json-framework-3.2.0/Tests/Stream/xcm
new file mode 100644
index 0000000..1ac8e78
--- /dev/null
+++ b/json-framework-3.2.0/Tests/Stream/xcm
@@ -0,0 +1 @@
+le_text_color":"333333","followers_count":152,"statuses_count":13146,"time_zone":"Amsterdam","created_at":"Tue Mar 24 05:30:55 +0000 2009","friends_count":146,"protected":false,"profile_image_url":"http:\/\/a3.twimg.com\/profile_images\/1160078091\/IMG_0008_normal.JPG","notifications":null,"profile_link_color":"0084B4","url":null,"name":"Marky Mark","id_str":"26185044","favourites_count":176,"screen_name":"mrkie","id":26185044,"contributors_enabled":false,"lang":"en","utc_offset":3600,"profile_sidebar_fill_color":"DDFFCC"},"id":12373147395301376,"in_reply_to_user_id":null,"favorited":false},"retweeted":false,"geo":null,"created_at":"Wed Dec 08 07:43:25 +0000 2010","truncated":false,"id_str":"12411914445398016","user":{"follow_request_sent":null,"following":null,"verified":false,"profile_sidebar_border_color":"C0DEED","show_all_inline_media":false,"geo_enabled":false,"description":"","listed_count":0,"profile_background_tile":false,"profile_background_image_url":"http:\/\/a3.twimg.com\/profile_background_image
\ No newline at end of file
diff --git a/json-framework-3.2.0/Tests/Stream/xcn b/json-framework-3.2.0/Tests/Stream/xcn
new file mode 100644
index 0000000..cea757d
--- /dev/null
+++ b/json-framework-3.2.0/Tests/Stream/xcn
@@ -0,0 +1,2 @@
+s\/127910069\/mooi.jpg","profile_background_color":"C0DEED","location":"Alphen aan den Rijn","profile_use_background_image":true,"profile_text_color":"333333","followers_count":14,"statuses_count":647,"time_zone":null,"created_at":"Thu Jun 10 10:59:43 +0000 2010","friends_count":26,"protected":false,"profile_image_url":"http:\/\/a2.twimg.com\/profile_images\/976722090\/KepCom-1412_normal.jpg","notifications":null,"profile_link_color":"0084B4","url":"http:\/\/sbarlingen.hyves.nl","name":"Sigrid van Barlingen","id_str":"154100166","favourites_count":0,"screen_name":"sbarlingen","id":154100166,"contributors_enabled":false,"lang":"en","utc_offset":null,"profile_sidebar_fill_color":"DDEEF6"},"id":12411914445398016,"in_reply_to_user_id":null,"favorited":false}
+{"coordinates":null,"text":"semangatttt,,,semngarr...","entities":{"urls":[],"hashtags":[],"user_mentions":[]},"in_reply_to_screen_name":null,"in_reply_to_status_id_str":null,"place":null,"contributors":null,"retweet_count":0,"in_reply_to_status_id":null,"in
\ No newline at end of file
diff --git a/json-framework-3.2.0/Tests/Stream/xco b/json-framework-3.2.0/Tests/Stream/xco
new file mode 100644
index 0000000..fcbcc8b
--- /dev/null
+++ b/json-framework-3.2.0/Tests/Stream/xco
@@ -0,0 +1 @@
+_reply_to_user_id_str":null,"source":"web","retweeted":false,"geo":null,"created_at":"Wed Dec 08 07:43:26 +0000 2010","truncated":false,"id_str":"12411918614532097","user":{"follow_request_sent":null,"following":null,"verified":false,"profile_sidebar_border_color":"085982","show_all_inline_media":false,"geo_enabled":false,"description":"nice girl :D","listed_count":0,"profile_background_tile":true,"profile_background_image_url":"http:\/\/a1.twimg.com\/profile_background_images\/178686370\/25390_1148602295676_1846165700_287303_5835946_n.jpg","profile_background_color":"004a82","location":"","profile_use_background_image":true,"profile_text_color":"095aab","followers_count":63,"statuses_count":859,"time_zone":"Alaska","created_at":"Tue Oct 12 12:39:08 +0000 2010","friends_count":281,"protected":false,"profile_image_url":"http:\/\/a1.twimg.com\/profile_images\/1182960469\/k_normal.jpg","notifications":null,"profile_link_color":"17a1eb","url":null,"name":"Reski Amelia","id_str":"201698354","favourites_count":1,"s
\ No newline at end of file
diff --git a/json-framework-3.2.0/Tests/Stream/xcp b/json-framework-3.2.0/Tests/Stream/xcp
new file mode 100644
index 0000000..85deedc
--- /dev/null
+++ b/json-framework-3.2.0/Tests/Stream/xcp
@@ -0,0 +1,2 @@
+creen_name":"kikotkikota","id":201698354,"contributors_enabled":false,"lang":"en","utc_offset":-32400,"profile_sidebar_fill_color":"6b1b10"},"id":12411918614532097,"in_reply_to_user_id":null,"favorited":false}
+{"coordinates":null,"text":"\u30de\u30b8\u9b3c\u755c RT @321waltz: 5\u6708\u304c\u30aa\u30fc\u30e9\u30b9\u306a\u306e\u306b\u6765\u9031\u672b\u307e\u3067\u306b\u632f\u308a\u8fbc\u307e\u305b\u308b\u4e8b\u52d9\u6240\u30de\u30b8\u9b3c\u755c \uff1eP\u69d8\u30bd\u30ed\u30b3\u30f3","entities":{"urls":[],"hashtags":[],"user_mentions":[{"indices":[8,17],"name":"\u4e00\u4e8c\u4e09\uff08\u308f\u308b\u3064\uff09","screen_name":"321waltz","id_str":"67910402","id":67910402}]},"in_reply_to_screen_name":null,"in_reply_to_status_id_str":null,"place":null,"contributors":null,"retweet_count":0,"in_reply_to_status_id":null,"in_reply_to_user_id_str":null,"source":"\u003Ca href=\"http:\/\/tabtter.jp\" rel=\"nofollow\"\u003E\u30bf\u30d6\u30c3\u30bf\u30fc\u003C\/a\u003E","retweeted":false,"geo":null,"created_at":"Wed Dec 08 0
\ No newline at end of file
diff --git a/json-framework-3.2.0/Tests/Stream/xcq b/json-framework-3.2.0/Tests/Stream/xcq
new file mode 100644
index 0000000..f69d0ab
--- /dev/null
+++ b/json-framework-3.2.0/Tests/Stream/xcq
@@ -0,0 +1 @@
+7:43:26 +0000 2010","truncated":false,"id_str":"12411918614532096","user":{"following":null,"listed_count":16,"profile_background_tile":true,"profile_background_image_url":"http:\/\/a3.twimg.com\/profile_background_images\/160986641\/tumblr_l9vvhnwKu81qc006io1_500.jpg","profile_sidebar_border_color":"5ED4DC","profile_use_background_image":true,"description":"R23*U\u597d\u304d\uff9b\uff78\uff9d\u62c5*NSKD\u306f\u9752\u6625*\uff7c\uff79\uff9e\u3082\u597d\u304d\uff7c\uff9e\uff6c\uff9d*\u3084\u3076\u3072\u304b\u306f\u6b63\u7fa9*\u4f0a\u91ce\u5c3e\u541b\u306f\u7652\u3057*not\u4e8b\u52d9\u6240\u62c5\/\u9ebb\u91cc\u5b50\u69d8\u795e\u63a8\u3057*\uff82\uff72\uff9d\uff80\uff9c\uff70\u63a8\u3057\/\u6c34\u6a39\u5948\u3005\u69d8\u656c\u611b\/\uff8c\uff6b\uff9b\uff70\uff65\uff98\uff91\uff65RT\uff65\uff98\uff8c\uff9f\u306f\u304a\u6c17\u8efd\u306b\uff65\u4f46\u3057\u304b\u306a\u308a\uff73\uff7b\uff9e\uff72\u306e\u3067\u8981\u6ce8\u610f\/\u4e3b\u306b\u5e73\u65e5\u663c\u9593\u306b\u6d3b\u52d5\/\u5fc5\u8981\u306b\u5fdc\u3058\u3
\ No newline at end of file
diff --git a/json-framework-3.2.0/Tests/Stream/xcr b/json-framework-3.2.0/Tests/Stream/xcr
new file mode 100644
index 0000000..9aaf246
--- /dev/null
+++ b/json-framework-3.2.0/Tests/Stream/xcr
@@ -0,0 +1,2 @@
+066\uff8c\uff9e\uff9b\uff6f\uff78\u3057\u305f\u308a\u3057\u307e\u3059\/\u88cf\u8d64\u2192jasmine_yellow","statuses_count":16955,"time_zone":"Tokyo","friends_count":97,"profile_background_color":"0099B9","location":"\u307b\u307c\u795e\u5948\u5ddd","profile_text_color":"3C3940","followers_count":196,"contributors_enabled":false,"created_at":"Tue Mar 24 08:10:51 +0000 2009","protected":false,"profile_image_url":"http:\/\/a3.twimg.com\/profile_images\/1180674943\/imageCASN4VYP_normal.jpg","follow_request_sent":null,"verified":false,"notifications":null,"profile_link_color":"00a3b8","url":null,"name":"\u3042\u3063\u304d\u30fc\u306a(\uff65\uff40-\u00b4)","id_str":"26199234","favourites_count":1131,"screen_name":"kmdakn","id":26199234,"show_all_inline_media":false,"lang":"ja","geo_enabled":false,"utc_offset":32400,"profile_sidebar_fill_color":"95E8EC"},"id":12411918614532096,"in_reply_to_user_id":null,"favorited":false}
+{"coordinates":null,"text":"pending intan maharani RT @soalCERITA: Nama Gebetan-mu Sewaktu SD? #
\ No newline at end of file
diff --git a/json-framework-3.2.0/Tests/Stream/xcs b/json-framework-3.2.0/Tests/Stream/xcs
new file mode 100644
index 0000000..a6e6df0
--- /dev/null
+++ b/json-framework-3.2.0/Tests/Stream/xcs
@@ -0,0 +1 @@
+MasaSekolah :)","entities":{"urls":[],"hashtags":[{"text":"MasaSekolah","indices":[67,79]}],"user_mentions":[{"indices":[26,37],"name":"Soal Cerita","screen_name":"soalCERITA","id_str":"186345369","id":186345369}]},"in_reply_to_screen_name":null,"in_reply_to_status_id_str":null,"place":null,"contributors":null,"retweet_count":0,"in_reply_to_status_id":null,"in_reply_to_user_id_str":null,"source":"\u003Ca href=\"http:\/\/m.tweete.net\" rel=\"nofollow\"\u003Em.tweete.net\u003C\/a\u003E","retweeted":false,"geo":null,"created_at":"Wed Dec 08 07:43:26 +0000 2010","truncated":false,"id_str":"12411918635499520","user":{"follow_request_sent":null,"following":null,"verified":false,"profile_sidebar_border_color":"C0DEED","show_all_inline_media":false,"geo_enabled":true,"description":"i share my voice for my band @DestinyOfFuture | i share my life for allah swt | i share my heart for my 7","listed_count":2,"profile_background_tile":false,"profile_background_image_url":"http:\/\/s.twimg.com\/a\/1290538325\/images\/themes
\ No newline at end of file
diff --git a/json-framework-3.2.0/Tests/Stream/xct b/json-framework-3.2.0/Tests/Stream/xct
new file mode 100644
index 0000000..c03b58b
--- /dev/null
+++ b/json-framework-3.2.0/Tests/Stream/xct
@@ -0,0 +1,2 @@
+\/theme1\/bg.png","profile_background_color":"C0DEED","location":"Pondok Gede,jakarta timur","profile_use_background_image":true,"profile_text_color":"333333","followers_count":328,"statuses_count":17575,"time_zone":"Pacific Time (US & Canada)","created_at":"Mon Aug 03 06:08:46 +0000 2009","friends_count":310,"protected":false,"profile_image_url":"http:\/\/a3.twimg.com\/profile_images\/1156247995\/DiasDOF_normal.JPG","notifications":null,"profile_link_color":"0084B4","url":"http:\/\/www.myspace.com\/537395778","name":"Diaz Putra Pratama","id_str":"62451320","favourites_count":38,"screen_name":"Diassaurus","id":62451320,"contributors_enabled":false,"lang":"en","utc_offset":-28800,"profile_sidebar_fill_color":"DDEEF6"},"id":12411918635499520,"in_reply_to_user_id":null,"favorited":false}
+{"coordinates":null,"text":"haduh bsk bhs.inggris sama ips lagi","entities":{"urls":[],"hashtags":[],"user_mentions":[]},"in_reply_to_screen_name":null,"in_reply_to_status_id_str":null,"place":null,"contributors":null,"retweet_
\ No newline at end of file
diff --git a/json-framework-3.2.0/Tests/Stream/xcu b/json-framework-3.2.0/Tests/Stream/xcu
new file mode 100644
index 0000000..95f26ce
--- /dev/null
+++ b/json-framework-3.2.0/Tests/Stream/xcu
@@ -0,0 +1 @@
+count":0,"in_reply_to_status_id":null,"in_reply_to_user_id_str":null,"source":"web","retweeted":false,"geo":null,"created_at":"Wed Dec 08 07:43:26 +0000 2010","truncated":false,"id_str":"12411918639693824","user":{"follow_request_sent":null,"following":null,"verified":false,"profile_sidebar_border_color":"eb387a","show_all_inline_media":false,"geo_enabled":true,"description":"just a little boy who growing up","listed_count":0,"profile_background_tile":true,"profile_background_image_url":"http:\/\/a3.twimg.com\/profile_background_images\/132078393\/Conan8.jpg","profile_background_color":"f5f8fa","location":"Pamulang, Indonesia","profile_use_background_image":true,"profile_text_color":"c74052","followers_count":36,"statuses_count":60,"time_zone":"Pacific Time (US & Canada)","created_at":"Sat Aug 07 05:52:21 +0000 2010","friends_count":61,"protected":false,"profile_image_url":"http:\/\/a3.twimg.com\/profile_images\/1097481287\/IMG1441A_normal.jpg","notifications":null,"profile_link_color":"a3e1f7","url":null,"na
\ No newline at end of file
diff --git a/json-framework-3.2.0/Tests/Stream/xcv b/json-framework-3.2.0/Tests/Stream/xcv
new file mode 100644
index 0000000..af7f72e
--- /dev/null
+++ b/json-framework-3.2.0/Tests/Stream/xcv
@@ -0,0 +1,2 @@
+me":"Taufik Wicak","id_str":"175652995","favourites_count":0,"screen_name":"taufikwicak","id":175652995,"contributors_enabled":false,"lang":"en","utc_offset":-28800,"profile_sidebar_fill_color":"fcfeff"},"id":12411918639693824,"in_reply_to_user_id":null,"favorited":false}
+{"coordinates":null,"text":"LOL I THOUGHT U WANTED BIGGIE BACK RT @ChinkyEyedButta: #lemmeguess @YungBossez denying my baby??? Smh","entities":{"urls":[],"hashtags":[{"text":"lemmeguess","indices":[56,67]}],"user_mentions":[{"indices":[38,54],"name":"Piggy!","screen_name":"ChinkyEyedButta","id_str":"28321072","id":28321072},{"indices":[68,79],"name":"LARRY LIVE","screen_name":"YungBossez","id_str":"79103494","id":79103494}]},"in_reply_to_screen_name":null,"in_reply_to_status_id_str":null,"place":null,"contributors":null,"retweet_count":0,"in_reply_to_status_id":null,"in_reply_to_user_id_str":null,"source":"\u003Ca href=\"http:\/\/www.echofon.com\/\" rel=\"nofollow\"\u003EEchofon\u003C\/a\u003E","retweeted":false,"geo":null,"created_at":"Wed
\ No newline at end of file
diff --git a/json-framework-3.2.0/Tests/Stream/xcw b/json-framework-3.2.0/Tests/Stream/xcw
new file mode 100644
index 0000000..b6ec0d8
--- /dev/null
+++ b/json-framework-3.2.0/Tests/Stream/xcw
@@ -0,0 +1 @@
+ Dec 08 07:43:26 +0000 2010","truncated":false,"id_str":"12411918652276736","user":{"follow_request_sent":null,"following":null,"verified":false,"profile_sidebar_border_color":"C0DEED","show_all_inline_media":false,"geo_enabled":false,"description":"BOSSNATION!!! THINK LIKE A BOSS.. MOVE LIKE A BOSS.. BECOME A BOSS!! WE MOVIN!!!!  KIK: YungBossElz","listed_count":31,"profile_background_tile":true,"profile_background_image_url":"http:\/\/a1.twimg.com\/profile_background_images\/136340262\/IMG_0011_1_.JPG","profile_background_color":"C0DEED","location":"NYC","profile_use_background_image":true,"profile_text_color":"333333","followers_count":1450,"statuses_count":43647,"time_zone":"Quito","created_at":"Fri Oct 02 05:23:49 +0000 2009","friends_count":740,"protected":false,"profile_image_url":"http:\/\/a1.twimg.com\/profile_images\/1184354137\/YungBossez_normal.jpg","notifications":null,"profile_link_color":"0084B4","url":"http:\/\/www.apple.com","name":"LARRY LIVE","id_str":"79103494","favourites_count":18,"scree
\ No newline at end of file
diff --git a/json-framework-3.2.0/Tests/Stream/xcx b/json-framework-3.2.0/Tests/Stream/xcx
new file mode 100644
index 0000000..d3a6bfb
--- /dev/null
+++ b/json-framework-3.2.0/Tests/Stream/xcx
@@ -0,0 +1,2 @@
+n_name":"YungBossez","id":79103494,"contributors_enabled":false,"lang":"en","utc_offset":-18000,"profile_sidebar_fill_color":"DDEEF6"},"id":12411918652276736,"in_reply_to_user_id":null,"favorited":false}
+{"coordinates":null,"text":"@renzoom \u3044\u3084\u3001\u540c\u3058\u9ad8\u6821\u306a\u3089\u5802\u3005\u3068\u300c\u5148\u8f29\u300d\u3068\u547c\u3079\u308b\u6a29\u5229\u7372\u5f97\u3067\u3059\u3088!?\u6749\u7530\u2026\u5148\u8f29\u2026\u30db\u30ef\u30a2\u30a2\u30a2\u30a1\u30a1\u30a1\u30a2\u30a2\uff1c\u25cf\uff1e\/\/\/\/\uff1c\u25cf\uff1e\u306a\u3093\u306a\u3093\u3067\u3059\u304b\u604b\u30b7\u30e5\u30df\u306a\u3093\u3067\u3059\u304b\u3068\u304d\u3081\u304d\u30e1\u30e2\u30ea\u30a2\u30ebin\u5c0f\u5ddd\uff01\uff01\uff01\u653b\u7565\u30ad\u30e3\u30e9\u2192\u6749\u7530\u5148\u8f29Only","entities":{"hashtags":[],"urls":[],"user_mentions":[{"indices":[0,8],"name":"\u30ec\u30f3\u30ba\u30a3\u30fc","screen_name":"renzoom","id_str":"80027788","id":80027788}]},"in_reply_to_screen_name":"renzoom","in_reply_to_status_id_
\ No newline at end of file
diff --git a/json-framework-3.2.0/Tests/Stream/xcy b/json-framework-3.2.0/Tests/Stream/xcy
new file mode 100644
index 0000000..b678694
--- /dev/null
+++ b/json-framework-3.2.0/Tests/Stream/xcy
@@ -0,0 +1 @@
+str":"12386429707485184","place":null,"contributors":null,"retweet_count":0,"in_reply_to_status_id":12386429707485184,"in_reply_to_user_id_str":"80027788","source":"\u003Ca href=\"http:\/\/twtr.jp\" rel=\"nofollow\"\u003EKeitai Web\u003C\/a\u003E","retweeted":false,"geo":null,"created_at":"Wed Dec 08 07:43:26 +0000 2010","truncated":false,"id_str":"12411918631309312","user":{"follow_request_sent":null,"following":null,"verified":false,"profile_sidebar_border_color":"C0DEED","show_all_inline_media":false,"geo_enabled":false,"description":"\u3054\u98ef\u306e\u4e8b\u3070\u3063\u304b\u8003\u3048\u3066\u307e\u3059\u3002\u6f2b\u753b\u30fb\u30a2\u30cb\u30e1\u95a2\u9023\u306e\u30c4\u30a4\u30fc\u30c8\u591a\u3044\u3067\u3059\u3002","listed_count":1,"profile_background_tile":false,"profile_background_image_url":"http:\/\/s.twimg.com\/a\/1290538325\/images\/themes\/theme1\/bg.png","profile_background_color":"C0DEED","location":"","profile_use_background_image":true,"profile_text_color":"333333","followers_count":23,"stat
\ No newline at end of file
diff --git a/json-framework-3.2.0/Tests/Stream/xcz b/json-framework-3.2.0/Tests/Stream/xcz
new file mode 100644
index 0000000..515f073
--- /dev/null
+++ b/json-framework-3.2.0/Tests/Stream/xcz
@@ -0,0 +1,2 @@
+uses_count":315,"time_zone":"Tokyo","created_at":"Thu Oct 21 00:46:18 +0000 2010","friends_count":41,"protected":false,"profile_image_url":"http:\/\/a2.twimg.com\/profile_images\/1149146122\/DVC00089_normal.jpg","notifications":null,"profile_link_color":"0084B4","url":null,"name":"\u30d2\u30c3\u30dd\u30ed\u7cfb\u30cb\u30e3\u30dd\u30fc\u30f3","id_str":"205496590","favourites_count":1,"screen_name":"OpporeGassen","id":205496590,"contributors_enabled":false,"lang":"ja","utc_offset":32400,"profile_sidebar_fill_color":"DDEEF6"},"id":12411918631309312,"in_reply_to_user_id":80027788,"favorited":false}
+{"coordinates":null,"text":"\u7d20\u4eba\u767a\u8a00ww RT @AsrA924: \u300c\u98a8\u6708\u3055\u3093\u3001\u76ee\u7acb\u3064\u5ba3\u4f1d\u8003\u3048\u3066\uff01\u300d\u300c\u306f\u3044\uff1f\uff01\u300d\u300c\u3060\u304b\u3089\u3070\u3070\u30fc\u3093\u3068\u76ee\u7acb\u3063\u3061\u3083\u3046\u5ba3\u4f1d\uff01\u300d\u300c\u5bfe\u8c61\u306f\u2026\u300d\u300c\u307f\u3093\u306a\uff01\uff01\u300d\u300c\u307f\u3093\u306a\u306
\ No newline at end of file
diff --git a/json-framework-3.2.0/Tests/Stream/xda b/json-framework-3.2.0/Tests/Stream/xda
new file mode 100644
index 0000000..8eae8bd
--- /dev/null
+++ b/json-framework-3.2.0/Tests/Stream/xda
@@ -0,0 +1 @@
+3\u3066\u8a00\u308f\u308c\u307e\u3057\u3066\u3082\u2026\u300d\u300c\u76ee\u7acb\u3064\u5ba3\u4f1d\u306f\u8ab0\u306b\u3068\u3063\u3066\u3082\u76ee\u7acb\u3064\u3067\u3057\u3087\uff01\uff01\u300d\u2026\u3060\u3081\u3060\u3053\u308a\u3083\u3002","entities":{"hashtags":[],"urls":[],"user_mentions":[{"indices":[10,18],"name":"\u98a8\u6708\u3042\u3059\u3089","screen_name":"AsrA924","id_str":"112167510","id":112167510}]},"in_reply_to_screen_name":null,"in_reply_to_status_id_str":null,"place":null,"contributors":null,"retweet_count":null,"in_reply_to_status_id":null,"in_reply_to_user_id_str":null,"source":"\u003Ca href=\"http:\/\/www.echofon.com\/\" rel=\"nofollow\"\u003EEchofon\u003C\/a\u003E","retweeted":false,"geo":null,"created_at":"Wed Dec 08 07:43:26 +0000 2010","truncated":false,"id_str":"12411918614528000","user":{"following":null,"listed_count":13,"profile_background_tile":true,"profile_background_image_url":"http:\/\/s.twimg.com\/a\/1291318259\/images\/themes\/theme14\/bg.gif","profile_sidebar_border_color"
\ No newline at end of file
diff --git a/json-framework-3.2.0/Tests/Stream/xdb b/json-framework-3.2.0/Tests/Stream/xdb
new file mode 100644
index 0000000..8be15d9
--- /dev/null
+++ b/json-framework-3.2.0/Tests/Stream/xdb
@@ -0,0 +1 @@
+:"eeeeee","profile_use_background_image":true,"description":"1983.07.04 \u55b6\u696d\u3002\u793e\u4f1a\u306e\u53b3\u3057\u3055\u3092\u52c9\u5f37\u4e2d\u3067\u3059\u3002\u9031\u672b\u306f\u611b\u8eca\u306e\u30ed\u30fc\u30c9\u30ec\u30fc\u30b5\u30fc\u3067\u30b5\u30a4\u30af\u30ea\u30f3\u30b0\uff01\u91ce\u7403\u3001\u5343\u8449\u30ed\u30c3\u30c6\u3001\u30c0\u30fc\u30c4\u3001\u97f3\u697d\u3001\u6620\u753b\u3001\u65c5\u884c\u3001\u81ea\u8ee2\u8eca\u65c5\u884c\u597d\u304d\u3067\u3059\u3002\u3088\u308d\u3057\u304f\u304a\u9858\u3044\u3057\u307e\u3059\u3002\u3042\u3063\u3001\u30c1\u30e7\u30c3\u30d1\u30fc\u597d\u304d\u3067\u3059\uff01","statuses_count":2392,"time_zone":"Tokyo","friends_count":483,"profile_background_color":"131516","location":"\u5343\u8449\u770c\u5e02\u5ddd\u5e02\u5999\u5178","profile_text_color":"333333","followers_count":291,"contributors_enabled":false,"created_at":"Mon Dec 21 10:04:09 +0000 2009","protected":false,"profile_image_url":"http:\/\/a0.twimg.com\/profile_images\/1183120212\/fukkyman_normal
\ No newline at end of file
diff --git a/json-framework-3.2.0/Tests/Stream/xdc b/json-framework-3.2.0/Tests/Stream/xdc
new file mode 100644
index 0000000..15881fe
--- /dev/null
+++ b/json-framework-3.2.0/Tests/Stream/xdc
@@ -0,0 +1,2 @@
+.jpg","follow_request_sent":null,"verified":false,"notifications":null,"profile_link_color":"009999","url":null,"name":"\u3075\u3063\u304d\u30fc\u30de\u30f3","id_str":"98340517","favourites_count":32,"screen_name":"fukkyman","id":98340517,"show_all_inline_media":false,"lang":"ja","geo_enabled":true,"utc_offset":32400,"profile_sidebar_fill_color":"efefef"},"id":12411918614528000,"in_reply_to_user_id":null,"favorited":false}
+{"coordinates":null,"text":"@lengraciazz99 zz","entities":{"urls":[],"hashtags":[],"user_mentions":[{"indices":[0,14],"name":"Hellena Gracia \uff61\u25d5\u203f\u25d5\uff61","screen_name":"lengraciazz99","id_str":"127160903","id":127160903}]},"in_reply_to_screen_name":"lengraciazz99","in_reply_to_status_id_str":"12411745138122752","place":null,"contributors":null,"retweet_count":0,"in_reply_to_status_id":12411745138122752,"in_reply_to_user_id_str":"127160903","source":"web","retweeted":false,"geo":null,"created_at":"Wed Dec 08 07:43:26 +0000 2010","truncated":false,"id_str":"124119186480906
\ No newline at end of file
diff --git a/json-framework-3.2.0/Tests/Stream/xdd b/json-framework-3.2.0/Tests/Stream/xdd
new file mode 100644
index 0000000..8f71d1b
--- /dev/null
+++ b/json-framework-3.2.0/Tests/Stream/xdd
@@ -0,0 +1 @@
+24","user":{"follow_request_sent":null,"following":null,"verified":false,"profile_sidebar_border_color":"C0DEED","show_all_inline_media":false,"geo_enabled":true,"description":"hello , my name is john James Apillio , i like playing piano , i want to be a princepiano .. wkwk .. i'm single .. chatolic .. ","listed_count":0,"profile_background_tile":true,"profile_background_image_url":"http:\/\/a1.twimg.com\/profile_background_images\/176397228\/edit.JPG","profile_background_color":"C0DEED","location":"jakarta","profile_use_background_image":true,"profile_text_color":"333333","followers_count":55,"statuses_count":1882,"time_zone":"Pacific Time (US & Canada)","created_at":"Mon Oct 11 09:01:29 +0000 2010","friends_count":144,"protected":false,"profile_image_url":"http:\/\/a3.twimg.com\/profile_images\/1174624371\/ME_normal.jpg","notifications":null,"profile_link_color":"0084B4","url":null,"name":"Frank james Aprillio","id_str":"201190413","favourites_count":3,"screen_name":"frankyakob","id":201190413,"contributors
\ No newline at end of file
diff --git a/json-framework-3.2.0/Tests/Stream/xde b/json-framework-3.2.0/Tests/Stream/xde
new file mode 100644
index 0000000..d528ca1
--- /dev/null
+++ b/json-framework-3.2.0/Tests/Stream/xde
@@ -0,0 +1,2 @@
+_enabled":false,"lang":"en","utc_offset":-28800,"profile_sidebar_fill_color":"DDEEF6"},"id":12411918648090624,"in_reply_to_user_id":127160903,"favorited":false}
+{"coordinates":null,"text":"mboh, aku wez mari nde kmpus, tp te jln2 sek aku mbek nevi santi, hehe RT @dindalovelove @dindydind gak enak tahh ... heh mole jam piro awak","entities":{"urls":[],"hashtags":[],"user_mentions":[{"indices":[74,88],"name":"winda hermawan ","screen_name":"dindalovelove","id_str":"93166570","id":93166570},{"indices":[89,99],"name":"Indri Rahmawati","screen_name":"dindydind","id_str":"77725423","id":77725423}]},"in_reply_to_screen_name":"dindalovelove","in_reply_to_status_id_str":"12411470138580992","place":null,"contributors":null,"retweet_count":0,"in_reply_to_status_id":12411470138580992,"in_reply_to_user_id_str":"93166570","source":"web","retweeted":false,"geo":null,"created_at":"Wed Dec 08 07:43:27 +0000 2010","truncated":false,"id_str":"12411922821419009","user":{"follow_request_sent":null,"following":null,"verified":fal
\ No newline at end of file
diff --git a/json-framework-3.2.0/Tests/Stream/xdf b/json-framework-3.2.0/Tests/Stream/xdf
new file mode 100644
index 0000000..aada9f9
--- /dev/null
+++ b/json-framework-3.2.0/Tests/Stream/xdf
@@ -0,0 +1 @@
+se,"profile_sidebar_border_color":"ffffff","show_all_inline_media":false,"geo_enabled":true,"description":"luv my family sooo much","listed_count":3,"profile_background_tile":false,"profile_background_image_url":"http:\/\/a1.twimg.com\/profile_background_images\/130377756\/twittmn.jpg","profile_background_color":"ec7b3e","location":"Malang, Indonesia","profile_use_background_image":true,"profile_text_color":"030303","followers_count":99,"statuses_count":1744,"time_zone":"Jakarta","created_at":"Sun Sep 27 12:31:59 +0000 2009","friends_count":93,"protected":false,"profile_image_url":"http:\/\/a1.twimg.com\/profile_images\/1139037997\/36174_1534584098950_1665256568_1290462_4376492_n_normal.jpg","notifications":null,"profile_link_color":"07545e","url":null,"name":"Indri Rahmawati","id_str":"77725423","favourites_count":4,"screen_name":"dindydind","id":77725423,"contributors_enabled":false,"lang":"en","utc_offset":25200,"profile_sidebar_fill_color":"ec7b3e"},"id":12411922821419009,"in_reply_to_user_id":93166570,"f
\ No newline at end of file
diff --git a/json-framework-3.2.0/Tests/Stream/xdg b/json-framework-3.2.0/Tests/Stream/xdg
new file mode 100644
index 0000000..df9fc75
--- /dev/null
+++ b/json-framework-3.2.0/Tests/Stream/xdg
@@ -0,0 +1,2 @@
+avorited":false}
+{"coordinates":null,"text":"@AThousandFall conan para presidente de la rep\u00fablica","entities":{"urls":[],"hashtags":[],"user_mentions":[{"indices":[0,14],"name":"A Thousand Fall","screen_name":"AThousandFall","id_str":"108740471","id":108740471}]},"in_reply_to_screen_name":"AThousandFall","in_reply_to_status_id_str":"12391305862713344","place":null,"contributors":null,"retweet_count":0,"in_reply_to_status_id":12391305862713344,"in_reply_to_user_id_str":"108740471","source":"\u003Ca href=\"http:\/\/www.echofon.com\/\" rel=\"nofollow\"\u003EEchofon\u003C\/a\u003E","retweeted":false,"geo":null,"created_at":"Wed Dec 08 07:43:27 +0000 2010","truncated":false,"id_str":"12411922821419008","user":{"following":null,"listed_count":3,"profile_background_tile":true,"profile_background_image_url":"http:\/\/a3.twimg.com\/profile_background_images\/178454607\/Gambit.jpg","profile_sidebar_border_color":"eeeeee","profile_use_background_image":true,"description":"","statuses_count":8135,"time_zone":null,"
\ No newline at end of file
diff --git a/json-framework-3.2.0/Tests/Stream/xdh b/json-framework-3.2.0/Tests/Stream/xdh
new file mode 100644
index 0000000..e369849
--- /dev/null
+++ b/json-framework-3.2.0/Tests/Stream/xdh
@@ -0,0 +1,2 @@
+friends_count":591,"profile_background_color":"131516","location":"El Paso Tx","profile_text_color":"333333","followers_count":250,"contributors_enabled":false,"created_at":"Tue Jun 02 22:52:44 +0000 2009","protected":false,"profile_image_url":"http:\/\/a0.twimg.com\/profile_images\/1180820352\/KingEly_normal.jpg","follow_request_sent":null,"verified":false,"notifications":null,"profile_link_color":"009999","url":"http:\/\/facebook.com\/elycharlescarrasco","name":"Ely","id_str":"44230583","favourites_count":0,"screen_name":"KingEly","id":44230583,"show_all_inline_media":false,"lang":"en","geo_enabled":true,"utc_offset":null,"profile_sidebar_fill_color":"efefef"},"id":12411922821419008,"in_reply_to_user_id":108740471,"favorited":false}
+{"coordinates":null,"text":"Rated on LUUUX http:\/\/bit.ly\/eyvcXO","entities":{"hashtags":[],"urls":[{"expanded_url":null,"indices":[15,35],"url":"http:\/\/bit.ly\/eyvcXO"}],"user_mentions":[]},"in_reply_to_screen_name":null,"in_reply_to_status_id_str":null,"place":null,"contr
\ No newline at end of file
diff --git a/json-framework-3.2.0/Tests/Stream/xdi b/json-framework-3.2.0/Tests/Stream/xdi
new file mode 100644
index 0000000..9b4c2b8
--- /dev/null
+++ b/json-framework-3.2.0/Tests/Stream/xdi
@@ -0,0 +1 @@
+ibutors":null,"retweet_count":0,"in_reply_to_status_id":null,"in_reply_to_user_id_str":null,"source":"\u003Ca href=\"http:\/\/www.luuux.com\" rel=\"nofollow\"\u003Eluuux_app\u003C\/a\u003E","retweeted":false,"geo":null,"created_at":"Wed Dec 08 07:43:27 +0000 2010","truncated":false,"id_str":"12411922834006016","user":{"following":null,"listed_count":0,"profile_background_tile":false,"profile_background_image_url":"http:\/\/s.twimg.com\/a\/1290538325\/images\/themes\/theme1\/bg.png","profile_sidebar_border_color":"C0DEED","profile_use_background_image":true,"description":null,"statuses_count":8135,"time_zone":null,"friends_count":0,"profile_background_color":"C0DEED","location":null,"profile_text_color":"333333","followers_count":85,"contributors_enabled":false,"created_at":"Tue Sep 07 04:32:28 +0000 2010","protected":false,"profile_image_url":"http:\/\/s.twimg.com\/a\/1290538325\/images\/default_profile_0_normal.png","follow_request_sent":null,"verified":false,"notifications":null,"profile_link_color":"0084B4
\ No newline at end of file
diff --git a/json-framework-3.2.0/Tests/Stream/xdj b/json-framework-3.2.0/Tests/Stream/xdj
new file mode 100644
index 0000000..626dd9e
--- /dev/null
+++ b/json-framework-3.2.0/Tests/Stream/xdj
@@ -0,0 +1,2 @@
+","url":null,"name":"Lili","id_str":"187793438","favourites_count":0,"screen_name":"Dulceamor510","id":187793438,"show_all_inline_media":false,"lang":"en","geo_enabled":false,"utc_offset":null,"profile_sidebar_fill_color":"DDEEF6"},"id":12411922834006016,"in_reply_to_user_id":null,"favorited":false}
+{"coordinates":null,"text":"\u3080\u3001\u307f\u304f\u3057\u30fc\u3068\u3044\u3048\u3070\u3001\u304a\u663c\u9803\u306b\u4e45\u3005\u306b\u30c1\u30a7\u30c3\u30af\u3057\u305f\u3089\u3001\u306a\u3093\u304b\u300c\u30a2\u30a4\u30c9\u30eb\u3000\u516c\u5f0f\u30a2\u30ab\u30a6\u30f3\u30c8\u300d\u306a\u4eba\u304b\u3089\u8db3\u8de1\u304c\u3064\u3044\u3066\u305f\u3002\u3000\u306a\u306b\u304c\u3069\u3046\u306a\u3063\u3066\u50d5\u306e\u3068\u3053\u306b\u304d\u305f\u306e\u3084\u3089\u3002\u624b\u5f53\u305f\u308a\u6b21\u7b2c\u304b\u3002","entities":{"user_mentions":[],"urls":[],"hashtags":[]},"in_reply_to_screen_name":null,"in_reply_to_status_id_str":null,"place":null,"contributors":null,"retweet_count":0,"in_reply_to_status_id"
\ No newline at end of file
diff --git a/json-framework-3.2.0/Tests/Stream/xdk b/json-framework-3.2.0/Tests/Stream/xdk
new file mode 100644
index 0000000..f294098
--- /dev/null
+++ b/json-framework-3.2.0/Tests/Stream/xdk
@@ -0,0 +1 @@
+:null,"in_reply_to_user_id_str":null,"source":"web","retweeted":false,"geo":null,"created_at":"Wed Dec 08 07:43:27 +0000 2010","truncated":false,"id_str":"12411922825613312","user":{"follow_request_sent":null,"following":null,"verified":false,"profile_sidebar_border_color":"65B0DA","show_all_inline_media":false,"geo_enabled":false,"description":"\u30d5\u30a1\u30df\u30ea\u30fc\u30b9\u30c6\u30fc\u30b7\u30e7\u30f3\u306e\u7247\u65b9\u3002\u8a9e\u308a\u3060\u3057\u305f\u3089\u6b62\u307e\u3089\u306a\u3044\u305c\u266a\u3000\u30b2\u30fc\u30e0\u30fb\u30de\u30f3\u30ac\u30fb\u6620\u753b\u597d\u304d\u3067\u611a\u75f4\u3063\u305f\u30fc\uff08\uff1f\uff09\u57fa\u672c\u3001\u7d61\u3093\u3067\u4e0b\u3055\u3063\u305f\u3089\u30d5\u30a9\u30ed\u30fc\u3057\u307e\u3059\u3002\u767a\u8a00\u6570\u304c\u7570\u5e38\u3060\u3068\u826f\u304f\u8a00\u308f\u308c\u308b\u306e\u3067\u30d5\u30a9\u30ed\u30fc\u306f\u8a08\u753b\u7684\u306b\u2026\/360:KLINK2007\/PS3:KLINK2008\u203b2009\u5e7410\u670812\u65e5\u304b\u3089\u59cb\u3081\u307e\u3057\u305f",
\ No newline at end of file
diff --git a/json-framework-3.2.0/Tests/Stream/xdl b/json-framework-3.2.0/Tests/Stream/xdl
new file mode 100644
index 0000000..48f83e4
--- /dev/null
+++ b/json-framework-3.2.0/Tests/Stream/xdl
@@ -0,0 +1,2 @@
+"listed_count":76,"profile_background_tile":true,"profile_background_image_url":"http:\/\/s.twimg.com\/a\/1291064993\/images\/themes\/theme10\/bg.gif","profile_background_color":"642D8B","location":"OITA CITY","profile_use_background_image":true,"profile_text_color":"5386b0","followers_count":594,"statuses_count":57250,"time_zone":"Osaka","created_at":"Mon Oct 12 03:37:07 +0000 2009","friends_count":363,"protected":false,"profile_image_url":"http:\/\/a0.twimg.com\/profile_images\/1135752368\/00141_03_12_13-19_11_16_normal.jpg","notifications":null,"profile_link_color":"FF0000","url":null,"name":"KLINK_JP","id_str":"81753861","favourites_count":352,"screen_name":"KLINK_JP","id":81753861,"contributors_enabled":false,"lang":"ja","utc_offset":32400,"profile_sidebar_fill_color":"642d8b"},"id":12411922825613312,"in_reply_to_user_id":null,"favorited":false}
+{"coordinates":null,"text":"\u3059\u3066\u304d\u306a\u51fa\u4f1a\u3044\u3068\u7d50\u5a5a\u7d39\u4ecb\u306f\u697d\u5929\u30b0\u30eb\u30fc\u30d7\u306e\u300c\u30aa
\ No newline at end of file
diff --git a/json-framework-3.2.0/Tests/Stream/xdm b/json-framework-3.2.0/Tests/Stream/xdm
new file mode 100644
index 0000000..630e8d4
--- /dev/null
+++ b/json-framework-3.2.0/Tests/Stream/xdm
@@ -0,0 +1 @@
+\u30fc\u30cd\u30c3\u30c8\u300d\u3067\u266a \u4eca\u306a\u3089\u5165\u4f1a\u306710,000\u30dd\u30a4\u30f3\u30c8\u30d7\u30ec\u30bc\u30f3\u30c8\u4e2d\uff01\u307e\u305a\u306f\u3001\u201d\u7406\u60f3\u306e\u304a\u76f8\u624b\u30d7\u30ed\u30d5\u30a3\u30fc\u30eb\u201d\u3092GET\u3057\u3066\u304f\u3060\u3055\u3044\u3002\u300e\u30aa\u30fc\u30cd\u30c3\u30c8\u300f\u3092\u898b\u308b [\u697d\u5929] http:\/\/a.r10.to\/hBhJuv #sougofollow","entities":{"hashtags":[{"text":"sougofollow","indices":[121,133]}],"urls":[{"expanded_url":null,"indices":[98,120],"url":"http:\/\/a.r10.to\/hBhJuv"}],"user_mentions":[]},"in_reply_to_screen_name":null,"in_reply_to_status_id_str":null,"place":null,"contributors":null,"retweet_count":null,"in_reply_to_status_id":null,"in_reply_to_user_id_str":null,"source":"\u003Ca href=\"http:\/\/www.vector.co.jp\/soft\/winnt\/net\/se483196.html\" rel=\"nofollow\"\u003ETWEET command\u003C\/a\u003E","retweeted":false,"geo":null,"created_at":"Wed Dec 08 07:43:27 +0000 2010","truncated":false,"id_str":"1241192
\ No newline at end of file
diff --git a/json-framework-3.2.0/Tests/Stream/xdn b/json-framework-3.2.0/Tests/Stream/xdn
new file mode 100644
index 0000000..b86dda4
--- /dev/null
+++ b/json-framework-3.2.0/Tests/Stream/xdn
@@ -0,0 +1 @@
+2813026304","user":{"following":null,"listed_count":26,"profile_background_tile":true,"profile_background_image_url":"http:\/\/s.twimg.com\/a\/1290538325\/images\/themes\/theme11\/bg.gif","profile_sidebar_border_color":"CC3366","profile_use_background_image":true,"description":"\u3088\u308d\u3057\u304f\u304a\u9858\u3044\u3057\u307e\u3059\u2764","statuses_count":10429,"time_zone":"Tokyo","friends_count":2893,"profile_background_color":"FF6699","location":"\u4e09\u91cd","profile_text_color":"362720","followers_count":2830,"contributors_enabled":false,"created_at":"Sun Jun 20 02:54:09 +0000 2010","protected":false,"profile_image_url":"http:\/\/a1.twimg.com\/profile_images\/1134806221\/__10_normal.jpg","follow_request_sent":null,"verified":false,"notifications":null,"profile_link_color":"B40B43","url":null,"name":"\u3042\u3044\u306e","id_str":"157527482","favourites_count":0,"screen_name":"aino_kis","id":157527482,"show_all_inline_media":false,"lang":"ja","geo_enabled":false,"utc_offset":32400,"profile_sidebar_fi
\ No newline at end of file
diff --git a/json-framework-3.2.0/Tests/Stream/xdo b/json-framework-3.2.0/Tests/Stream/xdo
new file mode 100644
index 0000000..79c9a69
--- /dev/null
+++ b/json-framework-3.2.0/Tests/Stream/xdo
@@ -0,0 +1,2 @@
+ll_color":"E5507E"},"id":12411922813026304,"in_reply_to_user_id":null,"favorited":false}
+{"coordinates":null,"text":"RT @duck_of_d00m: \u043e\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u0436\u0435\u043d\u0449\u0438\u043d\u044b \u0432 \u0441\u0435\u0442\u0438 \u0431\u043e\u043b\u044c\u0448\u0435 \u043f\u0438\u0448\u0443\u0442 \u043e \u043f\u043e\u043b\u043e\u0436\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u043c \u043e\u043f\u044b\u0442\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f \u043f\u0440\u043e\u0434\u0443\u043a\u0442\u043e\u0432, \u0430 \u043c\u0443\u0436\u0447\u0438\u043d\u044b \u043e\u0431 \u043e\u0442\u0440\u0438\u0446\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u043c.","entities":{"user_mentions":[{"indices":[3,16],"name":"Mitya Voskresensky","screen_name":"duck_of_d00m","id_str":"19416850","id":19416850}],"urls":[],"hashtags":[]},"in_reply_to_screen_name":null,"in_reply_to_status_id_str":null,"place":null,"contributors":null,"retweet_count":null
\ No newline at end of file
diff --git a/json-framework-3.2.0/Tests/Stream/xdp b/json-framework-3.2.0/Tests/Stream/xdp
new file mode 100644
index 0000000..d7ae820
--- /dev/null
+++ b/json-framework-3.2.0/Tests/Stream/xdp
@@ -0,0 +1 @@
+,"in_reply_to_status_id":null,"in_reply_to_user_id_str":null,"source":"web","retweeted_status":{"coordinates":null,"text":"\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u0436\u0435\u043d\u0449\u0438\u043d\u044b \u0432 \u0441\u0435\u0442\u0438 \u0431\u043e\u043b\u044c\u0448\u0435 \u043f\u0438\u0448\u0443\u0442 \u043e \u043f\u043e\u043b\u043e\u0436\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u043c \u043e\u043f\u044b\u0442\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f \u043f\u0440\u043e\u0434\u0443\u043a\u0442\u043e\u0432, \u0430 \u043c\u0443\u0436\u0447\u0438\u043d\u044b \u043e\u0431 \u043e\u0442\u0440\u0438\u0446\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u043c.","entities":{"user_mentions":[],"urls":[],"hashtags":[]},"in_reply_to_screen_name":null,"in_reply_to_status_id_str":null,"place":null,"contributors":null,"retweet_count":7,"in_reply_to_status_id":null,"in_reply_to_user_id_str":null,"source":"\u003Ca href=\"https:\/\/chrome.google.com\/extensions
\ No newline at end of file
diff --git a/json-framework-3.2.0/Tests/Stream/xdq b/json-framework-3.2.0/Tests/Stream/xdq
new file mode 100644
index 0000000..e560ec4
--- /dev/null
+++ b/json-framework-3.2.0/Tests/Stream/xdq
@@ -0,0 +1 @@
+\/detail\/encaiiljifbdbjlphpgpiimidegddhic\" rel=\"nofollow\"\u003EChromed Bird\u003C\/a\u003E","retweeted":false,"geo":null,"created_at":"Tue Dec 07 18:45:38 +0000 2010","truncated":false,"id_str":"12216177023520768","user":{"follow_request_sent":null,"following":null,"verified":false,"profile_sidebar_border_color":"C0DEED","show_all_inline_media":false,"geo_enabled":false,"description":"\u0421\u0442\u0440\u0430\u0442\u0435\u0433 \u0432 \u0446\u0438\u0444\u0440\u043e\u0432\u044b\u0445 \u043c\u0435\u0434\u0438\u0430, \u0440\u0430\u0431\u043e\u0442\u0430\u044e \u0432  Red Keds, \u043f\u0438\u0448\u0443 \u043e \u0440\u0435\u043a\u043b\u0430\u043c\u0435, \u0441\u0442\u0440\u0430\u0442\u0435\u0433\u0438\u0438 \u0438 \u0438\u043d\u0442\u0435\u0440\u043d\u0435\u0442\u043d\u044b\u0445 \u0448\u0442\u0443\u043a\u0430\u0445. \u043f\u0438\u0448\u0438\u0442\u0435 \u0441\u044e\u0434\u0430 \u0432\u0430\u0448\u0438 \u0432\u043e\u043f\u0440\u043e\u0441\u044b http:\/\/www.formspring.me\/duckofd00m ","listed_count":131,"profil
\ No newline at end of file
diff --git a/json-framework-3.2.0/Tests/Stream/xdr b/json-framework-3.2.0/Tests/Stream/xdr
new file mode 100644
index 0000000..138dda1
--- /dev/null
+++ b/json-framework-3.2.0/Tests/Stream/xdr
@@ -0,0 +1 @@
+e_background_tile":false,"profile_background_image_url":"http:\/\/s.twimg.com\/a\/1290538325\/images\/themes\/theme1\/bg.png","profile_background_color":"C0DEED","location":"Russia, Moscow","profile_use_background_image":true,"profile_text_color":"333333","followers_count":1471,"statuses_count":6946,"time_zone":"Moscow","created_at":"Fri Jan 23 22:07:58 +0000 2009","friends_count":72,"protected":false,"profile_image_url":"http:\/\/a3.twimg.com\/profile_images\/1031969395\/duck_digital_duck_normal.png","notifications":null,"profile_link_color":"0084B4","url":"http:\/\/duckofdoom.ru","name":"Mitya Voskresensky","id_str":"19416850","favourites_count":0,"screen_name":"duck_of_d00m","id":19416850,"contributors_enabled":false,"lang":"en","utc_offset":10800,"profile_sidebar_fill_color":"DDEEF6"},"id":12216177023520768,"in_reply_to_user_id":null,"favorited":false},"retweeted":false,"geo":null,"created_at":"Wed Dec 08 07:43:27 +0000 2010","truncated":false,"id_str":"12411922808840192","user":{"follow_request_sent":nul
\ No newline at end of file
diff --git a/json-framework-3.2.0/Tests/Stream/xds b/json-framework-3.2.0/Tests/Stream/xds
new file mode 100644
index 0000000..c73ae86
--- /dev/null
+++ b/json-framework-3.2.0/Tests/Stream/xds
@@ -0,0 +1,2 @@
+l,"following":null,"verified":false,"profile_sidebar_border_color":"CC3366","show_all_inline_media":false,"geo_enabled":false,"description":"","listed_count":16,"profile_background_tile":true,"profile_background_image_url":"http:\/\/s.twimg.com\/a\/1291318259\/images\/themes\/theme11\/bg.gif","profile_background_color":"FF6699","location":"\u0421\u0430\u0440\u0430\u0442\u043e\u0432 ","profile_use_background_image":true,"profile_text_color":"362720","followers_count":87,"statuses_count":519,"time_zone":null,"created_at":"Fri Sep 18 17:59:18 +0000 2009","friends_count":53,"protected":false,"profile_image_url":"http:\/\/a2.twimg.com\/profile_images\/1104098446\/IMG_3584_normal.JPG","notifications":null,"profile_link_color":"B40B43","url":null,"name":"Olga Semina","id_str":"75342779","favourites_count":0,"screen_name":"callmelili","id":75342779,"contributors_enabled":false,"lang":"en","utc_offset":null,"profile_sidebar_fill_color":"E5507E"},"id":12411922808840192,"in_reply_to_user_id":null,"favorited":false}
+{"c
\ No newline at end of file
diff --git a/json-framework-3.2.0/Tests/Stream/xdt b/json-framework-3.2.0/Tests/Stream/xdt
new file mode 100644
index 0000000..9920161
--- /dev/null
+++ b/json-framework-3.2.0/Tests/Stream/xdt
@@ -0,0 +1 @@
+oordinates":null,"text":"The Art of Corking Wine http:\/\/bit.ly\/11gGbb #winemaking","entities":{"urls":[{"expanded_url":null,"indices":[24,44],"url":"http:\/\/bit.ly\/11gGbb"}],"user_mentions":[],"hashtags":[{"text":"winemaking","indices":[45,56]}]},"in_reply_to_screen_name":null,"in_reply_to_status_id_str":null,"place":null,"contributors":null,"retweet_count":null,"in_reply_to_status_id":null,"in_reply_to_user_id_str":null,"source":"\u003Ca href=\"http:\/\/www.ajaymatharu.com\/\" rel=\"nofollow\"\u003ETweet Old Post\u003C\/a\u003E","retweeted":false,"geo":null,"created_at":"Wed Dec 08 07:43:28 +0000 2010","truncated":false,"id_str":"12411927032504320","user":{"follow_request_sent":null,"following":null,"verified":false,"profile_sidebar_border_color":"BDDCAD","show_all_inline_media":false,"geo_enabled":false,"description":"Wine Creator is all about the wonderfully awesome hobby of making wine at home - something I've done personally for over 15 years and love sharing with others!","listed_count":307,"profil
\ No newline at end of file
diff --git a/json-framework-3.2.0/Tests/Stream/xdu b/json-framework-3.2.0/Tests/Stream/xdu
new file mode 100644
index 0000000..60f6e8f
--- /dev/null
+++ b/json-framework-3.2.0/Tests/Stream/xdu
@@ -0,0 +1 @@
+e_background_tile":true,"profile_background_image_url":"http:\/\/a1.twimg.com\/profile_background_images\/7784250\/wine-bottles-free.jpg","profile_background_color":"9AE4E8","location":"","profile_use_background_image":true,"profile_text_color":"333333","followers_count":15657,"statuses_count":2191,"time_zone":"Central Time (US & Canada)","created_at":"Tue Apr 07 01:37:29 +0000 2009","friends_count":17140,"protected":false,"profile_image_url":"http:\/\/a0.twimg.com\/profile_images\/126970064\/redWine_normal.jpg","notifications":null,"profile_link_color":"0084B4","url":"http:\/\/winecreator.com","name":"Wine Creator","id_str":"29347169","favourites_count":1,"screen_name":"winecreator","id":29347169,"contributors_enabled":false,"lang":"en","utc_offset":-21600,"profile_sidebar_fill_color":"DDFFCC"},"id":12411927032504320,"in_reply_to_user_id":null,"favorited":false}
diff --git a/json-framework-3.2.0/Tests/Stream/xxx b/json-framework-3.2.0/Tests/Stream/xxx
new file mode 100644
index 0000000..9d5fcc2
--- /dev/null
+++ b/json-framework-3.2.0/Tests/Stream/xxx
@@ -0,0 +1,49 @@
+{"coordinates":null,"text":":) Our secret weapon is no alternative. Golda Meir","entities":{"user_mentions":[],"urls":[],"hashtags":[]},"in_reply_to_screen_name":null,"in_reply_to_status_id_str":null,"place":null,"contributors":null,"retweet_count":0,"in_reply_to_status_id":null,"in_reply_to_user_id_str":null,"source":"\u003Ca href=\"http:\/\/www.socialoomph.com\" rel=\"nofollow\"\u003ESocialOomph\u003C\/a\u003E","retweeted":false,"geo":null,"created_at":"Wed Dec 08 07:43:21 +0000 2010","truncated":false,"id_str":"12411897663979520","user":{"follow_request_sent":null,"following":null,"verified":false,"profile_sidebar_border_color":"C0DEED","show_all_inline_media":false,"geo_enabled":false,"description":"Young and Energetic. I just sold my first house and will be posting Tweets about my new career as a house flipper","listed_count":49,"profile_background_tile":false,"profile_background_image_url":"http:\/\/a3.twimg.com\/profile_background_images\/38409971\/problemsolver.jpg","profile_background_color":"C0DEED","location":"Ontario Canada","profile_use_background_image":true,"profile_text_color":"4d1c12","followers_count":7991,"statuses_count":41594,"time_zone":"Quito","created_at":"Sun Sep 20 20:32:38 +0000 2009","friends_count":8789,"protected":false,"profile_image_url":"http:\/\/a0.twimg.com\/profile_images\/426248904\/homes_normal.jpg","notifications":null,"profile_link_color":"055673","url":"http:\/\/www.the-problemsolver.com","name":"We Flip","id_str":"75869159","favourites_count":0,"screen_name":"house_flipper","id":75869159,"contributors_enabled":false,"lang":"en","utc_offset":-18000,"profile_sidebar_fill_color":"c1a38c"},"id":12411897663979520,"in_reply_to_user_id":null,"favorited":false}
+{"coordinates":null,"text":"RT @therealdjrell click (retweet) if you still up","entities":{"hashtags":[],"urls":[],"user_mentions":[{"indices":[3,17],"name":"Dj Rell OF BBC","screen_name":"therealdjrell","id_str":"180669193","id":180669193}]},"in_reply_to_screen_name":null,"in_reply_to_status_id_str":null,"place":null,"contributors":null,"retweet_count":null,"in_reply_to_status_id":null,"in_reply_to_user_id_str":null,"source":"\u003Ca href=\"http:\/\/www.htc.com\" rel=\"nofollow\"\u003E  HTC Peep\u003C\/a\u003E","retweeted":false,"geo":null,"created_at":"Wed Dec 08 07:43:21 +0000 2010","truncated":false,"id_str":"12411897680764928","user":{"following":null,"listed_count":4,"profile_background_tile":true,"profile_background_image_url":"http:\/\/a1.twimg.com\/profile_background_images\/179020444\/Picnik_collage.jpg","profile_sidebar_border_color":"3d3739","profile_use_background_image":true,"description":"BABY KNOWS WHAT SHE WANTS & ALWAYS GETS IT. :) ArizonaStateUni (DowntownPHX) '14 * 18 YrOld * Chicago is Home * FOLLOW ME & I'LL FOLLOW YOU! :) #TEAMLAKERS","statuses_count":2206,"time_zone":"Arizona","friends_count":115,"profile_background_color":"0f0604","location":"N 33\u00b027' 0'' \/ W 112\u00b04' 0''","profile_text_color":"66585a","followers_count":120,"contributors_enabled":false,"created_at":"Tue Apr 07 01:55:15 +0000 2009","protected":false,"profile_image_url":"http:\/\/a2.twimg.com\/profile_images\/1182977830\/FB1_normal.jpg","follow_request_sent":null,"verified":false,"notifications":null,"profile_link_color":"cf1919","url":"http:\/\/www.facebook.com\/profile.php?id=610064376","name":"Shayla Brown","id_str":"29351068","favourites_count":16,"screen_name":"BabyistheDream4","id":29351068,"show_all_inline_media":false,"lang":"en","geo_enabled":false,"utc_offset":-25200,"profile_sidebar_fill_color":"ffffff"},"id":12411897680764928,"in_reply_to_user_id":null,"favorited":false}
+{"coordinates":null,"text":"THT..boseenn..(\u02c7_\u02c7'!l)\u200b\u200e ..","entities":{"urls":[],"hashtags":[],"user_mentions":[]},"in_reply_to_screen_name":null,"in_reply_to_status_id_str":null,"place":null,"contributors":null,"retweet_count":0,"in_reply_to_status_id":null,"in_reply_to_user_id_str":null,"source":"\u003Ca href=\"http:\/\/blackberry.com\/twitter\" rel=\"nofollow\"\u003ETwitter for BlackBerry\u00ae\u003C\/a\u003E","retweeted":false,"geo":null,"created_at":"Wed Dec 08 07:43:21 +0000 2010","truncated":false,"id_str":"12411897668177920","user":{"follow_request_sent":null,"following":null,"verified":false,"profile_sidebar_border_color":"eb1a44","show_all_inline_media":false,"geo_enabled":false,"description":"\u2661 Simple and nice Lady \u2661..\u263a ","listed_count":3,"profile_background_tile":false,"profile_background_image_url":"http:\/\/s.twimg.com\/a\/1290538325\/images\/themes\/theme1\/bg.png","profile_background_color":"e01660","location":"\u00dcT: -6.171394,106.868656","profile_use_background_image":true,"profile_text_color":"333333","followers_count":205,"statuses_count":6045,"time_zone":"Pacific Time (US & Canada)","created_at":"Thu Oct 29 06:35:04 +0000 2009","friends_count":232,"protected":false,"profile_image_url":"http:\/\/a0.twimg.com\/profile_images\/1145910676\/Picture_202584_normal.jpg","notifications":null,"profile_link_color":"CC3366","url":"http:\/\/null","name":"dila Zitria yuzar","id_str":"86008365","favourites_count":17,"screen_name":"dilaZitria","id":86008365,"contributors_enabled":false,"lang":"en","utc_offset":-28800,"profile_sidebar_fill_color":"e61e89"},"id":12411897668177920,"in_reply_to_user_id":null,"favorited":false}
+{"coordinates":null,"text":"\u6628\u591c\u3001\u6b53\u9001\u8fce\u4f1a\u306e\u4e8c\u6b21\u4f1a\u306e\u30b9\u30ca\u30c3\u30af\u306750\u66f2\u304f\u3089\u3044\u4e00\u4eba\u3067\u6c38\u9060\u306b\u6b4c\u3063\u3066\u305f\u3089\u3057\u3044www\u3042\u307e\u308a\u899a\u3048\u3066\u306a\u3044\u3093\u3060\u304c\u3001\u78ba\u304b\u306b\u5589\u306f\u75db\u3044\u306e\u3067\u3042\u308b\u3002","entities":{"hashtags":[],"urls":[],"user_mentions":[]},"in_reply_to_screen_name":null,"in_reply_to_status_id_str":null,"place":null,"contributors":null,"retweet_count":0,"in_reply_to_status_id":null,"in_reply_to_user_id_str":null,"source":"\u003Ca href=\"http:\/\/www.movatwi.jp\" rel=\"nofollow\"\u003Ewww.movatwi.jp\u003C\/a\u003E","retweeted":false,"geo":null,"created_at":"Wed Dec 08 07:43:21 +0000 2010","truncated":false,"id_str":"12411897668182016","user":{"following":null,"listed_count":12,"profile_background_tile":true,"profile_background_image_url":"http:\/\/a1.twimg.com\/profile_background_images\/92964430\/0287.jpg","profile_sidebar_border_color":"a8c7f7","profile_use_background_image":true,"description":"\u30f2\u30bf\u5c5e\u6027\u306f\u25cf\u25cf\u25cf\u25cf\u25cf(\u4eee\uff09\r\n\u5168\u529b\u8150\u6d3b\u52d5\u4e2d\uff01\uff01\r\n\u4e2d\u91ce\u8150\u5973\u30b7\u30b9\u30bf\u30fc\u30ba\u30fb\u8150\u7537\u587e\u306b\u6367\u3052\u308b\u30ed\u30fc\u30de\u30fc\u30f3\u30fc\u30b9\u3063\uff01","statuses_count":5862,"time_zone":"Tokyo","friends_count":314,"profile_background_color":"022330","location":"\u306a\u306b\u308f\uff01\u306a\u306b\u308f\uff01","profile_text_color":"333333","followers_count":245,"contributors_enabled":false,"created_at":"Tue Aug 11 08:24:20 +0000 2009","protected":false,"profile_image_url":"http:\/\/a3.twimg.com\/profile_images\/574158539\/roreapple_normal.jpg","follow_request_sent":null,"verified":false,"notifications":null,"profile_link_color":"0084B4","url":"http:\/\/ameblo.jp\/roreapple\/","name":"\u30ed\u30ec\u308a\u3093\u3054","id_str":"64662506","favourites_count":42,"screen_name":"roreapple","id":64662506,"show_all_inline_media":false,"lang":"ja","geo_enabled":false,"utc_offset":32400,"profile_sidebar_fill_color":"C0DFEC"},"id":12411897668182016,"in_reply_to_user_id":null,"favorited":false}
+{"coordinates":null,"text":"Gaaa RT @nisa_sukin: Menanti gaunku... Muat gak yah,, hiks","entities":{"hashtags":[],"urls":[],"user_mentions":[{"indices":[8,19],"name":"Masitoh Hairunisa","screen_name":"nisa_sukin","id_str":"29117556","id":29117556}]},"in_reply_to_screen_name":null,"in_reply_to_status_id_str":null,"place":null,"contributors":null,"retweet_count":0,"in_reply_to_status_id":null,"in_reply_to_user_id_str":null,"source":"\u003Ca href=\"http:\/\/www.ubertwitter.com\/bb\/download.php\" rel=\"nofollow\"\u003E\u00dcberTwitter\u003C\/a\u003E","retweeted":false,"geo":null,"created_at":"Wed Dec 08 07:43:22 +0000 2010","truncated":false,"id_str":"12411901849903104","user":{"follow_request_sent":null,"following":null,"verified":false,"profile_sidebar_border_color":"C0DEED","show_all_inline_media":false,"geo_enabled":false,"description":"Happy wifey ;)","listed_count":0,"profile_background_tile":false,"profile_background_image_url":"http:\/\/s.twimg.com\/a\/1291661299\/images\/themes\/theme1\/bg.png","profile_background_color":"C0DEED","location":"Here,there n everywhere","profile_use_background_image":true,"profile_text_color":"333333","followers_count":26,"statuses_count":255,"time_zone":null,"created_at":"Fri May 15 07:33:06 +0000 2009","friends_count":68,"protected":false,"profile_image_url":"http:\/\/a2.twimg.com\/profile_images\/1166898498\/209967688_normal.jpg","notifications":null,"profile_link_color":"0084B4","url":null,"name":"Dian Supramanik","id_str":"40197229","favourites_count":0,"screen_name":"supramanik","id":40197229,"contributors_enabled":false,"lang":"en","utc_offset":null,"profile_sidebar_fill_color":"DDEEF6"},"id":12411901849903104,"in_reply_to_user_id":null,"favorited":false}
+{"coordinates":null,"text":"@FatboyRoberts Christ! I almost thought you were spam! My brain is melting, so I'll have to look at that tomorrow. Now: Brain death.","entities":{"urls":[],"hashtags":[],"user_mentions":[{"indices":[0,14],"name":"Fatboy Roberts","screen_name":"FatboyRoberts","id_str":"20921327","id":20921327}]},"in_reply_to_screen_name":"FatboyRoberts","in_reply_to_status_id_str":"12362450682773504","place":null,"contributors":null,"retweet_count":null,"in_reply_to_status_id":12362450682773504,"in_reply_to_user_id_str":"20921327","source":"\u003Ca href=\"http:\/\/www.tweetdeck.com\" rel=\"nofollow\"\u003ETweetDeck\u003C\/a\u003E","retweeted":false,"geo":null,"created_at":"Wed Dec 08 07:43:22 +0000 2010","truncated":false,"id_str":"12411901837320192","user":{"following":null,"listed_count":35,"profile_background_tile":false,"profile_background_image_url":"http:\/\/s.twimg.com\/a\/1290538325\/images\/themes\/theme9\/bg.gif","profile_sidebar_border_color":"ffffff","profile_use_background_image":false,"description":"Bad motherfucker, game journalist, taller than your boyfriend.","statuses_count":10032,"time_zone":"Pacific Time (US & Canada)","friends_count":148,"profile_background_color":"545454","location":"Portland, Oregon","profile_text_color":"878787","followers_count":716,"contributors_enabled":false,"created_at":"Thu Feb 07 02:55:38 +0000 2008","protected":false,"profile_image_url":"http:\/\/a1.twimg.com\/profile_images\/688559405\/twinklestarsprites_normal.png","follow_request_sent":null,"verified":false,"notifications":null,"profile_link_color":"ad0000","url":"http:\/\/nex.vox.com\/","name":"Earnest Cavalli","id_str":"13189102","favourites_count":0,"screen_name":"ecavalli","id":13189102,"show_all_inline_media":true,"lang":"en","geo_enabled":true,"utc_offset":-28800,"profile_sidebar_fill_color":"1c1c1c"},"id":12411901837320192,"in_reply_to_user_id":20921327,"favorited":false}
+{"coordinates":null,"text":"@crumpitout shane.. we miss you with alesana\u00a1\u00a1 \ncome to mexico please :]\nwe love u :]\nxoxo","entities":{"hashtags":[],"urls":[],"user_mentions":[{"indices":[0,11],"name":"Shane Crump","screen_name":"crumpitout","id_str":"145315047","id":145315047}]},"in_reply_to_screen_name":"crumpitout","in_reply_to_status_id_str":null,"place":null,"contributors":null,"retweet_count":0,"in_reply_to_status_id":null,"in_reply_to_user_id_str":"145315047","source":"web","retweeted":false,"geo":null,"created_at":"Wed Dec 08 07:43:22 +0000 2010","truncated":false,"id_str":"12411901854093312","user":{"following":null,"listed_count":0,"profile_background_tile":true,"profile_background_image_url":"http:\/\/a1.twimg.com\/profile_background_images\/149753364\/2mbdax.jpg","profile_sidebar_border_color":"ff00ff","profile_use_background_image":true,"description":"","statuses_count":338,"time_zone":"Mexico City","friends_count":114,"profile_background_color":"f50af5","location":"mexico, city","profile_text_color":"f009d5","followers_count":31,"contributors_enabled":false,"created_at":"Sat Aug 29 23:25:10 +0000 2009","protected":false,"profile_image_url":"http:\/\/a1.twimg.com\/profile_images\/1126473913\/48906_1376585645_7669_q_normal.jpg","follow_request_sent":null,"verified":false,"notifications":null,"profile_link_color":"de13f0","url":"http:\/\/www.facebook.com\/profile.php?id=1376585645","name":"jezz sandoval","id_str":"69990626","favourites_count":0,"screen_name":"jezz_sandoval","id":69990626,"show_all_inline_media":true,"lang":"es","geo_enabled":false,"utc_offset":-21600,"profile_sidebar_fill_color":"08fc08"},"id":12411901854093312,"in_reply_to_user_id":145315047,"favorited":false}
+{"coordinates":null,"text":"A new franchised business is opened every 8 minutes of every business day....Read more facts at http:\/\/ow.ly\/2ktXb","entities":{"urls":[{"expanded_url":null,"indices":[96,114],"url":"http:\/\/ow.ly\/2ktXb"}],"hashtags":[],"user_mentions":[]},"in_reply_to_screen_name":null,"in_reply_to_status_id_str":null,"place":null,"contributors":null,"retweet_count":0,"in_reply_to_status_id":null,"in_reply_to_user_id_str":null,"source":"\u003Ca href=\"http:\/\/socialcreeper.com\" rel=\"nofollow\"\u003ESocialcreeper\u003C\/a\u003E","retweeted":false,"geo":null,"created_at":"Wed Dec 08 07:43:22 +0000 2010","truncated":false,"id_str":"12411901854097408","user":{"follow_request_sent":null,"following":null,"verified":false,"profile_sidebar_border_color":"5ED4DC","show_all_inline_media":false,"geo_enabled":false,"description":"No charge consulting services be your own boss work from home recession, proof businesses, available financing. our role is to help  you and give you the best","listed_count":15,"profile_background_tile":false,"profile_background_image_url":"http:\/\/s.twimg.com\/a\/1289607957\/images\/themes\/theme4\/bg.gif","profile_background_color":"0099B9","location":"new jersey","profile_use_background_image":true,"profile_text_color":"3C3940","followers_count":1918,"statuses_count":8216,"time_zone":"Eastern Time (US & Canada)","created_at":"Wed Aug 04 08:30:19 +0000 2010","friends_count":2110,"protected":false,"profile_image_url":"http:\/\/a0.twimg.com\/profile_images\/1097183072\/franchise_normal.jpg","notifications":null,"profile_link_color":"0099B9","url":"http:\/\/www.facebook.com\/pages\/Advantage-Franchise-Consulting\/132423546795977?v=app_4949752878 ","name":"franchiseconsutling","id_str":"174584532","favourites_count":0,"screen_name":"consultingfree","id":174584532,"contributors_enabled":false,"lang":"en","utc_offset":-18000,"profile_sidebar_fill_color":"95E8EC"},"id":12411901854097408,"in_reply_to_user_id":null,"favorited":false}
+{"coordinates":null,"text":"La cruda es como la risa !","entities":{"hashtags":[],"urls":[],"user_mentions":[]},"in_reply_to_screen_name":null,"in_reply_to_status_id_str":null,"place":null,"contributors":null,"retweet_count":null,"in_reply_to_status_id":null,"in_reply_to_user_id_str":null,"source":"web","retweeted":false,"geo":null,"created_at":"Wed Dec 08 07:43:22 +0000 2010","truncated":false,"id_str":"12411901875060736","user":{"follow_request_sent":null,"following":null,"verified":false,"profile_sidebar_border_color":"C0DEED","show_all_inline_media":false,"geo_enabled":false,"description":"La felicidad no es un estado de \u00e1nimo,sino una DECISI\u00d3N!","listed_count":1,"profile_background_tile":false,"profile_background_image_url":"http:\/\/a1.twimg.com\/profile_background_images\/163795950\/cover.jpg","profile_background_color":"C0DEED","location":"","profile_use_background_image":true,"profile_text_color":"333333","followers_count":73,"statuses_count":1019,"time_zone":"Guadalajara","created_at":"Sun May 02 00:25:43 +0000 2010","friends_count":211,"protected":false,"profile_image_url":"http:\/\/a1.twimg.com\/profile_images\/1151825365\/40766_10150244183920072_565820071_14195871_5748381_n_normal.jpg","notifications":null,"profile_link_color":"0084B4","url":null,"name":"karmen beltr\u00e1n ","id_str":"139233639","favourites_count":2,"screen_name":"ka_beltran","id":139233639,"contributors_enabled":false,"lang":"es","utc_offset":-21600,"profile_sidebar_fill_color":"DDEEF6"},"id":12411901875060736,"in_reply_to_user_id":null,"favorited":false}
+{"coordinates":null,"text":"\u30d5\u30a9\u30ed\u30fc\u3057\u3066\u306d(^-^)\/ #followmejp #sougofollow #followdaibosyu \uff8a\uff9f\uff81\uff9d\uff7a \uff8a\uff9f\uff81\uff7d\uff9b \u7af6\u99ac \uff9b\uff84 \uff85\uff9d\uff8a\uff9e\uff70\uff7d\uff9e 1643128","entities":{"urls":[],"user_mentions":[],"hashtags":[{"text":"followmejp","indices":[14,25]},{"text":"sougofollow","indices":[26,38]},{"text":"followdaibosyu","indices":[39,54]}]},"in_reply_to_screen_name":null,"in_reply_to_status_id_str":null,"place":null,"contributors":null,"retweet_count":0,"in_reply_to_status_id":null,"in_reply_to_user_id_str":null,"source":"\u003Ca href=\"http:\/\/www.movatwi.jp\" rel=\"nofollow\"\u003Ewww.movatwi.jp\u003C\/a\u003E","retweeted":false,"geo":null,"created_at":"Wed Dec 08 07:43:23 +0000 2010","truncated":false,"id_str":"12411906056790016","user":{"follow_request_sent":null,"following":null,"verified":false,"profile_sidebar_border_color":"C0DEED","show_all_inline_media":false,"geo_enabled":false,"description":"","listed_count":7,"profile_background_tile":false,"profile_background_image_url":"http:\/\/s.twimg.com\/a\/1291163542\/images\/themes\/theme1\/bg.png","profile_background_color":"C0DEED","location":"","profile_use_background_image":true,"profile_text_color":"333333","followers_count":1371,"statuses_count":5503,"time_zone":"Hawaii","created_at":"Thu Jul 29 13:53:49 +0000 2010","friends_count":1278,"protected":false,"profile_image_url":"http:\/\/a1.twimg.com\/profile_images\/1094558749\/_____normal.jpg","notifications":null,"profile_link_color":"0084B4","url":null,"name":"\u30e1\u30b0\u30df","id_str":"172346562","favourites_count":0,"screen_name":"megumi2258","id":172346562,"contributors_enabled":false,"lang":"ja","utc_offset":-36000,"profile_sidebar_fill_color":"DDEEF6"},"id":12411906056790016,"in_reply_to_user_id":null,"favorited":false}
+{"coordinates":null,"text":"Rant Forum: Spike on \"HOT BED OF FOOTBALL.........MOST KNOWLEDGABLE SUPPORTERS  BLAH  BLAH  BLAH!\" http:\/\/bit.ly\/hF9G1y #mufc #manutd","entities":{"hashtags":[{"text":"mufc","indices":[120,125]},{"text":"manutd","indices":[126,133]}],"urls":[{"expanded_url":null,"indices":[99,119],"url":"http:\/\/bit.ly\/hF9G1y"}],"user_mentions":[]},"in_reply_to_screen_name":null,"in_reply_to_status_id_str":null,"place":null,"contributors":null,"retweet_count":0,"in_reply_to_status_id":null,"in_reply_to_user_id_str":null,"source":"\u003Ca href=\"http:\/\/twitterfeed.com\" rel=\"nofollow\"\u003Etwitterfeed\u003C\/a\u003E","retweeted":false,"geo":null,"created_at":"Wed Dec 08 07:43:23 +0000 2010","truncated":false,"id_str":"12411906035818496","user":{"following":null,"listed_count":31,"profile_background_tile":true,"profile_background_image_url":"http:\/\/a3.twimg.com\/profile_background_images\/151777477\/twitter-background.png","profile_sidebar_border_color":"990000","profile_use_background_image":true,"description":"Forum of the United Rant blog visit www.unitedrant.co.uk\/forum for lively discussion.","statuses_count":6688,"time_zone":"London","friends_count":837,"profile_background_color":"000000","location":"Old Trafford","profile_text_color":"000000","followers_count":290,"contributors_enabled":false,"created_at":"Thu Jul 22 11:37:05 +0000 2010","protected":false,"profile_image_url":"http:\/\/a2.twimg.com\/profile_images\/1128154622\/twitter_new_badge_forum_normal.jpg","follow_request_sent":null,"verified":false,"notifications":null,"profile_link_color":"ccb100","url":"http:\/\/www.unitedrant.co.uk\/forum","name":"United Rant Forum","id_str":"169458574","favourites_count":0,"screen_name":"rant_forum","id":169458574,"show_all_inline_media":false,"lang":"en","geo_enabled":false,"utc_offset":0,"profile_sidebar_fill_color":"e00700"},"id":12411906035818496,"in_reply_to_user_id":null,"favorited":false}
+{"coordinates":null,"text":"Don't waste her time, if you still want to play around let her go. Its only fair. #MessageToMyBoys","entities":{"hashtags":[{"text":"MessageToMyBoys","indices":[82,98]}],"urls":[],"user_mentions":[]},"in_reply_to_screen_name":null,"in_reply_to_status_id_str":null,"place":null,"contributors":null,"retweet_count":0,"in_reply_to_status_id":null,"in_reply_to_user_id_str":null,"source":"web","retweeted":false,"geo":null,"created_at":"Wed Dec 08 07:43:23 +0000 2010","truncated":false,"id_str":"12411906069368832","user":{"following":null,"listed_count":2,"profile_background_tile":true,"profile_background_image_url":"http:\/\/a3.twimg.com\/profile_background_images\/177052687\/3235134362_c0f681f914_o.jpg","profile_sidebar_border_color":"C0DEED","profile_use_background_image":true,"description":"I am an enigma, wrapped in a sesame and nestled in a riddle of some mystery.","statuses_count":5795,"time_zone":"Pretoria","friends_count":207,"profile_background_color":"C0DEED","location":"\u00dcT: -26.193627,28.041314","profile_text_color":"333333","followers_count":275,"contributors_enabled":false,"created_at":"Fri May 01 06:55:03 +0000 2009","protected":false,"profile_image_url":"http:\/\/a3.twimg.com\/profile_images\/1183768439\/DSC06923_normal.JPG","follow_request_sent":null,"verified":false,"notifications":null,"profile_link_color":"0084B4","url":"http:\/\/www.mspmc.co.za","name":"Mafedi Selepe","id_str":"36901018","favourites_count":0,"screen_name":"MafediSelepe","id":36901018,"show_all_inline_media":false,"lang":"en","geo_enabled":true,"utc_offset":7200,"profile_sidebar_fill_color":"DDEEF6"},"id":12411906069368832,"in_reply_to_user_id":null,"favorited":false}
+{"coordinates":null,"text":"Ada setan. *katanyasih. RT @PROMOTEfor: #tanyaremaja (jaman sd) hal apa yg membuat km takut ke toilet sendirian ?","entities":{"urls":[],"hashtags":[{"text":"tanyaremaja","indices":[40,52]}],"user_mentions":[{"indices":[27,38],"name":"Hendra J.P.","screen_name":"PROMOTEfor","id_str":"112023841","id":112023841}]},"in_reply_to_screen_name":null,"in_reply_to_status_id_str":null,"place":null,"contributors":null,"retweet_count":0,"in_reply_to_status_id":null,"in_reply_to_user_id_str":null,"source":"\u003Ca href=\"http:\/\/www.ubertwitter.com\/bb\/download.php\" rel=\"nofollow\"\u003E\u00dcberTwitter\u003C\/a\u003E","retweeted":false,"geo":null,"created_at":"Wed Dec 08 07:43:23 +0000 2010","truncated":false,"id_str":"12411906052587520","user":{"following":null,"listed_count":0,"profile_background_tile":true,"profile_background_image_url":"http:\/\/a1.twimg.com\/profile_background_images\/107674614\/1237098635915429223StudioFibonacci_Cartoon_Hillside_with_Butterfly_and_Flowers.svg.hi","profile_sidebar_border_color":"e61739","profile_use_background_image":true,"description":"229EB3B1 :)))\r\ni'm a big fans of @xtianbautista  . \r\nAn ordinary girl with a big dreams.  you will confuse  if you know who really i am. ","statuses_count":2529,"time_zone":"Pacific Time (US & Canada)","friends_count":56,"profile_background_color":"B2DFDA","location":"Canada. \u00dcT: -6.224251,106.9222","profile_text_color":"e61010","followers_count":69,"contributors_enabled":false,"created_at":"Tue Feb 23 09:35:19 +0000 2010","protected":false,"profile_image_url":"http:\/\/a3.twimg.com\/profile_images\/1174458315\/ajeng_normal.jpg","follow_request_sent":null,"verified":false,"notifications":null,"profile_link_color":"1ce1e8","url":null,"name":"Ajeng Lintang","id_str":"116697581","favourites_count":0,"screen_name":"AjengLD","id":116697581,"show_all_inline_media":false,"lang":"en","geo_enabled":false,"utc_offset":-28800,"profile_sidebar_fill_color":"e08db3"},"id":12411906052587520,"in_reply_to_user_id":null,"favorited":false}
+{"coordinates":null,"text":"\u958b\u62d3\u9ad8\u6821\u306e\u6821\u6b4c\u304c\u9244\u8155\u30a2\u30c8\u30e0\u3060\u3063\u305f\u4ef6","entities":{"urls":[],"hashtags":[],"user_mentions":[]},"in_reply_to_screen_name":null,"in_reply_to_status_id_str":null,"place":null,"contributors":null,"retweet_count":0,"in_reply_to_status_id":null,"in_reply_to_user_id_str":null,"source":"web","retweeted":false,"geo":null,"created_at":"Wed Dec 08 07:43:23 +0000 2010","truncated":false,"id_str":"12411906035818497","user":{"following":null,"listed_count":0,"profile_background_tile":true,"profile_background_image_url":"http:\/\/a3.twimg.com\/profile_background_images\/166881635\/sas.png","profile_sidebar_border_color":"C0DEED","profile_use_background_image":true,"description":"\u30d7\u30ed\u30b9\u30d4\u3067\u81ea\u5206\u4f5c\u3063\u305f\u3089\u5929\u72d7\u4e26\u307f\u306e\u8d70\u529b\u306b\u306a\u3063\u305f\u30fb\u30fb\u30fb\u308f\u3051\u3067\u3082\u306a\u304b\u3063\u305f\u30fb\u30fb\u30fb\u3068\u304b\u8a00\u3063\u3066\u4f5c\u308a\u76f4\u3057\u305f\u3089\u672c\u5f53\u306b\u5929\u72d7\u306b\u306a\u3063\u305f","statuses_count":1324,"time_zone":"Osaka","friends_count":24,"profile_background_color":"C0DEED","location":"\u65e7\u5730\u7344\u8857\u9053\u5165\u308a\u53e3\u4ed8\u8fd1","profile_text_color":"333333","followers_count":18,"contributors_enabled":false,"created_at":"Sat Oct 30 08:39:38 +0000 2010","protected":false,"profile_image_url":"http:\/\/a0.twimg.com\/profile_images\/1179158108\/52_normal.png","follow_request_sent":null,"verified":false,"notifications":null,"profile_link_color":"0084B4","url":null,"name":"\u53e4\u660e\u5730\u60a0\u99ac","id_str":"209976874","favourites_count":7,"screen_name":"Komeiji88","id":209976874,"show_all_inline_media":false,"lang":"ja","geo_enabled":true,"utc_offset":32400,"profile_sidebar_fill_color":"DDEEF6"},"id":12411906035818497,"in_reply_to_user_id":null,"favorited":false}
+{"coordinates":null,"text":"@KOOL_GANG \uc0b4\uc544\ub098\ub77c \uc6b0\ub9ac \uc5d0\uc774\uc2a4.","entities":{"urls":[],"hashtags":[],"user_mentions":[{"indices":[0,10],"name":"Kool Gang","screen_name":"KOOL_GANG","id_str":"173724958","id":173724958}]},"in_reply_to_screen_name":"KOOL_GANG","in_reply_to_status_id_str":"12410887285506048","place":null,"contributors":null,"retweet_count":null,"in_reply_to_status_id":12410887285506048,"in_reply_to_user_id_str":"173724958","source":"\u003Ca href=\"http:\/\/twtkr.com\" rel=\"nofollow\"\u003Etwtkr\u003C\/a\u003E","retweeted":false,"geo":null,"created_at":"Wed Dec 08 07:43:23 +0000 2010","truncated":false,"id_str":"12411906052591616","user":{"follow_request_sent":null,"following":null,"verified":false,"profile_sidebar_border_color":"C0DEED","show_all_inline_media":false,"geo_enabled":false,"description":"","listed_count":1,"profile_background_tile":false,"profile_background_image_url":"http:\/\/s.twimg.com\/a\/1290538325\/images\/themes\/theme1\/bg.png","profile_background_color":"C0DEED","location":"\uc5f0\ud76c\uc8fc\ubbfc","profile_use_background_image":true,"profile_text_color":"333333","followers_count":34,"statuses_count":416,"time_zone":"Hawaii","created_at":"Thu Aug 19 06:08:37 +0000 2010","friends_count":36,"protected":false,"profile_image_url":"http:\/\/a0.twimg.com\/profile_images\/1106972912\/aa_normal.jpg","notifications":null,"profile_link_color":"0084B4","url":null,"name":"dub&beard","id_str":"180269638","favourites_count":1,"screen_name":"yaguwang","id":180269638,"contributors_enabled":false,"lang":"en","utc_offset":-36000,"profile_sidebar_fill_color":"DDEEF6"},"id":12411906052591616,"in_reply_to_user_id":173724958,"favorited":false}
+{"coordinates":null,"text":"RT @Ricki_MINAJ: @TeemFollowBack @1109_2904 #teamfollowback twitter famous boy&gt;&gt;&gt; @Ricki_MINAJ &lt;&lt;&lt;","entities":{"urls":[],"hashtags":[{"text":"teamfollowback","indices":[44,59]}],"user_mentions":[{"indices":[3,15],"name":"Ricky Johnson","screen_name":"Ricki_MINAJ","id_str":"51198602","id":51198602},{"indices":[17,32],"name":"Teem Follow Back","screen_name":"TeemFollowBack","id_str":"185188539","id":185188539},{"indices":[33,43],"name":"Aprilian Angel","screen_name":"1109_2904","id_str":"92217048","id":92217048},{"indices":[91,103],"name":"Ricky Johnson","screen_name":"Ricki_MINAJ","id_str":"51198602","id":51198602}]},"in_reply_to_screen_name":null,"in_reply_to_status_id_str":null,"place":null,"contributors":null,"retweet_count":null,"in_reply_to_status_id":null,"in_reply_to_user_id_str":null,"source":"\u003Ca href=\"http:\/\/seesmic.com\/app\" rel=\"nofollow\"\u003ESeesmic Web\u003C\/a\u003E","retweeted_status":{"coordinates":null,"text":"@TeemFollowBack @1109_2904 #teamfollowback twitter famous boy&gt;&gt;&gt; @Ricki_MINAJ &lt;&lt;&lt;","entities":{"urls":[],"hashtags":[{"text":"teamfollowback","indices":[27,42]}],"user_mentions":[{"indices":[0,15],"name":"Teem Follow Back","screen_name":"TeemFollowBack","id_str":"185188539","id":185188539},{"indices":[16,26],"name":"Aprilian Angel","screen_name":"1109_2904","id_str":"92217048","id":92217048},{"indices":[74,86],"name":"Ricky Johnson","screen_name":"Ricki_MINAJ","id_str":"51198602","id":51198602}]},"in_reply_to_screen_name":"TeemFollowBack","in_reply_to_status_id_str":"12405913709191168","place":null,"contributors":null,"retweet_count":null,"in_reply_to_status_id":12405913709191168,"in_reply_to_user_id_str":"185188539","source":"web","retweeted":false,"geo":null,"created_at":"Wed Dec 08 07:43:04 +0000 2010","truncated":false,"id_str":"12411825870077952","user":{"follow_request_sent":null,"following":null,"verified":false,"profile_sidebar_border_color":"65B0DA","show_all_inline_media":false,"geo_enabled":false,"description":"I LOVE SWEET BABY JESUS..FASHION IS MY LIFE..MUSIC IS NEXT..THEN FOOD, LOL MY LIFE IS MY BRAND,SO I DRESS LIKE IT!!","listed_count":18,"profile_background_tile":true,"profile_background_image_url":"http:\/\/a1.twimg.com\/profile_background_images\/20055732\/a2f270d4e7d605ac34e48d0fc454b_3701.jpg","profile_background_color":"642D8B","location":"NEW YORK RIHANNA WORLD","profile_use_background_image":true,"profile_text_color":"3D1957","followers_count":1822,"statuses_count":12985,"time_zone":"Mountain Time (US & Canada)","created_at":"Fri Jun 26 19:51:29 +0000 2009","friends_count":1990,"protected":false,"profile_image_url":"http:\/\/a2.twimg.com\/profile_images\/1170133326\/jess_and_ricki_normal.jpg","notifications":null,"profile_link_color":"FF0000","url":"http:\/\/www.blogtv.com\/People\/koolzone","name":"Ricky Johnson","id_str":"51198602","favourites_count":6,"screen_name":"Ricki_MINAJ","id":51198602,"contributors_enabled":false,"lang":"en","utc_offset":-25200,"profile_sidebar_fill_color":"7AC3EE"},"id":12411825870077952,"in_reply_to_user_id":185188539,"favorited":false},"retweeted":false,"geo":null,"created_at":"Wed Dec 08 07:43:23 +0000 2010","truncated":false,"id_str":"12411906035810304","user":{"follow_request_sent":null,"following":null,"verified":false,"profile_sidebar_border_color":"3fdbe3","show_all_inline_media":false,"geo_enabled":true,"description":"\u2665 I am 12 years old \u2665 Simple \u2665 Cool Guy \u2665 Stitch \u2665 Sanurians \u2665 Tasya \u2665 Boys \u2665 Follow me and I will folback, Just Mention Me \u2665 Aprilian Angel \u2665","listed_count":16,"profile_background_tile":false,"profile_background_image_url":"http:\/\/a3.twimg.com\/profile_background_images\/169085711\/4___.jpg","profile_background_color":"25646b","location":"Jakarta","profile_use_background_image":false,"profile_text_color":"2579b0","followers_count":613,"statuses_count":9079,"time_zone":"Jakarta","created_at":"Tue Nov 24 06:49:28 +0000 2009","friends_count":563,"protected":false,"profile_image_url":"http:\/\/a3.twimg.com\/profile_images\/1161334751\/75785_1659322691840_1500333081_1624686_3546893_n_normal.jpg","notifications":null,"profile_link_color":"40b892","url":null,"name":"Aprilian Angel","id_str":"92217048","favourites_count":27,"screen_name":"1109_2904","id":92217048,"contributors_enabled":false,"lang":"en","utc_offset":25200,"profile_sidebar_fill_color":"c3e1e3"},"id":12411906035810304,"in_reply_to_user_id":null,"favorited":false}
+{"coordinates":null,"text":"@naxvee ohhhh I DOOO :D","entities":{"urls":[],"user_mentions":[{"indices":[0,7],"name":"nax vee","screen_name":"naxvee","id_str":"22720749","id":22720749}],"hashtags":[]},"in_reply_to_screen_name":"naxvee","in_reply_to_status_id_str":"12411850935242752","place":null,"contributors":null,"retweet_count":0,"in_reply_to_status_id":12411850935242752,"in_reply_to_user_id_str":"22720749","source":"web","retweeted":false,"geo":null,"created_at":"Wed Dec 08 07:43:24 +0000 2010","truncated":false,"id_str":"12411910238502912","user":{"contributors_enabled":false,"following":null,"follow_request_sent":null,"verified":false,"profile_sidebar_border_color":"efff12","show_all_inline_media":false,"geo_enabled":false,"description":"i like to ponder. that is all.","profile_background_color":"760dff","location":"Straya","listed_count":5,"profile_background_tile":true,"profile_background_image_url":"http:\/\/a1.twimg.com\/profile_background_images\/124352628\/5576399.jpg","profile_text_color":"121eff","followers_count":145,"profile_use_background_image":true,"created_at":"Sun Feb 14 01:15:20 +0000 2010","protected":false,"profile_image_url":"http:\/\/a2.twimg.com\/profile_images\/1185036286\/Untitled_normal.png","statuses_count":3899,"notifications":null,"time_zone":"Hawaii","friends_count":146,"profile_link_color":"00ff00","url":"http:\/\/www.formspring.me\/lizzwilko","name":"I\u2665JohnnyDepp","id_str":"114068978","favourites_count":164,"screen_name":"TheLizzyEnd","id":114068978,"lang":"en","utc_offset":-36000,"profile_sidebar_fill_color":"ff0558"},"id":12411910238502912,"in_reply_to_user_id":22720749,"favorited":false}
+{"coordinates":null,"text":"#Nighttweeters hmu DM or txt &lt;3","entities":{"urls":[],"hashtags":[{"text":"Nighttweeters","indices":[0,14]}],"user_mentions":[]},"in_reply_to_screen_name":null,"in_reply_to_status_id_str":null,"place":null,"contributors":null,"retweet_count":0,"in_reply_to_status_id":null,"in_reply_to_user_id_str":null,"source":"web","retweeted":false,"geo":null,"created_at":"Wed Dec 08 07:43:24 +0000 2010","truncated":false,"id_str":"12411910242705408","user":{"follow_request_sent":null,"following":null,"verified":false,"profile_sidebar_border_color":"C0DEED","show_all_inline_media":false,"geo_enabled":false,"description":"Mexican|19|Raves|Electro,Dubstep,Trance|drinking|Working|Down To Earth|Straight Out|Girls|:) Txting|Webcam|Snakebites|\r\nSingle|Follow me & Ill Follow you :)","listed_count":5,"profile_background_tile":true,"profile_background_image_url":"http:\/\/a1.twimg.com\/profile_background_images\/130349966\/4638030806_55122db25e_o.jpg","profile_background_color":"C0DEED","location":"Fontana, Ca","profile_use_background_image":true,"profile_text_color":"333333","followers_count":250,"statuses_count":4189,"time_zone":"Alaska","created_at":"Tue Aug 03 05:28:53 +0000 2010","friends_count":463,"protected":false,"profile_image_url":"http:\/\/a1.twimg.com\/profile_images\/1184365797\/gothamcity-189-of-294_normal.png","notifications":null,"profile_link_color":"0084B4","url":"http:\/\/www.myspace.com\/fourlokoking","name":"Juan Felix","id_str":"174137258","favourites_count":0,"screen_name":"Lostboyyyy","id":174137258,"contributors_enabled":false,"lang":"en","utc_offset":-32400,"profile_sidebar_fill_color":"DDEEF6"},"id":12411910242705408,"in_reply_to_user_id":null,"favorited":false}
+{"coordinates":null,"text":"@amaeletronica  D'Baginyus : S.A.K.I.T LOL --&gt; RT oliiind: Hooo eksssss RT WilliamWilz: oliiind engga jelek :b http:\/\/boo.lol.vc\/lLfE8","entities":{"urls":[{"expanded_url":null,"indices":[114,137],"url":"http:\/\/boo.lol.vc\/lLfE8"}],"hashtags":[],"user_mentions":[{"indices":[0,14],"name":"anderson avila","screen_name":"amaeletronica","id_str":"73257249","id":73257249}]},"in_reply_to_screen_name":"amaeletronica","in_reply_to_status_id_str":null,"place":null,"contributors":null,"retweet_count":0,"in_reply_to_status_id":null,"in_reply_to_user_id_str":"73257249","source":"web","retweeted":false,"geo":null,"created_at":"Wed Dec 08 07:43:24 +0000 2010","truncated":false,"id_str":"12411910242697216","user":{"follow_request_sent":null,"following":null,"verified":false,"profile_sidebar_border_color":"C0DEED","show_all_inline_media":false,"geo_enabled":false,"description":null,"listed_count":0,"profile_background_tile":false,"profile_background_image_url":"http:\/\/s.twimg.com\/a\/1291318259\/images\/themes\/theme1\/bg.png","profile_background_color":"C0DEED","location":null,"profile_use_background_image":true,"profile_text_color":"333333","followers_count":4,"statuses_count":378,"time_zone":null,"created_at":"Sun Dec 05 17:31:14 +0000 2010","friends_count":0,"protected":false,"profile_image_url":"http:\/\/s.twimg.com\/a\/1291318259\/images\/default_profile_2_normal.png","notifications":null,"profile_link_color":"0084B4","url":null,"name":"irene aguilera","id_str":"223191796","favourites_count":0,"screen_name":"bunndeknalifa","id":223191796,"contributors_enabled":false,"lang":"en","utc_offset":null,"profile_sidebar_fill_color":"DDEEF6"},"id":12411910242697216,"in_reply_to_user_id":73257249,"favorited":false}
+{"coordinates":null,"text":"Haha ejiyek lia mainannya gombal sekarang hahaRT @_ameliahudayana: yoiii RT @vanyaau: Rerun extravaganza","entities":{"urls":[],"hashtags":[],"user_mentions":[{"indices":[49,65],"name":"Amelia Hudayana","screen_name":"_ameliahudayana","id_str":"162588680","id":162588680},{"indices":[76,84],"name":"vanya Beti La Venus","screen_name":"vanyaau","id_str":"65334621","id":65334621}]},"in_reply_to_screen_name":null,"in_reply_to_status_id_str":null,"place":null,"contributors":null,"retweet_count":0,"in_reply_to_status_id":null,"in_reply_to_user_id_str":null,"source":"\u003Ca href=\"https:\/\/dabr.mobi\" rel=\"nofollow\"\u003EE = mc\u00b2\u003C\/a\u003E","retweeted":false,"geo":null,"created_at":"Wed Dec 08 07:43:24 +0000 2010","truncated":false,"id_str":"12411910238511104","user":{"following":null,"listed_count":8,"profile_background_tile":true,"profile_background_image_url":"http:\/\/a3.twimg.com\/profile_background_images\/62088481\/cup_cakes.JPG","profile_sidebar_border_color":"7e3091","profile_use_background_image":true,"description":"260695, 15th, FH, ALFAJAR JHS, MUHAMMADIYAH SHS, #THRH's HEART, A PART OF X.3, jazz addict, #AnakGalau\u2665 beti la gondrong venus GREET: vanyaau@hot xoxo :*","statuses_count":10309,"time_zone":"Pacific Time (US & Canada)","friends_count":287,"profile_background_color":"fa197e","location":"Planet venus~ fairy world","profile_text_color":"e8099a","followers_count":255,"contributors_enabled":false,"created_at":"Thu Aug 13 10:32:49 +0000 2009","protected":false,"profile_image_url":"http:\/\/a3.twimg.com\/profile_images\/1176654063\/vanyac_normal.jpg","follow_request_sent":null,"verified":false,"notifications":null,"profile_link_color":"7135cc","url":"http:\/\/vanyaau.blogspot.com","name":"vanya Beti La Venus","id_str":"65334621","favourites_count":104,"screen_name":"vanyaau","id":65334621,"show_all_inline_media":false,"lang":"en","geo_enabled":false,"utc_offset":-28800,"profile_sidebar_fill_color":"d880f5"},"id":12411910238511104,"in_reply_to_user_id":null,"favorited":false}
+{"coordinates":null,"text":"Orange Soda.","entities":{"urls":[],"hashtags":[],"user_mentions":[]},"in_reply_to_screen_name":null,"in_reply_to_status_id_str":null,"place":null,"contributors":null,"retweet_count":0,"in_reply_to_status_id":null,"in_reply_to_user_id_str":null,"source":"web","retweeted":false,"geo":null,"created_at":"Wed Dec 08 07:43:24 +0000 2010","truncated":false,"id_str":"12411910255288320","user":{"following":null,"listed_count":23,"profile_background_tile":true,"profile_background_image_url":"http:\/\/a3.twimg.com\/profile_background_images\/179350469\/PacManTee.jpg","profile_sidebar_border_color":"badcad","profile_use_background_image":true,"description":"Deadly Robot love Owner. Lifestyle Blogger. Designer. Poet. Collector. Grandson.","statuses_count":56123,"time_zone":"Eastern Time (US & Canada)","friends_count":196,"profile_background_color":"919191","location":"Atlanta","profile_text_color":"333333","followers_count":716,"contributors_enabled":false,"created_at":"Mon May 04 22:27:05 +0000 2009","protected":false,"profile_image_url":"http:\/\/a2.twimg.com\/profile_images\/1180397702\/KevinDRL_normal.jpg","follow_request_sent":null,"verified":false,"notifications":null,"profile_link_color":"0a0a0a","url":"http:\/\/www.deadlyrobotlove.com\/","name":"K\u2665vin, The Robot.","id_str":"37777826","favourites_count":4,"screen_name":"deadlyrobotlove","id":37777826,"show_all_inline_media":false,"lang":"en","geo_enabled":false,"utc_offset":-18000,"profile_sidebar_fill_color":"686e6e"},"id":12411910255288320,"in_reply_to_user_id":null,"favorited":false}
+{"coordinates":null,"text":"@chiru_hms DMCSjp RT denamamoto: I'd swim across the world for you... lol joking, there are sharks in there. http:\/\/zry.m2r.ru\/HPOon","entities":{"urls":[{"expanded_url":null,"indices":[109,132],"url":"http:\/\/zry.m2r.ru\/HPOon"}],"user_mentions":[{"indices":[0,10],"name":"chiru","screen_name":"chiru_hms","id_str":"114779568","id":114779568}],"hashtags":[]},"in_reply_to_screen_name":"chiru_hms","in_reply_to_status_id_str":null,"place":null,"contributors":null,"retweet_count":0,"in_reply_to_status_id":null,"in_reply_to_user_id_str":"114779568","source":"web","retweeted":false,"geo":null,"created_at":"Wed Dec 08 07:43:24 +0000 2010","truncated":false,"id_str":"12411910259474432","user":{"follow_request_sent":null,"following":null,"verified":false,"profile_sidebar_border_color":"C0DEED","show_all_inline_media":false,"geo_enabled":false,"description":"","listed_count":0,"profile_background_tile":false,"profile_background_image_url":"http:\/\/s.twimg.com\/a\/1291318259\/images\/themes\/theme1\/bg.png","profile_background_color":"C0DEED","location":"","profile_use_background_image":true,"profile_text_color":"333333","followers_count":9,"statuses_count":575,"time_zone":null,"created_at":"Sun Dec 05 17:14:25 +0000 2010","friends_count":0,"protected":false,"profile_image_url":"http:\/\/a0.twimg.com\/profile_images\/1183205820\/twitterProfilePhoto_normal.jpg_normal.146","notifications":null,"profile_link_color":"0084B4","url":null,"name":"shanel thornton","id_str":"223186483","favourites_count":0,"screen_name":"frn_JBiebtrBR","id":223186483,"contributors_enabled":false,"lang":"en","utc_offset":null,"profile_sidebar_fill_color":"DDEEF6"},"id":12411910259474432,"in_reply_to_user_id":114779568,"favorited":false}
+{"coordinates":null,"text":"\u039a\u03b1\u03bb\u03b7\u03bc\u03b5\u03c1\u03b1 \u03ba\u03b1\u03b9 \u03c5\u03c0\u03bf\u03bc\u03bf\u03bd\u03b7! \u039f\u03c3\u03bf\u03b9 \u03b5\u03b9\u03c3\u03c4\u03b5 \u03ba\u03bf\u03bd\u03c4\u03b1 \u03bc\u03b7\u03bd \u03c0\u03b1\u03c1\u03b5\u03c4\u03b5 \u03b1\u03c5\u03c4\u03bf\u03ba\u03b9\u03bd\u03b7\u03c4\u03bf, \u03c0\u03bf\u03b4\u03b9\u03b1 \u03b7 \u03c0\u03bf\u03b4\u03b7\u03bb\u03b1\u03c4\u03bf..!","entities":{"urls":[],"hashtags":[],"user_mentions":[]},"in_reply_to_screen_name":null,"in_reply_to_status_id_str":null,"place":null,"contributors":null,"retweet_count":0,"in_reply_to_status_id":null,"in_reply_to_user_id_str":null,"source":"\u003Ca href=\"http:\/\/twitter.com\/\" rel=\"nofollow\"\u003ETwitter for iPhone\u003C\/a\u003E","retweeted":false,"geo":null,"created_at":"Wed Dec 08 07:43:24 +0000 2010","truncated":false,"id_str":"12411910234308608","user":{"following":null,"listed_count":10,"profile_background_tile":true,"profile_background_image_url":"http:\/\/a3.twimg.com\/profile_background_images\/167969569\/bodypaint_floyd.jpg","profile_sidebar_border_color":"829D5E","profile_use_background_image":true,"description":"Summer Dream!","statuses_count":1932,"time_zone":"Athens","friends_count":240,"profile_background_color":"352726","location":"Currently Lost","profile_text_color":"3E4415","followers_count":235,"contributors_enabled":false,"created_at":"Thu Oct 28 22:40:07 +0000 2010","protected":false,"profile_image_url":"http:\/\/a3.twimg.com\/profile_images\/1154617775\/IMG_3032_normal.JPG","follow_request_sent":null,"verified":false,"notifications":null,"profile_link_color":"0c1bc7","url":null,"name":"Psychophski","id_str":"209295433","favourites_count":33,"screen_name":"Psychophski","id":209295433,"show_all_inline_media":false,"lang":"en","geo_enabled":true,"utc_offset":7200,"profile_sidebar_fill_color":"336bcc"},"id":12411910234308608,"in_reply_to_user_id":null,"favorited":false}
+{"coordinates":{"coordinates":[0,0],"type":"Point"},"text":"to protest or not to protest...that is the question!","entities":{"urls":[],"hashtags":[],"user_mentions":[]},"in_reply_to_screen_name":null,"in_reply_to_status_id_str":null,"place":null,"contributors":null,"retweet_count":null,"in_reply_to_status_id":null,"in_reply_to_user_id_str":null,"source":"\u003Ca href=\"http:\/\/www.tweetdeck.com\" rel=\"nofollow\"\u003ETweetDeck\u003C\/a\u003E","retweeted":false,"geo":{"coordinates":[0,0],"type":"Point"},"created_at":"Wed Dec 08 07:43:24 +0000 2010","truncated":false,"id_str":"12411910251085824","user":{"follow_request_sent":null,"following":null,"verified":false,"profile_sidebar_border_color":"aef5fa","show_all_inline_media":false,"geo_enabled":true,"description":"you'll never regret giving it your best, so go on and do it. ","listed_count":1,"profile_background_tile":false,"profile_background_image_url":"http:\/\/s.twimg.com\/a\/1291750721\/images\/themes\/theme1\/bg.png","profile_background_color":"214542","location":"Washington","profile_use_background_image":true,"profile_text_color":"739e9f","followers_count":32,"statuses_count":516,"time_zone":null,"created_at":"Wed Sep 15 06:21:58 +0000 2010","friends_count":85,"protected":false,"profile_image_url":"http:\/\/a2.twimg.com\/profile_images\/1155612338\/26_normal.jpg","notifications":null,"profile_link_color":"b4d9ad","url":null,"name":"Sarah Jane Burns","id_str":"190941250","favourites_count":0,"screen_name":"sarahjb93","id":190941250,"contributors_enabled":false,"lang":"en","utc_offset":null,"profile_sidebar_fill_color":"3b615d"},"id":12411910251085824,"in_reply_to_user_id":null,"favorited":false}
+{"coordinates":null,"text":"@soyFayo me puse peor hoy esta semana quiero recuperarme para que no se me complique u.u","entities":{"urls":[],"user_mentions":[{"indices":[0,8],"name":"Fayo","screen_name":"soyFayo","id_str":"72220601","id":72220601}],"hashtags":[]},"in_reply_to_screen_name":"soyFayo","in_reply_to_status_id_str":"12411227426787328","place":null,"contributors":null,"retweet_count":0,"in_reply_to_status_id":12411227426787328,"in_reply_to_user_id_str":"72220601","source":"\u003Ca href=\"http:\/\/twittme.mobi\" rel=\"nofollow\"\u003Etwittme.mobi\u003C\/a\u003E","retweeted":false,"geo":null,"created_at":"Wed Dec 08 07:43:24 +0000 2010","truncated":false,"id_str":"12411910230118400","user":{"follow_request_sent":null,"following":null,"verified":false,"profile_sidebar_border_color":"fff8ad","show_all_inline_media":false,"geo_enabled":false,"description":"ESCRITORAILUSTRADORA, CARTONISTA,FISICA-MATEMATICAS,futura vulcanologa. Y ENAMORADA D LA VIDA Y SOY 100%UNAM Hija adoptiva de @marinataibo3 y @monicamateosV","listed_count":158,"profile_background_tile":false,"profile_background_image_url":"http:\/\/a1.twimg.com\/profile_background_images\/137229680\/Fenix_ohen_small.jpg","profile_background_color":"FFF04D","location":"estado de Ebriedad M\u00e9xico ","profile_use_background_image":true,"profile_text_color":"333333","followers_count":2066,"statuses_count":60566,"time_zone":"Mexico City","created_at":"Sun Nov 15 02:51:14 +0000 2009","friends_count":1890,"protected":false,"profile_image_url":"http:\/\/a1.twimg.com\/profile_images\/1184479641\/imagesCANA8G7F_normal.jpg","notifications":null,"profile_link_color":"0099CC","url":"http:\/\/cienciasartes.blogspot.com\/  ","name":"Luc\u00edaVillarrealLuna","id_str":"90079038","favourites_count":39,"screen_name":"pokemonera","id":90079038,"contributors_enabled":false,"lang":"es","utc_offset":-21600,"profile_sidebar_fill_color":"f6ffd1"},"id":12411910230118400,"in_reply_to_user_id":72220601,"favorited":false}
+{"coordinates":null,"text":"@bonita_Niyah she gotta txt & tell kuz she dnt have a fb she da shy type so idk but she gon have 2 tell soon or lata","entities":{"urls":[],"user_mentions":[{"indices":[0,13],"name":"\ue32d. . . \ue144","screen_name":"bonita_Niyah","id_str":"123750163","id":123750163}],"hashtags":[]},"in_reply_to_screen_name":"bonita_Niyah","in_reply_to_status_id_str":"12408747867508737","place":null,"contributors":null,"retweet_count":0,"in_reply_to_status_id":12408747867508737,"in_reply_to_user_id_str":"123750163","source":"\u003Ca href=\"http:\/\/www.ubertwitter.com\/bb\/download.php\" rel=\"nofollow\"\u003E\u00dcberTwitter\u003C\/a\u003E","retweeted":false,"geo":null,"created_at":"Wed Dec 08 07:43:24 +0000 2010","truncated":false,"id_str":"12411910255284224","user":{"contributors_enabled":false,"following":null,"follow_request_sent":null,"verified":false,"profile_sidebar_border_color":"C0DEED","show_all_inline_media":false,"geo_enabled":true,"description":"I'M A DAUGHTER..A BESTFRIEND..A FRIEND..A SISTER..A COUSIN..A AUNTIE..A FIGHTER..A LOVER..A SINNER..A SAINT..I WILL TELL YOU 1 THING IM NOT A DOORMAT.. ","profile_background_color":"C0DEED","location":"Nwk NJ","listed_count":0,"profile_background_tile":false,"profile_background_image_url":"http:\/\/s.twimg.com\/a\/1291318259\/images\/themes\/theme1\/bg.png","profile_text_color":"333333","followers_count":30,"profile_use_background_image":true,"created_at":"Fri Aug 13 03:42:52 +0000 2010","protected":false,"profile_image_url":"http:\/\/a0.twimg.com\/profile_images\/1101800168\/x2_24cd30d_normal.jpg","statuses_count":715,"notifications":null,"time_zone":"Eastern Time (US & Canada)","friends_count":157,"profile_link_color":"0084B4","url":null,"name":"Iesha Bankston","id_str":"177814999","favourites_count":0,"screen_name":"Pretty_Esh_B","id":177814999,"lang":"en","utc_offset":-18000,"profile_sidebar_fill_color":"DDEEF6"},"id":12411910255284224,"in_reply_to_user_id":123750163,"favorited":false}
+{"coordinates":null,"text":"galau ga enek tebengan hahaha RT @ridowidi: galau kok jek ttp twitteranRT @anityaardiyani: nambah2i galauku wae RT... http:\/\/mtw.tl\/lf6idh","entities":{"urls":[{"expanded_url":null,"indices":[118,138],"url":"http:\/\/mtw.tl\/lf6idh"}],"hashtags":[],"user_mentions":[{"indices":[33,42],"name":"ridho widi","screen_name":"ridowidi","id_str":"216939950","id":216939950},{"indices":[74,89],"name":"anitya ardiyani p","screen_name":"anityaardiyani","id_str":"77723022","id":77723022}]},"in_reply_to_screen_name":null,"in_reply_to_status_id_str":null,"place":null,"contributors":null,"retweet_count":0,"in_reply_to_status_id":null,"in_reply_to_user_id_str":null,"source":"\u003Ca href=\"http:\/\/m.tweete.net\" rel=\"nofollow\"\u003Em.tweete.net\u003C\/a\u003E","retweeted":false,"geo":null,"created_at":"Wed Dec 08 07:43:25 +0000 2010","truncated":false,"id_str":"12411914441195520","user":{"follow_request_sent":null,"following":null,"verified":false,"profile_sidebar_border_color":"C0DEED","show_all_inline_media":true,"geo_enabled":true,"description":"","listed_count":0,"profile_background_tile":true,"profile_background_image_url":"http:\/\/a1.twimg.com\/profile_background_images\/176784334\/Shichibukai.jpg","profile_background_color":"C0DEED","location":"Indonesia","profile_use_background_image":true,"profile_text_color":"333333","followers_count":32,"statuses_count":433,"time_zone":"Jakarta","created_at":"Tue Nov 02 11:14:29 +0000 2010","friends_count":53,"protected":false,"profile_image_url":"http:\/\/a3.twimg.com\/profile_images\/1179237591\/Image026_normal.jpg","notifications":null,"profile_link_color":"0084B4","url":null,"name":"Irwan Syah","id_str":"211117875","favourites_count":0,"screen_name":"irwan_akt","id":211117875,"contributors_enabled":false,"lang":"en","utc_offset":25200,"profile_sidebar_fill_color":"DDEEF6"},"id":12411914441195520,"in_reply_to_user_id":null,"favorited":false}
+{"coordinates":null,"text":"@nanafatemn7 \u77e5\u3089\u306d\u3048\u3088\uff57\uff57\uff57\u3044\u3044\u3058\u3083\u3093\u3002\u544a\u3063\u3061\u3083\u3048\uff01","entities":{"urls":[],"hashtags":[],"user_mentions":[{"indices":[0,12],"name":"\u306a\u306a\u30d5\u30a7\u30a4! \u795d\uff01\u5948\u3005\u3055\u3093\u7d05\u767d\u51fa\u5834\uff01","screen_name":"nanafatemn7","id_str":"155566960","id":155566960}]},"in_reply_to_screen_name":"nanafatemn7","in_reply_to_status_id_str":"12411662476775424","place":null,"contributors":null,"retweet_count":0,"in_reply_to_status_id":12411662476775424,"in_reply_to_user_id_str":"155566960","source":"web","retweeted":false,"geo":null,"created_at":"Wed Dec 08 07:43:25 +0000 2010","truncated":false,"id_str":"12411914445393920","user":{"follow_request_sent":null,"following":null,"verified":false,"profile_sidebar_border_color":"FFFFFF","show_all_inline_media":false,"geo_enabled":false,"description":"\u5909\u614b\u3067\u3059\u3002\u53d6\u308a\u6562\u3048\u305a\u9a12\u3044\u3067\u308b\u91ce\u90ce\u3067\u3059\u3002\u4e2d\uff13\u3002\u6b63\u76f4\u3001\u30a8\u30ed\u3044\u306e\u306f\u4ed5\u65b9\u306a\u3044\u3068\u601d\u3063\u3066\u307e\u3059\u3002\r\n\r\n\uff12\u6b21\u5143\u306f\u305d\u308c\u306a\u308a\u306b\u306f\u7406\u89e3\u51fa\u6765\u307e\u3059\u304c\u2026\r\n\r\n\u30dd\u30b1\u30e2\u30f3\u3084\u3063\u3066\u307e\u3059\r\n\r\n\r\n\u75db\u3044\u3067\u3059\u3051\u308c\u3069\r\n\r\n\u3088\u308d\u3057\u304f\u304a\u9858\u3044\u3057\u307e\u3059(\u7206)","listed_count":0,"profile_background_tile":false,"profile_background_image_url":"http:\/\/a1.twimg.com\/profile_background_images\/124093074\/bg.jpg","profile_background_color":"000000","location":"\u30a8\u30f3\u30b8\u30e5\u30b7\u30c6\u30a3","profile_use_background_image":true,"profile_text_color":"b344b3","followers_count":24,"statuses_count":1547,"time_zone":"Osaka","created_at":"Fri Mar 19 08:48:17 +0000 2010","friends_count":55,"protected":false,"profile_image_url":"http:\/\/a1.twimg.com\/profile_images\/1182098397\/100813_1246340001_normal.jpg","notifications":null,"profile_link_color":"CC3300","url":null,"name":"\u30b7\u30fc\u30c9\u6a29\u0444","id_str":"124404959","favourites_count":2,"screen_name":"Sheadken","id":124404959,"contributors_enabled":false,"lang":"ja","utc_offset":32400,"profile_sidebar_fill_color":"F7DA93"},"id":12411914445393920,"in_reply_to_user_id":155566960,"favorited":false}
+{"coordinates":null,"text":"\u7720\u3044\u30fb\u30fb\u30fb","entities":{"urls":[],"user_mentions":[],"hashtags":[]},"in_reply_to_screen_name":null,"in_reply_to_status_id_str":null,"place":null,"contributors":null,"retweet_count":0,"in_reply_to_status_id":null,"in_reply_to_user_id_str":null,"source":"web","retweeted":false,"geo":null,"created_at":"Wed Dec 08 07:43:25 +0000 2010","truncated":false,"id_str":"12411914437009408","user":{"follow_request_sent":null,"following":null,"verified":false,"profile_sidebar_border_color":"ffcb47","show_all_inline_media":false,"geo_enabled":false,"description":"WORKING\u3001\u30dc\u30ab\u30ed\u3001\u30dc\u30fc\u30dc\u30dc\u3001DRRR\u597d\u304d\u3067\u3059\uff57(\u00b4\u03c9\uff40)","listed_count":0,"profile_background_tile":true,"profile_background_image_url":"http:\/\/a1.twimg.com\/profile_background_images\/179023784\/14533769_p9.png","profile_background_color":"ffd4ff","location":"\u5922\u306e\u4e2d\u266c","profile_use_background_image":true,"profile_text_color":"089629","followers_count":15,"statuses_count":465,"time_zone":"Hawaii","created_at":"Wed Oct 27 11:15:34 +0000 2010","friends_count":38,"protected":false,"profile_image_url":"http:\/\/a3.twimg.com\/profile_images\/1161025943\/magnet_normal.jpg","notifications":null,"profile_link_color":"ff2499","url":"http:\/\/ameblo.jp\/work-ing\/","name":"\u5922\u65e5\u8a18\u266a","id_str":"208488936","favourites_count":0,"screen_name":"yumenonikki327","id":208488936,"contributors_enabled":false,"lang":"ja","utc_offset":-36000,"profile_sidebar_fill_color":"fdff82"},"id":12411914437009408,"in_reply_to_user_id":null,"favorited":false}
+{"coordinates":null,"text":"14.79 euro valt nog wel mee voor 8 dagen tijd","entities":{"urls":[],"hashtags":[],"user_mentions":[]},"in_reply_to_screen_name":null,"in_reply_to_status_id_str":null,"place":null,"contributors":null,"retweet_count":0,"in_reply_to_status_id":null,"in_reply_to_user_id_str":null,"source":"\u003Ca href=\"http:\/\/www.tweetdeck.com\" rel=\"nofollow\"\u003ETweetDeck\u003C\/a\u003E","retweeted":false,"geo":null,"created_at":"Wed Dec 08 07:43:25 +0000 2010","truncated":false,"id_str":"12411914457980928","user":{"following":null,"listed_count":0,"profile_background_tile":false,"profile_background_image_url":"http:\/\/s.twimg.com\/a\/1290538325\/images\/themes\/theme5\/bg.gif","profile_sidebar_border_color":"829D5E","profile_use_background_image":true,"description":"- -","statuses_count":3291,"time_zone":"Amsterdam","friends_count":71,"profile_background_color":"352726","location":"Vlaardingen","profile_text_color":"3E4415","followers_count":67,"contributors_enabled":false,"created_at":"Mon Nov 23 07:34:26 +0000 2009","protected":false,"profile_image_url":"http:\/\/a1.twimg.com\/profile_images\/1160466321\/Foto0850_normal.jpg","follow_request_sent":null,"verified":false,"notifications":null,"profile_link_color":"D02B55","url":"http:\/\/www.priscillaa15.hyves.nl","name":"Priscilla v Vliet","id_str":"91959124","favourites_count":1,"screen_name":"xpriscil","id":91959124,"show_all_inline_media":false,"lang":"en","geo_enabled":false,"utc_offset":3600,"profile_sidebar_fill_color":"99CC33"},"id":12411914457980928,"in_reply_to_user_id":null,"favorited":false}
+{"coordinates":null,"text":"Is This A Serious Question? -___- (iamskippytv) RT @JBooqiie_DEC20 @iamSkippyTV what's ya oovoo","entities":{"hashtags":[],"urls":[],"user_mentions":[{"indices":[51,66],"name":"Joshua && Yhu ?!","screen_name":"JBooqiie_DEC20","id_str":"89241118","id":89241118},{"indices":[67,79],"name":"Skippy MaKenzi","screen_name":"iamSkippyTV","id_str":"30615809","id":30615809}]},"in_reply_to_screen_name":null,"in_reply_to_status_id_str":null,"place":null,"contributors":null,"retweet_count":0,"in_reply_to_status_id":null,"in_reply_to_user_id_str":null,"source":"\u003Ca href=\"http:\/\/mobile.twitter.com\" rel=\"nofollow\"\u003EMobile Web\u003C\/a\u003E","retweeted":false,"geo":null,"created_at":"Wed Dec 08 07:43:25 +0000 2010","truncated":false,"id_str":"12411914453782528","user":{"following":null,"listed_count":22,"profile_background_tile":true,"profile_background_image_url":"http:\/\/a1.twimg.com\/profile_background_images\/178920818\/iamskippytv.jpg","profile_sidebar_border_color":"eeeeee","profile_use_background_image":true,"description":"Youtube Video Blogger, Twitter Addict, Socialist, SKIPPY \u2665's BOYS! #TeamTaurus \u2649","statuses_count":36360,"time_zone":"Central Time (US & Canada)","friends_count":97,"profile_background_color":"3b3c3d","location":"CottenCandy & Rainbow Field","profile_text_color":"121112","followers_count":471,"contributors_enabled":false,"created_at":"Sun Apr 12 06:41:34 +0000 2009","protected":false,"profile_image_url":"http:\/\/a1.twimg.com\/profile_images\/1183274157\/IMG00169-20101205-0211_normal.jpg","follow_request_sent":null,"verified":false,"notifications":null,"profile_link_color":"889494","url":"http:\/\/itsmyurls.com\/skippy","name":"Skippy MaKenzi","id_str":"30615809","favourites_count":117,"screen_name":"iamSkippyTV","id":30615809,"show_all_inline_media":false,"lang":"en","geo_enabled":false,"utc_offset":-21600,"profile_sidebar_fill_color":"efefef"},"id":12411914453782528,"in_reply_to_user_id":null,"favorited":false}
+{"coordinates":null,"text":"nyasar gak yak?","entities":{"urls":[],"user_mentions":[],"hashtags":[]},"in_reply_to_screen_name":null,"in_reply_to_status_id_str":null,"place":null,"contributors":null,"retweet_count":0,"in_reply_to_status_id":null,"in_reply_to_user_id_str":null,"source":"\u003Ca href=\"http:\/\/202.153.132.152\" rel=\"nofollow\"\u003EHP_Esia\u003C\/a\u003E","retweeted":false,"geo":null,"created_at":"Wed Dec 08 07:43:25 +0000 2010","truncated":false,"id_str":"12411914428616705","user":{"follow_request_sent":null,"following":null,"verified":false,"profile_sidebar_border_color":"C0DEED","show_all_inline_media":false,"geo_enabled":false,"description":"be my self :)","listed_count":0,"profile_background_tile":false,"profile_background_image_url":"http:\/\/s.twimg.com\/a\/1291064993\/images\/themes\/theme1\/bg.png","profile_background_color":"C0DEED","location":"","profile_use_background_image":true,"profile_text_color":"333333","followers_count":31,"statuses_count":875,"time_zone":"Pacific Time (US & Canada)","created_at":"Tue Sep 21 08:36:25 +0000 2010","friends_count":19,"protected":false,"profile_image_url":"http:\/\/a1.twimg.com\/profile_images\/1161524757\/IMG8943A_normal.jpg","notifications":null,"profile_link_color":"0084B4","url":null,"name":"Nnisa Lutfi Zuldah","id_str":"193220237","favourites_count":1,"screen_name":"zuldannisa","id":193220237,"contributors_enabled":false,"lang":"en","utc_offset":-28800,"profile_sidebar_fill_color":"DDEEF6"},"id":12411914428616705,"in_reply_to_user_id":null,"favorited":false}
+{"coordinates":null,"text":"@bayfm78 \u3046\u3093\u3001\u307e\u3041\u305d\u3046\u89e3\u91c8\u3059\u308b\u306a\u3089\u305d\u308c\u3067\u3082\u3044\u3044\u3093\u3058\u3083\u306a\u3044\u3002","entities":{"urls":[],"user_mentions":[{"indices":[0,8],"name":"\u304b\u305a\u304f\u3093\u3001\u3075\u3049\u3048\u3070","screen_name":"bayfm78","id_str":"21861792","id":21861792}],"hashtags":[]},"in_reply_to_screen_name":"bayfm78","in_reply_to_status_id_str":"12409691430715392","place":null,"contributors":null,"retweet_count":0,"in_reply_to_status_id":12409691430715392,"in_reply_to_user_id_str":"21861792","source":"\u003Ca href=\"http:\/\/twtr.jp\" rel=\"nofollow\"\u003EKeitai Web\u003C\/a\u003E","retweeted":false,"geo":null,"created_at":"Wed Dec 08 07:43:25 +0000 2010","truncated":false,"id_str":"12411914449588224","user":{"follow_request_sent":null,"following":null,"verified":false,"profile_sidebar_border_color":"C0DEED","show_all_inline_media":false,"geo_enabled":false,"description":"NAME:FENNEL SP:\u5341\u6bb5 ID:6294-9963 mixi\u30fbpixiv:\u5efb\u7409 mixi\u306f\u97f3\u30b2\u30fc\u30de\u30fc\u3057\u304b\u627f\u8a8d\u3057\u307e\u305b\u3093","listed_count":3,"profile_background_tile":false,"profile_background_image_url":"http:\/\/s.twimg.com\/a\/1291661299\/images\/themes\/theme1\/bg.png","profile_background_color":"C0DEED","location":"","profile_use_background_image":true,"profile_text_color":"333333","followers_count":32,"statuses_count":760,"time_zone":"Tokyo","created_at":"Tue Feb 02 13:38:00 +0000 2010","friends_count":27,"protected":false,"profile_image_url":"http:\/\/a3.twimg.com\/profile_images\/1174879155\/101116_1351_01000100010002_normal.jpg","notifications":null,"profile_link_color":"0084B4","url":null,"name":"\u3075\u3047\u3093\u306d\u308b","id_str":"110701310","favourites_count":0,"screen_name":"fennel62949963","id":110701310,"contributors_enabled":false,"lang":"ja","utc_offset":32400,"profile_sidebar_fill_color":"DDEEF6"},"id":12411914449588224,"in_reply_to_user_id":21861792,"favorited":false}
+{"coordinates":null,"text":"RT @mrkie: RT @divamayday: 3daagse staking tnt is begonnen #geenrekeningen","entities":{"urls":[],"hashtags":[{"text":"geenrekeningen","indices":[59,74]}],"user_mentions":[{"indices":[3,9],"name":"Marky Mark","screen_name":"mrkie","id_str":"26185044","id":26185044},{"indices":[14,25],"name":"mayday","screen_name":"divamayday","id_str":"47942511","id":47942511}]},"in_reply_to_screen_name":null,"in_reply_to_status_id_str":null,"place":null,"contributors":null,"retweet_count":1,"in_reply_to_status_id":null,"in_reply_to_user_id_str":null,"source":"web","retweeted_status":{"coordinates":null,"text":"RT @divamayday: 3daagse staking tnt is begonnen #geenrekeningen","entities":{"urls":[],"hashtags":[{"text":"geenrekeningen","indices":[48,63]}],"user_mentions":[{"indices":[3,14],"name":"mayday","screen_name":"divamayday","id_str":"47942511","id":47942511}]},"in_reply_to_screen_name":null,"in_reply_to_status_id_str":null,"place":null,"contributors":null,"retweet_count":1,"in_reply_to_status_id":null,"in_reply_to_user_id_str":null,"source":"\u003Ca href=\"http:\/\/motionobj.com\/simplytweet\" rel=\"nofollow\"\u003ESimplyTweet\u003C\/a\u003E","retweeted":false,"geo":null,"created_at":"Wed Dec 08 05:09:22 +0000 2010","truncated":false,"id_str":"12373147395301376","user":{"follow_request_sent":null,"following":null,"verified":false,"profile_sidebar_border_color":"BDDCAD","show_all_inline_media":true,"geo_enabled":false,"description":"Bodybuilding by obsession, Hairstylist by profession..... | '78 | iPhone | iMac | Las Vegas | Uncle | Brother | Son | Frienemy |","listed_count":2,"profile_background_tile":false,"profile_background_image_url":"http:\/\/s.twimg.com\/a\/1290123564\/images\/themes\/theme16\/bg.gif","profile_background_color":"9AE4E8","location":"South Holland, Netherlands","profile_use_background_image":true,"profile_text_color":"333333","followers_count":152,"statuses_count":13146,"time_zone":"Amsterdam","created_at":"Tue Mar 24 05:30:55 +0000 2009","friends_count":146,"protected":false,"profile_image_url":"http:\/\/a3.twimg.com\/profile_images\/1160078091\/IMG_0008_normal.JPG","notifications":null,"profile_link_color":"0084B4","url":null,"name":"Marky Mark","id_str":"26185044","favourites_count":176,"screen_name":"mrkie","id":26185044,"contributors_enabled":false,"lang":"en","utc_offset":3600,"profile_sidebar_fill_color":"DDFFCC"},"id":12373147395301376,"in_reply_to_user_id":null,"favorited":false},"retweeted":false,"geo":null,"created_at":"Wed Dec 08 07:43:25 +0000 2010","truncated":false,"id_str":"12411914445398016","user":{"follow_request_sent":null,"following":null,"verified":false,"profile_sidebar_border_color":"C0DEED","show_all_inline_media":false,"geo_enabled":false,"description":"","listed_count":0,"profile_background_tile":false,"profile_background_image_url":"http:\/\/a3.twimg.com\/profile_background_images\/127910069\/mooi.jpg","profile_background_color":"C0DEED","location":"Alphen aan den Rijn","profile_use_background_image":true,"profile_text_color":"333333","followers_count":14,"statuses_count":647,"time_zone":null,"created_at":"Thu Jun 10 10:59:43 +0000 2010","friends_count":26,"protected":false,"profile_image_url":"http:\/\/a2.twimg.com\/profile_images\/976722090\/KepCom-1412_normal.jpg","notifications":null,"profile_link_color":"0084B4","url":"http:\/\/sbarlingen.hyves.nl","name":"Sigrid van Barlingen","id_str":"154100166","favourites_count":0,"screen_name":"sbarlingen","id":154100166,"contributors_enabled":false,"lang":"en","utc_offset":null,"profile_sidebar_fill_color":"DDEEF6"},"id":12411914445398016,"in_reply_to_user_id":null,"favorited":false}
+{"coordinates":null,"text":"semangatttt,,,semngarr...","entities":{"urls":[],"hashtags":[],"user_mentions":[]},"in_reply_to_screen_name":null,"in_reply_to_status_id_str":null,"place":null,"contributors":null,"retweet_count":0,"in_reply_to_status_id":null,"in_reply_to_user_id_str":null,"source":"web","retweeted":false,"geo":null,"created_at":"Wed Dec 08 07:43:26 +0000 2010","truncated":false,"id_str":"12411918614532097","user":{"follow_request_sent":null,"following":null,"verified":false,"profile_sidebar_border_color":"085982","show_all_inline_media":false,"geo_enabled":false,"description":"nice girl :D","listed_count":0,"profile_background_tile":true,"profile_background_image_url":"http:\/\/a1.twimg.com\/profile_background_images\/178686370\/25390_1148602295676_1846165700_287303_5835946_n.jpg","profile_background_color":"004a82","location":"","profile_use_background_image":true,"profile_text_color":"095aab","followers_count":63,"statuses_count":859,"time_zone":"Alaska","created_at":"Tue Oct 12 12:39:08 +0000 2010","friends_count":281,"protected":false,"profile_image_url":"http:\/\/a1.twimg.com\/profile_images\/1182960469\/k_normal.jpg","notifications":null,"profile_link_color":"17a1eb","url":null,"name":"Reski Amelia","id_str":"201698354","favourites_count":1,"screen_name":"kikotkikota","id":201698354,"contributors_enabled":false,"lang":"en","utc_offset":-32400,"profile_sidebar_fill_color":"6b1b10"},"id":12411918614532097,"in_reply_to_user_id":null,"favorited":false}
+{"coordinates":null,"text":"\u30de\u30b8\u9b3c\u755c RT @321waltz: 5\u6708\u304c\u30aa\u30fc\u30e9\u30b9\u306a\u306e\u306b\u6765\u9031\u672b\u307e\u3067\u306b\u632f\u308a\u8fbc\u307e\u305b\u308b\u4e8b\u52d9\u6240\u30de\u30b8\u9b3c\u755c \uff1eP\u69d8\u30bd\u30ed\u30b3\u30f3","entities":{"urls":[],"hashtags":[],"user_mentions":[{"indices":[8,17],"name":"\u4e00\u4e8c\u4e09\uff08\u308f\u308b\u3064\uff09","screen_name":"321waltz","id_str":"67910402","id":67910402}]},"in_reply_to_screen_name":null,"in_reply_to_status_id_str":null,"place":null,"contributors":null,"retweet_count":0,"in_reply_to_status_id":null,"in_reply_to_user_id_str":null,"source":"\u003Ca href=\"http:\/\/tabtter.jp\" rel=\"nofollow\"\u003E\u30bf\u30d6\u30c3\u30bf\u30fc\u003C\/a\u003E","retweeted":false,"geo":null,"created_at":"Wed Dec 08 07:43:26 +0000 2010","truncated":false,"id_str":"12411918614532096","user":{"following":null,"listed_count":16,"profile_background_tile":true,"profile_background_image_url":"http:\/\/a3.twimg.com\/profile_background_images\/160986641\/tumblr_l9vvhnwKu81qc006io1_500.jpg","profile_sidebar_border_color":"5ED4DC","profile_use_background_image":true,"description":"R23*U\u597d\u304d\uff9b\uff78\uff9d\u62c5*NSKD\u306f\u9752\u6625*\uff7c\uff79\uff9e\u3082\u597d\u304d\uff7c\uff9e\uff6c\uff9d*\u3084\u3076\u3072\u304b\u306f\u6b63\u7fa9*\u4f0a\u91ce\u5c3e\u541b\u306f\u7652\u3057*not\u4e8b\u52d9\u6240\u62c5\/\u9ebb\u91cc\u5b50\u69d8\u795e\u63a8\u3057*\uff82\uff72\uff9d\uff80\uff9c\uff70\u63a8\u3057\/\u6c34\u6a39\u5948\u3005\u69d8\u656c\u611b\/\uff8c\uff6b\uff9b\uff70\uff65\uff98\uff91\uff65RT\uff65\uff98\uff8c\uff9f\u306f\u304a\u6c17\u8efd\u306b\uff65\u4f46\u3057\u304b\u306a\u308a\uff73\uff7b\uff9e\uff72\u306e\u3067\u8981\u6ce8\u610f\/\u4e3b\u306b\u5e73\u65e5\u663c\u9593\u306b\u6d3b\u52d5\/\u5fc5\u8981\u306b\u5fdc\u3058\u3066\uff8c\uff9e\uff9b\uff6f\uff78\u3057\u305f\u308a\u3057\u307e\u3059\/\u88cf\u8d64\u2192jasmine_yellow","statuses_count":16955,"time_zone":"Tokyo","friends_count":97,"profile_background_color":"0099B9","location":"\u307b\u307c\u795e\u5948\u5ddd","profile_text_color":"3C3940","followers_count":196,"contributors_enabled":false,"created_at":"Tue Mar 24 08:10:51 +0000 2009","protected":false,"profile_image_url":"http:\/\/a3.twimg.com\/profile_images\/1180674943\/imageCASN4VYP_normal.jpg","follow_request_sent":null,"verified":false,"notifications":null,"profile_link_color":"00a3b8","url":null,"name":"\u3042\u3063\u304d\u30fc\u306a(\uff65\uff40-\u00b4)","id_str":"26199234","favourites_count":1131,"screen_name":"kmdakn","id":26199234,"show_all_inline_media":false,"lang":"ja","geo_enabled":false,"utc_offset":32400,"profile_sidebar_fill_color":"95E8EC"},"id":12411918614532096,"in_reply_to_user_id":null,"favorited":false}
+{"coordinates":null,"text":"pending intan maharani RT @soalCERITA: Nama Gebetan-mu Sewaktu SD? #MasaSekolah :)","entities":{"urls":[],"hashtags":[{"text":"MasaSekolah","indices":[67,79]}],"user_mentions":[{"indices":[26,37],"name":"Soal Cerita","screen_name":"soalCERITA","id_str":"186345369","id":186345369}]},"in_reply_to_screen_name":null,"in_reply_to_status_id_str":null,"place":null,"contributors":null,"retweet_count":0,"in_reply_to_status_id":null,"in_reply_to_user_id_str":null,"source":"\u003Ca href=\"http:\/\/m.tweete.net\" rel=\"nofollow\"\u003Em.tweete.net\u003C\/a\u003E","retweeted":false,"geo":null,"created_at":"Wed Dec 08 07:43:26 +0000 2010","truncated":false,"id_str":"12411918635499520","user":{"follow_request_sent":null,"following":null,"verified":false,"profile_sidebar_border_color":"C0DEED","show_all_inline_media":false,"geo_enabled":true,"description":"i share my voice for my band @DestinyOfFuture | i share my life for allah swt | i share my heart for my 7","listed_count":2,"profile_background_tile":false,"profile_background_image_url":"http:\/\/s.twimg.com\/a\/1290538325\/images\/themes\/theme1\/bg.png","profile_background_color":"C0DEED","location":"Pondok Gede,jakarta timur","profile_use_background_image":true,"profile_text_color":"333333","followers_count":328,"statuses_count":17575,"time_zone":"Pacific Time (US & Canada)","created_at":"Mon Aug 03 06:08:46 +0000 2009","friends_count":310,"protected":false,"profile_image_url":"http:\/\/a3.twimg.com\/profile_images\/1156247995\/DiasDOF_normal.JPG","notifications":null,"profile_link_color":"0084B4","url":"http:\/\/www.myspace.com\/537395778","name":"Diaz Putra Pratama","id_str":"62451320","favourites_count":38,"screen_name":"Diassaurus","id":62451320,"contributors_enabled":false,"lang":"en","utc_offset":-28800,"profile_sidebar_fill_color":"DDEEF6"},"id":12411918635499520,"in_reply_to_user_id":null,"favorited":false}
+{"coordinates":null,"text":"haduh bsk bhs.inggris sama ips lagi","entities":{"urls":[],"hashtags":[],"user_mentions":[]},"in_reply_to_screen_name":null,"in_reply_to_status_id_str":null,"place":null,"contributors":null,"retweet_count":0,"in_reply_to_status_id":null,"in_reply_to_user_id_str":null,"source":"web","retweeted":false,"geo":null,"created_at":"Wed Dec 08 07:43:26 +0000 2010","truncated":false,"id_str":"12411918639693824","user":{"follow_request_sent":null,"following":null,"verified":false,"profile_sidebar_border_color":"eb387a","show_all_inline_media":false,"geo_enabled":true,"description":"just a little boy who growing up","listed_count":0,"profile_background_tile":true,"profile_background_image_url":"http:\/\/a3.twimg.com\/profile_background_images\/132078393\/Conan8.jpg","profile_background_color":"f5f8fa","location":"Pamulang, Indonesia","profile_use_background_image":true,"profile_text_color":"c74052","followers_count":36,"statuses_count":60,"time_zone":"Pacific Time (US & Canada)","created_at":"Sat Aug 07 05:52:21 +0000 2010","friends_count":61,"protected":false,"profile_image_url":"http:\/\/a3.twimg.com\/profile_images\/1097481287\/IMG1441A_normal.jpg","notifications":null,"profile_link_color":"a3e1f7","url":null,"name":"Taufik Wicak","id_str":"175652995","favourites_count":0,"screen_name":"taufikwicak","id":175652995,"contributors_enabled":false,"lang":"en","utc_offset":-28800,"profile_sidebar_fill_color":"fcfeff"},"id":12411918639693824,"in_reply_to_user_id":null,"favorited":false}
+{"coordinates":null,"text":"LOL I THOUGHT U WANTED BIGGIE BACK RT @ChinkyEyedButta: #lemmeguess @YungBossez denying my baby??? Smh","entities":{"urls":[],"hashtags":[{"text":"lemmeguess","indices":[56,67]}],"user_mentions":[{"indices":[38,54],"name":"Piggy!","screen_name":"ChinkyEyedButta","id_str":"28321072","id":28321072},{"indices":[68,79],"name":"LARRY LIVE","screen_name":"YungBossez","id_str":"79103494","id":79103494}]},"in_reply_to_screen_name":null,"in_reply_to_status_id_str":null,"place":null,"contributors":null,"retweet_count":0,"in_reply_to_status_id":null,"in_reply_to_user_id_str":null,"source":"\u003Ca href=\"http:\/\/www.echofon.com\/\" rel=\"nofollow\"\u003EEchofon\u003C\/a\u003E","retweeted":false,"geo":null,"created_at":"Wed Dec 08 07:43:26 +0000 2010","truncated":false,"id_str":"12411918652276736","user":{"follow_request_sent":null,"following":null,"verified":false,"profile_sidebar_border_color":"C0DEED","show_all_inline_media":false,"geo_enabled":false,"description":"BOSSNATION!!! THINK LIKE A BOSS.. MOVE LIKE A BOSS.. BECOME A BOSS!! WE MOVIN!!!!  KIK: YungBossElz","listed_count":31,"profile_background_tile":true,"profile_background_image_url":"http:\/\/a1.twimg.com\/profile_background_images\/136340262\/IMG_0011_1_.JPG","profile_background_color":"C0DEED","location":"NYC","profile_use_background_image":true,"profile_text_color":"333333","followers_count":1450,"statuses_count":43647,"time_zone":"Quito","created_at":"Fri Oct 02 05:23:49 +0000 2009","friends_count":740,"protected":false,"profile_image_url":"http:\/\/a1.twimg.com\/profile_images\/1184354137\/YungBossez_normal.jpg","notifications":null,"profile_link_color":"0084B4","url":"http:\/\/www.apple.com","name":"LARRY LIVE","id_str":"79103494","favourites_count":18,"screen_name":"YungBossez","id":79103494,"contributors_enabled":false,"lang":"en","utc_offset":-18000,"profile_sidebar_fill_color":"DDEEF6"},"id":12411918652276736,"in_reply_to_user_id":null,"favorited":false}
+{"coordinates":null,"text":"@renzoom \u3044\u3084\u3001\u540c\u3058\u9ad8\u6821\u306a\u3089\u5802\u3005\u3068\u300c\u5148\u8f29\u300d\u3068\u547c\u3079\u308b\u6a29\u5229\u7372\u5f97\u3067\u3059\u3088!?\u6749\u7530\u2026\u5148\u8f29\u2026\u30db\u30ef\u30a2\u30a2\u30a2\u30a1\u30a1\u30a1\u30a2\u30a2\uff1c\u25cf\uff1e\/\/\/\/\uff1c\u25cf\uff1e\u306a\u3093\u306a\u3093\u3067\u3059\u304b\u604b\u30b7\u30e5\u30df\u306a\u3093\u3067\u3059\u304b\u3068\u304d\u3081\u304d\u30e1\u30e2\u30ea\u30a2\u30ebin\u5c0f\u5ddd\uff01\uff01\uff01\u653b\u7565\u30ad\u30e3\u30e9\u2192\u6749\u7530\u5148\u8f29Only","entities":{"hashtags":[],"urls":[],"user_mentions":[{"indices":[0,8],"name":"\u30ec\u30f3\u30ba\u30a3\u30fc","screen_name":"renzoom","id_str":"80027788","id":80027788}]},"in_reply_to_screen_name":"renzoom","in_reply_to_status_id_str":"12386429707485184","place":null,"contributors":null,"retweet_count":0,"in_reply_to_status_id":12386429707485184,"in_reply_to_user_id_str":"80027788","source":"\u003Ca href=\"http:\/\/twtr.jp\" rel=\"nofollow\"\u003EKeitai Web\u003C\/a\u003E","retweeted":false,"geo":null,"created_at":"Wed Dec 08 07:43:26 +0000 2010","truncated":false,"id_str":"12411918631309312","user":{"follow_request_sent":null,"following":null,"verified":false,"profile_sidebar_border_color":"C0DEED","show_all_inline_media":false,"geo_enabled":false,"description":"\u3054\u98ef\u306e\u4e8b\u3070\u3063\u304b\u8003\u3048\u3066\u307e\u3059\u3002\u6f2b\u753b\u30fb\u30a2\u30cb\u30e1\u95a2\u9023\u306e\u30c4\u30a4\u30fc\u30c8\u591a\u3044\u3067\u3059\u3002","listed_count":1,"profile_background_tile":false,"profile_background_image_url":"http:\/\/s.twimg.com\/a\/1290538325\/images\/themes\/theme1\/bg.png","profile_background_color":"C0DEED","location":"","profile_use_background_image":true,"profile_text_color":"333333","followers_count":23,"statuses_count":315,"time_zone":"Tokyo","created_at":"Thu Oct 21 00:46:18 +0000 2010","friends_count":41,"protected":false,"profile_image_url":"http:\/\/a2.twimg.com\/profile_images\/1149146122\/DVC00089_normal.jpg","notifications":null,"profile_link_color":"0084B4","url":null,"name":"\u30d2\u30c3\u30dd\u30ed\u7cfb\u30cb\u30e3\u30dd\u30fc\u30f3","id_str":"205496590","favourites_count":1,"screen_name":"OpporeGassen","id":205496590,"contributors_enabled":false,"lang":"ja","utc_offset":32400,"profile_sidebar_fill_color":"DDEEF6"},"id":12411918631309312,"in_reply_to_user_id":80027788,"favorited":false}
+{"coordinates":null,"text":"\u7d20\u4eba\u767a\u8a00ww RT @AsrA924: \u300c\u98a8\u6708\u3055\u3093\u3001\u76ee\u7acb\u3064\u5ba3\u4f1d\u8003\u3048\u3066\uff01\u300d\u300c\u306f\u3044\uff1f\uff01\u300d\u300c\u3060\u304b\u3089\u3070\u3070\u30fc\u3093\u3068\u76ee\u7acb\u3063\u3061\u3083\u3046\u5ba3\u4f1d\uff01\u300d\u300c\u5bfe\u8c61\u306f\u2026\u300d\u300c\u307f\u3093\u306a\uff01\uff01\u300d\u300c\u307f\u3093\u306a\u3063\u3066\u8a00\u308f\u308c\u307e\u3057\u3066\u3082\u2026\u300d\u300c\u76ee\u7acb\u3064\u5ba3\u4f1d\u306f\u8ab0\u306b\u3068\u3063\u3066\u3082\u76ee\u7acb\u3064\u3067\u3057\u3087\uff01\uff01\u300d\u2026\u3060\u3081\u3060\u3053\u308a\u3083\u3002","entities":{"hashtags":[],"urls":[],"user_mentions":[{"indices":[10,18],"name":"\u98a8\u6708\u3042\u3059\u3089","screen_name":"AsrA924","id_str":"112167510","id":112167510}]},"in_reply_to_screen_name":null,"in_reply_to_status_id_str":null,"place":null,"contributors":null,"retweet_count":null,"in_reply_to_status_id":null,"in_reply_to_user_id_str":null,"source":"\u003Ca href=\"http:\/\/www.echofon.com\/\" rel=\"nofollow\"\u003EEchofon\u003C\/a\u003E","retweeted":false,"geo":null,"created_at":"Wed Dec 08 07:43:26 +0000 2010","truncated":false,"id_str":"12411918614528000","user":{"following":null,"listed_count":13,"profile_background_tile":true,"profile_background_image_url":"http:\/\/s.twimg.com\/a\/1291318259\/images\/themes\/theme14\/bg.gif","profile_sidebar_border_color":"eeeeee","profile_use_background_image":true,"description":"1983.07.04 \u55b6\u696d\u3002\u793e\u4f1a\u306e\u53b3\u3057\u3055\u3092\u52c9\u5f37\u4e2d\u3067\u3059\u3002\u9031\u672b\u306f\u611b\u8eca\u306e\u30ed\u30fc\u30c9\u30ec\u30fc\u30b5\u30fc\u3067\u30b5\u30a4\u30af\u30ea\u30f3\u30b0\uff01\u91ce\u7403\u3001\u5343\u8449\u30ed\u30c3\u30c6\u3001\u30c0\u30fc\u30c4\u3001\u97f3\u697d\u3001\u6620\u753b\u3001\u65c5\u884c\u3001\u81ea\u8ee2\u8eca\u65c5\u884c\u597d\u304d\u3067\u3059\u3002\u3088\u308d\u3057\u304f\u304a\u9858\u3044\u3057\u307e\u3059\u3002\u3042\u3063\u3001\u30c1\u30e7\u30c3\u30d1\u30fc\u597d\u304d\u3067\u3059\uff01","statuses_count":2392,"time_zone":"Tokyo","friends_count":483,"profile_background_color":"131516","location":"\u5343\u8449\u770c\u5e02\u5ddd\u5e02\u5999\u5178","profile_text_color":"333333","followers_count":291,"contributors_enabled":false,"created_at":"Mon Dec 21 10:04:09 +0000 2009","protected":false,"profile_image_url":"http:\/\/a0.twimg.com\/profile_images\/1183120212\/fukkyman_normal.jpg","follow_request_sent":null,"verified":false,"notifications":null,"profile_link_color":"009999","url":null,"name":"\u3075\u3063\u304d\u30fc\u30de\u30f3","id_str":"98340517","favourites_count":32,"screen_name":"fukkyman","id":98340517,"show_all_inline_media":false,"lang":"ja","geo_enabled":true,"utc_offset":32400,"profile_sidebar_fill_color":"efefef"},"id":12411918614528000,"in_reply_to_user_id":null,"favorited":false}
+{"coordinates":null,"text":"@lengraciazz99 zz","entities":{"urls":[],"hashtags":[],"user_mentions":[{"indices":[0,14],"name":"Hellena Gracia \uff61\u25d5\u203f\u25d5\uff61","screen_name":"lengraciazz99","id_str":"127160903","id":127160903}]},"in_reply_to_screen_name":"lengraciazz99","in_reply_to_status_id_str":"12411745138122752","place":null,"contributors":null,"retweet_count":0,"in_reply_to_status_id":12411745138122752,"in_reply_to_user_id_str":"127160903","source":"web","retweeted":false,"geo":null,"created_at":"Wed Dec 08 07:43:26 +0000 2010","truncated":false,"id_str":"12411918648090624","user":{"follow_request_sent":null,"following":null,"verified":false,"profile_sidebar_border_color":"C0DEED","show_all_inline_media":false,"geo_enabled":true,"description":"hello , my name is john James Apillio , i like playing piano , i want to be a princepiano .. wkwk .. i'm single .. chatolic .. ","listed_count":0,"profile_background_tile":true,"profile_background_image_url":"http:\/\/a1.twimg.com\/profile_background_images\/176397228\/edit.JPG","profile_background_color":"C0DEED","location":"jakarta","profile_use_background_image":true,"profile_text_color":"333333","followers_count":55,"statuses_count":1882,"time_zone":"Pacific Time (US & Canada)","created_at":"Mon Oct 11 09:01:29 +0000 2010","friends_count":144,"protected":false,"profile_image_url":"http:\/\/a3.twimg.com\/profile_images\/1174624371\/ME_normal.jpg","notifications":null,"profile_link_color":"0084B4","url":null,"name":"Frank james Aprillio","id_str":"201190413","favourites_count":3,"screen_name":"frankyakob","id":201190413,"contributors_enabled":false,"lang":"en","utc_offset":-28800,"profile_sidebar_fill_color":"DDEEF6"},"id":12411918648090624,"in_reply_to_user_id":127160903,"favorited":false}
+{"coordinates":null,"text":"mboh, aku wez mari nde kmpus, tp te jln2 sek aku mbek nevi santi, hehe RT @dindalovelove @dindydind gak enak tahh ... heh mole jam piro awak","entities":{"urls":[],"hashtags":[],"user_mentions":[{"indices":[74,88],"name":"winda hermawan ","screen_name":"dindalovelove","id_str":"93166570","id":93166570},{"indices":[89,99],"name":"Indri Rahmawati","screen_name":"dindydind","id_str":"77725423","id":77725423}]},"in_reply_to_screen_name":"dindalovelove","in_reply_to_status_id_str":"12411470138580992","place":null,"contributors":null,"retweet_count":0,"in_reply_to_status_id":12411470138580992,"in_reply_to_user_id_str":"93166570","source":"web","retweeted":false,"geo":null,"created_at":"Wed Dec 08 07:43:27 +0000 2010","truncated":false,"id_str":"12411922821419009","user":{"follow_request_sent":null,"following":null,"verified":false,"profile_sidebar_border_color":"ffffff","show_all_inline_media":false,"geo_enabled":true,"description":"luv my family sooo much","listed_count":3,"profile_background_tile":false,"profile_background_image_url":"http:\/\/a1.twimg.com\/profile_background_images\/130377756\/twittmn.jpg","profile_background_color":"ec7b3e","location":"Malang, Indonesia","profile_use_background_image":true,"profile_text_color":"030303","followers_count":99,"statuses_count":1744,"time_zone":"Jakarta","created_at":"Sun Sep 27 12:31:59 +0000 2009","friends_count":93,"protected":false,"profile_image_url":"http:\/\/a1.twimg.com\/profile_images\/1139037997\/36174_1534584098950_1665256568_1290462_4376492_n_normal.jpg","notifications":null,"profile_link_color":"07545e","url":null,"name":"Indri Rahmawati","id_str":"77725423","favourites_count":4,"screen_name":"dindydind","id":77725423,"contributors_enabled":false,"lang":"en","utc_offset":25200,"profile_sidebar_fill_color":"ec7b3e"},"id":12411922821419009,"in_reply_to_user_id":93166570,"favorited":false}
+{"coordinates":null,"text":"@AThousandFall conan para presidente de la rep\u00fablica","entities":{"urls":[],"hashtags":[],"user_mentions":[{"indices":[0,14],"name":"A Thousand Fall","screen_name":"AThousandFall","id_str":"108740471","id":108740471}]},"in_reply_to_screen_name":"AThousandFall","in_reply_to_status_id_str":"12391305862713344","place":null,"contributors":null,"retweet_count":0,"in_reply_to_status_id":12391305862713344,"in_reply_to_user_id_str":"108740471","source":"\u003Ca href=\"http:\/\/www.echofon.com\/\" rel=\"nofollow\"\u003EEchofon\u003C\/a\u003E","retweeted":false,"geo":null,"created_at":"Wed Dec 08 07:43:27 +0000 2010","truncated":false,"id_str":"12411922821419008","user":{"following":null,"listed_count":3,"profile_background_tile":true,"profile_background_image_url":"http:\/\/a3.twimg.com\/profile_background_images\/178454607\/Gambit.jpg","profile_sidebar_border_color":"eeeeee","profile_use_background_image":true,"description":"","statuses_count":8135,"time_zone":null,"friends_count":591,"profile_background_color":"131516","location":"El Paso Tx","profile_text_color":"333333","followers_count":250,"contributors_enabled":false,"created_at":"Tue Jun 02 22:52:44 +0000 2009","protected":false,"profile_image_url":"http:\/\/a0.twimg.com\/profile_images\/1180820352\/KingEly_normal.jpg","follow_request_sent":null,"verified":false,"notifications":null,"profile_link_color":"009999","url":"http:\/\/facebook.com\/elycharlescarrasco","name":"Ely","id_str":"44230583","favourites_count":0,"screen_name":"KingEly","id":44230583,"show_all_inline_media":false,"lang":"en","geo_enabled":true,"utc_offset":null,"profile_sidebar_fill_color":"efefef"},"id":12411922821419008,"in_reply_to_user_id":108740471,"favorited":false}
+{"coordinates":null,"text":"Rated on LUUUX http:\/\/bit.ly\/eyvcXO","entities":{"hashtags":[],"urls":[{"expanded_url":null,"indices":[15,35],"url":"http:\/\/bit.ly\/eyvcXO"}],"user_mentions":[]},"in_reply_to_screen_name":null,"in_reply_to_status_id_str":null,"place":null,"contributors":null,"retweet_count":0,"in_reply_to_status_id":null,"in_reply_to_user_id_str":null,"source":"\u003Ca href=\"http:\/\/www.luuux.com\" rel=\"nofollow\"\u003Eluuux_app\u003C\/a\u003E","retweeted":false,"geo":null,"created_at":"Wed Dec 08 07:43:27 +0000 2010","truncated":false,"id_str":"12411922834006016","user":{"following":null,"listed_count":0,"profile_background_tile":false,"profile_background_image_url":"http:\/\/s.twimg.com\/a\/1290538325\/images\/themes\/theme1\/bg.png","profile_sidebar_border_color":"C0DEED","profile_use_background_image":true,"description":null,"statuses_count":8135,"time_zone":null,"friends_count":0,"profile_background_color":"C0DEED","location":null,"profile_text_color":"333333","followers_count":85,"contributors_enabled":false,"created_at":"Tue Sep 07 04:32:28 +0000 2010","protected":false,"profile_image_url":"http:\/\/s.twimg.com\/a\/1290538325\/images\/default_profile_0_normal.png","follow_request_sent":null,"verified":false,"notifications":null,"profile_link_color":"0084B4","url":null,"name":"Lili","id_str":"187793438","favourites_count":0,"screen_name":"Dulceamor510","id":187793438,"show_all_inline_media":false,"lang":"en","geo_enabled":false,"utc_offset":null,"profile_sidebar_fill_color":"DDEEF6"},"id":12411922834006016,"in_reply_to_user_id":null,"favorited":false}
+{"coordinates":null,"text":"\u3080\u3001\u307f\u304f\u3057\u30fc\u3068\u3044\u3048\u3070\u3001\u304a\u663c\u9803\u306b\u4e45\u3005\u306b\u30c1\u30a7\u30c3\u30af\u3057\u305f\u3089\u3001\u306a\u3093\u304b\u300c\u30a2\u30a4\u30c9\u30eb\u3000\u516c\u5f0f\u30a2\u30ab\u30a6\u30f3\u30c8\u300d\u306a\u4eba\u304b\u3089\u8db3\u8de1\u304c\u3064\u3044\u3066\u305f\u3002\u3000\u306a\u306b\u304c\u3069\u3046\u306a\u3063\u3066\u50d5\u306e\u3068\u3053\u306b\u304d\u305f\u306e\u3084\u3089\u3002\u624b\u5f53\u305f\u308a\u6b21\u7b2c\u304b\u3002","entities":{"user_mentions":[],"urls":[],"hashtags":[]},"in_reply_to_screen_name":null,"in_reply_to_status_id_str":null,"place":null,"contributors":null,"retweet_count":0,"in_reply_to_status_id":null,"in_reply_to_user_id_str":null,"source":"web","retweeted":false,"geo":null,"created_at":"Wed Dec 08 07:43:27 +0000 2010","truncated":false,"id_str":"12411922825613312","user":{"follow_request_sent":null,"following":null,"verified":false,"profile_sidebar_border_color":"65B0DA","show_all_inline_media":false,"geo_enabled":false,"description":"\u30d5\u30a1\u30df\u30ea\u30fc\u30b9\u30c6\u30fc\u30b7\u30e7\u30f3\u306e\u7247\u65b9\u3002\u8a9e\u308a\u3060\u3057\u305f\u3089\u6b62\u307e\u3089\u306a\u3044\u305c\u266a\u3000\u30b2\u30fc\u30e0\u30fb\u30de\u30f3\u30ac\u30fb\u6620\u753b\u597d\u304d\u3067\u611a\u75f4\u3063\u305f\u30fc\uff08\uff1f\uff09\u57fa\u672c\u3001\u7d61\u3093\u3067\u4e0b\u3055\u3063\u305f\u3089\u30d5\u30a9\u30ed\u30fc\u3057\u307e\u3059\u3002\u767a\u8a00\u6570\u304c\u7570\u5e38\u3060\u3068\u826f\u304f\u8a00\u308f\u308c\u308b\u306e\u3067\u30d5\u30a9\u30ed\u30fc\u306f\u8a08\u753b\u7684\u306b\u2026\/360:KLINK2007\/PS3:KLINK2008\u203b2009\u5e7410\u670812\u65e5\u304b\u3089\u59cb\u3081\u307e\u3057\u305f","listed_count":76,"profile_background_tile":true,"profile_background_image_url":"http:\/\/s.twimg.com\/a\/1291064993\/images\/themes\/theme10\/bg.gif","profile_background_color":"642D8B","location":"OITA CITY","profile_use_background_image":true,"profile_text_color":"5386b0","followers_count":594,"statuses_count":57250,"time_zone":"Osaka","created_at":"Mon Oct 12 03:37:07 +0000 2009","friends_count":363,"protected":false,"profile_image_url":"http:\/\/a0.twimg.com\/profile_images\/1135752368\/00141_03_12_13-19_11_16_normal.jpg","notifications":null,"profile_link_color":"FF0000","url":null,"name":"KLINK_JP","id_str":"81753861","favourites_count":352,"screen_name":"KLINK_JP","id":81753861,"contributors_enabled":false,"lang":"ja","utc_offset":32400,"profile_sidebar_fill_color":"642d8b"},"id":12411922825613312,"in_reply_to_user_id":null,"favorited":false}
+{"coordinates":null,"text":"\u3059\u3066\u304d\u306a\u51fa\u4f1a\u3044\u3068\u7d50\u5a5a\u7d39\u4ecb\u306f\u697d\u5929\u30b0\u30eb\u30fc\u30d7\u306e\u300c\u30aa\u30fc\u30cd\u30c3\u30c8\u300d\u3067\u266a \u4eca\u306a\u3089\u5165\u4f1a\u306710,000\u30dd\u30a4\u30f3\u30c8\u30d7\u30ec\u30bc\u30f3\u30c8\u4e2d\uff01\u307e\u305a\u306f\u3001\u201d\u7406\u60f3\u306e\u304a\u76f8\u624b\u30d7\u30ed\u30d5\u30a3\u30fc\u30eb\u201d\u3092GET\u3057\u3066\u304f\u3060\u3055\u3044\u3002\u300e\u30aa\u30fc\u30cd\u30c3\u30c8\u300f\u3092\u898b\u308b [\u697d\u5929] http:\/\/a.r10.to\/hBhJuv #sougofollow","entities":{"hashtags":[{"text":"sougofollow","indices":[121,133]}],"urls":[{"expanded_url":null,"indices":[98,120],"url":"http:\/\/a.r10.to\/hBhJuv"}],"user_mentions":[]},"in_reply_to_screen_name":null,"in_reply_to_status_id_str":null,"place":null,"contributors":null,"retweet_count":null,"in_reply_to_status_id":null,"in_reply_to_user_id_str":null,"source":"\u003Ca href=\"http:\/\/www.vector.co.jp\/soft\/winnt\/net\/se483196.html\" rel=\"nofollow\"\u003ETWEET command\u003C\/a\u003E","retweeted":false,"geo":null,"created_at":"Wed Dec 08 07:43:27 +0000 2010","truncated":false,"id_str":"12411922813026304","user":{"following":null,"listed_count":26,"profile_background_tile":true,"profile_background_image_url":"http:\/\/s.twimg.com\/a\/1290538325\/images\/themes\/theme11\/bg.gif","profile_sidebar_border_color":"CC3366","profile_use_background_image":true,"description":"\u3088\u308d\u3057\u304f\u304a\u9858\u3044\u3057\u307e\u3059\u2764","statuses_count":10429,"time_zone":"Tokyo","friends_count":2893,"profile_background_color":"FF6699","location":"\u4e09\u91cd","profile_text_color":"362720","followers_count":2830,"contributors_enabled":false,"created_at":"Sun Jun 20 02:54:09 +0000 2010","protected":false,"profile_image_url":"http:\/\/a1.twimg.com\/profile_images\/1134806221\/__10_normal.jpg","follow_request_sent":null,"verified":false,"notifications":null,"profile_link_color":"B40B43","url":null,"name":"\u3042\u3044\u306e","id_str":"157527482","favourites_count":0,"screen_name":"aino_kis","id":157527482,"show_all_inline_media":false,"lang":"ja","geo_enabled":false,"utc_offset":32400,"profile_sidebar_fill_color":"E5507E"},"id":12411922813026304,"in_reply_to_user_id":null,"favorited":false}
+{"coordinates":null,"text":"RT @duck_of_d00m: \u043e\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u0436\u0435\u043d\u0449\u0438\u043d\u044b \u0432 \u0441\u0435\u0442\u0438 \u0431\u043e\u043b\u044c\u0448\u0435 \u043f\u0438\u0448\u0443\u0442 \u043e \u043f\u043e\u043b\u043e\u0436\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u043c \u043e\u043f\u044b\u0442\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f \u043f\u0440\u043e\u0434\u0443\u043a\u0442\u043e\u0432, \u0430 \u043c\u0443\u0436\u0447\u0438\u043d\u044b \u043e\u0431 \u043e\u0442\u0440\u0438\u0446\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u043c.","entities":{"user_mentions":[{"indices":[3,16],"name":"Mitya Voskresensky","screen_name":"duck_of_d00m","id_str":"19416850","id":19416850}],"urls":[],"hashtags":[]},"in_reply_to_screen_name":null,"in_reply_to_status_id_str":null,"place":null,"contributors":null,"retweet_count":null,"in_reply_to_status_id":null,"in_reply_to_user_id_str":null,"source":"web","retweeted_status":{"coordinates":null,"text":"\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u0436\u0435\u043d\u0449\u0438\u043d\u044b \u0432 \u0441\u0435\u0442\u0438 \u0431\u043e\u043b\u044c\u0448\u0435 \u043f\u0438\u0448\u0443\u0442 \u043e \u043f\u043e\u043b\u043e\u0436\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u043c \u043e\u043f\u044b\u0442\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f \u043f\u0440\u043e\u0434\u0443\u043a\u0442\u043e\u0432, \u0430 \u043c\u0443\u0436\u0447\u0438\u043d\u044b \u043e\u0431 \u043e\u0442\u0440\u0438\u0446\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u043c.","entities":{"user_mentions":[],"urls":[],"hashtags":[]},"in_reply_to_screen_name":null,"in_reply_to_status_id_str":null,"place":null,"contributors":null,"retweet_count":7,"in_reply_to_status_id":null,"in_reply_to_user_id_str":null,"source":"\u003Ca href=\"https:\/\/chrome.google.com\/extensions\/detail\/encaiiljifbdbjlphpgpiimidegddhic\" rel=\"nofollow\"\u003EChromed Bird\u003C\/a\u003E","retweeted":false,"geo":null,"created_at":"Tue Dec 07 18:45:38 +0000 2010","truncated":false,"id_str":"12216177023520768","user":{"follow_request_sent":null,"following":null,"verified":false,"profile_sidebar_border_color":"C0DEED","show_all_inline_media":false,"geo_enabled":false,"description":"\u0421\u0442\u0440\u0430\u0442\u0435\u0433 \u0432 \u0446\u0438\u0444\u0440\u043e\u0432\u044b\u0445 \u043c\u0435\u0434\u0438\u0430, \u0440\u0430\u0431\u043e\u0442\u0430\u044e \u0432  Red Keds, \u043f\u0438\u0448\u0443 \u043e \u0440\u0435\u043a\u043b\u0430\u043c\u0435, \u0441\u0442\u0440\u0430\u0442\u0435\u0433\u0438\u0438 \u0438 \u0438\u043d\u0442\u0435\u0440\u043d\u0435\u0442\u043d\u044b\u0445 \u0448\u0442\u0443\u043a\u0430\u0445. \u043f\u0438\u0448\u0438\u0442\u0435 \u0441\u044e\u0434\u0430 \u0432\u0430\u0448\u0438 \u0432\u043e\u043f\u0440\u043e\u0441\u044b http:\/\/www.formspring.me\/duckofd00m ","listed_count":131,"profile_background_tile":false,"profile_background_image_url":"http:\/\/s.twimg.com\/a\/1290538325\/images\/themes\/theme1\/bg.png","profile_background_color":"C0DEED","location":"Russia, Moscow","profile_use_background_image":true,"profile_text_color":"333333","followers_count":1471,"statuses_count":6946,"time_zone":"Moscow","created_at":"Fri Jan 23 22:07:58 +0000 2009","friends_count":72,"protected":false,"profile_image_url":"http:\/\/a3.twimg.com\/profile_images\/1031969395\/duck_digital_duck_normal.png","notifications":null,"profile_link_color":"0084B4","url":"http:\/\/duckofdoom.ru","name":"Mitya Voskresensky","id_str":"19416850","favourites_count":0,"screen_name":"duck_of_d00m","id":19416850,"contributors_enabled":false,"lang":"en","utc_offset":10800,"profile_sidebar_fill_color":"DDEEF6"},"id":12216177023520768,"in_reply_to_user_id":null,"favorited":false},"retweeted":false,"geo":null,"created_at":"Wed Dec 08 07:43:27 +0000 2010","truncated":false,"id_str":"12411922808840192","user":{"follow_request_sent":null,"following":null,"verified":false,"profile_sidebar_border_color":"CC3366","show_all_inline_media":false,"geo_enabled":false,"description":"","listed_count":16,"profile_background_tile":true,"profile_background_image_url":"http:\/\/s.twimg.com\/a\/1291318259\/images\/themes\/theme11\/bg.gif","profile_background_color":"FF6699","location":"\u0421\u0430\u0440\u0430\u0442\u043e\u0432 ","profile_use_background_image":true,"profile_text_color":"362720","followers_count":87,"statuses_count":519,"time_zone":null,"created_at":"Fri Sep 18 17:59:18 +0000 2009","friends_count":53,"protected":false,"profile_image_url":"http:\/\/a2.twimg.com\/profile_images\/1104098446\/IMG_3584_normal.JPG","notifications":null,"profile_link_color":"B40B43","url":null,"name":"Olga Semina","id_str":"75342779","favourites_count":0,"screen_name":"callmelili","id":75342779,"contributors_enabled":false,"lang":"en","utc_offset":null,"profile_sidebar_fill_color":"E5507E"},"id":12411922808840192,"in_reply_to_user_id":null,"favorited":false}
+{"coordinates":null,"text":"The Art of Corking Wine http:\/\/bit.ly\/11gGbb #winemaking","entities":{"urls":[{"expanded_url":null,"indices":[24,44],"url":"http:\/\/bit.ly\/11gGbb"}],"user_mentions":[],"hashtags":[{"text":"winemaking","indices":[45,56]}]},"in_reply_to_screen_name":null,"in_reply_to_status_id_str":null,"place":null,"contributors":null,"retweet_count":null,"in_reply_to_status_id":null,"in_reply_to_user_id_str":null,"source":"\u003Ca href=\"http:\/\/www.ajaymatharu.com\/\" rel=\"nofollow\"\u003ETweet Old Post\u003C\/a\u003E","retweeted":false,"geo":null,"created_at":"Wed Dec 08 07:43:28 +0000 2010","truncated":false,"id_str":"12411927032504320","user":{"follow_request_sent":null,"following":null,"verified":false,"profile_sidebar_border_color":"BDDCAD","show_all_inline_media":false,"geo_enabled":false,"description":"Wine Creator is all about the wonderfully awesome hobby of making wine at home - something I've done personally for over 15 years and love sharing with others!","listed_count":307,"profile_background_tile":true,"profile_background_image_url":"http:\/\/a1.twimg.com\/profile_background_images\/7784250\/wine-bottles-free.jpg","profile_background_color":"9AE4E8","location":"","profile_use_background_image":true,"profile_text_color":"333333","followers_count":15657,"statuses_count":2191,"time_zone":"Central Time (US & Canada)","created_at":"Tue Apr 07 01:37:29 +0000 2009","friends_count":17140,"protected":false,"profile_image_url":"http:\/\/a0.twimg.com\/profile_images\/126970064\/redWine_normal.jpg","notifications":null,"profile_link_color":"0084B4","url":"http:\/\/winecreator.com","name":"Wine Creator","id_str":"29347169","favourites_count":1,"screen_name":"winecreator","id":29347169,"contributors_enabled":false,"lang":"en","utc_offset":-21600,"profile_sidebar_fill_color":"DDFFCC"},"id":12411927032504320,"in_reply_to_user_id":null,"favorited":false}
diff --git a/json-framework-3.2.0/Tests/StreamParserIntegrationTest.m b/json-framework-3.2.0/Tests/StreamParserIntegrationTest.m
new file mode 100644
index 0000000..15bf5e4
--- /dev/null
+++ b/json-framework-3.2.0/Tests/StreamParserIntegrationTest.m
@@ -0,0 +1,132 @@
+/*
+ Copyright (c) 2010, Stig Brautaset.
+ All rights reserved.
+ 
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions are
+ met:
+ 
+   Redistributions of source code must retain the above copyright
+   notice, this list of conditions and the following disclaimer.
+  
+   Redistributions in binary form must reproduce the above copyright
+   notice, this list of conditions and the following disclaimer in the
+   documentation and/or other materials provided with the distribution.
+ 
+   Neither the name of the the author nor the names of its contributors
+   may be used to endorse or promote products derived from this software
+   without specific prior written permission.
+ 
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
+ IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
+ TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
+ PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+ HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+
+#import <SenTestingKit/SenTestingKit.h>
+#import <SBJson/SBJson.h>
+
+#import "JsonTestCase.h"
+
+@interface StreamParserIntegrationTest : SenTestCase < SBJsonStreamParserAdapterDelegate> {
+	SBJsonStreamParser *parser;
+	SBJsonStreamParserAdapter *adapter;
+	NSUInteger arrayCount, objectCount;
+	NSDirectoryEnumerator *files;
+	NSString *path;
+}
+@end
+
+@implementation StreamParserIntegrationTest
+
+- (void)setUp {
+	adapter = [SBJsonStreamParserAdapter new];
+	adapter.delegate = self;
+	
+	parser = [SBJsonStreamParser new];
+	parser.delegate = adapter;
+	parser.supportMultipleDocuments = YES;
+	
+	arrayCount = objectCount = 0u;
+
+	NSString *suite = @"Tests/Stream/";
+    path = [JsonTestCase pathForSuite:suite];
+	files = [[NSFileManager defaultManager] enumeratorAtPath:path];
+
+}
+
+- (void)parser:(SBJsonStreamParser *)parser foundArray:(NSArray *)array {
+	arrayCount++;
+}
+
+- (void)parser:(SBJsonStreamParser *)parser foundObject:(NSDictionary *)dict {
+	objectCount++;
+}
+
+/*
+ This test reads a 100k chunk of data downloaded from 
+ http://stream.twitter.com/1/statuses/sample.json 
+ and split into 1k files. It simulates streaming by parsing
+ this data incrementally.
+ */
+- (void)testMultipleDocuments {
+	NSString *fileName;
+    while ((fileName = [files nextObject])) {
+		NSString *file = [path stringByAppendingPathComponent:fileName];
+
+        // Don't accidentally test directories. That would be bad.
+        BOOL isDir = NO;
+        if (NO == [[NSFileManager defaultManager] fileExistsAtPath:file isDirectory:&isDir] || YES == isDir)
+            continue;
+
+		NSData *data = [NSData dataWithContentsOfMappedFile:file];
+		STAssertNotNil(data, nil);
+	
+		STAssertEquals([parser parse:data], SBJsonStreamParserWaitingForData, @"%@ - %@", file, parser.error);
+	}
+	STAssertEquals(arrayCount, (NSUInteger)0, nil);
+	STAssertEquals(objectCount, (NSUInteger)98, nil);
+}
+
+- (void)parseArrayOfObjects {
+	[parser parse:[NSData dataWithBytes:"[" length:1]];
+	for (int i = 1;; i++) {
+		char *utf8 = "{\"foo\":[],\"bar\":[]}";
+		[parser parse:[NSData dataWithBytes:utf8 length:strlen(utf8)]];
+		if (i == 100)
+			break;
+		[parser parse:[NSData dataWithBytes:"," length:1]];
+	}
+	[parser parse:[NSData dataWithBytes:"]" length:1]];
+}
+
+- (void)testSingleArray {
+	[self parseArrayOfObjects];
+	STAssertEquals(arrayCount, (NSUInteger)1, nil);
+	STAssertEquals(objectCount, (NSUInteger)0, nil);
+}
+
+- (void)testSkipArray {
+	adapter.levelsToSkip = 1;
+	[self parseArrayOfObjects];
+	STAssertEquals(arrayCount, (NSUInteger)0, nil);
+	STAssertEquals(objectCount, (NSUInteger)100, nil);	
+}
+
+- (void)testSkipArrayAndObject {
+	adapter.levelsToSkip = 2;
+	[self parseArrayOfObjects];
+	STAssertEquals(arrayCount, (NSUInteger)200, nil);
+	STAssertEquals(objectCount, (NSUInteger)0, nil);	
+}
+
+
+@end
\ No newline at end of file
diff --git a/json-framework-3.2.0/Tests/WriterTest.m b/json-framework-3.2.0/Tests/WriterTest.m
new file mode 100644
index 0000000..4616d7e
--- /dev/null
+++ b/json-framework-3.2.0/Tests/WriterTest.m
@@ -0,0 +1,80 @@
+/*
+ Copyright (C) 2010 Stig Brautaset. All rights reserved.
+ 
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions are met:
+ 
+ * Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+ 
+ * Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following disclaimer in the documentation
+ and/or other materials provided with the distribution.
+ 
+ * Neither the name of the author nor the names of its contributors may be used
+ to endorse or promote products derived from this software without specific
+ prior written permission.
+ 
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+ FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+ SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+ CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+ OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+
+#import <SenTestingKit/SenTestingKit.h>
+#import <SBJson/SBJson.h>
+
+@interface WriterTest : SenTestCase {
+	SBJsonWriter * writer;
+}
+@end
+
+@implementation WriterTest
+
+- (void)setUp {
+    writer = [SBJsonWriter new];
+}
+
+- (void)testInfinity {
+    STAssertEqualObjects(@"[0]", [writer stringWithObject:[NSArray arrayWithObject:[NSNumber numberWithDouble:0.0]]], nil);
+    STAssertEqualObjects(@"[-0]", [writer stringWithObject:[NSArray arrayWithObject:[NSNumber numberWithDouble:-0.0]]], nil);
+    
+    STAssertEqualObjects(@"[0]", [writer stringWithObject:[NSArray arrayWithObject:[NSNumber numberWithFloat:(float)0.0]]], nil);
+    STAssertEqualObjects(@"[-0]", [writer stringWithObject:[NSArray arrayWithObject:[NSNumber numberWithFloat:(float)-0.0]]], nil);
+    
+    STAssertEqualObjects(@"[0]", [writer stringWithObject:[NSArray arrayWithObject:[NSNumber numberWithInt:0]]], nil);
+    STAssertEqualObjects(@"[0]", [writer stringWithObject:[NSArray arrayWithObject:[NSNumber numberWithInt:-0]]], nil);
+			 
+    STAssertEqualObjects(@"[0]", [writer stringWithObject:[NSArray arrayWithObject:[NSDecimalNumber numberWithDouble:0]]], nil);
+    STAssertEqualObjects(@"[0]", [writer stringWithObject:[NSArray arrayWithObject:[NSDecimalNumber numberWithDouble:-0]]], nil);
+	
+    STAssertEqualObjects(@"[0]", [writer stringWithObject:[NSArray arrayWithObject:[NSDecimalNumber numberWithFloat:0]]], nil);
+    STAssertEqualObjects(@"[0]", [writer stringWithObject:[NSArray arrayWithObject:[NSDecimalNumber numberWithFloat:-0]]], nil);    
+}
+
+- (void)testTimeInterval {
+	NSTimeInterval interval = 319670801.45073098; // seconds since epoc
+	NSNumber *number = [NSNumber numberWithDouble:interval];
+	NSArray *array = [NSArray arrayWithObject:number];
+
+	STAssertEqualObjects(@"[319670801.45073098]", [writer stringWithObject:array], nil);
+}
+
+
+- (void)testWriteToStream {
+	SBJsonStreamWriter *streamWriter = [[SBJsonStreamWriter alloc] init];
+	
+	STAssertTrue([streamWriter writeArray:[NSArray array]], nil);
+	
+	STAssertFalse([streamWriter writeArray:[NSArray array]], nil);
+	STAssertEqualObjects(streamWriter.error, @"Stream is closed", nil);
+}
+
+@end
diff --git a/json-framework-3.2.0/sbjson-ios/sbjson-ios-Prefix.pch b/json-framework-3.2.0/sbjson-ios/sbjson-ios-Prefix.pch
new file mode 100644
index 0000000..f78b76b
--- /dev/null
+++ b/json-framework-3.2.0/sbjson-ios/sbjson-ios-Prefix.pch
@@ -0,0 +1,7 @@
+//
+// Prefix header for all source files of the 'sbjson-ios' target in the 'sbjson-ios' project
+//
+
+#ifdef __OBJC__
+    #import <Foundation/Foundation.h>
+#endif
diff --git a/json-framework-3.2.0/sbjson-iosTests/en.lproj/InfoPlist.strings b/json-framework-3.2.0/sbjson-iosTests/en.lproj/InfoPlist.strings
new file mode 100644
index 0000000..477b28f
--- /dev/null
+++ b/json-framework-3.2.0/sbjson-iosTests/en.lproj/InfoPlist.strings
@@ -0,0 +1,2 @@
+/* Localized versions of Info.plist keys */
+
diff --git a/json-framework-3.2.0/sbjson-iosTests/sbjson-iosTests-Info.plist b/json-framework-3.2.0/sbjson-iosTests/sbjson-iosTests-Info.plist
new file mode 100644
index 0000000..f5deb9d
--- /dev/null
+++ b/json-framework-3.2.0/sbjson-iosTests/sbjson-iosTests-Info.plist
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+	<key>CFBundleDevelopmentRegion</key>
+	<string>en</string>
+	<key>CFBundleExecutable</key>
+	<string>${EXECUTABLE_NAME}</string>
+	<key>CFBundleIdentifier</key>
+	<string>org.brautaset.${PRODUCT_NAME:rfc1034identifier}</string>
+	<key>CFBundleInfoDictionaryVersion</key>
+	<string>6.0</string>
+	<key>CFBundlePackageType</key>
+	<string>BNDL</string>
+	<key>CFBundleShortVersionString</key>
+	<string>3.2.0</string>
+	<key>CFBundleSignature</key>
+	<string>????</string>
+	<key>CFBundleVersion</key>
+	<string>${CURRENT_PROJECT_VERSION}</string>
+</dict>
+</plist>
diff --git a/json-framework-3.2.0/sbjson-iosTests/sbjson-iosTests-Prefix.pch b/json-framework-3.2.0/sbjson-iosTests/sbjson-iosTests-Prefix.pch
new file mode 100644
index 0000000..9c4d5b1
--- /dev/null
+++ b/json-framework-3.2.0/sbjson-iosTests/sbjson-iosTests-Prefix.pch
@@ -0,0 +1,8 @@
+//
+// Prefix header for all source files of the 'sbjson-iosTests' target in the 'sbjson-iosTests' project
+//
+
+#ifdef __OBJC__
+    #import <UIKit/UIKit.h>
+    #import <SenTestingKit/SenTestingKit.h>
+#endif
diff --git a/json-framework-3.2.0/src/main/resources/AppledocSettings.plist b/json-framework-3.2.0/src/main/resources/AppledocSettings.plist
new file mode 100644
index 0000000..a7a7196
--- /dev/null
+++ b/json-framework-3.2.0/src/main/resources/AppledocSettings.plist
@@ -0,0 +1,41 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN"
+	"http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+	<key>--input</key>
+	<array>
+		<string>../../../Classes</string>
+	</array>
+	<key>--project-name</key>
+	<string>SBJson</string>
+    <key>--project-company</key>
+    <string>Stig Brautaset</string>
+    <key>--company-id</key>
+    <string>org.brautaset</string>
+    <key>--docset-atom-filename</key>
+    <string>SBJson.atom</string>
+    <key>--docset-feed-url</key>
+    <string>http://sbjson.org/api/%DOCSETATOMFILENAME</string>
+    <key>--docset-package-url</key>
+    <string>http://sbjson.org/api/%DOCSETPACKAGEFILENAME</string>
+    <key>--publish-docset</key>
+    <true/>
+    <key>--logformat</key>
+    <string>xcode</string>
+    <key>--keep-undocumented-objects</key>
+    <true/>
+    <key>--keep-undocumented-members</key>
+    <true/>
+    <key>--keep-intermediate-files</key>
+    <true/>
+    <key>--no-repeat-first-par</key>
+    <true/>
+    <key>--no-warn-invalid-crossref</key>
+    <true/>
+    <key>--ignore</key>
+    <string>*.m</string>
+    <key>--index-desc</key>
+    <string>README.md</string>
+</dict>
+</plist>
diff --git a/json-framework-3.2.0/src/main/scripts/RegenerateApiDocumentation.sh b/json-framework-3.2.0/src/main/scripts/RegenerateApiDocumentation.sh
new file mode 100755
index 0000000..5716d74
--- /dev/null
+++ b/json-framework-3.2.0/src/main/scripts/RegenerateApiDocumentation.sh
@@ -0,0 +1,24 @@
+#!/bin/sh
+
+VERS=3.2
+OUTPUT=~/Dropbox/DocSets/SBJson
+
+appledoc \
+--project-version $VERS \
+--output $OUTPUT \
+src/main/resources/AppledocSettings.plist
+
+TARGET=../json-framework-pages/api
+
+if ! test -d $TARGET ; then
+    echo "$TARGET does not exist; exiting now"
+    exit
+fi
+
+cp $OUTPUT/publish/* $TARGET
+
+VTARGET=$TARGET/$VERS
+rm -rf $VTARGET
+cp -r $OUTPUT/html $VTARGET
+
+
diff --git a/json-framework-3.2.0/src/main/scripts/RegenerateCredits b/json-framework-3.2.0/src/main/scripts/RegenerateCredits
new file mode 100755
index 0000000..06a9e44
--- /dev/null
+++ b/json-framework-3.2.0/src/main/scripts/RegenerateCredits
@@ -0,0 +1,16 @@
+#!/bin/sh
+
+# set -x
+
+ME=$(basename $0)
+
+HEAD=$(mktemp -t $ME)
+TAIL=$(mktemp -t $ME)
+
+grep -v '^*' CREDITS.md > $HEAD
+grep '^*' CREDITS.md > $TAIL
+git shortlog -s | sed 's/^......./* /' >> $TAIL
+
+(cat $HEAD; sort -u $TAIL) > CREDITS.md
+
+git diff
