[SCM] Multi-format 1D/2D barcode image processing library branch, upstream, updated. 24d4480bc48cf9eabf7b2bd2f528248b0e458809

dkavanagh dkavanagh at 59b500cc-1b3d-0410-9834-0bbf25fbcc57
Wed Aug 4 01:31:29 UTC 2010


The following commit has been merged in the upstream branch:
commit 022f538f77cd9b31b3a9e697ea1c470f895ac13e
Author: dkavanagh <dkavanagh at 59b500cc-1b3d-0410-9834-0bbf25fbcc57>
Date:   Wed May 12 18:13:27 2010 +0000

    a scan widget you can include in your iPhone app. Test app coming shortly.
    
    
    git-svn-id: http://zxing.googlecode.com/svn/trunk@1353 59b500cc-1b3d-0410-9834-0bbf25fbcc57

diff --git a/iphone/Classes/AddContactAction.h b/iphone/ZXingWidget/AddContactAction.h
similarity index 100%
copy from iphone/Classes/AddContactAction.h
copy to iphone/ZXingWidget/AddContactAction.h
diff --git a/iphone/Classes/AddContactAction.m b/iphone/ZXingWidget/AddContactAction.m
similarity index 100%
copy from iphone/Classes/AddContactAction.m
copy to iphone/ZXingWidget/AddContactAction.m
diff --git a/iphone/Classes/BookmarkDoCoMoResultParser.h b/iphone/ZXingWidget/BookmarkDoCoMoResultParser.h
similarity index 100%
copy from iphone/Classes/BookmarkDoCoMoResultParser.h
copy to iphone/ZXingWidget/BookmarkDoCoMoResultParser.h
diff --git a/iphone/Classes/BookmarkDoCoMoResultParser.m b/iphone/ZXingWidget/BookmarkDoCoMoResultParser.m
similarity index 100%
copy from iphone/Classes/BookmarkDoCoMoResultParser.m
copy to iphone/ZXingWidget/BookmarkDoCoMoResultParser.m
diff --git a/iphone/Classes/BusinessCardParsedResult.h b/iphone/ZXingWidget/BusinessCardParsedResult.h
similarity index 100%
copy from iphone/Classes/BusinessCardParsedResult.h
copy to iphone/ZXingWidget/BusinessCardParsedResult.h
diff --git a/iphone/Classes/BusinessCardParsedResult.m b/iphone/ZXingWidget/BusinessCardParsedResult.m
similarity index 100%
copy from iphone/Classes/BusinessCardParsedResult.m
copy to iphone/ZXingWidget/BusinessCardParsedResult.m
diff --git a/iphone/Classes/CallAction.h b/iphone/ZXingWidget/CallAction.h
similarity index 100%
copy from iphone/Classes/CallAction.h
copy to iphone/ZXingWidget/CallAction.h
diff --git a/iphone/Classes/CallAction.m b/iphone/ZXingWidget/CallAction.m
similarity index 100%
copy from iphone/Classes/CallAction.m
copy to iphone/ZXingWidget/CallAction.m
diff --git a/iphone/Classes/Decoder.h b/iphone/ZXingWidget/Decoder.h
similarity index 100%
copy from iphone/Classes/Decoder.h
copy to iphone/ZXingWidget/Decoder.h
diff --git a/iphone/ZXingWidget/Decoder.mm b/iphone/ZXingWidget/Decoder.mm
new file mode 100644
index 0000000..e70a685
--- /dev/null
+++ b/iphone/ZXingWidget/Decoder.mm
@@ -0,0 +1,267 @@
+//
+//  Decoder.m
+//  ZXing
+//
+//  Created by Christian Brunschen on 31/03/2008.
+//
+/*
+ * Copyright 2008 ZXing authors
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#import "Decoder.h"
+#import "TwoDDecoderResult.h"
+#import "FormatReader.h"
+
+#include <zxing/BinaryBitmap.h>
+#include <zxing/ReaderException.h>
+#include <zxing/common/IllegalArgumentException.h>
+#include <zxing/common/GlobalHistogramBinarizer.h>
+#include "GrayBytesMonochromeBitmapSource.h"
+
+using namespace zxing;
+
+ at implementation Decoder
+
+ at synthesize image;
+ at synthesize cropRect;
+ at synthesize subsetImage;
+ at synthesize subsetData;
+ at synthesize subsetWidth;
+ at synthesize subsetHeight;
+ at synthesize subsetBytesPerRow;
+ at synthesize delegate;
+
+- (void)willDecodeImage {
+  if ([self.delegate respondsToSelector:@selector(decoder:willDecodeImage:usingSubset:)]) {
+    [self.delegate decoder:self willDecodeImage:self.image usingSubset:self.subsetImage];
+  }
+}
+
+- (void)progressDecodingImage:(NSString *)progress {
+  if ([self.delegate respondsToSelector:@selector(decoder:decodingImage:usingSubset:progress:)]) {
+    [self.delegate decoder:self decodingImage:self.image usingSubset:self.subsetImage progress:progress];
+  }
+}
+
+- (void)didDecodeImage:(TwoDDecoderResult *)result {
+  if ([self.delegate respondsToSelector:@selector(decoder:didDecodeImage:usingSubset:withResult:)]) {
+    [self.delegate decoder:self didDecodeImage:self.image usingSubset:self.subsetImage withResult:result];
+  }
+}
+
+- (void)failedToDecodeImage:(NSString *)reason {
+  if ([self.delegate respondsToSelector:@selector(decoder:failedToDecodeImage:usingSubset:reason:)]) {
+    [self.delegate decoder:self failedToDecodeImage:self.image usingSubset:self.subsetImage reason:reason];
+  }
+}
+
+#define SUBSET_SIZE 320.0
+- (void) prepareSubset {
+  CGSize size = [image size];
+#ifdef DEBUG
+  NSLog(@"decoding: image is (%.1f x %.1f), cropRect is (%.1f,%.1f)x(%.1f,%.1f)", size.width, size.height,
+      cropRect.origin.x, cropRect.origin.y, cropRect.size.width, cropRect.size.height);
+#endif
+  float scale = fminf(1.0f, fmaxf(SUBSET_SIZE / cropRect.size.width, SUBSET_SIZE / cropRect.size.height));
+  CGPoint offset = CGPointMake(-cropRect.origin.x, -cropRect.origin.y);
+#ifdef DEBUG
+  NSLog(@"  offset = (%.1f, %.1f), scale = %.3f", offset.x, offset.y, scale);
+#endif
+  
+  subsetWidth = cropRect.size.width * scale;
+  subsetHeight = cropRect.size.height * scale;
+  
+  subsetBytesPerRow = ((subsetWidth + 0xf) >> 4) << 4;
+#ifdef DEBUG
+  NSLog(@"decoding: image to decode is (%d x %d) (%d bytes/row)", subsetWidth, subsetHeight, subsetBytesPerRow);
+#endif
+  
+  subsetData = (unsigned char *)malloc(subsetBytesPerRow * subsetHeight);
+#ifdef DEBUG
+  NSLog(@"allocated %d bytes of memory", subsetBytesPerRow * subsetHeight);
+#endif
+  
+  CGColorSpaceRef grayColorSpace = CGColorSpaceCreateDeviceGray();
+  
+  CGContextRef ctx = 
+  CGBitmapContextCreate(subsetData, subsetWidth, subsetHeight, 
+              8, subsetBytesPerRow, grayColorSpace, 
+              kCGImageAlphaNone);
+  CGColorSpaceRelease(grayColorSpace);
+  CGContextSetInterpolationQuality(ctx, kCGInterpolationNone);
+  CGContextSetAllowsAntialiasing(ctx, false);
+  // adjust the coordinate system
+  CGContextTranslateCTM(ctx, 0.0, subsetHeight);
+  CGContextScaleCTM(ctx, 1.0, -1.0);  
+  
+#ifdef DEBUG
+  NSLog(@"created %dx%d bitmap context", subsetWidth, subsetHeight);
+#endif
+  
+  UIGraphicsPushContext(ctx);
+  CGRect rect = CGRectMake(offset.x * scale, offset.y * scale, scale * size.width, scale * size.height);
+#ifdef DEBUG
+  NSLog(@"rect for image = (%.1f,%.1f)x(%.1f,%.1f)", rect.origin.x, rect.origin.y, rect.size.width, rect.size.height);
+#endif
+  [image drawInRect:rect];
+  UIGraphicsPopContext();
+  
+#ifdef DEBUG
+  NSLog(@"drew image into %d(%d)x%d  bitmap context", subsetWidth, subsetBytesPerRow, subsetHeight);
+#endif
+  CGContextFlush(ctx);
+#ifdef DEBUG
+  NSLog(@"flushed context");
+#endif
+    
+  CGImageRef subsetImageRef = CGBitmapContextCreateImage(ctx);
+#ifdef DEBUG
+  NSLog(@"created CGImage from context");
+#endif
+  
+  self.subsetImage = [UIImage imageWithCGImage:subsetImageRef];
+  // for debug purposes.
+  UIImageWriteToSavedPhotosAlbum(self.subsetImage, nil, nil, nil);
+
+  CGImageRelease(subsetImageRef);
+  
+  CGContextRelease(ctx);
+#ifdef DEBUG
+  NSLog(@"released context");  
+#endif
+}  
+
+- (void)decode:(id)arg {
+  NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
+  { 
+
+    NSSet *formatReaders = [FormatReader formatReaders];
+    
+    Ref<LuminanceSource> source (new GrayBytesMonochromeBitmapSource(subsetData, subsetWidth, subsetHeight, subsetBytesPerRow));
+    
+    Ref<Binarizer> binarizer (new GlobalHistogramBinarizer(source));
+    Ref<BinaryBitmap> grayImage (new BinaryBitmap(binarizer));
+#ifdef DEBUG
+    NSLog(@"created GrayBytesMonochromeBitmapSource", subsetWidth, subsetHeight);
+    NSLog(@"grayImage count = %d", grayImage->count());
+#endif
+    
+    TwoDDecoderResult *decoderResult = nil;
+    
+#ifdef TRY_ROTATIONS
+    for (int i = 0; !decoderResult && i < 4; i++) {`
+#endif
+      for (FormatReader *reader in formatReaders) {
+        try {
+  #ifdef DEBUG
+          NSLog(@"decoding gray image");
+  #endif
+          Ref<Result> result([reader decode:grayImage]);
+  #ifdef DEBUG
+          NSLog(@"gray image decoded");
+  #endif
+          
+          Ref<String> resultText(result->getText());
+          const char *cString = resultText->getText().c_str();
+          const std::vector<Ref<ResultPoint> > &resultPoints = result->getResultPoints();
+          NSMutableArray *points = 
+            [NSMutableArray arrayWithCapacity:resultPoints.size()];
+          
+          for (size_t i = 0; i < resultPoints.size(); i++) {
+            const Ref<ResultPoint> &rp = resultPoints[i];
+            CGPoint p = CGPointMake(rp->getX(), rp->getY());
+            [points addObject:[NSValue valueWithCGPoint:p]];
+          }
+          
+          NSString *resultString = [NSString stringWithCString:cString
+                                encoding:NSUTF8StringEncoding];
+          
+          decoderResult = [TwoDDecoderResult resultWithText:resultString
+                                                     points:points];
+        } catch (ReaderException &rex) {
+          NSLog(@"failed to decode, caught ReaderException '%s'",
+              rex.what());
+        } catch (IllegalArgumentException &iex) {
+          NSLog(@"failed to decode, caught IllegalArgumentException '%s'", 
+              iex.what());
+        } catch (...) {
+          NSLog(@"Caught unknown exception!");
+        }
+      }
+      
+#ifdef TRY_ROTATIONS
+      if (!decoderResult) {
+#ifdef DEBUG
+        NSLog(@"rotating gray image");
+#endif
+        grayImage = grayImage->rotateCounterClockwise();
+#ifdef DEBUG
+        NSLog(@"gray image rotated");
+#endif
+      }
+    }
+#endif
+    
+    if (decoderResult) {
+      [self performSelectorOnMainThread:@selector(didDecodeImage:)
+                   withObject:decoderResult
+                waitUntilDone:NO];
+    } else {
+      [self performSelectorOnMainThread:@selector(failedToDecodeImage:)
+                   withObject:NSLocalizedString(@"Decoder BarcodeDetectionFailure", @"No barcode detected.")
+                waitUntilDone:NO];
+    }
+    
+    free(subsetData);
+    self.subsetData = NULL;
+  }
+  [pool drain];
+#ifdef DEBUG
+  NSLog(@"finished decoding.");
+#endif
+  
+  // if this is not the main thread, then we end it
+  if (![NSThread isMainThread]) {
+    [NSThread exit];
+  }
+}
+
+- (void) decodeImage:(UIImage *)i {
+  [self decodeImage:i cropRect:CGRectMake(0.0f, 0.0f, image.size.width, image.size.height)];
+}
+
+- (void) decodeImage:(UIImage *)i cropRect:(CGRect)cr {
+  self.image = i;
+  self.cropRect = cr;
+  
+  [self prepareSubset];
+  [self willDecodeImage];
+  [self performSelectorOnMainThread:@selector(progressDecodingImage:)
+               withObject:NSLocalizedString(@"Decoder MessageWhileDecoding", @"Decoding ...")
+            waitUntilDone:NO];  
+  
+  [NSThread detachNewThreadSelector:@selector(decode:) 
+               toTarget:self 
+               withObject:nil];
+}
+
+- (void) dealloc {
+  [image release];
+  [subsetImage release];
+  if (subsetData) free(subsetData);
+  [super dealloc];
+}
+
+ at end
diff --git a/iphone/Classes/DecoderDelegate.h b/iphone/ZXingWidget/DecoderDelegate.h
similarity index 100%
copy from iphone/Classes/DecoderDelegate.h
copy to iphone/ZXingWidget/DecoderDelegate.h
diff --git a/iphone/Classes/DoCoMoResultParser.h b/iphone/ZXingWidget/DoCoMoResultParser.h
similarity index 100%
copy from iphone/Classes/DoCoMoResultParser.h
copy to iphone/ZXingWidget/DoCoMoResultParser.h
diff --git a/iphone/Classes/DoCoMoResultParser.m b/iphone/ZXingWidget/DoCoMoResultParser.m
similarity index 100%
copy from iphone/Classes/DoCoMoResultParser.m
copy to iphone/ZXingWidget/DoCoMoResultParser.m
diff --git a/iphone/Classes/EmailAction.h b/iphone/ZXingWidget/EmailAction.h
similarity index 100%
copy from iphone/Classes/EmailAction.h
copy to iphone/ZXingWidget/EmailAction.h
diff --git a/iphone/Classes/EmailAction.m b/iphone/ZXingWidget/EmailAction.m
similarity index 100%
copy from iphone/Classes/EmailAction.m
copy to iphone/ZXingWidget/EmailAction.m
diff --git a/iphone/Classes/EmailDoCoMoResultParser.h b/iphone/ZXingWidget/EmailDoCoMoResultParser.h
similarity index 100%
copy from iphone/Classes/EmailDoCoMoResultParser.h
copy to iphone/ZXingWidget/EmailDoCoMoResultParser.h
diff --git a/iphone/Classes/EmailDoCoMoResultParser.m b/iphone/ZXingWidget/EmailDoCoMoResultParser.m
similarity index 100%
copy from iphone/Classes/EmailDoCoMoResultParser.m
copy to iphone/ZXingWidget/EmailDoCoMoResultParser.m
diff --git a/iphone/Classes/EmailParsedResult.h b/iphone/ZXingWidget/EmailParsedResult.h
similarity index 100%
copy from iphone/Classes/EmailParsedResult.h
copy to iphone/ZXingWidget/EmailParsedResult.h
diff --git a/iphone/Classes/EmailParsedResult.m b/iphone/ZXingWidget/EmailParsedResult.m
similarity index 100%
copy from iphone/Classes/EmailParsedResult.m
copy to iphone/ZXingWidget/EmailParsedResult.m
diff --git a/iphone/Classes/FormatReader.h b/iphone/ZXingWidget/FormatReader.h
similarity index 100%
copy from iphone/Classes/FormatReader.h
copy to iphone/ZXingWidget/FormatReader.h
diff --git a/iphone/ZXingWidget/FormatReader.mm b/iphone/ZXingWidget/FormatReader.mm
new file mode 100644
index 0000000..a1294d8
--- /dev/null
+++ b/iphone/ZXingWidget/FormatReader.mm
@@ -0,0 +1,64 @@
+//
+//  FormatReader.mm
+//
+//  Created by Dave MacLachlan on 2010-05-03.
+/*
+ * Copyright 2010 ZXing authors
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#import "FormatReader.h"
+
+ at implementation FormatReader
+
+static NSMutableSet *sFormatReaders = nil;
+
++ (void)registerFormatReader:(FormatReader*)formatReader {
+  NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
+  @synchronized(self) {
+    if (!sFormatReaders) {
+      sFormatReaders = [[NSMutableSet alloc] init];
+    }
+    [sFormatReaders addObject:formatReader];
+  }
+  [pool drain];
+}
+
++ (NSSet *)formatReaders {
+  NSSet *formatReaders = nil;
+  @synchronized(self) {
+
+    formatReaders = [[sFormatReaders copy] autorelease];
+	  NSLog(@"readers : %d",[formatReaders count]);
+  }
+  return formatReaders;
+}
+
+- (id)initWithReader:(zxing::Reader *)reader {
+  if ((self = [super init])) {
+    reader_ = reader;
+  }
+  return self;
+}
+
+- (void)dealloc {
+  delete reader_;
+  [super dealloc];
+}
+
+- (zxing::Ref<zxing::Result>)decode:(zxing::Ref<zxing::BinaryBitmap>)grayImage {
+  return reader_->decode(grayImage);
+}
+
+ at end
diff --git a/iphone/Classes/GeoParsedResult.h b/iphone/ZXingWidget/GeoParsedResult.h
similarity index 100%
copy from iphone/Classes/GeoParsedResult.h
copy to iphone/ZXingWidget/GeoParsedResult.h
diff --git a/iphone/Classes/GeoParsedResult.m b/iphone/ZXingWidget/GeoParsedResult.m
similarity index 100%
copy from iphone/Classes/GeoParsedResult.m
copy to iphone/ZXingWidget/GeoParsedResult.m
diff --git a/iphone/Classes/GeoResultParser.h b/iphone/ZXingWidget/GeoResultParser.h
similarity index 100%
copy from iphone/Classes/GeoResultParser.h
copy to iphone/ZXingWidget/GeoResultParser.h
diff --git a/iphone/Classes/GeoResultParser.m b/iphone/ZXingWidget/GeoResultParser.m
similarity index 100%
copy from iphone/Classes/GeoResultParser.m
copy to iphone/ZXingWidget/GeoResultParser.m
diff --git a/iphone/Classes/GrayBytesMonochromeBitmapSource.cpp b/iphone/ZXingWidget/GrayBytesMonochromeBitmapSource.cpp
similarity index 100%
copy from iphone/Classes/GrayBytesMonochromeBitmapSource.cpp
copy to iphone/ZXingWidget/GrayBytesMonochromeBitmapSource.cpp
diff --git a/iphone/Classes/GrayBytesMonochromeBitmapSource.h b/iphone/ZXingWidget/GrayBytesMonochromeBitmapSource.h
similarity index 100%
copy from iphone/Classes/GrayBytesMonochromeBitmapSource.h
copy to iphone/ZXingWidget/GrayBytesMonochromeBitmapSource.h
diff --git a/iphone/Classes/MeCardParser.h b/iphone/ZXingWidget/MeCardParser.h
similarity index 100%
copy from iphone/Classes/MeCardParser.h
copy to iphone/ZXingWidget/MeCardParser.h
diff --git a/iphone/Classes/MeCardParser.m b/iphone/ZXingWidget/MeCardParser.m
similarity index 100%
copy from iphone/Classes/MeCardParser.m
copy to iphone/ZXingWidget/MeCardParser.m
diff --git a/iphone/ZXingWidget/MultiFormatReader.mm b/iphone/ZXingWidget/MultiFormatReader.mm
new file mode 100644
index 0000000..7f38ab2
--- /dev/null
+++ b/iphone/ZXingWidget/MultiFormatReader.mm
@@ -0,0 +1,42 @@
+//
+//  MultiFormatReader.mm
+//
+//  Created by Dave MacLachlan on 2010-05-03.
+/*
+ * Copyright 2010 ZXing authors
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#import "FormatReader.h"
+#import <zxing/MultiFormatReader.h>
+
+ at interface MultiFormatReader : FormatReader
+ at end
+
+ at implementation MultiFormatReader
+
++ (void)load {
+  NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
+	NSLog(@"MultiFormatReader: load called");
+  [FormatReader registerFormatReader:[[[self alloc] init] autorelease]];
+  [pool drain];
+}
+
+- (id)init {
+  zxing::MultiFormatReader *reader = new zxing::MultiFormatReader();
+	NSLog(@"MultiFormatReader: init called");
+  return [super initWithReader:reader];
+}
+
+ at end
diff --git a/iphone/Classes/NSString+HTML.h b/iphone/ZXingWidget/NSString+HTML.h
similarity index 100%
copy from iphone/Classes/NSString+HTML.h
copy to iphone/ZXingWidget/NSString+HTML.h
diff --git a/iphone/Classes/NSString+HTML.m b/iphone/ZXingWidget/NSString+HTML.m
similarity index 100%
copy from iphone/Classes/NSString+HTML.m
copy to iphone/ZXingWidget/NSString+HTML.m
diff --git a/iphone/Classes/OpenUrlAction.h b/iphone/ZXingWidget/OpenUrlAction.h
similarity index 100%
copy from iphone/Classes/OpenUrlAction.h
copy to iphone/ZXingWidget/OpenUrlAction.h
diff --git a/iphone/Classes/OpenUrlAction.m b/iphone/ZXingWidget/OpenUrlAction.m
similarity index 100%
copy from iphone/Classes/OpenUrlAction.m
copy to iphone/ZXingWidget/OpenUrlAction.m
diff --git a/iphone/ZXingWidget/OverlayView.h b/iphone/ZXingWidget/OverlayView.h
new file mode 100755
index 0000000..f8436b1
--- /dev/null
+++ b/iphone/ZXingWidget/OverlayView.h
@@ -0,0 +1,40 @@
+/**
+ * Copyright 2009 Jeff Verkoeyen
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *    http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#import <UIKit/UIKit.h>
+
+ at protocol CancelDelegate;
+
+ at interface OverlayView : UIView {
+	UIImageView *imageView;
+	NSArray *_points;
+	UIButton *cancelButton;
+	id<CancelDelegate> delegate;
+}
+
+//@property (nonatomic, retain)   UIImage*  image;
+ at property (nonatomic, retain) NSArray*  points;
+ at property (nonatomic, assign) id<CancelDelegate> delegate;
+
+- (id)initWithCancelEnabled:(BOOL)cancelEnabled frame:(CGRect)frame;
+
+- (CGRect)cropRect;
+
+ at end
+
+ at protocol CancelDelegate
+- (void)cancelled;
+ at end
\ No newline at end of file
diff --git a/iphone/ZXingWidget/OverlayView.m b/iphone/ZXingWidget/OverlayView.m
new file mode 100755
index 0000000..3561767
--- /dev/null
+++ b/iphone/ZXingWidget/OverlayView.m
@@ -0,0 +1,166 @@
+/**
+ * Copyright 2009 Jeff Verkoeyen
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *    http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#import "OverlayView.h"
+
+static const CGFloat kPadding = 10;
+
+ at implementation OverlayView
+
+ at synthesize delegate;
+ at synthesize points = _points;
+//@synthesize image;
+
+
+////////////////////////////////////////////////////////////////////////////////////////////////////
+- (id)initWithCancelEnabled:(BOOL)cancelEnabled frame:(CGRect)frame {
+	if( self = [super initWithFrame:frame] ) {
+		self.backgroundColor = [UIColor clearColor];
+	}
+	if (cancelEnabled) {
+		cancelButton = [UIButton buttonWithType:UIButtonTypeRoundedRect];
+		[cancelButton setTitle:@"Cancel" forState:UIControlStateNormal];
+		[cancelButton setFrame:CGRectMake(95, 420, 130, 45)];
+		[cancelButton addTarget:self action:@selector(cancel:) forControlEvents:UIControlEventTouchUpInside];
+		[self addSubview:cancelButton];
+	}
+	return self;
+}
+
+- (void)cancel:(id)sender {
+	// call delegate to cancel this scanner
+	if (delegate != nil) {
+		[delegate cancelled];
+	}
+}
+
+////////////////////////////////////////////////////////////////////////////////////////////////////
+- (void) dealloc {
+	[imageView release];
+	imageView = nil;
+	[_points release];
+	_points = nil;
+	
+	[super dealloc];
+}
+
+
+- (void)drawRect:(CGRect)rect inContext:(CGContextRef)context {
+	CGContextBeginPath(context);
+	CGContextMoveToPoint(context, rect.origin.x, rect.origin.y);
+	CGContextAddLineToPoint(context, rect.origin.x + rect.size.width, rect.origin.y);
+	CGContextAddLineToPoint(context, rect.origin.x + rect.size.width, rect.origin.y + rect.size.height);
+	CGContextAddLineToPoint(context, rect.origin.x, rect.origin.y + rect.size.height);
+	CGContextAddLineToPoint(context, rect.origin.x, rect.origin.y);
+	CGContextStrokePath(context);
+}
+
+
+////////////////////////////////////////////////////////////////////////////////////////////////////
+- (void)drawRect:(CGRect)rect {
+	[super drawRect:rect];
+	CGContextRef c = UIGraphicsGetCurrentContext();
+
+	CGRect cropRect = [self cropRect];
+	
+	if (nil != _points) {
+//		[imageView.image drawAtPoint:cropRect.origin];
+	}
+	
+	CGFloat white[4] = {1.0f, 1.0f, 1.0f, 1.0f};
+	CGContextSetStrokeColor(c, white);
+	CGContextSetFillColor(c, white);
+	[self drawRect:cropRect inContext:c];
+	
+//	CGContextSetStrokeColor(c, white);
+	char *text = "Place a barcode inside the";
+	char *text2 = "viewfinder rectangle to scan it.";
+	//	CGContextSetStrokeColor(c, white);
+	CGContextSaveGState(c);
+	CGContextSelectFont(c, "Helvetica", 18, kCGEncodingMacRoman);
+	CGContextScaleCTM(c, -1.0, 1.0);
+	CGContextRotateCTM(c, 3.1415);
+	CGContextShowTextAtPoint(c, 48.0, -45.0, text, 26);
+	CGContextShowTextAtPoint(c, 33.0, -70.0, text2, 32);
+	CGContextRestoreGState(c);
+	if( nil != _points ) {
+		CGFloat blue[4] = {0.0f, 1.0f, 0.0f, 1.0f};
+		CGContextSetStrokeColor(c, blue);
+		CGContextSetFillColor(c, blue);
+		CGRect smallSquare = CGRectMake(0, 0, 10, 10);
+		for( NSValue* value in _points ) {
+			CGPoint point = [value CGPointValue];
+			NSLog(@"drawing point at %f, %f", point.x, point.y);
+			smallSquare.origin = CGPointMake(
+											 cropRect.origin.x + point.x - smallSquare.size.width / 2,
+											 cropRect.origin.y + point.y - smallSquare.size.height / 2);
+			[self drawRect:smallSquare inContext:c];
+		}
+	}
+}
+
+
+////////////////////////////////////////////////////////////////////////////////////////////////////
+/*
+- (void) setImage:(UIImage*)image {
+	if( nil == _imageView ) {
+		_imageView = [[UIImageView alloc] initWithImage:image];
+		_imageView.alpha = 0.5;
+	} else {
+		_imageView.image = image;
+	}
+	
+	CGRect frame = _imageView.frame;
+	frame.origin.x = self.cropRect.origin.x;
+	frame.origin.y = self.cropRect.origin.y;
+	_imageView.frame = frame;
+	
+	[_points release];
+	_points = nil;
+	self.backgroundColor = [UIColor clearColor];
+	
+	[self setNeedsDisplay];
+}
+*/
+
+////////////////////////////////////////////////////////////////////////////////////////////////////
+- (UIImage*) image {
+	return imageView.image;
+}
+
+
+////////////////////////////////////////////////////////////////////////////////////////////////////
+- (CGRect) cropRect {
+	CGFloat rectSize = self.frame.size.width - kPadding * 2;
+	
+	return CGRectMake(kPadding, (self.frame.size.height - rectSize) / 2, rectSize, rectSize);
+}
+
+
+////////////////////////////////////////////////////////////////////////////////////////////////////
+- (void) setPoints:(NSArray*)pnts {
+	[pnts retain];
+	[_points release];
+	_points = pnts;
+	
+	if (pnts != nil) {
+		self.backgroundColor = [UIColor colorWithWhite:1.0 alpha:0.25];
+	}
+	[self setNeedsDisplay];
+}
+
+
+ at end
diff --git a/iphone/Classes/ParsedResult.h b/iphone/ZXingWidget/ParsedResult.h
similarity index 100%
copy from iphone/Classes/ParsedResult.h
copy to iphone/ZXingWidget/ParsedResult.h
diff --git a/iphone/Classes/ParsedResult.m b/iphone/ZXingWidget/ParsedResult.m
similarity index 100%
copy from iphone/Classes/ParsedResult.m
copy to iphone/ZXingWidget/ParsedResult.m
diff --git a/iphone/Classes/PlainEmailResultParser.h b/iphone/ZXingWidget/PlainEmailResultParser.h
similarity index 100%
copy from iphone/Classes/PlainEmailResultParser.h
copy to iphone/ZXingWidget/PlainEmailResultParser.h
diff --git a/iphone/Classes/PlainEmailResultParser.m b/iphone/ZXingWidget/PlainEmailResultParser.m
similarity index 100%
copy from iphone/Classes/PlainEmailResultParser.m
copy to iphone/ZXingWidget/PlainEmailResultParser.m
diff --git a/iphone/Classes/ResultAction.h b/iphone/ZXingWidget/ResultAction.h
similarity index 100%
copy from iphone/Classes/ResultAction.h
copy to iphone/ZXingWidget/ResultAction.h
diff --git a/iphone/Classes/ResultAction.m b/iphone/ZXingWidget/ResultAction.m
similarity index 100%
copy from iphone/Classes/ResultAction.m
copy to iphone/ZXingWidget/ResultAction.m
diff --git a/iphone/Classes/ResultParser.h b/iphone/ZXingWidget/ResultParser.h
similarity index 100%
copy from iphone/Classes/ResultParser.h
copy to iphone/ZXingWidget/ResultParser.h
diff --git a/iphone/ZXingWidget/ResultParser.m b/iphone/ZXingWidget/ResultParser.m
new file mode 100644
index 0000000..0e53676
--- /dev/null
+++ b/iphone/ZXingWidget/ResultParser.m
@@ -0,0 +1,66 @@
+//
+//  ResultParser.m
+//  ZXing
+//
+//  Created by Christian Brunschen on 25/06/2008.
+/*
+ * Copyright 2008 ZXing authors
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#import "ResultParser.h"
+
+ at implementation ResultParser
+
+static NSMutableSet *sResultParsers = nil;
+
++ (void)registerResultParserClass:(Class)resultParser {
+  NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
+  @synchronized(self) {
+    if (!sResultParsers) {
+      sResultParsers = [[NSMutableSet alloc] init];
+    }
+    [sResultParsers addObject:resultParser];
+  }
+  [pool drain];
+}
+
++ (NSSet *)resultParsers {
+  NSSet *resultParsers = nil;
+  @synchronized(self) {
+    resultParsers = [[sResultParsers copy] autorelease];
+  }
+  return resultParsers;
+}
+
++ (ParsedResult *)parsedResultForString:(NSString *)s {
+#ifdef DEBUG
+  NSLog(@"parsing result:\n<<<\n%@\n>>>\n", s);
+#endif
+  for (Class c in [self resultParsers]) {
+#ifdef DEBUG
+    NSLog(@"trying %@", NSStringFromClass(c));
+#endif
+    ParsedResult *result = [c parsedResultForString:s];
+    if (result != nil) {
+#ifdef DEBUG
+      NSLog(@"parsed as %@ %@", NSStringFromClass([result class]), result);
+#endif
+      return result;
+    }
+  }
+  return nil;
+}
+
+ at end
diff --git a/iphone/Classes/SMSAction.h b/iphone/ZXingWidget/SMSAction.h
similarity index 100%
copy from iphone/Classes/SMSAction.h
copy to iphone/ZXingWidget/SMSAction.h
diff --git a/iphone/Classes/SMSAction.m b/iphone/ZXingWidget/SMSAction.m
similarity index 100%
copy from iphone/Classes/SMSAction.m
copy to iphone/ZXingWidget/SMSAction.m
diff --git a/iphone/Classes/SMSParsedResult.h b/iphone/ZXingWidget/SMSParsedResult.h
similarity index 100%
copy from iphone/Classes/SMSParsedResult.h
copy to iphone/ZXingWidget/SMSParsedResult.h
diff --git a/iphone/Classes/SMSParsedResult.m b/iphone/ZXingWidget/SMSParsedResult.m
similarity index 100%
copy from iphone/Classes/SMSParsedResult.m
copy to iphone/ZXingWidget/SMSParsedResult.m
diff --git a/iphone/Classes/SMSResultParser.h b/iphone/ZXingWidget/SMSResultParser.h
similarity index 100%
copy from iphone/Classes/SMSResultParser.h
copy to iphone/ZXingWidget/SMSResultParser.h
diff --git a/iphone/Classes/SMSResultParser.m b/iphone/ZXingWidget/SMSResultParser.m
similarity index 100%
copy from iphone/Classes/SMSResultParser.m
copy to iphone/ZXingWidget/SMSResultParser.m
diff --git a/iphone/Classes/SMSTOResultParser.h b/iphone/ZXingWidget/SMSTOResultParser.h
similarity index 100%
copy from iphone/Classes/SMSTOResultParser.h
copy to iphone/ZXingWidget/SMSTOResultParser.h
diff --git a/iphone/Classes/SMSTOResultParser.m b/iphone/ZXingWidget/SMSTOResultParser.m
similarity index 100%
copy from iphone/Classes/SMSTOResultParser.m
copy to iphone/ZXingWidget/SMSTOResultParser.m
diff --git a/iphone/Classes/ShowMapAction.h b/iphone/ZXingWidget/ShowMapAction.h
similarity index 100%
copy from iphone/Classes/ShowMapAction.h
copy to iphone/ZXingWidget/ShowMapAction.h
diff --git a/iphone/Classes/ShowMapAction.m b/iphone/ZXingWidget/ShowMapAction.m
similarity index 100%
copy from iphone/Classes/ShowMapAction.m
copy to iphone/ZXingWidget/ShowMapAction.m
diff --git a/iphone/Classes/TelParsedResult.h b/iphone/ZXingWidget/TelParsedResult.h
similarity index 100%
copy from iphone/Classes/TelParsedResult.h
copy to iphone/ZXingWidget/TelParsedResult.h
diff --git a/iphone/Classes/TelParsedResult.m b/iphone/ZXingWidget/TelParsedResult.m
similarity index 100%
copy from iphone/Classes/TelParsedResult.m
copy to iphone/ZXingWidget/TelParsedResult.m
diff --git a/iphone/Classes/TelResultParser.h b/iphone/ZXingWidget/TelResultParser.h
similarity index 100%
copy from iphone/Classes/TelResultParser.h
copy to iphone/ZXingWidget/TelResultParser.h
diff --git a/iphone/Classes/TelResultParser.m b/iphone/ZXingWidget/TelResultParser.m
similarity index 100%
copy from iphone/Classes/TelResultParser.m
copy to iphone/ZXingWidget/TelResultParser.m
diff --git a/iphone/Classes/TextParsedResult.h b/iphone/ZXingWidget/TextParsedResult.h
similarity index 100%
copy from iphone/Classes/TextParsedResult.h
copy to iphone/ZXingWidget/TextParsedResult.h
diff --git a/iphone/Classes/TextParsedResult.m b/iphone/ZXingWidget/TextParsedResult.m
similarity index 100%
copy from iphone/Classes/TextParsedResult.m
copy to iphone/ZXingWidget/TextParsedResult.m
diff --git a/iphone/Classes/TextResultParser.h b/iphone/ZXingWidget/TextResultParser.h
similarity index 100%
copy from iphone/Classes/TextResultParser.h
copy to iphone/ZXingWidget/TextResultParser.h
diff --git a/iphone/Classes/TextResultParser.m b/iphone/ZXingWidget/TextResultParser.m
similarity index 100%
copy from iphone/Classes/TextResultParser.m
copy to iphone/ZXingWidget/TextResultParser.m
diff --git a/iphone/Classes/TwoDDecoderResult.h b/iphone/ZXingWidget/TwoDDecoderResult.h
similarity index 100%
copy from iphone/Classes/TwoDDecoderResult.h
copy to iphone/ZXingWidget/TwoDDecoderResult.h
diff --git a/iphone/Classes/TwoDDecoderResult.m b/iphone/ZXingWidget/TwoDDecoderResult.m
similarity index 100%
copy from iphone/Classes/TwoDDecoderResult.m
copy to iphone/ZXingWidget/TwoDDecoderResult.m
diff --git a/iphone/Classes/URIParsedResult.h b/iphone/ZXingWidget/URIParsedResult.h
similarity index 100%
copy from iphone/Classes/URIParsedResult.h
copy to iphone/ZXingWidget/URIParsedResult.h
diff --git a/iphone/Classes/URIParsedResult.m b/iphone/ZXingWidget/URIParsedResult.m
similarity index 100%
copy from iphone/Classes/URIParsedResult.m
copy to iphone/ZXingWidget/URIParsedResult.m
diff --git a/iphone/Classes/URLResultParser.h b/iphone/ZXingWidget/URLResultParser.h
similarity index 100%
copy from iphone/Classes/URLResultParser.h
copy to iphone/ZXingWidget/URLResultParser.h
diff --git a/iphone/Classes/URLResultParser.m b/iphone/ZXingWidget/URLResultParser.m
similarity index 100%
copy from iphone/Classes/URLResultParser.m
copy to iphone/ZXingWidget/URLResultParser.m
diff --git a/iphone/Classes/URLTOResultParser.h b/iphone/ZXingWidget/URLTOResultParser.h
similarity index 100%
copy from iphone/Classes/URLTOResultParser.h
copy to iphone/ZXingWidget/URLTOResultParser.h
diff --git a/iphone/Classes/URLTOResultParser.m b/iphone/ZXingWidget/URLTOResultParser.m
similarity index 100%
copy from iphone/Classes/URLTOResultParser.m
copy to iphone/ZXingWidget/URLTOResultParser.m
diff --git a/iphone/ZXingWidget/ZXingWidget.xcodeproj/dkavanagh.mode1v3 b/iphone/ZXingWidget/ZXingWidget.xcodeproj/dkavanagh.mode1v3
new file mode 100644
index 0000000..de3fd6e
--- /dev/null
+++ b/iphone/ZXingWidget/ZXingWidget.xcodeproj/dkavanagh.mode1v3
@@ -0,0 +1,1464 @@
+<?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>ActivePerspectiveName</key>
+	<string>Project</string>
+	<key>AllowedModules</key>
+	<array>
+		<dict>
+			<key>BundleLoadPath</key>
+			<string></string>
+			<key>MaxInstances</key>
+			<string>n</string>
+			<key>Module</key>
+			<string>PBXSmartGroupTreeModule</string>
+			<key>Name</key>
+			<string>Groups and Files Outline View</string>
+		</dict>
+		<dict>
+			<key>BundleLoadPath</key>
+			<string></string>
+			<key>MaxInstances</key>
+			<string>n</string>
+			<key>Module</key>
+			<string>PBXNavigatorGroup</string>
+			<key>Name</key>
+			<string>Editor</string>
+		</dict>
+		<dict>
+			<key>BundleLoadPath</key>
+			<string></string>
+			<key>MaxInstances</key>
+			<string>n</string>
+			<key>Module</key>
+			<string>XCTaskListModule</string>
+			<key>Name</key>
+			<string>Task List</string>
+		</dict>
+		<dict>
+			<key>BundleLoadPath</key>
+			<string></string>
+			<key>MaxInstances</key>
+			<string>n</string>
+			<key>Module</key>
+			<string>XCDetailModule</string>
+			<key>Name</key>
+			<string>File and Smart Group Detail Viewer</string>
+		</dict>
+		<dict>
+			<key>BundleLoadPath</key>
+			<string></string>
+			<key>MaxInstances</key>
+			<string>1</string>
+			<key>Module</key>
+			<string>PBXBuildResultsModule</string>
+			<key>Name</key>
+			<string>Detailed Build Results Viewer</string>
+		</dict>
+		<dict>
+			<key>BundleLoadPath</key>
+			<string></string>
+			<key>MaxInstances</key>
+			<string>1</string>
+			<key>Module</key>
+			<string>PBXProjectFindModule</string>
+			<key>Name</key>
+			<string>Project Batch Find Tool</string>
+		</dict>
+		<dict>
+			<key>BundleLoadPath</key>
+			<string></string>
+			<key>MaxInstances</key>
+			<string>n</string>
+			<key>Module</key>
+			<string>XCProjectFormatConflictsModule</string>
+			<key>Name</key>
+			<string>Project Format Conflicts List</string>
+		</dict>
+		<dict>
+			<key>BundleLoadPath</key>
+			<string></string>
+			<key>MaxInstances</key>
+			<string>n</string>
+			<key>Module</key>
+			<string>PBXBookmarksModule</string>
+			<key>Name</key>
+			<string>Bookmarks Tool</string>
+		</dict>
+		<dict>
+			<key>BundleLoadPath</key>
+			<string></string>
+			<key>MaxInstances</key>
+			<string>n</string>
+			<key>Module</key>
+			<string>PBXClassBrowserModule</string>
+			<key>Name</key>
+			<string>Class Browser</string>
+		</dict>
+		<dict>
+			<key>BundleLoadPath</key>
+			<string></string>
+			<key>MaxInstances</key>
+			<string>n</string>
+			<key>Module</key>
+			<string>PBXCVSModule</string>
+			<key>Name</key>
+			<string>Source Code Control Tool</string>
+		</dict>
+		<dict>
+			<key>BundleLoadPath</key>
+			<string></string>
+			<key>MaxInstances</key>
+			<string>n</string>
+			<key>Module</key>
+			<string>PBXDebugBreakpointsModule</string>
+			<key>Name</key>
+			<string>Debug Breakpoints Tool</string>
+		</dict>
+		<dict>
+			<key>BundleLoadPath</key>
+			<string></string>
+			<key>MaxInstances</key>
+			<string>n</string>
+			<key>Module</key>
+			<string>XCDockableInspector</string>
+			<key>Name</key>
+			<string>Inspector</string>
+		</dict>
+		<dict>
+			<key>BundleLoadPath</key>
+			<string></string>
+			<key>MaxInstances</key>
+			<string>n</string>
+			<key>Module</key>
+			<string>PBXOpenQuicklyModule</string>
+			<key>Name</key>
+			<string>Open Quickly Tool</string>
+		</dict>
+		<dict>
+			<key>BundleLoadPath</key>
+			<string></string>
+			<key>MaxInstances</key>
+			<string>1</string>
+			<key>Module</key>
+			<string>PBXDebugSessionModule</string>
+			<key>Name</key>
+			<string>Debugger</string>
+		</dict>
+		<dict>
+			<key>BundleLoadPath</key>
+			<string></string>
+			<key>MaxInstances</key>
+			<string>1</string>
+			<key>Module</key>
+			<string>PBXDebugCLIModule</string>
+			<key>Name</key>
+			<string>Debug Console</string>
+		</dict>
+		<dict>
+			<key>BundleLoadPath</key>
+			<string></string>
+			<key>MaxInstances</key>
+			<string>n</string>
+			<key>Module</key>
+			<string>XCSnapshotModule</string>
+			<key>Name</key>
+			<string>Snapshots Tool</string>
+		</dict>
+	</array>
+	<key>BundlePath</key>
+	<string>/Developer/Library/PrivateFrameworks/DevToolsInterface.framework/Resources</string>
+	<key>Description</key>
+	<string>DefaultDescriptionKey</string>
+	<key>DockingSystemVisible</key>
+	<false/>
+	<key>Extension</key>
+	<string>mode1v3</string>
+	<key>FavBarConfig</key>
+	<dict>
+		<key>PBXProjectModuleGUID</key>
+		<string>E5345AC311988B53000CB77F</string>
+		<key>XCBarModuleItemNames</key>
+		<dict/>
+		<key>XCBarModuleItems</key>
+		<array/>
+	</dict>
+	<key>FirstTimeWindowDisplayed</key>
+	<false/>
+	<key>Identifier</key>
+	<string>com.apple.perspectives.project.mode1v3</string>
+	<key>MajorVersion</key>
+	<integer>33</integer>
+	<key>MinorVersion</key>
+	<integer>0</integer>
+	<key>Name</key>
+	<string>Default</string>
+	<key>Notifications</key>
+	<array/>
+	<key>OpenEditors</key>
+	<array>
+		<dict>
+			<key>Content</key>
+			<dict>
+				<key>PBXProjectModuleGUID</key>
+				<string>E5345FB4119B2651000CB77F</string>
+				<key>PBXProjectModuleLabel</key>
+				<string>ZXingWidgetController.m</string>
+				<key>PBXSplitModuleInNavigatorKey</key>
+				<dict>
+					<key>Split0</key>
+					<dict>
+						<key>PBXProjectModuleGUID</key>
+						<string>E5345FB5119B2651000CB77F</string>
+						<key>PBXProjectModuleLabel</key>
+						<string>ZXingWidgetController.m</string>
+						<key>_historyCapacity</key>
+						<integer>0</integer>
+						<key>bookmark</key>
+						<string>E5345FC6119B26BD000CB77F</string>
+						<key>history</key>
+						<array>
+							<string>E5345FA9119B2602000CB77F</string>
+						</array>
+					</dict>
+					<key>SplitCount</key>
+					<string>1</string>
+				</dict>
+				<key>StatusBarVisibility</key>
+				<true/>
+			</dict>
+			<key>Geometry</key>
+			<dict>
+				<key>Frame</key>
+				<string>{{0, 20}, {821, 706}}</string>
+				<key>PBXModuleWindowStatusBarHidden2</key>
+				<false/>
+				<key>RubberWindowFrame</key>
+				<string>36 1508 821 747 0 1200 1920 1080 </string>
+			</dict>
+		</dict>
+	</array>
+	<key>PerspectiveWidths</key>
+	<array>
+		<integer>-1</integer>
+		<integer>-1</integer>
+	</array>
+	<key>Perspectives</key>
+	<array>
+		<dict>
+			<key>ChosenToolbarItems</key>
+			<array>
+				<string>active-combo-popup</string>
+				<string>action</string>
+				<string>NSToolbarFlexibleSpaceItem</string>
+				<string>debugger-enable-breakpoints</string>
+				<string>build-and-go</string>
+				<string>com.apple.ide.PBXToolbarStopButton</string>
+				<string>get-info</string>
+				<string>NSToolbarFlexibleSpaceItem</string>
+				<string>com.apple.pbx.toolbar.searchfield</string>
+			</array>
+			<key>ControllerClassBaseName</key>
+			<string></string>
+			<key>IconName</key>
+			<string>WindowOfProjectWithEditor</string>
+			<key>Identifier</key>
+			<string>perspective.project</string>
+			<key>IsVertical</key>
+			<false/>
+			<key>Layout</key>
+			<array>
+				<dict>
+					<key>ContentConfiguration</key>
+					<dict>
+						<key>PBXBottomSmartGroupGIDs</key>
+						<array>
+							<string>1C37FBAC04509CD000000102</string>
+							<string>1C37FAAC04509CD000000102</string>
+							<string>1C37FABC05509CD000000102</string>
+							<string>1C37FABC05539CD112110102</string>
+							<string>E2644B35053B69B200211256</string>
+							<string>1C37FABC04509CD000100104</string>
+							<string>1CC0EA4004350EF90044410B</string>
+							<string>1CC0EA4004350EF90041110B</string>
+						</array>
+						<key>PBXProjectModuleGUID</key>
+						<string>1CE0B1FE06471DED0097A5F4</string>
+						<key>PBXProjectModuleLabel</key>
+						<string>Files</string>
+						<key>PBXProjectStructureProvided</key>
+						<string>yes</string>
+						<key>PBXSmartGroupTreeModuleColumnData</key>
+						<dict>
+							<key>PBXSmartGroupTreeModuleColumnWidthsKey</key>
+							<array>
+								<real>206</real>
+							</array>
+							<key>PBXSmartGroupTreeModuleColumnsKey_v4</key>
+							<array>
+								<string>MainColumn</string>
+							</array>
+						</dict>
+						<key>PBXSmartGroupTreeModuleOutlineStateKey_v7</key>
+						<dict>
+							<key>PBXSmartGroupTreeModuleOutlineStateExpansionKey</key>
+							<array>
+								<string>0867D691FE84028FC02AAC07</string>
+								<string>E53458B311987396000CB77F</string>
+								<string>E53458B411987396000CB77F</string>
+								<string>08FB77AEFE84172EC02AAC07</string>
+								<string>32C88DFF0371C24200C91783</string>
+								<string>0867D69AFE84028FC02AAC07</string>
+								<string>E5345D2811999F53000CB77F</string>
+								<string>034768DFFF38A50411DB9C8B</string>
+								<string>1C37FBAC04509CD000000102</string>
+								<string>1C37FABC05509CD000000102</string>
+							</array>
+							<key>PBXSmartGroupTreeModuleOutlineStateSelectionKey</key>
+							<array>
+								<array>
+									<integer>40</integer>
+									<integer>27</integer>
+									<integer>0</integer>
+								</array>
+							</array>
+							<key>PBXSmartGroupTreeModuleOutlineStateVisibleRectKey</key>
+							<string>{{0, 0}, {206, 760}}</string>
+						</dict>
+						<key>PBXTopSmartGroupGIDs</key>
+						<array/>
+						<key>XCIncludePerspectivesSwitch</key>
+						<true/>
+						<key>XCSharingToken</key>
+						<string>com.apple.Xcode.GFSharingToken</string>
+					</dict>
+					<key>GeometryConfiguration</key>
+					<dict>
+						<key>Frame</key>
+						<string>{{0, 0}, {223, 778}}</string>
+						<key>GroupTreeTableConfiguration</key>
+						<array>
+							<string>MainColumn</string>
+							<real>206</real>
+						</array>
+						<key>RubberWindowFrame</key>
+						<string>23 190 1142 819 0 0 1920 1178 </string>
+					</dict>
+					<key>Module</key>
+					<string>PBXSmartGroupTreeModule</string>
+					<key>Proportion</key>
+					<string>223pt</string>
+				</dict>
+				<dict>
+					<key>Dock</key>
+					<array>
+						<dict>
+							<key>BecomeActive</key>
+							<true/>
+							<key>ContentConfiguration</key>
+							<dict>
+								<key>PBXProjectModuleGUID</key>
+								<string>1CE0B20306471E060097A5F4</string>
+								<key>PBXProjectModuleLabel</key>
+								<string>ZXingWidgetController.m</string>
+								<key>PBXSplitModuleInNavigatorKey</key>
+								<dict>
+									<key>Split0</key>
+									<dict>
+										<key>PBXProjectModuleGUID</key>
+										<string>1CE0B20406471E060097A5F4</string>
+										<key>PBXProjectModuleLabel</key>
+										<string>ZXingWidgetController.m</string>
+										<key>_historyCapacity</key>
+										<integer>0</integer>
+										<key>bookmark</key>
+										<string>E5345FC5119B26BD000CB77F</string>
+										<key>history</key>
+										<array>
+											<string>E5345CAF1198EE8B000CB77F</string>
+											<string>E5345E51119AE2DE000CB77F</string>
+											<string>E5345E6A119AE4BB000CB77F</string>
+											<string>E5345E6B119AE4BB000CB77F</string>
+											<string>E5345E74119AE5C4000CB77F</string>
+											<string>E5345E75119AE5C4000CB77F</string>
+											<string>E5345E76119AE5C4000CB77F</string>
+											<string>E5345E78119AE5C4000CB77F</string>
+											<string>E5345EC6119AF8AE000CB77F</string>
+											<string>E5345EC7119AF8AE000CB77F</string>
+											<string>E5345EC8119AF8AE000CB77F</string>
+											<string>E5345EC9119AF8AE000CB77F</string>
+											<string>E5345F10119B0503000CB77F</string>
+											<string>E5345F11119B0503000CB77F</string>
+											<string>E5345F12119B0503000CB77F</string>
+											<string>E5345F34119B094C000CB77F</string>
+											<string>E5345F35119B094C000CB77F</string>
+											<string>E5345F39119B094C000CB77F</string>
+											<string>E5345F72119B12AF000CB77F</string>
+											<string>E5345FAC119B2651000CB77F</string>
+											<string>E5345FAD119B2651000CB77F</string>
+											<string>E5345FAE119B2651000CB77F</string>
+											<string>E5345FAF119B2651000CB77F</string>
+											<string>E5345FB0119B2651000CB77F</string>
+										</array>
+									</dict>
+									<key>SplitCount</key>
+									<string>1</string>
+								</dict>
+								<key>StatusBarVisibility</key>
+								<true/>
+							</dict>
+							<key>GeometryConfiguration</key>
+							<dict>
+								<key>Frame</key>
+								<string>{{0, 0}, {914, 587}}</string>
+								<key>RubberWindowFrame</key>
+								<string>23 190 1142 819 0 0 1920 1178 </string>
+							</dict>
+							<key>Module</key>
+							<string>PBXNavigatorGroup</string>
+							<key>Proportion</key>
+							<string>587pt</string>
+						</dict>
+						<dict>
+							<key>ContentConfiguration</key>
+							<dict>
+								<key>PBXProjectModuleGUID</key>
+								<string>1CE0B20506471E060097A5F4</string>
+								<key>PBXProjectModuleLabel</key>
+								<string>Detail</string>
+							</dict>
+							<key>GeometryConfiguration</key>
+							<dict>
+								<key>Frame</key>
+								<string>{{0, 592}, {914, 186}}</string>
+								<key>RubberWindowFrame</key>
+								<string>23 190 1142 819 0 0 1920 1178 </string>
+							</dict>
+							<key>Module</key>
+							<string>XCDetailModule</string>
+							<key>Proportion</key>
+							<string>186pt</string>
+						</dict>
+					</array>
+					<key>Proportion</key>
+					<string>914pt</string>
+				</dict>
+			</array>
+			<key>Name</key>
+			<string>Project</string>
+			<key>ServiceClasses</key>
+			<array>
+				<string>XCModuleDock</string>
+				<string>PBXSmartGroupTreeModule</string>
+				<string>XCModuleDock</string>
+				<string>PBXNavigatorGroup</string>
+				<string>XCDetailModule</string>
+			</array>
+			<key>TableOfContents</key>
+			<array>
+				<string>E5345FB2119B2651000CB77F</string>
+				<string>1CE0B1FE06471DED0097A5F4</string>
+				<string>E5345FB3119B2651000CB77F</string>
+				<string>1CE0B20306471E060097A5F4</string>
+				<string>1CE0B20506471E060097A5F4</string>
+			</array>
+			<key>ToolbarConfigUserDefaultsMinorVersion</key>
+			<string>2</string>
+			<key>ToolbarConfiguration</key>
+			<string>xcode.toolbar.config.defaultV3</string>
+		</dict>
+		<dict>
+			<key>ControllerClassBaseName</key>
+			<string></string>
+			<key>IconName</key>
+			<string>WindowOfProject</string>
+			<key>Identifier</key>
+			<string>perspective.morph</string>
+			<key>IsVertical</key>
+			<integer>0</integer>
+			<key>Layout</key>
+			<array>
+				<dict>
+					<key>BecomeActive</key>
+					<integer>1</integer>
+					<key>ContentConfiguration</key>
+					<dict>
+						<key>PBXBottomSmartGroupGIDs</key>
+						<array>
+							<string>1C37FBAC04509CD000000102</string>
+							<string>1C37FAAC04509CD000000102</string>
+							<string>1C08E77C0454961000C914BD</string>
+							<string>1C37FABC05509CD000000102</string>
+							<string>1C37FABC05539CD112110102</string>
+							<string>E2644B35053B69B200211256</string>
+							<string>1C37FABC04509CD000100104</string>
+							<string>1CC0EA4004350EF90044410B</string>
+							<string>1CC0EA4004350EF90041110B</string>
+						</array>
+						<key>PBXProjectModuleGUID</key>
+						<string>11E0B1FE06471DED0097A5F4</string>
+						<key>PBXProjectModuleLabel</key>
+						<string>Files</string>
+						<key>PBXProjectStructureProvided</key>
+						<string>yes</string>
+						<key>PBXSmartGroupTreeModuleColumnData</key>
+						<dict>
+							<key>PBXSmartGroupTreeModuleColumnWidthsKey</key>
+							<array>
+								<real>186</real>
+							</array>
+							<key>PBXSmartGroupTreeModuleColumnsKey_v4</key>
+							<array>
+								<string>MainColumn</string>
+							</array>
+						</dict>
+						<key>PBXSmartGroupTreeModuleOutlineStateKey_v7</key>
+						<dict>
+							<key>PBXSmartGroupTreeModuleOutlineStateExpansionKey</key>
+							<array>
+								<string>29B97314FDCFA39411CA2CEA</string>
+								<string>1C37FABC05509CD000000102</string>
+							</array>
+							<key>PBXSmartGroupTreeModuleOutlineStateSelectionKey</key>
+							<array>
+								<array>
+									<integer>0</integer>
+								</array>
+							</array>
+							<key>PBXSmartGroupTreeModuleOutlineStateVisibleRectKey</key>
+							<string>{{0, 0}, {186, 337}}</string>
+						</dict>
+						<key>PBXTopSmartGroupGIDs</key>
+						<array/>
+						<key>XCIncludePerspectivesSwitch</key>
+						<integer>1</integer>
+						<key>XCSharingToken</key>
+						<string>com.apple.Xcode.GFSharingToken</string>
+					</dict>
+					<key>GeometryConfiguration</key>
+					<dict>
+						<key>Frame</key>
+						<string>{{0, 0}, {203, 355}}</string>
+						<key>GroupTreeTableConfiguration</key>
+						<array>
+							<string>MainColumn</string>
+							<real>186</real>
+						</array>
+						<key>RubberWindowFrame</key>
+						<string>373 269 690 397 0 0 1440 878 </string>
+					</dict>
+					<key>Module</key>
+					<string>PBXSmartGroupTreeModule</string>
+					<key>Proportion</key>
+					<string>100%</string>
+				</dict>
+			</array>
+			<key>Name</key>
+			<string>Morph</string>
+			<key>PreferredWidth</key>
+			<integer>300</integer>
+			<key>ServiceClasses</key>
+			<array>
+				<string>XCModuleDock</string>
+				<string>PBXSmartGroupTreeModule</string>
+			</array>
+			<key>TableOfContents</key>
+			<array>
+				<string>11E0B1FE06471DED0097A5F4</string>
+			</array>
+			<key>ToolbarConfiguration</key>
+			<string>xcode.toolbar.config.default.shortV3</string>
+		</dict>
+	</array>
+	<key>PerspectivesBarVisible</key>
+	<false/>
+	<key>ShelfIsVisible</key>
+	<false/>
+	<key>SourceDescription</key>
+	<string>file at '/Developer/Library/PrivateFrameworks/DevToolsInterface.framework/Resources/XCPerspectivesSpecificationMode1.xcperspec'</string>
+	<key>StatusbarIsVisible</key>
+	<true/>
+	<key>TimeStamp</key>
+	<real>0.0</real>
+	<key>ToolbarConfigUserDefaultsMinorVersion</key>
+	<string>2</string>
+	<key>ToolbarDisplayMode</key>
+	<integer>1</integer>
+	<key>ToolbarIsVisible</key>
+	<true/>
+	<key>ToolbarSizeMode</key>
+	<integer>1</integer>
+	<key>Type</key>
+	<string>Perspectives</string>
+	<key>UpdateMessage</key>
+	<string>The Default Workspace in this version of Xcode now includes support to hide and show the detail view (what has been referred to as the "Metro-Morph" feature).  You must discard your current Default Workspace settings and update to the latest Default Workspace in order to gain this feature.  Do you wish to update to the latest Workspace defaults for project '%@'?</string>
+	<key>WindowJustification</key>
+	<integer>5</integer>
+	<key>WindowOrderList</key>
+	<array>
+		<string>E5345AC411988B53000CB77F</string>
+		<string>E5345FB4119B2651000CB77F</string>
+		<string>/Users/dkavanagh/zxing/iphone/ZXingWidget/ZXingWidget.xcodeproj</string>
+	</array>
+	<key>WindowString</key>
+	<string>23 190 1142 819 0 0 1920 1178 </string>
+	<key>WindowToolsV3</key>
+	<array>
+		<dict>
+			<key>FirstTimeWindowDisplayed</key>
+			<false/>
+			<key>Identifier</key>
+			<string>windowTool.build</string>
+			<key>IsVertical</key>
+			<true/>
+			<key>Layout</key>
+			<array>
+				<dict>
+					<key>Dock</key>
+					<array>
+						<dict>
+							<key>ContentConfiguration</key>
+							<dict>
+								<key>PBXProjectModuleGUID</key>
+								<string>1CD0528F0623707200166675</string>
+								<key>PBXProjectModuleLabel</key>
+								<string>ZXingWidgetController.m</string>
+								<key>StatusBarVisibility</key>
+								<true/>
+							</dict>
+							<key>GeometryConfiguration</key>
+							<dict>
+								<key>Frame</key>
+								<string>{{0, 0}, {872, 312}}</string>
+								<key>RubberWindowFrame</key>
+								<string>1111 405 872 594 0 0 1920 1178 </string>
+							</dict>
+							<key>Module</key>
+							<string>PBXNavigatorGroup</string>
+							<key>Proportion</key>
+							<string>312pt</string>
+						</dict>
+						<dict>
+							<key>BecomeActive</key>
+							<true/>
+							<key>ContentConfiguration</key>
+							<dict>
+								<key>PBXProjectModuleGUID</key>
+								<string>XCMainBuildResultsModuleGUID</string>
+								<key>PBXProjectModuleLabel</key>
+								<string>Build Results</string>
+								<key>XCBuildResultsTrigger_Collapse</key>
+								<integer>1021</integer>
+								<key>XCBuildResultsTrigger_Open</key>
+								<integer>1011</integer>
+							</dict>
+							<key>GeometryConfiguration</key>
+							<dict>
+								<key>Frame</key>
+								<string>{{0, 317}, {872, 236}}</string>
+								<key>RubberWindowFrame</key>
+								<string>1111 405 872 594 0 0 1920 1178 </string>
+							</dict>
+							<key>Module</key>
+							<string>PBXBuildResultsModule</string>
+							<key>Proportion</key>
+							<string>236pt</string>
+						</dict>
+					</array>
+					<key>Proportion</key>
+					<string>553pt</string>
+				</dict>
+			</array>
+			<key>Name</key>
+			<string>Build Results</string>
+			<key>ServiceClasses</key>
+			<array>
+				<string>PBXBuildResultsModule</string>
+			</array>
+			<key>StatusbarIsVisible</key>
+			<true/>
+			<key>TableOfContents</key>
+			<array>
+				<string>E5345AC411988B53000CB77F</string>
+				<string>E5345FB7119B2651000CB77F</string>
+				<string>1CD0528F0623707200166675</string>
+				<string>XCMainBuildResultsModuleGUID</string>
+			</array>
+			<key>ToolbarConfiguration</key>
+			<string>xcode.toolbar.config.buildV3</string>
+			<key>WindowContentMinSize</key>
+			<string>486 300</string>
+			<key>WindowString</key>
+			<string>1111 405 872 594 0 0 1920 1178 </string>
+			<key>WindowToolGUID</key>
+			<string>E5345AC411988B53000CB77F</string>
+			<key>WindowToolIsVisible</key>
+			<false/>
+		</dict>
+		<dict>
+			<key>FirstTimeWindowDisplayed</key>
+			<false/>
+			<key>Identifier</key>
+			<string>windowTool.debugger</string>
+			<key>IsVertical</key>
+			<true/>
+			<key>Layout</key>
+			<array>
+				<dict>
+					<key>Dock</key>
+					<array>
+						<dict>
+							<key>ContentConfiguration</key>
+							<dict>
+								<key>Debugger</key>
+								<dict>
+									<key>HorizontalSplitView</key>
+									<dict>
+										<key>_collapsingFrameDimension</key>
+										<real>0.0</real>
+										<key>_indexOfCollapsedView</key>
+										<integer>0</integer>
+										<key>_percentageOfCollapsedView</key>
+										<real>0.0</real>
+										<key>isCollapsed</key>
+										<string>yes</string>
+										<key>sizes</key>
+										<array>
+											<string>{{0, 0}, {316, 185}}</string>
+											<string>{{316, 0}, {378, 185}}</string>
+										</array>
+									</dict>
+									<key>VerticalSplitView</key>
+									<dict>
+										<key>_collapsingFrameDimension</key>
+										<real>0.0</real>
+										<key>_indexOfCollapsedView</key>
+										<integer>0</integer>
+										<key>_percentageOfCollapsedView</key>
+										<real>0.0</real>
+										<key>isCollapsed</key>
+										<string>yes</string>
+										<key>sizes</key>
+										<array>
+											<string>{{0, 0}, {694, 185}}</string>
+											<string>{{0, 185}, {694, 196}}</string>
+										</array>
+									</dict>
+								</dict>
+								<key>LauncherConfigVersion</key>
+								<string>8</string>
+								<key>PBXProjectModuleGUID</key>
+								<string>1C162984064C10D400B95A72</string>
+								<key>PBXProjectModuleLabel</key>
+								<string>Debug - GLUTExamples (Underwater)</string>
+							</dict>
+							<key>GeometryConfiguration</key>
+							<dict>
+								<key>DebugConsoleVisible</key>
+								<string>None</string>
+								<key>DebugConsoleWindowFrame</key>
+								<string>{{200, 200}, {500, 300}}</string>
+								<key>DebugSTDIOWindowFrame</key>
+								<string>{{200, 200}, {500, 300}}</string>
+								<key>Frame</key>
+								<string>{{0, 0}, {694, 381}}</string>
+								<key>PBXDebugSessionStackFrameViewKey</key>
+								<dict>
+									<key>DebugVariablesTableConfiguration</key>
+									<array>
+										<string>Name</string>
+										<real>120</real>
+										<string>Value</string>
+										<real>85</real>
+										<string>Summary</string>
+										<real>148</real>
+									</array>
+									<key>Frame</key>
+									<string>{{316, 0}, {378, 185}}</string>
+									<key>RubberWindowFrame</key>
+									<string>51 501 694 422 0 0 1920 1178 </string>
+								</dict>
+								<key>RubberWindowFrame</key>
+								<string>51 501 694 422 0 0 1920 1178 </string>
+							</dict>
+							<key>Module</key>
+							<string>PBXDebugSessionModule</string>
+							<key>Proportion</key>
+							<string>381pt</string>
+						</dict>
+					</array>
+					<key>Proportion</key>
+					<string>381pt</string>
+				</dict>
+			</array>
+			<key>Name</key>
+			<string>Debugger</string>
+			<key>ServiceClasses</key>
+			<array>
+				<string>PBXDebugSessionModule</string>
+			</array>
+			<key>StatusbarIsVisible</key>
+			<true/>
+			<key>TableOfContents</key>
+			<array>
+				<string>1CD10A99069EF8BA00B06720</string>
+				<string>E5345CD21198F149000CB77F</string>
+				<string>1C162984064C10D400B95A72</string>
+				<string>E5345CD31198F149000CB77F</string>
+				<string>E5345CD41198F149000CB77F</string>
+				<string>E5345CD51198F149000CB77F</string>
+				<string>E5345CD61198F149000CB77F</string>
+				<string>E5345CD71198F149000CB77F</string>
+			</array>
+			<key>ToolbarConfiguration</key>
+			<string>xcode.toolbar.config.debugV3</string>
+			<key>WindowString</key>
+			<string>51 501 694 422 0 0 1920 1178 </string>
+			<key>WindowToolGUID</key>
+			<string>1CD10A99069EF8BA00B06720</string>
+			<key>WindowToolIsVisible</key>
+			<false/>
+		</dict>
+		<dict>
+			<key>Identifier</key>
+			<string>windowTool.find</string>
+			<key>Layout</key>
+			<array>
+				<dict>
+					<key>Dock</key>
+					<array>
+						<dict>
+							<key>Dock</key>
+							<array>
+								<dict>
+									<key>ContentConfiguration</key>
+									<dict>
+										<key>PBXProjectModuleGUID</key>
+										<string>1CDD528C0622207200134675</string>
+										<key>PBXProjectModuleLabel</key>
+										<string>&lt;No Editor&gt;</string>
+										<key>PBXSplitModuleInNavigatorKey</key>
+										<dict>
+											<key>Split0</key>
+											<dict>
+												<key>PBXProjectModuleGUID</key>
+												<string>1CD0528D0623707200166675</string>
+											</dict>
+											<key>SplitCount</key>
+											<string>1</string>
+										</dict>
+										<key>StatusBarVisibility</key>
+										<integer>1</integer>
+									</dict>
+									<key>GeometryConfiguration</key>
+									<dict>
+										<key>Frame</key>
+										<string>{{0, 0}, {781, 167}}</string>
+										<key>RubberWindowFrame</key>
+										<string>62 385 781 470 0 0 1440 878 </string>
+									</dict>
+									<key>Module</key>
+									<string>PBXNavigatorGroup</string>
+									<key>Proportion</key>
+									<string>781pt</string>
+								</dict>
+							</array>
+							<key>Proportion</key>
+							<string>50%</string>
+						</dict>
+						<dict>
+							<key>BecomeActive</key>
+							<integer>1</integer>
+							<key>ContentConfiguration</key>
+							<dict>
+								<key>PBXProjectModuleGUID</key>
+								<string>1CD0528E0623707200166675</string>
+								<key>PBXProjectModuleLabel</key>
+								<string>Project Find</string>
+							</dict>
+							<key>GeometryConfiguration</key>
+							<dict>
+								<key>Frame</key>
+								<string>{{8, 0}, {773, 254}}</string>
+								<key>RubberWindowFrame</key>
+								<string>62 385 781 470 0 0 1440 878 </string>
+							</dict>
+							<key>Module</key>
+							<string>PBXProjectFindModule</string>
+							<key>Proportion</key>
+							<string>50%</string>
+						</dict>
+					</array>
+					<key>Proportion</key>
+					<string>428pt</string>
+				</dict>
+			</array>
+			<key>Name</key>
+			<string>Project Find</string>
+			<key>ServiceClasses</key>
+			<array>
+				<string>PBXProjectFindModule</string>
+			</array>
+			<key>StatusbarIsVisible</key>
+			<integer>1</integer>
+			<key>TableOfContents</key>
+			<array>
+				<string>1C530D57069F1CE1000CFCEE</string>
+				<string>1C530D58069F1CE1000CFCEE</string>
+				<string>1C530D59069F1CE1000CFCEE</string>
+				<string>1CDD528C0622207200134675</string>
+				<string>1C530D5A069F1CE1000CFCEE</string>
+				<string>1CE0B1FE06471DED0097A5F4</string>
+				<string>1CD0528E0623707200166675</string>
+			</array>
+			<key>WindowString</key>
+			<string>62 385 781 470 0 0 1440 878 </string>
+			<key>WindowToolGUID</key>
+			<string>1C530D57069F1CE1000CFCEE</string>
+			<key>WindowToolIsVisible</key>
+			<integer>0</integer>
+		</dict>
+		<dict>
+			<key>Identifier</key>
+			<string>MENUSEPARATOR</string>
+		</dict>
+		<dict>
+			<key>Identifier</key>
+			<string>windowTool.debuggerConsole</string>
+			<key>Layout</key>
+			<array>
+				<dict>
+					<key>Dock</key>
+					<array>
+						<dict>
+							<key>BecomeActive</key>
+							<integer>1</integer>
+							<key>ContentConfiguration</key>
+							<dict>
+								<key>PBXProjectModuleGUID</key>
+								<string>1C78EAAC065D492600B07095</string>
+								<key>PBXProjectModuleLabel</key>
+								<string>Debugger Console</string>
+							</dict>
+							<key>GeometryConfiguration</key>
+							<dict>
+								<key>Frame</key>
+								<string>{{0, 0}, {650, 250}}</string>
+								<key>RubberWindowFrame</key>
+								<string>516 632 650 250 0 0 1680 1027 </string>
+							</dict>
+							<key>Module</key>
+							<string>PBXDebugCLIModule</string>
+							<key>Proportion</key>
+							<string>209pt</string>
+						</dict>
+					</array>
+					<key>Proportion</key>
+					<string>209pt</string>
+				</dict>
+			</array>
+			<key>Name</key>
+			<string>Debugger Console</string>
+			<key>ServiceClasses</key>
+			<array>
+				<string>PBXDebugCLIModule</string>
+			</array>
+			<key>StatusbarIsVisible</key>
+			<integer>1</integer>
+			<key>TableOfContents</key>
+			<array>
+				<string>1C78EAAD065D492600B07095</string>
+				<string>1C78EAAE065D492600B07095</string>
+				<string>1C78EAAC065D492600B07095</string>
+			</array>
+			<key>ToolbarConfiguration</key>
+			<string>xcode.toolbar.config.consoleV3</string>
+			<key>WindowString</key>
+			<string>650 41 650 250 0 0 1280 1002 </string>
+			<key>WindowToolGUID</key>
+			<string>1C78EAAD065D492600B07095</string>
+			<key>WindowToolIsVisible</key>
+			<integer>0</integer>
+		</dict>
+		<dict>
+			<key>Identifier</key>
+			<string>windowTool.snapshots</string>
+			<key>Layout</key>
+			<array>
+				<dict>
+					<key>Dock</key>
+					<array>
+						<dict>
+							<key>Module</key>
+							<string>XCSnapshotModule</string>
+							<key>Proportion</key>
+							<string>100%</string>
+						</dict>
+					</array>
+					<key>Proportion</key>
+					<string>100%</string>
+				</dict>
+			</array>
+			<key>Name</key>
+			<string>Snapshots</string>
+			<key>ServiceClasses</key>
+			<array>
+				<string>XCSnapshotModule</string>
+			</array>
+			<key>StatusbarIsVisible</key>
+			<string>Yes</string>
+			<key>ToolbarConfiguration</key>
+			<string>xcode.toolbar.config.snapshots</string>
+			<key>WindowString</key>
+			<string>315 824 300 550 0 0 1440 878 </string>
+			<key>WindowToolIsVisible</key>
+			<string>Yes</string>
+		</dict>
+		<dict>
+			<key>Identifier</key>
+			<string>windowTool.scm</string>
+			<key>Layout</key>
+			<array>
+				<dict>
+					<key>Dock</key>
+					<array>
+						<dict>
+							<key>ContentConfiguration</key>
+							<dict>
+								<key>PBXProjectModuleGUID</key>
+								<string>1C78EAB2065D492600B07095</string>
+								<key>PBXProjectModuleLabel</key>
+								<string>&lt;No Editor&gt;</string>
+								<key>PBXSplitModuleInNavigatorKey</key>
+								<dict>
+									<key>Split0</key>
+									<dict>
+										<key>PBXProjectModuleGUID</key>
+										<string>1C78EAB3065D492600B07095</string>
+									</dict>
+									<key>SplitCount</key>
+									<string>1</string>
+								</dict>
+								<key>StatusBarVisibility</key>
+								<integer>1</integer>
+							</dict>
+							<key>GeometryConfiguration</key>
+							<dict>
+								<key>Frame</key>
+								<string>{{0, 0}, {452, 0}}</string>
+								<key>RubberWindowFrame</key>
+								<string>743 379 452 308 0 0 1280 1002 </string>
+							</dict>
+							<key>Module</key>
+							<string>PBXNavigatorGroup</string>
+							<key>Proportion</key>
+							<string>0pt</string>
+						</dict>
+						<dict>
+							<key>BecomeActive</key>
+							<integer>1</integer>
+							<key>ContentConfiguration</key>
+							<dict>
+								<key>PBXProjectModuleGUID</key>
+								<string>1CD052920623707200166675</string>
+								<key>PBXProjectModuleLabel</key>
+								<string>SCM</string>
+							</dict>
+							<key>GeometryConfiguration</key>
+							<dict>
+								<key>ConsoleFrame</key>
+								<string>{{0, 259}, {452, 0}}</string>
+								<key>Frame</key>
+								<string>{{0, 7}, {452, 259}}</string>
+								<key>RubberWindowFrame</key>
+								<string>743 379 452 308 0 0 1280 1002 </string>
+								<key>TableConfiguration</key>
+								<array>
+									<string>Status</string>
+									<real>30</real>
+									<string>FileName</string>
+									<real>199</real>
+									<string>Path</string>
+									<real>197.0950012207031</real>
+								</array>
+								<key>TableFrame</key>
+								<string>{{0, 0}, {452, 250}}</string>
+							</dict>
+							<key>Module</key>
+							<string>PBXCVSModule</string>
+							<key>Proportion</key>
+							<string>262pt</string>
+						</dict>
+					</array>
+					<key>Proportion</key>
+					<string>266pt</string>
+				</dict>
+			</array>
+			<key>Name</key>
+			<string>SCM</string>
+			<key>ServiceClasses</key>
+			<array>
+				<string>PBXCVSModule</string>
+			</array>
+			<key>StatusbarIsVisible</key>
+			<integer>1</integer>
+			<key>TableOfContents</key>
+			<array>
+				<string>1C78EAB4065D492600B07095</string>
+				<string>1C78EAB5065D492600B07095</string>
+				<string>1C78EAB2065D492600B07095</string>
+				<string>1CD052920623707200166675</string>
+			</array>
+			<key>ToolbarConfiguration</key>
+			<string>xcode.toolbar.config.scm</string>
+			<key>WindowString</key>
+			<string>743 379 452 308 0 0 1280 1002 </string>
+		</dict>
+		<dict>
+			<key>Identifier</key>
+			<string>windowTool.breakpoints</string>
+			<key>IsVertical</key>
+			<integer>0</integer>
+			<key>Layout</key>
+			<array>
+				<dict>
+					<key>Dock</key>
+					<array>
+						<dict>
+							<key>BecomeActive</key>
+							<integer>1</integer>
+							<key>ContentConfiguration</key>
+							<dict>
+								<key>PBXBottomSmartGroupGIDs</key>
+								<array>
+									<string>1C77FABC04509CD000000102</string>
+								</array>
+								<key>PBXProjectModuleGUID</key>
+								<string>1CE0B1FE06471DED0097A5F4</string>
+								<key>PBXProjectModuleLabel</key>
+								<string>Files</string>
+								<key>PBXProjectStructureProvided</key>
+								<string>no</string>
+								<key>PBXSmartGroupTreeModuleColumnData</key>
+								<dict>
+									<key>PBXSmartGroupTreeModuleColumnWidthsKey</key>
+									<array>
+										<real>168</real>
+									</array>
+									<key>PBXSmartGroupTreeModuleColumnsKey_v4</key>
+									<array>
+										<string>MainColumn</string>
+									</array>
+								</dict>
+								<key>PBXSmartGroupTreeModuleOutlineStateKey_v7</key>
+								<dict>
+									<key>PBXSmartGroupTreeModuleOutlineStateExpansionKey</key>
+									<array>
+										<string>1C77FABC04509CD000000102</string>
+									</array>
+									<key>PBXSmartGroupTreeModuleOutlineStateSelectionKey</key>
+									<array>
+										<array>
+											<integer>0</integer>
+										</array>
+									</array>
+									<key>PBXSmartGroupTreeModuleOutlineStateVisibleRectKey</key>
+									<string>{{0, 0}, {168, 350}}</string>
+								</dict>
+								<key>PBXTopSmartGroupGIDs</key>
+								<array/>
+								<key>XCIncludePerspectivesSwitch</key>
+								<integer>0</integer>
+							</dict>
+							<key>GeometryConfiguration</key>
+							<dict>
+								<key>Frame</key>
+								<string>{{0, 0}, {185, 368}}</string>
+								<key>GroupTreeTableConfiguration</key>
+								<array>
+									<string>MainColumn</string>
+									<real>168</real>
+								</array>
+								<key>RubberWindowFrame</key>
+								<string>315 424 744 409 0 0 1440 878 </string>
+							</dict>
+							<key>Module</key>
+							<string>PBXSmartGroupTreeModule</string>
+							<key>Proportion</key>
+							<string>185pt</string>
+						</dict>
+						<dict>
+							<key>ContentConfiguration</key>
+							<dict>
+								<key>PBXProjectModuleGUID</key>
+								<string>1CA1AED706398EBD00589147</string>
+								<key>PBXProjectModuleLabel</key>
+								<string>Detail</string>
+							</dict>
+							<key>GeometryConfiguration</key>
+							<dict>
+								<key>Frame</key>
+								<string>{{190, 0}, {554, 368}}</string>
+								<key>RubberWindowFrame</key>
+								<string>315 424 744 409 0 0 1440 878 </string>
+							</dict>
+							<key>Module</key>
+							<string>XCDetailModule</string>
+							<key>Proportion</key>
+							<string>554pt</string>
+						</dict>
+					</array>
+					<key>Proportion</key>
+					<string>368pt</string>
+				</dict>
+			</array>
+			<key>MajorVersion</key>
+			<integer>3</integer>
+			<key>MinorVersion</key>
+			<integer>0</integer>
+			<key>Name</key>
+			<string>Breakpoints</string>
+			<key>ServiceClasses</key>
+			<array>
+				<string>PBXSmartGroupTreeModule</string>
+				<string>XCDetailModule</string>
+			</array>
+			<key>StatusbarIsVisible</key>
+			<integer>1</integer>
+			<key>TableOfContents</key>
+			<array>
+				<string>1CDDB66807F98D9800BB5817</string>
+				<string>1CDDB66907F98D9800BB5817</string>
+				<string>1CE0B1FE06471DED0097A5F4</string>
+				<string>1CA1AED706398EBD00589147</string>
+			</array>
+			<key>ToolbarConfiguration</key>
+			<string>xcode.toolbar.config.breakpointsV3</string>
+			<key>WindowString</key>
+			<string>315 424 744 409 0 0 1440 878 </string>
+			<key>WindowToolGUID</key>
+			<string>1CDDB66807F98D9800BB5817</string>
+			<key>WindowToolIsVisible</key>
+			<integer>1</integer>
+		</dict>
+		<dict>
+			<key>Identifier</key>
+			<string>windowTool.debugAnimator</string>
+			<key>Layout</key>
+			<array>
+				<dict>
+					<key>Dock</key>
+					<array>
+						<dict>
+							<key>Module</key>
+							<string>PBXNavigatorGroup</string>
+							<key>Proportion</key>
+							<string>100%</string>
+						</dict>
+					</array>
+					<key>Proportion</key>
+					<string>100%</string>
+				</dict>
+			</array>
+			<key>Name</key>
+			<string>Debug Visualizer</string>
+			<key>ServiceClasses</key>
+			<array>
+				<string>PBXNavigatorGroup</string>
+			</array>
+			<key>StatusbarIsVisible</key>
+			<integer>1</integer>
+			<key>ToolbarConfiguration</key>
+			<string>xcode.toolbar.config.debugAnimatorV3</string>
+			<key>WindowString</key>
+			<string>100 100 700 500 0 0 1280 1002 </string>
+		</dict>
+		<dict>
+			<key>Identifier</key>
+			<string>windowTool.bookmarks</string>
+			<key>Layout</key>
+			<array>
+				<dict>
+					<key>Dock</key>
+					<array>
+						<dict>
+							<key>Module</key>
+							<string>PBXBookmarksModule</string>
+							<key>Proportion</key>
+							<string>100%</string>
+						</dict>
+					</array>
+					<key>Proportion</key>
+					<string>100%</string>
+				</dict>
+			</array>
+			<key>Name</key>
+			<string>Bookmarks</string>
+			<key>ServiceClasses</key>
+			<array>
+				<string>PBXBookmarksModule</string>
+			</array>
+			<key>StatusbarIsVisible</key>
+			<integer>0</integer>
+			<key>WindowString</key>
+			<string>538 42 401 187 0 0 1280 1002 </string>
+		</dict>
+		<dict>
+			<key>Identifier</key>
+			<string>windowTool.projectFormatConflicts</string>
+			<key>Layout</key>
+			<array>
+				<dict>
+					<key>Dock</key>
+					<array>
+						<dict>
+							<key>Module</key>
+							<string>XCProjectFormatConflictsModule</string>
+							<key>Proportion</key>
+							<string>100%</string>
+						</dict>
+					</array>
+					<key>Proportion</key>
+					<string>100%</string>
+				</dict>
+			</array>
+			<key>Name</key>
+			<string>Project Format Conflicts</string>
+			<key>ServiceClasses</key>
+			<array>
+				<string>XCProjectFormatConflictsModule</string>
+			</array>
+			<key>StatusbarIsVisible</key>
+			<integer>0</integer>
+			<key>WindowContentMinSize</key>
+			<string>450 300</string>
+			<key>WindowString</key>
+			<string>50 850 472 307 0 0 1440 877</string>
+		</dict>
+		<dict>
+			<key>Identifier</key>
+			<string>windowTool.classBrowser</string>
+			<key>Layout</key>
+			<array>
+				<dict>
+					<key>Dock</key>
+					<array>
+						<dict>
+							<key>BecomeActive</key>
+							<integer>1</integer>
+							<key>ContentConfiguration</key>
+							<dict>
+								<key>OptionsSetName</key>
+								<string>Hierarchy, all classes</string>
+								<key>PBXProjectModuleGUID</key>
+								<string>1CA6456E063B45B4001379D8</string>
+								<key>PBXProjectModuleLabel</key>
+								<string>Class Browser - NSObject</string>
+							</dict>
+							<key>GeometryConfiguration</key>
+							<dict>
+								<key>ClassesFrame</key>
+								<string>{{0, 0}, {374, 96}}</string>
+								<key>ClassesTreeTableConfiguration</key>
+								<array>
+									<string>PBXClassNameColumnIdentifier</string>
+									<real>208</real>
+									<string>PBXClassBookColumnIdentifier</string>
+									<real>22</real>
+								</array>
+								<key>Frame</key>
+								<string>{{0, 0}, {630, 331}}</string>
+								<key>MembersFrame</key>
+								<string>{{0, 105}, {374, 395}}</string>
+								<key>MembersTreeTableConfiguration</key>
+								<array>
+									<string>PBXMemberTypeIconColumnIdentifier</string>
+									<real>22</real>
+									<string>PBXMemberNameColumnIdentifier</string>
+									<real>216</real>
+									<string>PBXMemberTypeColumnIdentifier</string>
+									<real>97</real>
+									<string>PBXMemberBookColumnIdentifier</string>
+									<real>22</real>
+								</array>
+								<key>PBXModuleWindowStatusBarHidden2</key>
+								<integer>1</integer>
+								<key>RubberWindowFrame</key>
+								<string>385 179 630 352 0 0 1440 878 </string>
+							</dict>
+							<key>Module</key>
+							<string>PBXClassBrowserModule</string>
+							<key>Proportion</key>
+							<string>332pt</string>
+						</dict>
+					</array>
+					<key>Proportion</key>
+					<string>332pt</string>
+				</dict>
+			</array>
+			<key>Name</key>
+			<string>Class Browser</string>
+			<key>ServiceClasses</key>
+			<array>
+				<string>PBXClassBrowserModule</string>
+			</array>
+			<key>StatusbarIsVisible</key>
+			<integer>0</integer>
+			<key>TableOfContents</key>
+			<array>
+				<string>1C0AD2AF069F1E9B00FABCE6</string>
+				<string>1C0AD2B0069F1E9B00FABCE6</string>
+				<string>1CA6456E063B45B4001379D8</string>
+			</array>
+			<key>ToolbarConfiguration</key>
+			<string>xcode.toolbar.config.classbrowser</string>
+			<key>WindowString</key>
+			<string>385 179 630 352 0 0 1440 878 </string>
+			<key>WindowToolGUID</key>
+			<string>1C0AD2AF069F1E9B00FABCE6</string>
+			<key>WindowToolIsVisible</key>
+			<integer>0</integer>
+		</dict>
+		<dict>
+			<key>Identifier</key>
+			<string>windowTool.refactoring</string>
+			<key>IncludeInToolsMenu</key>
+			<integer>0</integer>
+			<key>Layout</key>
+			<array>
+				<dict>
+					<key>Dock</key>
+					<array>
+						<dict>
+							<key>BecomeActive</key>
+							<integer>1</integer>
+							<key>GeometryConfiguration</key>
+							<dict>
+								<key>Frame</key>
+								<string>{0, 0}, {500, 335}</string>
+								<key>RubberWindowFrame</key>
+								<string>{0, 0}, {500, 335}</string>
+							</dict>
+							<key>Module</key>
+							<string>XCRefactoringModule</string>
+							<key>Proportion</key>
+							<string>100%</string>
+						</dict>
+					</array>
+					<key>Proportion</key>
+					<string>100%</string>
+				</dict>
+			</array>
+			<key>Name</key>
+			<string>Refactoring</string>
+			<key>ServiceClasses</key>
+			<array>
+				<string>XCRefactoringModule</string>
+			</array>
+			<key>WindowString</key>
+			<string>200 200 500 356 0 0 1920 1200 </string>
+		</dict>
+	</array>
+</dict>
+</plist>
diff --git a/iphone/ZXingWidget/ZXingWidget.xcodeproj/dkavanagh.pbxuser b/iphone/ZXingWidget/ZXingWidget.xcodeproj/dkavanagh.pbxuser
new file mode 100644
index 0000000..a77b797
--- /dev/null
+++ b/iphone/ZXingWidget/ZXingWidget.xcodeproj/dkavanagh.pbxuser
@@ -0,0 +1,2560 @@
+// !$*UTF8*$!
+{
+	0867D690FE84028FC02AAC07 /* Project object */ = {
+		activeBuildConfigurationName = Debug;
+		activeSDKPreference = iphoneos3.1.3;
+		activeTarget = D2AAC07D0554694100DB518D /* ZXingWidget */;
+		addToTargets = (
+			D2AAC07D0554694100DB518D /* ZXingWidget */,
+		);
+		breakpoints = (
+		);
+		codeSenseManager = E53458881198372D000CB77F /* Code sense */;
+		perUserDictionary = {
+			PBXConfiguration.PBXFileTableDataSource3.PBXFileTableDataSource = {
+				PBXFileTableDataSourceColumnSortingDirectionKey = "-1";
+				PBXFileTableDataSourceColumnSortingKey = PBXFileDataSource_Filename_ColumnID;
+				PBXFileTableDataSourceColumnWidthsKey = (
+					20,
+					675,
+					20,
+					48,
+					43,
+					43,
+					20,
+				);
+				PBXFileTableDataSourceColumnsKey = (
+					PBXFileDataSource_FiletypeID,
+					PBXFileDataSource_Filename_ColumnID,
+					PBXFileDataSource_Built_ColumnID,
+					PBXFileDataSource_ObjectSize_ColumnID,
+					PBXFileDataSource_Errors_ColumnID,
+					PBXFileDataSource_Warnings_ColumnID,
+					PBXFileDataSource_Target_ColumnID,
+				);
+			};
+			PBXConfiguration.PBXFileTableDataSource3.XCSCMDataSource = {
+				PBXFileTableDataSourceColumnSortingDirectionKey = "-1";
+				PBXFileTableDataSourceColumnSortingKey = PBXFileDataSource_Filename_ColumnID;
+				PBXFileTableDataSourceColumnWidthsKey = (
+					20,
+					20,
+					706,
+					20,
+					48.16259765625,
+					43,
+					43,
+					20,
+				);
+				PBXFileTableDataSourceColumnsKey = (
+					PBXFileDataSource_SCM_ColumnID,
+					PBXFileDataSource_FiletypeID,
+					PBXFileDataSource_Filename_ColumnID,
+					PBXFileDataSource_Built_ColumnID,
+					PBXFileDataSource_ObjectSize_ColumnID,
+					PBXFileDataSource_Errors_ColumnID,
+					PBXFileDataSource_Warnings_ColumnID,
+					PBXFileDataSource_Target_ColumnID,
+				);
+			};
+			PBXConfiguration.PBXTargetDataSource.PBXTargetDataSource = {
+				PBXFileTableDataSourceColumnSortingDirectionKey = "-1";
+				PBXFileTableDataSourceColumnSortingKey = PBXFileDataSource_Filename_ColumnID;
+				PBXFileTableDataSourceColumnWidthsKey = (
+					20,
+					690,
+					60,
+					20,
+					48,
+					43,
+					43,
+				);
+				PBXFileTableDataSourceColumnsKey = (
+					PBXFileDataSource_FiletypeID,
+					PBXFileDataSource_Filename_ColumnID,
+					PBXTargetDataSource_PrimaryAttribute,
+					PBXFileDataSource_Built_ColumnID,
+					PBXFileDataSource_ObjectSize_ColumnID,
+					PBXFileDataSource_Errors_ColumnID,
+					PBXFileDataSource_Warnings_ColumnID,
+				);
+			};
+			PBXPerProjectTemplateStateSaveDate = 295380454;
+			PBXWorkspaceStateSaveDate = 295380454;
+		};
+		perUserProjectItems = {
+			E5345AB811988B53000CB77F = E5345AB811988B53000CB77F /* PBXTextBookmark */;
+			E5345AB911988B53000CB77F = E5345AB911988B53000CB77F /* PBXTextBookmark */;
+			E5345ABA11988B53000CB77F = E5345ABA11988B53000CB77F /* PBXTextBookmark */;
+			E5345ABB11988B53000CB77F = E5345ABB11988B53000CB77F /* PBXTextBookmark */;
+			E5345ABC11988B53000CB77F = E5345ABC11988B53000CB77F /* PBXTextBookmark */;
+			E5345ABD11988B53000CB77F = E5345ABD11988B53000CB77F /* PBXTextBookmark */;
+			E5345ABE11988B53000CB77F = E5345ABE11988B53000CB77F /* PBXTextBookmark */;
+			E5345ABF11988B53000CB77F = E5345ABF11988B53000CB77F /* PBXTextBookmark */;
+			E5345AC011988B53000CB77F = E5345AC011988B53000CB77F /* PBXTextBookmark */;
+			E5345C041198D954000CB77F = E5345C041198D954000CB77F /* PBXTextBookmark */;
+			E5345C051198DA1C000CB77F = E5345C051198DA1C000CB77F /* PBXTextBookmark */;
+			E5345C061198DA1C000CB77F = E5345C061198DA1C000CB77F /* PBXTextBookmark */;
+			E5345C071198DA1C000CB77F = E5345C071198DA1C000CB77F /* PBXTextBookmark */;
+			E5345C081198DA1C000CB77F = E5345C081198DA1C000CB77F /* PBXTextBookmark */;
+			E5345C091198DA1C000CB77F = E5345C091198DA1C000CB77F /* PBXTextBookmark */;
+			E5345C0A1198DA1C000CB77F = E5345C0A1198DA1C000CB77F /* PBXTextBookmark */;
+			E5345C301198DC90000CB77F = E5345C301198DC90000CB77F /* PBXTextBookmark */;
+			E5345C631198E1F7000CB77F = E5345C631198E1F7000CB77F /* PBXTextBookmark */;
+			E5345C641198E1F7000CB77F = E5345C641198E1F7000CB77F /* PBXTextBookmark */;
+			E5345CAA1198EE8B000CB77F = E5345CAA1198EE8B000CB77F /* PBXTextBookmark */;
+			E5345CAB1198EE8B000CB77F = E5345CAB1198EE8B000CB77F /* PBXTextBookmark */;
+			E5345CAC1198EE8B000CB77F = E5345CAC1198EE8B000CB77F /* PBXTextBookmark */;
+			E5345CAD1198EE8B000CB77F = E5345CAD1198EE8B000CB77F /* PBXTextBookmark */;
+			E5345CAE1198EE8B000CB77F = E5345CAE1198EE8B000CB77F /* PBXTextBookmark */;
+			E5345CAF1198EE8B000CB77F = E5345CAF1198EE8B000CB77F /* PBXTextBookmark */;
+			E5345CB01198EE8B000CB77F = E5345CB01198EE8B000CB77F /* PBXTextBookmark */;
+			E5345CB11198EE8B000CB77F = E5345CB11198EE8B000CB77F /* PBXTextBookmark */;
+			E5345CB71198F0C9000CB77F = E5345CB71198F0C9000CB77F /* PBXTextBookmark */;
+			E5345CB81198F0C9000CB77F = E5345CB81198F0C9000CB77F /* PBXTextBookmark */;
+			E5345CB91198F0C9000CB77F = E5345CB91198F0C9000CB77F /* PBXTextBookmark */;
+			E5345CC01198F0F2000CB77F = E5345CC01198F0F2000CB77F /* PBXTextBookmark */;
+			E5345CC11198F0F2000CB77F = E5345CC11198F0F2000CB77F /* PBXTextBookmark */;
+			E5345CC21198F0F2000CB77F = E5345CC21198F0F2000CB77F /* PBXTextBookmark */;
+			E5345CC31198F0F2000CB77F = E5345CC31198F0F2000CB77F /* PBXTextBookmark */;
+			E5345CC41198F0F2000CB77F = E5345CC41198F0F2000CB77F /* PBXTextBookmark */;
+			E5345CC51198F0F2000CB77F = E5345CC51198F0F2000CB77F /* PBXTextBookmark */;
+			E5345CC61198F0F2000CB77F = E5345CC61198F0F2000CB77F /* PBXTextBookmark */;
+			E5345CC71198F0F2000CB77F = E5345CC71198F0F2000CB77F /* PBXTextBookmark */;
+			E5345CC81198F0F2000CB77F = E5345CC81198F0F2000CB77F /* PBXTextBookmark */;
+			E5345CCF1198F149000CB77F = E5345CCF1198F149000CB77F /* PBXTextBookmark */;
+			E5345CD01198F149000CB77F = E5345CD01198F149000CB77F /* PBXTextBookmark */;
+			E5345CD11198F149000CB77F = E5345CD11198F149000CB77F /* PBXTextBookmark */;
+			E5345CDC1198F18D000CB77F = E5345CDC1198F18D000CB77F /* PBXTextBookmark */;
+			E5345CDD1198F18D000CB77F = E5345CDD1198F18D000CB77F /* PBXTextBookmark */;
+			E5345CE4119984D5000CB77F = E5345CE4119984D5000CB77F /* PBXTextBookmark */;
+			E5345CE5119984D5000CB77F = E5345CE5119984D5000CB77F /* PBXTextBookmark */;
+			E5345CF811999BBF000CB77F = E5345CF811999BBF000CB77F /* PBXTextBookmark */;
+			E5345CF911999BBF000CB77F = E5345CF911999BBF000CB77F /* PBXTextBookmark */;
+			E5345CFA11999BBF000CB77F = E5345CFA11999BBF000CB77F /* PBXTextBookmark */;
+			E5345CFB11999BBF000CB77F = E5345CFB11999BBF000CB77F /* PBXTextBookmark */;
+			E5345CFC11999BBF000CB77F = E5345CFC11999BBF000CB77F /* PBXTextBookmark */;
+			E5345CFD11999BBF000CB77F = E5345CFD11999BBF000CB77F /* PBXTextBookmark */;
+			E5345D0411999D37000CB77F = E5345D0411999D37000CB77F /* PBXTextBookmark */;
+			E5345D0511999D37000CB77F = E5345D0511999D37000CB77F /* PBXTextBookmark */;
+			E5345D0611999D37000CB77F = E5345D0611999D37000CB77F /* PBXTextBookmark */;
+			E5345D0B11999D92000CB77F = E5345D0B11999D92000CB77F /* PBXTextBookmark */;
+			E5345D1E11999E6F000CB77F = E5345D1E11999E6F000CB77F /* PBXTextBookmark */;
+			E5345D2511999F1D000CB77F = E5345D2511999F1D000CB77F /* PBXTextBookmark */;
+			E5345D2611999F1D000CB77F = E5345D2611999F1D000CB77F /* PBXTextBookmark */;
+			E5345D2711999F1D000CB77F = E5345D2711999F1D000CB77F /* PBXTextBookmark */;
+			E5345D321199A033000CB77F = E5345D321199A033000CB77F /* PBXTextBookmark */;
+			E5345D331199A033000CB77F = E5345D331199A033000CB77F /* PBXTextBookmark */;
+			E5345D341199A033000CB77F = E5345D341199A033000CB77F /* PBXTextBookmark */;
+			E5345D351199A033000CB77F = E5345D351199A033000CB77F /* PBXTextBookmark */;
+			E5345D361199A033000CB77F = E5345D361199A033000CB77F /* PBXTextBookmark */;
+			E5345D391199A033000CB77F = E5345D391199A033000CB77F /* PBXBookmark */;
+			E5345D3A1199A033000CB77F = E5345D3A1199A033000CB77F /* PBXTextBookmark */;
+			E5345D451199A26A000CB77F = E5345D451199A26A000CB77F /* PBXTextBookmark */;
+			E5345D461199A26A000CB77F = E5345D461199A26A000CB77F /* PBXTextBookmark */;
+			E5345D471199A26A000CB77F = E5345D471199A26A000CB77F /* PBXTextBookmark */;
+			E5345D481199A26A000CB77F = E5345D481199A26A000CB77F /* PBXTextBookmark */;
+			E5345D551199A417000CB77F = E5345D551199A417000CB77F /* PBXTextBookmark */;
+			E5345D561199A417000CB77F = E5345D561199A417000CB77F /* PBXTextBookmark */;
+			E5345D611199A5D8000CB77F = E5345D611199A5D8000CB77F /* PBXTextBookmark */;
+			E5345D621199A5D8000CB77F = E5345D621199A5D8000CB77F /* PBXTextBookmark */;
+			E5345D6B1199A5E7000CB77F = E5345D6B1199A5E7000CB77F /* PBXTextBookmark */;
+			E5345D6C1199A5E7000CB77F = E5345D6C1199A5E7000CB77F /* PBXTextBookmark */;
+			E5345D6D1199A5E7000CB77F = E5345D6D1199A5E7000CB77F /* PBXTextBookmark */;
+			E5345D6E1199A5E7000CB77F = E5345D6E1199A5E7000CB77F /* PBXTextBookmark */;
+			E5345D7C1199A8B6000CB77F = E5345D7C1199A8B6000CB77F /* PBXTextBookmark */;
+			E5345D7D1199A8B6000CB77F = E5345D7D1199A8B6000CB77F /* PBXTextBookmark */;
+			E5345D7E1199A8B6000CB77F = E5345D7E1199A8B6000CB77F /* PBXTextBookmark */;
+			E5345D871199BD4C000CB77F = E5345D871199BD4C000CB77F /* PBXTextBookmark */;
+			E5345D881199BD4C000CB77F = E5345D881199BD4C000CB77F /* PBXTextBookmark */;
+			E5345D891199BD4C000CB77F = E5345D891199BD4C000CB77F /* PBXTextBookmark */;
+			E5345D8A1199BD4C000CB77F = E5345D8A1199BD4C000CB77F /* PBXTextBookmark */;
+			E5345D9A1199C02F000CB77F = E5345D9A1199C02F000CB77F /* PBXTextBookmark */;
+			E5345D9B1199C02F000CB77F = E5345D9B1199C02F000CB77F /* PBXTextBookmark */;
+			E5345DA21199C1B4000CB77F = E5345DA21199C1B4000CB77F /* PBXTextBookmark */;
+			E5345DA31199C1B4000CB77F = E5345DA31199C1B4000CB77F /* PBXTextBookmark */;
+			E5345DA41199C1B4000CB77F = E5345DA41199C1B4000CB77F /* PBXTextBookmark */;
+			E5345DA51199C1B4000CB77F = E5345DA51199C1B4000CB77F /* PBXTextBookmark */;
+			E5345DAE119A2CF9000CB77F = E5345DAE119A2CF9000CB77F /* PBXTextBookmark */;
+			E5345DAF119A2CF9000CB77F = E5345DAF119A2CF9000CB77F /* PBXTextBookmark */;
+			E5345DB0119A2CF9000CB77F = E5345DB0119A2CF9000CB77F /* PBXTextBookmark */;
+			E5345DB1119A2CF9000CB77F = E5345DB1119A2CF9000CB77F /* PBXTextBookmark */;
+			E5345DB2119A2CF9000CB77F = E5345DB2119A2CF9000CB77F /* PBXTextBookmark */;
+			E5345DD6119A2EF2000CB77F = E5345DD6119A2EF2000CB77F /* PBXTextBookmark */;
+			E5345DD7119A2EF2000CB77F = E5345DD7119A2EF2000CB77F /* PBXTextBookmark */;
+			E5345DE1119A2FC5000CB77F = E5345DE1119A2FC5000CB77F /* PBXTextBookmark */;
+			E5345E16119A3F15000CB77F = E5345E16119A3F15000CB77F /* PBXTextBookmark */;
+			E5345E17119A3F15000CB77F = E5345E17119A3F15000CB77F /* PBXTextBookmark */;
+			E5345E18119A3F15000CB77F = E5345E18119A3F15000CB77F /* PBXTextBookmark */;
+			E5345E19119A3F15000CB77F = E5345E19119A3F15000CB77F /* PBXTextBookmark */;
+			E5345E1A119A3F15000CB77F = E5345E1A119A3F15000CB77F /* PBXTextBookmark */;
+			E5345E51119AE2DE000CB77F = E5345E51119AE2DE000CB77F /* PBXTextBookmark */;
+			E5345E52119AE2DE000CB77F = E5345E52119AE2DE000CB77F /* PBXTextBookmark */;
+			E5345E53119AE2DE000CB77F = E5345E53119AE2DE000CB77F /* PBXTextBookmark */;
+			E5345E54119AE2DE000CB77F = E5345E54119AE2DE000CB77F /* PBXTextBookmark */;
+			E5345E55119AE2DE000CB77F = E5345E55119AE2DE000CB77F /* PBXTextBookmark */;
+			E5345E56119AE2DE000CB77F = E5345E56119AE2DE000CB77F /* PBXTextBookmark */;
+			E5345E57119AE2DE000CB77F = E5345E57119AE2DE000CB77F /* PBXTextBookmark */;
+			E5345E58119AE2DE000CB77F = E5345E58119AE2DE000CB77F /* PBXTextBookmark */;
+			E5345E59119AE2DE000CB77F = E5345E59119AE2DE000CB77F /* PBXTextBookmark */;
+			E5345E5E119AE4AD000CB77F = E5345E5E119AE4AD000CB77F /* PBXTextBookmark */;
+			E5345E5F119AE4AD000CB77F = E5345E5F119AE4AD000CB77F /* PBXTextBookmark */;
+			E5345E60119AE4AD000CB77F = E5345E60119AE4AD000CB77F /* PBXTextBookmark */;
+			E5345E65119AE4BB000CB77F = E5345E65119AE4BB000CB77F /* PBXTextBookmark */;
+			E5345E66119AE4BB000CB77F = E5345E66119AE4BB000CB77F /* PBXTextBookmark */;
+			E5345E67119AE4BB000CB77F = E5345E67119AE4BB000CB77F /* PBXTextBookmark */;
+			E5345E68119AE4BB000CB77F = E5345E68119AE4BB000CB77F /* PBXTextBookmark */;
+			E5345E69119AE4BB000CB77F = E5345E69119AE4BB000CB77F /* PBXTextBookmark */;
+			E5345E6A119AE4BB000CB77F = E5345E6A119AE4BB000CB77F /* PBXTextBookmark */;
+			E5345E6B119AE4BB000CB77F = E5345E6B119AE4BB000CB77F /* PBXTextBookmark */;
+			E5345E6C119AE4BB000CB77F = E5345E6C119AE4BB000CB77F /* PBXTextBookmark */;
+			E5345E6D119AE4BB000CB77F = E5345E6D119AE4BB000CB77F /* PBXTextBookmark */;
+			E5345E6E119AE4BB000CB77F = E5345E6E119AE4BB000CB77F /* PBXTextBookmark */;
+			E5345E74119AE5C4000CB77F = E5345E74119AE5C4000CB77F /* PBXTextBookmark */;
+			E5345E75119AE5C4000CB77F = E5345E75119AE5C4000CB77F /* PBXTextBookmark */;
+			E5345E76119AE5C4000CB77F = E5345E76119AE5C4000CB77F /* PBXTextBookmark */;
+			E5345E77119AE5C4000CB77F = E5345E77119AE5C4000CB77F /* PBXTextBookmark */;
+			E5345E78119AE5C4000CB77F = E5345E78119AE5C4000CB77F /* PBXTextBookmark */;
+			E5345E79119AE5C4000CB77F = E5345E79119AE5C4000CB77F /* PBXTextBookmark */;
+			E5345E7A119AE5C4000CB77F = E5345E7A119AE5C4000CB77F /* PBXTextBookmark */;
+			E5345E7F119AE66A000CB77F = E5345E7F119AE66A000CB77F /* PBXTextBookmark */;
+			E5345E8A119AE692000CB77F = E5345E8A119AE692000CB77F /* PBXTextBookmark */;
+			E5345E9E119AF6FD000CB77F = E5345E9E119AF6FD000CB77F /* PBXTextBookmark */;
+			E5345E9F119AF6FD000CB77F = E5345E9F119AF6FD000CB77F /* PBXTextBookmark */;
+			E5345EA0119AF6FD000CB77F = E5345EA0119AF6FD000CB77F /* PBXTextBookmark */;
+			E5345EA2119AF6FD000CB77F = E5345EA2119AF6FD000CB77F /* PBXTextBookmark */;
+			E5345EAB119AF74B000CB77F = E5345EAB119AF74B000CB77F /* PBXTextBookmark */;
+			E5345EAC119AF74B000CB77F = E5345EAC119AF74B000CB77F /* PBXTextBookmark */;
+			E5345EAE119AF74B000CB77F = E5345EAE119AF74B000CB77F /* PBXTextBookmark */;
+			E5345EBF119AF8A4000CB77F = E5345EBF119AF8A4000CB77F /* PBXTextBookmark */;
+			E5345EC0119AF8A4000CB77F = E5345EC0119AF8A4000CB77F /* PBXTextBookmark */;
+			E5345EC1119AF8A4000CB77F = E5345EC1119AF8A4000CB77F /* PBXTextBookmark */;
+			E5345EC6119AF8AE000CB77F = E5345EC6119AF8AE000CB77F /* PBXTextBookmark */;
+			E5345EC7119AF8AE000CB77F = E5345EC7119AF8AE000CB77F /* PBXTextBookmark */;
+			E5345EC8119AF8AE000CB77F = E5345EC8119AF8AE000CB77F /* PBXTextBookmark */;
+			E5345EC9119AF8AE000CB77F = E5345EC9119AF8AE000CB77F /* PBXTextBookmark */;
+			E5345ECA119AF8AE000CB77F = E5345ECA119AF8AE000CB77F /* PBXTextBookmark */;
+			E5345ECB119AF8AE000CB77F = E5345ECB119AF8AE000CB77F /* PBXTextBookmark */;
+			E5345ECC119AF8AE000CB77F = E5345ECC119AF8AE000CB77F /* PBXTextBookmark */;
+			E5345ECD119AF8AE000CB77F = E5345ECD119AF8AE000CB77F /* PBXTextBookmark */;
+			E5345ECF119AF8AE000CB77F = E5345ECF119AF8AE000CB77F /* PBXTextBookmark */;
+			E5345ED0119AF8AE000CB77F = E5345ED0119AF8AE000CB77F /* PBXTextBookmark */;
+			E5345ED1119AF8AE000CB77F = E5345ED1119AF8AE000CB77F /* PBXTextBookmark */;
+			E5345ED2119AF8AE000CB77F = E5345ED2119AF8AE000CB77F /* PBXTextBookmark */;
+			E5345ED3119AF8AE000CB77F = E5345ED3119AF8AE000CB77F /* PBXTextBookmark */;
+			E5345ED4119AF8AE000CB77F = E5345ED4119AF8AE000CB77F /* PBXTextBookmark */;
+			E5345ED5119AF8AE000CB77F = E5345ED5119AF8AE000CB77F /* PBXTextBookmark */;
+			E5345F01119B0494000CB77F = E5345F01119B0494000CB77F /* PBXTextBookmark */;
+			E5345F02119B0494000CB77F = E5345F02119B0494000CB77F /* PBXTextBookmark */;
+			E5345F03119B0494000CB77F = E5345F03119B0494000CB77F /* PBXTextBookmark */;
+			E5345F10119B0503000CB77F = E5345F10119B0503000CB77F /* PBXTextBookmark */;
+			E5345F11119B0503000CB77F = E5345F11119B0503000CB77F /* PBXTextBookmark */;
+			E5345F12119B0503000CB77F = E5345F12119B0503000CB77F /* PBXTextBookmark */;
+			E5345F13119B0503000CB77F = E5345F13119B0503000CB77F /* PBXTextBookmark */;
+			E5345F14119B0503000CB77F = E5345F14119B0503000CB77F /* PBXTextBookmark */;
+			E5345F15119B0503000CB77F = E5345F15119B0503000CB77F /* PBXTextBookmark */;
+			E5345F33119B094C000CB77F = E5345F33119B094C000CB77F /* PBXTextBookmark */;
+			E5345F34119B094C000CB77F = E5345F34119B094C000CB77F /* PBXTextBookmark */;
+			E5345F35119B094C000CB77F = E5345F35119B094C000CB77F /* PBXTextBookmark */;
+			E5345F37119B094C000CB77F = E5345F37119B094C000CB77F /* PBXTextBookmark */;
+			E5345F38119B094C000CB77F = E5345F38119B094C000CB77F /* PBXTextBookmark */;
+			E5345F39119B094C000CB77F = E5345F39119B094C000CB77F /* PBXTextBookmark */;
+			E5345F3A119B094C000CB77F = E5345F3A119B094C000CB77F /* PBXTextBookmark */;
+			E5345F3B119B094C000CB77F = E5345F3B119B094C000CB77F /* PBXTextBookmark */;
+			E5345F3C119B094C000CB77F = E5345F3C119B094C000CB77F /* PBXTextBookmark */;
+			E5345F3F119B09E7000CB77F = E5345F3F119B09E7000CB77F /* PBXTextBookmark */;
+			E5345F40119B09E7000CB77F = E5345F40119B09E7000CB77F /* PBXTextBookmark */;
+			E5345F41119B09E7000CB77F = E5345F41119B09E7000CB77F /* PBXTextBookmark */;
+			E5345F43119B09E7000CB77F = E5345F43119B09E7000CB77F /* PBXTextBookmark */;
+			E5345F49119B09F8000CB77F = E5345F49119B09F8000CB77F /* PBXTextBookmark */;
+			E5345F72119B12AF000CB77F = E5345F72119B12AF000CB77F /* PBXTextBookmark */;
+			E5345F73119B12AF000CB77F = E5345F73119B12AF000CB77F /* PBXTextBookmark */;
+			E5345F74119B12AF000CB77F = E5345F74119B12AF000CB77F /* PBXTextBookmark */;
+			E5345F89119B13D3000CB77F = E5345F89119B13D3000CB77F /* PBXTextBookmark */;
+			E5345F8C119B1408000CB77F = E5345F8C119B1408000CB77F /* PBXTextBookmark */;
+			E5345F93119B1D3A000CB77F = E5345F93119B1D3A000CB77F /* PBXTextBookmark */;
+			E5345F96119B233D000CB77F = E5345F96119B233D000CB77F /* PBXTextBookmark */;
+			E5345F9B119B2588000CB77F = E5345F9B119B2588000CB77F /* PBXTextBookmark */;
+			E5345FA9119B2602000CB77F /* XCBuildMessageTextBookmark */ = E5345FA9119B2602000CB77F /* XCBuildMessageTextBookmark */;
+			E5345FAC119B2651000CB77F /* PBXTextBookmark */ = E5345FAC119B2651000CB77F /* PBXTextBookmark */;
+			E5345FAD119B2651000CB77F /* PBXTextBookmark */ = E5345FAD119B2651000CB77F /* PBXTextBookmark */;
+			E5345FAE119B2651000CB77F /* PBXTextBookmark */ = E5345FAE119B2651000CB77F /* PBXTextBookmark */;
+			E5345FAF119B2651000CB77F /* PBXTextBookmark */ = E5345FAF119B2651000CB77F /* PBXTextBookmark */;
+			E5345FB0119B2651000CB77F /* PBXTextBookmark */ = E5345FB0119B2651000CB77F /* PBXTextBookmark */;
+			E5345FB1119B2651000CB77F /* PBXTextBookmark */ = E5345FB1119B2651000CB77F /* PBXTextBookmark */;
+			E5345FB6119B2651000CB77F /* PBXTextBookmark */ = E5345FB6119B2651000CB77F /* PBXTextBookmark */;
+			E5345FBC119B267E000CB77F /* PBXTextBookmark */ = E5345FBC119B267E000CB77F /* PBXTextBookmark */;
+			E5345FBD119B267E000CB77F /* PBXTextBookmark */ = E5345FBD119B267E000CB77F /* PBXTextBookmark */;
+			E5345FBF119B2686000CB77F /* XCBuildMessageTextBookmark */ = E5345FBF119B2686000CB77F /* XCBuildMessageTextBookmark */;
+			E5345FC0119B2686000CB77F /* PBXTextBookmark */ = E5345FC0119B2686000CB77F /* PBXTextBookmark */;
+			E5345FC5119B26BD000CB77F /* PBXTextBookmark */ = E5345FC5119B26BD000CB77F /* PBXTextBookmark */;
+			E5345FC6119B26BD000CB77F /* PBXTextBookmark */ = E5345FC6119B26BD000CB77F /* PBXTextBookmark */;
+		};
+		sourceControlManager = E53458871198372D000CB77F /* Source Control */;
+		userBuildSettings = {
+		};
+	};
+	AA747D9E0F9514B9006C5449 /* ZXingWidget_Prefix.pch */ = {
+		uiCtxt = {
+			sepNavIntBoundsRect = "{{0, 0}, {908, 530}}";
+			sepNavSelRange = "{0, 0}";
+			sepNavVisRange = "{0, 188}";
+		};
+	};
+	D2AAC07D0554694100DB518D /* ZXingWidget */ = {
+		activeExec = 0;
+	};
+	E53458871198372D000CB77F /* Source Control */ = {
+		isa = PBXSourceControlManager;
+		fallbackIsa = XCSourceControlManager;
+		isSCMEnabled = 0;
+		scmConfiguration = {
+			repositoryNamesForRoots = {
+				"" = "";
+			};
+		};
+	};
+	E53458881198372D000CB77F /* Code sense */ = {
+		isa = PBXCodeSenseManager;
+		indexTemplatePath = "";
+	};
+	E534588911983738000CB77F /* ZXingWidgetController.h */ = {
+		uiCtxt = {
+			sepNavIntBoundsRect = "{{0, 0}, {908, 624}}";
+			sepNavSelRange = "{1359, 0}";
+			sepNavVisRange = "{175, 1219}";
+			sepNavWindowFrame = "{{15, 1472}, {821, 803}}";
+		};
+	};
+	E534588A11983738000CB77F /* ZXingWidgetController.m */ = {
+		uiCtxt = {
+			sepNavIntBoundsRect = "{{0, 0}, {999, 2158}}";
+			sepNavSelRange = "{4730, 0}";
+			sepNavVisRange = "{2970, 1853}";
+			sepNavWindowFrame = "{{36, 1452}, {821, 803}}";
+		};
+	};
+	E534588B11983738000CB77F /* OverlayView.h */ = {
+		uiCtxt = {
+			sepNavIntBoundsRect = "{{0, 0}, {908, 530}}";
+			sepNavSelRange = "{650, 0}";
+			sepNavVisRange = "{0, 1091}";
+		};
+	};
+	E534588C11983738000CB77F /* OverlayView.m */ = {
+		uiCtxt = {
+			sepNavIntBoundsRect = "{{0, 0}, {908, 2171}}";
+			sepNavSelRange = "{1520, 0}";
+			sepNavVisRange = "{4096, 972}";
+		};
+	};
+	E534589211983771000CB77F /* Decoder.h */ = {
+		uiCtxt = {
+			sepNavIntBoundsRect = "{{0, 0}, {908, 650}}";
+			sepNavSelRange = "{801, 0}";
+			sepNavVisRange = "{118, 1333}";
+		};
+	};
+	E534589311983771000CB77F /* Decoder.mm */ = {
+		isa = PBXFileReference;
+		fileEncoding = 4;
+		lastKnownFileType = sourcecode.cpp.objcpp;
+		name = Decoder.mm;
+		path = "/Users/dkavanagh/zxing-ro-mine/iphone/ZXingWidget/Decoder.mm";
+		sourceTree = "<absolute>";
+	};
+	E53458961198379E000CB77F /* DecoderDelegate.h */ = {
+		uiCtxt = {
+			sepNavIntBoundsRect = "{{0, 0}, {964, 530}}";
+			sepNavSelRange = "{0, 0}";
+			sepNavVisRange = "{0, 1298}";
+		};
+	};
+	E534589C11984A27000CB77F /* TwoDDecoderResult.h */ = {
+		uiCtxt = {
+			sepNavIntBoundsRect = "{{0, 0}, {908, 550}}";
+			sepNavSelRange = "{0, 0}";
+			sepNavVisRange = "{0, 1020}";
+		};
+	};
+	E534589D11984A27000CB77F /* TwoDDecoderResult.m */ = {
+		uiCtxt = {
+			sepNavIntBoundsRect = "{{0, 0}, {908, 663}}";
+			sepNavSelRange = "{0, 0}";
+			sepNavVisRange = "{0, 1125}";
+		};
+	};
+	E53458A011984A3E000CB77F /* FormatReader.mm */ = {
+		uiCtxt = {
+			sepNavIntBoundsRect = "{{0, 0}, {908, 845}}";
+			sepNavSelRange = "{1150, 0}";
+			sepNavVisRange = "{561, 906}";
+		};
+	};
+	E53458A111984A3E000CB77F /* MultiFormatReader.mm */ = {
+		uiCtxt = {
+			sepNavIntBoundsRect = "{{0, 0}, {908, 559}}";
+			sepNavSelRange = "{788, 0}";
+			sepNavVisRange = "{0, 1208}";
+		};
+	};
+	E53458A211984A3E000CB77F /* FormatReader.h */ = {
+		uiCtxt = {
+			sepNavIntBoundsRect = "{{0, 0}, {908, 530}}";
+			sepNavSelRange = "{704, 0}";
+			sepNavVisRange = "{0, 1103}";
+		};
+	};
+	E53458C511987396000CB77F /* Counted.h */ = {
+		uiCtxt = {
+			sepNavIntBoundsRect = "{{0, 0}, {811, 2535}}";
+			sepNavSelRange = "{789, 20}";
+			sepNavVisRange = "{176, 683}";
+		};
+	};
+	E53458FB11987396000CB77F /* MultiFormatReader.cpp */ = {
+		uiCtxt = {
+			sepNavIntBoundsRect = "{{0, 0}, {908, 663}}";
+			sepNavSelRange = "{1108, 0}";
+			sepNavVisRange = "{258, 1476}";
+		};
+	};
+	E53458FC11987396000CB77F /* MultiFormatReader.h */ = {
+		uiCtxt = {
+			sepNavIntBoundsRect = "{{0, 0}, {908, 530}}";
+			sepNavSelRange = "{797, 0}";
+			sepNavVisRange = "{0, 999}";
+		};
+	};
+	E534593711987396000CB77F /* QRCodeReader.cpp */ = {
+		uiCtxt = {
+			sepNavIntBoundsRect = "{{0, 0}, {811, 1079}}";
+			sepNavSelRange = "{1642, 0}";
+			sepNavVisRange = "{1225, 789}";
+		};
+	};
+	E534593B11987396000CB77F /* Reader.cpp */ = {
+		uiCtxt = {
+			sepNavIntBoundsRect = "{{0, 0}, {908, 530}}";
+			sepNavSelRange = "{0, 0}";
+			sepNavVisRange = "{0, 770}";
+		};
+	};
+	E534593C11987396000CB77F /* Reader.h */ = {
+		uiCtxt = {
+			sepNavIntBoundsRect = "{{0, 0}, {908, 533}}";
+			sepNavSelRange = "{814, 0}";
+			sepNavVisRange = "{0, 1017}";
+		};
+	};
+	E534593F11987396000CB77F /* Result.cpp */ = {
+		uiCtxt = {
+			sepNavIntBoundsRect = "{{0, 0}, {811, 780}}";
+			sepNavSelRange = "{1319, 0}";
+			sepNavVisRange = "{1005, 429}";
+		};
+	};
+	E534594211987396000CB77F /* ResultPoint.h */ = {
+		uiCtxt = {
+			sepNavIntBoundsRect = "{{0, 0}, {908, 530}}";
+			sepNavSelRange = "{0, 0}";
+			sepNavVisRange = "{0, 990}";
+		};
+	};
+	E53459D5119876A5000CB77F /* ResultParser.h */ = {
+		uiCtxt = {
+			sepNavIntBoundsRect = "{{0, 0}, {908, 530}}";
+			sepNavSelRange = "{733, 0}";
+			sepNavVisRange = "{0, 890}";
+		};
+	};
+	E53459D6119876A5000CB77F /* ResultParser.m */ = {
+		uiCtxt = {
+			sepNavIntBoundsRect = "{{0, 0}, {908, 819}}";
+			sepNavSelRange = "{0, 0}";
+			sepNavVisRange = "{498, 1077}";
+		};
+	};
+	E53459F8119876A5000CB77F /* ParsedResult.h */ = {
+		uiCtxt = {
+			sepNavIntBoundsRect = "{{0, 0}, {908, 530}}";
+			sepNavSelRange = "{0, 0}";
+			sepNavVisRange = "{0, 905}";
+		};
+	};
+	E53459F9119876A5000CB77F /* ParsedResult.m */ = {
+		uiCtxt = {
+			sepNavIntBoundsRect = "{{0, 0}, {908, 1365}}";
+			sepNavSelRange = "{0, 0}";
+			sepNavVisRange = "{0, 1084}";
+		};
+	};
+	E5345AB811988B53000CB77F /* PBXTextBookmark */ = {
+		isa = PBXTextBookmark;
+		fRef = E53458961198379E000CB77F /* DecoderDelegate.h */;
+		name = "DecoderDelegate.h: 1";
+		rLen = 0;
+		rLoc = 0;
+		rType = 0;
+		vrLen = 682;
+		vrLoc = 0;
+	};
+	E5345AB911988B53000CB77F /* PBXTextBookmark */ = {
+		isa = PBXTextBookmark;
+		fRef = E534589211983771000CB77F /* Decoder.h */;
+		name = "Decoder.h: 1";
+		rLen = 0;
+		rLoc = 0;
+		rType = 0;
+		vrLen = 1281;
+		vrLoc = 0;
+	};
+	E5345ABA11988B53000CB77F /* PBXTextBookmark */ = {
+		isa = PBXTextBookmark;
+		fRef = E534589311983771000CB77F /* Decoder.mm */;
+		name = "Decoder.mm: 28";
+		rLen = 0;
+		rLoc = 790;
+		rType = 0;
+		vrLen = 1496;
+		vrLoc = 356;
+	};
+	E5345ABB11988B53000CB77F /* PBXTextBookmark */ = {
+		isa = PBXTextBookmark;
+		fRef = E534588C11983738000CB77F /* OverlayView.m */;
+		name = "OverlayView.m: 1";
+		rLen = 0;
+		rLoc = 0;
+		rType = 0;
+		vrLen = 1442;
+		vrLoc = 0;
+	};
+	E5345ABC11988B53000CB77F /* PBXTextBookmark */ = {
+		isa = PBXTextBookmark;
+		fRef = E534588A11983738000CB77F /* ZXingWidgetController.m */;
+		name = "ZXingWidgetController.m: 128";
+		rLen = 0;
+		rLoc = 4401;
+		rType = 0;
+		vrLen = 1461;
+		vrLoc = 3810;
+	};
+	E5345ABD11988B53000CB77F /* PBXTextBookmark */ = {
+		isa = PBXTextBookmark;
+		fRef = E534588911983738000CB77F /* ZXingWidgetController.h */;
+		name = "ZXingWidgetController.h: 18";
+		rLen = 0;
+		rLoc = 659;
+		rType = 0;
+		vrLen = 1342;
+		vrLoc = 0;
+	};
+	E5345ABE11988B53000CB77F /* PBXTextBookmark */ = {
+		isa = PBXTextBookmark;
+		fRef = E53458C511987396000CB77F /* Counted.h */;
+		name = "Counted.h: 1";
+		rLen = 0;
+		rLoc = 0;
+		rType = 0;
+		vrLen = 1122;
+		vrLoc = 176;
+	};
+	E5345ABF11988B53000CB77F /* PBXTextBookmark */ = {
+		isa = PBXTextBookmark;
+		fRef = E534588B11983738000CB77F /* OverlayView.h */;
+		name = "OverlayView.h: 18";
+		rLen = 0;
+		rLoc = 650;
+		rType = 0;
+		vrLen = 1146;
+		vrLoc = 0;
+	};
+	E5345AC011988B53000CB77F /* PBXTextBookmark */ = {
+		isa = PBXTextBookmark;
+		fRef = E534588B11983738000CB77F /* OverlayView.h */;
+		name = "OverlayView.h: 18";
+		rLen = 0;
+		rLoc = 650;
+		rType = 0;
+		vrLen = 1146;
+		vrLoc = 0;
+	};
+	E5345C041198D954000CB77F /* PBXTextBookmark */ = {
+		isa = PBXTextBookmark;
+		fRef = E534588B11983738000CB77F /* OverlayView.h */;
+		name = "OverlayView.h: 9";
+		rLen = 0;
+		rLoc = 272;
+		rType = 0;
+		vrLen = 1146;
+		vrLoc = 0;
+	};
+	E5345C051198DA1C000CB77F /* PBXTextBookmark */ = {
+		isa = PBXTextBookmark;
+		fRef = E534588911983738000CB77F /* ZXingWidgetController.h */;
+		name = "ZXingWidgetController.h: 24";
+		rLen = 0;
+		rLoc = 762;
+		rType = 0;
+		vrLen = 941;
+		vrLoc = 175;
+	};
+	E5345C061198DA1C000CB77F /* PBXTextBookmark */ = {
+		isa = PBXTextBookmark;
+		fRef = E534593F11987396000CB77F /* Result.cpp */;
+		name = "Result.cpp: 50";
+		rLen = 0;
+		rLoc = 1319;
+		rType = 0;
+		vrLen = 429;
+		vrLoc = 1005;
+	};
+	E5345C071198DA1C000CB77F /* PBXTextBookmark */ = {
+		isa = PBXTextBookmark;
+		fRef = E534588B11983738000CB77F /* OverlayView.h */;
+		name = "OverlayView.h: 22";
+		rLen = 0;
+		rLoc = 651;
+		rType = 0;
+		vrLen = 961;
+		vrLoc = 0;
+	};
+	E5345C081198DA1C000CB77F /* PBXTextBookmark */ = {
+		isa = PBXTextBookmark;
+		fRef = E53458A211984A3E000CB77F /* FormatReader.h */;
+		name = "FormatReader.h: 22";
+		rLen = 0;
+		rLoc = 704;
+		rType = 0;
+		vrLen = 684;
+		vrLoc = 287;
+	};
+	E5345C091198DA1C000CB77F /* PBXTextBookmark */ = {
+		isa = PBXTextBookmark;
+		comments = "Control reaches end of non-void function";
+		fRef = E534588A11983738000CB77F /* ZXingWidgetController.m */;
+		rLen = 1;
+		rLoc = 89;
+		rType = 1;
+	};
+	E5345C0A1198DA1C000CB77F /* PBXTextBookmark */ = {
+		isa = PBXTextBookmark;
+		fRef = E534588A11983738000CB77F /* ZXingWidgetController.m */;
+		name = "ZXingWidgetController.m: 83";
+		rLen = 0;
+		rLoc = 2777;
+		rType = 0;
+		vrLen = 821;
+		vrLoc = 2510;
+	};
+	E5345C301198DC90000CB77F /* PBXTextBookmark */ = {
+		isa = PBXTextBookmark;
+		fRef = E534588B11983738000CB77F /* OverlayView.h */;
+		name = "OverlayView.h: 9";
+		rLen = 0;
+		rLoc = 272;
+		rType = 0;
+		vrLen = 1146;
+		vrLoc = 0;
+	};
+	E5345C631198E1F7000CB77F /* PBXTextBookmark */ = {
+		isa = PBXTextBookmark;
+		comments = "Request for member 'points' in something not a structure or union";
+		fRef = E534588A11983738000CB77F /* ZXingWidgetController.m */;
+		rLen = 1;
+		rLoc = 142;
+		rType = 1;
+	};
+	E5345C641198E1F7000CB77F /* PBXTextBookmark */ = {
+		isa = PBXTextBookmark;
+		fRef = E534588A11983738000CB77F /* ZXingWidgetController.m */;
+		name = "ZXingWidgetController.m: 131";
+		rLen = 0;
+		rLoc = 4623;
+		rType = 0;
+		vrLen = 854;
+		vrLoc = 4388;
+	};
+	E5345CAA1198EE8B000CB77F /* PBXTextBookmark */ = {
+		isa = PBXTextBookmark;
+		fRef = E534588B11983738000CB77F /* OverlayView.h */;
+		name = "OverlayView.h: 9";
+		rLen = 0;
+		rLoc = 272;
+		rType = 0;
+		vrLen = 1146;
+		vrLoc = 0;
+	};
+	E5345CAB1198EE8B000CB77F /* PBXTextBookmark */ = {
+		isa = PBXTextBookmark;
+		fRef = E534588911983738000CB77F /* ZXingWidgetController.h */;
+		name = "ZXingWidgetController.h: 26";
+		rLen = 23;
+		rLoc = 797;
+		rType = 0;
+		vrLen = 1342;
+		vrLoc = 0;
+	};
+	E5345CAC1198EE8B000CB77F /* PBXTextBookmark */ = {
+		isa = PBXTextBookmark;
+		fRef = E534589C11984A27000CB77F /* TwoDDecoderResult.h */;
+		name = "TwoDDecoderResult.h: 1";
+		rLen = 0;
+		rLoc = 0;
+		rType = 0;
+		vrLen = 1020;
+		vrLoc = 0;
+	};
+	E5345CAD1198EE8B000CB77F /* PBXTextBookmark */ = {
+		isa = PBXTextBookmark;
+		fRef = E53458FB11987396000CB77F /* MultiFormatReader.cpp */;
+		name = "MultiFormatReader.cpp: 34";
+		rLen = 0;
+		rLoc = 1256;
+		rType = 0;
+		vrLen = 1584;
+		vrLoc = 0;
+	};
+	E5345CAE1198EE8B000CB77F /* PBXTextBookmark */ = {
+		isa = PBXTextBookmark;
+		fRef = E53458FC11987396000CB77F /* MultiFormatReader.h */;
+		name = "MultiFormatReader.h: 25";
+		rLen = 0;
+		rLoc = 797;
+		rType = 0;
+		vrLen = 999;
+		vrLoc = 0;
+	};
+	E5345CAF1198EE8B000CB77F /* PBXTextBookmark */ = {
+		isa = PBXTextBookmark;
+		fRef = AA747D9E0F9514B9006C5449 /* ZXingWidget_Prefix.pch */;
+		name = "ZXingWidget_Prefix.pch: 1";
+		rLen = 0;
+		rLoc = 0;
+		rType = 0;
+		vrLen = 188;
+		vrLoc = 0;
+	};
+	E5345CB01198EE8B000CB77F /* PBXTextBookmark */ = {
+		isa = PBXTextBookmark;
+		fRef = E534588A11983738000CB77F /* ZXingWidgetController.m */;
+		name = "ZXingWidgetController.m: 127";
+		rLen = 0;
+		rLoc = 4622;
+		rType = 0;
+		vrLen = 1400;
+		vrLoc = 3815;
+	};
+	E5345CB11198EE8B000CB77F /* PBXTextBookmark */ = {
+		isa = PBXTextBookmark;
+		fRef = E534589311983771000CB77F /* Decoder.mm */;
+		name = "Decoder.mm: 33";
+		rLen = 0;
+		rLoc = 972;
+		rType = 0;
+		vrLen = 1128;
+		vrLoc = 0;
+	};
+	E5345CB71198F0C9000CB77F /* PBXTextBookmark */ = {
+		isa = PBXTextBookmark;
+		fRef = E534588A11983738000CB77F /* ZXingWidgetController.m */;
+		name = "ZXingWidgetController.m: 128";
+		rLen = 0;
+		rLoc = 4623;
+		rType = 0;
+		vrLen = 900;
+		vrLoc = 4257;
+	};
+	E5345CB81198F0C9000CB77F /* PBXTextBookmark */ = {
+		isa = PBXTextBookmark;
+		comments = "Stray '@' in program";
+		fRef = E53458FB11987396000CB77F /* MultiFormatReader.cpp */;
+		rLen = 1;
+		rLoc = 31;
+		rType = 1;
+	};
+	E5345CB91198F0C9000CB77F /* PBXTextBookmark */ = {
+		isa = PBXTextBookmark;
+		fRef = E53458FB11987396000CB77F /* MultiFormatReader.cpp */;
+		name = "MultiFormatReader.cpp: 32";
+		rLen = 0;
+		rLoc = 1108;
+		rType = 0;
+		vrLen = 867;
+		vrLoc = 871;
+	};
+	E5345CC01198F0F2000CB77F /* PBXTextBookmark */ = {
+		isa = PBXTextBookmark;
+		fRef = E53458FC11987396000CB77F /* MultiFormatReader.h */;
+		name = "MultiFormatReader.h: 25";
+		rLen = 0;
+		rLoc = 797;
+		rType = 0;
+		vrLen = 999;
+		vrLoc = 0;
+	};
+	E5345CC11198F0F2000CB77F /* PBXTextBookmark */ = {
+		isa = PBXTextBookmark;
+		fRef = E534588A11983738000CB77F /* ZXingWidgetController.m */;
+		name = "ZXingWidgetController.m: 127";
+		rLen = 0;
+		rLoc = 4622;
+		rType = 0;
+		vrLen = 1400;
+		vrLoc = 3815;
+	};
+	E5345CC21198F0F2000CB77F /* PBXTextBookmark */ = {
+		isa = PBXTextBookmark;
+		fRef = E534589211983771000CB77F /* Decoder.h */;
+		name = "Decoder.h: 1";
+		rLen = 0;
+		rLoc = 0;
+		rType = 0;
+		vrLen = 1330;
+		vrLoc = 121;
+	};
+	E5345CC31198F0F2000CB77F /* PBXTextBookmark */ = {
+		isa = PBXTextBookmark;
+		fRef = E534589311983771000CB77F /* Decoder.mm */;
+		name = "Decoder.mm: 140";
+		rLen = 0;
+		rLoc = 4795;
+		rType = 0;
+		vrLen = 1168;
+		vrLoc = 4408;
+	};
+	E5345CC41198F0F2000CB77F /* PBXTextBookmark */ = {
+		isa = PBXTextBookmark;
+		fRef = E53458A211984A3E000CB77F /* FormatReader.h */;
+		name = "FormatReader.h: 22";
+		rLen = 0;
+		rLoc = 704;
+		rType = 0;
+		vrLen = 1103;
+		vrLoc = 0;
+	};
+	E5345CC51198F0F2000CB77F /* PBXTextBookmark */ = {
+		isa = PBXTextBookmark;
+		fRef = E53458A011984A3E000CB77F /* FormatReader.mm */;
+		name = "FormatReader.mm: 1";
+		rLen = 0;
+		rLoc = 0;
+		rType = 0;
+		vrLen = 933;
+		vrLoc = 485;
+	};
+	E5345CC61198F0F2000CB77F /* PBXTextBookmark */ = {
+		isa = PBXTextBookmark;
+		fRef = E53458A111984A3E000CB77F /* MultiFormatReader.mm */;
+		name = "MultiFormatReader.mm: 19";
+		rLen = 0;
+		rLoc = 674;
+		rType = 0;
+		vrLen = 1122;
+		vrLoc = 0;
+	};
+	E5345CC71198F0F2000CB77F /* PBXTextBookmark */ = {
+		isa = PBXTextBookmark;
+		comments = "Stray '@' in program";
+		fRef = E53458FB11987396000CB77F /* MultiFormatReader.cpp */;
+		rLen = 1;
+		rLoc = 31;
+		rType = 1;
+	};
+	E5345CC81198F0F2000CB77F /* PBXTextBookmark */ = {
+		isa = PBXTextBookmark;
+		fRef = E53458FB11987396000CB77F /* MultiFormatReader.cpp */;
+		name = "MultiFormatReader.cpp: 32";
+		rLen = 0;
+		rLoc = 1108;
+		rType = 0;
+		vrLen = 1532;
+		vrLoc = 258;
+	};
+	E5345CCF1198F149000CB77F /* PBXTextBookmark */ = {
+		isa = PBXTextBookmark;
+		fRef = E53458FB11987396000CB77F /* MultiFormatReader.cpp */;
+		name = "MultiFormatReader.cpp: 32";
+		rLen = 0;
+		rLoc = 1108;
+		rType = 0;
+		vrLen = 1476;
+		vrLoc = 258;
+	};
+	E5345CD01198F149000CB77F /* PBXTextBookmark */ = {
+		isa = PBXTextBookmark;
+		fRef = E534589311983771000CB77F /* Decoder.mm */;
+		name = "Decoder.mm: 140";
+		rLen = 0;
+		rLoc = 4795;
+		rType = 0;
+		vrLen = 1168;
+		vrLoc = 4408;
+	};
+	E5345CD11198F149000CB77F /* PBXTextBookmark */ = {
+		isa = PBXTextBookmark;
+		fRef = E534589311983771000CB77F /* Decoder.mm */;
+		name = "Decoder.mm: 140";
+		rLen = 0;
+		rLoc = 4795;
+		rType = 0;
+		vrLen = 1168;
+		vrLoc = 4408;
+	};
+	E5345CDC1198F18D000CB77F /* PBXTextBookmark */ = {
+		isa = PBXTextBookmark;
+		fRef = E534589311983771000CB77F /* Decoder.mm */;
+		name = "Decoder.mm: 140";
+		rLen = 0;
+		rLoc = 4795;
+		rType = 0;
+		vrLen = 1168;
+		vrLoc = 4408;
+	};
+	E5345CDD1198F18D000CB77F /* PBXTextBookmark */ = {
+		isa = PBXTextBookmark;
+		fRef = E534588A11983738000CB77F /* ZXingWidgetController.m */;
+		name = "ZXingWidgetController.m: 129";
+		rLen = 0;
+		rLoc = 4777;
+		rType = 0;
+		vrLen = 1576;
+		vrLoc = 3306;
+	};
+	E5345CE4119984D5000CB77F /* PBXTextBookmark */ = {
+		isa = PBXTextBookmark;
+		fRef = E534588A11983738000CB77F /* ZXingWidgetController.m */;
+		name = "ZXingWidgetController.m: 129";
+		rLen = 0;
+		rLoc = 4777;
+		rType = 0;
+		vrLen = 1576;
+		vrLoc = 3306;
+	};
+	E5345CE5119984D5000CB77F /* PBXTextBookmark */ = {
+		isa = PBXTextBookmark;
+		fRef = E534589311983771000CB77F /* Decoder.mm */;
+		name = "Decoder.mm: 137";
+		rLen = 0;
+		rLoc = 4654;
+		rType = 0;
+		vrLen = 1158;
+		vrLoc = 3758;
+	};
+	E5345CF811999BBF000CB77F /* PBXTextBookmark */ = {
+		isa = PBXTextBookmark;
+		fRef = E534589311983771000CB77F /* Decoder.mm */;
+		name = "Decoder.mm: 137";
+		rLen = 0;
+		rLoc = 4654;
+		rType = 0;
+		vrLen = 1158;
+		vrLoc = 3758;
+	};
+	E5345CF911999BBF000CB77F /* PBXTextBookmark */ = {
+		isa = PBXTextBookmark;
+		fRef = E534588A11983738000CB77F /* ZXingWidgetController.m */;
+		name = "ZXingWidgetController.m: 129";
+		rLen = 0;
+		rLoc = 4777;
+		rType = 0;
+		vrLen = 1576;
+		vrLoc = 3306;
+	};
+	E5345CFA11999BBF000CB77F /* PBXTextBookmark */ = {
+		isa = PBXTextBookmark;
+		fRef = E534588911983738000CB77F /* ZXingWidgetController.h */;
+		name = "ZXingWidgetController.h: 26";
+		rLen = 23;
+		rLoc = 797;
+		rType = 0;
+		vrLen = 1342;
+		vrLoc = 0;
+	};
+	E5345CFB11999BBF000CB77F /* PBXTextBookmark */ = {
+		isa = PBXTextBookmark;
+		fRef = E534588B11983738000CB77F /* OverlayView.h */;
+		name = "OverlayView.h: 22";
+		rLen = 0;
+		rLoc = 783;
+		rType = 0;
+		vrLen = 858;
+		vrLoc = 0;
+	};
+	E5345CFC11999BBF000CB77F /* PBXTextBookmark */ = {
+		isa = PBXTextBookmark;
+		fRef = E534588C11983738000CB77F /* OverlayView.m */;
+		name = "OverlayView.m: 147";
+		rLen = 0;
+		rLoc = 4938;
+		rType = 0;
+		vrLen = 1399;
+		vrLoc = 0;
+	};
+	E5345CFD11999BBF000CB77F /* PBXTextBookmark */ = {
+		isa = PBXTextBookmark;
+		fRef = E534588C11983738000CB77F /* OverlayView.m */;
+		name = "OverlayView.m: 104";
+		rLen = 0;
+		rLoc = 3764;
+		rType = 0;
+		vrLen = 1469;
+		vrLoc = 2483;
+	};
+	E5345D0411999D37000CB77F /* PBXTextBookmark */ = {
+		isa = PBXTextBookmark;
+		fRef = E534588B11983738000CB77F /* OverlayView.h */;
+		name = "OverlayView.h: 29";
+		rLen = 0;
+		rLoc = 1036;
+		rType = 0;
+		vrLen = 859;
+		vrLoc = 0;
+	};
+	E5345D0511999D37000CB77F /* PBXTextBookmark */ = {
+		isa = PBXTextBookmark;
+		fRef = E534588C11983738000CB77F /* OverlayView.m */;
+		name = "OverlayView.m: 27";
+		rLen = 6;
+		rLoc = 724;
+		rType = 0;
+		vrLen = 1506;
+		vrLoc = 218;
+	};
+	E5345D0611999D37000CB77F /* PBXTextBookmark */ = {
+		isa = PBXTextBookmark;
+		fRef = E534588C11983738000CB77F /* OverlayView.m */;
+		name = "OverlayView.m: 27";
+		rLen = 6;
+		rLoc = 724;
+		rType = 0;
+		vrLen = 1418;
+		vrLoc = 344;
+	};
+	E5345D0B11999D92000CB77F /* PBXTextBookmark */ = {
+		isa = PBXTextBookmark;
+		fRef = E534588C11983738000CB77F /* OverlayView.m */;
+		name = "OverlayView.m: 43";
+		rLen = 0;
+		rLoc = 1428;
+		rType = 0;
+		vrLen = 1585;
+		vrLoc = 1864;
+	};
+	E5345D1E11999E6F000CB77F /* PBXTextBookmark */ = {
+		isa = PBXTextBookmark;
+		fRef = E534588C11983738000CB77F /* OverlayView.m */;
+		name = "OverlayView.m: 36";
+		rLen = 0;
+		rLoc = 1079;
+		rType = 0;
+		vrLen = 1364;
+		vrLoc = 1276;
+	};
+	E5345D2511999F1D000CB77F /* PBXTextBookmark */ = {
+		isa = PBXTextBookmark;
+		fRef = E53458FB11987396000CB77F /* MultiFormatReader.cpp */;
+		name = "MultiFormatReader.cpp: 32";
+		rLen = 0;
+		rLoc = 1108;
+		rType = 0;
+		vrLen = 813;
+		vrLoc = 871;
+	};
+	E5345D2611999F1D000CB77F /* PBXTextBookmark */ = {
+		isa = PBXTextBookmark;
+		comments = "Implicit declaration of function 'UIGetScreenImage'";
+		fRef = E534588A11983738000CB77F /* ZXingWidgetController.m */;
+		rLen = 1;
+		rLoc = 92;
+		rType = 1;
+	};
+	E5345D2711999F1D000CB77F /* PBXTextBookmark */ = {
+		isa = PBXTextBookmark;
+		fRef = E534588A11983738000CB77F /* ZXingWidgetController.m */;
+		name = "ZXingWidgetController.m: 85";
+		rLen = 0;
+		rLoc = 2821;
+		rType = 0;
+		vrLen = 832;
+		vrLoc = 2776;
+	};
+	E5345D321199A033000CB77F /* PBXTextBookmark */ = {
+		isa = PBXTextBookmark;
+		fRef = E534588C11983738000CB77F /* OverlayView.m */;
+		name = "OverlayView.m: 36";
+		rLen = 0;
+		rLoc = 1079;
+		rType = 0;
+		vrLen = 1554;
+		vrLoc = 1047;
+	};
+	E5345D331199A033000CB77F /* PBXTextBookmark */ = {
+		isa = PBXTextBookmark;
+		fRef = E534589311983771000CB77F /* Decoder.mm */;
+		name = "Decoder.mm: 137";
+		rLen = 0;
+		rLoc = 4654;
+		rType = 0;
+		vrLen = 1119;
+		vrLoc = 3797;
+	};
+	E5345D341199A033000CB77F /* PBXTextBookmark */ = {
+		isa = PBXTextBookmark;
+		fRef = E534588911983738000CB77F /* ZXingWidgetController.h */;
+		name = "ZXingWidgetController.h: 30";
+		rLen = 0;
+		rLoc = 942;
+		rType = 0;
+		vrLen = 1343;
+		vrLoc = 0;
+	};
+	E5345D351199A033000CB77F /* PBXTextBookmark */ = {
+		isa = PBXTextBookmark;
+		fRef = E534588A11983738000CB77F /* ZXingWidgetController.m */;
+		name = "ZXingWidgetController.m: 108";
+		rLen = 0;
+		rLoc = 3932;
+		rType = 0;
+		vrLen = 1451;
+		vrLoc = 2972;
+	};
+	E5345D361199A033000CB77F /* PBXTextBookmark */ = {
+		isa = PBXTextBookmark;
+		fRef = E534588A11983738000CB77F /* ZXingWidgetController.m */;
+		name = "ZXingWidgetController.m: 108";
+		rLen = 0;
+		rLoc = 3932;
+		rType = 0;
+		vrLen = 1451;
+		vrLoc = 2972;
+	};
+	E5345D391199A033000CB77F /* PBXBookmark */ = {
+		isa = PBXBookmark;
+		fRef = E534588A11983738000CB77F /* ZXingWidgetController.m */;
+	};
+	E5345D3A1199A033000CB77F /* PBXTextBookmark */ = {
+		isa = PBXTextBookmark;
+		fRef = E534588A11983738000CB77F /* ZXingWidgetController.m */;
+		name = "ZXingWidgetController.m: 108";
+		rLen = 0;
+		rLoc = 3932;
+		rType = 0;
+		vrLen = 1940;
+		vrLoc = 2812;
+	};
+	E5345D451199A26A000CB77F /* PBXTextBookmark */ = {
+		isa = PBXTextBookmark;
+		fRef = E534588A11983738000CB77F /* ZXingWidgetController.m */;
+		name = "ZXingWidgetController.m: 108";
+		rLen = 0;
+		rLoc = 3932;
+		rType = 0;
+		vrLen = 1700;
+		vrLoc = 963;
+	};
+	E5345D461199A26A000CB77F /* PBXTextBookmark */ = {
+		isa = PBXTextBookmark;
+		fRef = E534588B11983738000CB77F /* OverlayView.h */;
+		name = "OverlayView.h: 29";
+		rLen = 0;
+		rLoc = 1036;
+		rType = 0;
+		vrLen = 859;
+		vrLoc = 0;
+	};
+	E5345D471199A26A000CB77F /* PBXTextBookmark */ = {
+		isa = PBXTextBookmark;
+		fRef = E534588C11983738000CB77F /* OverlayView.m */;
+		name = "OverlayView.m: 158";
+		rLen = 0;
+		rLoc = 5033;
+		rType = 0;
+		vrLen = 1003;
+		vrLoc = 4183;
+	};
+	E5345D481199A26A000CB77F /* PBXTextBookmark */ = {
+		isa = PBXTextBookmark;
+		fRef = E534588A11983738000CB77F /* ZXingWidgetController.m */;
+		name = "ZXingWidgetController.m: 108";
+		rLen = 0;
+		rLoc = 3932;
+		rType = 0;
+		vrLen = 1951;
+		vrLoc = 2776;
+	};
+	E5345D551199A417000CB77F /* PBXTextBookmark */ = {
+		isa = PBXTextBookmark;
+		fRef = E534588C11983738000CB77F /* OverlayView.m */;
+		name = "OverlayView.m: 40";
+		rLen = 0;
+		rLoc = 1383;
+		rType = 0;
+		vrLen = 1410;
+		vrLoc = 1045;
+	};
+	E5345D561199A417000CB77F /* PBXTextBookmark */ = {
+		isa = PBXTextBookmark;
+		fRef = E534588A11983738000CB77F /* ZXingWidgetController.m */;
+		name = "ZXingWidgetController.m: 108";
+		rLen = 0;
+		rLoc = 3932;
+		rType = 0;
+		vrLen = 1951;
+		vrLoc = 2776;
+	};
+	E5345D611199A5D8000CB77F /* PBXTextBookmark */ = {
+		isa = PBXTextBookmark;
+		comments = "Expected expression before '=' token";
+		fRef = E534588A11983738000CB77F /* ZXingWidgetController.m */;
+		rLen = 1;
+		rLoc = 84;
+		rType = 1;
+	};
+	E5345D621199A5D8000CB77F /* PBXTextBookmark */ = {
+		isa = PBXTextBookmark;
+		fRef = E534588A11983738000CB77F /* ZXingWidgetController.m */;
+		name = "ZXingWidgetController.m: 72";
+		rLen = 0;
+		rLoc = 2602;
+		rType = 0;
+		vrLen = 740;
+		vrLoc = 1955;
+	};
+	E5345D6B1199A5E7000CB77F /* PBXTextBookmark */ = {
+		isa = PBXTextBookmark;
+		fRef = E534588C11983738000CB77F /* OverlayView.m */;
+		name = "OverlayView.m: 36";
+		rLen = 0;
+		rLoc = 1079;
+		rType = 0;
+		vrLen = 1407;
+		vrLoc = 1045;
+	};
+	E5345D6C1199A5E7000CB77F /* PBXTextBookmark */ = {
+		isa = PBXTextBookmark;
+		comments = "Expected expression before '=' token";
+		fRef = E534588A11983738000CB77F /* ZXingWidgetController.m */;
+		rLen = 1;
+		rLoc = 84;
+		rType = 1;
+	};
+	E5345D6D1199A5E7000CB77F /* PBXTextBookmark */ = {
+		isa = PBXTextBookmark;
+		fRef = E534588A11983738000CB77F /* ZXingWidgetController.m */;
+		name = "ZXingWidgetController.m: 27";
+		rLen = 0;
+		rLoc = 889;
+		rType = 0;
+		vrLen = 1246;
+		vrLoc = 0;
+	};
+	E5345D6E1199A5E7000CB77F /* PBXTextBookmark */ = {
+		isa = PBXTextBookmark;
+		fRef = E534588A11983738000CB77F /* ZXingWidgetController.m */;
+		name = "ZXingWidgetController.m: 103";
+		rLen = 0;
+		rLoc = 3932;
+		rType = 0;
+		vrLen = 1722;
+		vrLoc = 1616;
+	};
+	E5345D7C1199A8B6000CB77F /* PBXTextBookmark */ = {
+		isa = PBXTextBookmark;
+		fRef = E534588A11983738000CB77F /* ZXingWidgetController.m */;
+		name = "ZXingWidgetController.m: 27";
+		rLen = 0;
+		rLoc = 889;
+		rType = 0;
+		vrLen = 1246;
+		vrLoc = 0;
+	};
+	E5345D7D1199A8B6000CB77F /* PBXTextBookmark */ = {
+		isa = PBXTextBookmark;
+		fRef = E534588A11983738000CB77F /* ZXingWidgetController.m */;
+		name = "ZXingWidgetController.m: 84";
+		rLen = 0;
+		rLoc = 3241;
+		rType = 0;
+		vrLen = 1442;
+		vrLoc = 2139;
+	};
+	E5345D7E1199A8B6000CB77F /* PBXTextBookmark */ = {
+		isa = PBXTextBookmark;
+		fRef = E534588A11983738000CB77F /* ZXingWidgetController.m */;
+		name = "ZXingWidgetController.m: 103";
+		rLen = 0;
+		rLoc = 3932;
+		rType = 0;
+		vrLen = 1726;
+		vrLoc = 1616;
+	};
+	E5345D871199BD4C000CB77F /* PBXTextBookmark */ = {
+		isa = PBXTextBookmark;
+		fRef = E534588A11983738000CB77F /* ZXingWidgetController.m */;
+		name = "ZXingWidgetController.m: 84";
+		rLen = 0;
+		rLoc = 3241;
+		rType = 0;
+		vrLen = 1442;
+		vrLoc = 2139;
+	};
+	E5345D881199BD4C000CB77F /* PBXTextBookmark */ = {
+		isa = PBXTextBookmark;
+		fRef = E534588C11983738000CB77F /* OverlayView.m */;
+		name = "OverlayView.m: 36";
+		rLen = 0;
+		rLoc = 1079;
+		rType = 0;
+		vrLen = 1428;
+		vrLoc = 1024;
+	};
+	E5345D891199BD4C000CB77F /* PBXTextBookmark */ = {
+		isa = PBXTextBookmark;
+		fRef = E534588C11983738000CB77F /* OverlayView.m */;
+		name = "OverlayView.m: 72";
+		rLen = 0;
+		rLoc = 2425;
+		rType = 0;
+		vrLen = 1344;
+		vrLoc = 1817;
+	};
+	E5345D8A1199BD4C000CB77F /* PBXTextBookmark */ = {
+		isa = PBXTextBookmark;
+		fRef = E534588A11983738000CB77F /* ZXingWidgetController.m */;
+		name = "ZXingWidgetController.m: 103";
+		rLen = 0;
+		rLoc = 3932;
+		rType = 0;
+		vrLen = 1726;
+		vrLoc = 1616;
+	};
+	E5345D9A1199C02F000CB77F /* PBXTextBookmark */ = {
+		isa = PBXTextBookmark;
+		fRef = E534588C11983738000CB77F /* OverlayView.m */;
+		name = "OverlayView.m: 38";
+		rLen = 0;
+		rLoc = 1242;
+		rType = 0;
+		vrLen = 1357;
+		vrLoc = 560;
+	};
+	E5345D9B1199C02F000CB77F /* PBXTextBookmark */ = {
+		isa = PBXTextBookmark;
+		fRef = E534588A11983738000CB77F /* ZXingWidgetController.m */;
+		name = "ZXingWidgetController.m: 103";
+		rLen = 0;
+		rLoc = 3932;
+		rType = 0;
+		vrLen = 1726;
+		vrLoc = 1616;
+	};
+	E5345DA21199C1B4000CB77F /* PBXTextBookmark */ = {
+		isa = PBXTextBookmark;
+		fRef = E534588A11983738000CB77F /* ZXingWidgetController.m */;
+		name = "ZXingWidgetController.m: 84";
+		rLen = 0;
+		rLoc = 3241;
+		rType = 0;
+		vrLen = 1288;
+		vrLoc = 777;
+	};
+	E5345DA31199C1B4000CB77F /* PBXTextBookmark */ = {
+		isa = PBXTextBookmark;
+		fRef = E534588C11983738000CB77F /* OverlayView.m */;
+		name = "OverlayView.m: 30";
+		rLen = 0;
+		rLoc = 764;
+		rType = 0;
+		vrLen = 1355;
+		vrLoc = 560;
+	};
+	E5345DA41199C1B4000CB77F /* PBXTextBookmark */ = {
+		isa = PBXTextBookmark;
+		fRef = E534588C11983738000CB77F /* OverlayView.m */;
+		name = "OverlayView.m: 38";
+		rLen = 0;
+		rLoc = 1239;
+		rType = 0;
+		vrLen = 1355;
+		vrLoc = 560;
+	};
+	E5345DA51199C1B4000CB77F /* PBXTextBookmark */ = {
+		isa = PBXTextBookmark;
+		fRef = E534588A11983738000CB77F /* ZXingWidgetController.m */;
+		name = "ZXingWidgetController.m: 103";
+		rLen = 0;
+		rLoc = 3932;
+		rType = 0;
+		vrLen = 1726;
+		vrLoc = 1616;
+	};
+	E5345DAE119A2CF9000CB77F /* PBXTextBookmark */ = {
+		isa = PBXTextBookmark;
+		fRef = E534588911983738000CB77F /* ZXingWidgetController.h */;
+		name = "ZXingWidgetController.h: 31";
+		rLen = 0;
+		rLoc = 1019;
+		rType = 0;
+		vrLen = 1398;
+		vrLoc = 0;
+	};
+	E5345DAF119A2CF9000CB77F /* PBXTextBookmark */ = {
+		isa = PBXTextBookmark;
+		fRef = E534588B11983738000CB77F /* OverlayView.h */;
+		name = "OverlayView.h: 28";
+		rLen = 0;
+		rLoc = 951;
+		rType = 0;
+		vrLen = 928;
+		vrLoc = 0;
+	};
+	E5345DB0119A2CF9000CB77F /* PBXTextBookmark */ = {
+		isa = PBXTextBookmark;
+		fRef = E534588C11983738000CB77F /* OverlayView.m */;
+		name = "OverlayView.m: 32";
+		rLen = 0;
+		rLoc = 871;
+		rType = 0;
+		vrLen = 1402;
+		vrLoc = 560;
+	};
+	E5345DB1119A2CF9000CB77F /* PBXTextBookmark */ = {
+		isa = PBXTextBookmark;
+		fRef = E534588A11983738000CB77F /* ZXingWidgetController.m */;
+		name = "ZXingWidgetController.m: 44";
+		rLen = 0;
+		rLoc = 1522;
+		rType = 0;
+		vrLen = 1449;
+		vrLoc = 2012;
+	};
+	E5345DB2119A2CF9000CB77F /* PBXTextBookmark */ = {
+		isa = PBXTextBookmark;
+		fRef = E534588A11983738000CB77F /* ZXingWidgetController.m */;
+		name = "ZXingWidgetController.m: 44";
+		rLen = 0;
+		rLoc = 1522;
+		rType = 0;
+		vrLen = 1449;
+		vrLoc = 2012;
+	};
+	E5345DD6119A2EF2000CB77F /* PBXTextBookmark */ = {
+		isa = PBXTextBookmark;
+		fRef = E534588A11983738000CB77F /* ZXingWidgetController.m */;
+		name = "ZXingWidgetController.m: 44";
+		rLen = 0;
+		rLoc = 1522;
+		rType = 0;
+		vrLen = 1470;
+		vrLoc = 1991;
+	};
+	E5345DD7119A2EF2000CB77F /* PBXTextBookmark */ = {
+		isa = PBXTextBookmark;
+		fRef = E534588911983738000CB77F /* ZXingWidgetController.h */;
+		name = "ZXingWidgetController.h: 42";
+		rLen = 0;
+		rLoc = 1361;
+		rType = 0;
+		vrLen = 1169;
+		vrLoc = 107;
+	};
+	E5345DE1119A2FC5000CB77F /* PBXTextBookmark */ = {
+		isa = PBXTextBookmark;
+		fRef = E534588911983738000CB77F /* ZXingWidgetController.h */;
+		name = "ZXingWidgetController.h: 37";
+		rLen = 0;
+		rLoc = 1234;
+		rType = 0;
+		vrLen = 1167;
+		vrLoc = 107;
+	};
+	E5345E16119A3F15000CB77F /* PBXTextBookmark */ = {
+		isa = PBXTextBookmark;
+		fRef = E534588B11983738000CB77F /* OverlayView.h */;
+		name = "OverlayView.h: 39";
+		rLen = 19;
+		rLoc = 1068;
+		rType = 0;
+		vrLen = 1091;
+		vrLoc = 0;
+	};
+	E5345E17119A3F15000CB77F /* PBXTextBookmark */ = {
+		isa = PBXTextBookmark;
+		fRef = E534588C11983738000CB77F /* OverlayView.m */;
+		name = "OverlayView.m: 23";
+		rLen = 0;
+		rLoc = 711;
+		rType = 0;
+		vrLen = 1129;
+		vrLoc = 560;
+	};
+	E5345E18119A3F15000CB77F /* PBXTextBookmark */ = {
+		isa = PBXTextBookmark;
+		fRef = E534588911983738000CB77F /* ZXingWidgetController.h */;
+		name = "ZXingWidgetController.h: 25";
+		rLen = 0;
+		rLoc = 853;
+		rType = 0;
+		vrLen = 1203;
+		vrLoc = 175;
+	};
+	E5345E19119A3F15000CB77F /* PBXTextBookmark */ = {
+		isa = PBXTextBookmark;
+		fRef = E534588A11983738000CB77F /* ZXingWidgetController.m */;
+		name = "ZXingWidgetController.m: 56";
+		rLen = 0;
+		rLoc = 1970;
+		rType = 0;
+		vrLen = 1235;
+		vrLoc = 729;
+	};
+	E5345E1A119A3F15000CB77F /* PBXTextBookmark */ = {
+		isa = PBXTextBookmark;
+		fRef = E534588A11983738000CB77F /* ZXingWidgetController.m */;
+		name = "ZXingWidgetController.m: 36";
+		rLen = 0;
+		rLoc = 1157;
+		rType = 0;
+		vrLen = 1222;
+		vrLoc = 729;
+	};
+	E5345E51119AE2DE000CB77F /* PBXTextBookmark */ = {
+		isa = PBXTextBookmark;
+		fRef = E534588B11983738000CB77F /* OverlayView.h */;
+		name = "OverlayView.h: 20";
+		rLen = 0;
+		rLoc = 650;
+		rType = 0;
+		vrLen = 1091;
+		vrLoc = 0;
+	};
+	E5345E52119AE2DE000CB77F /* PBXTextBookmark */ = {
+		isa = PBXTextBookmark;
+		fRef = E534588C11983738000CB77F /* OverlayView.m */;
+		name = "OverlayView.m: 47";
+		rLen = 0;
+		rLoc = 1520;
+		rType = 0;
+		vrLen = 1126;
+		vrLoc = 594;
+	};
+	E5345E53119AE2DE000CB77F /* PBXTextBookmark */ = {
+		isa = PBXTextBookmark;
+		fRef = E53459F8119876A5000CB77F /* ParsedResult.h */;
+		name = "ParsedResult.h: 1";
+		rLen = 0;
+		rLoc = 0;
+		rType = 0;
+		vrLen = 905;
+		vrLoc = 0;
+	};
+	E5345E54119AE2DE000CB77F /* PBXTextBookmark */ = {
+		isa = PBXTextBookmark;
+		fRef = E53459D6119876A5000CB77F /* ResultParser.m */;
+		name = "ResultParser.m: 1";
+		rLen = 0;
+		rLoc = 0;
+		rType = 0;
+		vrLen = 1077;
+		vrLoc = 498;
+	};
+	E5345E55119AE2DE000CB77F /* PBXTextBookmark */ = {
+		isa = PBXTextBookmark;
+		fRef = E53459D5119876A5000CB77F /* ResultParser.h */;
+		name = "ResultParser.h: 25";
+		rLen = 0;
+		rLoc = 733;
+		rType = 0;
+		vrLen = 906;
+		vrLoc = 0;
+	};
+	E5345E56119AE2DE000CB77F /* PBXTextBookmark */ = {
+		isa = PBXTextBookmark;
+		fRef = E534588911983738000CB77F /* ZXingWidgetController.h */;
+		name = "ZXingWidgetController.h: 32";
+		rLen = 0;
+		rLoc = 1019;
+		rType = 0;
+		vrLen = 1218;
+		vrLoc = 175;
+	};
+	E5345E57119AE2DE000CB77F /* PBXTextBookmark */ = {
+		isa = PBXTextBookmark;
+		fRef = E534588A11983738000CB77F /* ZXingWidgetController.m */;
+		name = "ZXingWidgetController.m: 58";
+		rLen = 0;
+		rLoc = 1943;
+		rType = 0;
+		vrLen = 1294;
+		vrLoc = 985;
+	};
+	E5345E58119AE2DE000CB77F /* PBXTextBookmark */ = {
+		isa = PBXTextBookmark;
+		fRef = E534589311983771000CB77F /* Decoder.mm */;
+		name = "Decoder.mm: 137";
+		rLen = 0;
+		rLoc = 4654;
+		rType = 0;
+		vrLen = 1219;
+		vrLoc = 3889;
+	};
+	E5345E59119AE2DE000CB77F /* PBXTextBookmark */ = {
+		isa = PBXTextBookmark;
+		fRef = E534589311983771000CB77F /* Decoder.mm */;
+		name = "Decoder.mm: 137";
+		rLen = 0;
+		rLoc = 4621;
+		rType = 0;
+		vrLen = 1221;
+		vrLoc = 3889;
+	};
+	E5345E5E119AE4AD000CB77F /* PBXTextBookmark */ = {
+		isa = PBXTextBookmark;
+		fRef = E534588A11983738000CB77F /* ZXingWidgetController.m */;
+		name = "ZXingWidgetController.m: 84";
+		rLen = 0;
+		rLoc = 2602;
+		rType = 0;
+		vrLen = 789;
+		vrLoc = 2738;
+	};
+	E5345E5F119AE4AD000CB77F /* PBXTextBookmark */ = {
+		isa = PBXTextBookmark;
+		comments = "Base operand of '->' has non-pointer type 'std::vector<zxing::Ref<zxing::ResultPoint>, std::allocator<zxing::Ref<zxing::ResultPoint> > >'";
+		fRef = E534593711987396000CB77F /* QRCodeReader.cpp */;
+		rLen = 1;
+		rLoc = 55;
+		rType = 1;
+	};
+	E5345E60119AE4AD000CB77F /* PBXTextBookmark */ = {
+		isa = PBXTextBookmark;
+		fRef = E534593711987396000CB77F /* QRCodeReader.cpp */;
+		name = "QRCodeReader.cpp: 57";
+		rLen = 0;
+		rLoc = 1642;
+		rType = 0;
+		vrLen = 778;
+		vrLoc = 1225;
+	};
+	E5345E65119AE4BB000CB77F /* PBXTextBookmark */ = {
+		isa = PBXTextBookmark;
+		fRef = E53458961198379E000CB77F /* DecoderDelegate.h */;
+		name = "DecoderDelegate.h: 1";
+		rLen = 0;
+		rLoc = 0;
+		rType = 0;
+		vrLen = 1298;
+		vrLoc = 0;
+	};
+	E5345E66119AE4BB000CB77F /* PBXTextBookmark */ = {
+		isa = PBXTextBookmark;
+		fRef = E53458A211984A3E000CB77F /* FormatReader.h */;
+		name = "FormatReader.h: 22";
+		rLen = 0;
+		rLoc = 704;
+		rType = 0;
+		vrLen = 1103;
+		vrLoc = 0;
+	};
+	E5345E67119AE4BB000CB77F /* PBXTextBookmark */ = {
+		isa = PBXTextBookmark;
+		fRef = E534593C11987396000CB77F /* Reader.h */;
+		name = "Reader.h: 27";
+		rLen = 0;
+		rLoc = 814;
+		rType = 0;
+		vrLen = 1017;
+		vrLoc = 0;
+	};
+	E5345E68119AE4BB000CB77F /* PBXTextBookmark */ = {
+		isa = PBXTextBookmark;
+		fRef = E534589211983771000CB77F /* Decoder.h */;
+		name = "Decoder.h: 1";
+		rLen = 0;
+		rLoc = 0;
+		rType = 0;
+		vrLen = 1333;
+		vrLoc = 118;
+	};
+	E5345E69119AE4BB000CB77F /* PBXTextBookmark */ = {
+		isa = PBXTextBookmark;
+		fRef = E534589311983771000CB77F /* Decoder.mm */;
+		name = "Decoder.mm: 32";
+		rLen = 0;
+		rLoc = 972;
+		rType = 0;
+		vrLen = 1137;
+		vrLoc = 0;
+	};
+	E5345E6A119AE4BB000CB77F /* PBXTextBookmark */ = {
+		isa = PBXTextBookmark;
+		fRef = E53459F8119876A5000CB77F /* ParsedResult.h */;
+		name = "ParsedResult.h: 1";
+		rLen = 0;
+		rLoc = 0;
+		rType = 0;
+		vrLen = 905;
+		vrLoc = 0;
+	};
+	E5345E6B119AE4BB000CB77F /* PBXTextBookmark */ = {
+		isa = PBXTextBookmark;
+		fRef = E53459F9119876A5000CB77F /* ParsedResult.m */;
+		name = "ParsedResult.m: 1";
+		rLen = 0;
+		rLoc = 0;
+		rType = 0;
+		vrLen = 1084;
+		vrLoc = 0;
+	};
+	E5345E6C119AE4BB000CB77F /* PBXTextBookmark */ = {
+		isa = PBXTextBookmark;
+		fRef = E53459D5119876A5000CB77F /* ResultParser.h */;
+		name = "ResultParser.h: 24";
+		rLen = 0;
+		rLoc = 733;
+		rType = 0;
+		vrLen = 890;
+		vrLoc = 0;
+	};
+	E5345E6D119AE4BB000CB77F /* PBXTextBookmark */ = {
+		isa = PBXTextBookmark;
+		comments = "Base operand of '->' has non-pointer type 'std::vector<zxing::Ref<zxing::ResultPoint>, std::allocator<zxing::Ref<zxing::ResultPoint> > >'";
+		fRef = E534593711987396000CB77F /* QRCodeReader.cpp */;
+		rLen = 1;
+		rLoc = 55;
+		rType = 1;
+	};
+	E5345E6E119AE4BB000CB77F /* PBXTextBookmark */ = {
+		isa = PBXTextBookmark;
+		fRef = E534593711987396000CB77F /* QRCodeReader.cpp */;
+		name = "QRCodeReader.cpp: 44";
+		rLen = 0;
+		rLoc = 1220;
+		rType = 0;
+		vrLen = 1278;
+		vrLoc = 991;
+	};
+	E5345E74119AE5C4000CB77F /* PBXTextBookmark */ = {
+		isa = PBXTextBookmark;
+		fRef = E534593711987396000CB77F /* QRCodeReader.cpp */;
+		name = "QRCodeReader.cpp: 54";
+		rLen = 0;
+		rLoc = 1482;
+		rType = 0;
+		vrLen = 1278;
+		vrLoc = 991;
+	};
+	E5345E75119AE5C4000CB77F /* PBXTextBookmark */ = {
+		isa = PBXTextBookmark;
+		fRef = E53459D5119876A5000CB77F /* ResultParser.h */;
+		name = "ResultParser.h: 24";
+		rLen = 0;
+		rLoc = 733;
+		rType = 0;
+		vrLen = 890;
+		vrLoc = 0;
+	};
+	E5345E76119AE5C4000CB77F /* PBXTextBookmark */ = {
+		isa = PBXTextBookmark;
+		fRef = E53459D6119876A5000CB77F /* ResultParser.m */;
+		name = "ResultParser.m: 1";
+		rLen = 0;
+		rLoc = 0;
+		rType = 0;
+		vrLen = 1077;
+		vrLoc = 498;
+	};
+	E5345E77119AE5C4000CB77F /* PBXTextBookmark */ = {
+		isa = PBXTextBookmark;
+		fRef = E534589311983771000CB77F /* Decoder.mm */;
+		name = "Decoder.mm: 32";
+		rLen = 0;
+		rLoc = 972;
+		rType = 0;
+		vrLen = 1727;
+		vrLoc = 1966;
+	};
+	E5345E78119AE5C4000CB77F /* PBXTextBookmark */ = {
+		isa = PBXTextBookmark;
+		fRef = E534588C11983738000CB77F /* OverlayView.m */;
+		name = "OverlayView.m: 47";
+		rLen = 0;
+		rLoc = 1520;
+		rType = 0;
+		vrLen = 972;
+		vrLoc = 4096;
+	};
+	E5345E79119AE5C4000CB77F /* PBXTextBookmark */ = {
+		isa = PBXTextBookmark;
+		fRef = E534588A11983738000CB77F /* ZXingWidgetController.m */;
+		name = "ZXingWidgetController.m: 58";
+		rLen = 0;
+		rLoc = 1943;
+		rType = 0;
+		vrLen = 1287;
+		vrLoc = 2240;
+	};
+	E5345E7A119AE5C4000CB77F /* PBXTextBookmark */ = {
+		isa = PBXTextBookmark;
+		fRef = E534588A11983738000CB77F /* ZXingWidgetController.m */;
+		name = "ZXingWidgetController.m: 96";
+		rLen = 0;
+		rLoc = 3260;
+		rType = 0;
+		vrLen = 1282;
+		vrLoc = 2240;
+	};
+	E5345E7F119AE66A000CB77F /* PBXTextBookmark */ = {
+		isa = PBXTextBookmark;
+		fRef = E534588A11983738000CB77F /* ZXingWidgetController.m */;
+		name = "ZXingWidgetController.m: 97";
+		rLen = 0;
+		rLoc = 3154;
+		rType = 0;
+		vrLen = 1342;
+		vrLoc = 2240;
+	};
+	E5345E8A119AE692000CB77F /* PBXTextBookmark */ = {
+		isa = PBXTextBookmark;
+		fRef = E534588A11983738000CB77F /* ZXingWidgetController.m */;
+		name = "ZXingWidgetController.m: 97";
+		rLen = 0;
+		rLoc = 3194;
+		rType = 0;
+		vrLen = 1388;
+		vrLoc = 2240;
+	};
+	E5345E9E119AF6FD000CB77F /* PBXTextBookmark */ = {
+		isa = PBXTextBookmark;
+		fRef = E534593711987396000CB77F /* QRCodeReader.cpp */;
+		name = "QRCodeReader.cpp: 57";
+		rLen = 0;
+		rLoc = 1642;
+		rType = 0;
+		vrLen = 778;
+		vrLoc = 1225;
+	};
+	E5345E9F119AF6FD000CB77F /* PBXTextBookmark */ = {
+		isa = PBXTextBookmark;
+		fRef = E53458C511987396000CB77F /* Counted.h */;
+		name = "Counted.h: 27";
+		rLen = 20;
+		rLoc = 789;
+		rType = 0;
+		vrLen = 683;
+		vrLoc = 176;
+	};
+	E5345EA0119AF6FD000CB77F /* PBXTextBookmark */ = {
+		isa = PBXTextBookmark;
+		comments = "Iostream: No such file or directory";
+		fRef = E5345EA1119AF6FD000CB77F /* Counted.h */;
+		rLen = 1;
+		rLoc = 26;
+		rType = 1;
+	};
+	E5345EA1119AF6FD000CB77F /* Counted.h */ = {
+		isa = PBXFileReference;
+		lastKnownFileType = sourcecode.c.h;
+		name = Counted.h;
+		path = ../../cpp/core/src/zxing/common/Counted.h;
+		sourceTree = "<group>";
+	};
+	E5345EA2119AF6FD000CB77F /* PBXTextBookmark */ = {
+		isa = PBXTextBookmark;
+		fRef = E53458C511987396000CB77F /* Counted.h */;
+		name = "Counted.h: 27";
+		rLen = 20;
+		rLoc = 789;
+		rType = 0;
+		vrLen = 683;
+		vrLoc = 176;
+	};
+	E5345EAB119AF74B000CB77F /* PBXTextBookmark */ = {
+		isa = PBXTextBookmark;
+		fRef = E5345EA1119AF6FD000CB77F /* Counted.h */;
+		name = "Counted.h: 33";
+		rLen = 18;
+		rLoc = 860;
+		rType = 0;
+		vrLen = 406;
+		vrLoc = 735;
+	};
+	E5345EAC119AF74B000CB77F /* PBXTextBookmark */ = {
+		isa = PBXTextBookmark;
+		comments = "Iostream: No such file or directory";
+		fRef = E5345EAD119AF74B000CB77F /* Counted.h */;
+		rLen = 1;
+		rLoc = 26;
+		rType = 1;
+	};
+	E5345EAD119AF74B000CB77F /* Counted.h */ = {
+		isa = PBXFileReference;
+		lastKnownFileType = sourcecode.c.h;
+		name = Counted.h;
+		path = ../../cpp/core/src/zxing/common/Counted.h;
+		sourceTree = "<group>";
+	};
+	E5345EAE119AF74B000CB77F /* PBXTextBookmark */ = {
+		isa = PBXTextBookmark;
+		fRef = E5345EA1119AF6FD000CB77F /* Counted.h */;
+		name = "Counted.h: 27";
+		rLen = 20;
+		rLoc = 789;
+		rType = 0;
+		vrLen = 540;
+		vrLoc = 411;
+	};
+	E5345EB9119AF88B000CB77F /* MultiFormatReader.h */ = {
+		isa = PBXFileReference;
+		fileEncoding = 4;
+		lastKnownFileType = sourcecode.c.h;
+		name = MultiFormatReader.h;
+		path = "/Users/dkavanagh/zxing-ro-mine/iphone/ZXingWidget/MultiFormatReader.h";
+		sourceTree = "<absolute>";
+	};
+	E5345EBF119AF8A4000CB77F /* PBXTextBookmark */ = {
+		isa = PBXTextBookmark;
+		fRef = E5345EAD119AF74B000CB77F /* Counted.h */;
+		name = "Counted.h: 27";
+		rLen = 20;
+		rLoc = 789;
+		rType = 0;
+		vrLen = 540;
+		vrLoc = 411;
+	};
+	E5345EC0119AF8A4000CB77F /* PBXTextBookmark */ = {
+		isa = PBXTextBookmark;
+		comments = "Expected unqualified-id before '+' token";
+		fRef = E5345EB9119AF88B000CB77F /* MultiFormatReader.h */;
+		rLen = 1;
+		rLoc = 25;
+		rType = 1;
+	};
+	E5345EC1119AF8A4000CB77F /* PBXTextBookmark */ = {
+		isa = PBXTextBookmark;
+		fRef = E5345EB9119AF88B000CB77F /* MultiFormatReader.h */;
+		name = "MultiFormatReader.h: 27";
+		rLen = 0;
+		rLoc = 766;
+		rType = 0;
+		vrLen = 686;
+		vrLoc = 80;
+	};
+	E5345EC6119AF8AE000CB77F /* PBXTextBookmark */ = {
+		isa = PBXTextBookmark;
+		fRef = E534593B11987396000CB77F /* Reader.cpp */;
+		name = "Reader.cpp: 1";
+		rLen = 0;
+		rLoc = 0;
+		rType = 0;
+		vrLen = 770;
+		vrLoc = 0;
+	};
+	E5345EC7119AF8AE000CB77F /* PBXTextBookmark */ = {
+		isa = PBXTextBookmark;
+		fRef = E534593C11987396000CB77F /* Reader.h */;
+		name = "Reader.h: 27";
+		rLen = 0;
+		rLoc = 814;
+		rType = 0;
+		vrLen = 1017;
+		vrLoc = 0;
+	};
+	E5345EC8119AF8AE000CB77F /* PBXTextBookmark */ = {
+		isa = PBXTextBookmark;
+		fRef = E53458FC11987396000CB77F /* MultiFormatReader.h */;
+		name = "MultiFormatReader.h: 25";
+		rLen = 0;
+		rLoc = 797;
+		rType = 0;
+		vrLen = 999;
+		vrLoc = 0;
+	};
+	E5345EC9119AF8AE000CB77F /* PBXTextBookmark */ = {
+		isa = PBXTextBookmark;
+		fRef = E53458FB11987396000CB77F /* MultiFormatReader.cpp */;
+		name = "MultiFormatReader.cpp: 32";
+		rLen = 0;
+		rLoc = 1108;
+		rType = 0;
+		vrLen = 1476;
+		vrLoc = 258;
+	};
+	E5345ECA119AF8AE000CB77F /* PBXTextBookmark */ = {
+		isa = PBXTextBookmark;
+		fRef = E534589211983771000CB77F /* Decoder.h */;
+		name = "Decoder.h: 1";
+		rLen = 0;
+		rLoc = 0;
+		rType = 0;
+		vrLen = 1330;
+		vrLoc = 121;
+	};
+	E5345ECB119AF8AE000CB77F /* PBXTextBookmark */ = {
+		isa = PBXTextBookmark;
+		fRef = E534588911983738000CB77F /* ZXingWidgetController.h */;
+		name = "ZXingWidgetController.h: 21";
+		rLen = 0;
+		rLoc = 734;
+		rType = 0;
+		vrLen = 1180;
+		vrLoc = 218;
+	};
+	E5345ECC119AF8AE000CB77F /* PBXTextBookmark */ = {
+		isa = PBXTextBookmark;
+		fRef = E53458A211984A3E000CB77F /* FormatReader.h */;
+		name = "FormatReader.h: 22";
+		rLen = 0;
+		rLoc = 704;
+		rType = 0;
+		vrLen = 1103;
+		vrLoc = 0;
+	};
+	E5345ECD119AF8AE000CB77F /* PBXTextBookmark */ = {
+		isa = PBXTextBookmark;
+		comments = "Iostream: No such file or directory";
+		fRef = E5345ECE119AF8AE000CB77F /* Counted.h */;
+		rLen = 1;
+		rLoc = 26;
+		rType = 1;
+	};
+	E5345ECE119AF8AE000CB77F /* Counted.h */ = {
+		isa = PBXFileReference;
+		lastKnownFileType = sourcecode.c.h;
+		name = Counted.h;
+		path = ../../cpp/core/src/zxing/common/Counted.h;
+		sourceTree = "<group>";
+	};
+	E5345ECF119AF8AE000CB77F /* PBXTextBookmark */ = {
+		isa = PBXTextBookmark;
+		fRef = E5345EAD119AF74B000CB77F /* Counted.h */;
+		name = "Counted.h: 27";
+		rLen = 20;
+		rLoc = 789;
+		rType = 0;
+		vrLen = 1014;
+		vrLoc = 0;
+	};
+	E5345ED0119AF8AE000CB77F /* PBXTextBookmark */ = {
+		isa = PBXTextBookmark;
+		fRef = E534588A11983738000CB77F /* ZXingWidgetController.m */;
+		name = "ZXingWidgetController.m: 25";
+		rLen = 0;
+		rLoc = 801;
+		rType = 0;
+		vrLen = 1414;
+		vrLoc = 107;
+	};
+	E5345ED1119AF8AE000CB77F /* PBXTextBookmark */ = {
+		isa = PBXTextBookmark;
+		fRef = E53458A011984A3E000CB77F /* FormatReader.mm */;
+		name = "FormatReader.mm: 42";
+		rLen = 0;
+		rLoc = 1150;
+		rType = 0;
+		vrLen = 1023;
+		vrLoc = 416;
+	};
+	E5345ED2119AF8AE000CB77F /* PBXTextBookmark */ = {
+		isa = PBXTextBookmark;
+		fRef = E534589311983771000CB77F /* Decoder.mm */;
+		name = "Decoder.mm: 166";
+		rLen = 0;
+		rLoc = 5573;
+		rType = 0;
+		vrLen = 1544;
+		vrLoc = 4803;
+	};
+	E5345ED3119AF8AE000CB77F /* PBXTextBookmark */ = {
+		isa = PBXTextBookmark;
+		fRef = E53458A111984A3E000CB77F /* MultiFormatReader.mm */;
+		name = "MultiFormatReader.mm: 39";
+		rLen = 0;
+		rLoc = 1208;
+		rType = 0;
+		vrLen = 1102;
+		vrLoc = 0;
+	};
+	E5345ED4119AF8AE000CB77F /* PBXTextBookmark */ = {
+		isa = PBXTextBookmark;
+		comments = "Expected unqualified-id before '+' token";
+		fRef = E5345EB9119AF88B000CB77F /* MultiFormatReader.h */;
+		rLen = 1;
+		rLoc = 25;
+		rType = 1;
+	};
+	E5345ED5119AF8AE000CB77F /* PBXTextBookmark */ = {
+		isa = PBXTextBookmark;
+		fRef = E5345EB9119AF88B000CB77F /* MultiFormatReader.h */;
+		name = "MultiFormatReader.h: 25";
+		rLen = 0;
+		rLoc = 747;
+		rType = 0;
+		vrLen = 766;
+		vrLoc = 0;
+	};
+	E5345F01119B0494000CB77F /* PBXTextBookmark */ = {
+		isa = PBXTextBookmark;
+		fRef = E5345ECE119AF8AE000CB77F /* Counted.h */;
+		name = "Counted.h: 27";
+		rLen = 20;
+		rLoc = 789;
+		rType = 0;
+		vrLen = 372;
+		vrLoc = 735;
+	};
+	E5345F02119B0494000CB77F /* PBXTextBookmark */ = {
+		isa = PBXTextBookmark;
+		comments = "No super class declared in @interface for 'MultiFormatReader'";
+		fRef = E53458A111984A3E000CB77F /* MultiFormatReader.mm */;
+		rLen = 1;
+		rLoc = 38;
+		rType = 1;
+	};
+	E5345F03119B0494000CB77F /* PBXTextBookmark */ = {
+		isa = PBXTextBookmark;
+		fRef = E53458A111984A3E000CB77F /* MultiFormatReader.mm */;
+		name = "MultiFormatReader.mm: 39";
+		rLen = 0;
+		rLoc = 1160;
+		rType = 0;
+		vrLen = 550;
+		vrLoc = 637;
+	};
+	E5345F10119B0503000CB77F /* PBXTextBookmark */ = {
+		isa = PBXTextBookmark;
+		fRef = E534594211987396000CB77F /* ResultPoint.h */;
+		name = "ResultPoint.h: 1";
+		rLen = 0;
+		rLoc = 0;
+		rType = 0;
+		vrLen = 990;
+		vrLoc = 0;
+	};
+	E5345F11119B0503000CB77F /* PBXTextBookmark */ = {
+		isa = PBXTextBookmark;
+		fRef = E53458A211984A3E000CB77F /* FormatReader.h */;
+		name = "FormatReader.h: 22";
+		rLen = 0;
+		rLoc = 704;
+		rType = 0;
+		vrLen = 1103;
+		vrLoc = 0;
+	};
+	E5345F12119B0503000CB77F /* PBXTextBookmark */ = {
+		isa = PBXTextBookmark;
+		fRef = E53458A011984A3E000CB77F /* FormatReader.mm */;
+		name = "FormatReader.mm: 41";
+		rLen = 0;
+		rLoc = 1150;
+		rType = 0;
+		vrLen = 906;
+		vrLoc = 561;
+	};
+	E5345F13119B0503000CB77F /* PBXTextBookmark */ = {
+		isa = PBXTextBookmark;
+		fRef = E534589311983771000CB77F /* Decoder.mm */;
+		name = "Decoder.mm: 153";
+		rLen = 0;
+		rLoc = 4929;
+		rType = 0;
+		vrLen = 1302;
+		vrLoc = 4739;
+	};
+	E5345F14119B0503000CB77F /* PBXTextBookmark */ = {
+		isa = PBXTextBookmark;
+		fRef = E53458A111984A3E000CB77F /* MultiFormatReader.mm */;
+		name = "MultiFormatReader.mm: 18";
+		rLen = 0;
+		rLoc = 670;
+		rType = 0;
+		vrLen = 1203;
+		vrLoc = 0;
+	};
+	E5345F15119B0503000CB77F /* PBXTextBookmark */ = {
+		isa = PBXTextBookmark;
+		fRef = E53458A111984A3E000CB77F /* MultiFormatReader.mm */;
+		name = "MultiFormatReader.mm: 18";
+		rLen = 0;
+		rLoc = 670;
+		rType = 0;
+		vrLen = 1205;
+		vrLoc = 3;
+	};
+	E5345F2B119B0762000CB77F /* Decoder.mm */ = {
+		uiCtxt = {
+			sepNavIntBoundsRect = "{{0, 0}, {908, 3549}}";
+			sepNavSelRange = "{996, 0}";
+			sepNavVisRange = "{572, 1387}";
+		};
+	};
+	E5345F33119B094C000CB77F /* PBXTextBookmark */ = {
+		isa = PBXTextBookmark;
+		fRef = E534589D11984A27000CB77F /* TwoDDecoderResult.m */;
+		name = "TwoDDecoderResult.m: 1";
+		rLen = 0;
+		rLoc = 0;
+		rType = 0;
+		vrLen = 1089;
+		vrLoc = 0;
+	};
+	E5345F34119B094C000CB77F /* PBXTextBookmark */ = {
+		isa = PBXTextBookmark;
+		fRef = E53458961198379E000CB77F /* DecoderDelegate.h */;
+		name = "DecoderDelegate.h: 1";
+		rLen = 0;
+		rLoc = 0;
+		rType = 0;
+		vrLen = 1298;
+		vrLoc = 0;
+	};
+	E5345F35119B094C000CB77F /* PBXTextBookmark */ = {
+		isa = PBXTextBookmark;
+		comments = "Iostream: No such file or directory";
+		fRef = E5345F36119B094C000CB77F /* Counted.h */;
+		rLen = 1;
+		rLoc = 26;
+		rType = 1;
+	};
+	E5345F36119B094C000CB77F /* Counted.h */ = {
+		isa = PBXFileReference;
+		lastKnownFileType = sourcecode.c.h;
+		name = Counted.h;
+		path = ../../cpp/core/src/zxing/common/Counted.h;
+		sourceTree = "<group>";
+	};
+	E5345F37119B094C000CB77F /* PBXTextBookmark */ = {
+		isa = PBXTextBookmark;
+		fRef = E5345ECE119AF8AE000CB77F /* Counted.h */;
+		name = "Counted.h: 27";
+		rLen = 0;
+		rLoc = 799;
+		rType = 0;
+		vrLen = 1085;
+		vrLoc = 246;
+	};
+	E5345F38119B094C000CB77F /* PBXTextBookmark */ = {
+		isa = PBXTextBookmark;
+		fRef = E534588A11983738000CB77F /* ZXingWidgetController.m */;
+		name = "ZXingWidgetController.m: 25";
+		rLen = 0;
+		rLoc = 801;
+		rType = 0;
+		vrLen = 1414;
+		vrLoc = 107;
+	};
+	E5345F39119B094C000CB77F /* PBXTextBookmark */ = {
+		isa = PBXTextBookmark;
+		fRef = E534589211983771000CB77F /* Decoder.h */;
+		name = "Decoder.h: 28";
+		rLen = 0;
+		rLoc = 801;
+		rType = 0;
+		vrLen = 1333;
+		vrLoc = 118;
+	};
+	E5345F3A119B094C000CB77F /* PBXTextBookmark */ = {
+		isa = PBXTextBookmark;
+		fRef = E5345F2B119B0762000CB77F /* Decoder.mm */;
+		name = "Decoder.mm: 1";
+		rLen = 0;
+		rLoc = 0;
+		rType = 0;
+		vrLen = 1664;
+		vrLoc = 1746;
+	};
+	E5345F3B119B094C000CB77F /* PBXTextBookmark */ = {
+		isa = PBXTextBookmark;
+		fRef = E53458A111984A3E000CB77F /* MultiFormatReader.mm */;
+		name = "MultiFormatReader.mm: 18";
+		rLen = 0;
+		rLoc = 670;
+		rType = 0;
+		vrLen = 1203;
+		vrLoc = 0;
+	};
+	E5345F3C119B094C000CB77F /* PBXTextBookmark */ = {
+		isa = PBXTextBookmark;
+		fRef = E53458A111984A3E000CB77F /* MultiFormatReader.mm */;
+		name = "MultiFormatReader.mm: 27";
+		rLen = 0;
+		rLoc = 788;
+		rType = 0;
+		vrLen = 1205;
+		vrLoc = 3;
+	};
+	E5345F3F119B09E7000CB77F /* PBXTextBookmark */ = {
+		isa = PBXTextBookmark;
+		fRef = E53458A111984A3E000CB77F /* MultiFormatReader.mm */;
+		name = "MultiFormatReader.mm: 39";
+		rLen = 0;
+		rLoc = 1160;
+		rType = 0;
+		vrLen = 565;
+		vrLoc = 637;
+	};
+	E5345F40119B09E7000CB77F /* PBXTextBookmark */ = {
+		isa = PBXTextBookmark;
+		fRef = E5345ECE119AF8AE000CB77F /* Counted.h */;
+		name = "Counted.h: 27";
+		rLen = 0;
+		rLoc = 799;
+		rType = 0;
+		vrLen = 372;
+		vrLoc = 735;
+	};
+	E5345F41119B09E7000CB77F /* PBXTextBookmark */ = {
+		isa = PBXTextBookmark;
+		comments = "Iostream: No such file or directory";
+		fRef = E5345F42119B09E7000CB77F /* Counted.h */;
+		rLen = 1;
+		rLoc = 26;
+		rType = 1;
+	};
+	E5345F42119B09E7000CB77F /* Counted.h */ = {
+		isa = PBXFileReference;
+		lastKnownFileType = sourcecode.c.h;
+		name = Counted.h;
+		path = ../../cpp/core/src/zxing/common/Counted.h;
+		sourceTree = "<group>";
+	};
+	E5345F43119B09E7000CB77F /* PBXTextBookmark */ = {
+		isa = PBXTextBookmark;
+		fRef = E5345F36119B094C000CB77F /* Counted.h */;
+		name = "Counted.h: 27";
+		rLen = 20;
+		rLoc = 789;
+		rType = 0;
+		vrLen = 372;
+		vrLoc = 735;
+	};
+	E5345F49119B09F8000CB77F /* PBXTextBookmark */ = {
+		isa = PBXTextBookmark;
+		fRef = E53458A111984A3E000CB77F /* MultiFormatReader.mm */;
+		name = "MultiFormatReader.mm: 27";
+		rLen = 0;
+		rLoc = 788;
+		rType = 0;
+		vrLen = 1205;
+		vrLoc = 3;
+	};
+	E5345F72119B12AF000CB77F /* PBXTextBookmark */ = {
+		isa = PBXTextBookmark;
+		fRef = E5345F2B119B0762000CB77F /* Decoder.mm */;
+		name = "Decoder.mm: 34";
+		rLen = 0;
+		rLoc = 996;
+		rType = 0;
+		vrLen = 1387;
+		vrLoc = 572;
+	};
+	E5345F73119B12AF000CB77F /* PBXTextBookmark */ = {
+		isa = PBXTextBookmark;
+		fRef = E53458A111984A3E000CB77F /* MultiFormatReader.mm */;
+		name = "MultiFormatReader.mm: 27";
+		rLen = 0;
+		rLoc = 788;
+		rType = 0;
+		vrLen = 1208;
+		vrLoc = 0;
+	};
+	E5345F74119B12AF000CB77F /* PBXTextBookmark */ = {
+		isa = PBXTextBookmark;
+		fRef = E53458A111984A3E000CB77F /* MultiFormatReader.mm */;
+		name = "MultiFormatReader.mm: 27";
+		rLen = 0;
+		rLoc = 788;
+		rType = 0;
+		vrLen = 1203;
+		vrLoc = 0;
+	};
+	E5345F89119B13D3000CB77F /* PBXTextBookmark */ = {
+		isa = PBXTextBookmark;
+		fRef = E53458A111984A3E000CB77F /* MultiFormatReader.mm */;
+		name = "MultiFormatReader.mm: 27";
+		rLen = 0;
+		rLoc = 788;
+		rType = 0;
+		vrLen = 1203;
+		vrLoc = 0;
+	};
+	E5345F8C119B1408000CB77F /* PBXTextBookmark */ = {
+		isa = PBXTextBookmark;
+		fRef = E53458A111984A3E000CB77F /* MultiFormatReader.mm */;
+		name = "MultiFormatReader.mm: 27";
+		rLen = 0;
+		rLoc = 788;
+		rType = 0;
+		vrLen = 1203;
+		vrLoc = 0;
+	};
+	E5345F93119B1D3A000CB77F /* PBXTextBookmark */ = {
+		isa = PBXTextBookmark;
+		fRef = E53458A111984A3E000CB77F /* MultiFormatReader.mm */;
+		name = "MultiFormatReader.mm: 27";
+		rLen = 0;
+		rLoc = 788;
+		rType = 0;
+		vrLen = 1203;
+		vrLoc = 0;
+	};
+	E5345F96119B233D000CB77F /* PBXTextBookmark */ = {
+		isa = PBXTextBookmark;
+		fRef = E53458A111984A3E000CB77F /* MultiFormatReader.mm */;
+		name = "MultiFormatReader.mm: 27";
+		rLen = 0;
+		rLoc = 788;
+		rType = 0;
+		vrLen = 1203;
+		vrLoc = 0;
+	};
+	E5345F9B119B2588000CB77F /* PBXTextBookmark */ = {
+		isa = PBXTextBookmark;
+		fRef = E53458A111984A3E000CB77F /* MultiFormatReader.mm */;
+		name = "MultiFormatReader.mm: 27";
+		rLen = 0;
+		rLoc = 788;
+		rType = 0;
+		vrLen = 1205;
+		vrLoc = 3;
+	};
+	E5345FA9119B2602000CB77F /* XCBuildMessageTextBookmark */ = {
+		isa = PBXTextBookmark;
+		comments = "Incompatible Objective-C types 'struct TwoDDecoderResult *', expected 'struct ParsedResult *' when passing argument 1 of 'scanResult:' from distinct Objective-C type";
+		fRef = E534588A11983738000CB77F /* ZXingWidgetController.m */;
+		fallbackIsa = XCBuildMessageTextBookmark;
+		rLen = 1;
+		rLoc = 141;
+		rType = 1;
+	};
+	E5345FAC119B2651000CB77F /* PBXTextBookmark */ = {
+		isa = PBXTextBookmark;
+		fRef = E53458A111984A3E000CB77F /* MultiFormatReader.mm */;
+		name = "MultiFormatReader.mm: 27";
+		rLen = 0;
+		rLoc = 788;
+		rType = 0;
+		vrLen = 1208;
+		vrLoc = 0;
+	};
+	E5345FAD119B2651000CB77F /* PBXTextBookmark */ = {
+		isa = PBXTextBookmark;
+		fRef = E534589D11984A27000CB77F /* TwoDDecoderResult.m */;
+		name = "TwoDDecoderResult.m: 1";
+		rLen = 0;
+		rLoc = 0;
+		rType = 0;
+		vrLen = 1125;
+		vrLoc = 0;
+	};
+	E5345FAE119B2651000CB77F /* PBXTextBookmark */ = {
+		isa = PBXTextBookmark;
+		fRef = E534589C11984A27000CB77F /* TwoDDecoderResult.h */;
+		name = "TwoDDecoderResult.h: 1";
+		rLen = 0;
+		rLoc = 0;
+		rType = 0;
+		vrLen = 1020;
+		vrLoc = 0;
+	};
+	E5345FAF119B2651000CB77F /* PBXTextBookmark */ = {
+		isa = PBXTextBookmark;
+		fRef = E534588911983738000CB77F /* ZXingWidgetController.h */;
+		name = "ZXingWidgetController.h: 45";
+		rLen = 0;
+		rLoc = 1359;
+		rType = 0;
+		vrLen = 1219;
+		vrLoc = 175;
+	};
+	E5345FB0119B2651000CB77F /* PBXTextBookmark */ = {
+		isa = PBXTextBookmark;
+		fRef = E534588A11983738000CB77F /* ZXingWidgetController.m */;
+		name = "ZXingWidgetController.m: 35";
+		rLen = 0;
+		rLoc = 1102;
+		rType = 0;
+		vrLen = 1515;
+		vrLoc = 40;
+	};
+	E5345FB1119B2651000CB77F /* PBXTextBookmark */ = {
+		isa = PBXTextBookmark;
+		fRef = E534588A11983738000CB77F /* ZXingWidgetController.m */;
+		name = "ZXingWidgetController.m: 35";
+		rLen = 0;
+		rLoc = 1102;
+		rType = 0;
+		vrLen = 1340;
+		vrLoc = 1305;
+	};
+	E5345FB6119B2651000CB77F /* PBXTextBookmark */ = {
+		isa = PBXTextBookmark;
+		fRef = E534588A11983738000CB77F /* ZXingWidgetController.m */;
+		name = "ZXingWidgetController.m: 141";
+		rLen = 0;
+		rLoc = 4730;
+		rType = 0;
+		vrLen = 1636;
+		vrLoc = 3642;
+	};
+	E5345FBC119B267E000CB77F /* PBXTextBookmark */ = {
+		isa = PBXTextBookmark;
+		fRef = E534588A11983738000CB77F /* ZXingWidgetController.m */;
+		name = "ZXingWidgetController.m: 36";
+		rLen = 0;
+		rLoc = 1102;
+		rType = 0;
+		vrLen = 1403;
+		vrLoc = 895;
+	};
+	E5345FBD119B267E000CB77F /* PBXTextBookmark */ = {
+		isa = PBXTextBookmark;
+		fRef = E534588A11983738000CB77F /* ZXingWidgetController.m */;
+		name = "ZXingWidgetController.m: 142";
+		rLen = 0;
+		rLoc = 4730;
+		rType = 0;
+		vrLen = 1881;
+		vrLoc = 2970;
+	};
+	E5345FBF119B2686000CB77F /* XCBuildMessageTextBookmark */ = {
+		isa = PBXTextBookmark;
+		comments = "Format not a string literal and no format arguments";
+		fRef = E534588A11983738000CB77F /* ZXingWidgetController.m */;
+		fallbackIsa = XCBuildMessageTextBookmark;
+		rLen = 1;
+		rLoc = 106;
+		rType = 1;
+	};
+	E5345FC0119B2686000CB77F /* PBXTextBookmark */ = {
+		isa = PBXTextBookmark;
+		fRef = E534588A11983738000CB77F /* ZXingWidgetController.m */;
+		name = "ZXingWidgetController.m: 107";
+		rLen = 0;
+		rLoc = 3410;
+		rType = 0;
+		vrLen = 849;
+		vrLoc = 2970;
+	};
+	E5345FC5119B26BD000CB77F /* PBXTextBookmark */ = {
+		isa = PBXTextBookmark;
+		fRef = E534588A11983738000CB77F /* ZXingWidgetController.m */;
+		name = "ZXingWidgetController.m: 107";
+		rLen = 0;
+		rLoc = 3545;
+		rType = 0;
+		vrLen = 1515;
+		vrLoc = 2382;
+	};
+	E5345FC6119B26BD000CB77F /* PBXTextBookmark */ = {
+		isa = PBXTextBookmark;
+		fRef = E534588A11983738000CB77F /* ZXingWidgetController.m */;
+		name = "ZXingWidgetController.m: 142";
+		rLen = 0;
+		rLoc = 4730;
+		rType = 0;
+		vrLen = 1853;
+		vrLoc = 2970;
+	};
+}
diff --git a/iphone/ZXingWidget/ZXingWidget.xcodeproj/project.pbxproj b/iphone/ZXingWidget/ZXingWidget.xcodeproj/project.pbxproj
new file mode 100644
index 0000000..8ac1aa4
--- /dev/null
+++ b/iphone/ZXingWidget/ZXingWidget.xcodeproj/project.pbxproj
@@ -0,0 +1,1184 @@
+// !$*UTF8*$!
+{
+	archiveVersion = 1;
+	classes = {
+	};
+	objectVersion = 45;
+	objects = {
+
+/* Begin PBXBuildFile section */
+		AA747D9F0F9514B9006C5449 /* ZXingWidget_Prefix.pch in Headers */ = {isa = PBXBuildFile; fileRef = AA747D9E0F9514B9006C5449 /* ZXingWidget_Prefix.pch */; };
+		AACBBE4A0F95108600F1A2B1 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AACBBE490F95108600F1A2B1 /* Foundation.framework */; };
+		E534588D11983738000CB77F /* ZXingWidgetController.h in Headers */ = {isa = PBXBuildFile; fileRef = E534588911983738000CB77F /* ZXingWidgetController.h */; };
+		E534588E11983738000CB77F /* ZXingWidgetController.m in Sources */ = {isa = PBXBuildFile; fileRef = E534588A11983738000CB77F /* ZXingWidgetController.m */; };
+		E534588F11983738000CB77F /* OverlayView.h in Headers */ = {isa = PBXBuildFile; fileRef = E534588B11983738000CB77F /* OverlayView.h */; };
+		E534589011983738000CB77F /* OverlayView.m in Sources */ = {isa = PBXBuildFile; fileRef = E534588C11983738000CB77F /* OverlayView.m */; };
+		E534589411983771000CB77F /* Decoder.h in Headers */ = {isa = PBXBuildFile; fileRef = E534589211983771000CB77F /* Decoder.h */; };
+		E53458971198379E000CB77F /* DecoderDelegate.h in Headers */ = {isa = PBXBuildFile; fileRef = E53458961198379E000CB77F /* DecoderDelegate.h */; };
+		E534589E11984A27000CB77F /* TwoDDecoderResult.h in Headers */ = {isa = PBXBuildFile; fileRef = E534589C11984A27000CB77F /* TwoDDecoderResult.h */; };
+		E534589F11984A27000CB77F /* TwoDDecoderResult.m in Sources */ = {isa = PBXBuildFile; fileRef = E534589D11984A27000CB77F /* TwoDDecoderResult.m */; };
+		E53458A311984A3E000CB77F /* FormatReader.mm in Sources */ = {isa = PBXBuildFile; fileRef = E53458A011984A3E000CB77F /* FormatReader.mm */; };
+		E53458A411984A3E000CB77F /* MultiFormatReader.mm in Sources */ = {isa = PBXBuildFile; fileRef = E53458A111984A3E000CB77F /* MultiFormatReader.mm */; };
+		E53458A511984A3E000CB77F /* FormatReader.h in Headers */ = {isa = PBXBuildFile; fileRef = E53458A211984A3E000CB77F /* FormatReader.h */; };
+		E534594311987396000CB77F /* BarcodeFormat.cpp in Sources */ = {isa = PBXBuildFile; fileRef = E53458B511987396000CB77F /* BarcodeFormat.cpp */; };
+		E534594411987396000CB77F /* BarcodeFormat.h in Headers */ = {isa = PBXBuildFile; fileRef = E53458B611987396000CB77F /* BarcodeFormat.h */; };
+		E534594511987396000CB77F /* Binarizer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = E53458B711987396000CB77F /* Binarizer.cpp */; };
+		E534594611987396000CB77F /* Binarizer.h in Headers */ = {isa = PBXBuildFile; fileRef = E53458B811987396000CB77F /* Binarizer.h */; };
+		E534594711987396000CB77F /* BinaryBitmap.cpp in Sources */ = {isa = PBXBuildFile; fileRef = E53458B911987396000CB77F /* BinaryBitmap.cpp */; };
+		E534594811987396000CB77F /* BinaryBitmap.h in Headers */ = {isa = PBXBuildFile; fileRef = E53458BA11987396000CB77F /* BinaryBitmap.h */; };
+		E534594911987396000CB77F /* Array.cpp in Sources */ = {isa = PBXBuildFile; fileRef = E53458BC11987396000CB77F /* Array.cpp */; };
+		E534594A11987396000CB77F /* Array.h in Headers */ = {isa = PBXBuildFile; fileRef = E53458BD11987396000CB77F /* Array.h */; };
+		E534594B11987396000CB77F /* BitArray.cpp in Sources */ = {isa = PBXBuildFile; fileRef = E53458BE11987396000CB77F /* BitArray.cpp */; };
+		E534594C11987396000CB77F /* BitArray.h in Headers */ = {isa = PBXBuildFile; fileRef = E53458BF11987396000CB77F /* BitArray.h */; };
+		E534594D11987396000CB77F /* BitMatrix.cpp in Sources */ = {isa = PBXBuildFile; fileRef = E53458C011987396000CB77F /* BitMatrix.cpp */; };
+		E534594E11987396000CB77F /* BitMatrix.h in Headers */ = {isa = PBXBuildFile; fileRef = E53458C111987396000CB77F /* BitMatrix.h */; };
+		E534594F11987396000CB77F /* BitSource.cpp in Sources */ = {isa = PBXBuildFile; fileRef = E53458C211987396000CB77F /* BitSource.cpp */; };
+		E534595011987396000CB77F /* BitSource.h in Headers */ = {isa = PBXBuildFile; fileRef = E53458C311987396000CB77F /* BitSource.h */; };
+		E534595111987396000CB77F /* Counted.cpp in Sources */ = {isa = PBXBuildFile; fileRef = E53458C411987396000CB77F /* Counted.cpp */; };
+		E534595211987396000CB77F /* Counted.h in Headers */ = {isa = PBXBuildFile; fileRef = E53458C511987396000CB77F /* Counted.h */; };
+		E534595311987396000CB77F /* DecoderResult.cpp in Sources */ = {isa = PBXBuildFile; fileRef = E53458C611987396000CB77F /* DecoderResult.cpp */; };
+		E534595411987396000CB77F /* DecoderResult.h in Headers */ = {isa = PBXBuildFile; fileRef = E53458C711987396000CB77F /* DecoderResult.h */; };
+		E534595511987396000CB77F /* DetectorResult.cpp in Sources */ = {isa = PBXBuildFile; fileRef = E53458C811987396000CB77F /* DetectorResult.cpp */; };
+		E534595611987396000CB77F /* DetectorResult.h in Headers */ = {isa = PBXBuildFile; fileRef = E53458C911987396000CB77F /* DetectorResult.h */; };
+		E534595711987396000CB77F /* EdgeDetector.cpp in Sources */ = {isa = PBXBuildFile; fileRef = E53458CA11987396000CB77F /* EdgeDetector.cpp */; };
+		E534595811987396000CB77F /* EdgeDetector.h in Headers */ = {isa = PBXBuildFile; fileRef = E53458CB11987396000CB77F /* EdgeDetector.h */; };
+		E534595911987396000CB77F /* GlobalHistogramBinarizer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = E53458CC11987396000CB77F /* GlobalHistogramBinarizer.cpp */; };
+		E534595A11987396000CB77F /* GlobalHistogramBinarizer.h in Headers */ = {isa = PBXBuildFile; fileRef = E53458CD11987396000CB77F /* GlobalHistogramBinarizer.h */; };
+		E534595B11987396000CB77F /* GridSampler.cpp in Sources */ = {isa = PBXBuildFile; fileRef = E53458CE11987396000CB77F /* GridSampler.cpp */; };
+		E534595C11987396000CB77F /* GridSampler.h in Headers */ = {isa = PBXBuildFile; fileRef = E53458CF11987396000CB77F /* GridSampler.h */; };
+		E534595D11987396000CB77F /* IllegalArgumentException.cpp in Sources */ = {isa = PBXBuildFile; fileRef = E53458D011987396000CB77F /* IllegalArgumentException.cpp */; };
+		E534595E11987396000CB77F /* IllegalArgumentException.h in Headers */ = {isa = PBXBuildFile; fileRef = E53458D111987396000CB77F /* IllegalArgumentException.h */; };
+		E534595F11987396000CB77F /* LocalBlockBinarizer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = E53458D211987396000CB77F /* LocalBlockBinarizer.cpp */; };
+		E534596011987396000CB77F /* LocalBlockBinarizer.h in Headers */ = {isa = PBXBuildFile; fileRef = E53458D311987396000CB77F /* LocalBlockBinarizer.h */; };
+		E534596111987396000CB77F /* PerspectiveTransform.cpp in Sources */ = {isa = PBXBuildFile; fileRef = E53458D411987396000CB77F /* PerspectiveTransform.cpp */; };
+		E534596211987396000CB77F /* PerspectiveTransform.h in Headers */ = {isa = PBXBuildFile; fileRef = E53458D511987396000CB77F /* PerspectiveTransform.h */; };
+		E534596311987396000CB77F /* Point.h in Headers */ = {isa = PBXBuildFile; fileRef = E53458D611987396000CB77F /* Point.h */; };
+		E534596411987396000CB77F /* GF256.cpp in Sources */ = {isa = PBXBuildFile; fileRef = E53458D811987396000CB77F /* GF256.cpp */; };
+		E534596511987396000CB77F /* GF256.h in Headers */ = {isa = PBXBuildFile; fileRef = E53458D911987396000CB77F /* GF256.h */; };
+		E534596611987396000CB77F /* GF256Poly.cpp in Sources */ = {isa = PBXBuildFile; fileRef = E53458DA11987396000CB77F /* GF256Poly.cpp */; };
+		E534596711987396000CB77F /* GF256Poly.h in Headers */ = {isa = PBXBuildFile; fileRef = E53458DB11987396000CB77F /* GF256Poly.h */; };
+		E534596811987396000CB77F /* ReedSolomonDecoder.cpp in Sources */ = {isa = PBXBuildFile; fileRef = E53458DC11987396000CB77F /* ReedSolomonDecoder.cpp */; };
+		E534596911987396000CB77F /* ReedSolomonDecoder.h in Headers */ = {isa = PBXBuildFile; fileRef = E53458DD11987396000CB77F /* ReedSolomonDecoder.h */; };
+		E534596A11987396000CB77F /* ReedSolomonException.cpp in Sources */ = {isa = PBXBuildFile; fileRef = E53458DE11987396000CB77F /* ReedSolomonException.cpp */; };
+		E534596B11987396000CB77F /* ReedSolomonException.h in Headers */ = {isa = PBXBuildFile; fileRef = E53458DF11987396000CB77F /* ReedSolomonException.h */; };
+		E534596C11987396000CB77F /* Str.cpp in Sources */ = {isa = PBXBuildFile; fileRef = E53458E011987396000CB77F /* Str.cpp */; };
+		E534596D11987396000CB77F /* Str.h in Headers */ = {isa = PBXBuildFile; fileRef = E53458E111987396000CB77F /* Str.h */; };
+		E534596E11987396000CB77F /* DataMatrixReader.cpp in Sources */ = {isa = PBXBuildFile; fileRef = E53458E311987396000CB77F /* DataMatrixReader.cpp */; };
+		E534596F11987396000CB77F /* DataMatrixReader.h in Headers */ = {isa = PBXBuildFile; fileRef = E53458E411987396000CB77F /* DataMatrixReader.h */; };
+		E534597011987396000CB77F /* BitMatrixParser.cpp in Sources */ = {isa = PBXBuildFile; fileRef = E53458E611987396000CB77F /* BitMatrixParser.cpp */; };
+		E534597111987396000CB77F /* BitMatrixParser.h in Headers */ = {isa = PBXBuildFile; fileRef = E53458E711987396000CB77F /* BitMatrixParser.h */; };
+		E534597211987396000CB77F /* DataBlock.cpp in Sources */ = {isa = PBXBuildFile; fileRef = E53458E811987396000CB77F /* DataBlock.cpp */; };
+		E534597311987396000CB77F /* DataBlock.h in Headers */ = {isa = PBXBuildFile; fileRef = E53458E911987396000CB77F /* DataBlock.h */; };
+		E534597411987396000CB77F /* DecodedBitStreamParser.cpp in Sources */ = {isa = PBXBuildFile; fileRef = E53458EA11987396000CB77F /* DecodedBitStreamParser.cpp */; };
+		E534597511987396000CB77F /* DecodedBitStreamParser.h in Headers */ = {isa = PBXBuildFile; fileRef = E53458EB11987396000CB77F /* DecodedBitStreamParser.h */; };
+		E534597611987396000CB77F /* Decoder.cpp in Sources */ = {isa = PBXBuildFile; fileRef = E53458EC11987396000CB77F /* Decoder.cpp */; };
+		E534597711987396000CB77F /* Decoder.h in Headers */ = {isa = PBXBuildFile; fileRef = E53458ED11987396000CB77F /* Decoder.h */; };
+		E534597811987396000CB77F /* CornerPoint.cpp in Sources */ = {isa = PBXBuildFile; fileRef = E53458EF11987396000CB77F /* CornerPoint.cpp */; };
+		E534597911987396000CB77F /* CornerPoint.h in Headers */ = {isa = PBXBuildFile; fileRef = E53458F011987396000CB77F /* CornerPoint.h */; };
+		E534597A11987396000CB77F /* Detector.cpp in Sources */ = {isa = PBXBuildFile; fileRef = E53458F111987396000CB77F /* Detector.cpp */; };
+		E534597B11987396000CB77F /* Detector.h in Headers */ = {isa = PBXBuildFile; fileRef = E53458F211987396000CB77F /* Detector.h */; };
+		E534597C11987396000CB77F /* MonochromeRectangleDetector.cpp in Sources */ = {isa = PBXBuildFile; fileRef = E53458F311987396000CB77F /* MonochromeRectangleDetector.cpp */; };
+		E534597D11987396000CB77F /* MonochromeRectangleDetector.h in Headers */ = {isa = PBXBuildFile; fileRef = E53458F411987396000CB77F /* MonochromeRectangleDetector.h */; };
+		E534597E11987396000CB77F /* Version.cpp in Sources */ = {isa = PBXBuildFile; fileRef = E53458F511987396000CB77F /* Version.cpp */; };
+		E534597F11987396000CB77F /* Version.h in Headers */ = {isa = PBXBuildFile; fileRef = E53458F611987396000CB77F /* Version.h */; };
+		E534598011987396000CB77F /* Exception.cpp in Sources */ = {isa = PBXBuildFile; fileRef = E53458F711987396000CB77F /* Exception.cpp */; };
+		E534598111987396000CB77F /* Exception.h in Headers */ = {isa = PBXBuildFile; fileRef = E53458F811987396000CB77F /* Exception.h */; };
+		E534598211987396000CB77F /* LuminanceSource.cpp in Sources */ = {isa = PBXBuildFile; fileRef = E53458F911987396000CB77F /* LuminanceSource.cpp */; };
+		E534598311987396000CB77F /* LuminanceSource.h in Headers */ = {isa = PBXBuildFile; fileRef = E53458FA11987396000CB77F /* LuminanceSource.h */; };
+		E534598411987396000CB77F /* MultiFormatReader.cpp in Sources */ = {isa = PBXBuildFile; fileRef = E53458FB11987396000CB77F /* MultiFormatReader.cpp */; };
+		E534598511987396000CB77F /* MultiFormatReader.h in Headers */ = {isa = PBXBuildFile; fileRef = E53458FC11987396000CB77F /* MultiFormatReader.h */; };
+		E534598611987396000CB77F /* Code128Reader.cpp in Sources */ = {isa = PBXBuildFile; fileRef = E53458FE11987396000CB77F /* Code128Reader.cpp */; };
+		E534598711987396000CB77F /* Code128Reader.h in Headers */ = {isa = PBXBuildFile; fileRef = E53458FF11987396000CB77F /* Code128Reader.h */; };
+		E534598811987396000CB77F /* Code39Reader.cpp in Sources */ = {isa = PBXBuildFile; fileRef = E534590011987396000CB77F /* Code39Reader.cpp */; };
+		E534598911987396000CB77F /* Code39Reader.h in Headers */ = {isa = PBXBuildFile; fileRef = E534590111987396000CB77F /* Code39Reader.h */; };
+		E534598A11987396000CB77F /* EAN13Reader.cpp in Sources */ = {isa = PBXBuildFile; fileRef = E534590211987396000CB77F /* EAN13Reader.cpp */; };
+		E534598B11987396000CB77F /* EAN13Reader.h in Headers */ = {isa = PBXBuildFile; fileRef = E534590311987396000CB77F /* EAN13Reader.h */; };
+		E534598C11987396000CB77F /* EAN8Reader.cpp in Sources */ = {isa = PBXBuildFile; fileRef = E534590411987396000CB77F /* EAN8Reader.cpp */; };
+		E534598D11987396000CB77F /* EAN8Reader.h in Headers */ = {isa = PBXBuildFile; fileRef = E534590511987396000CB77F /* EAN8Reader.h */; };
+		E534598E11987396000CB77F /* ITFReader.cpp in Sources */ = {isa = PBXBuildFile; fileRef = E534590611987396000CB77F /* ITFReader.cpp */; };
+		E534598F11987396000CB77F /* ITFReader.h in Headers */ = {isa = PBXBuildFile; fileRef = E534590711987396000CB77F /* ITFReader.h */; };
+		E534599011987396000CB77F /* MultiFormatOneDReader.cpp in Sources */ = {isa = PBXBuildFile; fileRef = E534590811987396000CB77F /* MultiFormatOneDReader.cpp */; };
+		E534599111987396000CB77F /* MultiFormatOneDReader.h in Headers */ = {isa = PBXBuildFile; fileRef = E534590911987396000CB77F /* MultiFormatOneDReader.h */; };
+		E534599211987396000CB77F /* MultiFormatUPCEANReader.cpp in Sources */ = {isa = PBXBuildFile; fileRef = E534590A11987396000CB77F /* MultiFormatUPCEANReader.cpp */; };
+		E534599311987396000CB77F /* MultiFormatUPCEANReader.h in Headers */ = {isa = PBXBuildFile; fileRef = E534590B11987396000CB77F /* MultiFormatUPCEANReader.h */; };
+		E534599411987396000CB77F /* OneDReader.cpp in Sources */ = {isa = PBXBuildFile; fileRef = E534590C11987396000CB77F /* OneDReader.cpp */; };
+		E534599511987396000CB77F /* OneDReader.h in Headers */ = {isa = PBXBuildFile; fileRef = E534590D11987396000CB77F /* OneDReader.h */; };
+		E534599611987396000CB77F /* OneDResultPoint.cpp in Sources */ = {isa = PBXBuildFile; fileRef = E534590E11987396000CB77F /* OneDResultPoint.cpp */; };
+		E534599711987396000CB77F /* OneDResultPoint.h in Headers */ = {isa = PBXBuildFile; fileRef = E534590F11987396000CB77F /* OneDResultPoint.h */; };
+		E534599811987396000CB77F /* UPCAReader.cpp in Sources */ = {isa = PBXBuildFile; fileRef = E534591011987396000CB77F /* UPCAReader.cpp */; };
+		E534599911987396000CB77F /* UPCAReader.h in Headers */ = {isa = PBXBuildFile; fileRef = E534591111987396000CB77F /* UPCAReader.h */; };
+		E534599A11987396000CB77F /* UPCEANReader.cpp in Sources */ = {isa = PBXBuildFile; fileRef = E534591211987396000CB77F /* UPCEANReader.cpp */; };
+		E534599B11987396000CB77F /* UPCEANReader.h in Headers */ = {isa = PBXBuildFile; fileRef = E534591311987396000CB77F /* UPCEANReader.h */; };
+		E534599C11987396000CB77F /* UPCEReader.cpp in Sources */ = {isa = PBXBuildFile; fileRef = E534591411987396000CB77F /* UPCEReader.cpp */; };
+		E534599D11987396000CB77F /* UPCEReader.h in Headers */ = {isa = PBXBuildFile; fileRef = E534591511987396000CB77F /* UPCEReader.h */; };
+		E534599E11987396000CB77F /* BitMatrixParser.cpp in Sources */ = {isa = PBXBuildFile; fileRef = E534591811987396000CB77F /* BitMatrixParser.cpp */; };
+		E534599F11987396000CB77F /* BitMatrixParser.h in Headers */ = {isa = PBXBuildFile; fileRef = E534591911987396000CB77F /* BitMatrixParser.h */; };
+		E53459A011987396000CB77F /* DataBlock.cpp in Sources */ = {isa = PBXBuildFile; fileRef = E534591A11987396000CB77F /* DataBlock.cpp */; };
+		E53459A111987396000CB77F /* DataBlock.h in Headers */ = {isa = PBXBuildFile; fileRef = E534591B11987396000CB77F /* DataBlock.h */; };
+		E53459A211987396000CB77F /* DataMask.cpp in Sources */ = {isa = PBXBuildFile; fileRef = E534591C11987396000CB77F /* DataMask.cpp */; };
+		E53459A311987396000CB77F /* DataMask.h in Headers */ = {isa = PBXBuildFile; fileRef = E534591D11987396000CB77F /* DataMask.h */; };
+		E53459A411987396000CB77F /* DecodedBitStreamParser.cpp in Sources */ = {isa = PBXBuildFile; fileRef = E534591E11987396000CB77F /* DecodedBitStreamParser.cpp */; };
+		E53459A511987396000CB77F /* DecodedBitStreamParser.h in Headers */ = {isa = PBXBuildFile; fileRef = E534591F11987396000CB77F /* DecodedBitStreamParser.h */; };
+		E53459A611987396000CB77F /* Decoder.cpp in Sources */ = {isa = PBXBuildFile; fileRef = E534592011987396000CB77F /* Decoder.cpp */; };
+		E53459A711987396000CB77F /* Decoder.h in Headers */ = {isa = PBXBuildFile; fileRef = E534592111987396000CB77F /* Decoder.h */; };
+		E53459A811987396000CB77F /* Mode.cpp in Sources */ = {isa = PBXBuildFile; fileRef = E534592211987396000CB77F /* Mode.cpp */; };
+		E53459A911987396000CB77F /* Mode.h in Headers */ = {isa = PBXBuildFile; fileRef = E534592311987396000CB77F /* Mode.h */; };
+		E53459AA11987396000CB77F /* AlignmentPattern.cpp in Sources */ = {isa = PBXBuildFile; fileRef = E534592511987396000CB77F /* AlignmentPattern.cpp */; };
+		E53459AB11987396000CB77F /* AlignmentPattern.h in Headers */ = {isa = PBXBuildFile; fileRef = E534592611987396000CB77F /* AlignmentPattern.h */; };
+		E53459AC11987396000CB77F /* AlignmentPatternFinder.cpp in Sources */ = {isa = PBXBuildFile; fileRef = E534592711987396000CB77F /* AlignmentPatternFinder.cpp */; };
+		E53459AD11987396000CB77F /* AlignmentPatternFinder.h in Headers */ = {isa = PBXBuildFile; fileRef = E534592811987396000CB77F /* AlignmentPatternFinder.h */; };
+		E53459AE11987396000CB77F /* Detector.cpp in Sources */ = {isa = PBXBuildFile; fileRef = E534592911987396000CB77F /* Detector.cpp */; };
+		E53459AF11987396000CB77F /* Detector.h in Headers */ = {isa = PBXBuildFile; fileRef = E534592A11987396000CB77F /* Detector.h */; };
+		E53459B011987396000CB77F /* FinderPattern.cpp in Sources */ = {isa = PBXBuildFile; fileRef = E534592B11987396000CB77F /* FinderPattern.cpp */; };
+		E53459B111987396000CB77F /* FinderPattern.h in Headers */ = {isa = PBXBuildFile; fileRef = E534592C11987396000CB77F /* FinderPattern.h */; };
+		E53459B211987396000CB77F /* FinderPatternFinder.cpp in Sources */ = {isa = PBXBuildFile; fileRef = E534592D11987396000CB77F /* FinderPatternFinder.cpp */; };
+		E53459B311987396000CB77F /* FinderPatternFinder.h in Headers */ = {isa = PBXBuildFile; fileRef = E534592E11987396000CB77F /* FinderPatternFinder.h */; };
+		E53459B411987396000CB77F /* FinderPatternInfo.cpp in Sources */ = {isa = PBXBuildFile; fileRef = E534592F11987396000CB77F /* FinderPatternInfo.cpp */; };
+		E53459B511987396000CB77F /* FinderPatternInfo.h in Headers */ = {isa = PBXBuildFile; fileRef = E534593011987396000CB77F /* FinderPatternInfo.h */; };
+		E53459B611987396000CB77F /* QREdgeDetector.cpp in Sources */ = {isa = PBXBuildFile; fileRef = E534593111987396000CB77F /* QREdgeDetector.cpp */; };
+		E53459B711987396000CB77F /* QREdgeDetector.h in Headers */ = {isa = PBXBuildFile; fileRef = E534593211987396000CB77F /* QREdgeDetector.h */; };
+		E53459B811987396000CB77F /* ErrorCorrectionLevel.cpp in Sources */ = {isa = PBXBuildFile; fileRef = E534593311987396000CB77F /* ErrorCorrectionLevel.cpp */; };
+		E53459B911987396000CB77F /* ErrorCorrectionLevel.h in Headers */ = {isa = PBXBuildFile; fileRef = E534593411987396000CB77F /* ErrorCorrectionLevel.h */; };
+		E53459BA11987396000CB77F /* FormatInformation.cpp in Sources */ = {isa = PBXBuildFile; fileRef = E534593511987396000CB77F /* FormatInformation.cpp */; };
+		E53459BB11987396000CB77F /* FormatInformation.h in Headers */ = {isa = PBXBuildFile; fileRef = E534593611987396000CB77F /* FormatInformation.h */; };
+		E53459BC11987396000CB77F /* QRCodeReader.cpp in Sources */ = {isa = PBXBuildFile; fileRef = E534593711987396000CB77F /* QRCodeReader.cpp */; };
+		E53459BD11987396000CB77F /* QRCodeReader.h in Headers */ = {isa = PBXBuildFile; fileRef = E534593811987396000CB77F /* QRCodeReader.h */; };
+		E53459BE11987396000CB77F /* Version.cpp in Sources */ = {isa = PBXBuildFile; fileRef = E534593911987396000CB77F /* Version.cpp */; };
+		E53459BF11987396000CB77F /* Version.h in Headers */ = {isa = PBXBuildFile; fileRef = E534593A11987396000CB77F /* Version.h */; };
+		E53459C011987396000CB77F /* Reader.cpp in Sources */ = {isa = PBXBuildFile; fileRef = E534593B11987396000CB77F /* Reader.cpp */; };
+		E53459C111987396000CB77F /* Reader.h in Headers */ = {isa = PBXBuildFile; fileRef = E534593C11987396000CB77F /* Reader.h */; };
+		E53459C211987396000CB77F /* ReaderException.cpp in Sources */ = {isa = PBXBuildFile; fileRef = E534593D11987396000CB77F /* ReaderException.cpp */; };
+		E53459C311987396000CB77F /* ReaderException.h in Headers */ = {isa = PBXBuildFile; fileRef = E534593E11987396000CB77F /* ReaderException.h */; };
+		E53459C411987396000CB77F /* Result.cpp in Sources */ = {isa = PBXBuildFile; fileRef = E534593F11987396000CB77F /* Result.cpp */; };
+		E53459C511987396000CB77F /* Result.h in Headers */ = {isa = PBXBuildFile; fileRef = E534594011987396000CB77F /* Result.h */; };
+		E53459C611987396000CB77F /* ResultPoint.cpp in Sources */ = {isa = PBXBuildFile; fileRef = E534594111987396000CB77F /* ResultPoint.cpp */; };
+		E53459C711987396000CB77F /* ResultPoint.h in Headers */ = {isa = PBXBuildFile; fileRef = E534594211987396000CB77F /* ResultPoint.h */; };
+		E53459CB119873F3000CB77F /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E53459CA119873F3000CB77F /* UIKit.framework */; };
+		E5345A0F119876A5000CB77F /* ResultParser.h in Headers */ = {isa = PBXBuildFile; fileRef = E53459D5119876A5000CB77F /* ResultParser.h */; };
+		E5345A10119876A5000CB77F /* ResultParser.m in Sources */ = {isa = PBXBuildFile; fileRef = E53459D6119876A5000CB77F /* ResultParser.m */; };
+		E5345A11119876A5000CB77F /* DoCoMoResultParser.h in Headers */ = {isa = PBXBuildFile; fileRef = E53459D7119876A5000CB77F /* DoCoMoResultParser.h */; };
+		E5345A12119876A5000CB77F /* DoCoMoResultParser.m in Sources */ = {isa = PBXBuildFile; fileRef = E53459D8119876A5000CB77F /* DoCoMoResultParser.m */; };
+		E5345A13119876A5000CB77F /* MeCardParser.h in Headers */ = {isa = PBXBuildFile; fileRef = E53459D9119876A5000CB77F /* MeCardParser.h */; };
+		E5345A14119876A5000CB77F /* MeCardParser.m in Sources */ = {isa = PBXBuildFile; fileRef = E53459DA119876A5000CB77F /* MeCardParser.m */; };
+		E5345A15119876A5000CB77F /* EmailDoCoMoResultParser.h in Headers */ = {isa = PBXBuildFile; fileRef = E53459DB119876A5000CB77F /* EmailDoCoMoResultParser.h */; };
+		E5345A16119876A5000CB77F /* EmailDoCoMoResultParser.m in Sources */ = {isa = PBXBuildFile; fileRef = E53459DC119876A5000CB77F /* EmailDoCoMoResultParser.m */; };
+		E5345A17119876A5000CB77F /* BookmarkDoCoMoResultParser.h in Headers */ = {isa = PBXBuildFile; fileRef = E53459DD119876A5000CB77F /* BookmarkDoCoMoResultParser.h */; };
+		E5345A18119876A5000CB77F /* BookmarkDoCoMoResultParser.m in Sources */ = {isa = PBXBuildFile; fileRef = E53459DE119876A5000CB77F /* BookmarkDoCoMoResultParser.m */; };
+		E5345A19119876A5000CB77F /* TelResultParser.h in Headers */ = {isa = PBXBuildFile; fileRef = E53459DF119876A5000CB77F /* TelResultParser.h */; };
+		E5345A1A119876A5000CB77F /* TelResultParser.m in Sources */ = {isa = PBXBuildFile; fileRef = E53459E0119876A5000CB77F /* TelResultParser.m */; };
+		E5345A1B119876A5000CB77F /* TextResultParser.h in Headers */ = {isa = PBXBuildFile; fileRef = E53459E1119876A5000CB77F /* TextResultParser.h */; };
+		E5345A1C119876A5000CB77F /* TextResultParser.m in Sources */ = {isa = PBXBuildFile; fileRef = E53459E2119876A5000CB77F /* TextResultParser.m */; };
+		E5345A1D119876A5000CB77F /* URLResultParser.h in Headers */ = {isa = PBXBuildFile; fileRef = E53459E3119876A5000CB77F /* URLResultParser.h */; };
+		E5345A1E119876A5000CB77F /* URLResultParser.m in Sources */ = {isa = PBXBuildFile; fileRef = E53459E4119876A5000CB77F /* URLResultParser.m */; };
+		E5345A1F119876A5000CB77F /* URLTOResultParser.h in Headers */ = {isa = PBXBuildFile; fileRef = E53459E5119876A5000CB77F /* URLTOResultParser.h */; };
+		E5345A20119876A5000CB77F /* URLTOResultParser.m in Sources */ = {isa = PBXBuildFile; fileRef = E53459E6119876A5000CB77F /* URLTOResultParser.m */; };
+		E5345A21119876A5000CB77F /* SMSResultParser.h in Headers */ = {isa = PBXBuildFile; fileRef = E53459E7119876A5000CB77F /* SMSResultParser.h */; };
+		E5345A22119876A5000CB77F /* SMSResultParser.m in Sources */ = {isa = PBXBuildFile; fileRef = E53459E8119876A5000CB77F /* SMSResultParser.m */; };
+		E5345A23119876A5000CB77F /* GeoResultParser.h in Headers */ = {isa = PBXBuildFile; fileRef = E53459E9119876A5000CB77F /* GeoResultParser.h */; };
+		E5345A24119876A5000CB77F /* GeoResultParser.m in Sources */ = {isa = PBXBuildFile; fileRef = E53459EA119876A5000CB77F /* GeoResultParser.m */; };
+		E5345A25119876A5000CB77F /* SMSTOResultParser.h in Headers */ = {isa = PBXBuildFile; fileRef = E53459EB119876A5000CB77F /* SMSTOResultParser.h */; };
+		E5345A26119876A5000CB77F /* SMSTOResultParser.m in Sources */ = {isa = PBXBuildFile; fileRef = E53459EC119876A5000CB77F /* SMSTOResultParser.m */; };
+		E5345A27119876A5000CB77F /* PlainEmailResultParser.h in Headers */ = {isa = PBXBuildFile; fileRef = E53459ED119876A5000CB77F /* PlainEmailResultParser.h */; };
+		E5345A28119876A5000CB77F /* PlainEmailResultParser.m in Sources */ = {isa = PBXBuildFile; fileRef = E53459EE119876A5000CB77F /* PlainEmailResultParser.m */; };
+		E5345A29119876A5000CB77F /* BusinessCardParsedResult.h in Headers */ = {isa = PBXBuildFile; fileRef = E53459F0119876A5000CB77F /* BusinessCardParsedResult.h */; };
+		E5345A2A119876A5000CB77F /* BusinessCardParsedResult.m in Sources */ = {isa = PBXBuildFile; fileRef = E53459F1119876A5000CB77F /* BusinessCardParsedResult.m */; };
+		E5345A2B119876A5000CB77F /* EmailParsedResult.h in Headers */ = {isa = PBXBuildFile; fileRef = E53459F2119876A5000CB77F /* EmailParsedResult.h */; };
+		E5345A2C119876A5000CB77F /* EmailParsedResult.m in Sources */ = {isa = PBXBuildFile; fileRef = E53459F3119876A5000CB77F /* EmailParsedResult.m */; };
+		E5345A2D119876A5000CB77F /* TelParsedResult.h in Headers */ = {isa = PBXBuildFile; fileRef = E53459F4119876A5000CB77F /* TelParsedResult.h */; };
+		E5345A2E119876A5000CB77F /* TelParsedResult.m in Sources */ = {isa = PBXBuildFile; fileRef = E53459F5119876A5000CB77F /* TelParsedResult.m */; };
+		E5345A2F119876A5000CB77F /* TextParsedResult.h in Headers */ = {isa = PBXBuildFile; fileRef = E53459F6119876A5000CB77F /* TextParsedResult.h */; };
+		E5345A30119876A5000CB77F /* TextParsedResult.m in Sources */ = {isa = PBXBuildFile; fileRef = E53459F7119876A5000CB77F /* TextParsedResult.m */; };
+		E5345A31119876A5000CB77F /* ParsedResult.h in Headers */ = {isa = PBXBuildFile; fileRef = E53459F8119876A5000CB77F /* ParsedResult.h */; };
+		E5345A32119876A5000CB77F /* ParsedResult.m in Sources */ = {isa = PBXBuildFile; fileRef = E53459F9119876A5000CB77F /* ParsedResult.m */; };
+		E5345A33119876A5000CB77F /* URIParsedResult.h in Headers */ = {isa = PBXBuildFile; fileRef = E53459FA119876A5000CB77F /* URIParsedResult.h */; };
+		E5345A34119876A5000CB77F /* URIParsedResult.m in Sources */ = {isa = PBXBuildFile; fileRef = E53459FB119876A5000CB77F /* URIParsedResult.m */; };
+		E5345A35119876A5000CB77F /* GeoParsedResult.h in Headers */ = {isa = PBXBuildFile; fileRef = E53459FC119876A5000CB77F /* GeoParsedResult.h */; };
+		E5345A36119876A5000CB77F /* GeoParsedResult.m in Sources */ = {isa = PBXBuildFile; fileRef = E53459FD119876A5000CB77F /* GeoParsedResult.m */; };
+		E5345A37119876A5000CB77F /* SMSParsedResult.h in Headers */ = {isa = PBXBuildFile; fileRef = E53459FE119876A5000CB77F /* SMSParsedResult.h */; };
+		E5345A38119876A5000CB77F /* SMSParsedResult.m in Sources */ = {isa = PBXBuildFile; fileRef = E53459FF119876A5000CB77F /* SMSParsedResult.m */; };
+		E5345A39119876A5000CB77F /* SMSAction.h in Headers */ = {isa = PBXBuildFile; fileRef = E5345A01119876A5000CB77F /* SMSAction.h */; };
+		E5345A3A119876A5000CB77F /* SMSAction.m in Sources */ = {isa = PBXBuildFile; fileRef = E5345A02119876A5000CB77F /* SMSAction.m */; };
+		E5345A3B119876A5000CB77F /* ShowMapAction.h in Headers */ = {isa = PBXBuildFile; fileRef = E5345A03119876A5000CB77F /* ShowMapAction.h */; };
+		E5345A3C119876A5000CB77F /* ShowMapAction.m in Sources */ = {isa = PBXBuildFile; fileRef = E5345A04119876A5000CB77F /* ShowMapAction.m */; };
+		E5345A3D119876A5000CB77F /* AddContactAction.h in Headers */ = {isa = PBXBuildFile; fileRef = E5345A05119876A5000CB77F /* AddContactAction.h */; };
+		E5345A3E119876A5000CB77F /* AddContactAction.m in Sources */ = {isa = PBXBuildFile; fileRef = E5345A06119876A5000CB77F /* AddContactAction.m */; };
+		E5345A3F119876A5000CB77F /* EmailAction.h in Headers */ = {isa = PBXBuildFile; fileRef = E5345A07119876A5000CB77F /* EmailAction.h */; };
+		E5345A40119876A5000CB77F /* EmailAction.m in Sources */ = {isa = PBXBuildFile; fileRef = E5345A08119876A5000CB77F /* EmailAction.m */; };
+		E5345A41119876A5000CB77F /* CallAction.h in Headers */ = {isa = PBXBuildFile; fileRef = E5345A09119876A5000CB77F /* CallAction.h */; };
+		E5345A42119876A5000CB77F /* CallAction.m in Sources */ = {isa = PBXBuildFile; fileRef = E5345A0A119876A5000CB77F /* CallAction.m */; };
+		E5345A43119876A5000CB77F /* OpenUrlAction.h in Headers */ = {isa = PBXBuildFile; fileRef = E5345A0B119876A5000CB77F /* OpenUrlAction.h */; };
+		E5345A44119876A5000CB77F /* OpenUrlAction.m in Sources */ = {isa = PBXBuildFile; fileRef = E5345A0C119876A5000CB77F /* OpenUrlAction.m */; };
+		E5345A45119876A5000CB77F /* ResultAction.h in Headers */ = {isa = PBXBuildFile; fileRef = E5345A0D119876A5000CB77F /* ResultAction.h */; };
+		E5345A46119876A5000CB77F /* ResultAction.m in Sources */ = {isa = PBXBuildFile; fileRef = E5345A0E119876A5000CB77F /* ResultAction.m */; };
+		E5345A661198792F000CB77F /* AudioToolbox.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E5345A651198792F000CB77F /* AudioToolbox.framework */; };
+		E5345A6F11987989000CB77F /* NSString+HTML.h in Headers */ = {isa = PBXBuildFile; fileRef = E5345A6D11987989000CB77F /* NSString+HTML.h */; };
+		E5345A7011987989000CB77F /* NSString+HTML.m in Sources */ = {isa = PBXBuildFile; fileRef = E5345A6E11987989000CB77F /* NSString+HTML.m */; };
+		E5345AA31198859A000CB77F /* CoreGraphics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E5345AA21198859A000CB77F /* CoreGraphics.framework */; };
+		E5345AC811988B6E000CB77F /* GrayBytesMonochromeBitmapSource.h in Headers */ = {isa = PBXBuildFile; fileRef = E5345AC611988B6E000CB77F /* GrayBytesMonochromeBitmapSource.h */; };
+		E5345AC911988B6E000CB77F /* GrayBytesMonochromeBitmapSource.cpp in Sources */ = {isa = PBXBuildFile; fileRef = E5345AC711988B6E000CB77F /* GrayBytesMonochromeBitmapSource.cpp */; };
+		E5345F2C119B0762000CB77F /* Decoder.mm in Sources */ = {isa = PBXBuildFile; fileRef = E5345F2B119B0762000CB77F /* Decoder.mm */; };
+/* End PBXBuildFile section */
+
+/* Begin PBXFileReference section */
+		AA747D9E0F9514B9006C5449 /* ZXingWidget_Prefix.pch */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ZXingWidget_Prefix.pch; sourceTree = SOURCE_ROOT; };
+		AACBBE490F95108600F1A2B1 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; };
+		D2AAC07E0554694100DB518D /* libZXingWidget.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = libZXingWidget.a; sourceTree = BUILT_PRODUCTS_DIR; };
+		E534588911983738000CB77F /* ZXingWidgetController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ZXingWidgetController.h; sourceTree = "<group>"; };
+		E534588A11983738000CB77F /* ZXingWidgetController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ZXingWidgetController.m; sourceTree = "<group>"; };
+		E534588B11983738000CB77F /* OverlayView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OverlayView.h; sourceTree = "<group>"; };
+		E534588C11983738000CB77F /* OverlayView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = OverlayView.m; sourceTree = "<group>"; };
+		E534589211983771000CB77F /* Decoder.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Decoder.h; sourceTree = "<group>"; };
+		E53458961198379E000CB77F /* DecoderDelegate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DecoderDelegate.h; sourceTree = "<group>"; };
+		E534589C11984A27000CB77F /* TwoDDecoderResult.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TwoDDecoderResult.h; sourceTree = "<group>"; };
+		E534589D11984A27000CB77F /* TwoDDecoderResult.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TwoDDecoderResult.m; sourceTree = "<group>"; };
+		E53458A011984A3E000CB77F /* FormatReader.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = FormatReader.mm; sourceTree = "<group>"; };
+		E53458A111984A3E000CB77F /* MultiFormatReader.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = MultiFormatReader.mm; sourceTree = "<group>"; };
+		E53458A211984A3E000CB77F /* FormatReader.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = FormatReader.h; sourceTree = "<group>"; };
+		E53458B511987396000CB77F /* BarcodeFormat.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = BarcodeFormat.cpp; sourceTree = "<group>"; };
+		E53458B611987396000CB77F /* BarcodeFormat.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BarcodeFormat.h; sourceTree = "<group>"; };
+		E53458B711987396000CB77F /* Binarizer.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = Binarizer.cpp; sourceTree = "<group>"; };
+		E53458B811987396000CB77F /* Binarizer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Binarizer.h; sourceTree = "<group>"; };
+		E53458B911987396000CB77F /* BinaryBitmap.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = BinaryBitmap.cpp; sourceTree = "<group>"; };
+		E53458BA11987396000CB77F /* BinaryBitmap.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BinaryBitmap.h; sourceTree = "<group>"; };
+		E53458BC11987396000CB77F /* Array.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = Array.cpp; sourceTree = "<group>"; };
+		E53458BD11987396000CB77F /* Array.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Array.h; sourceTree = "<group>"; };
+		E53458BE11987396000CB77F /* BitArray.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = BitArray.cpp; sourceTree = "<group>"; };
+		E53458BF11987396000CB77F /* BitArray.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BitArray.h; sourceTree = "<group>"; };
+		E53458C011987396000CB77F /* BitMatrix.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = BitMatrix.cpp; sourceTree = "<group>"; };
+		E53458C111987396000CB77F /* BitMatrix.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BitMatrix.h; sourceTree = "<group>"; };
+		E53458C211987396000CB77F /* BitSource.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = BitSource.cpp; sourceTree = "<group>"; };
+		E53458C311987396000CB77F /* BitSource.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BitSource.h; sourceTree = "<group>"; };
+		E53458C411987396000CB77F /* Counted.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = Counted.cpp; sourceTree = "<group>"; };
+		E53458C511987396000CB77F /* Counted.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Counted.h; sourceTree = "<group>"; };
+		E53458C611987396000CB77F /* DecoderResult.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = DecoderResult.cpp; sourceTree = "<group>"; };
+		E53458C711987396000CB77F /* DecoderResult.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DecoderResult.h; sourceTree = "<group>"; };
+		E53458C811987396000CB77F /* DetectorResult.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = DetectorResult.cpp; sourceTree = "<group>"; };
+		E53458C911987396000CB77F /* DetectorResult.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DetectorResult.h; sourceTree = "<group>"; };
+		E53458CA11987396000CB77F /* EdgeDetector.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = EdgeDetector.cpp; sourceTree = "<group>"; };
+		E53458CB11987396000CB77F /* EdgeDetector.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = EdgeDetector.h; sourceTree = "<group>"; };
+		E53458CC11987396000CB77F /* GlobalHistogramBinarizer.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = GlobalHistogramBinarizer.cpp; sourceTree = "<group>"; };
+		E53458CD11987396000CB77F /* GlobalHistogramBinarizer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = GlobalHistogramBinarizer.h; sourceTree = "<group>"; };
+		E53458CE11987396000CB77F /* GridSampler.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = GridSampler.cpp; sourceTree = "<group>"; };
+		E53458CF11987396000CB77F /* GridSampler.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = GridSampler.h; sourceTree = "<group>"; };
+		E53458D011987396000CB77F /* IllegalArgumentException.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = IllegalArgumentException.cpp; sourceTree = "<group>"; };
+		E53458D111987396000CB77F /* IllegalArgumentException.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = IllegalArgumentException.h; sourceTree = "<group>"; };
+		E53458D211987396000CB77F /* LocalBlockBinarizer.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = LocalBlockBinarizer.cpp; sourceTree = "<group>"; };
+		E53458D311987396000CB77F /* LocalBlockBinarizer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = LocalBlockBinarizer.h; sourceTree = "<group>"; };
+		E53458D411987396000CB77F /* PerspectiveTransform.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = PerspectiveTransform.cpp; sourceTree = "<group>"; };
+		E53458D511987396000CB77F /* PerspectiveTransform.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PerspectiveTransform.h; sourceTree = "<group>"; };
+		E53458D611987396000CB77F /* Point.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Point.h; sourceTree = "<group>"; };
+		E53458D811987396000CB77F /* GF256.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = GF256.cpp; sourceTree = "<group>"; };
+		E53458D911987396000CB77F /* GF256.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = GF256.h; sourceTree = "<group>"; };
+		E53458DA11987396000CB77F /* GF256Poly.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = GF256Poly.cpp; sourceTree = "<group>"; };
+		E53458DB11987396000CB77F /* GF256Poly.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = GF256Poly.h; sourceTree = "<group>"; };
+		E53458DC11987396000CB77F /* ReedSolomonDecoder.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ReedSolomonDecoder.cpp; sourceTree = "<group>"; };
+		E53458DD11987396000CB77F /* ReedSolomonDecoder.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ReedSolomonDecoder.h; sourceTree = "<group>"; };
+		E53458DE11987396000CB77F /* ReedSolomonException.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ReedSolomonException.cpp; sourceTree = "<group>"; };
+		E53458DF11987396000CB77F /* ReedSolomonException.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ReedSolomonException.h; sourceTree = "<group>"; };
+		E53458E011987396000CB77F /* Str.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = Str.cpp; sourceTree = "<group>"; };
+		E53458E111987396000CB77F /* Str.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Str.h; sourceTree = "<group>"; };
+		E53458E311987396000CB77F /* DataMatrixReader.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = DataMatrixReader.cpp; sourceTree = "<group>"; };
+		E53458E411987396000CB77F /* DataMatrixReader.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DataMatrixReader.h; sourceTree = "<group>"; };
+		E53458E611987396000CB77F /* BitMatrixParser.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = BitMatrixParser.cpp; sourceTree = "<group>"; };
+		E53458E711987396000CB77F /* BitMatrixParser.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BitMatrixParser.h; sourceTree = "<group>"; };
+		E53458E811987396000CB77F /* DataBlock.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = DataBlock.cpp; sourceTree = "<group>"; };
+		E53458E911987396000CB77F /* DataBlock.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DataBlock.h; sourceTree = "<group>"; };
+		E53458EA11987396000CB77F /* DecodedBitStreamParser.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = DecodedBitStreamParser.cpp; sourceTree = "<group>"; };
+		E53458EB11987396000CB77F /* DecodedBitStreamParser.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DecodedBitStreamParser.h; sourceTree = "<group>"; };
+		E53458EC11987396000CB77F /* Decoder.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = Decoder.cpp; sourceTree = "<group>"; };
+		E53458ED11987396000CB77F /* Decoder.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Decoder.h; sourceTree = "<group>"; };
+		E53458EF11987396000CB77F /* CornerPoint.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CornerPoint.cpp; sourceTree = "<group>"; };
+		E53458F011987396000CB77F /* CornerPoint.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CornerPoint.h; sourceTree = "<group>"; };
+		E53458F111987396000CB77F /* Detector.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = Detector.cpp; sourceTree = "<group>"; };
+		E53458F211987396000CB77F /* Detector.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Detector.h; sourceTree = "<group>"; };
+		E53458F311987396000CB77F /* MonochromeRectangleDetector.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = MonochromeRectangleDetector.cpp; sourceTree = "<group>"; };
+		E53458F411987396000CB77F /* MonochromeRectangleDetector.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MonochromeRectangleDetector.h; sourceTree = "<group>"; };
+		E53458F511987396000CB77F /* Version.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = Version.cpp; sourceTree = "<group>"; };
+		E53458F611987396000CB77F /* Version.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Version.h; sourceTree = "<group>"; };
+		E53458F711987396000CB77F /* Exception.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = Exception.cpp; sourceTree = "<group>"; };
+		E53458F811987396000CB77F /* Exception.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Exception.h; sourceTree = "<group>"; };
+		E53458F911987396000CB77F /* LuminanceSource.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = LuminanceSource.cpp; sourceTree = "<group>"; };
+		E53458FA11987396000CB77F /* LuminanceSource.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = LuminanceSource.h; sourceTree = "<group>"; };
+		E53458FB11987396000CB77F /* MultiFormatReader.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = MultiFormatReader.cpp; sourceTree = "<group>"; };
+		E53458FC11987396000CB77F /* MultiFormatReader.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MultiFormatReader.h; sourceTree = "<group>"; };
+		E53458FE11987396000CB77F /* Code128Reader.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = Code128Reader.cpp; sourceTree = "<group>"; };
+		E53458FF11987396000CB77F /* Code128Reader.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Code128Reader.h; sourceTree = "<group>"; };
+		E534590011987396000CB77F /* Code39Reader.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = Code39Reader.cpp; sourceTree = "<group>"; };
+		E534590111987396000CB77F /* Code39Reader.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Code39Reader.h; sourceTree = "<group>"; };
+		E534590211987396000CB77F /* EAN13Reader.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = EAN13Reader.cpp; sourceTree = "<group>"; };
+		E534590311987396000CB77F /* EAN13Reader.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = EAN13Reader.h; sourceTree = "<group>"; };
+		E534590411987396000CB77F /* EAN8Reader.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = EAN8Reader.cpp; sourceTree = "<group>"; };
+		E534590511987396000CB77F /* EAN8Reader.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = EAN8Reader.h; sourceTree = "<group>"; };
+		E534590611987396000CB77F /* ITFReader.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ITFReader.cpp; sourceTree = "<group>"; };
+		E534590711987396000CB77F /* ITFReader.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ITFReader.h; sourceTree = "<group>"; };
+		E534590811987396000CB77F /* MultiFormatOneDReader.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = MultiFormatOneDReader.cpp; sourceTree = "<group>"; };
+		E534590911987396000CB77F /* MultiFormatOneDReader.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MultiFormatOneDReader.h; sourceTree = "<group>"; };
+		E534590A11987396000CB77F /* MultiFormatUPCEANReader.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = MultiFormatUPCEANReader.cpp; sourceTree = "<group>"; };
+		E534590B11987396000CB77F /* MultiFormatUPCEANReader.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MultiFormatUPCEANReader.h; sourceTree = "<group>"; };
+		E534590C11987396000CB77F /* OneDReader.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = OneDReader.cpp; sourceTree = "<group>"; };
+		E534590D11987396000CB77F /* OneDReader.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OneDReader.h; sourceTree = "<group>"; };
+		E534590E11987396000CB77F /* OneDResultPoint.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = OneDResultPoint.cpp; sourceTree = "<group>"; };
+		E534590F11987396000CB77F /* OneDResultPoint.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OneDResultPoint.h; sourceTree = "<group>"; };
+		E534591011987396000CB77F /* UPCAReader.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = UPCAReader.cpp; sourceTree = "<group>"; };
+		E534591111987396000CB77F /* UPCAReader.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = UPCAReader.h; sourceTree = "<group>"; };
+		E534591211987396000CB77F /* UPCEANReader.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = UPCEANReader.cpp; sourceTree = "<group>"; };
+		E534591311987396000CB77F /* UPCEANReader.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = UPCEANReader.h; sourceTree = "<group>"; };
+		E534591411987396000CB77F /* UPCEReader.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = UPCEReader.cpp; sourceTree = "<group>"; };
+		E534591511987396000CB77F /* UPCEReader.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = UPCEReader.h; sourceTree = "<group>"; };
+		E534591811987396000CB77F /* BitMatrixParser.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = BitMatrixParser.cpp; sourceTree = "<group>"; };
+		E534591911987396000CB77F /* BitMatrixParser.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BitMatrixParser.h; sourceTree = "<group>"; };
+		E534591A11987396000CB77F /* DataBlock.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = DataBlock.cpp; sourceTree = "<group>"; };
+		E534591B11987396000CB77F /* DataBlock.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DataBlock.h; sourceTree = "<group>"; };
+		E534591C11987396000CB77F /* DataMask.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = DataMask.cpp; sourceTree = "<group>"; };
+		E534591D11987396000CB77F /* DataMask.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DataMask.h; sourceTree = "<group>"; };
+		E534591E11987396000CB77F /* DecodedBitStreamParser.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = DecodedBitStreamParser.cpp; sourceTree = "<group>"; };
+		E534591F11987396000CB77F /* DecodedBitStreamParser.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DecodedBitStreamParser.h; sourceTree = "<group>"; };
+		E534592011987396000CB77F /* Decoder.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = Decoder.cpp; sourceTree = "<group>"; };
+		E534592111987396000CB77F /* Decoder.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Decoder.h; sourceTree = "<group>"; };
+		E534592211987396000CB77F /* Mode.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = Mode.cpp; sourceTree = "<group>"; };
+		E534592311987396000CB77F /* Mode.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Mode.h; sourceTree = "<group>"; };
+		E534592511987396000CB77F /* AlignmentPattern.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AlignmentPattern.cpp; sourceTree = "<group>"; };
+		E534592611987396000CB77F /* AlignmentPattern.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AlignmentPattern.h; sourceTree = "<group>"; };
+		E534592711987396000CB77F /* AlignmentPatternFinder.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AlignmentPatternFinder.cpp; sourceTree = "<group>"; };
+		E534592811987396000CB77F /* AlignmentPatternFinder.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AlignmentPatternFinder.h; sourceTree = "<group>"; };
+		E534592911987396000CB77F /* Detector.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = Detector.cpp; sourceTree = "<group>"; };
+		E534592A11987396000CB77F /* Detector.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Detector.h; sourceTree = "<group>"; };
+		E534592B11987396000CB77F /* FinderPattern.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = FinderPattern.cpp; sourceTree = "<group>"; };
+		E534592C11987396000CB77F /* FinderPattern.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = FinderPattern.h; sourceTree = "<group>"; };
+		E534592D11987396000CB77F /* FinderPatternFinder.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = FinderPatternFinder.cpp; sourceTree = "<group>"; };
+		E534592E11987396000CB77F /* FinderPatternFinder.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = FinderPatternFinder.h; sourceTree = "<group>"; };
+		E534592F11987396000CB77F /* FinderPatternInfo.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = FinderPatternInfo.cpp; sourceTree = "<group>"; };
+		E534593011987396000CB77F /* FinderPatternInfo.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = FinderPatternInfo.h; sourceTree = "<group>"; };
+		E534593111987396000CB77F /* QREdgeDetector.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = QREdgeDetector.cpp; sourceTree = "<group>"; };
+		E534593211987396000CB77F /* QREdgeDetector.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = QREdgeDetector.h; sourceTree = "<group>"; };
+		E534593311987396000CB77F /* ErrorCorrectionLevel.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ErrorCorrectionLevel.cpp; sourceTree = "<group>"; };
+		E534593411987396000CB77F /* ErrorCorrectionLevel.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ErrorCorrectionLevel.h; sourceTree = "<group>"; };
+		E534593511987396000CB77F /* FormatInformation.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = FormatInformation.cpp; sourceTree = "<group>"; };
+		E534593611987396000CB77F /* FormatInformation.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = FormatInformation.h; sourceTree = "<group>"; };
+		E534593711987396000CB77F /* QRCodeReader.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = QRCodeReader.cpp; sourceTree = "<group>"; };
+		E534593811987396000CB77F /* QRCodeReader.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = QRCodeReader.h; sourceTree = "<group>"; };
+		E534593911987396000CB77F /* Version.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = Version.cpp; sourceTree = "<group>"; };
+		E534593A11987396000CB77F /* Version.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Version.h; sourceTree = "<group>"; };
+		E534593B11987396000CB77F /* Reader.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = Reader.cpp; sourceTree = "<group>"; };
+		E534593C11987396000CB77F /* Reader.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Reader.h; sourceTree = "<group>"; };
+		E534593D11987396000CB77F /* ReaderException.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ReaderException.cpp; sourceTree = "<group>"; };
+		E534593E11987396000CB77F /* ReaderException.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ReaderException.h; sourceTree = "<group>"; };
+		E534593F11987396000CB77F /* Result.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = Result.cpp; sourceTree = "<group>"; };
+		E534594011987396000CB77F /* Result.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Result.h; sourceTree = "<group>"; };
+		E534594111987396000CB77F /* ResultPoint.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ResultPoint.cpp; sourceTree = "<group>"; };
+		E534594211987396000CB77F /* ResultPoint.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ResultPoint.h; sourceTree = "<group>"; };
+		E53459CA119873F3000CB77F /* UIKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = UIKit.framework; path = System/Library/Frameworks/UIKit.framework; sourceTree = SDKROOT; };
+		E53459D5119876A5000CB77F /* ResultParser.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ResultParser.h; sourceTree = "<group>"; };
+		E53459D6119876A5000CB77F /* ResultParser.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ResultParser.m; sourceTree = "<group>"; };
+		E53459D7119876A5000CB77F /* DoCoMoResultParser.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DoCoMoResultParser.h; sourceTree = "<group>"; };
+		E53459D8119876A5000CB77F /* DoCoMoResultParser.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = DoCoMoResultParser.m; sourceTree = "<group>"; };
+		E53459D9119876A5000CB77F /* MeCardParser.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MeCardParser.h; sourceTree = "<group>"; };
+		E53459DA119876A5000CB77F /* MeCardParser.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MeCardParser.m; sourceTree = "<group>"; };
+		E53459DB119876A5000CB77F /* EmailDoCoMoResultParser.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = EmailDoCoMoResultParser.h; sourceTree = "<group>"; };
+		E53459DC119876A5000CB77F /* EmailDoCoMoResultParser.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = EmailDoCoMoResultParser.m; sourceTree = "<group>"; };
+		E53459DD119876A5000CB77F /* BookmarkDoCoMoResultParser.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BookmarkDoCoMoResultParser.h; sourceTree = "<group>"; };
+		E53459DE119876A5000CB77F /* BookmarkDoCoMoResultParser.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BookmarkDoCoMoResultParser.m; sourceTree = "<group>"; };
+		E53459DF119876A5000CB77F /* TelResultParser.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TelResultParser.h; sourceTree = "<group>"; };
+		E53459E0119876A5000CB77F /* TelResultParser.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TelResultParser.m; sourceTree = "<group>"; };
+		E53459E1119876A5000CB77F /* TextResultParser.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TextResultParser.h; sourceTree = "<group>"; };
+		E53459E2119876A5000CB77F /* TextResultParser.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TextResultParser.m; sourceTree = "<group>"; };
+		E53459E3119876A5000CB77F /* URLResultParser.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = URLResultParser.h; sourceTree = "<group>"; };
+		E53459E4119876A5000CB77F /* URLResultParser.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = URLResultParser.m; sourceTree = "<group>"; };
+		E53459E5119876A5000CB77F /* URLTOResultParser.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = URLTOResultParser.h; sourceTree = "<group>"; };
+		E53459E6119876A5000CB77F /* URLTOResultParser.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = URLTOResultParser.m; sourceTree = "<group>"; };
+		E53459E7119876A5000CB77F /* SMSResultParser.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SMSResultParser.h; sourceTree = "<group>"; };
+		E53459E8119876A5000CB77F /* SMSResultParser.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SMSResultParser.m; sourceTree = "<group>"; };
+		E53459E9119876A5000CB77F /* GeoResultParser.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = GeoResultParser.h; sourceTree = "<group>"; };
+		E53459EA119876A5000CB77F /* GeoResultParser.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = GeoResultParser.m; sourceTree = "<group>"; };
+		E53459EB119876A5000CB77F /* SMSTOResultParser.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SMSTOResultParser.h; sourceTree = "<group>"; };
+		E53459EC119876A5000CB77F /* SMSTOResultParser.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SMSTOResultParser.m; sourceTree = "<group>"; };
+		E53459ED119876A5000CB77F /* PlainEmailResultParser.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PlainEmailResultParser.h; sourceTree = "<group>"; };
+		E53459EE119876A5000CB77F /* PlainEmailResultParser.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PlainEmailResultParser.m; sourceTree = "<group>"; };
+		E53459F0119876A5000CB77F /* BusinessCardParsedResult.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BusinessCardParsedResult.h; sourceTree = "<group>"; };
+		E53459F1119876A5000CB77F /* BusinessCardParsedResult.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BusinessCardParsedResult.m; sourceTree = "<group>"; };
+		E53459F2119876A5000CB77F /* EmailParsedResult.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = EmailParsedResult.h; sourceTree = "<group>"; };
+		E53459F3119876A5000CB77F /* EmailParsedResult.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = EmailParsedResult.m; sourceTree = "<group>"; };
+		E53459F4119876A5000CB77F /* TelParsedResult.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TelParsedResult.h; sourceTree = "<group>"; };
+		E53459F5119876A5000CB77F /* TelParsedResult.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TelParsedResult.m; sourceTree = "<group>"; };
+		E53459F6119876A5000CB77F /* TextParsedResult.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TextParsedResult.h; sourceTree = "<group>"; };
+		E53459F7119876A5000CB77F /* TextParsedResult.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TextParsedResult.m; sourceTree = "<group>"; };
+		E53459F8119876A5000CB77F /* ParsedResult.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ParsedResult.h; sourceTree = "<group>"; };
+		E53459F9119876A5000CB77F /* ParsedResult.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ParsedResult.m; sourceTree = "<group>"; };
+		E53459FA119876A5000CB77F /* URIParsedResult.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = URIParsedResult.h; sourceTree = "<group>"; };
+		E53459FB119876A5000CB77F /* URIParsedResult.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = URIParsedResult.m; sourceTree = "<group>"; };
+		E53459FC119876A5000CB77F /* GeoParsedResult.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = GeoParsedResult.h; sourceTree = "<group>"; };
+		E53459FD119876A5000CB77F /* GeoParsedResult.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = GeoParsedResult.m; sourceTree = "<group>"; };
+		E53459FE119876A5000CB77F /* SMSParsedResult.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SMSParsedResult.h; sourceTree = "<group>"; };
+		E53459FF119876A5000CB77F /* SMSParsedResult.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SMSParsedResult.m; sourceTree = "<group>"; };
+		E5345A01119876A5000CB77F /* SMSAction.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SMSAction.h; sourceTree = "<group>"; };
+		E5345A02119876A5000CB77F /* SMSAction.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SMSAction.m; sourceTree = "<group>"; };
+		E5345A03119876A5000CB77F /* ShowMapAction.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ShowMapAction.h; sourceTree = "<group>"; };
+		E5345A04119876A5000CB77F /* ShowMapAction.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ShowMapAction.m; sourceTree = "<group>"; };
+		E5345A05119876A5000CB77F /* AddContactAction.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AddContactAction.h; sourceTree = "<group>"; };
+		E5345A06119876A5000CB77F /* AddContactAction.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = AddContactAction.m; sourceTree = "<group>"; };
+		E5345A07119876A5000CB77F /* EmailAction.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = EmailAction.h; sourceTree = "<group>"; };
+		E5345A08119876A5000CB77F /* EmailAction.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = EmailAction.m; sourceTree = "<group>"; };
+		E5345A09119876A5000CB77F /* CallAction.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CallAction.h; sourceTree = "<group>"; };
+		E5345A0A119876A5000CB77F /* CallAction.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = CallAction.m; sourceTree = "<group>"; };
+		E5345A0B119876A5000CB77F /* OpenUrlAction.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OpenUrlAction.h; sourceTree = "<group>"; };
+		E5345A0C119876A5000CB77F /* OpenUrlAction.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = OpenUrlAction.m; sourceTree = "<group>"; };
+		E5345A0D119876A5000CB77F /* ResultAction.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ResultAction.h; sourceTree = "<group>"; };
+		E5345A0E119876A5000CB77F /* ResultAction.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ResultAction.m; sourceTree = "<group>"; };
+		E5345A651198792F000CB77F /* AudioToolbox.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AudioToolbox.framework; path = System/Library/Frameworks/AudioToolbox.framework; sourceTree = SDKROOT; };
+		E5345A6D11987989000CB77F /* NSString+HTML.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "NSString+HTML.h"; sourceTree = "<group>"; };
+		E5345A6E11987989000CB77F /* NSString+HTML.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "NSString+HTML.m"; sourceTree = "<group>"; };
+		E5345AA21198859A000CB77F /* CoreGraphics.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreGraphics.framework; path = System/Library/Frameworks/CoreGraphics.framework; sourceTree = SDKROOT; };
+		E5345AC611988B6E000CB77F /* GrayBytesMonochromeBitmapSource.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = GrayBytesMonochromeBitmapSource.h; sourceTree = "<group>"; };
+		E5345AC711988B6E000CB77F /* GrayBytesMonochromeBitmapSource.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = GrayBytesMonochromeBitmapSource.cpp; sourceTree = "<group>"; };
+		E5345D2911999F62000CB77F /* beep-beep.caf */ = {isa = PBXFileReference; lastKnownFileType = file; path = "beep-beep.caf"; sourceTree = "<group>"; };
+		E5345F2B119B0762000CB77F /* Decoder.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = Decoder.mm; sourceTree = "<group>"; };
+/* End PBXFileReference section */
+
+/* Begin PBXFrameworksBuildPhase section */
+		D2AAC07C0554694100DB518D /* Frameworks */ = {
+			isa = PBXFrameworksBuildPhase;
+			buildActionMask = 2147483647;
+			files = (
+				AACBBE4A0F95108600F1A2B1 /* Foundation.framework in Frameworks */,
+				E53459CB119873F3000CB77F /* UIKit.framework in Frameworks */,
+				E5345A661198792F000CB77F /* AudioToolbox.framework in Frameworks */,
+				E5345AA31198859A000CB77F /* CoreGraphics.framework in Frameworks */,
+			);
+			runOnlyForDeploymentPostprocessing = 0;
+		};
+/* End PBXFrameworksBuildPhase section */
+
+/* Begin PBXGroup section */
+		034768DFFF38A50411DB9C8B /* Products */ = {
+			isa = PBXGroup;
+			children = (
+				D2AAC07E0554694100DB518D /* libZXingWidget.a */,
+			);
+			name = Products;
+			sourceTree = "<group>";
+		};
+		0867D691FE84028FC02AAC07 /* ZXingWidget */ = {
+			isa = PBXGroup;
+			children = (
+				E53458B311987396000CB77F /* CoreSrc */,
+				08FB77AEFE84172EC02AAC07 /* Classes */,
+				32C88DFF0371C24200C91783 /* Other Sources */,
+				0867D69AFE84028FC02AAC07 /* Frameworks */,
+				E5345D2811999F53000CB77F /* Resources */,
+				034768DFFF38A50411DB9C8B /* Products */,
+			);
+			name = ZXingWidget;
+			sourceTree = "<group>";
+		};
+		0867D69AFE84028FC02AAC07 /* Frameworks */ = {
+			isa = PBXGroup;
+			children = (
+				AACBBE490F95108600F1A2B1 /* Foundation.framework */,
+				E53459CA119873F3000CB77F /* UIKit.framework */,
+				E5345A651198792F000CB77F /* AudioToolbox.framework */,
+				E5345AA21198859A000CB77F /* CoreGraphics.framework */,
+			);
+			name = Frameworks;
+			sourceTree = "<group>";
+		};
+		08FB77AEFE84172EC02AAC07 /* Classes */ = {
+			isa = PBXGroup;
+			children = (
+				E5345A00119876A5000CB77F /* Actions */,
+				E53459EF119876A5000CB77F /* ParsedResults */,
+				E53459D4119876A5000CB77F /* ResultParsers */,
+				E534589211983771000CB77F /* Decoder.h */,
+				E5345F2B119B0762000CB77F /* Decoder.mm */,
+				E53458961198379E000CB77F /* DecoderDelegate.h */,
+				E534589C11984A27000CB77F /* TwoDDecoderResult.h */,
+				E534589D11984A27000CB77F /* TwoDDecoderResult.m */,
+				E53458A111984A3E000CB77F /* MultiFormatReader.mm */,
+				E53458A011984A3E000CB77F /* FormatReader.mm */,
+				E53458A211984A3E000CB77F /* FormatReader.h */,
+				E534588911983738000CB77F /* ZXingWidgetController.h */,
+				E534588A11983738000CB77F /* ZXingWidgetController.m */,
+				E534588B11983738000CB77F /* OverlayView.h */,
+				E534588C11983738000CB77F /* OverlayView.m */,
+				E5345AC611988B6E000CB77F /* GrayBytesMonochromeBitmapSource.h */,
+				E5345AC711988B6E000CB77F /* GrayBytesMonochromeBitmapSource.cpp */,
+				E5345A6D11987989000CB77F /* NSString+HTML.h */,
+				E5345A6E11987989000CB77F /* NSString+HTML.m */,
+			);
+			name = Classes;
+			sourceTree = "<group>";
+		};
+		32C88DFF0371C24200C91783 /* Other Sources */ = {
+			isa = PBXGroup;
+			children = (
+				AA747D9E0F9514B9006C5449 /* ZXingWidget_Prefix.pch */,
+			);
+			name = "Other Sources";
+			sourceTree = "<group>";
+		};
+		E53458B311987396000CB77F /* CoreSrc */ = {
+			isa = PBXGroup;
+			children = (
+				E53458B411987396000CB77F /* zxing */,
+			);
+			name = CoreSrc;
+			path = ../../cpp/core/src;
+			sourceTree = SOURCE_ROOT;
+		};
+		E53458B411987396000CB77F /* zxing */ = {
+			isa = PBXGroup;
+			children = (
+				E53458B511987396000CB77F /* BarcodeFormat.cpp */,
+				E53458B611987396000CB77F /* BarcodeFormat.h */,
+				E53458B711987396000CB77F /* Binarizer.cpp */,
+				E53458B811987396000CB77F /* Binarizer.h */,
+				E53458B911987396000CB77F /* BinaryBitmap.cpp */,
+				E53458BA11987396000CB77F /* BinaryBitmap.h */,
+				E53458BB11987396000CB77F /* common */,
+				E53458E211987396000CB77F /* datamatrix */,
+				E53458F711987396000CB77F /* Exception.cpp */,
+				E53458F811987396000CB77F /* Exception.h */,
+				E53458F911987396000CB77F /* LuminanceSource.cpp */,
+				E53458FA11987396000CB77F /* LuminanceSource.h */,
+				E53458FB11987396000CB77F /* MultiFormatReader.cpp */,
+				E53458FC11987396000CB77F /* MultiFormatReader.h */,
+				E53458FD11987396000CB77F /* oned */,
+				E534591611987396000CB77F /* qrcode */,
+				E534593B11987396000CB77F /* Reader.cpp */,
+				E534593C11987396000CB77F /* Reader.h */,
+				E534593D11987396000CB77F /* ReaderException.cpp */,
+				E534593E11987396000CB77F /* ReaderException.h */,
+				E534593F11987396000CB77F /* Result.cpp */,
+				E534594011987396000CB77F /* Result.h */,
+				E534594111987396000CB77F /* ResultPoint.cpp */,
+				E534594211987396000CB77F /* ResultPoint.h */,
+			);
+			path = zxing;
+			sourceTree = "<group>";
+		};
+		E53458BB11987396000CB77F /* common */ = {
+			isa = PBXGroup;
+			children = (
+				E53458BC11987396000CB77F /* Array.cpp */,
+				E53458BD11987396000CB77F /* Array.h */,
+				E53458BE11987396000CB77F /* BitArray.cpp */,
+				E53458BF11987396000CB77F /* BitArray.h */,
+				E53458C011987396000CB77F /* BitMatrix.cpp */,
+				E53458C111987396000CB77F /* BitMatrix.h */,
+				E53458C211987396000CB77F /* BitSource.cpp */,
+				E53458C311987396000CB77F /* BitSource.h */,
+				E53458C411987396000CB77F /* Counted.cpp */,
+				E53458C511987396000CB77F /* Counted.h */,
+				E53458C611987396000CB77F /* DecoderResult.cpp */,
+				E53458C711987396000CB77F /* DecoderResult.h */,
+				E53458C811987396000CB77F /* DetectorResult.cpp */,
+				E53458C911987396000CB77F /* DetectorResult.h */,
+				E53458CA11987396000CB77F /* EdgeDetector.cpp */,
+				E53458CB11987396000CB77F /* EdgeDetector.h */,
+				E53458CC11987396000CB77F /* GlobalHistogramBinarizer.cpp */,
+				E53458CD11987396000CB77F /* GlobalHistogramBinarizer.h */,
+				E53458CE11987396000CB77F /* GridSampler.cpp */,
+				E53458CF11987396000CB77F /* GridSampler.h */,
+				E53458D011987396000CB77F /* IllegalArgumentException.cpp */,
+				E53458D111987396000CB77F /* IllegalArgumentException.h */,
+				E53458D211987396000CB77F /* LocalBlockBinarizer.cpp */,
+				E53458D311987396000CB77F /* LocalBlockBinarizer.h */,
+				E53458D411987396000CB77F /* PerspectiveTransform.cpp */,
+				E53458D511987396000CB77F /* PerspectiveTransform.h */,
+				E53458D611987396000CB77F /* Point.h */,
+				E53458D711987396000CB77F /* reedsolomon */,
+				E53458E011987396000CB77F /* Str.cpp */,
+				E53458E111987396000CB77F /* Str.h */,
+			);
+			path = common;
+			sourceTree = "<group>";
+		};
+		E53458D711987396000CB77F /* reedsolomon */ = {
+			isa = PBXGroup;
+			children = (
+				E53458D811987396000CB77F /* GF256.cpp */,
+				E53458D911987396000CB77F /* GF256.h */,
+				E53458DA11987396000CB77F /* GF256Poly.cpp */,
+				E53458DB11987396000CB77F /* GF256Poly.h */,
+				E53458DC11987396000CB77F /* ReedSolomonDecoder.cpp */,
+				E53458DD11987396000CB77F /* ReedSolomonDecoder.h */,
+				E53458DE11987396000CB77F /* ReedSolomonException.cpp */,
+				E53458DF11987396000CB77F /* ReedSolomonException.h */,
+			);
+			path = reedsolomon;
+			sourceTree = "<group>";
+		};
+		E53458E211987396000CB77F /* datamatrix */ = {
+			isa = PBXGroup;
+			children = (
+				E53458E311987396000CB77F /* DataMatrixReader.cpp */,
+				E53458E411987396000CB77F /* DataMatrixReader.h */,
+				E53458E511987396000CB77F /* decoder */,
+				E53458EE11987396000CB77F /* detector */,
+				E53458F511987396000CB77F /* Version.cpp */,
+				E53458F611987396000CB77F /* Version.h */,
+			);
+			path = datamatrix;
+			sourceTree = "<group>";
+		};
+		E53458E511987396000CB77F /* decoder */ = {
+			isa = PBXGroup;
+			children = (
+				E53458E611987396000CB77F /* BitMatrixParser.cpp */,
+				E53458E711987396000CB77F /* BitMatrixParser.h */,
+				E53458E811987396000CB77F /* DataBlock.cpp */,
+				E53458E911987396000CB77F /* DataBlock.h */,
+				E53458EA11987396000CB77F /* DecodedBitStreamParser.cpp */,
+				E53458EB11987396000CB77F /* DecodedBitStreamParser.h */,
+				E53458EC11987396000CB77F /* Decoder.cpp */,
+				E53458ED11987396000CB77F /* Decoder.h */,
+			);
+			path = decoder;
+			sourceTree = "<group>";
+		};
+		E53458EE11987396000CB77F /* detector */ = {
+			isa = PBXGroup;
+			children = (
+				E53458EF11987396000CB77F /* CornerPoint.cpp */,
+				E53458F011987396000CB77F /* CornerPoint.h */,
+				E53458F111987396000CB77F /* Detector.cpp */,
+				E53458F211987396000CB77F /* Detector.h */,
+				E53458F311987396000CB77F /* MonochromeRectangleDetector.cpp */,
+				E53458F411987396000CB77F /* MonochromeRectangleDetector.h */,
+			);
+			path = detector;
+			sourceTree = "<group>";
+		};
+		E53458FD11987396000CB77F /* oned */ = {
+			isa = PBXGroup;
+			children = (
+				E53458FE11987396000CB77F /* Code128Reader.cpp */,
+				E53458FF11987396000CB77F /* Code128Reader.h */,
+				E534590011987396000CB77F /* Code39Reader.cpp */,
+				E534590111987396000CB77F /* Code39Reader.h */,
+				E534590211987396000CB77F /* EAN13Reader.cpp */,
+				E534590311987396000CB77F /* EAN13Reader.h */,
+				E534590411987396000CB77F /* EAN8Reader.cpp */,
+				E534590511987396000CB77F /* EAN8Reader.h */,
+				E534590611987396000CB77F /* ITFReader.cpp */,
+				E534590711987396000CB77F /* ITFReader.h */,
+				E534590811987396000CB77F /* MultiFormatOneDReader.cpp */,
+				E534590911987396000CB77F /* MultiFormatOneDReader.h */,
+				E534590A11987396000CB77F /* MultiFormatUPCEANReader.cpp */,
+				E534590B11987396000CB77F /* MultiFormatUPCEANReader.h */,
+				E534590C11987396000CB77F /* OneDReader.cpp */,
+				E534590D11987396000CB77F /* OneDReader.h */,
+				E534590E11987396000CB77F /* OneDResultPoint.cpp */,
+				E534590F11987396000CB77F /* OneDResultPoint.h */,
+				E534591011987396000CB77F /* UPCAReader.cpp */,
+				E534591111987396000CB77F /* UPCAReader.h */,
+				E534591211987396000CB77F /* UPCEANReader.cpp */,
+				E534591311987396000CB77F /* UPCEANReader.h */,
+				E534591411987396000CB77F /* UPCEReader.cpp */,
+				E534591511987396000CB77F /* UPCEReader.h */,
+			);
+			path = oned;
+			sourceTree = "<group>";
+		};
+		E534591611987396000CB77F /* qrcode */ = {
+			isa = PBXGroup;
+			children = (
+				E534591711987396000CB77F /* decoder */,
+				E534592411987396000CB77F /* detector */,
+				E534593311987396000CB77F /* ErrorCorrectionLevel.cpp */,
+				E534593411987396000CB77F /* ErrorCorrectionLevel.h */,
+				E534593511987396000CB77F /* FormatInformation.cpp */,
+				E534593611987396000CB77F /* FormatInformation.h */,
+				E534593711987396000CB77F /* QRCodeReader.cpp */,
+				E534593811987396000CB77F /* QRCodeReader.h */,
+				E534593911987396000CB77F /* Version.cpp */,
+				E534593A11987396000CB77F /* Version.h */,
+			);
+			path = qrcode;
+			sourceTree = "<group>";
+		};
+		E534591711987396000CB77F /* decoder */ = {
+			isa = PBXGroup;
+			children = (
+				E534591811987396000CB77F /* BitMatrixParser.cpp */,
+				E534591911987396000CB77F /* BitMatrixParser.h */,
+				E534591A11987396000CB77F /* DataBlock.cpp */,
+				E534591B11987396000CB77F /* DataBlock.h */,
+				E534591C11987396000CB77F /* DataMask.cpp */,
+				E534591D11987396000CB77F /* DataMask.h */,
+				E534591E11987396000CB77F /* DecodedBitStreamParser.cpp */,
+				E534591F11987396000CB77F /* DecodedBitStreamParser.h */,
+				E534592011987396000CB77F /* Decoder.cpp */,
+				E534592111987396000CB77F /* Decoder.h */,
+				E534592211987396000CB77F /* Mode.cpp */,
+				E534592311987396000CB77F /* Mode.h */,
+			);
+			path = decoder;
+			sourceTree = "<group>";
+		};
+		E534592411987396000CB77F /* detector */ = {
+			isa = PBXGroup;
+			children = (
+				E534592511987396000CB77F /* AlignmentPattern.cpp */,
+				E534592611987396000CB77F /* AlignmentPattern.h */,
+				E534592711987396000CB77F /* AlignmentPatternFinder.cpp */,
+				E534592811987396000CB77F /* AlignmentPatternFinder.h */,
+				E534592911987396000CB77F /* Detector.cpp */,
+				E534592A11987396000CB77F /* Detector.h */,
+				E534592B11987396000CB77F /* FinderPattern.cpp */,
+				E534592C11987396000CB77F /* FinderPattern.h */,
+				E534592D11987396000CB77F /* FinderPatternFinder.cpp */,
+				E534592E11987396000CB77F /* FinderPatternFinder.h */,
+				E534592F11987396000CB77F /* FinderPatternInfo.cpp */,
+				E534593011987396000CB77F /* FinderPatternInfo.h */,
+				E534593111987396000CB77F /* QREdgeDetector.cpp */,
+				E534593211987396000CB77F /* QREdgeDetector.h */,
+			);
+			path = detector;
+			sourceTree = "<group>";
+		};
+		E53459D4119876A5000CB77F /* ResultParsers */ = {
+			isa = PBXGroup;
+			children = (
+				E53459D5119876A5000CB77F /* ResultParser.h */,
+				E53459D6119876A5000CB77F /* ResultParser.m */,
+				E53459D7119876A5000CB77F /* DoCoMoResultParser.h */,
+				E53459D8119876A5000CB77F /* DoCoMoResultParser.m */,
+				E53459D9119876A5000CB77F /* MeCardParser.h */,
+				E53459DA119876A5000CB77F /* MeCardParser.m */,
+				E53459DB119876A5000CB77F /* EmailDoCoMoResultParser.h */,
+				E53459DC119876A5000CB77F /* EmailDoCoMoResultParser.m */,
+				E53459DD119876A5000CB77F /* BookmarkDoCoMoResultParser.h */,
+				E53459DE119876A5000CB77F /* BookmarkDoCoMoResultParser.m */,
+				E53459DF119876A5000CB77F /* TelResultParser.h */,
+				E53459E0119876A5000CB77F /* TelResultParser.m */,
+				E53459E1119876A5000CB77F /* TextResultParser.h */,
+				E53459E2119876A5000CB77F /* TextResultParser.m */,
+				E53459E3119876A5000CB77F /* URLResultParser.h */,
+				E53459E4119876A5000CB77F /* URLResultParser.m */,
+				E53459E5119876A5000CB77F /* URLTOResultParser.h */,
+				E53459E6119876A5000CB77F /* URLTOResultParser.m */,
+				E53459E7119876A5000CB77F /* SMSResultParser.h */,
+				E53459E8119876A5000CB77F /* SMSResultParser.m */,
+				E53459E9119876A5000CB77F /* GeoResultParser.h */,
+				E53459EA119876A5000CB77F /* GeoResultParser.m */,
+				E53459EB119876A5000CB77F /* SMSTOResultParser.h */,
+				E53459EC119876A5000CB77F /* SMSTOResultParser.m */,
+				E53459ED119876A5000CB77F /* PlainEmailResultParser.h */,
+				E53459EE119876A5000CB77F /* PlainEmailResultParser.m */,
+			);
+			name = ResultParsers;
+			sourceTree = "<group>";
+		};
+		E53459EF119876A5000CB77F /* ParsedResults */ = {
+			isa = PBXGroup;
+			children = (
+				E53459F0119876A5000CB77F /* BusinessCardParsedResult.h */,
+				E53459F1119876A5000CB77F /* BusinessCardParsedResult.m */,
+				E53459F2119876A5000CB77F /* EmailParsedResult.h */,
+				E53459F3119876A5000CB77F /* EmailParsedResult.m */,
+				E53459F4119876A5000CB77F /* TelParsedResult.h */,
+				E53459F5119876A5000CB77F /* TelParsedResult.m */,
+				E53459F6119876A5000CB77F /* TextParsedResult.h */,
+				E53459F7119876A5000CB77F /* TextParsedResult.m */,
+				E53459F8119876A5000CB77F /* ParsedResult.h */,
+				E53459F9119876A5000CB77F /* ParsedResult.m */,
+				E53459FA119876A5000CB77F /* URIParsedResult.h */,
+				E53459FB119876A5000CB77F /* URIParsedResult.m */,
+				E53459FC119876A5000CB77F /* GeoParsedResult.h */,
+				E53459FD119876A5000CB77F /* GeoParsedResult.m */,
+				E53459FE119876A5000CB77F /* SMSParsedResult.h */,
+				E53459FF119876A5000CB77F /* SMSParsedResult.m */,
+			);
+			name = ParsedResults;
+			sourceTree = "<group>";
+		};
+		E5345A00119876A5000CB77F /* Actions */ = {
+			isa = PBXGroup;
+			children = (
+				E5345A01119876A5000CB77F /* SMSAction.h */,
+				E5345A02119876A5000CB77F /* SMSAction.m */,
+				E5345A03119876A5000CB77F /* ShowMapAction.h */,
+				E5345A04119876A5000CB77F /* ShowMapAction.m */,
+				E5345A05119876A5000CB77F /* AddContactAction.h */,
+				E5345A06119876A5000CB77F /* AddContactAction.m */,
+				E5345A07119876A5000CB77F /* EmailAction.h */,
+				E5345A08119876A5000CB77F /* EmailAction.m */,
+				E5345A09119876A5000CB77F /* CallAction.h */,
+				E5345A0A119876A5000CB77F /* CallAction.m */,
+				E5345A0B119876A5000CB77F /* OpenUrlAction.h */,
+				E5345A0C119876A5000CB77F /* OpenUrlAction.m */,
+				E5345A0D119876A5000CB77F /* ResultAction.h */,
+				E5345A0E119876A5000CB77F /* ResultAction.m */,
+			);
+			name = Actions;
+			sourceTree = "<group>";
+		};
+		E5345D2811999F53000CB77F /* Resources */ = {
+			isa = PBXGroup;
+			children = (
+				E5345D2911999F62000CB77F /* beep-beep.caf */,
+			);
+			name = Resources;
+			sourceTree = "<group>";
+		};
+/* End PBXGroup section */
+
+/* Begin PBXHeadersBuildPhase section */
+		D2AAC07A0554694100DB518D /* Headers */ = {
+			isa = PBXHeadersBuildPhase;
+			buildActionMask = 2147483647;
+			files = (
+				AA747D9F0F9514B9006C5449 /* ZXingWidget_Prefix.pch in Headers */,
+				E534588D11983738000CB77F /* ZXingWidgetController.h in Headers */,
+				E534588F11983738000CB77F /* OverlayView.h in Headers */,
+				E534589411983771000CB77F /* Decoder.h in Headers */,
+				E53458971198379E000CB77F /* DecoderDelegate.h in Headers */,
+				E534589E11984A27000CB77F /* TwoDDecoderResult.h in Headers */,
+				E53458A511984A3E000CB77F /* FormatReader.h in Headers */,
+				E534594411987396000CB77F /* BarcodeFormat.h in Headers */,
+				E534594611987396000CB77F /* Binarizer.h in Headers */,
+				E534594811987396000CB77F /* BinaryBitmap.h in Headers */,
+				E534594A11987396000CB77F /* Array.h in Headers */,
+				E534594C11987396000CB77F /* BitArray.h in Headers */,
+				E534594E11987396000CB77F /* BitMatrix.h in Headers */,
+				E534595011987396000CB77F /* BitSource.h in Headers */,
+				E534595211987396000CB77F /* Counted.h in Headers */,
+				E534595411987396000CB77F /* DecoderResult.h in Headers */,
+				E534595611987396000CB77F /* DetectorResult.h in Headers */,
+				E534595811987396000CB77F /* EdgeDetector.h in Headers */,
+				E534595A11987396000CB77F /* GlobalHistogramBinarizer.h in Headers */,
+				E534595C11987396000CB77F /* GridSampler.h in Headers */,
+				E534595E11987396000CB77F /* IllegalArgumentException.h in Headers */,
+				E534596011987396000CB77F /* LocalBlockBinarizer.h in Headers */,
+				E534596211987396000CB77F /* PerspectiveTransform.h in Headers */,
+				E534596311987396000CB77F /* Point.h in Headers */,
+				E534596511987396000CB77F /* GF256.h in Headers */,
+				E534596711987396000CB77F /* GF256Poly.h in Headers */,
+				E534596911987396000CB77F /* ReedSolomonDecoder.h in Headers */,
+				E534596B11987396000CB77F /* ReedSolomonException.h in Headers */,
+				E534596D11987396000CB77F /* Str.h in Headers */,
+				E534596F11987396000CB77F /* DataMatrixReader.h in Headers */,
+				E534597111987396000CB77F /* BitMatrixParser.h in Headers */,
+				E534597311987396000CB77F /* DataBlock.h in Headers */,
+				E534597511987396000CB77F /* DecodedBitStreamParser.h in Headers */,
+				E534597711987396000CB77F /* Decoder.h in Headers */,
+				E534597911987396000CB77F /* CornerPoint.h in Headers */,
+				E534597B11987396000CB77F /* Detector.h in Headers */,
+				E534597D11987396000CB77F /* MonochromeRectangleDetector.h in Headers */,
+				E534597F11987396000CB77F /* Version.h in Headers */,
+				E534598111987396000CB77F /* Exception.h in Headers */,
+				E534598311987396000CB77F /* LuminanceSource.h in Headers */,
+				E534598511987396000CB77F /* MultiFormatReader.h in Headers */,
+				E534598711987396000CB77F /* Code128Reader.h in Headers */,
+				E534598911987396000CB77F /* Code39Reader.h in Headers */,
+				E534598B11987396000CB77F /* EAN13Reader.h in Headers */,
+				E534598D11987396000CB77F /* EAN8Reader.h in Headers */,
+				E534598F11987396000CB77F /* ITFReader.h in Headers */,
+				E534599111987396000CB77F /* MultiFormatOneDReader.h in Headers */,
+				E534599311987396000CB77F /* MultiFormatUPCEANReader.h in Headers */,
+				E534599511987396000CB77F /* OneDReader.h in Headers */,
+				E534599711987396000CB77F /* OneDResultPoint.h in Headers */,
+				E534599911987396000CB77F /* UPCAReader.h in Headers */,
+				E534599B11987396000CB77F /* UPCEANReader.h in Headers */,
+				E534599D11987396000CB77F /* UPCEReader.h in Headers */,
+				E534599F11987396000CB77F /* BitMatrixParser.h in Headers */,
+				E53459A111987396000CB77F /* DataBlock.h in Headers */,
+				E53459A311987396000CB77F /* DataMask.h in Headers */,
+				E53459A511987396000CB77F /* DecodedBitStreamParser.h in Headers */,
+				E53459A711987396000CB77F /* Decoder.h in Headers */,
+				E53459A911987396000CB77F /* Mode.h in Headers */,
+				E53459AB11987396000CB77F /* AlignmentPattern.h in Headers */,
+				E53459AD11987396000CB77F /* AlignmentPatternFinder.h in Headers */,
+				E53459AF11987396000CB77F /* Detector.h in Headers */,
+				E53459B111987396000CB77F /* FinderPattern.h in Headers */,
+				E53459B311987396000CB77F /* FinderPatternFinder.h in Headers */,
+				E53459B511987396000CB77F /* FinderPatternInfo.h in Headers */,
+				E53459B711987396000CB77F /* QREdgeDetector.h in Headers */,
+				E53459B911987396000CB77F /* ErrorCorrectionLevel.h in Headers */,
+				E53459BB11987396000CB77F /* FormatInformation.h in Headers */,
+				E53459BD11987396000CB77F /* QRCodeReader.h in Headers */,
+				E53459BF11987396000CB77F /* Version.h in Headers */,
+				E53459C111987396000CB77F /* Reader.h in Headers */,
+				E53459C311987396000CB77F /* ReaderException.h in Headers */,
+				E53459C511987396000CB77F /* Result.h in Headers */,
+				E53459C711987396000CB77F /* ResultPoint.h in Headers */,
+				E5345A0F119876A5000CB77F /* ResultParser.h in Headers */,
+				E5345A11119876A5000CB77F /* DoCoMoResultParser.h in Headers */,
+				E5345A13119876A5000CB77F /* MeCardParser.h in Headers */,
+				E5345A15119876A5000CB77F /* EmailDoCoMoResultParser.h in Headers */,
+				E5345A17119876A5000CB77F /* BookmarkDoCoMoResultParser.h in Headers */,
+				E5345A19119876A5000CB77F /* TelResultParser.h in Headers */,
+				E5345A1B119876A5000CB77F /* TextResultParser.h in Headers */,
+				E5345A1D119876A5000CB77F /* URLResultParser.h in Headers */,
+				E5345A1F119876A5000CB77F /* URLTOResultParser.h in Headers */,
+				E5345A21119876A5000CB77F /* SMSResultParser.h in Headers */,
+				E5345A23119876A5000CB77F /* GeoResultParser.h in Headers */,
+				E5345A25119876A5000CB77F /* SMSTOResultParser.h in Headers */,
+				E5345A27119876A5000CB77F /* PlainEmailResultParser.h in Headers */,
+				E5345A29119876A5000CB77F /* BusinessCardParsedResult.h in Headers */,
+				E5345A2B119876A5000CB77F /* EmailParsedResult.h in Headers */,
+				E5345A2D119876A5000CB77F /* TelParsedResult.h in Headers */,
+				E5345A2F119876A5000CB77F /* TextParsedResult.h in Headers */,
+				E5345A31119876A5000CB77F /* ParsedResult.h in Headers */,
+				E5345A33119876A5000CB77F /* URIParsedResult.h in Headers */,
+				E5345A35119876A5000CB77F /* GeoParsedResult.h in Headers */,
+				E5345A37119876A5000CB77F /* SMSParsedResult.h in Headers */,
+				E5345A39119876A5000CB77F /* SMSAction.h in Headers */,
+				E5345A3B119876A5000CB77F /* ShowMapAction.h in Headers */,
+				E5345A3D119876A5000CB77F /* AddContactAction.h in Headers */,
+				E5345A3F119876A5000CB77F /* EmailAction.h in Headers */,
+				E5345A41119876A5000CB77F /* CallAction.h in Headers */,
+				E5345A43119876A5000CB77F /* OpenUrlAction.h in Headers */,
+				E5345A45119876A5000CB77F /* ResultAction.h in Headers */,
+				E5345A6F11987989000CB77F /* NSString+HTML.h in Headers */,
+				E5345AC811988B6E000CB77F /* GrayBytesMonochromeBitmapSource.h in Headers */,
+			);
+			runOnlyForDeploymentPostprocessing = 0;
+		};
+/* End PBXHeadersBuildPhase section */
+
+/* Begin PBXNativeTarget section */
+		D2AAC07D0554694100DB518D /* ZXingWidget */ = {
+			isa = PBXNativeTarget;
+			buildConfigurationList = 1DEB921E08733DC00010E9CD /* Build configuration list for PBXNativeTarget "ZXingWidget" */;
+			buildPhases = (
+				D2AAC07A0554694100DB518D /* Headers */,
+				D2AAC07B0554694100DB518D /* Sources */,
+				D2AAC07C0554694100DB518D /* Frameworks */,
+			);
+			buildRules = (
+			);
+			dependencies = (
+			);
+			name = ZXingWidget;
+			productName = ZXingWidget;
+			productReference = D2AAC07E0554694100DB518D /* libZXingWidget.a */;
+			productType = "com.apple.product-type.library.static";
+		};
+/* End PBXNativeTarget section */
+
+/* Begin PBXProject section */
+		0867D690FE84028FC02AAC07 /* Project object */ = {
+			isa = PBXProject;
+			buildConfigurationList = 1DEB922208733DC00010E9CD /* Build configuration list for PBXProject "ZXingWidget" */;
+			compatibilityVersion = "Xcode 3.1";
+			hasScannedForEncodings = 1;
+			mainGroup = 0867D691FE84028FC02AAC07 /* ZXingWidget */;
+			productRefGroup = 034768DFFF38A50411DB9C8B /* Products */;
+			projectDirPath = "";
+			projectRoot = "";
+			targets = (
+				D2AAC07D0554694100DB518D /* ZXingWidget */,
+			);
+		};
+/* End PBXProject section */
+
+/* Begin PBXSourcesBuildPhase section */
+		D2AAC07B0554694100DB518D /* Sources */ = {
+			isa = PBXSourcesBuildPhase;
+			buildActionMask = 2147483647;
+			files = (
+				E534588E11983738000CB77F /* ZXingWidgetController.m in Sources */,
+				E534589011983738000CB77F /* OverlayView.m in Sources */,
+				E534589F11984A27000CB77F /* TwoDDecoderResult.m in Sources */,
+				E53458A311984A3E000CB77F /* FormatReader.mm in Sources */,
+				E53458A411984A3E000CB77F /* MultiFormatReader.mm in Sources */,
+				E534594311987396000CB77F /* BarcodeFormat.cpp in Sources */,
+				E534594511987396000CB77F /* Binarizer.cpp in Sources */,
+				E534594711987396000CB77F /* BinaryBitmap.cpp in Sources */,
+				E534594911987396000CB77F /* Array.cpp in Sources */,
+				E534594B11987396000CB77F /* BitArray.cpp in Sources */,
+				E534594D11987396000CB77F /* BitMatrix.cpp in Sources */,
+				E534594F11987396000CB77F /* BitSource.cpp in Sources */,
+				E534595111987396000CB77F /* Counted.cpp in Sources */,
+				E534595311987396000CB77F /* DecoderResult.cpp in Sources */,
+				E534595511987396000CB77F /* DetectorResult.cpp in Sources */,
+				E534595711987396000CB77F /* EdgeDetector.cpp in Sources */,
+				E534595911987396000CB77F /* GlobalHistogramBinarizer.cpp in Sources */,
+				E534595B11987396000CB77F /* GridSampler.cpp in Sources */,
+				E534595D11987396000CB77F /* IllegalArgumentException.cpp in Sources */,
+				E534595F11987396000CB77F /* LocalBlockBinarizer.cpp in Sources */,
+				E534596111987396000CB77F /* PerspectiveTransform.cpp in Sources */,
+				E534596411987396000CB77F /* GF256.cpp in Sources */,
+				E534596611987396000CB77F /* GF256Poly.cpp in Sources */,
+				E534596811987396000CB77F /* ReedSolomonDecoder.cpp in Sources */,
+				E534596A11987396000CB77F /* ReedSolomonException.cpp in Sources */,
+				E534596C11987396000CB77F /* Str.cpp in Sources */,
+				E534596E11987396000CB77F /* DataMatrixReader.cpp in Sources */,
+				E534597011987396000CB77F /* BitMatrixParser.cpp in Sources */,
+				E534597211987396000CB77F /* DataBlock.cpp in Sources */,
+				E534597411987396000CB77F /* DecodedBitStreamParser.cpp in Sources */,
+				E534597611987396000CB77F /* Decoder.cpp in Sources */,
+				E534597811987396000CB77F /* CornerPoint.cpp in Sources */,
+				E534597A11987396000CB77F /* Detector.cpp in Sources */,
+				E534597C11987396000CB77F /* MonochromeRectangleDetector.cpp in Sources */,
+				E534597E11987396000CB77F /* Version.cpp in Sources */,
+				E534598011987396000CB77F /* Exception.cpp in Sources */,
+				E534598211987396000CB77F /* LuminanceSource.cpp in Sources */,
+				E534598411987396000CB77F /* MultiFormatReader.cpp in Sources */,
+				E534598611987396000CB77F /* Code128Reader.cpp in Sources */,
+				E534598811987396000CB77F /* Code39Reader.cpp in Sources */,
+				E534598A11987396000CB77F /* EAN13Reader.cpp in Sources */,
+				E534598C11987396000CB77F /* EAN8Reader.cpp in Sources */,
+				E534598E11987396000CB77F /* ITFReader.cpp in Sources */,
+				E534599011987396000CB77F /* MultiFormatOneDReader.cpp in Sources */,
+				E534599211987396000CB77F /* MultiFormatUPCEANReader.cpp in Sources */,
+				E534599411987396000CB77F /* OneDReader.cpp in Sources */,
+				E534599611987396000CB77F /* OneDResultPoint.cpp in Sources */,
+				E534599811987396000CB77F /* UPCAReader.cpp in Sources */,
+				E534599A11987396000CB77F /* UPCEANReader.cpp in Sources */,
+				E534599C11987396000CB77F /* UPCEReader.cpp in Sources */,
+				E534599E11987396000CB77F /* BitMatrixParser.cpp in Sources */,
+				E53459A011987396000CB77F /* DataBlock.cpp in Sources */,
+				E53459A211987396000CB77F /* DataMask.cpp in Sources */,
+				E53459A411987396000CB77F /* DecodedBitStreamParser.cpp in Sources */,
+				E53459A611987396000CB77F /* Decoder.cpp in Sources */,
+				E53459A811987396000CB77F /* Mode.cpp in Sources */,
+				E53459AA11987396000CB77F /* AlignmentPattern.cpp in Sources */,
+				E53459AC11987396000CB77F /* AlignmentPatternFinder.cpp in Sources */,
+				E53459AE11987396000CB77F /* Detector.cpp in Sources */,
+				E53459B011987396000CB77F /* FinderPattern.cpp in Sources */,
+				E53459B211987396000CB77F /* FinderPatternFinder.cpp in Sources */,
+				E53459B411987396000CB77F /* FinderPatternInfo.cpp in Sources */,
+				E53459B611987396000CB77F /* QREdgeDetector.cpp in Sources */,
+				E53459B811987396000CB77F /* ErrorCorrectionLevel.cpp in Sources */,
+				E53459BA11987396000CB77F /* FormatInformation.cpp in Sources */,
+				E53459BC11987396000CB77F /* QRCodeReader.cpp in Sources */,
+				E53459BE11987396000CB77F /* Version.cpp in Sources */,
+				E53459C011987396000CB77F /* Reader.cpp in Sources */,
+				E53459C211987396000CB77F /* ReaderException.cpp in Sources */,
+				E53459C411987396000CB77F /* Result.cpp in Sources */,
+				E53459C611987396000CB77F /* ResultPoint.cpp in Sources */,
+				E5345A10119876A5000CB77F /* ResultParser.m in Sources */,
+				E5345A12119876A5000CB77F /* DoCoMoResultParser.m in Sources */,
+				E5345A14119876A5000CB77F /* MeCardParser.m in Sources */,
+				E5345A16119876A5000CB77F /* EmailDoCoMoResultParser.m in Sources */,
+				E5345A18119876A5000CB77F /* BookmarkDoCoMoResultParser.m in Sources */,
+				E5345A1A119876A5000CB77F /* TelResultParser.m in Sources */,
+				E5345A1C119876A5000CB77F /* TextResultParser.m in Sources */,
+				E5345A1E119876A5000CB77F /* URLResultParser.m in Sources */,
+				E5345A20119876A5000CB77F /* URLTOResultParser.m in Sources */,
+				E5345A22119876A5000CB77F /* SMSResultParser.m in Sources */,
+				E5345A24119876A5000CB77F /* GeoResultParser.m in Sources */,
+				E5345A26119876A5000CB77F /* SMSTOResultParser.m in Sources */,
+				E5345A28119876A5000CB77F /* PlainEmailResultParser.m in Sources */,
+				E5345A2A119876A5000CB77F /* BusinessCardParsedResult.m in Sources */,
+				E5345A2C119876A5000CB77F /* EmailParsedResult.m in Sources */,
+				E5345A2E119876A5000CB77F /* TelParsedResult.m in Sources */,
+				E5345A30119876A5000CB77F /* TextParsedResult.m in Sources */,
+				E5345A32119876A5000CB77F /* ParsedResult.m in Sources */,
+				E5345A34119876A5000CB77F /* URIParsedResult.m in Sources */,
+				E5345A36119876A5000CB77F /* GeoParsedResult.m in Sources */,
+				E5345A38119876A5000CB77F /* SMSParsedResult.m in Sources */,
+				E5345A3A119876A5000CB77F /* SMSAction.m in Sources */,
+				E5345A3C119876A5000CB77F /* ShowMapAction.m in Sources */,
+				E5345A3E119876A5000CB77F /* AddContactAction.m in Sources */,
+				E5345A40119876A5000CB77F /* EmailAction.m in Sources */,
+				E5345A42119876A5000CB77F /* CallAction.m in Sources */,
+				E5345A44119876A5000CB77F /* OpenUrlAction.m in Sources */,
+				E5345A46119876A5000CB77F /* ResultAction.m in Sources */,
+				E5345A7011987989000CB77F /* NSString+HTML.m in Sources */,
+				E5345AC911988B6E000CB77F /* GrayBytesMonochromeBitmapSource.cpp in Sources */,
+				E5345F2C119B0762000CB77F /* Decoder.mm in Sources */,
+			);
+			runOnlyForDeploymentPostprocessing = 0;
+		};
+/* End PBXSourcesBuildPhase section */
+
+/* Begin XCBuildConfiguration section */
+		1DEB921F08733DC00010E9CD /* Debug */ = {
+			isa = XCBuildConfiguration;
+			buildSettings = {
+				ALWAYS_SEARCH_USER_PATHS = YES;
+				ARCHS = "$(ARCHS_STANDARD_32_BIT)";
+				COPY_PHASE_STRIP = NO;
+				DEAD_CODE_STRIPPING = NO;
+				DSTROOT = /tmp/ZXingWidget.dst;
+				GCC_DYNAMIC_NO_PIC = NO;
+				GCC_ENABLE_FIX_AND_CONTINUE = YES;
+				GCC_MODEL_TUNING = G5;
+				GCC_OPTIMIZATION_LEVEL = 0;
+				GCC_PRECOMPILE_PREFIX_HEADER = YES;
+				GCC_PREFIX_HEADER = ZXingWidget_Prefix.pch;
+				HEADER_SEARCH_PATHS = ../../cpp/core/src;
+				INSTALL_PATH = /usr/local/lib;
+				IPHONEOS_DEPLOYMENT_TARGET = 3.1.2;
+				LD_GENERATE_MAP_FILE = YES;
+				LD_OPENMP_FLAGS = "-fopenmp -M";
+				MACH_O_TYPE = staticlib;
+				OTHER_LDFLAGS = "-ObjC";
+				PRESERVE_DEAD_CODE_INITS_AND_TERMS = YES;
+				PRODUCT_NAME = ZXingWidget;
+				SDKROOT = iphoneos3.1.3;
+				SEPARATE_STRIP = NO;
+				SKIP_INSTALL = YES;
+				STANDARD_C_PLUS_PLUS_LIBRARY_TYPE = dynamic;
+			};
+			name = Debug;
+		};
+		1DEB922008733DC00010E9CD /* Release */ = {
+			isa = XCBuildConfiguration;
+			buildSettings = {
+				ALWAYS_SEARCH_USER_PATHS = NO;
+				ARCHS = "$(ARCHS_STANDARD_32_BIT)";
+				DSTROOT = /tmp/ZXingWidget.dst;
+				GCC_MODEL_TUNING = G5;
+				GCC_PRECOMPILE_PREFIX_HEADER = YES;
+				GCC_PREFIX_HEADER = ZXingWidget_Prefix.pch;
+				INSTALL_PATH = /usr/local/lib;
+				PRODUCT_NAME = ZXingWidget;
+			};
+			name = Release;
+		};
+		1DEB922308733DC00010E9CD /* Debug */ = {
+			isa = XCBuildConfiguration;
+			buildSettings = {
+				ARCHS = "$(ARCHS_STANDARD_32_BIT)";
+				GCC_C_LANGUAGE_STANDARD = c99;
+				GCC_OPTIMIZATION_LEVEL = 0;
+				GCC_WARN_ABOUT_RETURN_TYPE = YES;
+				GCC_WARN_UNUSED_VARIABLE = YES;
+				OTHER_LDFLAGS = "-ObjC";
+				PREBINDING = NO;
+				SDKROOT = iphoneos3.2;
+			};
+			name = Debug;
+		};
+		1DEB922408733DC00010E9CD /* Release */ = {
+			isa = XCBuildConfiguration;
+			buildSettings = {
+				ARCHS = "$(ARCHS_STANDARD_32_BIT)";
+				GCC_C_LANGUAGE_STANDARD = c99;
+				GCC_WARN_ABOUT_RETURN_TYPE = YES;
+				GCC_WARN_UNUSED_VARIABLE = YES;
+				OTHER_LDFLAGS = "-ObjC";
+				PREBINDING = NO;
+				SDKROOT = iphoneos3.2;
+			};
+			name = Release;
+		};
+/* End XCBuildConfiguration section */
+
+/* Begin XCConfigurationList section */
+		1DEB921E08733DC00010E9CD /* Build configuration list for PBXNativeTarget "ZXingWidget" */ = {
+			isa = XCConfigurationList;
+			buildConfigurations = (
+				1DEB921F08733DC00010E9CD /* Debug */,
+				1DEB922008733DC00010E9CD /* Release */,
+			);
+			defaultConfigurationIsVisible = 0;
+			defaultConfigurationName = Release;
+		};
+		1DEB922208733DC00010E9CD /* Build configuration list for PBXProject "ZXingWidget" */ = {
+			isa = XCConfigurationList;
+			buildConfigurations = (
+				1DEB922308733DC00010E9CD /* Debug */,
+				1DEB922408733DC00010E9CD /* Release */,
+			);
+			defaultConfigurationIsVisible = 0;
+			defaultConfigurationName = Release;
+		};
+/* End XCConfigurationList section */
+	};
+	rootObject = 0867D690FE84028FC02AAC07 /* Project object */;
+}
diff --git a/iphone/ZXingWidget/ZXingWidgetController.h b/iphone/ZXingWidget/ZXingWidgetController.h
new file mode 100755
index 0000000..9429fe6
--- /dev/null
+++ b/iphone/ZXingWidget/ZXingWidgetController.h
@@ -0,0 +1,47 @@
+/**
+ * Copyright 2009 Jeff Verkoeyen
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *    http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include <UIKit/UIKit.h>
+#include <AudioToolbox/AudioToolbox.h>
+#include "Decoder.h"
+#include "ParsedResult.h"
+#include "OverlayView.h"
+
+ at protocol ZXingDelegate;
+
+ at interface ZXingWidgetController : UIImagePickerController <DecoderDelegate, CancelDelegate> {
+	ParsedResult *result;
+	NSArray *actions;	
+	OverlayView *overlayView;
+	SystemSoundID beepSound;
+	BOOL showCancel;
+	id<ZXingDelegate> delegate;
+	BOOL wasCancelled;
+}
+
+ at property (nonatomic, assign) id<ZXingDelegate> delegate;
+ at property (nonatomic, assign) BOOL showCancel;
+ at property (nonatomic, retain) ParsedResult *result;
+ at property (nonatomic, retain) NSArray *actions;
+
+- (id)initWithDelegate:(id<ZXingDelegate>)delegate;
+- (BOOL)fixedFocus;
+ at end
+
+ at protocol ZXingDelegate
+- (void)scanResult:(NSString *)result;
+- (void)cancelled;
+ at end
diff --git a/iphone/ZXingWidget/ZXingWidgetController.m b/iphone/ZXingWidget/ZXingWidgetController.m
new file mode 100755
index 0000000..6560d9a
--- /dev/null
+++ b/iphone/ZXingWidget/ZXingWidgetController.m
@@ -0,0 +1,163 @@
+/**
+ * Copyright 2009 Jeff Verkoeyen
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *    http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#import "ZXingWidgetController.h"
+#import "Decoder.h"
+#import "NSString+HTML.h"
+#import "ResultParser.h"
+#import "ParsedResult.h"
+#import "ResultAction.h"
+#include <sys/types.h>
+#include <sys/sysctl.h>
+
+#define CAMERA_SCALAR 1.12412 // scalar = (480 / (2048 / 480))
+#define FIRST_TAKE_DELAY 1.0
+
+CGImageRef UIGetScreenImage();
+
+ at implementation ZXingWidgetController
+ at synthesize result, actions, showCancel, delegate;
+
+- (id)initWithDelegate:(id<ZXingDelegate>)scanDelegate {
+	if (self = [super init]) {
+		[self setDelegate:scanDelegate];
+		showCancel = true;
+		self.wantsFullScreenLayout = YES;
+		self.sourceType = UIImagePickerControllerSourceTypeCamera;
+		float zoomFactor = CAMERA_SCALAR;
+		if ([self fixedFocus]) {
+			zoomFactor *= 1.5;
+		}
+		self.cameraViewTransform = CGAffineTransformScale(
+					self.cameraViewTransform, zoomFactor, zoomFactor);
+		overlayView = [[OverlayView alloc] initWithCancelEnabled:showCancel frame:[UIScreen mainScreen].bounds];
+		[overlayView setDelegate:self];
+		self.sourceType = UIImagePickerControllerSourceTypeCamera;
+		self.showsCameraControls = NO;
+		self.cameraOverlayView = overlayView;
+		self.allowsEditing = NO; // [[NSUserDefaults standardUserDefaults] boolForKey:@"allowEditing"];
+	}
+	
+	return self;
+}
+
+- (void)cancelled {
+	NSLog(@"cancelled called in ZXingWidgetController");
+	wasCancelled = true;
+	if (delegate != nil) {
+		[delegate cancelled];
+	}
+}
+
+- (NSString *)getPlatform {
+	size_t size;
+    sysctlbyname("hw.machine", NULL, &size, NULL, 0);
+    char *machine = malloc(size);
+    sysctlbyname("hw.machine", machine, &size, NULL, 0);
+    NSString *platform = [NSString stringWithCString:machine encoding:NSASCIIStringEncoding];
+    free(machine);
+	return platform;
+}
+
+- (BOOL)fixedFocus {
+	NSString *platform = [self getPlatform];
+	if ([platform isEqualToString:@"iPhone1,1"] ||
+		[platform isEqualToString:@"iPhone1,2"]) return true;
+	return false;
+}
+
+- (void)viewDidAppear:(BOOL)animated {
+    [super viewDidAppear:animated];
+	wasCancelled = false;
+	[NSTimer scheduledTimerWithTimeInterval: FIRST_TAKE_DELAY
+									 target: self
+								   selector: @selector(takePicture:)
+								   userInfo: nil
+									repeats: NO];
+}
+
+- (void)takePicture:(NSTimer*)theTimer {
+	CGImageRef capture = UIGetScreenImage();
+	UIImage *scrn = [UIImage imageWithCGImage:CGImageCreateWithImageInRect(capture, [overlayView cropRect])];
+	Decoder *d = [[Decoder alloc] init];
+	d.delegate = self;
+	CGRect cropRect = overlayView.cropRect;
+	cropRect.origin.x = 0.0;
+	cropRect.origin.y = 0.0;
+	NSLog(@"crop rect %f, %f, %f, %f", cropRect.origin.x, cropRect.origin.y, cropRect.size.width, cropRect.size.height);
+	[d decodeImage:scrn cropRect:cropRect];
+}
+
+// DecoderDelegate methods
+
+- (void)decoder:(Decoder *)decoder willDecodeImage:(UIImage *)image usingSubset:(UIImage *)subset{
+	NSLog(@"DecoderViewController MessageWhileDecodingWithDimensions: Decoding image (%.0fx%.0f) ...", image.size.width, image.size.height);
+}
+
+- (void)decoder:(Decoder *)decoder
+  decodingImage:(UIImage *)image
+    usingSubset:(UIImage *)subset
+       progress:(NSString *)message {
+	NSLog(@"decoding image %@", message);
+}
+
+- (void)presentResultForString:(NSString *)resultString {
+	NSLog(@"in presentResultForString()");
+	self.result = [ResultParser parsedResultForString:resultString];
+	AudioServicesPlaySystemSound(beepSound);
+	//	self.actions = self.result.actions;
+#ifdef DEBUG
+	NSLog(@"result string = %@", resultString);
+	NSLog(@"result has %d actions", actions ? 0 : actions.count);
+#endif
+	//	[self updateToolbar];
+}
+
+- (void)presentResultPoints:(NSArray *)resultPoints
+                   forImage:(UIImage *)image
+                usingSubset:(UIImage *)subset {
+	// simply add the points to the image view
+	NSLog(@"got points for display");
+	[overlayView setPoints:resultPoints];
+}
+
+- (void)decoder:(Decoder *)decoder didDecodeImage:(UIImage *)image usingSubset:(UIImage *)subset withResult:(TwoDDecoderResult *)twoDResult {
+	//	[self presentResultForString:twoDResult.text];
+	NSLog(@"decoded image!!");
+	[self presentResultPoints:[twoDResult points] forImage:image usingSubset:subset];
+	if (delegate != nil) {
+		[delegate scanResult:[twoDResult text]];
+	}
+	decoder.delegate = nil;
+	[decoder release];
+	
+	// save the scan to the shared database
+	//	[[Database sharedDatabase] addScanWithText:twoDResult.text];
+	// need to call delegate....`
+	//	[self performResultAction:self];
+}
+
+- (void)decoder:(Decoder *)decoder failedToDecodeImage:(UIImage *)image usingSubset:(UIImage *)subset reason:(NSString *)reason {
+	decoder.delegate = nil;
+	[decoder release];
+	[overlayView setPoints:nil];
+	if (!wasCancelled) {
+		[self takePicture:nil];
+	}
+	//[self updateToolbar];
+}
+
+ at end
diff --git a/iphone/ZXingWidget/ZXingWidget_Prefix.pch b/iphone/ZXingWidget/ZXingWidget_Prefix.pch
new file mode 100644
index 0000000..bfb7394
--- /dev/null
+++ b/iphone/ZXingWidget/ZXingWidget_Prefix.pch
@@ -0,0 +1,7 @@
+//
+// Prefix header for all source files of the 'CocoaTouchStaticLibrary' target in the 'CocoaTouchStaticLibrary' project.
+//
+
+#ifdef __OBJC__
+    #import <Foundation/Foundation.h>
+#endif
diff --git a/iphone/ZXingWidget/beep-beep.caf b/iphone/ZXingWidget/beep-beep.caf
new file mode 100644
index 0000000..8c693f8
Binary files /dev/null and b/iphone/ZXingWidget/beep-beep.caf differ

-- 
Multi-format 1D/2D barcode image processing library



More information about the Pkg-google-commits mailing list