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

/* Begin PBXBuildFile section */
		14BAE2DA2569E9C5006367CF /* DeviceTask.m in Sources */ = {isa = PBXBuildFile; fileRef = 14BAE2D92569E9C5006367CF /* DeviceTask.m */; };
		14BAE2DE2569EB16006367CF /* Task.m in Sources */ = {isa = PBXBuildFile; fileRef = 14BAE2DD2569EB16006367CF /* Task.m */; };
		14BAE2E22569ECC9006367CF /* Scheduler.m in Sources */ = {isa = PBXBuildFile; fileRef = 14BAE2E12569ECC9006367CF /* Scheduler.m */; };
		14BAE2E92569ED2F006367CF /* WorkerTask.m in Sources */ = {isa = PBXBuildFile; fileRef = 14BAE2E82569ED2F006367CF /* WorkerTask.m */; };
		14BAE2EE2569ED55006367CF /* HandlerTask.m in Sources */ = {isa = PBXBuildFile; fileRef = 14BAE2ED2569ED55006367CF /* HandlerTask.m */; };
		14BAE2F32569ED7B006367CF /* IdleTask.m in Sources */ = {isa = PBXBuildFile; fileRef = 14BAE2F22569ED7B006367CF /* IdleTask.m */; };
		14BAE2F82569EDA0006367CF /* Packet.m in Sources */ = {isa = PBXBuildFile; fileRef = 14BAE2F72569EDA0006367CF /* Packet.m */; };
		14BAE2FD256A1D58006367CF /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 14BAE2FC256A1D58006367CF /* main.m */; };
		14BAE300256A1D67006367CF /* richards.m in Sources */ = {isa = PBXBuildFile; fileRef = 14BAE2FF256A1D67006367CF /* richards.m */; };
/* End PBXBuildFile section */

/* Begin PBXCopyFilesBuildPhase section */
		1415AD202499BC5C005BB2E4 /* CopyFiles */ = {
			isa = PBXCopyFilesBuildPhase;
			buildActionMask = 12;
			dstPath = "";
			dstSubfolderSpec = 16;
			files = (
			);
			runOnlyForDeploymentPostprocessing = 0;
		};
/* End PBXCopyFilesBuildPhase section */

/* Begin PBXFileReference section */
		1415AD222499BC5C005BB2E4 /* RichardsObjC */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = RichardsObjC; sourceTree = BUILT_PRODUCTS_DIR; };
		14BAE2D82569E9C5006367CF /* DeviceTask.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = DeviceTask.h; sourceTree = "<group>"; };
		14BAE2D92569E9C5006367CF /* DeviceTask.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = DeviceTask.m; sourceTree = "<group>"; };
		14BAE2DC2569EB16006367CF /* Task.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = Task.h; sourceTree = "<group>"; };
		14BAE2DD2569EB16006367CF /* Task.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = Task.m; sourceTree = "<group>"; };
		14BAE2E02569ECC9006367CF /* Scheduler.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = Scheduler.h; sourceTree = "<group>"; };
		14BAE2E12569ECC9006367CF /* Scheduler.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = Scheduler.m; sourceTree = "<group>"; };
		14BAE2E72569ED2F006367CF /* WorkerTask.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = WorkerTask.h; sourceTree = "<group>"; };
		14BAE2E82569ED2F006367CF /* WorkerTask.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = WorkerTask.m; sourceTree = "<group>"; };
		14BAE2EC2569ED55006367CF /* HandlerTask.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = HandlerTask.h; sourceTree = "<group>"; };
		14BAE2ED2569ED55006367CF /* HandlerTask.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = HandlerTask.m; sourceTree = "<group>"; };
		14BAE2F12569ED7B006367CF /* IdleTask.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = IdleTask.h; sourceTree = "<group>"; };
		14BAE2F22569ED7B006367CF /* IdleTask.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = IdleTask.m; sourceTree = "<group>"; };
		14BAE2F62569EDA0006367CF /* Packet.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = Packet.h; sourceTree = "<group>"; };
		14BAE2F72569EDA0006367CF /* Packet.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = Packet.m; sourceTree = "<group>"; };
		14BAE2FC256A1D58006367CF /* main.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = "<group>"; };
		14BAE2FF256A1D67006367CF /* richards.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = richards.m; sourceTree = "<group>"; };
		14BAE304256A2027006367CF /* Device.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = Device.h; sourceTree = "<group>"; };
/* End PBXFileReference section */

/* Begin PBXFrameworksBuildPhase section */
		1415AD1F2499BC5C005BB2E4 /* Frameworks */ = {
			isa = PBXFrameworksBuildPhase;
			buildActionMask = 2147483647;
			files = (
			);
			runOnlyForDeploymentPostprocessing = 0;
		};
/* End PBXFrameworksBuildPhase section */

/* Begin PBXGroup section */
		1415AD192499BC5B005BB2E4 = {
			isa = PBXGroup;
			children = (
				1415AD242499BC5C005BB2E4 /* RichardsObjC */,
				1415AD232499BC5C005BB2E4 /* Products */,
			);
			sourceTree = "<group>";
		};
		1415AD232499BC5C005BB2E4 /* Products */ = {
			isa = PBXGroup;
			children = (
				1415AD222499BC5C005BB2E4 /* RichardsObjC */,
			);
			name = Products;
			sourceTree = "<group>";
		};
		1415AD242499BC5C005BB2E4 /* RichardsObjC */ = {
			isa = PBXGroup;
			children = (
				14BAE304256A2027006367CF /* Device.h */,
				14BAE2D82569E9C5006367CF /* DeviceTask.h */,
				14BAE2D92569E9C5006367CF /* DeviceTask.m */,
				14BAE2EC2569ED55006367CF /* HandlerTask.h */,
				14BAE2ED2569ED55006367CF /* HandlerTask.m */,
				14BAE2F12569ED7B006367CF /* IdleTask.h */,
				14BAE2F22569ED7B006367CF /* IdleTask.m */,
				14BAE2FC256A1D58006367CF /* main.m */,
				14BAE2F62569EDA0006367CF /* Packet.h */,
				14BAE2F72569EDA0006367CF /* Packet.m */,
				14BAE2FF256A1D67006367CF /* richards.m */,
				14BAE2E02569ECC9006367CF /* Scheduler.h */,
				14BAE2E12569ECC9006367CF /* Scheduler.m */,
				14BAE2DC2569EB16006367CF /* Task.h */,
				14BAE2DD2569EB16006367CF /* Task.m */,
				14BAE2E72569ED2F006367CF /* WorkerTask.h */,
				14BAE2E82569ED2F006367CF /* WorkerTask.m */,
			);
			path = RichardsObjC;
			sourceTree = "<group>";
		};
/* End PBXGroup section */

/* Begin PBXNativeTarget section */
		1415AD212499BC5C005BB2E4 /* RichardsObjC */ = {
			isa = PBXNativeTarget;
			buildConfigurationList = 1415AD292499BC5C005BB2E4 /* Build configuration list for PBXNativeTarget "RichardsObjC" */;
			buildPhases = (
				1415AD1E2499BC5C005BB2E4 /* Sources */,
				1415AD1F2499BC5C005BB2E4 /* Frameworks */,
				1415AD202499BC5C005BB2E4 /* CopyFiles */,
			);
			buildRules = (
			);
			dependencies = (
			);
			name = RichardsObjC;
			productName = RichardsMostlySwift;
			productReference = 1415AD222499BC5C005BB2E4 /* RichardsObjC */;
			productType = "com.apple.product-type.tool";
		};
/* End PBXNativeTarget section */

/* Begin PBXProject section */
		1415AD1A2499BC5B005BB2E4 /* Project object */ = {
			isa = PBXProject;
			attributes = {
				LastSwiftUpdateCheck = 1200;
				LastUpgradeCheck = 1200;
				TargetAttributes = {
					1415AD212499BC5C005BB2E4 = {
						CreatedOnToolsVersion = 12.0;
						LastSwiftMigration = 1200;
					};
				};
			};
			buildConfigurationList = 1415AD1D2499BC5B005BB2E4 /* Build configuration list for PBXProject "RichardsObjC" */;
			compatibilityVersion = "Xcode 9.3";
			developmentRegion = en;
			hasScannedForEncodings = 0;
			knownRegions = (
				en,
				Base,
			);
			mainGroup = 1415AD192499BC5B005BB2E4;
			productRefGroup = 1415AD232499BC5C005BB2E4 /* Products */;
			projectDirPath = "";
			projectRoot = "";
			targets = (
				1415AD212499BC5C005BB2E4 /* RichardsObjC */,
			);
		};
/* End PBXProject section */

/* Begin PBXSourcesBuildPhase section */
		1415AD1E2499BC5C005BB2E4 /* Sources */ = {
			isa = PBXSourcesBuildPhase;
			buildActionMask = 2147483647;
			files = (
				14BAE2DA2569E9C5006367CF /* DeviceTask.m in Sources */,
				14BAE2EE2569ED55006367CF /* HandlerTask.m in Sources */,
				14BAE2F32569ED7B006367CF /* IdleTask.m in Sources */,
				14BAE2FD256A1D58006367CF /* main.m in Sources */,
				14BAE2F82569EDA0006367CF /* Packet.m in Sources */,
				14BAE300256A1D67006367CF /* richards.m in Sources */,
				14BAE2E22569ECC9006367CF /* Scheduler.m in Sources */,
				14BAE2DE2569EB16006367CF /* Task.m in Sources */,
				14BAE2E92569ED2F006367CF /* WorkerTask.m in Sources */,
			);
			runOnlyForDeploymentPostprocessing = 0;
		};
/* End PBXSourcesBuildPhase section */

/* Begin XCBuildConfiguration section */
		1415AD272499BC5C005BB2E4 /* Debug */ = {
			isa = XCBuildConfiguration;
			buildSettings = {
				ALWAYS_SEARCH_USER_PATHS = NO;
				CLANG_ANALYZER_NONNULL = YES;
				CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;
				CLANG_CXX_LANGUAGE_STANDARD = "gnu++14";
				CLANG_CXX_LIBRARY = "libc++";
				CLANG_ENABLE_MODULES = YES;
				CLANG_ENABLE_OBJC_ARC = YES;
				CLANG_ENABLE_OBJC_WEAK = YES;
				CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
				CLANG_WARN_BOOL_CONVERSION = YES;
				CLANG_WARN_COMMA = YES;
				CLANG_WARN_CONSTANT_CONVERSION = YES;
				CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
				CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
				CLANG_WARN_DOCUMENTATION_COMMENTS = YES;
				CLANG_WARN_EMPTY_BODY = YES;
				CLANG_WARN_ENUM_CONVERSION = YES;
				CLANG_WARN_INFINITE_RECURSION = YES;
				CLANG_WARN_INT_CONVERSION = YES;
				CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
				CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
				CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
				CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
				CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES;
				CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
				CLANG_WARN_STRICT_PROTOTYPES = YES;
				CLANG_WARN_SUSPICIOUS_MOVE = YES;
				CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE;
				CLANG_WARN_UNREACHABLE_CODE = YES;
				CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
				COPY_PHASE_STRIP = NO;
				DEBUG_INFORMATION_FORMAT = dwarf;
				ENABLE_STRICT_OBJC_MSGSEND = YES;
				ENABLE_TESTABILITY = YES;
				GCC_C_LANGUAGE_STANDARD = gnu11;
				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.16;
				MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE;
				MTL_FAST_MATH = YES;
				ONLY_ACTIVE_ARCH = YES;
				SDKROOT = macosx;
				SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG;
				SWIFT_OPTIMIZATION_LEVEL = "-Onone";
			};
			name = Debug;
		};
		1415AD282499BC5C005BB2E4 /* Release */ = {
			isa = XCBuildConfiguration;
			buildSettings = {
				ALWAYS_SEARCH_USER_PATHS = NO;
				CLANG_ANALYZER_NONNULL = YES;
				CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;
				CLANG_CXX_LANGUAGE_STANDARD = "gnu++14";
				CLANG_CXX_LIBRARY = "libc++";
				CLANG_ENABLE_MODULES = YES;
				CLANG_ENABLE_OBJC_ARC = YES;
				CLANG_ENABLE_OBJC_WEAK = YES;
				CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
				CLANG_WARN_BOOL_CONVERSION = YES;
				CLANG_WARN_COMMA = YES;
				CLANG_WARN_CONSTANT_CONVERSION = YES;
				CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
				CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
				CLANG_WARN_DOCUMENTATION_COMMENTS = YES;
				CLANG_WARN_EMPTY_BODY = YES;
				CLANG_WARN_ENUM_CONVERSION = YES;
				CLANG_WARN_INFINITE_RECURSION = YES;
				CLANG_WARN_INT_CONVERSION = YES;
				CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
				CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
				CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
				CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
				CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES;
				CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
				CLANG_WARN_STRICT_PROTOTYPES = YES;
				CLANG_WARN_SUSPICIOUS_MOVE = YES;
				CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE;
				CLANG_WARN_UNREACHABLE_CODE = YES;
				CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
				COPY_PHASE_STRIP = NO;
				DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
				ENABLE_NS_ASSERTIONS = NO;
				ENABLE_STRICT_OBJC_MSGSEND = YES;
				GCC_C_LANGUAGE_STANDARD = gnu11;
				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.16;
				MTL_ENABLE_DEBUG_INFO = NO;
				MTL_FAST_MATH = YES;
				SDKROOT = macosx;
				SWIFT_COMPILATION_MODE = wholemodule;
				SWIFT_OPTIMIZATION_LEVEL = "-O";
			};
			name = Release;
		};
		1415AD2A2499BC5C005BB2E4 /* Debug */ = {
			isa = XCBuildConfiguration;
			buildSettings = {
				CLANG_ENABLE_MODULES = YES;
				CODE_SIGN_STYLE = Automatic;
				LD_RUNPATH_SEARCH_PATHS = (
					"$(inherited)",
					"@executable_path/../Frameworks",
					"@loader_path/../Frameworks",
				);
				PRODUCT_NAME = "$(TARGET_NAME)";
				SWIFT_OPTIMIZATION_LEVEL = "-Onone";
				SWIFT_VERSION = 5.0;
			};
			name = Debug;
		};
		1415AD2B2499BC5C005BB2E4 /* Release */ = {
			isa = XCBuildConfiguration;
			buildSettings = {
				CLANG_ENABLE_MODULES = YES;
				CODE_SIGN_STYLE = Automatic;
				LD_RUNPATH_SEARCH_PATHS = (
					"$(inherited)",
					"@executable_path/../Frameworks",
					"@loader_path/../Frameworks",
				);
				PRODUCT_NAME = "$(TARGET_NAME)";
				SWIFT_VERSION = 5.0;
			};
			name = Release;
		};
/* End XCBuildConfiguration section */

/* Begin XCConfigurationList section */
		1415AD1D2499BC5B005BB2E4 /* Build configuration list for PBXProject "RichardsObjC" */ = {
			isa = XCConfigurationList;
			buildConfigurations = (
				1415AD272499BC5C005BB2E4 /* Debug */,
				1415AD282499BC5C005BB2E4 /* Release */,
			);
			defaultConfigurationIsVisible = 0;
			defaultConfigurationName = Release;
		};
		1415AD292499BC5C005BB2E4 /* Build configuration list for PBXNativeTarget "RichardsObjC" */ = {
			isa = XCConfigurationList;
			buildConfigurations = (
				1415AD2A2499BC5C005BB2E4 /* Debug */,
				1415AD2B2499BC5C005BB2E4 /* Release */,
			);
			defaultConfigurationIsVisible = 0;
			defaultConfigurationName = Release;
		};
/* End XCConfigurationList section */
	};
	rootObject = 1415AD1A2499BC5B005BB2E4 /* Project object */;
}
