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

/* Begin PBXBuildFile section */
		30AD2D951CDD4C9B00A28A0C /* Errors.swift in Sources */ = {isa = PBXBuildFile; fileRef = 30AD2D7A1CDD4C9B00A28A0C /* Errors.swift */; };
		30AD2D961CDD4C9B00A28A0C /* Refs.swift in Sources */ = {isa = PBXBuildFile; fileRef = 30AD2D7B1CDD4C9B00A28A0C /* Refs.swift */; };
		30AD2D971CDD4C9B00A28A0C /* Types.swift in Sources */ = {isa = PBXBuildFile; fileRef = 30AD2D7C1CDD4C9B00A28A0C /* Types.swift */; };
		30AD2D981CDD4C9B00A28A0C /* Context.swift in Sources */ = {isa = PBXBuildFile; fileRef = 30AD2D7E1CDD4C9B00A28A0C /* Context.swift */; };
		30AD2D9C1CDD4C9B00A28A0C /* RPC.swift in Sources */ = {isa = PBXBuildFile; fileRef = 30AD2D841CDD4C9B00A28A0C /* RPC.swift */; };
		30AD2D9D1CDD4C9B00A28A0C /* Runtime.swift in Sources */ = {isa = PBXBuildFile; fileRef = 30AD2D861CDD4C9B00A28A0C /* Runtime.swift */; };
		30AD2D9E1CDD4C9B00A28A0C /* Principal.swift in Sources */ = {isa = PBXBuildFile; fileRef = 30AD2D881CDD4C9B00A28A0C /* Principal.swift */; };
		30AD2D9F1CDD4C9B00A28A0C /* Dates.swift in Sources */ = {isa = PBXBuildFile; fileRef = 30AD2D8A1CDD4C9B00A28A0C /* Dates.swift */; };
		30AD2DA01CDD4C9B00A28A0C /* Locking.swift in Sources */ = {isa = PBXBuildFile; fileRef = 30AD2D8B1CDD4C9B00A28A0C /* Locking.swift */; };
		30AD2DA11CDD4C9B00A28A0C /* Logging.swift in Sources */ = {isa = PBXBuildFile; fileRef = 30AD2D8C1CDD4C9B00A28A0C /* Logging.swift */; };
		30AD2DA21CDD4C9B00A28A0C /* Promise.swift in Sources */ = {isa = PBXBuildFile; fileRef = 30AD2D8D1CDD4C9B00A28A0C /* Promise.swift */; };
		30AD2DA31CDD4C9B00A28A0C /* Strings.swift in Sources */ = {isa = PBXBuildFile; fileRef = 30AD2D8E1CDD4C9B00A28A0C /* Strings.swift */; };
		30AD2DA41CDD4C9B00A28A0C /* Threads.swift in Sources */ = {isa = PBXBuildFile; fileRef = 30AD2D8F1CDD4C9B00A28A0C /* Threads.swift */; };
		30AD2DA51CDD4C9B00A28A0C /* VanadiumCore.h in Headers */ = {isa = PBXBuildFile; fileRef = 30AD2D901CDD4C9B00A28A0C /* VanadiumCore.h */; settings = {ATTRIBUTES = (Public, ); }; };
		30AD2DA61CDD4C9B00A28A0C /* VdlTypes.swift in Sources */ = {isa = PBXBuildFile; fileRef = 30AD2D921CDD4C9B00A28A0C /* VdlTypes.swift */; };
		30AD2DA71CDD4C9B00A28A0C /* VdlUtil.swift in Sources */ = {isa = PBXBuildFile; fileRef = 30AD2D931CDD4C9B00A28A0C /* VdlUtil.swift */; };
		30AD2DBA1CDD4CF200A28A0C /* VanadiumCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 93BC21551C9E199F0074C612 /* VanadiumCore.framework */; };
		30AD2DC01CDD4D2A00A28A0C /* CoreTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 30AD2DAA1CDD4CA700A28A0C /* CoreTests.swift */; };
		30AD2DC11CDD4D2A00A28A0C /* PromiseTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 30AD2DAC1CDD4CA700A28A0C /* PromiseTests.swift */; };
		30AD2DC71CDD4D5C00A28A0C /* cgo_exports.h in Headers */ = {isa = PBXBuildFile; fileRef = 30AD2DC31CDD4D5C00A28A0C /* cgo_exports.h */; settings = {ATTRIBUTES = (Public, ); }; };
		30AD2DC81CDD4D5C00A28A0C /* go_types.h in Headers */ = {isa = PBXBuildFile; fileRef = 30AD2DC41CDD4D5C00A28A0C /* go_types.h */; settings = {ATTRIBUTES = (Public, ); }; };
		30AD2DC91CDD4D5C00A28A0C /* v23_amd64.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 30AD2DC51CDD4D5C00A28A0C /* v23_amd64.a */; };
		30AD2DCA1CDD4D5C00A28A0C /* v23_arm64.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 30AD2DC61CDD4D5C00A28A0C /* v23_arm64.a */; };
		93BDAFDA1CE176B800D9CECA /* Advertisement.swift in Sources */ = {isa = PBXBuildFile; fileRef = 93BDAFD81CE176B800D9CECA /* Advertisement.swift */; };
		93BDAFDB1CE176B800D9CECA /* Discovery.swift in Sources */ = {isa = PBXBuildFile; fileRef = 93BDAFD91CE176B800D9CECA /* Discovery.swift */; };
		93BDAFDF1CE17B3900D9CECA /* CBAdvertisingDriver.h in Headers */ = {isa = PBXBuildFile; fileRef = 93BDAFDC1CE17B3900D9CECA /* CBAdvertisingDriver.h */; settings = {ATTRIBUTES = (Public, ); }; };
		93BDAFE11CE17B3900D9CECA /* CBDriver.h in Headers */ = {isa = PBXBuildFile; fileRef = 93BDAFDE1CE17B3900D9CECA /* CBDriver.h */; settings = {ATTRIBUTES = (Public, ); }; };
		93BDAFE71CE1967300D9CECA /* Json.swift in Sources */ = {isa = PBXBuildFile; fileRef = 93BDAFE61CE1967300D9CECA /* Json.swift */; };
		93EC80BD1CEAB5190077891F /* CBScanningDriver.h in Headers */ = {isa = PBXBuildFile; fileRef = 93EC80BC1CEAB5190077891F /* CBScanningDriver.h */; settings = {ATTRIBUTES = (Public, ); }; };
/* End PBXBuildFile section */

/* Begin PBXContainerItemProxy section */
		30AD2DBB1CDD4CF200A28A0C /* PBXContainerItemProxy */ = {
			isa = PBXContainerItemProxy;
			containerPortal = 93BC214C1C9E199F0074C612 /* Project object */;
			proxyType = 1;
			remoteGlobalIDString = 93BC21541C9E199F0074C612;
			remoteInfo = VanadiumCore;
		};
/* End PBXContainerItemProxy section */

/* Begin PBXFileReference section */
		30AD2D7A1CDD4C9B00A28A0C /* Errors.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Errors.swift; sourceTree = "<group>"; };
		30AD2D7B1CDD4C9B00A28A0C /* Refs.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Refs.swift; sourceTree = "<group>"; };
		30AD2D7C1CDD4C9B00A28A0C /* Types.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Types.swift; sourceTree = "<group>"; };
		30AD2D7E1CDD4C9B00A28A0C /* Context.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Context.swift; sourceTree = "<group>"; };
		30AD2D821CDD4C9B00A28A0C /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
		30AD2D841CDD4C9B00A28A0C /* RPC.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = RPC.swift; sourceTree = "<group>"; };
		30AD2D861CDD4C9B00A28A0C /* Runtime.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Runtime.swift; sourceTree = "<group>"; };
		30AD2D881CDD4C9B00A28A0C /* Principal.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Principal.swift; sourceTree = "<group>"; };
		30AD2D8A1CDD4C9B00A28A0C /* Dates.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Dates.swift; sourceTree = "<group>"; };
		30AD2D8B1CDD4C9B00A28A0C /* Locking.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Locking.swift; sourceTree = "<group>"; };
		30AD2D8C1CDD4C9B00A28A0C /* Logging.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Logging.swift; sourceTree = "<group>"; };
		30AD2D8D1CDD4C9B00A28A0C /* Promise.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Promise.swift; sourceTree = "<group>"; };
		30AD2D8E1CDD4C9B00A28A0C /* Strings.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Strings.swift; sourceTree = "<group>"; };
		30AD2D8F1CDD4C9B00A28A0C /* Threads.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Threads.swift; sourceTree = "<group>"; };
		30AD2D901CDD4C9B00A28A0C /* VanadiumCore.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = VanadiumCore.h; sourceTree = "<group>"; };
		30AD2D921CDD4C9B00A28A0C /* VdlTypes.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = VdlTypes.swift; sourceTree = "<group>"; };
		30AD2D931CDD4C9B00A28A0C /* VdlUtil.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = VdlUtil.swift; sourceTree = "<group>"; };
		30AD2DAA1CDD4CA700A28A0C /* CoreTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = CoreTests.swift; sourceTree = "<group>"; };
		30AD2DAB1CDD4CA700A28A0C /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
		30AD2DAC1CDD4CA700A28A0C /* PromiseTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PromiseTests.swift; sourceTree = "<group>"; };
		30AD2DB51CDD4CF200A28A0C /* VanadiumCoreTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = VanadiumCoreTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; };
		30AD2DC31CDD4D5C00A28A0C /* cgo_exports.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = cgo_exports.h; sourceTree = "<group>"; };
		30AD2DC41CDD4D5C00A28A0C /* go_types.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = go_types.h; sourceTree = "<group>"; };
		30AD2DC51CDD4D5C00A28A0C /* v23_amd64.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = v23_amd64.a; sourceTree = "<group>"; };
		30AD2DC61CDD4D5C00A28A0C /* v23_arm64.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = v23_arm64.a; sourceTree = "<group>"; };
		93BC21551C9E199F0074C612 /* VanadiumCore.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = VanadiumCore.framework; sourceTree = BUILT_PRODUCTS_DIR; };
		93BDAFD81CE176B800D9CECA /* Advertisement.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Advertisement.swift; sourceTree = "<group>"; };
		93BDAFD91CE176B800D9CECA /* Discovery.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Discovery.swift; sourceTree = "<group>"; };
		93BDAFDC1CE17B3900D9CECA /* CBAdvertisingDriver.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = CBAdvertisingDriver.h; path = ../../../../go/src/v.io/x/ref/lib/discovery/plugins/ble/corebluetooth/CBAdvertisingDriver.h; sourceTree = "<group>"; };
		93BDAFDE1CE17B3900D9CECA /* CBDriver.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = CBDriver.h; path = ../../../../go/src/v.io/x/ref/lib/discovery/plugins/ble/corebluetooth/CBDriver.h; sourceTree = "<group>"; };
		93BDAFE61CE1967300D9CECA /* Json.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Json.swift; sourceTree = "<group>"; };
		93EC80BC1CEAB5190077891F /* CBScanningDriver.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = CBScanningDriver.h; path = ../../../../go/src/v.io/x/ref/lib/discovery/plugins/ble/corebluetooth/CBScanningDriver.h; sourceTree = "<group>"; };
/* End PBXFileReference section */

/* Begin PBXFrameworksBuildPhase section */
		30AD2DB21CDD4CF200A28A0C /* Frameworks */ = {
			isa = PBXFrameworksBuildPhase;
			buildActionMask = 2147483647;
			files = (
				30AD2DBA1CDD4CF200A28A0C /* VanadiumCore.framework in Frameworks */,
			);
			runOnlyForDeploymentPostprocessing = 0;
		};
		93BC21511C9E199F0074C612 /* Frameworks */ = {
			isa = PBXFrameworksBuildPhase;
			buildActionMask = 2147483647;
			files = (
				30AD2DCA1CDD4D5C00A28A0C /* v23_arm64.a in Frameworks */,
				30AD2DC91CDD4D5C00A28A0C /* v23_amd64.a in Frameworks */,
			);
			runOnlyForDeploymentPostprocessing = 0;
		};
/* End PBXFrameworksBuildPhase section */

/* Begin PBXGroup section */
		30AD2D771CDD4C9B00A28A0C /* Source */ = {
			isa = PBXGroup;
			children = (
				30AD2D901CDD4C9B00A28A0C /* VanadiumCore.h */,
				30AD2D821CDD4C9B00A28A0C /* Info.plist */,
				30AD2D791CDD4C9B00A28A0C /* bridge */,
				30AD2D7D1CDD4C9B00A28A0C /* context */,
				93BDAFD71CE176B800D9CECA /* discovery */,
				30AD2D831CDD4C9B00A28A0C /* rpc */,
				30AD2D851CDD4C9B00A28A0C /* rt */,
				30AD2D871CDD4C9B00A28A0C /* security */,
				30AD2D891CDD4C9B00A28A0C /* util */,
				30AD2D911CDD4C9B00A28A0C /* vdl */,
			);
			path = Source;
			sourceTree = "<group>";
		};
		30AD2D791CDD4C9B00A28A0C /* bridge */ = {
			isa = PBXGroup;
			children = (
				30AD2D7A1CDD4C9B00A28A0C /* Errors.swift */,
				30AD2D7B1CDD4C9B00A28A0C /* Refs.swift */,
				30AD2D7C1CDD4C9B00A28A0C /* Types.swift */,
			);
			path = bridge;
			sourceTree = "<group>";
		};
		30AD2D7D1CDD4C9B00A28A0C /* context */ = {
			isa = PBXGroup;
			children = (
				30AD2D7E1CDD4C9B00A28A0C /* Context.swift */,
			);
			path = context;
			sourceTree = "<group>";
		};
		30AD2D831CDD4C9B00A28A0C /* rpc */ = {
			isa = PBXGroup;
			children = (
				30AD2D841CDD4C9B00A28A0C /* RPC.swift */,
			);
			path = rpc;
			sourceTree = "<group>";
		};
		30AD2D851CDD4C9B00A28A0C /* rt */ = {
			isa = PBXGroup;
			children = (
				30AD2D861CDD4C9B00A28A0C /* Runtime.swift */,
			);
			path = rt;
			sourceTree = "<group>";
		};
		30AD2D871CDD4C9B00A28A0C /* security */ = {
			isa = PBXGroup;
			children = (
				30AD2D881CDD4C9B00A28A0C /* Principal.swift */,
			);
			path = security;
			sourceTree = "<group>";
		};
		30AD2D891CDD4C9B00A28A0C /* util */ = {
			isa = PBXGroup;
			children = (
				30AD2D8A1CDD4C9B00A28A0C /* Dates.swift */,
				30AD2D8B1CDD4C9B00A28A0C /* Locking.swift */,
				30AD2D8C1CDD4C9B00A28A0C /* Logging.swift */,
				30AD2D8D1CDD4C9B00A28A0C /* Promise.swift */,
				30AD2D8E1CDD4C9B00A28A0C /* Strings.swift */,
				30AD2D8F1CDD4C9B00A28A0C /* Threads.swift */,
				93BDAFE61CE1967300D9CECA /* Json.swift */,
			);
			path = util;
			sourceTree = "<group>";
		};
		30AD2D911CDD4C9B00A28A0C /* vdl */ = {
			isa = PBXGroup;
			children = (
				30AD2D921CDD4C9B00A28A0C /* VdlTypes.swift */,
				30AD2D931CDD4C9B00A28A0C /* VdlUtil.swift */,
			);
			path = vdl;
			sourceTree = "<group>";
		};
		30AD2DA81CDD4CA700A28A0C /* Tests */ = {
			isa = PBXGroup;
			children = (
				30AD2DAA1CDD4CA700A28A0C /* CoreTests.swift */,
				30AD2DAB1CDD4CA700A28A0C /* Info.plist */,
				30AD2DAC1CDD4CA700A28A0C /* PromiseTests.swift */,
			);
			path = Tests;
			sourceTree = "<group>";
		};
		30AD2DC21CDD4D5C00A28A0C /* Generated */ = {
			isa = PBXGroup;
			children = (
				30AD2DC31CDD4D5C00A28A0C /* cgo_exports.h */,
				30AD2DC41CDD4D5C00A28A0C /* go_types.h */,
				30AD2DC51CDD4D5C00A28A0C /* v23_amd64.a */,
				30AD2DC61CDD4D5C00A28A0C /* v23_arm64.a */,
			);
			path = Generated;
			sourceTree = "<group>";
		};
		93BC214B1C9E199F0074C612 = {
			isa = PBXGroup;
			children = (
				30AD2D771CDD4C9B00A28A0C /* Source */,
				30AD2DC21CDD4D5C00A28A0C /* Generated */,
				30AD2DA81CDD4CA700A28A0C /* Tests */,
				93BC21561C9E199F0074C612 /* Products */,
			);
			sourceTree = "<group>";
		};
		93BC21561C9E199F0074C612 /* Products */ = {
			isa = PBXGroup;
			children = (
				93BC21551C9E199F0074C612 /* VanadiumCore.framework */,
				30AD2DB51CDD4CF200A28A0C /* VanadiumCoreTests.xctest */,
			);
			name = Products;
			sourceTree = "<group>";
		};
		93BDAFD71CE176B800D9CECA /* discovery */ = {
			isa = PBXGroup;
			children = (
				93BDAFD81CE176B800D9CECA /* Advertisement.swift */,
				93BDAFD91CE176B800D9CECA /* Discovery.swift */,
				93BDAFDC1CE17B3900D9CECA /* CBAdvertisingDriver.h */,
				93EC80BC1CEAB5190077891F /* CBScanningDriver.h */,
				93BDAFDE1CE17B3900D9CECA /* CBDriver.h */,
			);
			path = discovery;
			sourceTree = "<group>";
		};
/* End PBXGroup section */

/* Begin PBXHeadersBuildPhase section */
		93BC21521C9E199F0074C612 /* Headers */ = {
			isa = PBXHeadersBuildPhase;
			buildActionMask = 2147483647;
			files = (
				30AD2DC81CDD4D5C00A28A0C /* go_types.h in Headers */,
				93EC80BD1CEAB5190077891F /* CBScanningDriver.h in Headers */,
				93BDAFDF1CE17B3900D9CECA /* CBAdvertisingDriver.h in Headers */,
				93BDAFE11CE17B3900D9CECA /* CBDriver.h in Headers */,
				30AD2DC71CDD4D5C00A28A0C /* cgo_exports.h in Headers */,
				30AD2DA51CDD4C9B00A28A0C /* VanadiumCore.h in Headers */,
			);
			runOnlyForDeploymentPostprocessing = 0;
		};
/* End PBXHeadersBuildPhase section */

/* Begin PBXNativeTarget section */
		30AD2DB41CDD4CF200A28A0C /* VanadiumCoreTests */ = {
			isa = PBXNativeTarget;
			buildConfigurationList = 30AD2DBD1CDD4CF200A28A0C /* Build configuration list for PBXNativeTarget "VanadiumCoreTests" */;
			buildPhases = (
				30AD2DB11CDD4CF200A28A0C /* Sources */,
				30AD2DB21CDD4CF200A28A0C /* Frameworks */,
				30AD2DB31CDD4CF200A28A0C /* Resources */,
			);
			buildRules = (
			);
			dependencies = (
				30AD2DBC1CDD4CF200A28A0C /* PBXTargetDependency */,
			);
			name = VanadiumCoreTests;
			productName = VanadiumCoreTests;
			productReference = 30AD2DB51CDD4CF200A28A0C /* VanadiumCoreTests.xctest */;
			productType = "com.apple.product-type.bundle.unit-test";
		};
		93BC21541C9E199F0074C612 /* VanadiumCore */ = {
			isa = PBXNativeTarget;
			buildConfigurationList = 93BC21691C9E199F0074C612 /* Build configuration list for PBXNativeTarget "VanadiumCore" */;
			buildPhases = (
				93BC216F1C9E19E50074C612 /* Warn on TODO and FIXME */,
				93BC21501C9E199F0074C612 /* Sources */,
				93BC21511C9E199F0074C612 /* Frameworks */,
				93BC21521C9E199F0074C612 /* Headers */,
				93BC21531C9E199F0074C612 /* Resources */,
			);
			buildRules = (
			);
			dependencies = (
			);
			name = VanadiumCore;
			productName = VanadiumCore;
			productReference = 93BC21551C9E199F0074C612 /* VanadiumCore.framework */;
			productType = "com.apple.product-type.framework";
		};
/* End PBXNativeTarget section */

/* Begin PBXProject section */
		93BC214C1C9E199F0074C612 /* Project object */ = {
			isa = PBXProject;
			attributes = {
				LastSwiftUpdateCheck = 0730;
				LastUpgradeCheck = 0720;
				ORGANIZATIONNAME = "Google, Inc.";
				TargetAttributes = {
					30AD2DB41CDD4CF200A28A0C = {
						CreatedOnToolsVersion = 7.3;
					};
					93BC21541C9E199F0074C612 = {
						CreatedOnToolsVersion = 7.2.1;
					};
				};
			};
			buildConfigurationList = 93BC214F1C9E199F0074C612 /* Build configuration list for PBXProject "VanadiumCore" */;
			compatibilityVersion = "Xcode 3.2";
			developmentRegion = English;
			hasScannedForEncodings = 0;
			knownRegions = (
				en,
			);
			mainGroup = 93BC214B1C9E199F0074C612;
			productRefGroup = 93BC21561C9E199F0074C612 /* Products */;
			projectDirPath = "";
			projectRoot = "";
			targets = (
				93BC21541C9E199F0074C612 /* VanadiumCore */,
				30AD2DB41CDD4CF200A28A0C /* VanadiumCoreTests */,
			);
		};
/* End PBXProject section */

/* Begin PBXResourcesBuildPhase section */
		30AD2DB31CDD4CF200A28A0C /* Resources */ = {
			isa = PBXResourcesBuildPhase;
			buildActionMask = 2147483647;
			files = (
			);
			runOnlyForDeploymentPostprocessing = 0;
		};
		93BC21531C9E199F0074C612 /* Resources */ = {
			isa = PBXResourcesBuildPhase;
			buildActionMask = 2147483647;
			files = (
			);
			runOnlyForDeploymentPostprocessing = 0;
		};
/* End PBXResourcesBuildPhase section */

/* Begin PBXShellScriptBuildPhase section */
		93BC216F1C9E19E50074C612 /* Warn on TODO and FIXME */ = {
			isa = PBXShellScriptBuildPhase;
			buildActionMask = 2147483647;
			files = (
			);
			inputPaths = (
			);
			name = "Warn on TODO and FIXME";
			outputPaths = (
			);
			runOnlyForDeploymentPostprocessing = 0;
			shellPath = /bin/sh;
			shellScript = "# http://matthewmorey.com/improved-xcode-build-phases/\nKEYWORDS=\"TODO|FIXME|\\?\\?\\?:|\\!\\!\\!:\"\nfind \"${SRCROOT}\" \\( -name \"*.h\" -or -name \"*.m\" \\) -and \\( -path \"${SRCROOT}/Pods/*\" -prune -o -print0 \\) | xargs -0 egrep --with-filename --line-number --only-matching \"($KEYWORDS).*\\$\" | perl -p -e \"s/($KEYWORDS)/ warning: \\$1/\"";
		};
/* End PBXShellScriptBuildPhase section */

/* Begin PBXSourcesBuildPhase section */
		30AD2DB11CDD4CF200A28A0C /* Sources */ = {
			isa = PBXSourcesBuildPhase;
			buildActionMask = 2147483647;
			files = (
				30AD2DC01CDD4D2A00A28A0C /* CoreTests.swift in Sources */,
				30AD2DC11CDD4D2A00A28A0C /* PromiseTests.swift in Sources */,
			);
			runOnlyForDeploymentPostprocessing = 0;
		};
		93BC21501C9E199F0074C612 /* Sources */ = {
			isa = PBXSourcesBuildPhase;
			buildActionMask = 2147483647;
			files = (
				30AD2D9F1CDD4C9B00A28A0C /* Dates.swift in Sources */,
				30AD2D9C1CDD4C9B00A28A0C /* RPC.swift in Sources */,
				30AD2DA01CDD4C9B00A28A0C /* Locking.swift in Sources */,
				30AD2DA61CDD4C9B00A28A0C /* VdlTypes.swift in Sources */,
				30AD2D971CDD4C9B00A28A0C /* Types.swift in Sources */,
				30AD2D981CDD4C9B00A28A0C /* Context.swift in Sources */,
				93BDAFDB1CE176B800D9CECA /* Discovery.swift in Sources */,
				30AD2DA31CDD4C9B00A28A0C /* Strings.swift in Sources */,
				30AD2DA41CDD4C9B00A28A0C /* Threads.swift in Sources */,
				93BDAFE71CE1967300D9CECA /* Json.swift in Sources */,
				30AD2D9D1CDD4C9B00A28A0C /* Runtime.swift in Sources */,
				93BDAFDA1CE176B800D9CECA /* Advertisement.swift in Sources */,
				30AD2DA71CDD4C9B00A28A0C /* VdlUtil.swift in Sources */,
				30AD2DA21CDD4C9B00A28A0C /* Promise.swift in Sources */,
				30AD2DA11CDD4C9B00A28A0C /* Logging.swift in Sources */,
				30AD2D951CDD4C9B00A28A0C /* Errors.swift in Sources */,
				30AD2D9E1CDD4C9B00A28A0C /* Principal.swift in Sources */,
				30AD2D961CDD4C9B00A28A0C /* Refs.swift in Sources */,
			);
			runOnlyForDeploymentPostprocessing = 0;
		};
/* End PBXSourcesBuildPhase section */

/* Begin PBXTargetDependency section */
		30AD2DBC1CDD4CF200A28A0C /* PBXTargetDependency */ = {
			isa = PBXTargetDependency;
			target = 93BC21541C9E199F0074C612 /* VanadiumCore */;
			targetProxy = 30AD2DBB1CDD4CF200A28A0C /* PBXContainerItemProxy */;
		};
/* End PBXTargetDependency section */

/* Begin XCBuildConfiguration section */
		30AD2DBE1CDD4CF200A28A0C /* Debug */ = {
			isa = XCBuildConfiguration;
			buildSettings = {
				CLANG_ANALYZER_NONNULL = YES;
				INFOPLIST_FILE = Tests/Info.plist;
				IPHONEOS_DEPLOYMENT_TARGET = 9.3;
				LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
				PRODUCT_BUNDLE_IDENTIFIER = io.v.VanadiumCoreTests;
				PRODUCT_NAME = "$(TARGET_NAME)";
			};
			name = Debug;
		};
		30AD2DBF1CDD4CF200A28A0C /* Release */ = {
			isa = XCBuildConfiguration;
			buildSettings = {
				CLANG_ANALYZER_NONNULL = YES;
				INFOPLIST_FILE = Tests/Info.plist;
				IPHONEOS_DEPLOYMENT_TARGET = 9.3;
				LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
				PRODUCT_BUNDLE_IDENTIFIER = io.v.VanadiumCoreTests;
				PRODUCT_NAME = "$(TARGET_NAME)";
			};
			name = Release;
		};
		93BC21671C9E199F0074C612 /* Debug */ = {
			isa = XCBuildConfiguration;
			buildSettings = {
				ALWAYS_SEARCH_USER_PATHS = NO;
				CLANG_ANALYZER_SECURITY_FLOATLOOPCOUNTER = YES;
				CLANG_ANALYZER_SECURITY_INSECUREAPI_RAND = YES;
				CLANG_ANALYZER_SECURITY_INSECUREAPI_STRCPY = 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;
		};
		93BC21681C9E199F0074C612 /* Release */ = {
			isa = XCBuildConfiguration;
			buildSettings = {
				ALWAYS_SEARCH_USER_PATHS = NO;
				CLANG_ANALYZER_SECURITY_FLOATLOOPCOUNTER = YES;
				CLANG_ANALYZER_SECURITY_INSECUREAPI_RAND = YES;
				CLANG_ANALYZER_SECURITY_INSECUREAPI_STRCPY = 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;
		};
		93BC216A1C9E199F0074C612 /* Debug */ = {
			isa = XCBuildConfiguration;
			buildSettings = {
				DEFINES_MODULE = YES;
				DYLIB_COMPATIBILITY_VERSION = 1;
				DYLIB_CURRENT_VERSION = 1;
				DYLIB_INSTALL_NAME_BASE = "@rpath";
				INFOPLIST_FILE = "$(SRCROOT)/Source/Info.plist";
				INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
				LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
				LIBRARY_SEARCH_PATHS = (
					"$(inherited)",
					"$(PROJECT_DIR)/Generated",
				);
				PRODUCT_BUNDLE_IDENTIFIER = io.v.VanadiumCore;
				PRODUCT_NAME = "$(TARGET_NAME)";
				SKIP_INSTALL = YES;
			};
			name = Debug;
		};
		93BC216B1C9E199F0074C612 /* Release */ = {
			isa = XCBuildConfiguration;
			buildSettings = {
				DEFINES_MODULE = YES;
				DYLIB_COMPATIBILITY_VERSION = 1;
				DYLIB_CURRENT_VERSION = 1;
				DYLIB_INSTALL_NAME_BASE = "@rpath";
				INFOPLIST_FILE = "$(SRCROOT)/Source/Info.plist";
				INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
				LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
				LIBRARY_SEARCH_PATHS = (
					"$(inherited)",
					"$(PROJECT_DIR)/Generated",
				);
				PRODUCT_BUNDLE_IDENTIFIER = io.v.VanadiumCore;
				PRODUCT_NAME = "$(TARGET_NAME)";
				SKIP_INSTALL = YES;
			};
			name = Release;
		};
/* End XCBuildConfiguration section */

/* Begin XCConfigurationList section */
		30AD2DBD1CDD4CF200A28A0C /* Build configuration list for PBXNativeTarget "VanadiumCoreTests" */ = {
			isa = XCConfigurationList;
			buildConfigurations = (
				30AD2DBE1CDD4CF200A28A0C /* Debug */,
				30AD2DBF1CDD4CF200A28A0C /* Release */,
			);
			defaultConfigurationIsVisible = 0;
			defaultConfigurationName = Release;
		};
		93BC214F1C9E199F0074C612 /* Build configuration list for PBXProject "VanadiumCore" */ = {
			isa = XCConfigurationList;
			buildConfigurations = (
				93BC21671C9E199F0074C612 /* Debug */,
				93BC21681C9E199F0074C612 /* Release */,
			);
			defaultConfigurationIsVisible = 0;
			defaultConfigurationName = Release;
		};
		93BC21691C9E199F0074C612 /* Build configuration list for PBXNativeTarget "VanadiumCore" */ = {
			isa = XCConfigurationList;
			buildConfigurations = (
				93BC216A1C9E199F0074C612 /* Debug */,
				93BC216B1C9E199F0074C612 /* Release */,
			);
			defaultConfigurationIsVisible = 0;
			defaultConfigurationName = Release;
		};
/* End XCConfigurationList section */
	};
	rootObject = 93BC214C1C9E199F0074C612 /* Project object */;
}
