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

/* Begin PBXBuildFile section */
		AE2FE0FB1CFE86DB003EF0D7 /* XCAbstractTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = AE2FE0EA1CFE86DB003EF0D7 /* XCAbstractTest.swift */; };
		AE2FE0FE1CFE86DB003EF0D7 /* XCTAssert.swift in Sources */ = {isa = PBXBuildFile; fileRef = AE2FE0ED1CFE86DB003EF0D7 /* XCTAssert.swift */; };
		AE2FE0FF1CFE86DB003EF0D7 /* XCTestCase.swift in Sources */ = {isa = PBXBuildFile; fileRef = AE2FE0EE1CFE86DB003EF0D7 /* XCTestCase.swift */; };
		AE2FE1011CFE86DB003EF0D7 /* XCTestCase+Performance.swift in Sources */ = {isa = PBXBuildFile; fileRef = AE2FE0F01CFE86DB003EF0D7 /* XCTestCase+Performance.swift */; };
		AE2FE1021CFE86DB003EF0D7 /* XCTestCaseRun.swift in Sources */ = {isa = PBXBuildFile; fileRef = AE2FE0F11CFE86DB003EF0D7 /* XCTestCaseRun.swift */; };
		AE2FE1031CFE86DB003EF0D7 /* XCTestErrors.swift in Sources */ = {isa = PBXBuildFile; fileRef = AE2FE0F21CFE86DB003EF0D7 /* XCTestErrors.swift */; };
		AE2FE1051CFE86DB003EF0D7 /* XCTestMain.swift in Sources */ = {isa = PBXBuildFile; fileRef = AE2FE0F41CFE86DB003EF0D7 /* XCTestMain.swift */; };
		AE2FE1061CFE86DB003EF0D7 /* XCTestObservation.swift in Sources */ = {isa = PBXBuildFile; fileRef = AE2FE0F51CFE86DB003EF0D7 /* XCTestObservation.swift */; };
		AE2FE1071CFE86DB003EF0D7 /* XCTestObservationCenter.swift in Sources */ = {isa = PBXBuildFile; fileRef = AE2FE0F61CFE86DB003EF0D7 /* XCTestObservationCenter.swift */; };
		AE2FE1081CFE86DB003EF0D7 /* XCTestRun.swift in Sources */ = {isa = PBXBuildFile; fileRef = AE2FE0F71CFE86DB003EF0D7 /* XCTestRun.swift */; };
		AE2FE1091CFE86DB003EF0D7 /* XCTestSuite.swift in Sources */ = {isa = PBXBuildFile; fileRef = AE2FE0F81CFE86DB003EF0D7 /* XCTestSuite.swift */; };
		AE2FE10A1CFE86DB003EF0D7 /* XCTestSuiteRun.swift in Sources */ = {isa = PBXBuildFile; fileRef = AE2FE0F91CFE86DB003EF0D7 /* XCTestSuiteRun.swift */; };
		AE2FE1151CFE86E6003EF0D7 /* ArgumentParser.swift in Sources */ = {isa = PBXBuildFile; fileRef = AE2FE10C1CFE86E6003EF0D7 /* ArgumentParser.swift */; };
		AE2FE1161CFE86E6003EF0D7 /* ObjectWrapper.swift in Sources */ = {isa = PBXBuildFile; fileRef = AE2FE10D1CFE86E6003EF0D7 /* ObjectWrapper.swift */; };
		AE2FE1171CFE86E6003EF0D7 /* PerformanceMeter.swift in Sources */ = {isa = PBXBuildFile; fileRef = AE2FE10E1CFE86E6003EF0D7 /* PerformanceMeter.swift */; };
		AE2FE1181CFE86E6003EF0D7 /* PrintObserver.swift in Sources */ = {isa = PBXBuildFile; fileRef = AE2FE10F1CFE86E6003EF0D7 /* PrintObserver.swift */; };
		AE2FE1191CFE86E6003EF0D7 /* TestFiltering.swift in Sources */ = {isa = PBXBuildFile; fileRef = AE2FE1101CFE86E6003EF0D7 /* TestFiltering.swift */; };
		AE2FE11A1CFE86E6003EF0D7 /* WallClockTimeMetric.swift in Sources */ = {isa = PBXBuildFile; fileRef = AE2FE1111CFE86E6003EF0D7 /* WallClockTimeMetric.swift */; };
		AE2FE11B1CFE86E6003EF0D7 /* XCPredicateExpectation.swift in Sources */ = {isa = PBXBuildFile; fileRef = AE2FE1121CFE86E6003EF0D7 /* XCPredicateExpectation.swift */; };
		AE2FE11C1CFE86E6003EF0D7 /* XCTestCaseSuite.swift in Sources */ = {isa = PBXBuildFile; fileRef = AE2FE1131CFE86E6003EF0D7 /* XCTestCaseSuite.swift */; };
		AE2FE11D1CFE86E6003EF0D7 /* XCTestInternalObservation.swift in Sources */ = {isa = PBXBuildFile; fileRef = AE2FE1141CFE86E6003EF0D7 /* XCTestInternalObservation.swift */; };
		AE63767E1D01ED17002C0EA8 /* TestListing.swift in Sources */ = {isa = PBXBuildFile; fileRef = AE63767D1D01ED17002C0EA8 /* TestListing.swift */; };
		DA7805FA1C6704A2003C6636 /* SwiftFoundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = DA7805F91C6704A2003C6636 /* SwiftFoundation.framework */; };
		DA9D44191D920A3500108768 /* XCNotificationExpectationHandler.swift in Sources */ = {isa = PBXBuildFile; fileRef = DA9D44141D920A3500108768 /* XCNotificationExpectationHandler.swift */; };
		DA9D441A1D920A3500108768 /* XCPredicateExpectationHandler.swift in Sources */ = {isa = PBXBuildFile; fileRef = DA9D44151D920A3500108768 /* XCPredicateExpectationHandler.swift */; };
		DA9D441B1D920A3500108768 /* XCTestCase+Asynchronous.swift in Sources */ = {isa = PBXBuildFile; fileRef = DA9D44161D920A3500108768 /* XCTestCase+Asynchronous.swift */; };
		DA9D441C1D920A3500108768 /* XCTestExpectation.swift in Sources */ = {isa = PBXBuildFile; fileRef = DA9D44171D920A3500108768 /* XCTestExpectation.swift */; };
		DA9D441D1D920A3500108768 /* XCWaitCompletionHandler.swift in Sources */ = {isa = PBXBuildFile; fileRef = DA9D44181D920A3500108768 /* XCWaitCompletionHandler.swift */; };
		DA9D441F1D920A5900108768 /* XCTestCase+PredicateExpectation.swift in Sources */ = {isa = PBXBuildFile; fileRef = DA9D441E1D920A5900108768 /* XCTestCase+PredicateExpectation.swift */; };
		DA9D44211D920A6400108768 /* XCTestCase+NotificationExpectation.swift in Sources */ = {isa = PBXBuildFile; fileRef = DA9D44201D920A6400108768 /* XCTestCase+NotificationExpectation.swift */; };
/* End PBXBuildFile section */

/* Begin PBXContainerItemProxy section */
		DAA333B91C267AF3000CC115 /* PBXContainerItemProxy */ = {
			isa = PBXContainerItemProxy;
			containerPortal = 5B5D86D21BBC74AD00234F36 /* Project object */;
			proxyType = 1;
			remoteGlobalIDString = 5B5D86DA1BBC74AD00234F36;
			remoteInfo = SwiftXCTest;
		};
/* End PBXContainerItemProxy section */

/* Begin PBXFileReference section */
		5B5D86DB1BBC74AD00234F36 /* SwiftXCTest.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = SwiftXCTest.framework; sourceTree = BUILT_PRODUCTS_DIR; };
		AE2FE0EA1CFE86DB003EF0D7 /* XCAbstractTest.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = XCAbstractTest.swift; sourceTree = "<group>"; };
		AE2FE0ED1CFE86DB003EF0D7 /* XCTAssert.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = XCTAssert.swift; sourceTree = "<group>"; };
		AE2FE0EE1CFE86DB003EF0D7 /* XCTestCase.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = XCTestCase.swift; sourceTree = "<group>"; };
		AE2FE0F01CFE86DB003EF0D7 /* XCTestCase+Performance.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "XCTestCase+Performance.swift"; sourceTree = "<group>"; };
		AE2FE0F11CFE86DB003EF0D7 /* XCTestCaseRun.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = XCTestCaseRun.swift; sourceTree = "<group>"; };
		AE2FE0F21CFE86DB003EF0D7 /* XCTestErrors.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = XCTestErrors.swift; sourceTree = "<group>"; };
		AE2FE0F41CFE86DB003EF0D7 /* XCTestMain.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = XCTestMain.swift; sourceTree = "<group>"; };
		AE2FE0F51CFE86DB003EF0D7 /* XCTestObservation.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = XCTestObservation.swift; sourceTree = "<group>"; };
		AE2FE0F61CFE86DB003EF0D7 /* XCTestObservationCenter.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = XCTestObservationCenter.swift; sourceTree = "<group>"; };
		AE2FE0F71CFE86DB003EF0D7 /* XCTestRun.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = XCTestRun.swift; sourceTree = "<group>"; };
		AE2FE0F81CFE86DB003EF0D7 /* XCTestSuite.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = XCTestSuite.swift; sourceTree = "<group>"; };
		AE2FE0F91CFE86DB003EF0D7 /* XCTestSuiteRun.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = XCTestSuiteRun.swift; sourceTree = "<group>"; };
		AE2FE10C1CFE86E6003EF0D7 /* ArgumentParser.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ArgumentParser.swift; sourceTree = "<group>"; };
		AE2FE10D1CFE86E6003EF0D7 /* ObjectWrapper.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ObjectWrapper.swift; sourceTree = "<group>"; };
		AE2FE10E1CFE86E6003EF0D7 /* PerformanceMeter.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PerformanceMeter.swift; sourceTree = "<group>"; };
		AE2FE10F1CFE86E6003EF0D7 /* PrintObserver.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PrintObserver.swift; sourceTree = "<group>"; };
		AE2FE1101CFE86E6003EF0D7 /* TestFiltering.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TestFiltering.swift; sourceTree = "<group>"; };
		AE2FE1111CFE86E6003EF0D7 /* WallClockTimeMetric.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = WallClockTimeMetric.swift; sourceTree = "<group>"; };
		AE2FE1121CFE86E6003EF0D7 /* XCPredicateExpectation.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = XCPredicateExpectation.swift; sourceTree = "<group>"; };
		AE2FE1131CFE86E6003EF0D7 /* XCTestCaseSuite.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = XCTestCaseSuite.swift; sourceTree = "<group>"; };
		AE2FE1141CFE86E6003EF0D7 /* XCTestInternalObservation.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = XCTestInternalObservation.swift; sourceTree = "<group>"; };
		AE63767D1D01ED17002C0EA8 /* TestListing.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TestListing.swift; sourceTree = "<group>"; };
		AE7DD6061C8DC6C0006FC722 /* Functional */ = {isa = PBXFileReference; lastKnownFileType = folder; path = Functional; sourceTree = "<group>"; };
		B1384A411C1B3E8700EDF031 /* CONTRIBUTING.md */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = net.daringfireball.markdown; path = CONTRIBUTING.md; sourceTree = "<group>"; };
		B1384A421C1B3E8700EDF031 /* LICENSE */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = LICENSE; sourceTree = "<group>"; };
		B1384A431C1B3E8700EDF031 /* README.md */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = net.daringfireball.markdown; path = README.md; sourceTree = "<group>"; };
		DA7805F91C6704A2003C6636 /* SwiftFoundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = SwiftFoundation.framework; path = "../swift-corelibs-foundation/build/Debug/SwiftFoundation.framework"; sourceTree = "<group>"; };
		DA9D44141D920A3500108768 /* XCNotificationExpectationHandler.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = XCNotificationExpectationHandler.swift; sourceTree = "<group>"; };
		DA9D44151D920A3500108768 /* XCPredicateExpectationHandler.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = XCPredicateExpectationHandler.swift; sourceTree = "<group>"; };
		DA9D44161D920A3500108768 /* XCTestCase+Asynchronous.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "XCTestCase+Asynchronous.swift"; sourceTree = "<group>"; };
		DA9D44171D920A3500108768 /* XCTestExpectation.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = XCTestExpectation.swift; sourceTree = "<group>"; };
		DA9D44181D920A3500108768 /* XCWaitCompletionHandler.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = XCWaitCompletionHandler.swift; sourceTree = "<group>"; };
		DA9D441E1D920A5900108768 /* XCTestCase+PredicateExpectation.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "XCTestCase+PredicateExpectation.swift"; sourceTree = "<group>"; };
		DA9D44201D920A6400108768 /* XCTestCase+NotificationExpectation.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "XCTestCase+NotificationExpectation.swift"; sourceTree = "<group>"; };
		EA3E74BB1BF2B6D500635A73 /* build_script.py */ = {isa = PBXFileReference; lastKnownFileType = text.script.python; path = build_script.py; sourceTree = "<group>"; };
/* End PBXFileReference section */

/* Begin PBXFrameworksBuildPhase section */
		5B5D86D71BBC74AD00234F36 /* Frameworks */ = {
			isa = PBXFrameworksBuildPhase;
			buildActionMask = 2147483647;
			files = (
				DA7805FA1C6704A2003C6636 /* SwiftFoundation.framework in Frameworks */,
			);
			runOnlyForDeploymentPostprocessing = 0;
		};
/* End PBXFrameworksBuildPhase section */

/* Begin PBXGroup section */
		5B5D86D11BBC74AD00234F36 = {
			isa = PBXGroup;
			children = (
				C265F6661C3AEB6A00520CF9 /* Sources */,
				DA78F7E71C4039410082E15B /* Tests */,
				5B5D86DC1BBC74AD00234F36 /* Products */,
				DA7805FB1C6704CC003C6636 /* Linked Libraries */,
				EA3E74BC1BF2B6D700635A73 /* Linux Build */,
				B1384A401C1B3E6A00EDF031 /* Documentation */,
			);
			indentWidth = 4;
			sourceTree = "<group>";
			tabWidth = 4;
		};
		5B5D86DC1BBC74AD00234F36 /* Products */ = {
			isa = PBXGroup;
			children = (
				5B5D86DB1BBC74AD00234F36 /* SwiftXCTest.framework */,
			);
			name = Products;
			sourceTree = "<group>";
		};
		AE2FE0E81CFE86A5003EF0D7 /* Private */ = {
			isa = PBXGroup;
			children = (
				AE2FE10C1CFE86E6003EF0D7 /* ArgumentParser.swift */,
				AE2FE10D1CFE86E6003EF0D7 /* ObjectWrapper.swift */,
				AE2FE10E1CFE86E6003EF0D7 /* PerformanceMeter.swift */,
				AE2FE10F1CFE86E6003EF0D7 /* PrintObserver.swift */,
				AE2FE1101CFE86E6003EF0D7 /* TestFiltering.swift */,
				AE63767D1D01ED17002C0EA8 /* TestListing.swift */,
				AE2FE1111CFE86E6003EF0D7 /* WallClockTimeMetric.swift */,
				AE2FE1121CFE86E6003EF0D7 /* XCPredicateExpectation.swift */,
				AE2FE1131CFE86E6003EF0D7 /* XCTestCaseSuite.swift */,
				AE2FE1141CFE86E6003EF0D7 /* XCTestInternalObservation.swift */,
			);
			path = Private;
			sourceTree = "<group>";
		};
		AE2FE0E91CFE86AE003EF0D7 /* Public */ = {
			isa = PBXGroup;
			children = (
				DA9D44131D920A3500108768 /* Asynchronous */,
				AE2FE0EA1CFE86DB003EF0D7 /* XCAbstractTest.swift */,
				AE2FE0ED1CFE86DB003EF0D7 /* XCTAssert.swift */,
				AE2FE0EE1CFE86DB003EF0D7 /* XCTestCase.swift */,
				AE2FE0F01CFE86DB003EF0D7 /* XCTestCase+Performance.swift */,
				AE2FE0F11CFE86DB003EF0D7 /* XCTestCaseRun.swift */,
				AE2FE0F21CFE86DB003EF0D7 /* XCTestErrors.swift */,
				AE2FE0F41CFE86DB003EF0D7 /* XCTestMain.swift */,
				AE2FE0F51CFE86DB003EF0D7 /* XCTestObservation.swift */,
				AE2FE0F61CFE86DB003EF0D7 /* XCTestObservationCenter.swift */,
				AE2FE0F71CFE86DB003EF0D7 /* XCTestRun.swift */,
				AE2FE0F81CFE86DB003EF0D7 /* XCTestSuite.swift */,
				AE2FE0F91CFE86DB003EF0D7 /* XCTestSuiteRun.swift */,
			);
			path = Public;
			sourceTree = "<group>";
		};
		B1384A401C1B3E6A00EDF031 /* Documentation */ = {
			isa = PBXGroup;
			children = (
				B1384A411C1B3E8700EDF031 /* CONTRIBUTING.md */,
				B1384A421C1B3E8700EDF031 /* LICENSE */,
				B1384A431C1B3E8700EDF031 /* README.md */,
			);
			name = Documentation;
			sourceTree = "<group>";
		};
		C265F6661C3AEB6A00520CF9 /* Sources */ = {
			isa = PBXGroup;
			children = (
				C265F6671C3AEB6A00520CF9 /* XCTest */,
			);
			path = Sources;
			sourceTree = "<group>";
		};
		C265F6671C3AEB6A00520CF9 /* XCTest */ = {
			isa = PBXGroup;
			children = (
				AE2FE0E91CFE86AE003EF0D7 /* Public */,
				AE2FE0E81CFE86A5003EF0D7 /* Private */,
			);
			path = XCTest;
			sourceTree = "<group>";
		};
		DA7805FB1C6704CC003C6636 /* Linked Libraries */ = {
			isa = PBXGroup;
			children = (
				DA7805F91C6704A2003C6636 /* SwiftFoundation.framework */,
			);
			name = "Linked Libraries";
			sourceTree = "<group>";
		};
		DA78F7E71C4039410082E15B /* Tests */ = {
			isa = PBXGroup;
			children = (
				AE7DD6061C8DC6C0006FC722 /* Functional */,
			);
			path = Tests;
			sourceTree = "<group>";
		};
		DA9D44131D920A3500108768 /* Asynchronous */ = {
			isa = PBXGroup;
			children = (
				DA9D44161D920A3500108768 /* XCTestCase+Asynchronous.swift */,
				DA9D44171D920A3500108768 /* XCTestExpectation.swift */,
				DA9D44181D920A3500108768 /* XCWaitCompletionHandler.swift */,
				DA9D44151D920A3500108768 /* XCPredicateExpectationHandler.swift */,
				DA9D441E1D920A5900108768 /* XCTestCase+PredicateExpectation.swift */,
				DA9D44141D920A3500108768 /* XCNotificationExpectationHandler.swift */,
				DA9D44201D920A6400108768 /* XCTestCase+NotificationExpectation.swift */,
			);
			path = Asynchronous;
			sourceTree = "<group>";
		};
		EA3E74BC1BF2B6D700635A73 /* Linux Build */ = {
			isa = PBXGroup;
			children = (
				EA3E74BB1BF2B6D500635A73 /* build_script.py */,
			);
			name = "Linux Build";
			sourceTree = "<group>";
		};
/* End PBXGroup section */

/* Begin PBXHeadersBuildPhase section */
		5B5D86D81BBC74AD00234F36 /* Headers */ = {
			isa = PBXHeadersBuildPhase;
			buildActionMask = 2147483647;
			files = (
			);
			runOnlyForDeploymentPostprocessing = 0;
		};
/* End PBXHeadersBuildPhase section */

/* Begin PBXLegacyTarget section */
		DAA333B51C267AD6000CC115 /* SwiftXCTestFunctionalTests */ = {
			isa = PBXLegacyTarget;
			buildArgumentsString = "-sv --no-progress-bar Tests/Functional";
			buildConfigurationList = DAA333B81C267AD6000CC115 /* Build configuration list for PBXLegacyTarget "SwiftXCTestFunctionalTests" */;
			buildPhases = (
			);
			buildToolPath = "$(SRCROOT)/../llvm/utils/lit/lit.py";
			buildWorkingDirectory = "";
			dependencies = (
				DAA333BA1C267AF3000CC115 /* PBXTargetDependency */,
			);
			name = SwiftXCTestFunctionalTests;
			passBuildSettingsInEnvironment = 1;
			productName = SwiftXCTestFunctionalTests;
		};
/* End PBXLegacyTarget section */

/* Begin PBXNativeTarget section */
		5B5D86DA1BBC74AD00234F36 /* SwiftXCTest */ = {
			isa = PBXNativeTarget;
			buildConfigurationList = 5B5D86E31BBC74AD00234F36 /* Build configuration list for PBXNativeTarget "SwiftXCTest" */;
			buildPhases = (
				5B5D86D61BBC74AD00234F36 /* Sources */,
				5B5D86D71BBC74AD00234F36 /* Frameworks */,
				5B5D86D81BBC74AD00234F36 /* Headers */,
				5B5D86D91BBC74AD00234F36 /* Resources */,
			);
			buildRules = (
			);
			dependencies = (
			);
			name = SwiftXCTest;
			productName = TestFramework;
			productReference = 5B5D86DB1BBC74AD00234F36 /* SwiftXCTest.framework */;
			productType = "com.apple.product-type.framework";
		};
/* End PBXNativeTarget section */

/* Begin PBXProject section */
		5B5D86D21BBC74AD00234F36 /* Project object */ = {
			isa = PBXProject;
			attributes = {
				LastSwiftMigration = 0730;
				LastSwiftUpdateCheck = 0730;
				LastUpgradeCheck = 0800;
				ORGANIZATIONNAME = Apple;
				TargetAttributes = {
					5B5D86DA1BBC74AD00234F36 = {
						CreatedOnToolsVersion = 7.1;
						LastSwiftMigration = 0800;
					};
					DAA333B51C267AD6000CC115 = {
						CreatedOnToolsVersion = 7.2;
					};
				};
			};
			buildConfigurationList = 5B5D86D51BBC74AD00234F36 /* Build configuration list for PBXProject "XCTest" */;
			compatibilityVersion = "Xcode 3.2";
			developmentRegion = English;
			hasScannedForEncodings = 0;
			knownRegions = (
				en,
				Base,
			);
			mainGroup = 5B5D86D11BBC74AD00234F36;
			productRefGroup = 5B5D86DC1BBC74AD00234F36 /* Products */;
			projectDirPath = "";
			projectRoot = "";
			targets = (
				5B5D86DA1BBC74AD00234F36 /* SwiftXCTest */,
				DAA333B51C267AD6000CC115 /* SwiftXCTestFunctionalTests */,
			);
		};
/* End PBXProject section */

/* Begin PBXResourcesBuildPhase section */
		5B5D86D91BBC74AD00234F36 /* Resources */ = {
			isa = PBXResourcesBuildPhase;
			buildActionMask = 2147483647;
			files = (
			);
			runOnlyForDeploymentPostprocessing = 0;
		};
/* End PBXResourcesBuildPhase section */

/* Begin PBXSourcesBuildPhase section */
		5B5D86D61BBC74AD00234F36 /* Sources */ = {
			isa = PBXSourcesBuildPhase;
			buildActionMask = 2147483647;
			files = (
				AE2FE1071CFE86DB003EF0D7 /* XCTestObservationCenter.swift in Sources */,
				DA9D441C1D920A3500108768 /* XCTestExpectation.swift in Sources */,
				AE2FE1011CFE86DB003EF0D7 /* XCTestCase+Performance.swift in Sources */,
				DA9D441B1D920A3500108768 /* XCTestCase+Asynchronous.swift in Sources */,
				AE2FE1181CFE86E6003EF0D7 /* PrintObserver.swift in Sources */,
				AE2FE1021CFE86DB003EF0D7 /* XCTestCaseRun.swift in Sources */,
				DA9D441D1D920A3500108768 /* XCWaitCompletionHandler.swift in Sources */,
				DA9D441A1D920A3500108768 /* XCPredicateExpectationHandler.swift in Sources */,
				AE2FE1171CFE86E6003EF0D7 /* PerformanceMeter.swift in Sources */,
				AE2FE1051CFE86DB003EF0D7 /* XCTestMain.swift in Sources */,
				AE2FE11B1CFE86E6003EF0D7 /* XCPredicateExpectation.swift in Sources */,
				DA9D44191D920A3500108768 /* XCNotificationExpectationHandler.swift in Sources */,
				DA9D44211D920A6400108768 /* XCTestCase+NotificationExpectation.swift in Sources */,
				AE63767E1D01ED17002C0EA8 /* TestListing.swift in Sources */,
				AE2FE1151CFE86E6003EF0D7 /* ArgumentParser.swift in Sources */,
				AE2FE0FF1CFE86DB003EF0D7 /* XCTestCase.swift in Sources */,
				DA9D441F1D920A5900108768 /* XCTestCase+PredicateExpectation.swift in Sources */,
				AE2FE11D1CFE86E6003EF0D7 /* XCTestInternalObservation.swift in Sources */,
				AE2FE1061CFE86DB003EF0D7 /* XCTestObservation.swift in Sources */,
				AE2FE0FB1CFE86DB003EF0D7 /* XCAbstractTest.swift in Sources */,
				AE2FE1081CFE86DB003EF0D7 /* XCTestRun.swift in Sources */,
				AE2FE10A1CFE86DB003EF0D7 /* XCTestSuiteRun.swift in Sources */,
				AE2FE1161CFE86E6003EF0D7 /* ObjectWrapper.swift in Sources */,
				AE2FE11A1CFE86E6003EF0D7 /* WallClockTimeMetric.swift in Sources */,
				AE2FE1191CFE86E6003EF0D7 /* TestFiltering.swift in Sources */,
				AE2FE1031CFE86DB003EF0D7 /* XCTestErrors.swift in Sources */,
				AE2FE1091CFE86DB003EF0D7 /* XCTestSuite.swift in Sources */,
				AE2FE11C1CFE86E6003EF0D7 /* XCTestCaseSuite.swift in Sources */,
				AE2FE0FE1CFE86DB003EF0D7 /* XCTAssert.swift in Sources */,
			);
			runOnlyForDeploymentPostprocessing = 0;
		};
/* End PBXSourcesBuildPhase section */

/* Begin PBXTargetDependency section */
		DAA333BA1C267AF3000CC115 /* PBXTargetDependency */ = {
			isa = PBXTargetDependency;
			target = 5B5D86DA1BBC74AD00234F36 /* SwiftXCTest */;
			targetProxy = DAA333B91C267AF3000CC115 /* PBXContainerItemProxy */;
		};
/* End PBXTargetDependency section */

/* Begin XCBuildConfiguration section */
		5B5D86E11BBC74AD00234F36 /* Debug */ = {
			isa = XCBuildConfiguration;
			buildSettings = {
				ALWAYS_SEARCH_USER_PATHS = NO;
				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_INFINITE_RECURSION = YES;
				CLANG_WARN_INT_CONVERSION = YES;
				CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
				CLANG_WARN_SUSPICIOUS_MOVE = YES;
				CLANG_WARN_UNREACHABLE_CODE = YES;
				CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
				CODE_SIGN_IDENTITY = "";
				COPY_PHASE_STRIP = NO;
				CURRENT_PROJECT_VERSION = 1;
				DEBUG_INFORMATION_FORMAT = dwarf;
				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;
				MACOSX_DEPLOYMENT_TARGET = 10.9;
				MTL_ENABLE_DEBUG_INFO = YES;
				ONLY_ACTIVE_ARCH = YES;
				SDKROOT = macosx;
				SWIFT_OPTIMIZATION_LEVEL = "-Onone";
				VERSIONING_SYSTEM = "apple-generic";
				VERSION_INFO_PREFIX = "";
			};
			name = Debug;
		};
		5B5D86E21BBC74AD00234F36 /* Release */ = {
			isa = XCBuildConfiguration;
			buildSettings = {
				ALWAYS_SEARCH_USER_PATHS = NO;
				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_INFINITE_RECURSION = YES;
				CLANG_WARN_INT_CONVERSION = YES;
				CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
				CLANG_WARN_SUSPICIOUS_MOVE = YES;
				CLANG_WARN_UNREACHABLE_CODE = YES;
				CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
				CODE_SIGN_IDENTITY = "";
				COPY_PHASE_STRIP = NO;
				CURRENT_PROJECT_VERSION = 1;
				DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
				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;
				MACOSX_DEPLOYMENT_TARGET = 10.9;
				MTL_ENABLE_DEBUG_INFO = NO;
				SDKROOT = macosx;
				SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule";
				VERSIONING_SYSTEM = "apple-generic";
				VERSION_INFO_PREFIX = "";
			};
			name = Release;
		};
		5B5D86E41BBC74AD00234F36 /* Debug */ = {
			isa = XCBuildConfiguration;
			buildSettings = {
				CLANG_ENABLE_MODULES = YES;
				COMBINE_HIDPI_IMAGES = YES;
				DEFINES_MODULE = YES;
				DYLIB_COMPATIBILITY_VERSION = 1;
				DYLIB_CURRENT_VERSION = 1;
				DYLIB_INSTALL_NAME_BASE = "@rpath";
				FRAMEWORK_VERSION = A;
				INFOPLIST_FILE = Info.plist;
				INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
				LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks @loader_path/Frameworks";
				MACOSX_DEPLOYMENT_TARGET = 10.11;
				PRODUCT_BUNDLE_IDENTIFIER = org.swift.XCTest;
				PRODUCT_NAME = SwiftXCTest;
				SKIP_INSTALL = YES;
				SWIFT_OPTIMIZATION_LEVEL = "-Onone";
				SWIFT_VERSION = 3.0;
				USER_HEADER_SEARCH_PATHS = $BUILT_PRODUCTS_DIR/usr/local/include/CoreFoundation;
			};
			name = Debug;
		};
		5B5D86E51BBC74AD00234F36 /* Release */ = {
			isa = XCBuildConfiguration;
			buildSettings = {
				CLANG_ENABLE_MODULES = YES;
				COMBINE_HIDPI_IMAGES = YES;
				DEFINES_MODULE = YES;
				DYLIB_COMPATIBILITY_VERSION = 1;
				DYLIB_CURRENT_VERSION = 1;
				DYLIB_INSTALL_NAME_BASE = "@rpath";
				FRAMEWORK_VERSION = A;
				INFOPLIST_FILE = Info.plist;
				INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
				LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks @loader_path/Frameworks";
				MACOSX_DEPLOYMENT_TARGET = 10.11;
				PRODUCT_BUNDLE_IDENTIFIER = org.swift.XCTest;
				PRODUCT_NAME = SwiftXCTest;
				SKIP_INSTALL = YES;
				SWIFT_VERSION = 3.0;
				USER_HEADER_SEARCH_PATHS = $BUILT_PRODUCTS_DIR/usr/local/include/CoreFoundation;
			};
			name = Release;
		};
		DAA333B61C267AD6000CC115 /* Debug */ = {
			isa = XCBuildConfiguration;
			buildSettings = {
				DEBUGGING_SYMBOLS = YES;
				DEBUG_INFORMATION_FORMAT = dwarf;
				GCC_GENERATE_DEBUGGING_SYMBOLS = YES;
				GCC_OPTIMIZATION_LEVEL = 0;
				MACOSX_DEPLOYMENT_TARGET = 10.11;
				OTHER_CFLAGS = "";
				OTHER_LDFLAGS = "";
				PRODUCT_NAME = "$(TARGET_NAME)";
				SWIFT_EXEC = "$(TOOLCHAIN_DIR)/usr/bin/swiftc";
			};
			name = Debug;
		};
		DAA333B71C267AD6000CC115 /* Release */ = {
			isa = XCBuildConfiguration;
			buildSettings = {
				DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
				MACOSX_DEPLOYMENT_TARGET = 10.11;
				OTHER_CFLAGS = "";
				OTHER_LDFLAGS = "";
				PRODUCT_NAME = "$(TARGET_NAME)";
				SWIFT_EXEC = "$(TOOLCHAIN_DIR)/usr/bin/swiftc";
			};
			name = Release;
		};
/* End XCBuildConfiguration section */

/* Begin XCConfigurationList section */
		5B5D86D51BBC74AD00234F36 /* Build configuration list for PBXProject "XCTest" */ = {
			isa = XCConfigurationList;
			buildConfigurations = (
				5B5D86E11BBC74AD00234F36 /* Debug */,
				5B5D86E21BBC74AD00234F36 /* Release */,
			);
			defaultConfigurationIsVisible = 0;
			defaultConfigurationName = Release;
		};
		5B5D86E31BBC74AD00234F36 /* Build configuration list for PBXNativeTarget "SwiftXCTest" */ = {
			isa = XCConfigurationList;
			buildConfigurations = (
				5B5D86E41BBC74AD00234F36 /* Debug */,
				5B5D86E51BBC74AD00234F36 /* Release */,
			);
			defaultConfigurationIsVisible = 0;
			defaultConfigurationName = Release;
		};
		DAA333B81C267AD6000CC115 /* Build configuration list for PBXLegacyTarget "SwiftXCTestFunctionalTests" */ = {
			isa = XCConfigurationList;
			buildConfigurations = (
				DAA333B61C267AD6000CC115 /* Debug */,
				DAA333B71C267AD6000CC115 /* Release */,
			);
			defaultConfigurationIsVisible = 0;
			defaultConfigurationName = Release;
		};
/* End XCConfigurationList section */
	};
	rootObject = 5B5D86D21BBC74AD00234F36 /* Project object */;
}
