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

/* Begin PBXBuildFile section */
		9374F67F1D010711004ECE59 /* Syncbase.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 9374F6741D010711004ECE59 /* Syncbase.framework */; };
		9374F6921D01074B004ECE59 /* Syncbase.h in Headers */ = {isa = PBXBuildFile; fileRef = 9374F6901D01074B004ECE59 /* Syncbase.h */; settings = {ATTRIBUTES = (Public, ); }; };
		9374F6AD1D01081D004ECE59 /* AccessList.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9374F6A21D01081D004ECE59 /* AccessList.swift */; };
		9374F6AE1D01081D004ECE59 /* BatchDatabase.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9374F6A31D01081D004ECE59 /* BatchDatabase.swift */; };
		9374F6AF1D01081D004ECE59 /* Collection.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9374F6A41D01081D004ECE59 /* Collection.swift */; };
		9374F6B01D01081D004ECE59 /* Database.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9374F6A51D01081D004ECE59 /* Database.swift */; };
		9374F6B11D01081D004ECE59 /* DatabaseHandle.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9374F6A61D01081D004ECE59 /* DatabaseHandle.swift */; };
		9374F6B21D01081D004ECE59 /* Identifier.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9374F6A71D01081D004ECE59 /* Identifier.swift */; };
		9374F6B31D01081D004ECE59 /* Syncbase.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9374F6A81D01081D004ECE59 /* Syncbase.swift */; };
		9374F6B41D01081D004ECE59 /* Syncgroup.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9374F6A91D01081D004ECE59 /* Syncgroup.swift */; };
		9374F6B51D01081D004ECE59 /* SyncgroupInvite.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9374F6AA1D01081D004ECE59 /* SyncgroupInvite.swift */; };
		9374F6B61D01081D004ECE59 /* User.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9374F6AB1D01081D004ECE59 /* User.swift */; };
		9374F6B71D01081D004ECE59 /* WatchChange.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9374F6AC1D01081D004ECE59 /* WatchChange.swift */; };
		938DEA861D0BAE57003C9734 /* Blessing.swift in Sources */ = {isa = PBXBuildFile; fileRef = 938DEA851D0BAE57003C9734 /* Blessing.swift */; };
		938DEA891D0F3FD4003C9734 /* BasicDatabaseTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 938DEA871D0F3FC7003C9734 /* BasicDatabaseTests.swift */; };
		938DEA8B1D107078003C9734 /* TestHelpers.swift in Sources */ = {isa = PBXBuildFile; fileRef = 938DEA8A1D107078003C9734 /* TestHelpers.swift */; };
		938DEA9F1D12257E003C9734 /* OAuth.swift in Sources */ = {isa = PBXBuildFile; fileRef = 938DEA9E1D12257E003C9734 /* OAuth.swift */; };
		93971D041D3F4D0E00FE4033 /* StressTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 93971D031D3F4D0E00FE4033 /* StressTests.swift */; };
		93D90C4D1D080E18004A8E72 /* Error.swift in Sources */ = {isa = PBXBuildFile; fileRef = 93D90C4C1D080E18004A8E72 /* Error.swift */; };
		93D90C591D08BD6E004A8E72 /* SyncbaseCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 93D90C561D08BD62004A8E72 /* SyncbaseCore.framework */; };
/* End PBXBuildFile section */

/* Begin PBXContainerItemProxy section */
		9374F6801D010711004ECE59 /* PBXContainerItemProxy */ = {
			isa = PBXContainerItemProxy;
			containerPortal = 9374F66B1D010711004ECE59 /* Project object */;
			proxyType = 1;
			remoteGlobalIDString = 9374F6731D010711004ECE59;
			remoteInfo = Syncbase;
		};
		93D90C551D08BD62004A8E72 /* PBXContainerItemProxy */ = {
			isa = PBXContainerItemProxy;
			containerPortal = 93D90C501D08BD61004A8E72 /* SyncbaseCore.xcodeproj */;
			proxyType = 2;
			remoteGlobalIDString = 30AD2DFF1CDD506700A28A0C;
			remoteInfo = SyncbaseCore;
		};
		93D90C571D08BD62004A8E72 /* PBXContainerItemProxy */ = {
			isa = PBXContainerItemProxy;
			containerPortal = 93D90C501D08BD61004A8E72 /* SyncbaseCore.xcodeproj */;
			proxyType = 2;
			remoteGlobalIDString = 30AD2E091CDD506700A28A0C;
			remoteInfo = SyncbaseCoreTests;
		};
/* End PBXContainerItemProxy section */

/* Begin PBXFileReference section */
		9374F6741D010711004ECE59 /* Syncbase.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Syncbase.framework; sourceTree = BUILT_PRODUCTS_DIR; };
		9374F67E1D010711004ECE59 /* SyncbaseTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = SyncbaseTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; };
		9374F68F1D01074B004ECE59 /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
		9374F6901D01074B004ECE59 /* Syncbase.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Syncbase.h; sourceTree = "<group>"; };
		9374F6941D010751004ECE59 /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
		9374F6A21D01081D004ECE59 /* AccessList.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AccessList.swift; sourceTree = "<group>"; };
		9374F6A31D01081D004ECE59 /* BatchDatabase.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = BatchDatabase.swift; sourceTree = "<group>"; };
		9374F6A41D01081D004ECE59 /* Collection.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Collection.swift; sourceTree = "<group>"; };
		9374F6A51D01081D004ECE59 /* Database.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Database.swift; sourceTree = "<group>"; };
		9374F6A61D01081D004ECE59 /* DatabaseHandle.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = DatabaseHandle.swift; sourceTree = "<group>"; };
		9374F6A71D01081D004ECE59 /* Identifier.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Identifier.swift; sourceTree = "<group>"; };
		9374F6A81D01081D004ECE59 /* Syncbase.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Syncbase.swift; sourceTree = "<group>"; };
		9374F6A91D01081D004ECE59 /* Syncgroup.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Syncgroup.swift; sourceTree = "<group>"; };
		9374F6AA1D01081D004ECE59 /* SyncgroupInvite.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SyncgroupInvite.swift; sourceTree = "<group>"; };
		9374F6AB1D01081D004ECE59 /* User.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = User.swift; sourceTree = "<group>"; };
		9374F6AC1D01081D004ECE59 /* WatchChange.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = WatchChange.swift; sourceTree = "<group>"; };
		938DEA851D0BAE57003C9734 /* Blessing.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Blessing.swift; sourceTree = "<group>"; };
		938DEA871D0F3FC7003C9734 /* BasicDatabaseTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = BasicDatabaseTests.swift; sourceTree = "<group>"; };
		938DEA8A1D107078003C9734 /* TestHelpers.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TestHelpers.swift; sourceTree = "<group>"; };
		938DEA9E1D12257E003C9734 /* OAuth.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = OAuth.swift; sourceTree = "<group>"; };
		93971D031D3F4D0E00FE4033 /* StressTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = StressTests.swift; sourceTree = "<group>"; };
		93D90C4C1D080E18004A8E72 /* Error.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Error.swift; sourceTree = "<group>"; };
		93D90C501D08BD61004A8E72 /* SyncbaseCore.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = SyncbaseCore.xcodeproj; path = ../SyncbaseCore/SyncbaseCore.xcodeproj; sourceTree = "<group>"; };
/* End PBXFileReference section */

/* Begin PBXFrameworksBuildPhase section */
		9374F6701D010711004ECE59 /* Frameworks */ = {
			isa = PBXFrameworksBuildPhase;
			buildActionMask = 2147483647;
			files = (
				93D90C591D08BD6E004A8E72 /* SyncbaseCore.framework in Frameworks */,
			);
			runOnlyForDeploymentPostprocessing = 0;
		};
		9374F67B1D010711004ECE59 /* Frameworks */ = {
			isa = PBXFrameworksBuildPhase;
			buildActionMask = 2147483647;
			files = (
				9374F67F1D010711004ECE59 /* Syncbase.framework in Frameworks */,
			);
			runOnlyForDeploymentPostprocessing = 0;
		};
/* End PBXFrameworksBuildPhase section */

/* Begin PBXGroup section */
		9374F66A1D010711004ECE59 = {
			isa = PBXGroup;
			children = (
				93D90C501D08BD61004A8E72 /* SyncbaseCore.xcodeproj */,
				9374F68E1D01074B004ECE59 /* Source */,
				9374F6931D010751004ECE59 /* Tests */,
				9374F6751D010711004ECE59 /* Products */,
			);
			sourceTree = "<group>";
		};
		9374F6751D010711004ECE59 /* Products */ = {
			isa = PBXGroup;
			children = (
				9374F6741D010711004ECE59 /* Syncbase.framework */,
				9374F67E1D010711004ECE59 /* SyncbaseTests.xctest */,
			);
			name = Products;
			sourceTree = "<group>";
		};
		9374F68E1D01074B004ECE59 /* Source */ = {
			isa = PBXGroup;
			children = (
				9374F6A21D01081D004ECE59 /* AccessList.swift */,
				9374F6A31D01081D004ECE59 /* BatchDatabase.swift */,
				938DEA851D0BAE57003C9734 /* Blessing.swift */,
				9374F6A41D01081D004ECE59 /* Collection.swift */,
				9374F6A51D01081D004ECE59 /* Database.swift */,
				9374F6A61D01081D004ECE59 /* DatabaseHandle.swift */,
				93D90C4C1D080E18004A8E72 /* Error.swift */,
				9374F6A71D01081D004ECE59 /* Identifier.swift */,
				9374F68F1D01074B004ECE59 /* Info.plist */,
				938DEA9E1D12257E003C9734 /* OAuth.swift */,
				9374F6901D01074B004ECE59 /* Syncbase.h */,
				9374F6A81D01081D004ECE59 /* Syncbase.swift */,
				9374F6A91D01081D004ECE59 /* Syncgroup.swift */,
				9374F6AA1D01081D004ECE59 /* SyncgroupInvite.swift */,
				9374F6AB1D01081D004ECE59 /* User.swift */,
				9374F6AC1D01081D004ECE59 /* WatchChange.swift */,
			);
			path = Source;
			sourceTree = "<group>";
		};
		9374F6931D010751004ECE59 /* Tests */ = {
			isa = PBXGroup;
			children = (
				9374F6941D010751004ECE59 /* Info.plist */,
				938DEA871D0F3FC7003C9734 /* BasicDatabaseTests.swift */,
				938DEA8A1D107078003C9734 /* TestHelpers.swift */,
				93971D031D3F4D0E00FE4033 /* StressTests.swift */,
			);
			path = Tests;
			sourceTree = "<group>";
		};
		93D90C511D08BD61004A8E72 /* Products */ = {
			isa = PBXGroup;
			children = (
				93D90C561D08BD62004A8E72 /* SyncbaseCore.framework */,
				93D90C581D08BD62004A8E72 /* SyncbaseCoreTests.xctest */,
			);
			name = Products;
			sourceTree = "<group>";
		};
/* End PBXGroup section */

/* Begin PBXHeadersBuildPhase section */
		9374F6711D010711004ECE59 /* Headers */ = {
			isa = PBXHeadersBuildPhase;
			buildActionMask = 2147483647;
			files = (
				9374F6921D01074B004ECE59 /* Syncbase.h in Headers */,
			);
			runOnlyForDeploymentPostprocessing = 0;
		};
/* End PBXHeadersBuildPhase section */

/* Begin PBXNativeTarget section */
		9374F6731D010711004ECE59 /* Syncbase */ = {
			isa = PBXNativeTarget;
			buildConfigurationList = 9374F6881D010711004ECE59 /* Build configuration list for PBXNativeTarget "Syncbase" */;
			buildPhases = (
				9374F66F1D010711004ECE59 /* Sources */,
				9374F6701D010711004ECE59 /* Frameworks */,
				9374F6711D010711004ECE59 /* Headers */,
				9374F6721D010711004ECE59 /* Resources */,
			);
			buildRules = (
			);
			dependencies = (
			);
			name = Syncbase;
			productName = Syncbase;
			productReference = 9374F6741D010711004ECE59 /* Syncbase.framework */;
			productType = "com.apple.product-type.framework";
		};
		9374F67D1D010711004ECE59 /* SyncbaseTests */ = {
			isa = PBXNativeTarget;
			buildConfigurationList = 9374F68B1D010711004ECE59 /* Build configuration list for PBXNativeTarget "SyncbaseTests" */;
			buildPhases = (
				9374F67A1D010711004ECE59 /* Sources */,
				9374F67B1D010711004ECE59 /* Frameworks */,
				9374F67C1D010711004ECE59 /* Resources */,
			);
			buildRules = (
			);
			dependencies = (
				9374F6811D010711004ECE59 /* PBXTargetDependency */,
			);
			name = SyncbaseTests;
			productName = SyncbaseTests;
			productReference = 9374F67E1D010711004ECE59 /* SyncbaseTests.xctest */;
			productType = "com.apple.product-type.bundle.unit-test";
		};
/* End PBXNativeTarget section */

/* Begin PBXProject section */
		9374F66B1D010711004ECE59 /* Project object */ = {
			isa = PBXProject;
			attributes = {
				LastSwiftUpdateCheck = 0730;
				LastUpgradeCheck = 0730;
				ORGANIZATIONNAME = "Google, Inc.";
				TargetAttributes = {
					9374F6731D010711004ECE59 = {
						CreatedOnToolsVersion = 7.3.1;
					};
					9374F67D1D010711004ECE59 = {
						CreatedOnToolsVersion = 7.3.1;
					};
				};
			};
			buildConfigurationList = 9374F66E1D010711004ECE59 /* Build configuration list for PBXProject "Syncbase" */;
			compatibilityVersion = "Xcode 3.2";
			developmentRegion = English;
			hasScannedForEncodings = 0;
			knownRegions = (
				en,
			);
			mainGroup = 9374F66A1D010711004ECE59;
			productRefGroup = 9374F6751D010711004ECE59 /* Products */;
			projectDirPath = "";
			projectReferences = (
				{
					ProductGroup = 93D90C511D08BD61004A8E72 /* Products */;
					ProjectRef = 93D90C501D08BD61004A8E72 /* SyncbaseCore.xcodeproj */;
				},
			);
			projectRoot = "";
			targets = (
				9374F6731D010711004ECE59 /* Syncbase */,
				9374F67D1D010711004ECE59 /* SyncbaseTests */,
			);
		};
/* End PBXProject section */

/* Begin PBXReferenceProxy section */
		93D90C561D08BD62004A8E72 /* SyncbaseCore.framework */ = {
			isa = PBXReferenceProxy;
			fileType = wrapper.framework;
			path = SyncbaseCore.framework;
			remoteRef = 93D90C551D08BD62004A8E72 /* PBXContainerItemProxy */;
			sourceTree = BUILT_PRODUCTS_DIR;
		};
		93D90C581D08BD62004A8E72 /* SyncbaseCoreTests.xctest */ = {
			isa = PBXReferenceProxy;
			fileType = wrapper.cfbundle;
			path = SyncbaseCoreTests.xctest;
			remoteRef = 93D90C571D08BD62004A8E72 /* PBXContainerItemProxy */;
			sourceTree = BUILT_PRODUCTS_DIR;
		};
/* End PBXReferenceProxy section */

/* Begin PBXResourcesBuildPhase section */
		9374F6721D010711004ECE59 /* Resources */ = {
			isa = PBXResourcesBuildPhase;
			buildActionMask = 2147483647;
			files = (
			);
			runOnlyForDeploymentPostprocessing = 0;
		};
		9374F67C1D010711004ECE59 /* Resources */ = {
			isa = PBXResourcesBuildPhase;
			buildActionMask = 2147483647;
			files = (
			);
			runOnlyForDeploymentPostprocessing = 0;
		};
/* End PBXResourcesBuildPhase section */

/* Begin PBXSourcesBuildPhase section */
		9374F66F1D010711004ECE59 /* Sources */ = {
			isa = PBXSourcesBuildPhase;
			buildActionMask = 2147483647;
			files = (
				9374F6B71D01081D004ECE59 /* WatchChange.swift in Sources */,
				938DEA9F1D12257E003C9734 /* OAuth.swift in Sources */,
				9374F6AF1D01081D004ECE59 /* Collection.swift in Sources */,
				9374F6B11D01081D004ECE59 /* DatabaseHandle.swift in Sources */,
				9374F6B21D01081D004ECE59 /* Identifier.swift in Sources */,
				93D90C4D1D080E18004A8E72 /* Error.swift in Sources */,
				938DEA861D0BAE57003C9734 /* Blessing.swift in Sources */,
				9374F6B51D01081D004ECE59 /* SyncgroupInvite.swift in Sources */,
				9374F6AD1D01081D004ECE59 /* AccessList.swift in Sources */,
				9374F6B41D01081D004ECE59 /* Syncgroup.swift in Sources */,
				9374F6B31D01081D004ECE59 /* Syncbase.swift in Sources */,
				9374F6B01D01081D004ECE59 /* Database.swift in Sources */,
				9374F6B61D01081D004ECE59 /* User.swift in Sources */,
				9374F6AE1D01081D004ECE59 /* BatchDatabase.swift in Sources */,
			);
			runOnlyForDeploymentPostprocessing = 0;
		};
		9374F67A1D010711004ECE59 /* Sources */ = {
			isa = PBXSourcesBuildPhase;
			buildActionMask = 2147483647;
			files = (
				938DEA891D0F3FD4003C9734 /* BasicDatabaseTests.swift in Sources */,
				93971D041D3F4D0E00FE4033 /* StressTests.swift in Sources */,
				938DEA8B1D107078003C9734 /* TestHelpers.swift in Sources */,
			);
			runOnlyForDeploymentPostprocessing = 0;
		};
/* End PBXSourcesBuildPhase section */

/* Begin PBXTargetDependency section */
		9374F6811D010711004ECE59 /* PBXTargetDependency */ = {
			isa = PBXTargetDependency;
			target = 9374F6731D010711004ECE59 /* Syncbase */;
			targetProxy = 9374F6801D010711004ECE59 /* PBXContainerItemProxy */;
		};
/* End PBXTargetDependency section */

/* Begin XCBuildConfiguration section */
		9374F6861D010711004ECE59 /* Debug */ = {
			isa = XCBuildConfiguration;
			buildSettings = {
				ALWAYS_SEARCH_USER_PATHS = NO;
				CLANG_ANALYZER_NONNULL = YES;
				CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
				CLANG_CXX_LIBRARY = "libc++";
				CLANG_ENABLE_MODULES = YES;
				CLANG_ENABLE_OBJC_ARC = YES;
				CLANG_WARN_BOOL_CONVERSION = YES;
				CLANG_WARN_CONSTANT_CONVERSION = YES;
				CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
				CLANG_WARN_EMPTY_BODY = YES;
				CLANG_WARN_ENUM_CONVERSION = YES;
				CLANG_WARN_INT_CONVERSION = YES;
				CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
				CLANG_WARN_UNREACHABLE_CODE = YES;
				CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
				"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
				COPY_PHASE_STRIP = NO;
				CURRENT_PROJECT_VERSION = 1;
				DEBUG_INFORMATION_FORMAT = dwarf;
				ENABLE_BITCODE = NO;
				ENABLE_STRICT_OBJC_MSGSEND = YES;
				ENABLE_TESTABILITY = YES;
				GCC_C_LANGUAGE_STANDARD = gnu99;
				GCC_DYNAMIC_NO_PIC = NO;
				GCC_NO_COMMON_BLOCKS = YES;
				GCC_OPTIMIZATION_LEVEL = 0;
				GCC_PREPROCESSOR_DEFINITIONS = (
					"DEBUG=1",
					"$(inherited)",
				);
				GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
				GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
				GCC_WARN_UNDECLARED_SELECTOR = YES;
				GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
				GCC_WARN_UNUSED_FUNCTION = YES;
				GCC_WARN_UNUSED_VARIABLE = YES;
				IPHONEOS_DEPLOYMENT_TARGET = 9.0;
				MTL_ENABLE_DEBUG_INFO = YES;
				ONLY_ACTIVE_ARCH = YES;
				SDKROOT = iphoneos;
				SWIFT_OPTIMIZATION_LEVEL = "-Onone";
				TARGETED_DEVICE_FAMILY = "1,2";
				VALID_ARCHS = arm64;
				VERSIONING_SYSTEM = "apple-generic";
				VERSION_INFO_PREFIX = "";
			};
			name = Debug;
		};
		9374F6871D010711004ECE59 /* Release */ = {
			isa = XCBuildConfiguration;
			buildSettings = {
				ALWAYS_SEARCH_USER_PATHS = NO;
				CLANG_ANALYZER_NONNULL = YES;
				CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
				CLANG_CXX_LIBRARY = "libc++";
				CLANG_ENABLE_MODULES = YES;
				CLANG_ENABLE_OBJC_ARC = YES;
				CLANG_WARN_BOOL_CONVERSION = YES;
				CLANG_WARN_CONSTANT_CONVERSION = YES;
				CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
				CLANG_WARN_EMPTY_BODY = YES;
				CLANG_WARN_ENUM_CONVERSION = YES;
				CLANG_WARN_INT_CONVERSION = YES;
				CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
				CLANG_WARN_UNREACHABLE_CODE = YES;
				CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
				"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
				COPY_PHASE_STRIP = NO;
				CURRENT_PROJECT_VERSION = 1;
				DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
				ENABLE_BITCODE = NO;
				ENABLE_NS_ASSERTIONS = NO;
				ENABLE_STRICT_OBJC_MSGSEND = YES;
				GCC_C_LANGUAGE_STANDARD = gnu99;
				GCC_NO_COMMON_BLOCKS = YES;
				GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
				GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
				GCC_WARN_UNDECLARED_SELECTOR = YES;
				GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
				GCC_WARN_UNUSED_FUNCTION = YES;
				GCC_WARN_UNUSED_VARIABLE = YES;
				IPHONEOS_DEPLOYMENT_TARGET = 9.0;
				MTL_ENABLE_DEBUG_INFO = NO;
				SDKROOT = iphoneos;
				TARGETED_DEVICE_FAMILY = "1,2";
				VALIDATE_PRODUCT = YES;
				VALID_ARCHS = arm64;
				VERSIONING_SYSTEM = "apple-generic";
				VERSION_INFO_PREFIX = "";
			};
			name = Release;
		};
		9374F6891D010711004ECE59 /* Debug */ = {
			isa = XCBuildConfiguration;
			buildSettings = {
				CLANG_ENABLE_MODULES = YES;
				DEFINES_MODULE = YES;
				DYLIB_COMPATIBILITY_VERSION = 1;
				DYLIB_CURRENT_VERSION = 1;
				DYLIB_INSTALL_NAME_BASE = "@rpath";
				INFOPLIST_FILE = Source/Info.plist;
				INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
				LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
				PRODUCT_BUNDLE_IDENTIFIER = io.v.Syncbase;
				PRODUCT_NAME = "$(TARGET_NAME)";
				SKIP_INSTALL = YES;
				SWIFT_OPTIMIZATION_LEVEL = "-Onone";
			};
			name = Debug;
		};
		9374F68A1D010711004ECE59 /* Release */ = {
			isa = XCBuildConfiguration;
			buildSettings = {
				CLANG_ENABLE_MODULES = YES;
				DEFINES_MODULE = YES;
				DYLIB_COMPATIBILITY_VERSION = 1;
				DYLIB_CURRENT_VERSION = 1;
				DYLIB_INSTALL_NAME_BASE = "@rpath";
				INFOPLIST_FILE = Source/Info.plist;
				INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
				LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
				PRODUCT_BUNDLE_IDENTIFIER = io.v.Syncbase;
				PRODUCT_NAME = "$(TARGET_NAME)";
				SKIP_INSTALL = YES;
			};
			name = Release;
		};
		9374F68C1D010711004ECE59 /* Debug */ = {
			isa = XCBuildConfiguration;
			buildSettings = {
				INFOPLIST_FILE = Tests/Info.plist;
				LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
				PRODUCT_BUNDLE_IDENTIFIER = io.v.SyncbaseTests;
				PRODUCT_NAME = "$(TARGET_NAME)";
			};
			name = Debug;
		};
		9374F68D1D010711004ECE59 /* Release */ = {
			isa = XCBuildConfiguration;
			buildSettings = {
				INFOPLIST_FILE = Tests/Info.plist;
				LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
				PRODUCT_BUNDLE_IDENTIFIER = io.v.SyncbaseTests;
				PRODUCT_NAME = "$(TARGET_NAME)";
			};
			name = Release;
		};
/* End XCBuildConfiguration section */

/* Begin XCConfigurationList section */
		9374F66E1D010711004ECE59 /* Build configuration list for PBXProject "Syncbase" */ = {
			isa = XCConfigurationList;
			buildConfigurations = (
				9374F6861D010711004ECE59 /* Debug */,
				9374F6871D010711004ECE59 /* Release */,
			);
			defaultConfigurationIsVisible = 0;
			defaultConfigurationName = Release;
		};
		9374F6881D010711004ECE59 /* Build configuration list for PBXNativeTarget "Syncbase" */ = {
			isa = XCConfigurationList;
			buildConfigurations = (
				9374F6891D010711004ECE59 /* Debug */,
				9374F68A1D010711004ECE59 /* Release */,
			);
			defaultConfigurationIsVisible = 0;
			defaultConfigurationName = Release;
		};
		9374F68B1D010711004ECE59 /* Build configuration list for PBXNativeTarget "SyncbaseTests" */ = {
			isa = XCConfigurationList;
			buildConfigurations = (
				9374F68C1D010711004ECE59 /* Debug */,
				9374F68D1D010711004ECE59 /* Release */,
			);
			defaultConfigurationIsVisible = 0;
			defaultConfigurationName = Release;
		};
/* End XCConfigurationList section */
	};
	rootObject = 9374F66B1D010711004ECE59 /* Project object */;
}
