// !$*UTF8*$!
{
	archiveVersion = 1;
	classes = {
	};
	objectVersion = 45;
	objects = {

/* Begin PBXBuildFile section */
		1D3623260D0F684500981E51 /* AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 1D3623250D0F684500981E51 /* AppDelegate.m */; };
		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 */; settings = {ATTRIBUTES = (Weak, ); }; };
		1F766FE113BBADB100FB74C0 /* Localizable.strings in Resources */ = {isa = PBXBuildFile; fileRef = 1F766FDC13BBADB100FB74C0 /* Localizable.strings */; };
		1F766FE213BBADB100FB74C0 /* Localizable.strings in Resources */ = {isa = PBXBuildFile; fileRef = 1F766FDF13BBADB100FB74C0 /* Localizable.strings */; };
		288765FD0DF74451002DB57D /* CoreGraphics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 288765FC0DF74451002DB57D /* CoreGraphics.framework */; };
		301BF552109A68D80062928A /* libPhoneGap.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 301BF535109A57CC0062928A /* libPhoneGap.a */; };
		301BF570109A69640062928A /* www in Resources */ = {isa = PBXBuildFile; fileRef = 301BF56E109A69640062928A /* www */; };
		301BF5B5109A6A2B0062928A /* AddressBook.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 301BF5B4109A6A2B0062928A /* AddressBook.framework */; };
		301BF5B7109A6A2B0062928A /* AddressBookUI.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 301BF5B6109A6A2B0062928A /* AddressBookUI.framework */; };
		301BF5B9109A6A2B0062928A /* AudioToolbox.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 301BF5B8109A6A2B0062928A /* AudioToolbox.framework */; };
		301BF5BB109A6A2B0062928A /* AVFoundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 301BF5BA109A6A2B0062928A /* AVFoundation.framework */; settings = {ATTRIBUTES = (Weak, ); }; };
		301BF5BD109A6A2B0062928A /* CFNetwork.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 301BF5BC109A6A2B0062928A /* CFNetwork.framework */; };
		301BF5BF109A6A2B0062928A /* CoreLocation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 301BF5BE109A6A2B0062928A /* CoreLocation.framework */; };
		301BF5C1109A6A2B0062928A /* MediaPlayer.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 301BF5C0109A6A2B0062928A /* MediaPlayer.framework */; };
		301BF5C3109A6A2B0062928A /* QuartzCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 301BF5C2109A6A2B0062928A /* QuartzCore.framework */; };
		301BF5C5109A6A2B0062928A /* SystemConfiguration.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 301BF5C4109A6A2B0062928A /* SystemConfiguration.framework */; };
		3053AC6F109B7857006FCFE7 /* VERSION in Resources */ = {isa = PBXBuildFile; fileRef = 3053AC6E109B7857006FCFE7 /* VERSION */; };
		305D5FD1115AB8F900A74A75 /* MobileCoreServices.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 305D5FD0115AB8F900A74A75 /* MobileCoreServices.framework */; };
		3072F99713A8081B00425683 /* Capture.bundle in Resources */ = {isa = PBXBuildFile; fileRef = 3072F99613A8081B00425683 /* Capture.bundle */; };
		307D28A2123043360040C0FA /* PhoneGapBuildSettings.xcconfig in Resources */ = {isa = PBXBuildFile; fileRef = 307D28A1123043350040C0FA /* PhoneGapBuildSettings.xcconfig */; };
		308D05371370CCF300D202BF /* icon-72.png in Resources */ = {isa = PBXBuildFile; fileRef = 308D052E1370CCF300D202BF /* icon-72.png */; };
		308D05381370CCF300D202BF /* icon.png in Resources */ = {isa = PBXBuildFile; fileRef = 308D052F1370CCF300D202BF /* icon.png */; };
		308D05391370CCF300D202BF /* icon@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 308D05301370CCF300D202BF /* icon@2x.png */; };
		308D053C1370CCF300D202BF /* Default.png in Resources */ = {isa = PBXBuildFile; fileRef = 308D05341370CCF300D202BF /* Default.png */; };
		308D053D1370CCF300D202BF /* Default@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 308D05351370CCF300D202BF /* Default@2x.png */; };
		30E1352710E2C1420031B30D /* PhoneGap.plist in Resources */ = {isa = PBXBuildFile; fileRef = 30E1352610E2C1420031B30D /* PhoneGap.plist */; };
		30E5649213A7FCAF007403D8 /* CoreMedia.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 30E5649113A7FCAF007403D8 /* CoreMedia.framework */; settings = {ATTRIBUTES = (Weak, ); }; };
/* End PBXBuildFile section */

/* Begin PBXContainerItemProxy section */
		301BF534109A57CC0062928A /* PBXContainerItemProxy */ = {
			isa = PBXContainerItemProxy;
			containerPortal = 301BF52D109A57CC0062928A /* PhoneGapLib.xcodeproj */;
			proxyType = 2;
			remoteGlobalIDString = D2AAC07E0554694100DB518D;
			remoteInfo = PhoneGapLib;
		};
		301BF550109A68C00062928A /* PBXContainerItemProxy */ = {
			isa = PBXContainerItemProxy;
			containerPortal = 301BF52D109A57CC0062928A /* PhoneGapLib.xcodeproj */;
			proxyType = 1;
			remoteGlobalIDString = D2AAC07D0554694100DB518D;
			remoteInfo = PhoneGapLib;
		};
		30E47BC2136F595F00DBB853 /* PBXContainerItemProxy */ = {
			isa = PBXContainerItemProxy;
			containerPortal = 301BF52D109A57CC0062928A /* PhoneGapLib.xcodeproj */;
			proxyType = 2;
			remoteGlobalIDString = 303258D8136B2C9400982B63;
			remoteInfo = PhoneGap;
		};
/* End PBXContainerItemProxy section */

/* Begin PBXFileReference section */
		1D30AB110D05D00D00671497 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; };
		1D3623240D0F684500981E51 /* AppDelegate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AppDelegate.h; sourceTree = "<group>"; };
		1D3623250D0F684500981E51 /* AppDelegate.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = AppDelegate.m; sourceTree = "<group>"; };
		1D6058910D05DD3D006BFB54 /* KitchenSinktablet.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "KitchenSinktablet.app"; sourceTree = BUILT_PRODUCTS_DIR; };
		1DF5F4DF0D08C38300B7A737 /* UIKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = UIKit.framework; path = System/Library/Frameworks/UIKit.framework; sourceTree = SDKROOT; };
		1F766FDD13BBADB100FB74C0 /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = Localizable.strings; sourceTree = "<group>"; };
		1F766FE013BBADB100FB74C0 /* es */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = es; path = Localizable.strings; sourceTree = "<group>"; };
		288765FC0DF74451002DB57D /* CoreGraphics.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreGraphics.framework; path = System/Library/Frameworks/CoreGraphics.framework; sourceTree = SDKROOT; };
		29B97316FDCFA39411CA2CEA /* main.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = "<group>"; };
		301BF52D109A57CC0062928A /* PhoneGapLib.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; path = PhoneGapLib.xcodeproj; sourceTree = PHONEGAPLIB; };
		301BF56E109A69640062928A /* www */ = {isa = PBXFileReference; lastKnownFileType = folder; path = www; sourceTree = SOURCE_ROOT; };
		301BF5B4109A6A2B0062928A /* AddressBook.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AddressBook.framework; path = System/Library/Frameworks/AddressBook.framework; sourceTree = SDKROOT; };
		301BF5B6109A6A2B0062928A /* AddressBookUI.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AddressBookUI.framework; path = System/Library/Frameworks/AddressBookUI.framework; sourceTree = SDKROOT; };
		301BF5B8109A6A2B0062928A /* AudioToolbox.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AudioToolbox.framework; path = System/Library/Frameworks/AudioToolbox.framework; sourceTree = SDKROOT; };
		301BF5BA109A6A2B0062928A /* AVFoundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AVFoundation.framework; path = System/Library/Frameworks/AVFoundation.framework; sourceTree = SDKROOT; };
		301BF5BC109A6A2B0062928A /* CFNetwork.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CFNetwork.framework; path = System/Library/Frameworks/CFNetwork.framework; sourceTree = SDKROOT; };
		301BF5BE109A6A2B0062928A /* CoreLocation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreLocation.framework; path = System/Library/Frameworks/CoreLocation.framework; sourceTree = SDKROOT; };
		301BF5C0109A6A2B0062928A /* MediaPlayer.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = MediaPlayer.framework; path = System/Library/Frameworks/MediaPlayer.framework; sourceTree = SDKROOT; };
		301BF5C2109A6A2B0062928A /* QuartzCore.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = QuartzCore.framework; path = System/Library/Frameworks/QuartzCore.framework; sourceTree = SDKROOT; };
		301BF5C4109A6A2B0062928A /* SystemConfiguration.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = SystemConfiguration.framework; path = System/Library/Frameworks/SystemConfiguration.framework; sourceTree = SDKROOT; };
		3053AC6E109B7857006FCFE7 /* VERSION */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = VERSION; sourceTree = PHONEGAPLIB; };
		305D5FD0115AB8F900A74A75 /* MobileCoreServices.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = MobileCoreServices.framework; path = System/Library/Frameworks/MobileCoreServices.framework; sourceTree = SDKROOT; };
		3072F99613A8081B00425683 /* Capture.bundle */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.plug-in"; name = Capture.bundle; path = Resources/Capture.bundle; sourceTree = "<group>"; };
		307D28A1123043350040C0FA /* PhoneGapBuildSettings.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = PhoneGapBuildSettings.xcconfig; sourceTree = "<group>"; };
		308D052E1370CCF300D202BF /* icon-72.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "icon-72.png"; sourceTree = "<group>"; };
		308D052F1370CCF300D202BF /* icon.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = icon.png; sourceTree = "<group>"; };
		308D05301370CCF300D202BF /* icon@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "icon@2x.png"; sourceTree = "<group>"; };
		308D05341370CCF300D202BF /* Default.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = Default.png; sourceTree = "<group>"; };
		308D05351370CCF300D202BF /* Default@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Default@2x.png"; sourceTree = "<group>"; };
		30E1352610E2C1420031B30D /* PhoneGap.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = PhoneGap.plist; sourceTree = "<group>"; };
		30E5649113A7FCAF007403D8 /* CoreMedia.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreMedia.framework; path = System/Library/Frameworks/CoreMedia.framework; sourceTree = SDKROOT; };
		32CA4F630368D1EE00C91783 /* KitchenSinktablet-Prefix.pch */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "KitchenSinktablet-Prefix.pch"; sourceTree = "<group>"; };
		8D1107310486CEB800E47090 /* KitchenSinktablet-Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = "KitchenSinktablet-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 = (
				301BF552109A68D80062928A /* libPhoneGap.a in Frameworks */,
				1D60589F0D05DD5A006BFB54 /* Foundation.framework in Frameworks */,
				1DF5F4E00D08C38300B7A737 /* UIKit.framework in Frameworks */,
				288765FD0DF74451002DB57D /* CoreGraphics.framework in Frameworks */,
				301BF5B5109A6A2B0062928A /* AddressBook.framework in Frameworks */,
				301BF5B7109A6A2B0062928A /* AddressBookUI.framework in Frameworks */,
				301BF5B9109A6A2B0062928A /* AudioToolbox.framework in Frameworks */,
				301BF5BB109A6A2B0062928A /* AVFoundation.framework in Frameworks */,
				301BF5BD109A6A2B0062928A /* CFNetwork.framework in Frameworks */,
				301BF5BF109A6A2B0062928A /* CoreLocation.framework in Frameworks */,
				301BF5C1109A6A2B0062928A /* MediaPlayer.framework in Frameworks */,
				301BF5C3109A6A2B0062928A /* QuartzCore.framework in Frameworks */,
				301BF5C5109A6A2B0062928A /* SystemConfiguration.framework in Frameworks */,
				305D5FD1115AB8F900A74A75 /* MobileCoreServices.framework in Frameworks */,
				30E5649213A7FCAF007403D8 /* CoreMedia.framework in Frameworks */,
			);
			runOnlyForDeploymentPostprocessing = 0;
		};
/* End PBXFrameworksBuildPhase section */

/* Begin PBXGroup section */
		080E96DDFE201D6D7F000001 /* Classes */ = {
			isa = PBXGroup;
			children = (
				1D3623240D0F684500981E51 /* AppDelegate.h */,
				1D3623250D0F684500981E51 /* AppDelegate.m */,
			);
			path = Classes;
			sourceTree = SOURCE_ROOT;
		};
		19C28FACFE9D520D11CA2CBB /* Products */ = {
			isa = PBXGroup;
			children = (
				1D6058910D05DD3D006BFB54 /* KitchenSinktablet.app */,
			);
			name = Products;
			sourceTree = "<group>";
		};
		1F766FDB13BBADB100FB74C0 /* en.lproj */ = {
			isa = PBXGroup;
			children = (
				1F766FDC13BBADB100FB74C0 /* Localizable.strings */,
			);
			name = en.lproj;
			path = Resources/en.lproj;
			sourceTree = "<group>";
		};
		1F766FDE13BBADB100FB74C0 /* es.lproj */ = {
			isa = PBXGroup;
			children = (
				1F766FDF13BBADB100FB74C0 /* Localizable.strings */,
			);
			name = es.lproj;
			path = Resources/es.lproj;
			sourceTree = "<group>";
		};
		29B97314FDCFA39411CA2CEA /* CustomTemplate */ = {
			isa = PBXGroup;
			children = (
				301BF56E109A69640062928A /* www */,
				301BF52D109A57CC0062928A /* PhoneGapLib.xcodeproj */,
				080E96DDFE201D6D7F000001 /* Classes */,
				307C750510C5A3420062BCA9 /* Plugins */,
				29B97315FDCFA39411CA2CEA /* Other Sources */,
				29B97317FDCFA39411CA2CEA /* Resources */,
				29B97323FDCFA39411CA2CEA /* Frameworks */,
				19C28FACFE9D520D11CA2CBB /* Products */,
			);
			name = CustomTemplate;
			sourceTree = "<group>";
		};
		29B97315FDCFA39411CA2CEA /* Other Sources */ = {
			isa = PBXGroup;
			children = (
				32CA4F630368D1EE00C91783 /* KitchenSinktablet-Prefix.pch */,
				29B97316FDCFA39411CA2CEA /* main.m */,
			);
			name = "Other Sources";
			sourceTree = "<group>";
		};
		29B97317FDCFA39411CA2CEA /* Resources */ = {
			isa = PBXGroup;
			children = (
				1F766FDB13BBADB100FB74C0 /* en.lproj */,
				1F766FDE13BBADB100FB74C0 /* es.lproj */,
				3072F99613A8081B00425683 /* Capture.bundle */,
				308D052D1370CCF300D202BF /* icons */,
				308D05311370CCF300D202BF /* splash */,
				30E1352610E2C1420031B30D /* PhoneGap.plist */,
				3053AC6E109B7857006FCFE7 /* VERSION */,
				8D1107310486CEB800E47090 /* KitchenSinktablet-Info.plist */,
				307D28A1123043350040C0FA /* PhoneGapBuildSettings.xcconfig */,
			);
			name = Resources;
			sourceTree = "<group>";
		};
		29B97323FDCFA39411CA2CEA /* Frameworks */ = {
			isa = PBXGroup;
			children = (
				1DF5F4DF0D08C38300B7A737 /* UIKit.framework */,
				1D30AB110D05D00D00671497 /* Foundation.framework */,
				288765FC0DF74451002DB57D /* CoreGraphics.framework */,
				301BF5B4109A6A2B0062928A /* AddressBook.framework */,
				301BF5B6109A6A2B0062928A /* AddressBookUI.framework */,
				301BF5B8109A6A2B0062928A /* AudioToolbox.framework */,
				301BF5BA109A6A2B0062928A /* AVFoundation.framework */,
				301BF5BC109A6A2B0062928A /* CFNetwork.framework */,
				301BF5BE109A6A2B0062928A /* CoreLocation.framework */,
				301BF5C0109A6A2B0062928A /* MediaPlayer.framework */,
				301BF5C2109A6A2B0062928A /* QuartzCore.framework */,
				301BF5C4109A6A2B0062928A /* SystemConfiguration.framework */,
				305D5FD0115AB8F900A74A75 /* MobileCoreServices.framework */,
				30E5649113A7FCAF007403D8 /* CoreMedia.framework */,
			);
			name = Frameworks;
			sourceTree = "<group>";
		};
		301BF52E109A57CC0062928A /* Products */ = {
			isa = PBXGroup;
			children = (
				301BF535109A57CC0062928A /* libPhoneGap.a */,
				30E47BC3136F595F00DBB853 /* PhoneGap.framework */,
			);
			name = Products;
			sourceTree = "<group>";
		};
		307C750510C5A3420062BCA9 /* Plugins */ = {
			isa = PBXGroup;
			children = (
			);
			path = Plugins;
			sourceTree = SOURCE_ROOT;
		};
		308D052D1370CCF300D202BF /* icons */ = {
			isa = PBXGroup;
			children = (
				308D052E1370CCF300D202BF /* icon-72.png */,
				308D052F1370CCF300D202BF /* icon.png */,
				308D05301370CCF300D202BF /* icon@2x.png */,
			);
			name = icons;
			path = Resources/icons;
			sourceTree = "<group>";
		};
		308D05311370CCF300D202BF /* splash */ = {
			isa = PBXGroup;
			children = (
				308D05341370CCF300D202BF /* Default.png */,
				308D05351370CCF300D202BF /* Default@2x.png */,
			);
			name = splash;
			path = Resources/splash;
			sourceTree = "<group>";
		};
/* End PBXGroup section */

/* Begin PBXNativeTarget section */
		1D6058900D05DD3D006BFB54 /* KitchenSinktablet */ = {
			isa = PBXNativeTarget;
			buildConfigurationList = 1D6058960D05DD3E006BFB54 /* Build configuration list for PBXNativeTarget "KitchenSinktablet" */;
			buildPhases = (
				304B58A110DAC018002A0835 /* Touch www folder */,
				1D60588D0D05DD3D006BFB54 /* Resources */,
				1D60588E0D05DD3D006BFB54 /* Sources */,
				1D60588F0D05DD3D006BFB54 /* Frameworks */,
			);
			buildRules = (
			);
			dependencies = (
				301BF551109A68C00062928A /* PBXTargetDependency */,
			);
			name = "KitchenSinktablet";
			productName = "KitchenSinktablet";
			productReference = 1D6058910D05DD3D006BFB54 /* KitchenSinktablet.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 "KitchenSinktablet" */;
			compatibilityVersion = "Xcode 3.1";
			developmentRegion = English;
			hasScannedForEncodings = 1;
			knownRegions = (
				English,
				Japanese,
				French,
				German,
				en,
				es,
			);
			mainGroup = 29B97314FDCFA39411CA2CEA /* CustomTemplate */;
			projectDirPath = "";
			projectReferences = (
				{
					ProductGroup = 301BF52E109A57CC0062928A /* Products */;
					ProjectRef = 301BF52D109A57CC0062928A /* PhoneGapLib.xcodeproj */;
				},
			);
			projectRoot = "";
			targets = (
				1D6058900D05DD3D006BFB54 /* KitchenSinktablet */,
			);
		};
/* End PBXProject section */

/* Begin PBXReferenceProxy section */
		301BF535109A57CC0062928A /* libPhoneGap.a */ = {
			isa = PBXReferenceProxy;
			fileType = archive.ar;
			path = libPhoneGap.a;
			remoteRef = 301BF534109A57CC0062928A /* PBXContainerItemProxy */;
			sourceTree = BUILT_PRODUCTS_DIR;
		};
		30E47BC3136F595F00DBB853 /* PhoneGap.framework */ = {
			isa = PBXReferenceProxy;
			fileType = wrapper.cfbundle;
			path = PhoneGap.framework;
			remoteRef = 30E47BC2136F595F00DBB853 /* PBXContainerItemProxy */;
			sourceTree = BUILT_PRODUCTS_DIR;
		};
/* End PBXReferenceProxy section */

/* Begin PBXResourcesBuildPhase section */
		1D60588D0D05DD3D006BFB54 /* Resources */ = {
			isa = PBXResourcesBuildPhase;
			buildActionMask = 2147483647;
			files = (
				301BF570109A69640062928A /* www in Resources */,
				3053AC6F109B7857006FCFE7 /* VERSION in Resources */,
				30E1352710E2C1420031B30D /* PhoneGap.plist in Resources */,
				307D28A2123043360040C0FA /* PhoneGapBuildSettings.xcconfig in Resources */,
				308D05371370CCF300D202BF /* icon-72.png in Resources */,
				308D05381370CCF300D202BF /* icon.png in Resources */,
				308D05391370CCF300D202BF /* icon@2x.png in Resources */,
				308D053C1370CCF300D202BF /* Default.png in Resources */,
				308D053D1370CCF300D202BF /* Default@2x.png in Resources */,
				3072F99713A8081B00425683 /* Capture.bundle in Resources */,
				1F766FE113BBADB100FB74C0 /* Localizable.strings in Resources */,
				1F766FE213BBADB100FB74C0 /* Localizable.strings in Resources */,
			);
			runOnlyForDeploymentPostprocessing = 0;
		};
/* End PBXResourcesBuildPhase section */

/* Begin PBXShellScriptBuildPhase section */
		304B58A110DAC018002A0835 /* Touch www folder */ = {
			isa = PBXShellScriptBuildPhase;
			buildActionMask = 2147483647;
			files = (
			);
			inputPaths = (
			);
			name = "Touch www folder";
			outputPaths = (
			);
			runOnlyForDeploymentPostprocessing = 0;
			shellPath = /bin/sh;
			shellScript = "touch -cm ${PROJECT_DIR}/www";
		};
/* End PBXShellScriptBuildPhase section */

/* Begin PBXSourcesBuildPhase section */
		1D60588E0D05DD3D006BFB54 /* Sources */ = {
			isa = PBXSourcesBuildPhase;
			buildActionMask = 2147483647;
			files = (
				1D60589B0D05DD56006BFB54 /* main.m in Sources */,
				1D3623260D0F684500981E51 /* AppDelegate.m in Sources */,
			);
			runOnlyForDeploymentPostprocessing = 0;
		};
/* End PBXSourcesBuildPhase section */

/* Begin PBXTargetDependency section */
		301BF551109A68C00062928A /* PBXTargetDependency */ = {
			isa = PBXTargetDependency;
			name = PhoneGapLib;
			targetProxy = 301BF550109A68C00062928A /* PBXContainerItemProxy */;
		};
/* End PBXTargetDependency section */

/* Begin PBXVariantGroup section */
		1F766FDC13BBADB100FB74C0 /* Localizable.strings */ = {
			isa = PBXVariantGroup;
			children = (
				1F766FDD13BBADB100FB74C0 /* en */,
			);
			name = Localizable.strings;
			sourceTree = "<group>";
		};
		1F766FDF13BBADB100FB74C0 /* Localizable.strings */ = {
			isa = PBXVariantGroup;
			children = (
				1F766FE013BBADB100FB74C0 /* es */,
			);
			name = Localizable.strings;
			sourceTree = "<group>";
		};
/* End PBXVariantGroup section */

/* Begin XCBuildConfiguration section */
		1D6058940D05DD3E006BFB54 /* Debug */ = {
			isa = XCBuildConfiguration;
			buildSettings = {
				ALWAYS_SEARCH_USER_PATHS = NO;
				ARCHS = (
					armv6,
					armv7,
				);
				COPY_PHASE_STRIP = NO;
				GCC_DYNAMIC_NO_PIC = NO;
				GCC_OPTIMIZATION_LEVEL = 0;
				GCC_PRECOMPILE_PREFIX_HEADER = YES;
				GCC_PREFIX_HEADER = "KitchenSinktablet-Prefix.pch";
				INFOPLIST_FILE = "KitchenSinktablet-Info.plist";
				IPHONEOS_DEPLOYMENT_TARGET = 3.0;
				ONLY_ACTIVE_ARCH = NO;
				PRODUCT_NAME = "KitchenSinktablet";
				TARGETED_DEVICE_FAMILY = "1,2";
			};
			name = Debug;
		};
		1D6058950D05DD3E006BFB54 /* Release */ = {
			isa = XCBuildConfiguration;
			buildSettings = {
				ALWAYS_SEARCH_USER_PATHS = NO;
				ARCHS = (
					armv6,
					armv7,
				);
				COPY_PHASE_STRIP = YES;
				GCC_PRECOMPILE_PREFIX_HEADER = YES;
				GCC_PREFIX_HEADER = "KitchenSinktablet-Prefix.pch";
				INFOPLIST_FILE = "KitchenSinktablet-Info.plist";
				IPHONEOS_DEPLOYMENT_TARGET = 3.0;
				ONLY_ACTIVE_ARCH = NO;
				PRODUCT_NAME = "KitchenSinktablet";
				TARGETED_DEVICE_FAMILY = "1,2";
			};
			name = Release;
		};
		C01FCF4F08A954540054247B /* Debug */ = {
			isa = XCBuildConfiguration;
			baseConfigurationReference = 307D28A1123043350040C0FA /* PhoneGapBuildSettings.xcconfig */;
			buildSettings = {
				ARCHS = "$(ARCHS_STANDARD_32_BIT)";
				"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Distribution";
				GCC_C_LANGUAGE_STANDARD = c99;
				GCC_VERSION = com.apple.compilers.llvmgcc42;
				GCC_WARN_ABOUT_RETURN_TYPE = YES;
				GCC_WARN_UNUSED_VARIABLE = YES;
				IPHONEOS_DEPLOYMENT_TARGET = 3.0;
				OTHER_LDFLAGS = (
					"-weak_framework",
					UIKit,
					"-weak_framework",
					AVFoundation,
					"-weak_framework",
					CoreMedia,
					"-weak_library",
					/usr/lib/libSystem.B.dylib,
					"-all_load",
					"-Obj-C",
				);
				PREBINDING = NO;
				SDKROOT = iphoneos;
				SKIP_INSTALL = NO;
				USER_HEADER_SEARCH_PATHS = "\"$(PHONEGAPLIB)/Classes/JSON\" \"$(PHONEGAPLIB)/Classes\"";
			};
			name = Debug;
		};
		C01FCF5008A954540054247B /* Release */ = {
			isa = XCBuildConfiguration;
			baseConfigurationReference = 307D28A1123043350040C0FA /* PhoneGapBuildSettings.xcconfig */;
			buildSettings = {
				ARCHS = "$(ARCHS_STANDARD_32_BIT)";
				"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Distribution";
				GCC_C_LANGUAGE_STANDARD = c99;
				GCC_VERSION = com.apple.compilers.llvmgcc42;
				GCC_WARN_ABOUT_RETURN_TYPE = YES;
				GCC_WARN_UNUSED_VARIABLE = YES;
				IPHONEOS_DEPLOYMENT_TARGET = 3.0;
				OTHER_LDFLAGS = (
					"-weak_framework",
					UIKit,
					"-weak_framework",
					AVFoundation,
					"-weak_framework",
					CoreMedia,
					"-weak_library",
					/usr/lib/libSystem.B.dylib,
					"-all_load",
					"-Obj-C",
				);
				PREBINDING = NO;
				SDKROOT = iphoneos;
				SKIP_INSTALL = NO;
				USER_HEADER_SEARCH_PATHS = "\"$(PHONEGAPLIB)/Classes/JSON\" \"$(PHONEGAPLIB)/Classes\"";
			};
			name = Release;
		};
/* End XCBuildConfiguration section */

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