Full Code of rcarlsen/Pocket-OCR for AI

master 564c11fe599e cached
100 files
284.1 KB
107.2k tokens
1 symbols
1 requests
Download .txt
Showing preview only (307K chars total). Download the full file or copy to clipboard to get everything.
Repository: rcarlsen/Pocket-OCR
Branch: master
Commit: 564c11fe599e
Files: 100
Total size: 284.1 KB

Directory structure:
gitextract_9uolaib_/

├── .gitignore
├── Classes/
│   ├── OCRAppDelegate.h
│   ├── OCRAppDelegate.m
│   ├── OCRDisplayViewController.h
│   ├── OCRDisplayViewController.mm
│   ├── ZoomableImage.h
│   └── ZoomableImage.m
├── MainWindow.xib
├── OCR-Info.plist
├── OCR.xcodeproj/
│   ├── project.pbxproj
│   └── rcarlsen.perspectivev3
├── OCRDisplayViewController.xib
├── OCR_Prefix.pch
├── UIImage-categories/
│   ├── UIImage+Alpha.h
│   ├── UIImage+Alpha.m
│   ├── UIImage+Resize.h
│   ├── UIImage+Resize.m
│   ├── UIImage+RoundedCorner.h
│   └── UIImage+RoundedCorner.m
├── dev/
│   └── TessIcon.pxm
├── main.m
├── readme.txt
├── tessdata/
│   ├── Makefile.am
│   ├── Makefile.in
│   ├── configs/
│   │   ├── Makefile.am
│   │   ├── Makefile.in
│   │   ├── api_config
│   │   ├── box.train
│   │   ├── box.train.stderr
│   │   ├── inter
│   │   ├── kannada
│   │   ├── makebox
│   │   └── unlv
│   ├── confsets
│   ├── deu.DangAmbigs
│   ├── deu.freq-dawg
│   ├── deu.inttemp
│   ├── deu.normproto
│   ├── deu.pffmtable
│   ├── deu.unicharset
│   ├── deu.user-words
│   ├── deu.word-dawg
│   ├── eng.DangAmbigs
│   ├── eng.freq-dawg
│   ├── eng.inttemp
│   ├── eng.normproto
│   ├── eng.pffmtable
│   ├── eng.unicharset
│   ├── eng.user-words
│   ├── eng.word-dawg
│   ├── fra.DangAmbigs
│   ├── fra.freq-dawg
│   ├── fra.inttemp
│   ├── fra.normproto
│   ├── fra.pffmtable
│   ├── fra.unicharset
│   ├── fra.user-words
│   ├── fra.word-dawg
│   ├── ita.DangAmbigs
│   ├── ita.freq-dawg
│   ├── ita.inttemp
│   ├── ita.normproto
│   ├── ita.pffmtable
│   ├── ita.unicharset
│   ├── ita.user-words
│   ├── ita.word-dawg
│   ├── makedummies
│   ├── nld.DangAmbigs
│   ├── nld.freq-dawg
│   ├── nld.inttemp
│   ├── nld.normproto
│   ├── nld.pffmtable
│   ├── nld.unicharset
│   ├── nld.user-words
│   ├── nld.word-dawg
│   ├── spa.DangAmbigs
│   ├── spa.freq-dawg
│   ├── spa.inttemp
│   ├── spa.normproto
│   ├── spa.pffmtable
│   ├── spa.unicharset
│   ├── spa.user-words
│   ├── spa.word-dawg
│   └── tessconfigs/
│       ├── Makefile.am
│       ├── Makefile.in
│       ├── batch
│       ├── batch.nochop
│       ├── matdemo
│       ├── msdemo
│       ├── nobatch
│       └── segdemo
└── tessdata-svn/
    ├── eng.DangAmbigs
    ├── eng.freq-dawg
    ├── eng.inttemp
    ├── eng.normproto
    ├── eng.pffmtable
    ├── eng.traineddata
    ├── eng.unicharset
    ├── eng.user-words
    └── eng.word-dawg

================================================
FILE CONTENTS
================================================

================================================
FILE: .gitignore
================================================
# xcode noise
build/*
*.pbxuser
*.mode1v3
*.mode2v3
#Info.plist
#*.xcodeproj

# old skool
.svn

# osx noise
.DS_Store
profile

# ignore other object files
*.o



================================================
FILE: Classes/OCRAppDelegate.h
================================================
//
//  OCRAppDelegate.h
//  OCR
//
//  Created by Robert Carlsen on 04.09.2009.
//
//    Copyright (C) 2009, Robert Carlsen | robertcarlsen.net
//
//    This program is free software: you can redistribute it and/or modify
//    it under the terms of the GNU General Public License as published by
//    the Free Software Foundation, either version 3 of the License, or
//    (at your option) any later version.
//
//    This program is distributed in the hope that it will be useful,
//    but WITHOUT ANY WARRANTY; without even the implied warranty of
//    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
//    GNU General Public License for more details.
//
//    You should have received a copy of the GNU General Public License
//    along with this program.  If not, see <http://www.gnu.org/licenses/>.

#import <UIKit/UIKit.h>

@class OCRDisplayViewController;

@interface OCRAppDelegate : NSObject <UIApplicationDelegate, UIActionSheetDelegate> {
    UIWindow *window;
    OCRDisplayViewController *displayViewController;
}

@property (nonatomic, retain) IBOutlet UIWindow *window;


@end



================================================
FILE: Classes/OCRAppDelegate.m
================================================
//
//  OCRAppDelegate.m
//  OCR
//
//  Created by Robert Carlsen on 04.09.2009.
//
//    Copyright (C) 2009, Robert Carlsen | robertcarlsen.net
//
//    This program is free software: you can redistribute it and/or modify
//    it under the terms of the GNU General Public License as published by
//    the Free Software Foundation, either version 3 of the License, or
//    (at your option) any later version.
//
//    This program is distributed in the hope that it will be useful,
//    but WITHOUT ANY WARRANTY; without even the implied warranty of
//    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
//    GNU General Public License for more details.
//
//    You should have received a copy of the GNU General Public License
//    along with this program.  If not, see <http://www.gnu.org/licenses/>.

#import "OCRAppDelegate.h"
#import "OCRDisplayViewController.h"

@implementation OCRAppDelegate

@synthesize window;


- (void)applicationDidFinishLaunching:(UIApplication *)application 
{
    displayViewController = [[OCRDisplayViewController alloc] initWithNibName:@"OCRDisplayViewController" bundle:nil];
    displayViewController.view.frame = [UIScreen mainScreen].applicationFrame;
    
    [window addSubview:displayViewController.view];
    [window makeKeyAndVisible];
}


- (void)dealloc 
{
    [displayViewController release];
    [window release];
    
    [super dealloc];
}


@end


================================================
FILE: Classes/OCRDisplayViewController.h
================================================
//
//    OCRDisplayViewController.h
//    OCR
//
//    Created by Robert Carlsen on 03.12.2009.
//
//    Copyright (C) 2009, Robert Carlsen | robertcarlsen.net
//
//    This program is free software: you can redistribute it and/or modify
//    it under the terms of the GNU General Public License as published by
//    the Free Software Foundation, either version 3 of the License, or
//    (at your option) any later version.
//
//    This program is distributed in the hope that it will be useful,
//    but WITHOUT ANY WARRANTY; without even the implied warranty of
//    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
//    GNU General Public License for more details.
//
//    You should have received a copy of the GNU General Public License
//    along with this program.  If not, see <http://www.gnu.org/licenses/>.


#import <UIKit/UIKit.h>
#import <MessageUI/MessageUI.h>

#import "ZoomableImage.h"

// conditionally import or forward declare to contain objective-c++ code to here.
#ifdef __cplusplus
#import "baseapi.h"
using namespace tesseract;
#else
@class TessBaseAPI;
#endif

@interface OCRDisplayViewController : UIViewController
<UIActionSheetDelegate, UINavigationControllerDelegate, MFMailComposeViewControllerDelegate, UIImagePickerControllerDelegate> {
    TessBaseAPI *tess;
    UIImage *imageForOCR;
    NSString *outputString;
    
    UIActivityIndicatorView *activityView;
    
    IBOutlet UIBarButtonItem *cameraButton;
    IBOutlet UIBarButtonItem *actionButton;

    IBOutlet ZoomableImage    *thumbImageView;
    IBOutlet UILabel        *statusLabel;
    IBOutlet UITextView *outputView;
}

@property(nonatomic,retain)NSString *outputString;
@property(nonatomic,retain)IBOutlet UITextView *outputView;
@property(nonatomic,retain)IBOutlet UIBarButtonItem *cameraButton;
@property(nonatomic,retain)IBOutlet UIBarButtonItem *actionButton;
@property(nonatomic,retain)IBOutlet ZoomableImage *thumbImageView;
@property(nonatomic,retain)IBOutlet UILabel *statusLabel;

- (NSString *)readAndProcessImage:(UIImage *)uiImage;
- (void)threadedReadAndProcessImage:(UIImage *)uiImage;
-(void)updateTextDisplay;

- (NSString *)applicationDocumentsDirectory;
- (IBAction)selectImage: (id) sender;
-(void)displayImagePickerWithSource:(UIImagePickerControllerSourceType)src;

-(IBAction)displayComposerSheet;
- (void)mailComposeController:(MFMailComposeViewController*)controller didFinishWithResult:(MFMailComposeResult)result error:(NSError*)error;

- (UIImage*)imageWithImage:(UIImage*)image scaledToSize:(CGSize)newSize;
@end


================================================
FILE: Classes/OCRDisplayViewController.mm
================================================
//
//  OCRDisplayViewController.m
//  OCR
//
//  Created by Robert Carlsen on 03.12.2009.
//
//    Copyright (C) 2009, Robert Carlsen | robertcarlsen.net
//
//    This program is free software: you can redistribute it and/or modify
//    it under the terms of the GNU General Public License as published by
//    the Free Software Foundation, either version 3 of the License, or
//    (at your option) any later version.
//
//    This program is distributed in the hope that it will be useful,
//    but WITHOUT ANY WARRANTY; without even the implied warranty of
//    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
//    GNU General Public License for more details.
//
//    You should have received a copy of the GNU General Public License
//    along with this program.  If not, see <http://www.gnu.org/licenses/>.

#import "OCRDisplayViewController.h"
#import "baseapi.h"

#import "UIImage+Resize.h"
#import <math.h>

#define kViewTitle @"Pocket Tesseract OCR"

@implementation OCRDisplayViewController

@synthesize outputString,outputView,cameraButton, actionButton, thumbImageView, statusLabel;

- (void)dealloc 
{
    tess->End(); // shutdown tesseract
    [imageForOCR release];
    [outputView release];
    [thumbImageView release];
    [statusLabel release];
    
    [super dealloc];
}


// Implement viewDidLoad to do additional setup after loading the view, typically from a nib.
- (void)viewDidLoad 
{
    [super viewDidLoad];
    
    [statusLabel setText:[NSString stringWithString:kViewTitle]];

    activityView = [[UIActivityIndicatorView alloc] initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleWhite];
    activityView.center = self.view.center;
    activityView.hidesWhenStopped = YES;
    [self.view addSubview:activityView];
    
    // Set up the tessdata path. This is included in the application bundle
    // but is copied to the Documents directory on the first run.
    NSString *dataPath = [[self applicationDocumentsDirectory] stringByAppendingPathComponent:@"tessdata"];
    NSFileManager *fileManager = [NSFileManager defaultManager];
    // If the expected store doesn't exist, copy the default store.
    if (![fileManager fileExistsAtPath:dataPath]) {
        // get the path to the app bundle (with the tessdata dir)
        NSString *bundlePath = [[NSBundle mainBundle] bundlePath];
        NSString *tessdataPath = [bundlePath stringByAppendingPathComponent:@"tessdata-svn"];
        if (tessdataPath) {
            [fileManager copyItemAtPath:tessdataPath toPath:dataPath error:NULL];
        }
    }
    
    NSString *dataPathWithSlash = [[self applicationDocumentsDirectory] stringByAppendingString:@"/"];
    setenv("TESSDATA_PREFIX", [dataPathWithSlash UTF8String], 1);
    
    // init the tesseract engine.
    tess = new TessBaseAPI();
    tess->Init([dataPath cStringUsingEncoding:NSUTF8StringEncoding],    // Path to tessdata-no ending /.
               "eng");                                                  // ISO 639-3 string or NULL.
    
    NSString *output = [NSString stringWithString:@"Select an image to process."];
    [outputView setText:output];

}

// This displays the converted text in the view
-(void)updateTextDisplay;
{
    [activityView stopAnimating];
    
    [statusLabel setText:[NSString stringWithString:kViewTitle]];
    [outputView setText:outputString]; 
    
    [thumbImageView shrinkToThumbnail];
}

// non-threaded...don't use.
- (NSString *)readAndProcessImage:(UIImage *)uiImage 
{
    CGSize imageSize = [uiImage size];
    int bytes_per_line  = (int)CGImageGetBytesPerRow([uiImage CGImage]);
    int bytes_per_pixel = (int)CGImageGetBitsPerPixel([uiImage CGImage]) / 8.0;
    
    CFDataRef data = CGDataProviderCopyData(CGImageGetDataProvider([uiImage CGImage]));
    const UInt8 *imageData = CFDataGetBytePtr(data);
    
    // this could take a while. maybe needs to happen asynchronously?
    char* text = tess->TesseractRect(imageData,
                                     bytes_per_pixel,
                                     bytes_per_line,
                                     0, 0,
                                     imageSize.width, imageSize.height);
    NSString *textStr = [NSString stringWithUTF8String:text];
    delete[] text;
    CFRelease(data);
    return textStr;
}

// preferred, threaded method:
- (void)threadedReadAndProcessImage:(UIImage *)uiImage 
{
    NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];
    
    CGSize imageSize = [uiImage size];
    int bytes_per_line  = (int)CGImageGetBytesPerRow([uiImage CGImage]);
    int bytes_per_pixel = (int)CGImageGetBitsPerPixel([uiImage CGImage]) / 8.0;
    
    CFDataRef data = CGDataProviderCopyData(CGImageGetDataProvider([uiImage CGImage]));
    const UInt8 *imageData = CFDataGetBytePtr(data);
    
    // this could take a while.
    char* text = tess->TesseractRect(imageData,
                                     bytes_per_pixel,
                                     bytes_per_line,
                                     0, 0,
                                     imageSize.width, imageSize.height);
    
    [self setOutputString:[NSString stringWithCString:text encoding:NSUTF8StringEncoding]];
    
    delete[] text;
    CFRelease(data);

    // Update the display text. Since we're in a threaded method, run the UI stuff on the main thread.
    [self performSelectorOnMainThread:@selector(updateTextDisplay) withObject:nil waitUntilDone:NO];
    
    [pool release];
}

- (UIImage*)imageWithImage:(UIImage*)image 
              scaledToSize:(CGSize)newSize;
{
    // calculate aspect ratio:
    float ratio = image.size.height / image.size.width;
    float aspectHeight = newSize.width * ratio;
    CGSize ratioSize = CGSizeMake(newSize.width, aspectHeight);
    
    UIGraphicsBeginImageContext( ratioSize );
    [image drawInRect:CGRectMake(0,0,ratioSize.width,ratioSize.height)];
    UIImage* newImage = UIGraphicsGetImageFromCurrentImageContext();
    UIGraphicsEndImageContext();
    
    return newImage;
}

#pragma mark -
#pragma mark Application's documents directory
/**
 Returns the path to the application's documents directory.
 */
- (NSString *)applicationDocumentsDirectory 
{
    NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
    NSString *basePath = ([paths count] > 0) ? [paths objectAtIndex:0] : nil;
    return basePath;
}


#pragma mark Image Selection methods
- (IBAction) selectImage: (id) sender
{
	//NSLog(@"Button pressed: %d",[sender tag]);
    
    // present an alert sheet if a camera is visible and allow the user to select the camera or photo library.
    if([UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypeCamera])
//    if(1)  // for testing the alert sheet only
    {
        // this device has a camera, display the alert sheet:
        UIActionSheet *actionSheet = [[UIActionSheet alloc]
                                      initWithTitle:@"Select Image Source"
                                      delegate:self 
                                      cancelButtonTitle:@"Cancel" 
                                      destructiveButtonTitle:nil
                                      otherButtonTitles:@"Camera",@"Photo Library", nil];
        [actionSheet setActionSheetStyle:UIActionSheetStyleBlackOpaque];
        // the tab bar was interferring in the current view
        [actionSheet showInView:[[UIApplication sharedApplication] keyWindow]]; 
        [actionSheet release];
    } else {
        // without a camera, there is no choice to make. just display the modal image picker
        [self displayImagePickerWithSource:UIImagePickerControllerSourceTypePhotoLibrary];
    }
}

- (void)actionSheet:(UIActionSheet *)actionSheet didDismissWithButtonIndex:(NSInteger)buttonIndex;
{
    switch (buttonIndex) {
        case 0:
            // Camera Button
            //NSLog(@"Button 0 pressed");
            [self displayImagePickerWithSource:UIImagePickerControllerSourceTypeCamera];
            break;
        case 1:
            // Library Button
            //NSLog(@"Button 1 pressed");
            [self displayImagePickerWithSource:UIImagePickerControllerSourceTypePhotoLibrary];
            break;
        case 2:
            // Cancel Button
            //NSLog(@"Button 2 pressed");
            break;
        default:
            break;
    }
}

-(void) displayImagePickerWithSource:(UIImagePickerControllerSourceType)src;
{
    if([UIImagePickerController isSourceTypeAvailable:src]) {
        UIImagePickerController *picker = [[UIImagePickerController alloc] init];
        [picker setSourceType:src];
        [picker setDelegate:self];
        
        // allowing editing is nice, but only returns a small 320px image
        [picker setAllowsImageEditing:YES]; 
        [self presentModalViewController:picker animated:YES];
        [picker release];
    }
}

- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info
{
    NSLog(@"Picker has returned");
    [self dismissModalViewControllerAnimated:YES];
    
    // process the selected image:
    [activityView startAnimating];
    
    [statusLabel setText:[NSString stringWithString:@"Processing image..."]];
    [outputView setText:@""];
        
    // send the edited image to the thumbnail view:
    UIImage *thumbImage = [[info objectForKey:UIImagePickerControllerEditedImage] retain];
    
    // set the thumbnail image:    
    [thumbImageView setImage:thumbImage];
    [thumbImage release];
    
    // zoom the thumbnail
    [thumbImageView zoomImageToCenter];

    // TODO: make this all threaded?
    // crop the image to the bounds provided
    UIImage *origImage = [[info objectForKey:UIImagePickerControllerOriginalImage] retain];    
    NSLog(@"orig image size: %@", [[NSValue valueWithCGSize:origImage.size] description]);
    
    // save the image, only if it's a newly taken image:
    if([picker sourceType] == UIImagePickerControllerSourceTypeCamera){
        UIImageWriteToSavedPhotosAlbum(origImage, nil, nil, nil); 
    }
    
    CGRect rect;
    [[info objectForKey:UIImagePickerControllerCropRect] getValue:&rect];
    
    // fake resize to get the orientation right
    UIImage *croppedImage= [origImage resizedImage:origImage.size interpolationQuality:kCGInterpolationDefault];
    [origImage release];
    
    // crop, but maintain original size:
    croppedImage = [croppedImage croppedImage:rect];
    NSLog(@"cropped image size: %@", [[NSValue valueWithCGSize:croppedImage.size] description]);

    // for testing.
    //[self.view addSubview:[[UIImageView alloc] initWithImage:image]];

    // resize, so as to not choke tesseract:
    // scaling up a low resolution image (eg. screenshots) seems to help the recognition.
    // 1200 pixels is an arbitrary value, but seems to work well.
    CGFloat newWidth = 1200; //(1000 < croppedImage.size.width) ? 1000 : croppedImage.size.width;
    CGSize newSize = CGSizeMake(newWidth,newWidth);

    croppedImage = [croppedImage resizedImage:newSize interpolationQuality:kCGInterpolationHigh];
    NSLog(@"resized image size: %@", [[NSValue valueWithCGSize:croppedImage.size] description]);

    //for debugging:
//    [thumbImageView setImage:croppedImage];

    // process image, threaded:
    [self performSelector:@selector(threadedReadAndProcessImage:) withObject:croppedImage afterDelay:0.10];
}



#pragma mark MailComposer delegate
- (void)mailComposeController:(MFMailComposeViewController*)controller didFinishWithResult:(MFMailComposeResult)result error:(NSError*)error;
{
    NSString *message;
    message = nil;
    
    // Notifies users about errors associated with the interface
	switch (result)
	{
		case MFMailComposeResultCancelled:
			break;
		case MFMailComposeResultSaved:
			break;
		case MFMailComposeResultSent:
			break;
		case MFMailComposeResultFailed:
            message = [NSString stringWithString:@"Mail Failed."];
			break;
		default:
			break;
	}
	[self dismissModalViewControllerAnimated:YES];
    
    if(message != nil) {
        UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Status"
                                                        message:message delegate:nil 
                                              cancelButtonTitle:@"OK" otherButtonTitles:nil];
        [alert show];
        [alert release];
    }
}

// Displays an email composition interface inside the application. Populates all the Mail fields. 
-(IBAction)displayComposerSheet 
{
    if(![MFMailComposeViewController canSendMail]) {
        // can't send mail.
        UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Error"
                                                        message:@"Mail not configured or available." 
                                                       delegate:nil 
                                              cancelButtonTitle:@"OK" otherButtonTitles:nil];
        [alert show];
        [alert release];
    }
    
	MFMailComposeViewController *picker = [[MFMailComposeViewController alloc] init];
	picker.mailComposeDelegate = self;
	
	[picker setSubject:@"iPhoneOCR Text"]; // use the product name?

	// Fill out the email body text
    [picker setMessageBody:outputString isHTML:NO];

	[self presentModalViewController:picker animated:YES];
    [picker release];
    
}


//#pragma mark Touch events
//- (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event {
//    NSLog(@"-- I AM TOUCH-ENDED --");
//    
//}

/*
 // The designated initializer.  Override if you create the controller programmatically and want to perform customization that is not appropriate for viewDidLoad.
- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil {
    if (self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil]) {
        // Custom initialization
    }
    return self;
}
*/

/*
// Override to allow orientations other than the default portrait orientation.
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {
    // Return YES for supported orientations
    return (interfaceOrientation == UIInterfaceOrientationPortrait);
}
*/

- (void)didReceiveMemoryWarning {
	// Releases the view if it doesn't have a superview.
    [super didReceiveMemoryWarning];
	
	// Release any cached data, images, etc that aren't in use.
    // TODO: clean this up.
}

- (void)viewDidUnload {
	// Release any retained subviews of the main view.
	// e.g. self.myOutlet = nil;
}



@end


================================================
FILE: Classes/ZoomableImage.h
================================================
//
//  ZoomableImage.h
//  OCR
//
//  Created by Robert Carlsen on 06.12.2009.
//
//    Copyright (C) 2009, Robert Carlsen | robertcarlsen.net
//
//    This program is free software: you can redistribute it and/or modify
//    it under the terms of the GNU General Public License as published by
//    the Free Software Foundation, either version 3 of the License, or
//    (at your option) any later version.
//
//    This program is distributed in the hope that it will be useful,
//    but WITHOUT ANY WARRANTY; without even the implied warranty of
//    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
//    GNU General Public License for more details.
//
//    You should have received a copy of the GNU General Public License
//    along with this program.  If not, see <http://www.gnu.org/licenses/>.

#import <Foundation/Foundation.h>
#import <UIKit/UIKit.h>

@interface ZoomableImage : UIImageView {
    BOOL zoomed;
}
@property BOOL zoomed;

-(void)zoomImageToCenter;
-(void)shrinkToThumbnail;

@end


================================================
FILE: Classes/ZoomableImage.m
================================================
//
//  ZoomableImage.m
//  OCR
//
//  Created by Robert Carlsen on 06.12.2009.
//
//    Copyright (C) 2009, Robert Carlsen | robertcarlsen.net
//
//    This program is free software: you can redistribute it and/or modify
//    it under the terms of the GNU General Public License as published by
//    the Free Software Foundation, either version 3 of the License, or
//    (at your option) any later version.
//
//    This program is distributed in the hope that it will be useful,
//    but WITHOUT ANY WARRANTY; without even the implied warranty of
//    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
//    GNU General Public License for more details.
//
//    You should have received a copy of the GNU General Public License
//    along with this program.  If not, see <http://www.gnu.org/licenses/>.

#import "ZoomableImage.h" 

@implementation ZoomableImage

@synthesize zoomed;

- (id)initWithFrame:(CGRect)frame {
    if (self = [super initWithFrame:frame]) {
        // Initialization code
        [self setUserInteractionEnabled:YES];
    }
    return self;
}

-(id)initWithCoder:(NSCoder *)aDecoder {
    if (self = [super initWithCoder:aDecoder]) {
        // Initialization code
        [self setUserInteractionEnabled:YES];
    }
    return self;
}

//- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {
//    NSLog(@"-- I AM TOUCHED --");
//}
//
//- (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event {
//    NSLog(@"-- I AM TOUCH-ENDED --");
//    
//    // don't zoom an empty frame
//    if (self.image == nil) {
//        return;
//    }
//    
//    // if the touch ended in this view, then zoom
//    UITouch *touch = [touches anyObject];
//    if (touch.view == self) {
//        if ([touch tapCount] >= 2) {
//            // do the zoom magic
//            if(![self zoomed]){
//                [self zoomImageToCenter];
//            } else {
//                [self shrinkToThumbnail];
//            }
//        }
//    }
//}

-(void)zoomImageToCenter;
{
    [UIView beginAnimations:nil context:nil];
    [UIView setAnimationDuration:0.5];
    [UIView setAnimationDelegate:self];
    [UIView setAnimationDidStopSelector:@selector(growAnimationDidStop:finished:context:)];

    CGAffineTransform transform;

    CGAffineTransform scale = CGAffineTransformMakeScale(6.0, 6.0); // original is 52px

    CGPoint thumbCenter = self.center;
    CGPoint screenCenter = [[[UIApplication sharedApplication] keyWindow] center];
    CGAffineTransform move = CGAffineTransformMakeTranslation(screenCenter.x - thumbCenter.x, screenCenter.y - thumbCenter.y);

    transform = CGAffineTransformConcat(scale, move);
    [self setZoomed:YES];

    self.transform = transform;
    [UIView commitAnimations];
}

-(void)shrinkToThumbnail;
{
    [UIView beginAnimations:nil context:nil];
    [UIView setAnimationDuration:0.5];
    [UIView setAnimationDelegate:self];
    [UIView setAnimationDidStopSelector:@selector(growAnimationDidStop:finished:context:)];
    
    CGAffineTransform transform = CGAffineTransformIdentity;
    self.transform = transform;
    [self setZoomed:NO];
    
    [UIView commitAnimations];

}

- (void)growAnimationDidStop:(NSString *)animationID finished:(NSNumber *)finished context:(void *)context {
//    [UIView beginAnimations:nil context:NULL];
//    [UIView setAnimationDuration:0.5];
//    self.transform = CGAffineTransformIdentity;    
//    [UIView commitAnimations];
    [self setUserInteractionEnabled:YES];
}


- (void)drawRect:(CGRect)rect {
    // Drawing code
}

- (void)dealloc {
    [super dealloc];
}

@end


================================================
FILE: MainWindow.xib
================================================
<?xml version="1.0" encoding="UTF-8"?>
<archive type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="7.10">
	<data>
		<int key="IBDocument.SystemTarget">768</int>
		<string key="IBDocument.SystemVersion">10A288</string>
		<string key="IBDocument.InterfaceBuilderVersion">715</string>
		<string key="IBDocument.AppKitVersion">1010</string>
		<string key="IBDocument.HIToolboxVersion">411.00</string>
		<object class="NSMutableDictionary" key="IBDocument.PluginVersions">
			<string key="NS.key.0">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
			<string key="NS.object.0">46</string>
		</object>
		<object class="NSMutableArray" key="IBDocument.EditedObjectIDs">
			<bool key="EncodedWithXMLCoder">YES</bool>
			<integer value="2"/>
		</object>
		<object class="NSArray" key="IBDocument.PluginDependencies">
			<bool key="EncodedWithXMLCoder">YES</bool>
			<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
		</object>
		<object class="NSMutableDictionary" key="IBDocument.Metadata">
			<bool key="EncodedWithXMLCoder">YES</bool>
			<object class="NSArray" key="dict.sortedKeys" id="0">
				<bool key="EncodedWithXMLCoder">YES</bool>
			</object>
			<object class="NSMutableArray" key="dict.values">
				<bool key="EncodedWithXMLCoder">YES</bool>
			</object>
		</object>
		<object class="NSMutableArray" key="IBDocument.RootObjects" id="1000">
			<bool key="EncodedWithXMLCoder">YES</bool>
			<object class="IBProxyObject" id="841351856">
				<string key="IBProxiedObjectIdentifier">IBFilesOwner</string>
			</object>
			<object class="IBProxyObject" id="427554174">
				<string key="IBProxiedObjectIdentifier">IBFirstResponder</string>
			</object>
			<object class="IBUICustomObject" id="664661524"/>
			<object class="IBUIWindow" id="380026005">
				<reference key="NSNextResponder"/>
				<int key="NSvFlags">1316</int>
				<object class="NSPSMatrix" key="NSFrameMatrix"/>
				<string key="NSFrameSize">{320, 480}</string>
				<reference key="NSSuperview"/>
				<object class="NSColor" key="IBUIBackgroundColor">
					<int key="NSColorSpace">1</int>
					<bytes key="NSRGB">MSAxIDEAA</bytes>
				</object>
				<bool key="IBUIOpaque">NO</bool>
				<bool key="IBUIClearsContextBeforeDrawing">NO</bool>
				<object class="IBUISimulatedStatusBarMetrics" key="IBUISimulatedStatusBarMetrics"/>
			</object>
		</object>
		<object class="IBObjectContainer" key="IBDocument.Objects">
			<object class="NSMutableArray" key="connectionRecords">
				<bool key="EncodedWithXMLCoder">YES</bool>
				<object class="IBConnectionRecord">
					<object class="IBCocoaTouchOutletConnection" key="connection">
						<string key="label">delegate</string>
						<reference key="source" ref="841351856"/>
						<reference key="destination" ref="664661524"/>
					</object>
					<int key="connectionID">4</int>
				</object>
				<object class="IBConnectionRecord">
					<object class="IBCocoaTouchOutletConnection" key="connection">
						<string key="label">window</string>
						<reference key="source" ref="664661524"/>
						<reference key="destination" ref="380026005"/>
					</object>
					<int key="connectionID">5</int>
				</object>
			</object>
			<object class="IBMutableOrderedSet" key="objectRecords">
				<object class="NSArray" key="orderedObjects">
					<bool key="EncodedWithXMLCoder">YES</bool>
					<object class="IBObjectRecord">
						<int key="objectID">0</int>
						<reference key="object" ref="0"/>
						<reference key="children" ref="1000"/>
						<nil key="parent"/>
					</object>
					<object class="IBObjectRecord">
						<int key="objectID">2</int>
						<reference key="object" ref="380026005"/>
						<object class="NSMutableArray" key="children">
							<bool key="EncodedWithXMLCoder">YES</bool>
						</object>
						<reference key="parent" ref="0"/>
					</object>
					<object class="IBObjectRecord">
						<int key="objectID">-1</int>
						<reference key="object" ref="841351856"/>
						<reference key="parent" ref="0"/>
						<string key="objectName">File's Owner</string>
					</object>
					<object class="IBObjectRecord">
						<int key="objectID">3</int>
						<reference key="object" ref="664661524"/>
						<reference key="parent" ref="0"/>
					</object>
					<object class="IBObjectRecord">
						<int key="objectID">-2</int>
						<reference key="object" ref="427554174"/>
						<reference key="parent" ref="0"/>
					</object>
				</object>
			</object>
			<object class="NSMutableDictionary" key="flattenedProperties">
				<bool key="EncodedWithXMLCoder">YES</bool>
				<object class="NSArray" key="dict.sortedKeys">
					<bool key="EncodedWithXMLCoder">YES</bool>
					<string>-1.CustomClassName</string>
					<string>-2.CustomClassName</string>
					<string>2.IBAttributePlaceholdersKey</string>
					<string>2.IBEditorWindowLastContentRect</string>
					<string>2.IBPluginDependency</string>
					<string>3.CustomClassName</string>
					<string>3.IBPluginDependency</string>
				</object>
				<object class="NSMutableArray" key="dict.values">
					<bool key="EncodedWithXMLCoder">YES</bool>
					<string>UIApplication</string>
					<string>UIResponder</string>
					<object class="NSMutableDictionary">
						<bool key="EncodedWithXMLCoder">YES</bool>
						<reference key="dict.sortedKeys" ref="0"/>
						<object class="NSMutableArray" key="dict.values">
							<bool key="EncodedWithXMLCoder">YES</bool>
						</object>
					</object>
					<string>{{438, 320}, {320, 480}}</string>
					<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
					<string>OCRAppDelegate</string>
					<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
				</object>
			</object>
			<object class="NSMutableDictionary" key="unlocalizedProperties">
				<bool key="EncodedWithXMLCoder">YES</bool>
				<reference key="dict.sortedKeys" ref="0"/>
				<object class="NSMutableArray" key="dict.values">
					<bool key="EncodedWithXMLCoder">YES</bool>
				</object>
			</object>
			<nil key="activeLocalization"/>
			<object class="NSMutableDictionary" key="localizations">
				<bool key="EncodedWithXMLCoder">YES</bool>
				<reference key="dict.sortedKeys" ref="0"/>
				<object class="NSMutableArray" key="dict.values">
					<bool key="EncodedWithXMLCoder">YES</bool>
				</object>
			</object>
			<nil key="sourceID"/>
			<int key="maxID">9</int>
		</object>
		<object class="IBClassDescriber" key="IBDocument.Classes">
			<object class="NSMutableArray" key="referencedPartialClassDescriptions">
				<bool key="EncodedWithXMLCoder">YES</bool>
				<object class="IBPartialClassDescription">
					<string key="className">OCRAppDelegate</string>
					<string key="superclassName">NSObject</string>
					<object class="NSMutableDictionary" key="outlets">
						<string key="NS.key.0">window</string>
						<string key="NS.object.0">UIWindow</string>
					</object>
					<object class="IBClassDescriptionSource" key="sourceIdentifier">
						<string key="majorKey">IBProjectSource</string>
						<string key="minorKey">Classes/OCRAppDelegate.h</string>
					</object>
				</object>
				<object class="IBPartialClassDescription">
					<string key="className">OCRAppDelegate</string>
					<string key="superclassName">NSObject</string>
					<object class="IBClassDescriptionSource" key="sourceIdentifier">
						<string key="majorKey">IBUserSource</string>
						<string key="minorKey"/>
					</object>
				</object>
			</object>
		</object>
		<int key="IBDocument.localizationMode">0</int>
		<object class="NSMutableDictionary" key="IBDocument.PluginDeclaredDevelopmentDependencies">
			<string key="NS.key.0">com.apple.InterfaceBuilder.CocoaTouchPlugin.InterfaceBuilder3</string>
			<integer value="3100" key="NS.object.0"/>
		</object>
		<bool key="IBDocument.PluginDeclaredDependenciesTrackSystemTargetVersion">YES</bool>
		<string key="IBDocument.LastKnownRelativeProjectPath">OCR.xcodeproj</string>
		<int key="IBDocument.defaultPropertyAccessControl">3</int>
	</data>
</archive>


================================================
FILE: OCR-Info.plist
================================================
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
	<key>CFBundleDevelopmentRegion</key>
	<string>English</string>
	<key>CFBundleDisplayName</key>
	<string>${PRODUCT_NAME}</string>
	<key>CFBundleExecutable</key>
	<string>${EXECUTABLE_NAME}</string>
	<key>CFBundleIconFile</key>
	<string>TessIcon.png</string>
	<key>CFBundleIdentifier</key>
	<string>com.robertcarlsen.${PRODUCT_NAME:rfc1034identifier}</string>
	<key>CFBundleInfoDictionaryVersion</key>
	<string>6.0</string>
	<key>CFBundleName</key>
	<string>${PRODUCT_NAME}</string>
	<key>CFBundlePackageType</key>
	<string>APPL</string>
	<key>CFBundleSignature</key>
	<string>????</string>
	<key>CFBundleVersion</key>
	<string>1.0</string>
	<key>LSRequiresIPhoneOS</key>
	<true/>
	<key>NSMainNibFile</key>
	<string>MainWindow</string>
</dict>
</plist>


================================================
FILE: OCR.xcodeproj/project.pbxproj
================================================
// !$*UTF8*$!
{
	archiveVersion = 1;
	classes = {
	};
	objectVersion = 45;
	objects = {

/* Begin PBXBuildFile section */
		1D60589B0D05DD56006BFB54 /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 29B97316FDCFA39411CA2CEA /* main.m */; };
		1D60589F0D05DD5A006BFB54 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1D30AB110D05D00D00671497 /* Foundation.framework */; };
		1DF5F4E00D08C38300B7A737 /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1DF5F4DF0D08C38300B7A737 /* UIKit.framework */; };
		240C703510C8F5A800CD7AD1 /* shadow.png in Resources */ = {isa = PBXBuildFile; fileRef = 240C703410C8F5A800CD7AD1 /* shadow.png */; };
		241B1E6710517E3800926F2B /* OCRAppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 241B1E6610517E3800926F2B /* OCRAppDelegate.m */; };
		2463448F10CC281000011876 /* ZoomableImage.m in Sources */ = {isa = PBXBuildFile; fileRef = 2463448E10CC281000011876 /* ZoomableImage.m */; };
		2482F02B10FC300900EFB5A2 /* OCRDisplayViewController.mm in Sources */ = {isa = PBXBuildFile; fileRef = 2482F02A10FC300900EFB5A2 /* OCRDisplayViewController.mm */; };
		248395841254394A003C7FC8 /* tessdata-svn in Resources */ = {isa = PBXBuildFile; fileRef = 248395791254394A003C7FC8 /* tessdata-svn */; };
		248395CA12545376003C7FC8 /* libtesseract_api.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 248395BE12545376003C7FC8 /* libtesseract_api.a */; };
		248395CB12545376003C7FC8 /* libtesseract_ccstruct.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 248395BF12545376003C7FC8 /* libtesseract_ccstruct.a */; };
		248395CC12545376003C7FC8 /* libtesseract_ccutil.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 248395C012545376003C7FC8 /* libtesseract_ccutil.a */; };
		248395CD12545376003C7FC8 /* libtesseract_classify.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 248395C112545376003C7FC8 /* libtesseract_classify.a */; };
		248395CE12545376003C7FC8 /* libtesseract_cutil.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 248395C212545376003C7FC8 /* libtesseract_cutil.a */; };
		248395CF12545376003C7FC8 /* libtesseract_dict.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 248395C312545376003C7FC8 /* libtesseract_dict.a */; };
		248395D012545376003C7FC8 /* libtesseract_image.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 248395C412545376003C7FC8 /* libtesseract_image.a */; };
		248395D112545376003C7FC8 /* libtesseract_main.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 248395C512545376003C7FC8 /* libtesseract_main.a */; };
		248395D212545376003C7FC8 /* libtesseract_textord.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 248395C612545376003C7FC8 /* libtesseract_textord.a */; };
		248395D312545376003C7FC8 /* libtesseract_training.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 248395C712545376003C7FC8 /* libtesseract_training.a */; };
		248395D412545376003C7FC8 /* libtesseract_viewer.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 248395C812545376003C7FC8 /* libtesseract_viewer.a */; };
		248395D512545376003C7FC8 /* libtesseract_wordrec.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 248395C912545376003C7FC8 /* libtesseract_wordrec.a */; };
		24B2BCC910C8912E00A13CE0 /* MessageUI.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 24B2BCC810C8912E00A13CE0 /* MessageUI.framework */; };
		24BA10F010C882E600016CED /* TessIcon.png in Resources */ = {isa = PBXBuildFile; fileRef = 24BA10EF10C882E600016CED /* TessIcon.png */; };
		24BA110F10C884F300016CED /* OCRDisplayViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 24BA110D10C884F300016CED /* OCRDisplayViewController.xib */; };
		24BC002410FC486A0043EB8F /* readme.txt in Resources */ = {isa = PBXBuildFile; fileRef = 24BC002310FC486A0043EB8F /* readme.txt */; };
		24F2866410C9BA88004BB5CA /* UIImage+Alpha.m in Sources */ = {isa = PBXBuildFile; fileRef = 24F2865F10C9BA87004BB5CA /* UIImage+Alpha.m */; };
		24F2866510C9BA88004BB5CA /* UIImage+Resize.m in Sources */ = {isa = PBXBuildFile; fileRef = 24F2866110C9BA88004BB5CA /* UIImage+Resize.m */; };
		24F2866610C9BA88004BB5CA /* UIImage+RoundedCorner.m in Sources */ = {isa = PBXBuildFile; fileRef = 24F2866310C9BA88004BB5CA /* UIImage+RoundedCorner.m */; };
		288765FD0DF74451002DB57D /* CoreGraphics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 288765FC0DF74451002DB57D /* CoreGraphics.framework */; };
		28AD733F0D9D9553002E5188 /* MainWindow.xib in Resources */ = {isa = PBXBuildFile; fileRef = 28AD733E0D9D9553002E5188 /* MainWindow.xib */; };
/* End PBXBuildFile section */

/* Begin PBXFileReference section */
		1D30AB110D05D00D00671497 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; };
		1D3623240D0F684500981E51 /* OCRAppDelegate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OCRAppDelegate.h; sourceTree = "<group>"; };
		1D6058910D05DD3D006BFB54 /* OCR.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = OCR.app; sourceTree = BUILT_PRODUCTS_DIR; };
		1DF5F4DF0D08C38300B7A737 /* UIKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = UIKit.framework; path = System/Library/Frameworks/UIKit.framework; sourceTree = SDKROOT; };
		240C703410C8F5A800CD7AD1 /* shadow.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = shadow.png; path = dev/shadow.png; sourceTree = "<group>"; };
		241B1E6610517E3800926F2B /* OCRAppDelegate.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = OCRAppDelegate.m; sourceTree = "<group>"; };
		2463448D10CC281000011876 /* ZoomableImage.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ZoomableImage.h; sourceTree = "<group>"; };
		2463448E10CC281000011876 /* ZoomableImage.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ZoomableImage.m; sourceTree = "<group>"; };
		2482F02910FC300900EFB5A2 /* OCRDisplayViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OCRDisplayViewController.h; sourceTree = "<group>"; };
		2482F02A10FC300900EFB5A2 /* OCRDisplayViewController.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = OCRDisplayViewController.mm; sourceTree = "<group>"; };
		248395791254394A003C7FC8 /* tessdata-svn */ = {isa = PBXFileReference; lastKnownFileType = folder; path = "tessdata-svn"; sourceTree = "<group>"; };
		248395BE12545376003C7FC8 /* libtesseract_api.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libtesseract_api.a; path = "../../tesseract-ocr-svn/outdir/libtesseract_api.a"; sourceTree = SOURCE_ROOT; };
		248395BF12545376003C7FC8 /* libtesseract_ccstruct.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libtesseract_ccstruct.a; path = "../../tesseract-ocr-svn/outdir/libtesseract_ccstruct.a"; sourceTree = SOURCE_ROOT; };
		248395C012545376003C7FC8 /* libtesseract_ccutil.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libtesseract_ccutil.a; path = "../../tesseract-ocr-svn/outdir/libtesseract_ccutil.a"; sourceTree = SOURCE_ROOT; };
		248395C112545376003C7FC8 /* libtesseract_classify.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libtesseract_classify.a; path = "../../tesseract-ocr-svn/outdir/libtesseract_classify.a"; sourceTree = SOURCE_ROOT; };
		248395C212545376003C7FC8 /* libtesseract_cutil.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libtesseract_cutil.a; path = "../../tesseract-ocr-svn/outdir/libtesseract_cutil.a"; sourceTree = SOURCE_ROOT; };
		248395C312545376003C7FC8 /* libtesseract_dict.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libtesseract_dict.a; path = "../../tesseract-ocr-svn/outdir/libtesseract_dict.a"; sourceTree = SOURCE_ROOT; };
		248395C412545376003C7FC8 /* libtesseract_image.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libtesseract_image.a; path = "../../tesseract-ocr-svn/outdir/libtesseract_image.a"; sourceTree = SOURCE_ROOT; };
		248395C512545376003C7FC8 /* libtesseract_main.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libtesseract_main.a; path = "../../tesseract-ocr-svn/outdir/libtesseract_main.a"; sourceTree = SOURCE_ROOT; };
		248395C612545376003C7FC8 /* libtesseract_textord.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libtesseract_textord.a; path = "../../tesseract-ocr-svn/outdir/libtesseract_textord.a"; sourceTree = SOURCE_ROOT; };
		248395C712545376003C7FC8 /* libtesseract_training.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libtesseract_training.a; path = "../../tesseract-ocr-svn/outdir/libtesseract_training.a"; sourceTree = SOURCE_ROOT; };
		248395C812545376003C7FC8 /* libtesseract_viewer.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libtesseract_viewer.a; path = "../../tesseract-ocr-svn/outdir/libtesseract_viewer.a"; sourceTree = SOURCE_ROOT; };
		248395C912545376003C7FC8 /* libtesseract_wordrec.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libtesseract_wordrec.a; path = "../../tesseract-ocr-svn/outdir/libtesseract_wordrec.a"; sourceTree = SOURCE_ROOT; };
		24B2BCC810C8912E00A13CE0 /* MessageUI.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = MessageUI.framework; path = System/Library/Frameworks/MessageUI.framework; sourceTree = SDKROOT; };
		24BA10EF10C882E600016CED /* TessIcon.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = TessIcon.png; path = dev/TessIcon.png; sourceTree = "<group>"; };
		24BA110D10C884F300016CED /* OCRDisplayViewController.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = OCRDisplayViewController.xib; sourceTree = "<group>"; };
		24BC002310FC486A0043EB8F /* readme.txt */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = readme.txt; sourceTree = "<group>"; };
		24F2865E10C9BA87004BB5CA /* UIImage+Alpha.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "UIImage+Alpha.h"; sourceTree = "<group>"; };
		24F2865F10C9BA87004BB5CA /* UIImage+Alpha.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "UIImage+Alpha.m"; sourceTree = "<group>"; };
		24F2866010C9BA87004BB5CA /* UIImage+Resize.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "UIImage+Resize.h"; sourceTree = "<group>"; };
		24F2866110C9BA88004BB5CA /* UIImage+Resize.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "UIImage+Resize.m"; sourceTree = "<group>"; };
		24F2866210C9BA88004BB5CA /* UIImage+RoundedCorner.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "UIImage+RoundedCorner.h"; sourceTree = "<group>"; };
		24F2866310C9BA88004BB5CA /* UIImage+RoundedCorner.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "UIImage+RoundedCorner.m"; sourceTree = "<group>"; };
		288765FC0DF74451002DB57D /* CoreGraphics.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreGraphics.framework; path = System/Library/Frameworks/CoreGraphics.framework; sourceTree = SDKROOT; };
		28AD733E0D9D9553002E5188 /* MainWindow.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = MainWindow.xib; sourceTree = "<group>"; };
		29B97316FDCFA39411CA2CEA /* main.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = "<group>"; };
		32CA4F630368D1EE00C91783 /* OCR_Prefix.pch */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OCR_Prefix.pch; sourceTree = "<group>"; };
		8D1107310486CEB800E47090 /* OCR-Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = "OCR-Info.plist"; plistStructureDefinitionIdentifier = "com.apple.xcode.plist.structure-definition.iphone.info-plist"; sourceTree = "<group>"; };
/* End PBXFileReference section */

/* Begin PBXFrameworksBuildPhase section */
		1D60588F0D05DD3D006BFB54 /* Frameworks */ = {
			isa = PBXFrameworksBuildPhase;
			buildActionMask = 2147483647;
			files = (
				1D60589F0D05DD5A006BFB54 /* Foundation.framework in Frameworks */,
				1DF5F4E00D08C38300B7A737 /* UIKit.framework in Frameworks */,
				288765FD0DF74451002DB57D /* CoreGraphics.framework in Frameworks */,
				24B2BCC910C8912E00A13CE0 /* MessageUI.framework in Frameworks */,
				248395CA12545376003C7FC8 /* libtesseract_api.a in Frameworks */,
				248395CB12545376003C7FC8 /* libtesseract_ccstruct.a in Frameworks */,
				248395CC12545376003C7FC8 /* libtesseract_ccutil.a in Frameworks */,
				248395CD12545376003C7FC8 /* libtesseract_classify.a in Frameworks */,
				248395CE12545376003C7FC8 /* libtesseract_cutil.a in Frameworks */,
				248395CF12545376003C7FC8 /* libtesseract_dict.a in Frameworks */,
				248395D012545376003C7FC8 /* libtesseract_image.a in Frameworks */,
				248395D112545376003C7FC8 /* libtesseract_main.a in Frameworks */,
				248395D212545376003C7FC8 /* libtesseract_textord.a in Frameworks */,
				248395D312545376003C7FC8 /* libtesseract_training.a in Frameworks */,
				248395D412545376003C7FC8 /* libtesseract_viewer.a in Frameworks */,
				248395D512545376003C7FC8 /* libtesseract_wordrec.a in Frameworks */,
			);
			runOnlyForDeploymentPostprocessing = 0;
		};
/* End PBXFrameworksBuildPhase section */

/* Begin PBXGroup section */
		080E96DDFE201D6D7F000001 /* Classes */ = {
			isa = PBXGroup;
			children = (
				2482F02910FC300900EFB5A2 /* OCRDisplayViewController.h */,
				2482F02A10FC300900EFB5A2 /* OCRDisplayViewController.mm */,
				241B1E6610517E3800926F2B /* OCRAppDelegate.m */,
				1D3623240D0F684500981E51 /* OCRAppDelegate.h */,
				2463448D10CC281000011876 /* ZoomableImage.h */,
				2463448E10CC281000011876 /* ZoomableImage.m */,
			);
			path = Classes;
			sourceTree = "<group>";
		};
		19C28FACFE9D520D11CA2CBB /* Products */ = {
			isa = PBXGroup;
			children = (
				1D6058910D05DD3D006BFB54 /* OCR.app */,
			);
			name = Products;
			sourceTree = "<group>";
		};
		24F2865D10C9BA87004BB5CA /* UIImage-categories */ = {
			isa = PBXGroup;
			children = (
				24F2865E10C9BA87004BB5CA /* UIImage+Alpha.h */,
				24F2865F10C9BA87004BB5CA /* UIImage+Alpha.m */,
				24F2866010C9BA87004BB5CA /* UIImage+Resize.h */,
				24F2866110C9BA88004BB5CA /* UIImage+Resize.m */,
				24F2866210C9BA88004BB5CA /* UIImage+RoundedCorner.h */,
				24F2866310C9BA88004BB5CA /* UIImage+RoundedCorner.m */,
			);
			path = "UIImage-categories";
			sourceTree = "<group>";
		};
		29B97314FDCFA39411CA2CEA /* CustomTemplate */ = {
			isa = PBXGroup;
			children = (
				24F2865D10C9BA87004BB5CA /* UIImage-categories */,
				080E96DDFE201D6D7F000001 /* Classes */,
				29B97315FDCFA39411CA2CEA /* Other Sources */,
				29B97317FDCFA39411CA2CEA /* Resources */,
				29B97323FDCFA39411CA2CEA /* Frameworks */,
				19C28FACFE9D520D11CA2CBB /* Products */,
			);
			name = CustomTemplate;
			sourceTree = "<group>";
		};
		29B97315FDCFA39411CA2CEA /* Other Sources */ = {
			isa = PBXGroup;
			children = (
				32CA4F630368D1EE00C91783 /* OCR_Prefix.pch */,
				29B97316FDCFA39411CA2CEA /* main.m */,
			);
			name = "Other Sources";
			sourceTree = "<group>";
		};
		29B97317FDCFA39411CA2CEA /* Resources */ = {
			isa = PBXGroup;
			children = (
				248395791254394A003C7FC8 /* tessdata-svn */,
				240C703410C8F5A800CD7AD1 /* shadow.png */,
				24BA110D10C884F300016CED /* OCRDisplayViewController.xib */,
				24BA10EF10C882E600016CED /* TessIcon.png */,
				28AD733E0D9D9553002E5188 /* MainWindow.xib */,
				8D1107310486CEB800E47090 /* OCR-Info.plist */,
				24BC002310FC486A0043EB8F /* readme.txt */,
			);
			name = Resources;
			sourceTree = "<group>";
		};
		29B97323FDCFA39411CA2CEA /* Frameworks */ = {
			isa = PBXGroup;
			children = (
				248395BE12545376003C7FC8 /* libtesseract_api.a */,
				248395BF12545376003C7FC8 /* libtesseract_ccstruct.a */,
				248395C012545376003C7FC8 /* libtesseract_ccutil.a */,
				248395C112545376003C7FC8 /* libtesseract_classify.a */,
				248395C212545376003C7FC8 /* libtesseract_cutil.a */,
				248395C312545376003C7FC8 /* libtesseract_dict.a */,
				248395C412545376003C7FC8 /* libtesseract_image.a */,
				248395C512545376003C7FC8 /* libtesseract_main.a */,
				248395C612545376003C7FC8 /* libtesseract_textord.a */,
				248395C712545376003C7FC8 /* libtesseract_training.a */,
				248395C812545376003C7FC8 /* libtesseract_viewer.a */,
				248395C912545376003C7FC8 /* libtesseract_wordrec.a */,
				1DF5F4DF0D08C38300B7A737 /* UIKit.framework */,
				1D30AB110D05D00D00671497 /* Foundation.framework */,
				288765FC0DF74451002DB57D /* CoreGraphics.framework */,
				24B2BCC810C8912E00A13CE0 /* MessageUI.framework */,
			);
			name = Frameworks;
			sourceTree = "<group>";
		};
/* End PBXGroup section */

/* Begin PBXNativeTarget section */
		1D6058900D05DD3D006BFB54 /* OCR */ = {
			isa = PBXNativeTarget;
			buildConfigurationList = 1D6058960D05DD3E006BFB54 /* Build configuration list for PBXNativeTarget "OCR" */;
			buildPhases = (
				1D60588D0D05DD3D006BFB54 /* Resources */,
				1D60588E0D05DD3D006BFB54 /* Sources */,
				1D60588F0D05DD3D006BFB54 /* Frameworks */,
			);
			buildRules = (
			);
			dependencies = (
			);
			name = OCR;
			productName = OCR;
			productReference = 1D6058910D05DD3D006BFB54 /* OCR.app */;
			productType = "com.apple.product-type.application";
		};
/* End PBXNativeTarget section */

/* Begin PBXProject section */
		29B97313FDCFA39411CA2CEA /* Project object */ = {
			isa = PBXProject;
			buildConfigurationList = C01FCF4E08A954540054247B /* Build configuration list for PBXProject "OCR" */;
			compatibilityVersion = "Xcode 3.1";
			developmentRegion = English;
			hasScannedForEncodings = 1;
			knownRegions = (
				English,
				Japanese,
				French,
				German,
			);
			mainGroup = 29B97314FDCFA39411CA2CEA /* CustomTemplate */;
			projectDirPath = "";
			projectRoot = "";
			targets = (
				1D6058900D05DD3D006BFB54 /* OCR */,
			);
		};
/* End PBXProject section */

/* Begin PBXResourcesBuildPhase section */
		1D60588D0D05DD3D006BFB54 /* Resources */ = {
			isa = PBXResourcesBuildPhase;
			buildActionMask = 2147483647;
			files = (
				28AD733F0D9D9553002E5188 /* MainWindow.xib in Resources */,
				24BA10F010C882E600016CED /* TessIcon.png in Resources */,
				24BA110F10C884F300016CED /* OCRDisplayViewController.xib in Resources */,
				240C703510C8F5A800CD7AD1 /* shadow.png in Resources */,
				24BC002410FC486A0043EB8F /* readme.txt in Resources */,
				248395841254394A003C7FC8 /* tessdata-svn in Resources */,
			);
			runOnlyForDeploymentPostprocessing = 0;
		};
/* End PBXResourcesBuildPhase section */

/* Begin PBXSourcesBuildPhase section */
		1D60588E0D05DD3D006BFB54 /* Sources */ = {
			isa = PBXSourcesBuildPhase;
			buildActionMask = 2147483647;
			files = (
				1D60589B0D05DD56006BFB54 /* main.m in Sources */,
				241B1E6710517E3800926F2B /* OCRAppDelegate.m in Sources */,
				24F2866410C9BA88004BB5CA /* UIImage+Alpha.m in Sources */,
				24F2866510C9BA88004BB5CA /* UIImage+Resize.m in Sources */,
				24F2866610C9BA88004BB5CA /* UIImage+RoundedCorner.m in Sources */,
				2463448F10CC281000011876 /* ZoomableImage.m in Sources */,
				2482F02B10FC300900EFB5A2 /* OCRDisplayViewController.mm in Sources */,
			);
			runOnlyForDeploymentPostprocessing = 0;
		};
/* End PBXSourcesBuildPhase section */

/* Begin XCBuildConfiguration section */
		1D6058940D05DD3E006BFB54 /* Debug */ = {
			isa = XCBuildConfiguration;
			buildSettings = {
				ALWAYS_SEARCH_USER_PATHS = NO;
				COPY_PHASE_STRIP = NO;
				GCC_DYNAMIC_NO_PIC = NO;
				GCC_OPTIMIZATION_LEVEL = 0;
				GCC_PRECOMPILE_PREFIX_HEADER = YES;
				GCC_PREFIX_HEADER = OCR_Prefix.pch;
				GCC_VERSION = "";
				HEADER_SEARCH_PATHS = "";
				INFOPLIST_FILE = "OCR-Info.plist";
				IPHONEOS_DEPLOYMENT_TARGET = 3.1.2;
				LIBRARY_SEARCH_PATHS = (
					"$(inherited)",
					"\"$(SRCROOT)\"",
					"\"$(SRCROOT)/../../tesseract-ocr-svn\"",
					"\"$(SRCROOT)/../../tesseract-ocr-svn/outdir\"",
				);
				MACOSX_DEPLOYMENT_TARGET = "";
				PRODUCT_NAME = OCR;
				SDKROOT = iphoneos;
				USER_HEADER_SEARCH_PATHS = "\"$(SRCROOT)/../../tesseract-ocr-svn\"/**";
			};
			name = Debug;
		};
		1D6058950D05DD3E006BFB54 /* Release */ = {
			isa = XCBuildConfiguration;
			buildSettings = {
				ALWAYS_SEARCH_USER_PATHS = NO;
				COPY_PHASE_STRIP = YES;
				GCC_PRECOMPILE_PREFIX_HEADER = YES;
				GCC_PREFIX_HEADER = OCR_Prefix.pch;
				INFOPLIST_FILE = "OCR-Info.plist";
				IPHONEOS_DEPLOYMENT_TARGET = 3.1.2;
				LIBRARY_SEARCH_PATHS = (
					"$(inherited)",
					"\"$(SRCROOT)\"",
					"\"$(SRCROOT)/../../tesseract-ocr-svn\"",
					"\"$(SRCROOT)/../../tesseract-ocr-svn/outdir\"",
				);
				PRODUCT_NAME = OCR;
				SDKROOT = iphoneos;
				USER_HEADER_SEARCH_PATHS = "\"$(SRCROOT)/../../tesseract-ocr-svn\"/**";
			};
			name = Release;
		};
		C01FCF4F08A954540054247B /* Debug */ = {
			isa = XCBuildConfiguration;
			buildSettings = {
				ARCHS = "$(ARCHS_STANDARD_32_BIT)";
				"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
				GCC_C_LANGUAGE_STANDARD = c99;
				GCC_WARN_ABOUT_RETURN_TYPE = YES;
				GCC_WARN_UNUSED_VARIABLE = YES;
				PREBINDING = NO;
				SDKROOT = iphoneos;
				USER_HEADER_SEARCH_PATHS = "\"$(SRCROOT)/../../tesseract-ocr-svn\"/**";
			};
			name = Debug;
		};
		C01FCF5008A954540054247B /* Release */ = {
			isa = XCBuildConfiguration;
			buildSettings = {
				ARCHS = "$(ARCHS_STANDARD_32_BIT)";
				"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
				GCC_C_LANGUAGE_STANDARD = c99;
				GCC_WARN_ABOUT_RETURN_TYPE = YES;
				GCC_WARN_UNUSED_VARIABLE = YES;
				IPHONEOS_DEPLOYMENT_TARGET = 3.1.2;
				PREBINDING = NO;
				SDKROOT = iphoneos;
				USER_HEADER_SEARCH_PATHS = "\"$(SRCROOT)/../../tesseract-ocr-svn\"/**";
			};
			name = Release;
		};
/* End XCBuildConfiguration section */

/* Begin XCConfigurationList section */
		1D6058960D05DD3E006BFB54 /* Build configuration list for PBXNativeTarget "OCR" */ = {
			isa = XCConfigurationList;
			buildConfigurations = (
				1D6058940D05DD3E006BFB54 /* Debug */,
				1D6058950D05DD3E006BFB54 /* Release */,
			);
			defaultConfigurationIsVisible = 0;
			defaultConfigurationName = Release;
		};
		C01FCF4E08A954540054247B /* Build configuration list for PBXProject "OCR" */ = {
			isa = XCConfigurationList;
			buildConfigurations = (
				C01FCF4F08A954540054247B /* Debug */,
				C01FCF5008A954540054247B /* Release */,
			);
			defaultConfigurationIsVisible = 0;
			defaultConfigurationName = Release;
		};
/* End XCConfigurationList section */
	};
	rootObject = 29B97313FDCFA39411CA2CEA /* Project object */;
}


================================================
FILE: OCR.xcodeproj/rcarlsen.perspectivev3
================================================
<?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>AIODescriptionKey</string>
	<key>DockingSystemVisible</key>
	<false/>
	<key>Extension</key>
	<string>perspectivev3</string>
	<key>FavBarConfig</key>
	<dict>
		<key>PBXProjectModuleGUID</key>
		<string>241B1E551051501300926F2B</string>
		<key>XCBarModuleItemNames</key>
		<dict/>
		<key>XCBarModuleItems</key>
		<array/>
	</dict>
	<key>FirstTimeWindowDisplayed</key>
	<false/>
	<key>Identifier</key>
	<string>com.apple.perspectives.project.defaultV3</string>
	<key>MajorVersion</key>
	<integer>34</integer>
	<key>MinorVersion</key>
	<integer>0</integer>
	<key>Name</key>
	<string>All-In-One</string>
	<key>Notifications</key>
	<array>
		<dict>
			<key>XCObserverAutoDisconnectKey</key>
			<true/>
			<key>XCObserverDefintionKey</key>
			<dict>
				<key>PBXStatusErrorsKey</key>
				<integer>0</integer>
			</dict>
			<key>XCObserverFactoryKey</key>
			<string>XCPerspectivesSpecificationIdentifier</string>
			<key>XCObserverGUIDKey</key>
			<string>XCObserverProjectIdentifier</string>
			<key>XCObserverNotificationKey</key>
			<string>PBXStatusBuildStateMessageNotification</string>
			<key>XCObserverTargetKey</key>
			<string>XCMainBuildResultsModuleGUID</string>
			<key>XCObserverTriggerKey</key>
			<string>awakenModuleWithObserver:</string>
			<key>XCObserverValidationKey</key>
			<dict>
				<key>PBXStatusErrorsKey</key>
				<integer>2</integer>
			</dict>
		</dict>
	</array>
	<key>OpenEditors</key>
	<array/>
	<key>PerspectiveWidths</key>
	<array>
		<integer>1398</integer>
		<integer>1398</integer>
	</array>
	<key>Perspectives</key>
	<array>
		<dict>
			<key>ChosenToolbarItems</key>
			<array>
				<string>XCToolbarPerspectiveControl</string>
				<string>NSToolbarSeparatorItem</string>
				<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>WindowOfProject</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>
							<string>1C77FABC04509CD000000102</string>
						</array>
						<key>PBXProjectModuleGUID</key>
						<string>1CA23ED40692098700951B8B</string>
						<key>PBXProjectModuleLabel</key>
						<string>Files</string>
						<key>PBXProjectStructureProvided</key>
						<string>yes</string>
						<key>PBXSmartGroupTreeModuleColumnData</key>
						<dict>
							<key>PBXSmartGroupTreeModuleColumnWidthsKey</key>
							<array>
								<real>174</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>080E96DDFE201D6D7F000001</string>
								<string>29B97315FDCFA39411CA2CEA</string>
								<string>29B97317FDCFA39411CA2CEA</string>
								<string>29B97323FDCFA39411CA2CEA</string>
								<string>19C28FACFE9D520D11CA2CBB</string>
								<string>1C37FBAC04509CD000000102</string>
								<string>1C77FABC04509CD000000102</string>
							</array>
							<key>PBXSmartGroupTreeModuleOutlineStateSelectionKey</key>
							<array>
								<array>
									<integer>31</integer>
									<integer>30</integer>
								</array>
							</array>
							<key>PBXSmartGroupTreeModuleOutlineStateVisibleRectKey</key>
							<string>{{0, 4}, {174, 706}}</string>
						</dict>
						<key>PBXTopSmartGroupGIDs</key>
						<array/>
						<key>XCIncludePerspectivesSwitch</key>
						<false/>
					</dict>
					<key>GeometryConfiguration</key>
					<dict>
						<key>Frame</key>
						<string>{{0, 0}, {191, 724}}</string>
						<key>GroupTreeTableConfiguration</key>
						<array>
							<string>MainColumn</string>
							<real>174</real>
						</array>
						<key>RubberWindowFrame</key>
						<string>27 113 1398 765 0 0 1440 878 </string>
					</dict>
					<key>Module</key>
					<string>PBXSmartGroupTreeModule</string>
					<key>Proportion</key>
					<string>191pt</string>
				</dict>
				<dict>
					<key>Dock</key>
					<array>
						<dict>
							<key>ContentConfiguration</key>
							<dict>
								<key>PBXProjectModuleGUID</key>
								<string>241B1E501051501300926F2B</string>
								<key>PBXProjectModuleLabel</key>
								<string>OCRDisplayViewController.mm</string>
								<key>PBXSplitModuleInNavigatorKey</key>
								<dict>
									<key>Split0</key>
									<dict>
										<key>PBXProjectModuleGUID</key>
										<string>241B1E511051501300926F2B</string>
										<key>PBXProjectModuleLabel</key>
										<string>OCRDisplayViewController.mm</string>
										<key>_historyCapacity</key>
										<integer>0</integer>
										<key>bookmark</key>
										<string>241CDC6910CC90D0008EA1FB</string>
										<key>history</key>
										<array>
											<string>24C7F7961052C50900896218</string>
											<string>24C7F7991052C50900896218</string>
											<string>24A3169B105DDAFA0051853C</string>
											<string>24BA10C410C87C9500016CED</string>
											<string>24BA10CE10C87F7D00016CED</string>
											<string>24BA112710C8878600016CED</string>
											<string>240C6F8A10C8DD5D00CD7AD1</string>
											<string>240C6FF710C8E91200CD7AD1</string>
											<string>24F2866B10C9BBC0004BB5CA</string>
											<string>24F2866C10C9BBC0004BB5CA</string>
											<string>24F2867A10C9BC02004BB5CA</string>
											<string>24F2870310C9C810004BB5CA</string>
											<string>24F2870410C9C810004BB5CA</string>
											<string>2463449210CC286F00011876</string>
											<string>2463453F10CC35CA00011876</string>
											<string>2463455B10CC37F100011876</string>
											<string>2463455C10CC37F100011876</string>
											<string>241CDBE910CC7F07008EA1FB</string>
										</array>
									</dict>
									<key>SplitCount</key>
									<string>1</string>
								</dict>
								<key>StatusBarVisibility</key>
								<true/>
								<key>XCSharingToken</key>
								<string>com.apple.Xcode.CommonNavigatorGroupSharingToken</string>
							</dict>
							<key>GeometryConfiguration</key>
							<dict>
								<key>Frame</key>
								<string>{{0, 0}, {1202, 401}}</string>
								<key>RubberWindowFrame</key>
								<string>27 113 1398 765 0 0 1440 878 </string>
							</dict>
							<key>Module</key>
							<string>PBXNavigatorGroup</string>
							<key>Proportion</key>
							<string>401pt</string>
						</dict>
						<dict>
							<key>Proportion</key>
							<string>318pt</string>
							<key>Tabs</key>
							<array>
								<dict>
									<key>ContentConfiguration</key>
									<dict>
										<key>PBXProjectModuleGUID</key>
										<string>1CA23EDF0692099D00951B8B</string>
										<key>PBXProjectModuleLabel</key>
										<string>Detail</string>
									</dict>
									<key>GeometryConfiguration</key>
									<dict>
										<key>Frame</key>
										<string>{{10, 27}, {1202, 291}}</string>
									</dict>
									<key>Module</key>
									<string>XCDetailModule</string>
								</dict>
								<dict>
									<key>ContentConfiguration</key>
									<dict>
										<key>PBXProjectModuleGUID</key>
										<string>1CA23EE00692099D00951B8B</string>
										<key>PBXProjectModuleLabel</key>
										<string>Project Find</string>
									</dict>
									<key>GeometryConfiguration</key>
									<dict>
										<key>Frame</key>
										<string>{{10, 27}, {997, 190}}</string>
									</dict>
									<key>Module</key>
									<string>PBXProjectFindModule</string>
								</dict>
								<dict>
									<key>ContentConfiguration</key>
									<dict>
										<key>PBXCVSModuleFilterTypeKey</key>
										<integer>1032</integer>
										<key>PBXProjectModuleGUID</key>
										<string>1CA23EE10692099D00951B8B</string>
										<key>PBXProjectModuleLabel</key>
										<string>SCM Results</string>
									</dict>
									<key>GeometryConfiguration</key>
									<dict>
										<key>Frame</key>
										<string>{{10, 31}, {603, 297}}</string>
									</dict>
									<key>Module</key>
									<string>PBXCVSModule</string>
								</dict>
								<dict>
									<key>ContentConfiguration</key>
									<dict>
										<key>PBXProjectModuleGUID</key>
										<string>XCMainBuildResultsModuleGUID</string>
										<key>PBXProjectModuleLabel</key>
										<string>Build Results</string>
										<key>XCBuildResultsTrigger_Collapse</key>
										<integer>1022</integer>
										<key>XCBuildResultsTrigger_Open</key>
										<integer>1012</integer>
									</dict>
									<key>GeometryConfiguration</key>
									<dict>
										<key>Frame</key>
										<string>{{10, 27}, {1202, 291}}</string>
										<key>RubberWindowFrame</key>
										<string>27 113 1398 765 0 0 1440 878 </string>
									</dict>
									<key>Module</key>
									<string>PBXBuildResultsModule</string>
								</dict>
							</array>
						</dict>
					</array>
					<key>Proportion</key>
					<string>1202pt</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>XCDockableTabModule</string>
				<string>XCDetailModule</string>
				<string>PBXProjectFindModule</string>
				<string>PBXCVSModule</string>
				<string>PBXBuildResultsModule</string>
			</array>
			<key>TableOfContents</key>
			<array>
				<string>241CDBD910CC7ED5008EA1FB</string>
				<string>1CA23ED40692098700951B8B</string>
				<string>241CDBDA10CC7ED5008EA1FB</string>
				<string>241B1E501051501300926F2B</string>
				<string>241CDBDB10CC7ED5008EA1FB</string>
				<string>1CA23EDF0692099D00951B8B</string>
				<string>1CA23EE00692099D00951B8B</string>
				<string>1CA23EE10692099D00951B8B</string>
				<string>XCMainBuildResultsModuleGUID</string>
			</array>
			<key>ToolbarConfigUserDefaultsMinorVersion</key>
			<string>2</string>
			<key>ToolbarConfiguration</key>
			<string>xcode.toolbar.config.defaultV3</string>
		</dict>
		<dict>
			<key>ChosenToolbarItems</key>
			<array>
				<string>XCToolbarPerspectiveControl</string>
				<string>NSToolbarSeparatorItem</string>
				<string>active-combo-popup</string>
				<string>NSToolbarFlexibleSpaceItem</string>
				<string>debugger-enable-breakpoints</string>
				<string>build-and-go</string>
				<string>com.apple.ide.PBXToolbarStopButton</string>
				<string>debugger-restart-executable</string>
				<string>debugger-pause</string>
				<string>debugger-step-over</string>
				<string>debugger-step-into</string>
				<string>debugger-step-out</string>
				<string>NSToolbarFlexibleSpaceItem</string>
				<string>servicesModulebreakpoints</string>
				<string>debugger-show-console-window</string>
			</array>
			<key>ControllerClassBaseName</key>
			<string>PBXDebugSessionModule</string>
			<key>IconName</key>
			<string>DebugTabIcon</string>
			<key>Identifier</key>
			<string>perspective.debug</string>
			<key>IsVertical</key>
			<true/>
			<key>Layout</key>
			<array>
				<dict>
					<key>ContentConfiguration</key>
					<dict>
						<key>PBXProjectModuleGUID</key>
						<string>1CCC7628064C1048000F2A68</string>
						<key>PBXProjectModuleLabel</key>
						<string>Debugger Console</string>
					</dict>
					<key>GeometryConfiguration</key>
					<dict>
						<key>Frame</key>
						<string>{{0, 0}, {1398, 236}}</string>
					</dict>
					<key>Module</key>
					<string>PBXDebugCLIModule</string>
					<key>Proportion</key>
					<string>236pt</string>
				</dict>
				<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}, {699, 212}}</string>
									<string>{{699, 0}, {699, 212}}</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}, {1398, 212}}</string>
									<string>{{0, 212}, {1398, 271}}</string>
								</array>
							</dict>
						</dict>
						<key>LauncherConfigVersion</key>
						<string>8</string>
						<key>PBXProjectModuleGUID</key>
						<string>1CCC7629064C1048000F2A68</string>
						<key>PBXProjectModuleLabel</key>
						<string>Debug</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, 241}, {1398, 483}}</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>469</real>
							</array>
							<key>Frame</key>
							<string>{{699, 0}, {699, 212}}</string>
						</dict>
					</dict>
					<key>Module</key>
					<string>PBXDebugSessionModule</string>
					<key>Proportion</key>
					<string>483pt</string>
				</dict>
			</array>
			<key>Name</key>
			<string>Debug</string>
			<key>ServiceClasses</key>
			<array>
				<string>XCModuleDock</string>
				<string>PBXDebugCLIModule</string>
				<string>PBXDebugSessionModule</string>
				<string>PBXDebugProcessAndThreadModule</string>
				<string>PBXDebugProcessViewModule</string>
				<string>PBXDebugThreadViewModule</string>
				<string>PBXDebugStackFrameViewModule</string>
				<string>PBXNavigatorGroup</string>
			</array>
			<key>TableOfContents</key>
			<array>
				<string>241CDBDC10CC7ED5008EA1FB</string>
				<string>1CCC7628064C1048000F2A68</string>
				<string>1CCC7629064C1048000F2A68</string>
				<string>241CDBDD10CC7ED5008EA1FB</string>
				<string>241CDBDE10CC7ED5008EA1FB</string>
				<string>241CDBDF10CC7ED5008EA1FB</string>
				<string>241CDBE010CC7ED5008EA1FB</string>
				<string>241CDBE110CC7ED5008EA1FB</string>
			</array>
			<key>ToolbarConfigUserDefaultsMinorVersion</key>
			<string>2</string>
			<key>ToolbarConfiguration</key>
			<string>xcode.toolbar.config.debugV3</string>
		</dict>
	</array>
	<key>PerspectivesBarVisible</key>
	<true/>
	<key>ShelfIsVisible</key>
	<false/>
	<key>SourceDescription</key>
	<string>file at '/Developer/Library/PrivateFrameworks/DevToolsInterface.framework/Resources/XCPerspectivesSpecification.xcperspec'</string>
	<key>StatusbarIsVisible</key>
	<true/>
	<key>TimeStamp</key>
	<real>281841872.11060297</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></string>
	<key>WindowJustification</key>
	<integer>5</integer>
	<key>WindowOrderList</key>
	<array>
		<string>/Users/rcarlsen/Documents/_software_dev/_iphone/OCR/OCR.xcodeproj</string>
	</array>
	<key>WindowString</key>
	<string>27 113 1398 765 0 0 1440 878 </string>
	<key>WindowToolsV3</key>
	<array>
		<dict>
			<key>Identifier</key>
			<string>windowTool.debugger</string>
			<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}, {317, 164}}</string>
											<string>{{317, 0}, {377, 164}}</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, 164}}</string>
											<string>{{0, 164}, {694, 216}}</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>DebugConsoleDrawerSize</key>
								<string>{100, 120}</string>
								<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, 380}}</string>
								<key>RubberWindowFrame</key>
								<string>321 238 694 422 0 0 1440 878 </string>
							</dict>
							<key>Module</key>
							<string>PBXDebugSessionModule</string>
							<key>Proportion</key>
							<string>100%</string>
						</dict>
					</array>
					<key>Proportion</key>
					<string>100%</string>
				</dict>
			</array>
			<key>Name</key>
			<string>Debugger</string>
			<key>ServiceClasses</key>
			<array>
				<string>PBXDebugSessionModule</string>
			</array>
			<key>StatusbarIsVisible</key>
			<integer>1</integer>
			<key>TableOfContents</key>
			<array>
				<string>1CD10A99069EF8BA00B06720</string>
				<string>1C0AD2AB069F1E9B00FABCE6</string>
				<string>1C162984064C10D400B95A72</string>
				<string>1C0AD2AC069F1E9B00FABCE6</string>
			</array>
			<key>ToolbarConfiguration</key>
			<string>xcode.toolbar.config.debugV3</string>
			<key>WindowString</key>
			<string>321 238 694 422 0 0 1440 878 </string>
			<key>WindowToolGUID</key>
			<string>1CD10A99069EF8BA00B06720</string>
			<key>WindowToolIsVisible</key>
			<integer>0</integer>
		</dict>
		<dict>
			<key>Identifier</key>
			<string>windowTool.build</string>
			<key>Layout</key>
			<array>
				<dict>
					<key>Dock</key>
					<array>
						<dict>
							<key>ContentConfiguration</key>
							<dict>
								<key>PBXProjectModuleGUID</key>
								<string>1CD0528F0623707200166675</string>
								<key>PBXProjectModuleLabel</key>
								<string>&lt;No Editor&gt;</string>
								<key>PBXSplitModuleInNavigatorKey</key>
								<dict>
									<key>Split0</key>
									<dict>
										<key>PBXProjectModuleGUID</key>
										<string>1CD052900623707200166675</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}, {500, 215}}</string>
								<key>RubberWindowFrame</key>
								<string>192 257 500 500 0 0 1280 1002 </string>
							</dict>
							<key>Module</key>
							<string>PBXNavigatorGroup</string>
							<key>Proportion</key>
							<string>218pt</string>
						</dict>
						<dict>
							<key>BecomeActive</key>
							<integer>1</integer>
							<key>ContentConfiguration</key>
							<dict>
								<key>PBXProjectModuleGUID</key>
								<string>XCMainBuildResultsModuleGUID</string>
								<key>PBXProjectModuleLabel</key>
								<string>Build Results</string>
							</dict>
							<key>GeometryConfiguration</key>
							<dict>
								<key>Frame</key>
								<string>{{0, 222}, {500, 236}}</string>
								<key>RubberWindowFrame</key>
								<string>192 257 500 500 0 0 1280 1002 </string>
							</dict>
							<key>Module</key>
							<string>PBXBuildResultsModule</string>
							<key>Proportion</key>
							<string>236pt</string>
						</dict>
					</array>
					<key>Proportion</key>
					<string>458pt</string>
				</dict>
			</array>
			<key>Name</key>
			<string>Build Results</string>
			<key>ServiceClasses</key>
			<array>
				<string>PBXBuildResultsModule</string>
			</array>
			<key>StatusbarIsVisible</key>
			<integer>1</integer>
			<key>TableOfContents</key>
			<array>
				<string>1C78EAA5065D492600B07095</string>
				<string>1C78EAA6065D492600B07095</string>
				<string>1CD0528F0623707200166675</string>
				<string>XCMainBuildResultsModuleGUID</string>
			</array>
			<key>ToolbarConfiguration</key>
			<string>xcode.toolbar.config.buildV3</string>
			<key>WindowString</key>
			<string>192 257 500 500 0 0 1280 1002 </string>
		</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>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>FirstTimeWindowDisplayed</key>
			<false/>
			<key>Identifier</key>
			<string>windowTool.debuggerConsole</string>
			<key>IsVertical</key>
			<true/>
			<key>Layout</key>
			<array>
				<dict>
					<key>Dock</key>
					<array>
						<dict>
							<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}, {440, 359}}</string>
								<key>RubberWindowFrame</key>
								<string>38 431 440 400 0 0 1440 878 </string>
							</dict>
							<key>Module</key>
							<string>PBXDebugCLIModule</string>
							<key>Proportion</key>
							<string>359pt</string>
						</dict>
					</array>
					<key>Proportion</key>
					<string>359pt</string>
				</dict>
			</array>
			<key>Name</key>
			<string>Debugger Console</string>
			<key>ServiceClasses</key>
			<array>
				<string>PBXDebugCLIModule</string>
			</array>
			<key>StatusbarIsVisible</key>
			<true/>
			<key>TableOfContents</key>
			<array>
				<string>1C530D5B069F1CE1000CFCEE</string>
				<string>24CE087110C956BD0055E8BB</string>
				<string>1C78EAAC065D492600B07095</string>
			</array>
			<key>ToolbarConfiguration</key>
			<string>xcode.toolbar.config.consoleV3</string>
			<key>WindowString</key>
			<string>38 431 440 400 0 0 1440 878 </string>
			<key>WindowToolGUID</key>
			<string>1C530D5B069F1CE1000CFCEE</string>
			<key>WindowToolIsVisible</key>
			<false/>
		</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.09500122070312</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.scmV3</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>166pt</string>
						</dict>
					</array>
					<key>Proportion</key>
					<string>166pt</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}, {369, 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}, {616, 353}}</string>
								<key>MembersFrame</key>
								<string>{{0, 105}, {369, 395}}</string>
								<key>MembersTreeTableConfiguration</key>
								<array>
									<string>PBXMemberTypeIconColumnIdentifier</string>
									<real>22</real>
									<string>PBXMemberNameColumnIdentifier</string>
									<real>216</real>
									<string>PBXMemberTypeColumnIdentifier</string>
									<real>94</real>
									<string>PBXMemberBookColumnIdentifier</string>
									<real>22</real>
								</array>
								<key>PBXModuleWindowStatusBarHidden2</key>
								<integer>1</integer>
								<key>RubberWindowFrame</key>
								<string>597 125 616 374 0 0 1280 1002 </string>
							</dict>
							<key>Module</key>
							<string>PBXClassBrowserModule</string>
							<key>Proportion</key>
							<string>354pt</string>
						</dict>
					</array>
					<key>Proportion</key>
					<string>354pt</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>1C78EABA065D492600B07095</string>
				<string>1C78EABB065D492600B07095</string>
				<string>1CA6456E063B45B4001379D8</string>
			</array>
			<key>ToolbarConfiguration</key>
			<string>xcode.toolbar.config.classbrowser</string>
			<key>WindowString</key>
			<string>597 125 616 374 0 0 1280 1002 </string>
		</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>


================================================
FILE: OCRDisplayViewController.xib
================================================
<?xml version="1.0" encoding="UTF-8"?>
<archive type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="7.10">
	<data>
		<int key="IBDocument.SystemTarget">768</int>
		<string key="IBDocument.SystemVersion">10B504</string>
		<string key="IBDocument.InterfaceBuilderVersion">740</string>
		<string key="IBDocument.AppKitVersion">1038.2</string>
		<string key="IBDocument.HIToolboxVersion">437.00</string>
		<object class="NSMutableDictionary" key="IBDocument.PluginVersions">
			<string key="NS.key.0">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
			<string key="NS.object.0">62</string>
		</object>
		<object class="NSMutableArray" key="IBDocument.EditedObjectIDs">
			<bool key="EncodedWithXMLCoder">YES</bool>
			<integer value="1"/>
		</object>
		<object class="NSArray" key="IBDocument.PluginDependencies">
			<bool key="EncodedWithXMLCoder">YES</bool>
			<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
		</object>
		<object class="NSMutableDictionary" key="IBDocument.Metadata">
			<bool key="EncodedWithXMLCoder">YES</bool>
			<object class="NSArray" key="dict.sortedKeys" id="0">
				<bool key="EncodedWithXMLCoder">YES</bool>
			</object>
			<object class="NSMutableArray" key="dict.values">
				<bool key="EncodedWithXMLCoder">YES</bool>
			</object>
		</object>
		<object class="NSMutableArray" key="IBDocument.RootObjects" id="1000">
			<bool key="EncodedWithXMLCoder">YES</bool>
			<object class="IBProxyObject" id="372490531">
				<string key="IBProxiedObjectIdentifier">IBFilesOwner</string>
			</object>
			<object class="IBProxyObject" id="975951072">
				<string key="IBProxiedObjectIdentifier">IBFirstResponder</string>
			</object>
			<object class="IBUIView" id="191373211">
				<reference key="NSNextResponder"/>
				<int key="NSvFlags">292</int>
				<object class="NSMutableArray" key="NSSubviews">
					<bool key="EncodedWithXMLCoder">YES</bool>
					<object class="IBUITextView" id="42802488">
						<reference key="NSNextResponder" ref="191373211"/>
						<int key="NSvFlags">274</int>
						<string key="NSFrame">{{0, 76}, {320, 340}}</string>
						<reference key="NSSuperview" ref="191373211"/>
						<object class="NSColor" key="IBUIBackgroundColor" id="169378813">
							<int key="NSColorSpace">3</int>
							<bytes key="NSWhite">MCAwAA</bytes>
						</object>
						<bool key="IBUIOpaque">NO</bool>
						<bool key="IBUIClipsSubviews">YES</bool>
						<bool key="IBUIMultipleTouchEnabled">YES</bool>
						<bool key="IBUIShowsHorizontalScrollIndicator">NO</bool>
						<bool key="IBUIDelaysContentTouches">NO</bool>
						<bool key="IBUICanCancelContentTouches">NO</bool>
						<bool key="IBUIBouncesZoom">NO</bool>
						<bool key="IBUIEditable">NO</bool>
						<string key="IBUIText">Lorem ipsum dolor sit er elit lamet, consectetaur cillium adipisicing pecu, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum. Nam liber te conscient to factor tum poen legum odioque civiuda.</string>
						<object class="IBUITextInputTraits" key="IBUITextInputTraits">
							<int key="IBUIAutocapitalizationType">2</int>
							<int key="IBUIAutocorrectionType">2</int>
							<int key="IBUIReturnKeyType">9</int>
						</object>
						<int key="IBUIDataDetectorTypes">3</int>
					</object>
					<object class="IBUIToolbar" id="505782876">
						<reference key="NSNextResponder" ref="191373211"/>
						<int key="NSvFlags">266</int>
						<string key="NSFrame">{{0, 416}, {320, 44}}</string>
						<reference key="NSSuperview" ref="191373211"/>
						<bool key="IBUIOpaque">NO</bool>
						<bool key="IBUIClearsContextBeforeDrawing">NO</bool>
						<int key="IBUIBarStyle">2</int>
						<object class="NSMutableArray" key="IBUIItems">
							<bool key="EncodedWithXMLCoder">YES</bool>
							<object class="IBUIBarButtonItem" id="780825115">
								<int key="IBUIStyle">1</int>
								<reference key="IBUIToolbar" ref="505782876"/>
								<int key="IBUISystemItemIdentifier">15</int>
							</object>
							<object class="IBUIBarButtonItem" id="407915375">
								<reference key="IBUIToolbar" ref="505782876"/>
								<int key="IBUISystemItemIdentifier">5</int>
							</object>
							<object class="IBUIBarButtonItem" id="676341579">
								<int key="IBUIStyle">1</int>
								<reference key="IBUIToolbar" ref="505782876"/>
								<int key="IBUISystemItemIdentifier">9</int>
							</object>
						</object>
					</object>
					<object class="IBUIImageView" id="1060362418">
						<reference key="NSNextResponder" ref="191373211"/>
						<int key="NSvFlags">290</int>
						<string key="NSFrame">{{0, 68}, {348, 10}}</string>
						<reference key="NSSuperview" ref="191373211"/>
						<bool key="IBUIOpaque">NO</bool>
						<bool key="IBUIClearsContextBeforeDrawing">NO</bool>
						<float key="IBUIAlpha">0.78169012069702148</float>
						<bool key="IBUIUserInteractionEnabled">NO</bool>
						<string key="IBUIContentStretch">{{0, 1}, {1, 1}}</string>
						<object class="NSCustomResource" key="IBUIImage">
							<string key="NSClassName">NSImage</string>
							<string key="NSResourceName">shadow.png</string>
						</object>
					</object>
					<object class="IBUIView" id="930318828">
						<reference key="NSNextResponder" ref="191373211"/>
						<int key="NSvFlags">292</int>
						<object class="NSMutableArray" key="NSSubviews">
							<bool key="EncodedWithXMLCoder">YES</bool>
							<object class="IBUILabel" id="793421420">
								<reference key="NSNextResponder" ref="930318828"/>
								<int key="NSvFlags">292</int>
								<string key="NSFrame">{{8, 8}, {242, 48}}</string>
								<reference key="NSSuperview" ref="930318828"/>
								<reference key="IBUIBackgroundColor" ref="169378813"/>
								<bool key="IBUIOpaque">NO</bool>
								<bool key="IBUIClipsSubviews">YES</bool>
								<bool key="IBUIUserInteractionEnabled">NO</bool>
								<string key="IBUIText">iPhone tesseract-ocr</string>
								<object class="NSFont" key="IBUIFont">
									<string key="NSName">Helvetica-Bold</string>
									<double key="NSSize">18</double>
									<int key="NSfFlags">16</int>
								</object>
								<object class="NSColor" key="IBUITextColor">
									<int key="NSColorSpace">1</int>
									<bytes key="NSRGB">MCAwIDAAA</bytes>
								</object>
								<nil key="IBUIHighlightedColor"/>
								<int key="IBUIBaselineAdjustment">1</int>
								<float key="IBUIMinimumFontSize">10</float>
							</object>
							<object class="IBUIImageView" id="104911380">
								<reference key="NSNextResponder" ref="930318828"/>
								<int key="NSvFlags">292</int>
								<string key="NSFrame">{{258, 8}, {52, 52}}</string>
								<reference key="NSSuperview" ref="930318828"/>
								<object class="NSColor" key="IBUIBackgroundColor">
									<int key="NSColorSpace">3</int>
									<bytes key="NSWhite">MCAwLjEAA</bytes>
								</object>
								<bool key="IBUIOpaque">NO</bool>
								<bool key="IBUIClipsSubviews">YES</bool>
								<bool key="IBUIClearsContextBeforeDrawing">NO</bool>
								<int key="IBUIContentMode">1</int>
								<bool key="IBUIUserInteractionEnabled">NO</bool>
							</object>
						</object>
						<string key="NSFrameSize">{320, 68}</string>
						<reference key="NSSuperview" ref="191373211"/>
						<object class="NSColor" key="IBUIBackgroundColor">
							<int key="NSColorSpace">3</int>
							<bytes key="NSWhite">MC44NzIyNjI3NzM3AA</bytes>
						</object>
						<bool key="IBUIClearsContextBeforeDrawing">NO</bool>
					</object>
				</object>
				<string key="NSFrameSize">{320, 460}</string>
				<reference key="NSSuperview"/>
				<object class="NSColor" key="IBUIBackgroundColor">
					<int key="NSColorSpace">1</int>
					<bytes key="NSRGB">MC45Njc3MTk1NTQ5IDAuOTg0NDg4MTI5NiAwLjk4NTc5NDQyNQA</bytes>
				</object>
				<object class="IBUISimulatedStatusBarMetrics" key="IBUISimulatedStatusBarMetrics"/>
			</object>
		</object>
		<object class="IBObjectContainer" key="IBDocument.Objects">
			<object class="NSMutableArray" key="connectionRecords">
				<bool key="EncodedWithXMLCoder">YES</bool>
				<object class="IBConnectionRecord">
					<object class="IBCocoaTouchOutletConnection" key="connection">
						<string key="label">view</string>
						<reference key="source" ref="372490531"/>
						<reference key="destination" ref="191373211"/>
					</object>
					<int key="connectionID">3</int>
				</object>
				<object class="IBConnectionRecord">
					<object class="IBCocoaTouchOutletConnection" key="connection">
						<string key="label">outputView</string>
						<reference key="source" ref="372490531"/>
						<reference key="destination" ref="42802488"/>
					</object>
					<int key="connectionID">7</int>
				</object>
				<object class="IBConnectionRecord">
					<object class="IBCocoaTouchOutletConnection" key="connection">
						<string key="label">cameraButton</string>
						<reference key="source" ref="372490531"/>
						<reference key="destination" ref="780825115"/>
					</object>
					<int key="connectionID">8</int>
				</object>
				<object class="IBConnectionRecord">
					<object class="IBCocoaTouchEventConnection" key="connection">
						<string key="label">selectImage:</string>
						<reference key="source" ref="780825115"/>
						<reference key="destination" ref="372490531"/>
					</object>
					<int key="connectionID">9</int>
				</object>
				<object class="IBConnectionRecord">
					<object class="IBCocoaTouchEventConnection" key="connection">
						<string key="label">displayComposerSheet</string>
						<reference key="source" ref="676341579"/>
						<reference key="destination" ref="372490531"/>
					</object>
					<int key="connectionID">12</int>
				</object>
				<object class="IBConnectionRecord">
					<object class="IBCocoaTouchOutletConnection" key="connection">
						<string key="label">thumbImageView</string>
						<reference key="source" ref="372490531"/>
						<reference key="destination" ref="104911380"/>
					</object>
					<int key="connectionID">16</int>
				</object>
				<object class="IBConnectionRecord">
					<object class="IBCocoaTouchOutletConnection" key="connection">
						<string key="label">statusLabel</string>
						<reference key="source" ref="372490531"/>
						<reference key="destination" ref="793421420"/>
					</object>
					<int key="connectionID">17</int>
				</object>
			</object>
			<object class="IBMutableOrderedSet" key="objectRecords">
				<object class="NSArray" key="orderedObjects">
					<bool key="EncodedWithXMLCoder">YES</bool>
					<object class="IBObjectRecord">
						<int key="objectID">0</int>
						<reference key="object" ref="0"/>
						<reference key="children" ref="1000"/>
						<nil key="parent"/>
					</object>
					<object class="IBObjectRecord">
						<int key="objectID">1</int>
						<reference key="object" ref="191373211"/>
						<object class="NSMutableArray" key="children">
							<bool key="EncodedWithXMLCoder">YES</bool>
							<reference ref="42802488"/>
							<reference ref="505782876"/>
							<reference ref="1060362418"/>
							<reference ref="930318828"/>
						</object>
						<reference key="parent" ref="0"/>
					</object>
					<object class="IBObjectRecord">
						<int key="objectID">-1</int>
						<reference key="object" ref="372490531"/>
						<reference key="parent" ref="0"/>
						<string key="objectName">File's Owner</string>
					</object>
					<object class="IBObjectRecord">
						<int key="objectID">-2</int>
						<reference key="object" ref="975951072"/>
						<reference key="parent" ref="0"/>
					</object>
					<object class="IBObjectRecord">
						<int key="objectID">4</int>
						<reference key="object" ref="42802488"/>
						<reference key="parent" ref="191373211"/>
					</object>
					<object class="IBObjectRecord">
						<int key="objectID">5</int>
						<reference key="object" ref="505782876"/>
						<object class="NSMutableArray" key="children">
							<bool key="EncodedWithXMLCoder">YES</bool>
							<reference ref="780825115"/>
							<reference ref="407915375"/>
							<reference ref="676341579"/>
						</object>
						<reference key="parent" ref="191373211"/>
					</object>
					<object class="IBObjectRecord">
						<int key="objectID">6</int>
						<reference key="object" ref="780825115"/>
						<reference key="parent" ref="505782876"/>
					</object>
					<object class="IBObjectRecord">
						<int key="objectID">11</int>
						<reference key="object" ref="407915375"/>
						<reference key="parent" ref="505782876"/>
					</object>
					<object class="IBObjectRecord">
						<int key="objectID">10</int>
						<reference key="object" ref="676341579"/>
						<reference key="parent" ref="505782876"/>
					</object>
					<object class="IBObjectRecord">
						<int key="objectID">15</int>
						<reference key="object" ref="930318828"/>
						<object class="NSMutableArray" key="children">
							<bool key="EncodedWithXMLCoder">YES</bool>
							<reference ref="793421420"/>
							<reference ref="104911380"/>
						</object>
						<reference key="parent" ref="191373211"/>
					</object>
					<object class="IBObjectRecord">
						<int key="objectID">14</int>
						<reference key="object" ref="793421420"/>
						<reference key="parent" ref="930318828"/>
					</object>
					<object class="IBObjectRecord">
						<int key="objectID">18</int>
						<reference key="object" ref="1060362418"/>
						<reference key="parent" ref="191373211"/>
					</object>
					<object class="IBObjectRecord">
						<int key="objectID">13</int>
						<reference key="object" ref="104911380"/>
						<reference key="parent" ref="930318828"/>
					</object>
				</object>
			</object>
			<object class="NSMutableDictionary" key="flattenedProperties">
				<bool key="EncodedWithXMLCoder">YES</bool>
				<object class="NSArray" key="dict.sortedKeys">
					<bool key="EncodedWithXMLCoder">YES</bool>
					<string>-1.CustomClassName</string>
					<string>-2.CustomClassName</string>
					<string>1.IBEditorWindowLastContentRect</string>
					<string>1.IBPluginDependency</string>
					<string>10.IBPluginDependency</string>
					<string>11.IBPluginDependency</string>
					<string>13.CustomClassName</string>
					<string>13.IBPluginDependency</string>
					<string>14.IBPluginDependency</string>
					<string>15.IBPluginDependency</string>
					<string>18.IBPluginDependency</string>
					<string>4.IBPluginDependency</string>
					<string>5.IBPluginDependency</string>
					<string>6.IBPluginDependency</string>
				</object>
				<object class="NSMutableArray" key="dict.values">
					<bool key="EncodedWithXMLCoder">YES</bool>
					<string>OCRDisplayViewController</string>
					<string>UIResponder</string>
					<string>{{487, 376}, {320, 480}}</string>
					<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
					<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
					<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
					<string>ZoomableImage</string>
					<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
					<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
					<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
					<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
					<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
					<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
					<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
				</object>
			</object>
			<object class="NSMutableDictionary" key="unlocalizedProperties">
				<bool key="EncodedWithXMLCoder">YES</bool>
				<reference key="dict.sortedKeys" ref="0"/>
				<object class="NSMutableArray" key="dict.values">
					<bool key="EncodedWithXMLCoder">YES</bool>
				</object>
			</object>
			<nil key="activeLocalization"/>
			<object class="NSMutableDictionary" key="localizations">
				<bool key="EncodedWithXMLCoder">YES</bool>
				<reference key="dict.sortedKeys" ref="0"/>
				<object class="NSMutableArray" key="dict.values">
					<bool key="EncodedWithXMLCoder">YES</bool>
				</object>
			</object>
			<nil key="sourceID"/>
			<int key="maxID">18</int>
		</object>
		<object class="IBClassDescriber" key="IBDocument.Classes">
			<object class="NSMutableArray" key="referencedPartialClassDescriptions">
				<bool key="EncodedWithXMLCoder">YES</bool>
				<object class="IBPartialClassDescription">
					<string key="className">OCRDisplayViewController</string>
					<string key="superclassName">UIViewController</string>
					<object class="NSMutableDictionary" key="actions">
						<bool key="EncodedWithXMLCoder">YES</bool>
						<object class="NSArray" key="dict.sortedKeys">
							<bool key="EncodedWithXMLCoder">YES</bool>
							<string>displayComposerSheet</string>
							<string>selectImage:</string>
							<string>zoomThumbnail:</string>
						</object>
						<object class="NSMutableArray" key="dict.values">
							<bool key="EncodedWithXMLCoder">YES</bool>
							<string>id</string>
							<string>id</string>
							<string>id</string>
						</object>
					</object>
					<object class="NSMutableDictionary" key="outlets">
						<bool key="EncodedWithXMLCoder">YES</bool>
						<object class="NSArray" key="dict.sortedKeys">
							<bool key="EncodedWithXMLCoder">YES</bool>
							<string>actionButton</string>
							<string>cameraButton</string>
							<string>outputView</string>
							<string>statusLabel</string>
							<string>thumbImageView</string>
						</object>
						<object class="NSMutableArray" key="dict.values">
							<bool key="EncodedWithXMLCoder">YES</bool>
							<string>UIBarButtonItem</string>
							<string>UIBarButtonItem</string>
							<string>UITextView</string>
							<string>UILabel</string>
							<string>ZoomableImage</string>
						</object>
					</object>
					<object class="IBClassDescriptionSource" key="sourceIdentifier">
						<string key="majorKey">IBProjectSource</string>
						<string key="minorKey">OCRDisplayViewController.h</string>
					</object>
				</object>
				<object class="IBPartialClassDescription">
					<string key="className">ZoomableImage</string>
					<string key="superclassName">UIImageView</string>
					<object class="IBClassDescriptionSource" key="sourceIdentifier">
						<string key="majorKey">IBProjectSource</string>
						<string key="minorKey">Classes/ZoomableImage.h</string>
					</object>
				</object>
			</object>
			<object class="NSMutableArray" key="referencedPartialClassDescriptionsV3.2+">
				<bool key="EncodedWithXMLCoder">YES</bool>
				<object class="IBPartialClassDescription">
					<string key="className">NSObject</string>
					<object class="IBClassDescriptionSource" key="sourceIdentifier">
						<string key="majorKey">IBFrameworkSource</string>
						<string key="minorKey">Foundation.framework/Headers/NSError.h</string>
					</object>
				</object>
				<object class="IBPartialClassDescription">
					<string key="className">NSObject</string>
					<object class="IBClassDescriptionSource" key="sourceIdentifier">
						<string key="majorKey">IBFrameworkSource</string>
						<string key="minorKey">Foundation.framework/Headers/NSFileManager.h</string>
					</object>
				</object>
				<object class="IBPartialClassDescription">
					<string key="className">NSObject</string>
					<object class="IBClassDescriptionSource" key="sourceIdentifier">
						<string key="majorKey">IBFrameworkSource</string>
						<string key="minorKey">Foundation.framework/Headers/NSKeyValueCoding.h</string>
					</object>
				</object>
				<object class="IBPartialClassDescription">
					<string key="className">NSObject</string>
					<object class="IBClassDescriptionSource" key="sourceIdentifier">
						<string key="majorKey">IBFrameworkSource</string>
						<string key="minorKey">Foundation.framework/Headers/NSKeyValueObserving.h</string>
					</object>
				</object>
				<object class="IBPartialClassDescription">
					<string key="className">NSObject</string>
					<object class="IBClassDescriptionSource" key="sourceIdentifier">
						<string key="majorKey">IBFrameworkSource</string>
						<string key="minorKey">Foundation.framework/Headers/NSKeyedArchiver.h</string>
					</object>
				</object>
				<object class="IBPartialClassDescription">
					<string key="className">NSObject</string>
					<object class="IBClassDescriptionSource" key="sourceIdentifier">
						<string key="majorKey">IBFrameworkSource</string>
						<string key="minorKey">Foundation.framework/Headers/NSNetServices.h</string>
					</object>
				</object>
				<object class="IBPartialClassDescription">
					<string key="className">NSObject</string>
					<object class="IBClassDescriptionSource" key="sourceIdentifier">
						<string key="majorKey">IBFrameworkSource</string>
						<string key="minorKey">Foundation.framework/Headers/NSObject.h</string>
					</object>
				</object>
				<object class="IBPartialClassDescription">
					<string key="className">NSObject</string>
					<object class="IBClassDescriptionSource" key="sourceIdentifier">
						<string key="majorKey">IBFrameworkSource</string>
						<string key="minorKey">Foundation.framework/Headers/NSPort.h</string>
					</object>
				</object>
				<object class="IBPartialClassDescription">
					<string key="className">NSObject</string>
					<object class="IBClassDescriptionSource" key="sourceIdentifier">
						<string key="majorKey">IBFrameworkSource</string>
						<string key="minorKey">Foundation.framework/Headers/NSRunLoop.h</string>
					</object>
				</object>
				<object class="IBPartialClassDescription">
					<string key="className">NSObject</string>
					<object class="IBClassDescriptionSource" key="sourceIdentifier">
						<string key="majorKey">IBFrameworkSource</string>
						<string key="minorKey">Foundation.framework/Headers/NSStream.h</string>
					</object>
				</object>
				<object class="IBPartialClassDescription">
					<string key="className">NSObject</string>
					<object class="IBClassDescriptionSource" key="sourceIdentifier">
						<string key="majorKey">IBFrameworkSource</string>
						<string key="minorKey">Foundation.framework/Headers/NSThread.h</string>
					</object>
				</object>
				<object class="IBPartialClassDescription">
					<string key="className">NSObject</string>
					<object class="IBClassDescriptionSource" key="sourceIdentifier">
						<string key="majorKey">IBFrameworkSource</string>
						<string key="minorKey">Foundation.framework/Headers/NSURL.h</string>
					</object>
				</object>
				<object class="IBPartialClassDescription">
					<string key="className">NSObject</string>
					<object class="IBClassDescriptionSource" key="sourceIdentifier">
						<string key="majorKey">IBFrameworkSource</string>
						<string key="minorKey">Foundation.framework/Headers/NSURLConnection.h</string>
					</object>
				</object>
				<object class="IBPartialClassDescription">
					<string key="className">NSObject</string>
					<object class="IBClassDescriptionSource" key="sourceIdentifier">
						<string key="majorKey">IBFrameworkSource</string>
						<string key="minorKey">Foundation.framework/Headers/NSXMLParser.h</string>
					</object>
				</object>
				<object class="IBPartialClassDescription">
					<string key="className">NSObject</string>
					<object class="IBClassDescriptionSource" key="sourceIdentifier">
						<string key="majorKey">IBFrameworkSource</string>
						<string key="minorKey">UIKit.framework/Headers/UIAccessibility.h</string>
					</object>
				</object>
				<object class="IBPartialClassDescription">
					<string key="className">NSObject</string>
					<object class="IBClassDescriptionSource" key="sourceIdentifier">
						<string key="majorKey">IBFrameworkSource</string>
						<string key="minorKey">UIKit.framework/Headers/UINibLoading.h</string>
					</object>
				</object>
				<object class="IBPartialClassDescription">
					<string key="className">NSObject</string>
					<object class="IBClassDescriptionSource" key="sourceIdentifier" id="159273134">
						<string key="majorKey">IBFrameworkSource</string>
						<string key="minorKey">UIKit.framework/Headers/UIResponder.h</string>
					</object>
				</object>
				<object class="IBPartialClassDescription">
					<string key="className">UIBarButtonItem</string>
					<string key="superclassName">UIBarItem</string>
					<object class="IBClassDescriptionSource" key="sourceIdentifier">
						<string key="majorKey">IBFrameworkSource</string>
						<string key="minorKey">UIKit.framework/Headers/UIBarButtonItem.h</string>
					</object>
				</object>
				<object class="IBPartialClassDescription">
					<string key="className">UIBarItem</string>
					<string key="superclassName">NSObject</string>
					<object class="IBClassDescriptionSource" key="sourceIdentifier">
						<string key="majorKey">IBFrameworkSource</string>
						<string key="minorKey">UIKit.framework/Headers/UIBarItem.h</string>
					</object>
				</object>
				<object class="IBPartialClassDescription">
					<string key="className">UIImageView</string>
					<string key="superclassName">UIView</string>
					<object class="IBClassDescriptionSource" key="sourceIdentifier">
						<string key="majorKey">IBFrameworkSource</string>
						<string key="minorKey">UIKit.framework/Headers/UIImageView.h</string>
					</object>
				</object>
				<object class="IBPartialClassDescription">
					<string key="className">UILabel</string>
					<string key="superclassName">UIView</string>
					<object class="IBClassDescriptionSource" key="sourceIdentifier">
						<string key="majorKey">IBFrameworkSource</string>
						<string key="minorKey">UIKit.framework/Headers/UILabel.h</string>
					</object>
				</object>
				<object class="IBPartialClassDescription">
					<string key="className">UIResponder</string>
					<string key="superclassName">NSObject</string>
					<reference key="sourceIdentifier" ref="159273134"/>
				</object>
				<object class="IBPartialClassDescription">
					<string key="className">UIScrollView</string>
					<string key="superclassName">UIView</string>
					<object class="IBClassDescriptionSource" key="sourceIdentifier">
						<string key="majorKey">IBFrameworkSource</string>
						<string key="minorKey">UIKit.framework/Headers/UIScrollView.h</string>
					</object>
				</object>
				<object class="IBPartialClassDescription">
					<string key="className">UISearchBar</string>
					<string key="superclassName">UIView</string>
					<object class="IBClassDescriptionSource" key="sourceIdentifier">
						<string key="majorKey">IBFrameworkSource</string>
						<string key="minorKey">UIKit.framework/Headers/UISearchBar.h</string>
					</object>
				</object>
				<object class="IBPartialClassDescription">
					<string key="className">UISearchDisplayController</string>
					<string key="superclassName">NSObject</string>
					<object class="IBClassDescriptionSource" key="sourceIdentifier">
						<string key="majorKey">IBFrameworkSource</string>
						<string key="minorKey">UIKit.framework/Headers/UISearchDisplayController.h</string>
					</object>
				</object>
				<object class="IBPartialClassDescription">
					<string key="className">UITextView</string>
					<string key="superclassName">UIScrollView</string>
					<object class="IBClassDescriptionSource" key="sourceIdentifier">
						<string key="majorKey">IBFrameworkSource</string>
						<string key="minorKey">UIKit.framework/Headers/UITextView.h</string>
					</object>
				</object>
				<object class="IBPartialClassDescription">
					<string key="className">UIToolbar</string>
					<string key="superclassName">UIView</string>
					<object class="IBClassDescriptionSource" key="sourceIdentifier">
						<string key="majorKey">IBFrameworkSource</string>
						<string key="minorKey">UIKit.framework/Headers/UIToolbar.h</string>
					</object>
				</object>
				<object class="IBPartialClassDescription">
					<string key="className">UIView</string>
					<object class="IBClassDescriptionSource" key="sourceIdentifier">
						<string key="majorKey">IBFrameworkSource</string>
						<string key="minorKey">UIKit.framework/Headers/UITextField.h</string>
					</object>
				</object>
				<object class="IBPartialClassDescription">
					<string key="className">UIView</string>
					<string key="superclassName">UIResponder</string>
					<object class="IBClassDescriptionSource" key="sourceIdentifier">
						<string key="majorKey">IBFrameworkSource</string>
						<string key="minorKey">UIKit.framework/Headers/UIView.h</string>
					</object>
				</object>
				<object class="IBPartialClassDescription">
					<string key="className">UIViewController</string>
					<object class="IBClassDescriptionSource" key="sourceIdentifier">
						<string key="majorKey">IBFrameworkSource</string>
						<string key="minorKey">UIKit.framework/Headers/UINavigationController.h</string>
					</object>
				</object>
				<object class="IBPartialClassDescription">
					<string key="className">UIViewController</string>
					<object class="IBClassDescriptionSource" key="sourceIdentifier">
						<string key="majorKey">IBFrameworkSource</string>
						<string key="minorKey">UIKit.framework/Headers/UITabBarController.h</string>
					</object>
				</object>
				<object class="IBPartialClassDescription">
					<string key="className">UIViewController</string>
					<string key="superclassName">UIResponder</string>
					<object class="IBClassDescriptionSource" key="sourceIdentifier">
						<string key="majorKey">IBFrameworkSource</string>
						<string key="minorKey">UIKit.framework/Headers/UIViewController.h</string>
					</object>
				</object>
			</object>
		</object>
		<int key="IBDocument.localizationMode">0</int>
		<object class="NSMutableDictionary" key="IBDocument.PluginDeclaredDependencyDefaults">
			<string key="NS.key.0">com.apple.InterfaceBuilder.CocoaTouchPlugin.iPhoneOS</string>
			<integer value="768" key="NS.object.0"/>
		</object>
		<object class="NSMutableDictionary" key="IBDocument.PluginDeclaredDevelopmentDependencies">
			<string key="NS.key.0">com.apple.InterfaceBuilder.CocoaTouchPlugin.InterfaceBuilder3</string>
			<integer value="3000" key="NS.object.0"/>
		</object>
		<bool key="IBDocument.PluginDeclaredDependenciesTrackSystemTargetVersion">YES</bool>
		<string key="IBDocument.LastKnownRelativeProjectPath">OCR.xcodeproj</string>
		<int key="IBDocument.defaultPropertyAccessControl">3</int>
		<string key="IBCocoaTouchPluginVersion">3.1</string>
	</data>
</archive>


================================================
FILE: OCR_Prefix.pch
================================================
//
// Prefix header for all source files of the 'OCR' target in the 'OCR' project
//

#ifdef __OBJC__
    #import <Foundation/Foundation.h>
    #import <UIKit/UIKit.h>
#endif


================================================
FILE: UIImage-categories/UIImage+Alpha.h
================================================
// UIImage+Alpha.h
// Created by Trevor Harmon on 9/20/09.
// Free for personal or commercial use, with or without modification.
// No warranty is expressed or implied.

// Helper methods for adding an alpha layer to an image
@interface UIImage (Alpha)
- (BOOL)hasAlpha;
- (UIImage *)imageWithAlpha;
- (UIImage *)transparentBorderImage:(NSUInteger)borderSize;
@end


================================================
FILE: UIImage-categories/UIImage+Alpha.m
================================================
// UIImage+Alpha.m
// Created by Trevor Harmon on 9/20/09.
// Free for personal or commercial use, with or without modification.
// No warranty is expressed or implied.

#import "UIImage+Alpha.h"

// Private helper methods
@interface UIImage ()
- (CGImageRef)createBorderMask:(NSUInteger)borderSize size:(CGSize)size;
@end

@implementation UIImage (Alpha)

// Returns true if the image has an alpha layer
- (BOOL)hasAlpha {
    CGImageAlphaInfo alpha = CGImageGetAlphaInfo(self.CGImage);
    return (alpha == kCGImageAlphaFirst ||
            alpha == kCGImageAlphaLast ||
            alpha == kCGImageAlphaPremultipliedFirst ||
            alpha == kCGImageAlphaPremultipliedLast);
}

// Returns a copy of the given image, adding an alpha channel if it doesn't already have one
- (UIImage *)imageWithAlpha {
    if ([self hasAlpha]) {
        return self;
    }
    
    CGImageRef imageRef = self.CGImage;
    size_t width = CGImageGetWidth(imageRef);
    size_t height = CGImageGetHeight(imageRef);
    
    // The bitsPerComponent and bitmapInfo values are hard-coded to prevent an "unsupported parameter combination" error
    CGContextRef offscreenContext = CGBitmapContextCreate(NULL,
                                                          width,
                                                          height,
                                                          8,
                                                          0,
                                                          CGImageGetColorSpace(imageRef),
                                                          kCGBitmapByteOrderDefault | kCGImageAlphaPremultipliedFirst);
    
    // Draw the image into the context and retrieve the new image, which will now have an alpha layer
    CGContextDrawImage(offscreenContext, CGRectMake(0, 0, width, height), imageRef);
    CGImageRef imageRefWithAlpha = CGBitmapContextCreateImage(offscreenContext);
    UIImage *imageWithAlpha = [UIImage imageWithCGImage:imageRefWithAlpha];
    
    // Clean up
    CGContextRelease(offscreenContext);
    CGImageRelease(imageRefWithAlpha);
    
    return imageWithAlpha;
}

// Returns a copy of the image with a transparent border of the given size added around its edges.
// If the image has no alpha layer, one will be added to it.
- (UIImage *)transparentBorderImage:(NSUInteger)borderSize {
    // If the image does not have an alpha layer, add one
    UIImage *image = [self imageWithAlpha];
    
    CGRect newRect = CGRectMake(0, 0, image.size.width + borderSize * 2, image.size.height + borderSize * 2);
    
    // Build a context that's the same dimensions as the new size
    CGContextRef bitmap = CGBitmapContextCreate(NULL,
                                                newRect.size.width,
                                                newRect.size.height,
                                                CGImageGetBitsPerComponent(self.CGImage),
                                                0,
                                                CGImageGetColorSpace(self.CGImage),
                                                CGImageGetBitmapInfo(self.CGImage));
    
    // Draw the image in the center of the context, leaving a gap around the edges
    CGRect imageLocation = CGRectMake(borderSize, borderSize, image.size.width, image.size.height);
    CGContextDrawImage(bitmap, imageLocation, self.CGImage);
    CGImageRef borderImageRef = CGBitmapContextCreateImage(bitmap);
    
    // Create a mask to make the border transparent, and combine it with the image
    CGImageRef maskImageRef = [self createBorderMask:borderSize size:newRect.size];
    CGImageRef transparentBorderImageRef = CGImageCreateWithMask(borderImageRef, maskImageRef);
    UIImage *transparentBorderImage = [UIImage imageWithCGImage:transparentBorderImageRef];
    
    // Clean up
    CGContextRelease(bitmap);
    CGImageRelease(borderImageRef);
    CGImageRelease(maskImageRef);
    CGImageRelease(transparentBorderImageRef);
    
    return transparentBorderImage;
}

#pragma mark -
#pragma mark Private helper methods

// Creates a mask that makes the outer edges transparent and everything else opaque
// The size must include the entire mask (opaque part + transparent border)
// The caller is responsible for releasing the returned reference by calling CGImageRelease
- (CGImageRef)createBorderMask:(NSUInteger)borderSize size:(CGSize)size {
    CGColorSpaceRef colorSpace = CGColorSpaceCreateDeviceGray();
    
    // Build a context that's the same dimensions as the new size
    CGContextRef maskContext = CGBitmapContextCreate(NULL,
                                                     size.width,
                                                     size.height,
                                                     8, // 8-bit grayscale
                                                     0,
                                                     colorSpace,
                                                     kCGBitmapByteOrderDefault | kCGImageAlphaNone);
    
    // Start with a mask that's entirely transparent
    CGContextSetFillColorWithColor(maskContext, [UIColor blackColor].CGColor);
    CGContextFillRect(maskContext, CGRectMake(0, 0, size.width, size.height));
    
    // Make the inner part (within the border) opaque
    CGContextSetFillColorWithColor(maskContext, [UIColor whiteColor].CGColor);
    CGContextFillRect(maskContext, CGRectMake(borderSize, borderSize, size.width - borderSize * 2, size.height - borderSize * 2));
    
    // Get an image of the context
    CGImageRef maskImageRef = CGBitmapContextCreateImage(maskContext);
    
    // Clean up
    CGContextRelease(maskContext);
    CGColorSpaceRelease(colorSpace);
    
    return maskImageRef;
}

@end


================================================
FILE: UIImage-categories/UIImage+Resize.h
================================================
// UIImage+Resize.h
// Created by Trevor Harmon on 8/5/09.
// Free for personal or commercial use, with or without modification.
// No warranty is expressed or implied.

// Extends the UIImage class to support resizing/cropping
@interface UIImage (Resize)
- (UIImage *)croppedImage:(CGRect)bounds;
- (UIImage *)thumbnailImage:(NSInteger)thumbnailSize
          transparentBorder:(NSUInteger)borderSize
               cornerRadius:(NSUInteger)cornerRadius
       interpolationQuality:(CGInterpolationQuality)quality;
- (UIImage *)resizedImage:(CGSize)newSize
     interpolationQuality:(CGInterpolationQuality)quality;
- (UIImage *)resizedImageWithContentMode:(UIViewContentMode)contentMode
                                  bounds:(CGSize)bounds
                    interpolationQuality:(CGInterpolationQuality)quality;
@end


================================================
FILE: UIImage-categories/UIImage+Resize.m
================================================
// UIImage+Resize.m
// Created by Trevor Harmon on 8/5/09.
// Free for personal or commercial use, with or without modification.
// No warranty is expressed or implied.

#import "UIImage+Resize.h"
#import "UIImage+RoundedCorner.h"
#import "UIImage+Alpha.h"

// Private helper methods
@interface UIImage ()
- (UIImage *)resizedImage:(CGSize)newSize
                transform:(CGAffineTransform)transform
           drawTransposed:(BOOL)transpose
     interpolationQuality:(CGInterpolationQuality)quality;
- (CGAffineTransform)transformForOrientation:(CGSize)newSize;
@end

@implementation UIImage (Resize)

// Returns a copy of this image that is cropped to the given bounds
// Note that the bounds will be adjusted using CGRectIntegral
- (UIImage *)croppedImage:(CGRect)bounds {
    CGImageRef imageRef = CGImageCreateWithImageInRect([self CGImage], bounds);
    UIImage *croppedImage = [UIImage imageWithCGImage:imageRef];
    CGImageRelease(imageRef);
    return croppedImage;
}

// Returns a copy of this image that is squared to the thumbnail size.
// If transparentBorder is non-zero, a transparent border of the given size will be added around the edges of the thumbnail. (Adding a transparent border of at least one pixel in size has the side-effect of antialiasing the edges of the image when rotating it using Core Animation.)
- (UIImage *)thumbnailImage:(NSInteger)thumbnailSize
          transparentBorder:(NSUInteger)borderSize
               cornerRadius:(NSUInteger)cornerRadius
       interpolationQuality:(CGInterpolationQuality)quality {
    UIImage *resizedImage = [self resizedImageWithContentMode:UIViewContentModeScaleAspectFill
                                                       bounds:CGSizeMake(thumbnailSize, thumbnailSize)
                                         interpolationQuality:quality];
    
    // Crop out any part of the image that's larger than the thumbnail size
    // The cropped rect must be centered on the resized image
    // Round the origin points so that the size isn't altered when CGRectIntegral is later invoked
    CGRect cropRect = CGRectMake(round((resizedImage.size.width - thumbnailSize) / 2),
                                 round((resizedImage.size.height - thumbnailSize) / 2),
                                 thumbnailSize,
                                 thumbnailSize);
    UIImage *croppedImage = [resizedImage croppedImage:cropRect];
    
    UIImage *transparentBorderImage = borderSize ? [croppedImage transparentBorderImage:borderSize] : croppedImage;

    return [transparentBorderImage roundedCornerImage:cornerRadius borderSize:borderSize];
}

// Returns a rescaled copy of the image, taking into account its orientation
// The image will be scaled disproportionately if necessary to fit the bounds specified by the parameter
- (UIImage *)resizedImage:(CGSize)newSize interpolationQuality:(CGInterpolationQuality)quality {
    BOOL drawTransposed;
    
    switch (self.imageOrientation) {
        case UIImageOrientationLeft:
        case UIImageOrientationLeftMirrored:
        case UIImageOrientationRight:
        case UIImageOrientationRightMirrored:
            drawTransposed = YES;
            break;
            
        default:
            drawTransposed = NO;
    }
    
    return [self resizedImage:newSize
                    transform:[self transformForOrientation:newSize]
               drawTransposed:drawTransposed
         interpolationQuality:quality];
}

// Resizes the image according to the given content mode, taking into account the image's orientation
- (UIImage *)resizedImageWithContentMode:(UIViewContentMode)contentMode
                                  bounds:(CGSize)bounds
                    interpolationQuality:(CGInterpolationQuality)quality {
    CGFloat horizontalRatio = bounds.width / self.size.width;
    CGFloat verticalRatio = bounds.height / self.size.height;
    CGFloat ratio;
    
    switch (contentMode) {
        case UIViewContentModeScaleAspectFill:
            ratio = MAX(horizontalRatio, verticalRatio);
            break;
            
        case UIViewContentModeScaleAspectFit:
            ratio = MIN(horizontalRatio, verticalRatio);
            break;
            
        default:
            [NSException raise:NSInvalidArgumentException format:@"Unsupported content mode: %d", contentMode];
    }
    
    CGSize newSize = CGSizeMake(self.size.width * ratio, self.size.height * ratio);
    
    return [self resizedImage:newSize interpolationQuality:quality];
}

#pragma mark -
#pragma mark Private helper methods

// Returns a copy of the image that has been transformed using the given affine transform and scaled to the new size
// The new image's orientation will be UIImageOrientationUp, regardless of the current image's orientation
// If the new size is not integral, it will be rounded up
- (UIImage *)resizedImage:(CGSize)newSize
                transform:(CGAffineTransform)transform
           drawTransposed:(BOOL)transpose
     interpolationQuality:(CGInterpolationQuality)quality {
    CGRect newRect = CGRectIntegral(CGRectMake(0, 0, newSize.width, newSize.height));
    CGRect transposedRect = CGRectMake(0, 0, newRect.size.height, newRect.size.width);
    CGImageRef imageRef = self.CGImage;
    
    // Build a context that's the same dimensions as the new size
    CGContextRef bitmap = CGBitmapContextCreate(NULL,
                                                newRect.size.width,
                                                newRect.size.height,
                                                CGImageGetBitsPerComponent(imageRef),
                                                0,
                                                CGImageGetColorSpace(imageRef),
                                                CGImageGetBitmapInfo(imageRef));
    
    // Rotate and/or flip the image if required by its orientation
    CGContextConcatCTM(bitmap, transform);
    
    // Set the quality level to use when rescaling
    CGContextSetInterpolationQuality(bitmap, quality);
    
    // Draw into the context; this scales the image
    CGContextDrawImage(bitmap, transpose ? transposedRect : newRect, imageRef);
    
    // Get the resized image from the context and a UIImage
    CGImageRef newImageRef = CGBitmapContextCreateImage(bitmap);
    UIImage *newImage = [UIImage imageWithCGImage:newImageRef];
    
    // Clean up
    CGContextRelease(bitmap);
    CGImageRelease(newImageRef);
    
    return newImage;
}

// Returns an affine transform that takes into account the image orientation when drawing a scaled image
- (CGAffineTransform)transformForOrientation:(CGSize)newSize {
    CGAffineTransform transform = CGAffineTransformIdentity;
    
    switch (self.imageOrientation) {
        case UIImageOrientationDown:           // EXIF = 3
        case UIImageOrientationDownMirrored:   // EXIF = 4
            transform = CGAffineTransformTranslate(transform, newSize.width, newSize.height);
            transform = CGAffineTransformRotate(transform, M_PI);
            break;
            
        case UIImageOrientationLeft:           // EXIF = 6
        case UIImageOrientationLeftMirrored:   // EXIF = 5
            transform = CGAffineTransformTranslate(transform, newSize.width, 0);
            transform = CGAffineTransformRotate(transform, M_PI_2);
            break;
            
        case UIImageOrientationRight:          // EXIF = 8
        case UIImageOrientationRightMirrored:  // EXIF = 7
            transform = CGAffineTransformTranslate(transform, 0, newSize.height);
            transform = CGAffineTransformRotate(transform, -M_PI_2);
            break;
    }
    
    switch (self.imageOrientation) {
        case UIImageOrientationUpMirrored:     // EXIF = 2
        case UIImageOrientationDownMirrored:   // EXIF = 4
            transform = CGAffineTransformTranslate(transform, newSize.width, 0);
            transform = CGAffineTransformScale(transform, -1, 1);
            break;
            
        case UIImageOrientationLeftMirrored:   // EXIF = 5
        case UIImageOrientationRightMirrored:  // EXIF = 7
            transform = CGAffineTransformTranslate(transform, newSize.height, 0);
            transform = CGAffineTransformScale(transform, -1, 1);
            break;
    }
    
    return transform;
}

@end


================================================
FILE: UIImage-categories/UIImage+RoundedCorner.h
================================================
// UIImage+RoundedCorner.h
// Created by Trevor Harmon on 9/20/09.
// Free for personal or commercial use, with or without modification.
// No warranty is expressed or implied.

// Extends the UIImage class to support making rounded corners
@interface UIImage (RoundedCorner)
- (UIImage *)roundedCornerImage:(NSInteger)cornerSize borderSize:(NSInteger)borderSize;
@end


================================================
FILE: UIImage-categories/UIImage+RoundedCorner.m
================================================
// UIImage+RoundedCorner.m
// Created by Trevor Harmon on 9/20/09.
// Free for personal or commercial use, with or without modification.
// No warranty is expressed or implied.

#import "UIImage+RoundedCorner.h"
#import "UIImage+Alpha.h"

// Private helper methods
@interface UIImage ()
- (void)addRoundedRectToPath:(CGRect)rect context:(CGContextRef)context ovalWidth:(CGFloat)ovalWidth ovalHeight:(CGFloat)ovalHeight;
@end

@implementation UIImage (RoundedCorner)

// Creates a copy of this image with rounded corners
// If borderSize is non-zero, a transparent border of the given size will also be added
// Original author: Björn Sållarp. Used with permission. See: http://blog.sallarp.com/iphone-uiimage-round-corners/
- (UIImage *)roundedCornerImage:(NSInteger)cornerSize borderSize:(NSInteger)borderSize {
    // If the image does not have an alpha layer, add one
    UIImage *image = [self imageWithAlpha];
    
    // Build a context that's the same dimensions as the new size
    CGContextRef context = CGBitmapContextCreate(NULL,
                                                 image.size.width,
                                                 image.size.height,
                                                 CGImageGetBitsPerComponent(image.CGImage),
                                                 0,
                                                 CGImageGetColorSpace(image.CGImage),
                                                 CGImageGetBitmapInfo(image.CGImage));

    // Create a clipping path with rounded corners
    CGContextBeginPath(context);
    [self addRoundedRectToPath:CGRectMake(borderSize, borderSize, image.size.width - borderSize * 2, image.size.height - borderSize * 2)
                       context:context
                     ovalWidth:cornerSize
                    ovalHeight:cornerSize];
    CGContextClosePath(context);
    CGContextClip(context);

    // Draw the image to the context; the clipping path will make anything outside the rounded rect transparent
    CGContextDrawImage(context, CGRectMake(0, 0, image.size.width, image.size.height), image.CGImage);
    
    // Create a CGImage from the context
    CGImageRef clippedImage = CGBitmapContextCreateImage(context);
    CGContextRelease(context);
    
    // Create a UIImage from the CGImage
    UIImage *roundedImage = [UIImage imageWithCGImage:clippedImage];
    CGImageRelease(clippedImage);
    
    return roundedImage;
}

#pragma mark -
#pragma mark Private helper methods

// Adds a rectangular path to the given context and rounds its corners by the given extents
// Original author: Björn Sållarp. Used with permission. See: http://blog.sallarp.com/iphone-uiimage-round-corners/
- (void)addRoundedRectToPath:(CGRect)rect context:(CGContextRef)context ovalWidth:(CGFloat)ovalWidth ovalHeight:(CGFloat)ovalHeight {
    if (ovalWidth == 0 || ovalHeight == 0) {
        CGContextAddRect(context, rect);
        return;
    }
    CGContextSaveGState(context);
    CGContextTranslateCTM(context, CGRectGetMinX(rect), CGRectGetMinY(rect));
    CGContextScaleCTM(context, ovalWidth, ovalHeight);
    CGFloat fw = CGRectGetWidth(rect) / ovalWidth;
    CGFloat fh = CGRectGetHeight(rect) / ovalHeight;
    CGContextMoveToPoint(context, fw, fh/2);
    CGContextAddArcToPoint(context, fw, fh, fw/2, fh, 1);
    CGContextAddArcToPoint(context, 0, fh, 0, fh/2, 1);
    CGContextAddArcToPoint(context, 0, 0, fw/2, 0, 1);
    CGContextAddArcToPoint(context, fw, 0, fw, fh/2, 1);
    CGContextClosePath(context);
    CGContextRestoreGState(context);
}

@end


================================================
FILE: main.m
================================================
//
//  main.m
//  OCR
//
//  Created by Robert Carlsen on 04.09.2009.
//  Copyright recv'd productions 2009. All rights reserved.
//

#import <UIKit/UIKit.h>

int main(int argc, char *argv[]) {
    
    NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];
    int retVal = UIApplicationMain(argc, argv, nil, nil);
    [pool release];
    return retVal;
}


================================================
FILE: readme.txt
================================================
Pocket OCR
Tesseract OCR for iPhone

Robert Carlsen | robertcarlsen.net

This project is a demonstration of implementing the Tesseract OCR engine on the iPhone platform. It works best with the iPhone 3GS and it's autofocus lens. External lenses for older iPhones may be necessary for optimal image capture.

To build the tesseract library, download the source code and compile apropriately for the iPhone (arm processor). Add the library to the XCode project and build.

The Tesseract source code is available at:
http://code.google.com/p/tesseract-ocr/

A build script and instructions are available at:
http://robertcarlsen.net/2009/07/15/cross-compiling-for-iphone-dev-884

File issues on github:
https://github.com/rcarlsen/Pocket-OCR/issues

Enjoy!
-Robert

---
Released 11.1.2010


================================================
FILE: tessdata/Makefile.am
================================================
datadir = @datadir@/tessdata
data_DATA = confsets \
            fra.DangAmbigs fra.freq-dawg fra.inttemp fra.normproto \
            fra.pffmtable fra.user-words fra.word-dawg fra.unicharset \
            ita.DangAmbigs ita.freq-dawg ita.inttemp ita.normproto \
            ita.pffmtable ita.user-words ita.word-dawg ita.unicharset \
            deu.DangAmbigs deu.freq-dawg deu.inttemp deu.normproto \
            deu.pffmtable deu.user-words deu.word-dawg deu.unicharset \
            spa.DangAmbigs spa.freq-dawg spa.inttemp spa.normproto \
            spa.pffmtable spa.user-words spa.word-dawg spa.unicharset \
            nld.DangAmbigs nld.freq-dawg nld.inttemp nld.normproto \
            nld.pffmtable nld.user-words nld.word-dawg nld.unicharset \
            eng.DangAmbigs eng.freq-dawg eng.inttemp eng.normproto \
            eng.pffmtable eng.user-words eng.word-dawg eng.unicharset

SUBDIRS = configs tessconfigs

EXTRA_DIST = confsets makedummies

eng.DangAmbigs eng.freq-dawg eng.inttemp eng.normproto eng.pffmtable eng.user-words eng.word-dawg eng.unicharset : makedummies
	$(top_srcdir)/tessdata/makedummies eng
fra.DangAmbigs fra.freq-dawg fra.inttemp fra.normproto fra.pffmtable fra.user-words fra.word-dawg fra.unicharset : makedummies
	$(top_srcdir)/tessdata/makedummies fra
ita.DangAmbigs ita.freq-dawg ita.inttemp ita.normproto ita.pffmtable ita.user-words ita.word-dawg ita.unicharset : makedummies
	$(top_srcdir)/tessdata/makedummies ita
deu.DangAmbigs deu.freq-dawg deu.inttemp deu.normproto deu.pffmtable deu.user-words deu.word-dawg deu.unicharset : makedummies
	$(top_srcdir)/tessdata/makedummies deu
spa.DangAmbigs spa.freq-dawg spa.inttemp spa.normproto spa.pffmtable spa.user-words spa.word-dawg spa.unicharset : makedummies
	$(top_srcdir)/tessdata/makedummies spa
nld.DangAmbigs nld.freq-dawg nld.inttemp nld.normproto nld.pffmtable nld.user-words nld.word-dawg nld.unicharset : makedummies
	$(top_srcdir)/tessdata/makedummies nld


================================================
FILE: tessdata/Makefile.in
================================================
# Makefile.in generated by automake 1.10.1 from Makefile.am.
# @configure_input@

# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
# 2003, 2004, 2005, 2006, 2007, 2008  Free Software Foundation, Inc.
# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.

# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
# PARTICULAR PURPOSE.

@SET_MAKE@

VPATH = @srcdir@
pkgdatadir = $(datadir)/@PACKAGE@
pkglibdir = $(libdir)/@PACKAGE@
pkgincludedir = $(includedir)/@PACKAGE@
am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
install_sh_DATA = $(install_sh) -c -m 644
install_sh_PROGRAM = $(install_sh) -c
install_sh_SCRIPT = $(install_sh) -c
INSTALL_HEADER = $(INSTALL_DATA)
transform = $(program_transform_name)
NORMAL_INSTALL = :
PRE_INSTALL = :
POST_INSTALL = :
NORMAL_UNINSTALL = :
PRE_UNINSTALL = :
POST_UNINSTALL = :
build_triplet = @build@
host_triplet = @host@
subdir = tessdata
DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/acinclude.m4 \
	$(top_srcdir)/configure.ac
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
	$(ACLOCAL_M4)
mkinstalldirs = $(SHELL) $(top_srcdir)/config/mkinstalldirs
CONFIG_HEADER = $(top_builddir)/config_auto.h
CONFIG_CLEAN_FILES =
SOURCES =
DIST_SOURCES =
RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \
	html-recursive info-recursive install-data-recursive \
	install-dvi-recursive install-exec-recursive \
	install-html-recursive install-info-recursive \
	install-pdf-recursive install-ps-recursive install-recursive \
	installcheck-recursive installdirs-recursive pdf-recursive \
	ps-recursive uninstall-recursive
am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
am__vpath_adj = case $$p in \
    $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
    *) f=$$p;; \
  esac;
am__strip_dir = `echo $$p | sed -e 's|^.*/||'`;
am__installdirs = "$(DESTDIR)$(datadir)"
dataDATA_INSTALL = $(INSTALL_DATA)
DATA = $(data_DATA)
RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive	\
  distclean-recursive maintainer-clean-recursive
ETAGS = etags
CTAGS = ctags
DIST_SUBDIRS = $(SUBDIRS)
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
ACLOCAL = @ACLOCAL@
AMTAR = @AMTAR@
AUTOCONF = @AUTOCONF@
AUTOHEADER = @AUTOHEADER@
AUTOMAKE = @AUTOMAKE@
AWK = @AWK@
CC = @CC@
CCDEPMODE = @CCDEPMODE@
CFLAGS = @CFLAGS@
CPP = @CPP@
CPPFLAGS = @CPPFLAGS@
CXX = @CXX@
CXXCPP = @CXXCPP@
CXXDEPMODE = @CXXDEPMODE@
CXXFLAGS = @CXXFLAGS@
CYGPATH_W = @CYGPATH_W@
DEFS = @DEFS@
DEPDIR = @DEPDIR@
ECHO_C = @ECHO_C@
ECHO_N = @ECHO_N@
ECHO_T = @ECHO_T@
EGREP = @EGREP@
EXEEXT = @EXEEXT@
GREP = @GREP@
INSTALL = @INSTALL@
INSTALL_DATA = @INSTALL_DATA@
INSTALL_PROGRAM = @INSTALL_PROGRAM@
INSTALL_SCRIPT = @INSTALL_SCRIPT@
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
LDFLAGS = @LDFLAGS@
LIBOBJS = @LIBOBJS@
LIBS = @LIBS@
LIBTIFF_CFLAGS = @LIBTIFF_CFLAGS@
LIBTIFF_LIBS = @LIBTIFF_LIBS@
LTLIBOBJS = @LTLIBOBJS@
MAINT = @MAINT@
MAKEINFO = @MAKEINFO@
MKDIR_P = @MKDIR_P@
OBJEXT = @OBJEXT@
PACKAGE = @PACKAGE@
PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
PACKAGE_DATE = @PACKAGE_DATE@
PACKAGE_NAME = @PACKAGE_NAME@
PACKAGE_STRING = @PACKAGE_STRING@
PACKAGE_TARNAME = @PACKAGE_TARNAME@
PACKAGE_VERSION = @PACKAGE_VERSION@
PACKAGE_YEAR = @PACKAGE_YEAR@
PATH_SEPARATOR = @PATH_SEPARATOR@
RANLIB = @RANLIB@
SET_MAKE = @SET_MAKE@
SHELL = @SHELL@
STRIP = @STRIP@
VERSION = @VERSION@
abs_builddir = @abs_builddir@
abs_srcdir = @abs_srcdir@
abs_top_builddir = @abs_top_builddir@
abs_top_srcdir = @abs_top_srcdir@
ac_ct_CC = @ac_ct_CC@
ac_ct_CXX = @ac_ct_CXX@
am__include = @am__include@
am__leading_dot = @am__leading_dot@
am__quote = @am__quote@
am__tar = @am__tar@
am__untar = @am__untar@
bindir = @bindir@
build = @build@
build_alias = @build_alias@
build_cpu = @build_cpu@
build_os = @build_os@
build_vendor = @build_vendor@
builddir = @builddir@
datadir = @datadir@/tessdata
datarootdir = @datarootdir@
docdir = @docdir@
dvidir = @dvidir@
exec_prefix = @exec_prefix@
host = @host@
host_alias = @host_alias@
host_cpu = @host_cpu@
host_os = @host_os@
host_vendor = @host_vendor@
htmldir = @htmldir@
includedir = @includedir@
infodir = @infodir@
install_sh = @install_sh@
libdir = @libdir@
libexecdir = @libexecdir@
localedir = @localedir@
localstatedir = @localstatedir@
mandir = @mandir@
mkdir_p = @mkdir_p@
oldincludedir = @oldincludedir@
pdfdir = @pdfdir@
prefix = @prefix@
program_transform_name = @program_transform_name@
psdir = @psdir@
sbindir = @sbindir@
sharedstatedir = @sharedstatedir@
srcdir = @srcdir@
sysconfdir = @sysconfdir@
target_alias = @target_alias@
top_builddir = @top_builddir@
top_srcdir = @top_srcdir@
data_DATA = confsets \
            fra.DangAmbigs fra.freq-dawg fra.inttemp fra.normproto \
            fra.pffmtable fra.user-words fra.word-dawg fra.unicharset \
            ita.DangAmbigs ita.freq-dawg ita.inttemp ita.normproto \
            ita.pffmtable ita.user-words ita.word-dawg ita.unicharset \
            deu.DangAmbigs deu.freq-dawg deu.inttemp deu.normproto \
            deu.pffmtable deu.user-words deu.word-dawg deu.unicharset \
            spa.DangAmbigs spa.freq-dawg spa.inttemp spa.normproto \
            spa.pffmtable spa.user-words spa.word-dawg spa.unicharset \
            nld.DangAmbigs nld.freq-dawg nld.inttemp nld.normproto \
            nld.pffmtable nld.user-words nld.word-dawg nld.unicharset \
            eng.DangAmbigs eng.freq-dawg eng.inttemp eng.normproto \
            eng.pffmtable eng.user-words eng.word-dawg eng.unicharset

SUBDIRS = configs tessconfigs
EXTRA_DIST = confsets makedummies
all: all-recursive

.SUFFIXES:
$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am  $(am__configure_deps)
	@for dep in $?; do \
	  case '$(am__configure_deps)' in \
	    *$$dep*) \
	      cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
		&& exit 0; \
	      exit 1;; \
	  esac; \
	done; \
	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu  tessdata/Makefile'; \
	cd $(top_srcdir) && \
	  $(AUTOMAKE) --gnu  tessdata/Makefile
.PRECIOUS: Makefile
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
	@case '$?' in \
	  *config.status*) \
	    cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
	  *) \
	    echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
	    cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
	esac;

$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh

$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
install-dataDATA: $(data_DATA)
	@$(NORMAL_INSTALL)
	test -z "$(datadir)" || $(MKDIR_P) "$(DESTDIR)$(datadir)"
	@list='$(data_DATA)'; for p in $$list; do \
	  if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
	  f=$(am__strip_dir) \
	  echo " $(dataDATA_INSTALL) '$$d$$p' '$(DESTDIR)$(datadir)/$$f'"; \
	  $(dataDATA_INSTALL) "$$d$$p" "$(DESTDIR)$(datadir)/$$f"; \
	done

uninstall-dataDATA:
	@$(NORMAL_UNINSTALL)
	@list='$(data_DATA)'; for p in $$list; do \
	  f=$(am__strip_dir) \
	  echo " rm -f '$(DESTDIR)$(datadir)/$$f'"; \
	  rm -f "$(DESTDIR)$(datadir)/$$f"; \
	done

# This directory's subdirectories are mostly independent; you can cd
# into them and run `make' without going through this Makefile.
# To change the values of `make' variables: instead of editing Makefiles,
# (1) if the variable is set in `config.status', edit `config.status'
#     (which will cause the Makefiles to be regenerated when you run `make');
# (2) otherwise, pass the desired values on the `make' command line.
$(RECURSIVE_TARGETS):
	@failcom='exit 1'; \
	for f in x $$MAKEFLAGS; do \
	  case $$f in \
	    *=* | --[!k]*);; \
	    *k*) failcom='fail=yes';; \
	  esac; \
	done; \
	dot_seen=no; \
	target=`echo $@ | sed s/-recursive//`; \
	list='$(SUBDIRS)'; for subdir in $$list; do \
	  echo "Making $$target in $$subdir"; \
	  if test "$$subdir" = "."; then \
	    dot_seen=yes; \
	    local_target="$$target-am"; \
	  else \
	    local_target="$$target"; \
	  fi; \
	  (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
	  || eval $$failcom; \
	done; \
	if test "$$dot_seen" = "no"; then \
	  $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \
	fi; test -z "$$fail"

$(RECURSIVE_CLEAN_TARGETS):
	@failcom='exit 1'; \
	for f in x $$MAKEFLAGS; do \
	  case $$f in \
	    *=* | --[!k]*);; \
	    *k*) failcom='fail=yes';; \
	  esac; \
	done; \
	dot_seen=no; \
	case "$@" in \
	  distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \
	  *) list='$(SUBDIRS)' ;; \
	esac; \
	rev=''; for subdir in $$list; do \
	  if test "$$subdir" = "."; then :; else \
	    rev="$$subdir $$rev"; \
	  fi; \
	done; \
	rev="$$rev ."; \
	target=`echo $@ | sed s/-recursive//`; \
	for subdir in $$rev; do \
	  echo "Making $$target in $$subdir"; \
	  if test "$$subdir" = "."; then \
	    local_target="$$target-am"; \
	  else \
	    local_target="$$target"; \
	  fi; \
	  (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
	  || eval $$failcom; \
	done && test -z "$$fail"
tags-recursive:
	list='$(SUBDIRS)'; for subdir in $$list; do \
	  test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \
	done
ctags-recursive:
	list='$(SUBDIRS)'; for subdir in $$list; do \
	  test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \
	done

ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
	list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
	unique=`for i in $$list; do \
	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
	  done | \
	  $(AWK) '{ files[$$0] = 1; nonemtpy = 1; } \
	      END { if (nonempty) { for (i in files) print i; }; }'`; \
	mkid -fID $$unique
tags: TAGS

TAGS: tags-recursive $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
		$(TAGS_FILES) $(LISP)
	tags=; \
	here=`pwd`; \
	if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \
	  include_option=--etags-include; \
	  empty_fix=.; \
	else \
	  include_option=--include; \
	  empty_fix=; \
	fi; \
	list='$(SUBDIRS)'; for subdir in $$list; do \
	  if test "$$subdir" = .; then :; else \
	    test ! -f $$subdir/TAGS || \
	      tags="$$tags $$include_option=$$here/$$subdir/TAGS"; \
	  fi; \
	done; \
	list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
	unique=`for i in $$list; do \
	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
	  done | \
	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
	      END { if (nonempty) { for (i in files) print i; }; }'`; \
	if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \
	  test -n "$$unique" || unique=$$empty_fix; \
	  $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
	    $$tags $$unique; \
	fi
ctags: CTAGS
CTAGS: ctags-recursive $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
		$(TAGS_FILES) $(LISP)
	tags=; \
	list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
	unique=`for i in $$list; do \
	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
	  done | \
	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
	      END { if (nonempty) { for (i in files) print i; }; }'`; \
	test -z "$(CTAGS_ARGS)$$tags$$unique" \
	  || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
	     $$tags $$unique

GTAGS:
	here=`$(am__cd) $(top_builddir) && pwd` \
	  && cd $(top_srcdir) \
	  && gtags -i $(GTAGS_ARGS) $$here

distclean-tags:
	-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags

distdir: $(DISTFILES)
	@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
	topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
	list='$(DISTFILES)'; \
	  dist_files=`for file in $$list; do echo $$file; done | \
	  sed -e "s|^$$srcdirstrip/||;t" \
	      -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
	case $$dist_files in \
	  */*) $(MKDIR_P) `echo "$$dist_files" | \
			   sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
			   sort -u` ;; \
	esac; \
	for file in $$dist_files; do \
	  if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
	  if test -d $$d/$$file; then \
	    dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
	    if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
	      cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
	    fi; \
	    cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
	  else \
	    test -f $(distdir)/$$file \
	    || cp -p $$d/$$file $(distdir)/$$file \
	    || exit 1; \
	  fi; \
	done
	list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
	  if test "$$subdir" = .; then :; else \
	    test -d "$(distdir)/$$subdir" \
	    || $(MKDIR_P) "$(distdir)/$$subdir" \
	    || exit 1; \
	    distdir=`$(am__cd) $(distdir) && pwd`; \
	    top_distdir=`$(am__cd) $(top_distdir) && pwd`; \
	    (cd $$subdir && \
	      $(MAKE) $(AM_MAKEFLAGS) \
	        top_distdir="$$top_distdir" \
	        distdir="$$distdir/$$subdir" \
		am__remove_distdir=: \
		am__skip_length_check=: \
	        distdir) \
	      || exit 1; \
	  fi; \
	done
check-am: all-am
check: check-recursive
all-am: Makefile $(DATA)
installdirs: installdirs-recursive
installdirs-am:
	for dir in "$(DESTDIR)$(datadir)"; do \
	  test -z "$$dir" || $(MKDIR_P) "$$dir"; \
	done
install: install-recursive
install-exec: install-exec-recursive
install-data: install-data-recursive
uninstall: uninstall-recursive

install-am: all-am
	@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am

installcheck: installcheck-recursive
install-strip:
	$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
	  install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
	  `test -z '$(STRIP)' || \
	    echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
mostlyclean-generic:

clean-generic:

distclean-generic:
	-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)

maintainer-clean-generic:
	@echo "This command is intended for maintainers to use"
	@echo "it deletes files that may require special tools to rebuild."
clean: clean-recursive

clean-am: clean-generic mostlyclean-am

distclean: distclean-recursive
	-rm -f Makefile
distclean-am: clean-am distclean-generic distclean-tags

dvi: dvi-recursive

dvi-am:

html: html-recursive

info: info-recursive

info-am:

install-data-am: install-dataDATA

install-dvi: install-dvi-recursive

install-exec-am:

install-html: install-html-recursive

install-info: install-info-recursive

install-man:

install-pdf: install-pdf-recursive

install-ps: install-ps-recursive

installcheck-am:

maintainer-clean: maintainer-clean-recursive
	-rm -f Makefile
maintainer-clean-am: distclean-am maintainer-clean-generic

mostlyclean: mostlyclean-recursive

mostlyclean-am: mostlyclean-generic

pdf: pdf-recursive

pdf-am:

ps: ps-recursive

ps-am:

uninstall-am: uninstall-dataDATA

.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) install-am \
	install-strip

.PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \
	all all-am check check-am clean clean-generic ctags \
	ctags-recursive distclean distclean-generic distclean-tags \
	distdir dvi dvi-am html html-am info info-am install \
	install-am install-data install-data-am install-dataDATA \
	install-dvi install-dvi-am install-exec install-exec-am \
	install-html install-html-am install-info install-info-am \
	install-man install-pdf install-pdf-am install-ps \
	install-ps-am install-strip installcheck installcheck-am \
	installdirs installdirs-am maintainer-clean \
	maintainer-clean-generic mostlyclean mostlyclean-generic pdf \
	pdf-am ps ps-am tags tags-recursive uninstall uninstall-am \
	uninstall-dataDATA


eng.DangAmbigs eng.freq-dawg eng.inttemp eng.normproto eng.pffmtable eng.user-words eng.word-dawg eng.unicharset : makedummies
	$(top_srcdir)/tessdata/makedummies eng
fra.DangAmbigs fra.freq-dawg fra.inttemp fra.normproto fra.pffmtable fra.user-words fra.word-dawg fra.unicharset : makedummies
	$(top_srcdir)/tessdata/makedummies fra
ita.DangAmbigs ita.freq-dawg ita.inttemp ita.normproto ita.pffmtable ita.user-words ita.word-dawg ita.unicharset : makedummies
	$(top_srcdir)/tessdata/makedummies ita
deu.DangAmbigs deu.freq-dawg deu.inttemp deu.normproto deu.pffmtable deu.user-words deu.word-dawg deu.unicharset : makedummies
	$(top_srcdir)/tessdata/makedummies deu
spa.DangAmbigs spa.freq-dawg spa.inttemp spa.normproto spa.pffmtable spa.user-words spa.word-dawg spa.unicharset : makedummies
	$(top_srcdir)/tessdata/makedummies spa
nld.DangAmbigs nld.freq-dawg nld.inttemp nld.normproto nld.pffmtable nld.user-words nld.word-dawg nld.unicharset : makedummies
	$(top_srcdir)/tessdata/makedummies nld
# Tell versions [3.59,3.63) of GNU make to not export all variables.
# Otherwise a system limit (for SysV at least) may be exceeded.
.NOEXPORT:


================================================
FILE: tessdata/configs/Makefile.am
================================================
datadir = @datadir@/tessdata/configs
data_DATA = inter makebox box.train unlv api_config kannada box.train.stderr
EXTRA_DIST = inter makebox box.train unlv api_config kannada box.train.stderr


================================================
FILE: tessdata/configs/Makefile.in
================================================
# Makefile.in generated by automake 1.10.1 from Makefile.am.
# @configure_input@

# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
# 2003, 2004, 2005, 2006, 2007, 2008  Free Software Foundation, Inc.
# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.

# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
# PARTICULAR PURPOSE.

@SET_MAKE@

VPATH = @srcdir@
pkgdatadir = $(datadir)/@PACKAGE@
pkglibdir = $(libdir)/@PACKAGE@
pkgincludedir = $(includedir)/@PACKAGE@
am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
install_sh_DATA = $(install_sh) -c -m 644
install_sh_PROGRAM = $(install_sh) -c
install_sh_SCRIPT = $(install_sh) -c
INSTALL_HEADER = $(INSTALL_DATA)
transform = $(program_transform_name)
NORMAL_INSTALL = :
PRE_INSTALL = :
POST_INSTALL = :
NORMAL_UNINSTALL = :
PRE_UNINSTALL = :
POST_UNINSTALL = :
build_triplet = @build@
host_triplet = @host@
subdir = tessdata/configs
DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/acinclude.m4 \
	$(top_srcdir)/configure.ac
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
	$(ACLOCAL_M4)
mkinstalldirs = $(SHELL) $(top_srcdir)/config/mkinstalldirs
CONFIG_HEADER = $(top_builddir)/config_auto.h
CONFIG_CLEAN_FILES =
SOURCES =
DIST_SOURCES =
am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
am__vpath_adj = case $$p in \
    $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
    *) f=$$p;; \
  esac;
am__strip_dir = `echo $$p | sed -e 's|^.*/||'`;
am__installdirs = "$(DESTDIR)$(datadir)"
dataDATA_INSTALL = $(INSTALL_DATA)
DATA = $(data_DATA)
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
ACLOCAL = @ACLOCAL@
AMTAR = @AMTAR@
AUTOCONF = @AUTOCONF@
AUTOHEADER = @AUTOHEADER@
AUTOMAKE = @AUTOMAKE@
AWK = @AWK@
CC = @CC@
CCDEPMODE = @CCDEPMODE@
CFLAGS = @CFLAGS@
CPP = @CPP@
CPPFLAGS = @CPPFLAGS@
CXX = @CXX@
CXXCPP = @CXXCPP@
CXXDEPMODE = @CXXDEPMODE@
CXXFLAGS = @CXXFLAGS@
CYGPATH_W = @CYGPATH_W@
DEFS = @DEFS@
DEPDIR = @DEPDIR@
ECHO_C = @ECHO_C@
ECHO_N = @ECHO_N@
ECHO_T = @ECHO_T@
EGREP = @EGREP@
EXEEXT = @EXEEXT@
GREP = @GREP@
INSTALL = @INSTALL@
INSTALL_DATA = @INSTALL_DATA@
INSTALL_PROGRAM = @INSTALL_PROGRAM@
INSTALL_SCRIPT = @INSTALL_SCRIPT@
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
LDFLAGS = @LDFLAGS@
LIBOBJS = @LIBOBJS@
LIBS = @LIBS@
LIBTIFF_CFLAGS = @LIBTIFF_CFLAGS@
LIBTIFF_LIBS = @LIBTIFF_LIBS@
LTLIBOBJS = @LTLIBOBJS@
MAINT = @MAINT@
MAKEINFO = @MAKEINFO@
MKDIR_P = @MKDIR_P@
OBJEXT = @OBJEXT@
PACKAGE = @PACKAGE@
PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
PACKAGE_DATE = @PACKAGE_DATE@
PACKAGE_NAME = @PACKAGE_NAME@
PACKAGE_STRING = @PACKAGE_STRING@
PACKAGE_TARNAME = @PACKAGE_TARNAME@
PACKAGE_VERSION = @PACKAGE_VERSION@
PACKAGE_YEAR = @PACKAGE_YEAR@
PATH_SEPARATOR = @PATH_SEPARATOR@
RANLIB = @RANLIB@
SET_MAKE = @SET_MAKE@
SHELL = @SHELL@
STRIP = @STRIP@
VERSION = @VERSION@
abs_builddir = @abs_builddir@
abs_srcdir = @abs_srcdir@
abs_top_builddir = @abs_top_builddir@
abs_top_srcdir = @abs_top_srcdir@
ac_ct_CC = @ac_ct_CC@
ac_ct_CXX = @ac_ct_CXX@
am__include = @am__include@
am__leading_dot = @am__leading_dot@
am__quote = @am__quote@
am__tar = @am__tar@
am__untar = @am__untar@
bindir = @bindir@
build = @build@
build_alias = @build_alias@
build_cpu = @build_cpu@
build_os = @build_os@
build_vendor = @build_vendor@
builddir = @builddir@
datadir = @datadir@/tessdata/configs
datarootdir = @datarootdir@
docdir = @docdir@
dvidir = @dvidir@
exec_prefix = @exec_prefix@
host = @host@
host_alias = @host_alias@
host_cpu = @host_cpu@
host_os = @host_os@
host_vendor = @host_vendor@
htmldir = @htmldir@
includedir = @includedir@
infodir = @infodir@
install_sh = @install_sh@
libdir = @libdir@
libexecdir = @libexecdir@
localedir = @localedir@
localstatedir = @localstatedir@
mandir = @mandir@
mkdir_p = @mkdir_p@
oldincludedir = @oldincludedir@
pdfdir = @pdfdir@
prefix = @prefix@
program_transform_name = @program_transform_name@
psdir = @psdir@
sbindir = @sbindir@
sharedstatedir = @sharedstatedir@
srcdir = @srcdir@
sysconfdir = @sysconfdir@
target_alias = @target_alias@
top_builddir = @top_builddir@
top_srcdir = @top_srcdir@
data_DATA = inter makebox box.train unlv api_config kannada box.train.stderr
EXTRA_DIST = inter makebox box.train unlv api_config kannada box.train.stderr
all: all-am

.SUFFIXES:
$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am  $(am__configure_deps)
	@for dep in $?; do \
	  case '$(am__configure_deps)' in \
	    *$$dep*) \
	      cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
		&& exit 0; \
	      exit 1;; \
	  esac; \
	done; \
	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu  tessdata/configs/Makefile'; \
	cd $(top_srcdir) && \
	  $(AUTOMAKE) --gnu  tessdata/configs/Makefile
.PRECIOUS: Makefile
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
	@case '$?' in \
	  *config.status*) \
	    cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
	  *) \
	    echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
	    cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
	esac;

$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh

$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
install-dataDATA: $(data_DATA)
	@$(NORMAL_INSTALL)
	test -z "$(datadir)" || $(MKDIR_P) "$(DESTDIR)$(datadir)"
	@list='$(data_DATA)'; for p in $$list; do \
	  if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
	  f=$(am__strip_dir) \
	  echo " $(dataDATA_INSTALL) '$$d$$p' '$(DESTDIR)$(datadir)/$$f'"; \
	  $(dataDATA_INSTALL) "$$d$$p" "$(DESTDIR)$(datadir)/$$f"; \
	done

uninstall-dataDATA:
	@$(NORMAL_UNINSTALL)
	@list='$(data_DATA)'; for p in $$list; do \
	  f=$(am__strip_dir) \
	  echo " rm -f '$(DESTDIR)$(datadir)/$$f'"; \
	  rm -f "$(DESTDIR)$(datadir)/$$f"; \
	done
tags: TAGS
TAGS:

ctags: CTAGS
CTAGS:


distdir: $(DISTFILES)
	@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
	topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
	list='$(DISTFILES)'; \
	  dist_files=`for file in $$list; do echo $$file; done | \
	  sed -e "s|^$$srcdirstrip/||;t" \
	      -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
	case $$dist_files in \
	  */*) $(MKDIR_P) `echo "$$dist_files" | \
			   sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
			   sort -u` ;; \
	esac; \
	for file in $$dist_files; do \
	  if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
	  if test -d $$d/$$file; then \
	    dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
	    if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
	      cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
	    fi; \
	    cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
	  else \
	    test -f $(distdir)/$$file \
	    || cp -p $$d/$$file $(distdir)/$$file \
	    || exit 1; \
	  fi; \
	done
check-am: all-am
check: check-am
all-am: Makefile $(DATA)
installdirs:
	for dir in "$(DESTDIR)$(datadir)"; do \
	  test -z "$$dir" || $(MKDIR_P) "$$dir"; \
	done
install: install-am
install-exec: install-exec-am
install-data: install-data-am
uninstall: uninstall-am

install-am: all-am
	@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am

installcheck: installcheck-am
install-strip:
	$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
	  install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
	  `test -z '$(STRIP)' || \
	    echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
mostlyclean-generic:

clean-generic:

distclean-generic:
	-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)

maintainer-clean-generic:
	@echo "This command is intended for maintainers to use"
	@echo "it deletes files that may require special tools to rebuild."
clean: clean-am

clean-am: clean-generic mostlyclean-am

distclean: distclean-am
	-rm -f Makefile
distclean-am: clean-am distclean-generic

dvi: dvi-am

dvi-am:

html: html-am

info: info-am

info-am:

install-data-am: install-dataDATA

install-dvi: install-dvi-am

install-exec-am:

install-html: install-html-am

install-info: install-info-am

install-man:

install-pdf: install-pdf-am

install-ps: install-ps-am

installcheck-am:

maintainer-clean: maintainer-clean-am
	-rm -f Makefile
maintainer-clean-am: distclean-am maintainer-clean-generic

mostlyclean: mostlyclean-am

mostlyclean-am: mostlyclean-generic

pdf: pdf-am

pdf-am:

ps: ps-am

ps-am:

uninstall-am: uninstall-dataDATA

.MAKE: install-am install-strip

.PHONY: all all-am check check-am clean clean-generic distclean \
	distclean-generic distdir dvi dvi-am html html-am info info-am \
	install install-am install-data install-data-am \
	install-dataDATA install-dvi install-dvi-am install-exec \
	install-exec-am install-html install-html-am install-info \
	install-info-am install-man install-pdf install-pdf-am \
	install-ps install-ps-am install-strip installcheck \
	installcheck-am installdirs maintainer-clean \
	maintainer-clean-generic mostlyclean mostlyclean-generic pdf \
	pdf-am ps ps-am uninstall uninstall-am uninstall-dataDATA

# Tell versions [3.59,3.63) of GNU make to not export all variables.
# Otherwise a system limit (for SysV at least) may be exceeded.
.NOEXPORT:


================================================
FILE: tessdata/configs/api_config
================================================
tessedit_zero_rejection T


================================================
FILE: tessdata/configs/box.train
================================================
file_type                   .bl
tessedit_use_nn				F
textord_fast_pitch_test	T
tessedit_single_match	0
newcp_ratings_on 0
tessedit_zero_rejection T
tessedit_minimal_rejection F
tessedit_write_rep_codes F
ignore_weird_blocks F
tessedit_tweaking_tess_vars T
il1_adaption_test 1
edges_children_fix T
edges_childarea 0.65
edges_boxarea 0.9
tessedit_resegment_from_boxes T
tessedit_train_from_boxes T
textord_repeat_extraction F
textord_no_rejects T
debug_file tesseract.log


================================================
FILE: tessdata/configs/box.train.stderr
================================================
file_type                   .bl
tessedit_use_nn				F
textord_fast_pitch_test	T
tessedit_single_match	0
newcp_ratings_on 0
tessedit_zero_rejection T
tessedit_minimal_rejection F
tessedit_write_rep_codes F
ignore_weird_blocks F
tessedit_tweaking_tess_vars T
il1_adaption_test 1
edges_children_fix T
edges_childarea 0.65
edges_boxarea 0.9
tessedit_resegment_from_boxes T
tessedit_train_from_boxes T
textord_repeat_extraction F
textord_no_rejects T


================================================
FILE: tessdata/configs/inter
================================================
interactive_mode				T
edit_variables					T
tessedit_draw_words			T
tessedit_draw_outwords		T


================================================
FILE: tessdata/configs/kannada
================================================
textord_skewsmooth_offset 8
textord_skewsmooth_offset2 8
textord_merge_desc 0.5
textord_no_rejects 1


================================================
FILE: tessdata/configs/makebox
================================================
tessedit_create_boxfile 1


================================================
FILE: tessdata/configs/unlv
================================================
tessedit_write_unlv 1
tessedit_write_output 0
tessedit_write_txt_map 0


================================================
FILE: tessdata/confsets
================================================
ao
ft
ce


================================================
FILE: tessdata/deu.DangAmbigs
================================================


================================================
FILE: tessdata/deu.freq-dawg
================================================


================================================
FILE: tessdata/deu.inttemp
================================================


================================================
FILE: tessdata/deu.normproto
================================================


================================================
FILE: tessdata/deu.pffmtable
================================================


================================================
FILE: tessdata/deu.unicharset
================================================


================================================
FILE: tessdata/deu.user-words
================================================


================================================
FILE: tessdata/deu.word-dawg
================================================


================================================
FILE: tessdata/eng.DangAmbigs
================================================
1	m	2	r n
2	r n	1	m
1	m	2	i n
2	i n	1	m
1	d	2	c l
2	c l	1	d
2	n n	2	r m
2	r m	2	n n
1	n	2	r i
2	r i	1	n
2	l i	1	h
2	l r	1	h
2	i i	1	u
2	i i	1	n
2	n i	1	m
3	i i i	1	m
2	l l	1	H
3	I - I	1	H
2	v v	1	w
2	V V	1	W
1	t	1	f
1	f	1	t
1	a	1	o
1	o	1	a
1	e	1	c
1	c	1	e
2	r r	1	n
1	E	2	f i
2	l <	1	k
2	l d	2	k i
2	l x	1	h
2	x n	1	m
2	u x	2	i n
1	r	1	t
1	d	2	t l
2	d i	2	t h
2	u r	2	i n
2	u n	2	i m
1	u	1	a


================================================
FILE: tessdata/eng.normproto
================================================
4
linear   essential      -0.250000   0.750000
linear   essential       0.000000   1.000000
linear   essential       0.000000   1.000000
linear   essential       0.000000   1.000000

t 2
significant   elliptical  8610
	  0.299435  0.184164  0.200277  0.096446
	  0.000175  0.000302  0.000108  0.000266
significant   elliptical  1211
	  0.302144  0.253395  0.202977  0.142957
	  0.000170  0.000172  0.000113  0.000282

h 4
significant   elliptical  2370
	  0.306469  0.319058  0.223216  0.162562
	  0.000289  0.000279  0.000154  0.000398
significant   elliptical   768
	  0.291382  0.279694  0.206041  0.160267
	  0.000106  0.000100  0.000120  0.000147
significant   elliptical   661
	  0.294002  0.268437  0.191557  0.141566
	  0.000100  0.000100  0.000112  0.000100
significant   elliptical   105
	  0.287551  0.304908  0.208618  0.133593
	  0.000100  0.000119  0.000100  0.000100

r 7
significant   elliptical   370
	  0.252681  0.237623  0.185248  0.139956
	  0.000137  0.000184  0.000102  0.000100
significant   elliptical   430
	  0.278177  0.208926  0.172354  0.148990
	  0.000102  0.000100  0.000100  0.000100
significant   elliptical   235
	  0.255656  0.274913  0.185362  0.197751
	  0.000115  0.000100  0.000100  0.000100
significant   elliptical   332
	  0.248713  0.254659  0.178532  0.176183
	  0.000100  0.000117  0.000100  0.000105
significant   elliptical   383
	  0.271088  0.153671  0.172946  0.088653
	  0.000100  0.000115  0.000100  0.000100
significant   elliptical   495
	  0.297427  0.187667  0.158936  0.154356
	  0.000121  0.000100  0.000123  0.000132
significant   elliptical   270
	  0.302829  0.158276  0.151350  0.127814
	  0.000100  0.000100  0.000100  0.000100

o 1
significant   elliptical  9440
	  0.249447  0.243556  0.159045  0.152329
	  0.000123  0.000229  0.000101  0.000276

u 1
significant   elliptical  3409
	  0.247496  0.257385  0.165278  0.158632
	  0.000193  0.000390  0.000117  0.000281

g 6
significant   elliptical   264
	  0.174040  0.367248  0.231986  0.181129
	  0.000101  0.000154  0.000100  0.000254
significant   elliptical   121
	  0.145169  0.348122  0.245504  0.173756
	  0.000109  0.000218  0.000100  0.000134
significant   elliptical   295
	  0.147021  0.349669  0.215877  0.131475
	  0.000117  0.000151  0.000100  0.000133
significant   elliptical   363
	  0.149628  0.365700  0.223867  0.154998
	  0.000168  0.000110  0.000101  0.000115
significant   elliptical  1163
	  0.165745  0.314322  0.214687  0.150981
	  0.000141  0.000385  0.000171  0.000304
significant   elliptical   141
	  0.133941  0.400174  0.239066  0.145788
	  0.000123  0.000100  0.000100  0.000119

N 3
significant   elliptical   194
	  0.372916  0.429994  0.228078  0.226703
	  0.000353  0.000291  0.000182  0.000268
significant   elliptical   221
	  0.345566  0.389373  0.214482  0.195290
	  0.000181  0.000287  0.000132  0.000179
significant   elliptical   225
	  0.328708  0.335850  0.202029  0.188135
	  0.000164  0.000245  0.000180  0.000209

e 3
significant   elliptical 12197
	  0.247356  0.243955  0.157609  0.135625
	  0.000140  0.000229  0.000101  0.000212
significant   elliptical  1696
	  0.250370  0.296180  0.154856  0.155235
	  0.000159  0.000267  0.000110  0.000288
significant   elliptical   447
	  0.224680  0.260822  0.162254  0.190152
	  0.000106  0.000118  0.000107  0.000100

w 4
significant   elliptical   316
	  0.254699  0.375592  0.162218  0.227753
	  0.000220  0.000271  0.000100  0.000279
significant   elliptical   280
	  0.282811  0.328077  0.159947  0.217574
	  0.000244  0.000201  0.000118  0.000225
significant   elliptical   516
	  0.287197  0.297470  0.162288  0.202954
	  0.000143  0.000170  0.000144  0.000230
significant   elliptical   493
	  0.272697  0.311736  0.146631  0.183159
	  0.000131  0.000232  0.000100  0.000138

S 6
significant   elliptical    49
	  0.345498  0.396425  0.228345  0.165566
	  0.000100  0.000100  0.000100  0.000100
significant   elliptical   136
	  0.361266  0.409660  0.240134  0.181895
	  0.000115  0.000173  0.000100  0.000129
significant   elliptical   214
	  0.325209  0.378737  0.223069  0.182323
	  0.000137  0.000122  0.000125  0.000160
significant   elliptical    85
	  0.371446  0.364198  0.256071  0.171205
	  0.000100  0.000100  0.000100  0.000132
significant   elliptical   735
	  0.325255  0.332417  0.213602  0.157740
	  0.000176  0.000256  0.000199  0.000252
significant   elliptical   176
	  0.332164  0.255031  0.223884  0.123973
	  0.000114  0.000188  0.000100  0.000130

F 4
significant   elliptical   103
	  0.423271  0.363987  0.235636  0.189107
	  0.000175  0.000377  0.000113  0.000214
significant   elliptical   113
	  0.369277  0.335304  0.217047  0.186483
	  0.000390  0.000402  0.000125  0.000241
significant   elliptical   143
	  0.388568  0.321729  0.219516  0.155372
	  0.000201  0.000200  0.000110  0.000135
significant   elliptical   217
	  0.392000  0.251433  0.200758  0.153752
	  0.000286  0.000223  0.000194  0.000305

i 5
significant   elliptical   356
	  0.326672  0.208622  0.223728  0.080844
	  0.000100  0.000100  0.000100  0.000108
significant   elliptical   234
	  0.317264  0.190190  0.231090  0.099605
	  0.000105  0.000100  0.000112  0.000114
significant   elliptical  5771
	  0.338480  0.171874  0.213238  0.065962
	  0.000403  0.000265  0.000196  0.000181
significant   elliptical   500
	  0.280936  0.248295  0.235692  0.115160
	  0.000142  0.000100  0.000145  0.000112
significant   elliptical   486
	  0.296189  0.265423  0.231922  0.140003
	  0.000117  0.000100  0.000103  0.000135

n 3
significant   elliptical   634
	  0.237099  0.294436  0.177506  0.195898
	  0.000104  0.000100  0.000100  0.000126
significant   elliptical   307
	  0.230110  0.245470  0.167303  0.140916
	  0.000100  0.000100  0.000100  0.000116
significant   elliptical   293
	  0.259299  0.272558  0.158367  0.146043
	  0.000108  0.000100  0.000100  0.000100

d 3
significant   elliptical  1773
	  0.314511  0.333182  0.221473  0.174463
	  0.000271  0.000299  0.000166  0.000360
significant   elliptical   259
	  0.287463  0.273171  0.197717  0.169064
	  0.000100  0.000100  0.000100  0.000100
significant   elliptical   407
	  0.304750  0.293347  0.211861  0.178309
	  0.000111  0.000180  0.000100  0.000102

f 7
significant   elliptical   134
	  0.288501  0.236666  0.278269  0.128410
	  0.000100  0.000117  0.000100  0.000146
significant   elliptical   134
	  0.340366  0.268187  0.281541  0.153156
	  0.000114  0.000108  0.000111  0.000175
significant   elliptical   412
	  0.274232  0.287445  0.307079  0.184270
	  0.000259  0.000157  0.000256  0.000323
significant   elliptical   201
	  0.350857  0.311729  0.241736  0.153722
	  0.000158  0.000220  0.000143  0.000364
significant   elliptical    70
	  0.344230  0.344292  0.238106  0.197935
	  0.000131  0.000124  0.000120  0.000139
significant   elliptical   935
	  0.368457  0.196126  0.215046  0.102575
	  0.000209  0.000317  0.000295  0.000318
significant   elliptical   290
	  0.375742  0.244231  0.238671  0.124777
	  0.000284  0.000167  0.000112  0.000152

a 1
significant   elliptical  9536
	  0.240516  0.258173  0.164388  0.147620
	  0.000146  0.000433  0.000108  0.000387

m 1
significant   elliptical  3040
	  0.246481  0.381567  0.167138  0.234080
	  0.000193  0.000589  0.000122  0.000389

l 4
significant   elliptical  2014
	  0.330579  0.156485  0.213800  0.066361
	  0.000122  0.000157  0.000170  0.000186
significant   elliptical  1153
	  0.349382  0.181020  0.236686  0.073104
	  0.000210  0.000144  0.000100  0.000155
significant   elliptical   264
	  0.321312  0.184586  0.230401  0.097251
	  0.000100  0.000138  0.000154  0.000127
significant   elliptical   641
	  0.300769  0.255178  0.253408  0.132180
	  0.000152  0.000201  0.000125  0.000382

y 5
significant   elliptical   434
	  0.172164  0.333322  0.227291  0.169859
	  0.000481  0.000251  0.000274  0.000305
significant   elliptical    56
	  0.207561  0.362032  0.251222  0.218853
	  0.000156  0.000130  0.000146  0.000116
significant   elliptical   686
	  0.208353  0.246933  0.215863  0.136459
	  0.000160  0.000154  0.000127  0.000231
significant   elliptical   223
	  0.221578  0.221637  0.196472  0.126159
	  0.000219  0.000100  0.000136  0.000158
significant   elliptical   767
	  0.195547  0.283833  0.223610  0.150127
	  0.000257  0.000203  0.000161  0.000183

s 4
significant   elliptical   802
	  0.249032  0.290493  0.158683  0.147099
	  0.000117  0.000112  0.000100  0.000188
significant   elliptical   199
	  0.248646  0.256870  0.170179  0.177279
	  0.000137  0.000269  0.000107  0.000100
significant   elliptical  1025
	  0.250281  0.202114  0.164019  0.106339
	  0.000114  0.000129  0.000100  0.000132
significant   elliptical   287
	  0.236911  0.228487  0.172795  0.120707
	  0.000100  0.000100  0.000100  0.000100

¢ 5
significant   elliptical   179
	  0.248059  0.273152  0.196994  0.128750
	  0.000173  0.000332  0.000336  0.000249
significant   elliptical    36
	  0.263512  0.177072  0.179446  0.114134
	  0.000362  0.000239  0.000309  0.000125
significant   elliptical    28
	  0.373267  0.274081  0.207873  0.144128
	  0.000227  0.000152  0.000234  0.000220
significant   elliptical    10
	  0.347706  0.280916  0.176378  0.123427
	  0.000253  0.000200  0.000100  0.000100
significant   elliptical    34
	  0.340423  0.219668  0.170886  0.114953
	  0.000256  0.000337  0.000277  0.000169

¥ 2
significant   elliptical   197
	  0.371851  0.349770  0.216614  0.167153
	  0.000655  0.000804  0.000220  0.000466
significant   elliptical    91
	  0.381075  0.253022  0.209125  0.148389
	  0.000437  0.000177  0.000266  0.000338

q 2
significant   elliptical   254
	  0.188991  0.294598  0.208909  0.149868
	  0.000381  0.000509  0.000234  0.000239
significant   elliptical    34
	  0.179094  0.370109  0.231123  0.189550
	  0.000100  0.000139  0.000111  0.000354

V 2
significant   elliptical   124
	  0.379595  0.262776  0.195243  0.163874
	  0.000438  0.000263  0.000109  0.000203
significant   elliptical   158
	  0.435941  0.310063  0.207916  0.184003
	  0.000638  0.000333  0.000210  0.000189

L 2
significant   elliptical   376
	  0.286288  0.287162  0.238861  0.166300
	  0.000309  0.000460  0.000241  0.000348
significant   elliptical   232
	  0.259265  0.207656  0.216676  0.125588
	  0.000186  0.000167  0.000145  0.000320

U 2
significant   elliptical   163
	  0.372090  0.377436  0.233523  0.205798
	  0.000502  0.000508  0.000168  0.000268
significant   elliptical   125
	  0.329946  0.311169  0.208336  0.186348
	  0.000270  0.000225  0.000136  0.000155

v 3
significant   elliptical   921
	  0.297052  0.199373  0.149484  0.135523
	  0.000216  0.000187  0.000125  0.000226
significant   elliptical   254
	  0.264111  0.248093  0.156969  0.144730
	  0.000167  0.000177  0.000100  0.000201
significant   elliptical   165
	  0.315996  0.253227  0.159152  0.183831
	  0.000170  0.000201  0.000100  0.000489

E 4
significant   elliptical   354
	  0.331066  0.398682  0.226139  0.176520
	  0.000192  0.000272  0.000135  0.000303
significant   elliptical   149
	  0.364265  0.443744  0.248242  0.189161
	  0.000186  0.000516  0.000150  0.000176
significant   elliptical   120
	  0.341846  0.301588  0.230205  0.146241
	  0.000179  0.000100  0.00
Download .txt
gitextract_9uolaib_/

├── .gitignore
├── Classes/
│   ├── OCRAppDelegate.h
│   ├── OCRAppDelegate.m
│   ├── OCRDisplayViewController.h
│   ├── OCRDisplayViewController.mm
│   ├── ZoomableImage.h
│   └── ZoomableImage.m
├── MainWindow.xib
├── OCR-Info.plist
├── OCR.xcodeproj/
│   ├── project.pbxproj
│   └── rcarlsen.perspectivev3
├── OCRDisplayViewController.xib
├── OCR_Prefix.pch
├── UIImage-categories/
│   ├── UIImage+Alpha.h
│   ├── UIImage+Alpha.m
│   ├── UIImage+Resize.h
│   ├── UIImage+Resize.m
│   ├── UIImage+RoundedCorner.h
│   └── UIImage+RoundedCorner.m
├── dev/
│   └── TessIcon.pxm
├── main.m
├── readme.txt
├── tessdata/
│   ├── Makefile.am
│   ├── Makefile.in
│   ├── configs/
│   │   ├── Makefile.am
│   │   ├── Makefile.in
│   │   ├── api_config
│   │   ├── box.train
│   │   ├── box.train.stderr
│   │   ├── inter
│   │   ├── kannada
│   │   ├── makebox
│   │   └── unlv
│   ├── confsets
│   ├── deu.DangAmbigs
│   ├── deu.freq-dawg
│   ├── deu.inttemp
│   ├── deu.normproto
│   ├── deu.pffmtable
│   ├── deu.unicharset
│   ├── deu.user-words
│   ├── deu.word-dawg
│   ├── eng.DangAmbigs
│   ├── eng.freq-dawg
│   ├── eng.inttemp
│   ├── eng.normproto
│   ├── eng.pffmtable
│   ├── eng.unicharset
│   ├── eng.user-words
│   ├── eng.word-dawg
│   ├── fra.DangAmbigs
│   ├── fra.freq-dawg
│   ├── fra.inttemp
│   ├── fra.normproto
│   ├── fra.pffmtable
│   ├── fra.unicharset
│   ├── fra.user-words
│   ├── fra.word-dawg
│   ├── ita.DangAmbigs
│   ├── ita.freq-dawg
│   ├── ita.inttemp
│   ├── ita.normproto
│   ├── ita.pffmtable
│   ├── ita.unicharset
│   ├── ita.user-words
│   ├── ita.word-dawg
│   ├── makedummies
│   ├── nld.DangAmbigs
│   ├── nld.freq-dawg
│   ├── nld.inttemp
│   ├── nld.normproto
│   ├── nld.pffmtable
│   ├── nld.unicharset
│   ├── nld.user-words
│   ├── nld.word-dawg
│   ├── spa.DangAmbigs
│   ├── spa.freq-dawg
│   ├── spa.inttemp
│   ├── spa.normproto
│   ├── spa.pffmtable
│   ├── spa.unicharset
│   ├── spa.user-words
│   ├── spa.word-dawg
│   └── tessconfigs/
│       ├── Makefile.am
│       ├── Makefile.in
│       ├── batch
│       ├── batch.nochop
│       ├── matdemo
│       ├── msdemo
│       ├── nobatch
│       └── segdemo
└── tessdata-svn/
    ├── eng.DangAmbigs
    ├── eng.freq-dawg
    ├── eng.inttemp
    ├── eng.normproto
    ├── eng.pffmtable
    ├── eng.traineddata
    ├── eng.unicharset
    ├── eng.user-words
    └── eng.word-dawg
Download .txt
SYMBOL INDEX (1 symbols across 1 files)

FILE: Classes/ZoomableImage.h
  function interface (line 25) | interface ZoomableImage : UIImageView {
Condensed preview — 100 files, each showing path, character count, and a content snippet. Download the .json file or copy for the full structured content (325K chars).
[
  {
    "path": ".gitignore",
    "chars": 160,
    "preview": "# xcode noise\nbuild/*\n*.pbxuser\n*.mode1v3\n*.mode2v3\n#Info.plist\n#*.xcodeproj\n\n# old skool\n.svn\n\n# osx noise\n.DS_Store\npr"
  },
  {
    "path": "Classes/OCRAppDelegate.h",
    "chars": 1112,
    "preview": "//\n//  OCRAppDelegate.h\n//  OCR\n//\n//  Created by Robert Carlsen on 04.09.2009.\n//\n//    Copyright (C) 2009, Robert Carl"
  },
  {
    "path": "Classes/OCRAppDelegate.m",
    "chars": 1417,
    "preview": "//\n//  OCRAppDelegate.m\n//  OCR\n//\n//  Created by Robert Carlsen on 04.09.2009.\n//\n//    Copyright (C) 2009, Robert Carl"
  },
  {
    "path": "Classes/OCRDisplayViewController.h",
    "chars": 2560,
    "preview": "//\n//    OCRDisplayViewController.h\n//    OCR\n//\n//    Created by Robert Carlsen on 03.12.2009.\n//\n//    Copyright (C) 2"
  },
  {
    "path": "Classes/OCRDisplayViewController.mm",
    "chars": 14562,
    "preview": "//\n//  OCRDisplayViewController.m\n//  OCR\n//\n//  Created by Robert Carlsen on 03.12.2009.\n//\n//    Copyright (C) 2009, R"
  },
  {
    "path": "Classes/ZoomableImage.h",
    "chars": 1024,
    "preview": "//\n//  ZoomableImage.h\n//  OCR\n//\n//  Created by Robert Carlsen on 06.12.2009.\n//\n//    Copyright (C) 2009, Robert Carls"
  },
  {
    "path": "Classes/ZoomableImage.m",
    "chars": 3604,
    "preview": "//\n//  ZoomableImage.m\n//  OCR\n//\n//  Created by Robert Carlsen on 06.12.2009.\n//\n//    Copyright (C) 2009, Robert Carls"
  },
  {
    "path": "MainWindow.xib",
    "chars": 7942,
    "preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<archive type=\"com.apple.InterfaceBuilder3.CocoaTouch.XIB\" version=\"7.10\">\n\t<data"
  },
  {
    "path": "OCR-Info.plist",
    "chars": 923,
    "preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/P"
  },
  {
    "path": "OCR.xcodeproj/project.pbxproj",
    "chars": 23185,
    "preview": "// !$*UTF8*$!\n{\n\tarchiveVersion = 1;\n\tclasses = {\n\t};\n\tobjectVersion = 45;\n\tobjects = {\n\n/* Begin PBXBuildFile section *"
  },
  {
    "path": "OCR.xcodeproj/rcarlsen.perspectivev3",
    "chars": 44539,
    "preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/P"
  },
  {
    "path": "OCRDisplayViewController.xib",
    "chars": 30688,
    "preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<archive type=\"com.apple.InterfaceBuilder3.CocoaTouch.XIB\" version=\"7.10\">\n\t<data"
  },
  {
    "path": "OCR_Prefix.pch",
    "chars": 175,
    "preview": "//\n// Prefix header for all source files of the 'OCR' target in the 'OCR' project\n//\n\n#ifdef __OBJC__\n    #import <Found"
  },
  {
    "path": "UIImage-categories/UIImage+Alpha.h",
    "chars": 365,
    "preview": "// UIImage+Alpha.h\n// Created by Trevor Harmon on 9/20/09.\n// Free for personal or commercial use, with or without modif"
  },
  {
    "path": "UIImage-categories/UIImage+Alpha.m",
    "chars": 5765,
    "preview": "// UIImage+Alpha.m\n// Created by Trevor Harmon on 9/20/09.\n// Free for personal or commercial use, with or without modif"
  },
  {
    "path": "UIImage-categories/UIImage+Resize.h",
    "chars": 824,
    "preview": "// UIImage+Resize.h\n// Created by Trevor Harmon on 8/5/09.\n// Free for personal or commercial use, with or without modif"
  },
  {
    "path": "UIImage-categories/UIImage+Resize.m",
    "chars": 8322,
    "preview": "// UIImage+Resize.m\n// Created by Trevor Harmon on 8/5/09.\n// Free for personal or commercial use, with or without modif"
  },
  {
    "path": "UIImage-categories/UIImage+RoundedCorner.h",
    "chars": 369,
    "preview": "// UIImage+RoundedCorner.h\n// Created by Trevor Harmon on 9/20/09.\n// Free for personal or commercial use, with or witho"
  },
  {
    "path": "UIImage-categories/UIImage+RoundedCorner.m",
    "chars": 3565,
    "preview": "// UIImage+RoundedCorner.m\n// Created by Trevor Harmon on 9/20/09.\n// Free for personal or commercial use, with or witho"
  },
  {
    "path": "main.m",
    "chars": 363,
    "preview": "//\n//  main.m\n//  OCR\n//\n//  Created by Robert Carlsen on 04.09.2009.\n//  Copyright recv'd productions 2009. All rights "
  },
  {
    "path": "readme.txt",
    "chars": 786,
    "preview": "Pocket OCR\nTesseract OCR for iPhone\n\nRobert Carlsen | robertcarlsen.net\n\nThis project is a demonstration of implementing"
  },
  {
    "path": "tessdata/Makefile.am",
    "chars": 1965,
    "preview": "datadir = @datadir@/tessdata\ndata_DATA = confsets \\\n            fra.DangAmbigs fra.freq-dawg fra.inttemp fra.normproto \\"
  },
  {
    "path": "tessdata/Makefile.in",
    "chars": 17231,
    "preview": "# Makefile.in generated by automake 1.10.1 from Makefile.am.\n# @configure_input@\n\n# Copyright (C) 1994, 1995, 1996, 1997"
  },
  {
    "path": "tessdata/configs/Makefile.am",
    "chars": 192,
    "preview": "datadir = @datadir@/tessdata/configs\ndata_DATA = inter makebox box.train unlv api_config kannada box.train.stderr\nEXTRA_"
  },
  {
    "path": "tessdata/configs/Makefile.in",
    "chars": 9840,
    "preview": "# Makefile.in generated by automake 1.10.1 from Makefile.am.\n# @configure_input@\n\n# Copyright (C) 1994, 1995, 1996, 1997"
  },
  {
    "path": "tessdata/configs/api_config",
    "chars": 26,
    "preview": "tessedit_zero_rejection T\n"
  },
  {
    "path": "tessdata/configs/box.train",
    "chars": 470,
    "preview": "file_type                   .bl\ntessedit_use_nn\t\t\t\tF\ntextord_fast_pitch_test\tT\ntessedit_single_match\t0\nnewcp_ratings_on "
  },
  {
    "path": "tessdata/configs/box.train.stderr",
    "chars": 445,
    "preview": "file_type                   .bl\ntessedit_use_nn\t\t\t\tF\ntextord_fast_pitch_test\tT\ntessedit_single_match\t0\nnewcp_ratings_on "
  },
  {
    "path": "tessdata/configs/inter",
    "chars": 93,
    "preview": "interactive_mode\t\t\t\tT\nedit_variables\t\t\t\t\tT\ntessedit_draw_words\t\t\tT\ntessedit_draw_outwords\t\tT\n"
  },
  {
    "path": "tessdata/configs/kannada",
    "chars": 101,
    "preview": "textord_skewsmooth_offset 8\ntextord_skewsmooth_offset2 8\ntextord_merge_desc 0.5\ntextord_no_rejects 1\n"
  },
  {
    "path": "tessdata/configs/makebox",
    "chars": 26,
    "preview": "tessedit_create_boxfile 1\n"
  },
  {
    "path": "tessdata/configs/unlv",
    "chars": 71,
    "preview": "tessedit_write_unlv 1\ntessedit_write_output 0\ntessedit_write_txt_map 0\n"
  },
  {
    "path": "tessdata/confsets",
    "chars": 9,
    "preview": "ao\nft\nce\n"
  },
  {
    "path": "tessdata/deu.DangAmbigs",
    "chars": 0,
    "preview": ""
  },
  {
    "path": "tessdata/deu.freq-dawg",
    "chars": 0,
    "preview": ""
  },
  {
    "path": "tessdata/deu.inttemp",
    "chars": 0,
    "preview": ""
  },
  {
    "path": "tessdata/deu.normproto",
    "chars": 0,
    "preview": ""
  },
  {
    "path": "tessdata/deu.pffmtable",
    "chars": 0,
    "preview": ""
  },
  {
    "path": "tessdata/deu.unicharset",
    "chars": 0,
    "preview": ""
  },
  {
    "path": "tessdata/deu.user-words",
    "chars": 0,
    "preview": ""
  },
  {
    "path": "tessdata/deu.word-dawg",
    "chars": 0,
    "preview": ""
  },
  {
    "path": "tessdata/eng.DangAmbigs",
    "chars": 392,
    "preview": "1\tm\t2\tr n\n2\tr n\t1\tm\n1\tm\t2\ti n\n2\ti n\t1\tm\n1\td\t2\tc l\n2\tc l\t1\td\n2\tn n\t2\tr m\n2\tr m\t2\tn n\n1\tn\t2\tr i\n2\tr i\t1\tn\n2\tl i\t1\th\n2\tl r\t"
  },
  {
    "path": "tessdata/eng.normproto",
    "chars": 39837,
    "preview": "4\nlinear   essential      -0.250000   0.750000\nlinear   essential       0.000000   1.000000\nlinear   essential       0.0"
  },
  {
    "path": "tessdata/eng.pffmtable",
    "chars": 565,
    "preview": "t 66\nh 77\nr 51\no 59\nu 81\ng 100\nN 79\ne 65\nw 94\nS 90\nF 79\ni 68\nn 74\nd 84\nf 71\na 76\nm 111\nl 58\ny 83\ns 82\n¢ 84\n¥ 88\nq 87\nV 7"
  },
  {
    "path": "tessdata/eng.unicharset",
    "chars": 455,
    "preview": "112\nNULL 0\nt 3\nh 3\nr 3\no 3\nu 3\ng 3\nN 5\ne 3\nw 3\nS 5\nF 5\ni 3\nn 3\nd 3\nf 3\na 3\nm 3\nl 3\ny 3\ns 3\n¢ 0\n¥ 0\nq 3\nV 5\nL 5\nU 5\nv 3\nE"
  },
  {
    "path": "tessdata/eng.user-words",
    "chars": 7289,
    "preview": "a\nabsurdum\nac\nacres\nactions\nadaption\nadjustments\naerobes\naffairs\nagents\nAlan\nAlbert\nAlberta\nAlfred\nAlice\nAlicia\nalliance"
  },
  {
    "path": "tessdata/fra.DangAmbigs",
    "chars": 0,
    "preview": ""
  },
  {
    "path": "tessdata/fra.freq-dawg",
    "chars": 0,
    "preview": ""
  },
  {
    "path": "tessdata/fra.inttemp",
    "chars": 0,
    "preview": ""
  },
  {
    "path": "tessdata/fra.normproto",
    "chars": 0,
    "preview": ""
  },
  {
    "path": "tessdata/fra.pffmtable",
    "chars": 0,
    "preview": ""
  },
  {
    "path": "tessdata/fra.unicharset",
    "chars": 0,
    "preview": ""
  },
  {
    "path": "tessdata/fra.user-words",
    "chars": 0,
    "preview": ""
  },
  {
    "path": "tessdata/fra.word-dawg",
    "chars": 0,
    "preview": ""
  },
  {
    "path": "tessdata/ita.DangAmbigs",
    "chars": 0,
    "preview": ""
  },
  {
    "path": "tessdata/ita.freq-dawg",
    "chars": 0,
    "preview": ""
  },
  {
    "path": "tessdata/ita.inttemp",
    "chars": 0,
    "preview": ""
  },
  {
    "path": "tessdata/ita.normproto",
    "chars": 0,
    "preview": ""
  },
  {
    "path": "tessdata/ita.pffmtable",
    "chars": 0,
    "preview": ""
  },
  {
    "path": "tessdata/ita.unicharset",
    "chars": 0,
    "preview": ""
  },
  {
    "path": "tessdata/ita.user-words",
    "chars": 0,
    "preview": ""
  },
  {
    "path": "tessdata/ita.word-dawg",
    "chars": 0,
    "preview": ""
  },
  {
    "path": "tessdata/makedummies",
    "chars": 151,
    "preview": "#!/bin/sh\nfor f in DangAmbigs freq-dawg inttemp normproto pffmtable unicharset user-words word-dawg\ndo\n\tif [ ! -r $1.$f "
  },
  {
    "path": "tessdata/nld.DangAmbigs",
    "chars": 0,
    "preview": ""
  },
  {
    "path": "tessdata/nld.freq-dawg",
    "chars": 0,
    "preview": ""
  },
  {
    "path": "tessdata/nld.inttemp",
    "chars": 0,
    "preview": ""
  },
  {
    "path": "tessdata/nld.normproto",
    "chars": 0,
    "preview": ""
  },
  {
    "path": "tessdata/nld.pffmtable",
    "chars": 0,
    "preview": ""
  },
  {
    "path": "tessdata/nld.unicharset",
    "chars": 0,
    "preview": ""
  },
  {
    "path": "tessdata/nld.user-words",
    "chars": 0,
    "preview": ""
  },
  {
    "path": "tessdata/nld.word-dawg",
    "chars": 0,
    "preview": ""
  },
  {
    "path": "tessdata/spa.DangAmbigs",
    "chars": 0,
    "preview": ""
  },
  {
    "path": "tessdata/spa.freq-dawg",
    "chars": 0,
    "preview": ""
  },
  {
    "path": "tessdata/spa.inttemp",
    "chars": 0,
    "preview": ""
  },
  {
    "path": "tessdata/spa.normproto",
    "chars": 0,
    "preview": ""
  },
  {
    "path": "tessdata/spa.pffmtable",
    "chars": 0,
    "preview": ""
  },
  {
    "path": "tessdata/spa.unicharset",
    "chars": 0,
    "preview": ""
  },
  {
    "path": "tessdata/spa.user-words",
    "chars": 0,
    "preview": ""
  },
  {
    "path": "tessdata/spa.word-dawg",
    "chars": 0,
    "preview": ""
  },
  {
    "path": "tessdata/tessconfigs/Makefile.am",
    "chars": 166,
    "preview": "datadir = @datadir@/tessdata/tessconfigs\ndata_DATA = batch batch.nochop nobatch matdemo segdemo msdemo\nEXTRA_DIST = batc"
  },
  {
    "path": "tessdata/tessconfigs/Makefile.in",
    "chars": 9826,
    "preview": "# Makefile.in generated by automake 1.10.1 from Makefile.am.\n# @configure_input@\n\n# Copyright (C) 1994, 1995, 1996, 1997"
  },
  {
    "path": "tessdata/tessconfigs/batch",
    "chars": 50,
    "preview": "# No content needed as all defaults are correct.\n\n"
  },
  {
    "path": "tessdata/tessconfigs/batch.nochop",
    "chars": 29,
    "preview": "chop_enable 0\nenable_assoc 0\n"
  },
  {
    "path": "tessdata/tessconfigs/matdemo",
    "chars": 226,
    "preview": "#################################################\n# Adaptive Matcher Using PreAdapted Templates\n########################"
  },
  {
    "path": "tessdata/tessconfigs/msdemo",
    "chars": 351,
    "preview": "#################################################\n# Adaptive Matcher Using PreAdapted Templates\n########################"
  },
  {
    "path": "tessdata/tessconfigs/nobatch",
    "chars": 16,
    "preview": "display_text 0\n\n"
  },
  {
    "path": "tessdata/tessconfigs/segdemo",
    "chars": 271,
    "preview": "#################################################\n# Adaptive Matcher Using PreAdapted Templates\n########################"
  },
  {
    "path": "tessdata-svn/eng.DangAmbigs",
    "chars": 392,
    "preview": "1\tm\t2\tr n\n2\tr n\t1\tm\n1\tm\t2\ti n\n2\ti n\t1\tm\n1\td\t2\tc l\n2\tc l\t1\td\n2\tn n\t2\tr m\n2\tr m\t2\tn n\n1\tn\t2\tr i\n2\tr i\t1\tn\n2\tl i\t1\th\n2\tl r\t"
  },
  {
    "path": "tessdata-svn/eng.normproto",
    "chars": 39837,
    "preview": "4\nlinear   essential      -0.250000   0.750000\nlinear   essential       0.000000   1.000000\nlinear   essential       0.0"
  },
  {
    "path": "tessdata-svn/eng.pffmtable",
    "chars": 565,
    "preview": "t 66\nh 77\nr 51\no 59\nu 81\ng 100\nN 79\ne 65\nw 94\nS 90\nF 79\ni 68\nn 74\nd 84\nf 71\na 76\nm 111\nl 58\ny 83\ns 82\n¢ 84\n¥ 88\nq 87\nV 7"
  },
  {
    "path": "tessdata-svn/eng.unicharset",
    "chars": 455,
    "preview": "112\nNULL 0\nt 3\nh 3\nr 3\no 3\nu 3\ng 3\nN 5\ne 3\nw 3\nS 5\nF 5\ni 3\nn 3\nd 3\nf 3\na 3\nm 3\nl 3\ny 3\ns 3\n¢ 0\n¥ 0\nq 3\nV 5\nL 5\nU 5\nv 3\nE"
  },
  {
    "path": "tessdata-svn/eng.user-words",
    "chars": 7289,
    "preview": "a\nabsurdum\nac\nacres\nactions\nadaption\nadjustments\naerobes\naffairs\nagents\nAlan\nAlbert\nAlberta\nAlfred\nAlice\nAlicia\nalliance"
  }
]

// ... and 8 more files (download for full content)

About this extraction

This page contains the full source code of the rcarlsen/Pocket-OCR GitHub repository, extracted and formatted as plain text for AI agents and large language models (LLMs). The extraction includes 100 files (284.1 KB), approximately 107.2k tokens, and a symbol index with 1 extracted functions, classes, methods, constants, and types. Use this with OpenClaw, Claude, ChatGPT, Cursor, Windsurf, or any other AI tool that accepts text input. You can copy the full output to your clipboard or download it as a .txt file.

Extracted by GitExtract — free GitHub repo to text converter for AI. Built by Nikandr Surkov.

Copied to clipboard!