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

/* Begin PBXBuildFile section */
		0FA9BEB7216CE6CA00BA646B /* qcbor_decode_tests.c in Sources */ = {isa = PBXBuildFile; fileRef = 0FA9BEB5216CE6CA00BA646B /* qcbor_decode_tests.c */; };
		0FA9BEBA216DC7AD00BA646B /* qcbor_encode_tests.c in Sources */ = {isa = PBXBuildFile; fileRef = 0FA9BEB8216DC7AD00BA646B /* qcbor_encode_tests.c */; };
		0FA9BEBD216DE31700BA646B /* UsefulBuf_Tests.c in Sources */ = {isa = PBXBuildFile; fileRef = 0FA9BEBC216DE31700BA646B /* UsefulBuf_Tests.c */; };
		E73B57592161CA690080D658 /* ieee754.c in Sources */ = {isa = PBXBuildFile; fileRef = E73B57582161CA690080D658 /* ieee754.c */; };
		E73B575E2161CA7C0080D658 /* float_tests.c in Sources */ = {isa = PBXBuildFile; fileRef = E73B575A2161CA7C0080D658 /* float_tests.c */; };
		E73B575F2161CA7C0080D658 /* half_to_double_from_rfc7049.c in Sources */ = {isa = PBXBuildFile; fileRef = E73B575D2161CA7C0080D658 /* half_to_double_from_rfc7049.c */; };
		E73B57652161F8F80080D658 /* run_tests.c in Sources */ = {isa = PBXBuildFile; fileRef = E73B57632161F8F70080D658 /* run_tests.c */; };
		E743D0F324AD08020017899F /* example.c in Sources */ = {isa = PBXBuildFile; fileRef = E743D0E124AC516D0017899F /* example.c */; };
		E743D10B24DD4EF50017899F /* qcbor_encode.c in Sources */ = {isa = PBXBuildFile; fileRef = E776E08C214AE07400E67947 /* qcbor_encode.c */; };
		E743D10C24DD4EF50017899F /* ieee754.c in Sources */ = {isa = PBXBuildFile; fileRef = E73B57582161CA690080D658 /* ieee754.c */; };
		E743D10D24DD4EF50017899F /* half_to_double_from_rfc7049.c in Sources */ = {isa = PBXBuildFile; fileRef = E73B575D2161CA7C0080D658 /* half_to_double_from_rfc7049.c */; };
		E743D10E24DD4EF50017899F /* run_tests.c in Sources */ = {isa = PBXBuildFile; fileRef = E73B57632161F8F70080D658 /* run_tests.c */; };
		E743D10F24DD4EF50017899F /* qcbor_decode.c in Sources */ = {isa = PBXBuildFile; fileRef = E776E08E214AE07500E67947 /* qcbor_decode.c */; };
		E743D11024DD4EF50017899F /* float_tests.c in Sources */ = {isa = PBXBuildFile; fileRef = E73B575A2161CA7C0080D658 /* float_tests.c */; };
		E743D11124DD4EF50017899F /* qcbor_decode_tests.c in Sources */ = {isa = PBXBuildFile; fileRef = 0FA9BEB5216CE6CA00BA646B /* qcbor_decode_tests.c */; };
		E743D11224DD4EF50017899F /* UsefulBuf.c in Sources */ = {isa = PBXBuildFile; fileRef = E776E08D214AE07500E67947 /* UsefulBuf.c */; };
		E743D11324DD4EF50017899F /* qcbor_encode_tests.c in Sources */ = {isa = PBXBuildFile; fileRef = 0FA9BEB8216DC7AD00BA646B /* qcbor_encode_tests.c */; };
		E743D11424DD4EF50017899F /* cmd_line_main.c in Sources */ = {isa = PBXBuildFile; fileRef = E776E096214AE0C700E67947 /* cmd_line_main.c */; };
		E743D11524DD4EF50017899F /* UsefulBuf_Tests.c in Sources */ = {isa = PBXBuildFile; fileRef = 0FA9BEBC216DE31700BA646B /* UsefulBuf_Tests.c */; };
		E743D11C24DD51340017899F /* example.c in Sources */ = {isa = PBXBuildFile; fileRef = E743D0E124AC516D0017899F /* example.c */; };
		E743D11D24DD51350017899F /* example.c in Sources */ = {isa = PBXBuildFile; fileRef = E743D0E124AC516D0017899F /* example.c */; };
		E743D12024DE05CC0017899F /* qcbor_encode.c in Sources */ = {isa = PBXBuildFile; fileRef = E776E08C214AE07400E67947 /* qcbor_encode.c */; };
		E743D12124DE05CC0017899F /* ieee754.c in Sources */ = {isa = PBXBuildFile; fileRef = E73B57582161CA690080D658 /* ieee754.c */; };
		E743D12224DE05CC0017899F /* half_to_double_from_rfc7049.c in Sources */ = {isa = PBXBuildFile; fileRef = E73B575D2161CA7C0080D658 /* half_to_double_from_rfc7049.c */; };
		E743D12324DE05CC0017899F /* run_tests.c in Sources */ = {isa = PBXBuildFile; fileRef = E73B57632161F8F70080D658 /* run_tests.c */; };
		E743D12424DE05CC0017899F /* qcbor_decode.c in Sources */ = {isa = PBXBuildFile; fileRef = E776E08E214AE07500E67947 /* qcbor_decode.c */; };
		E743D12524DE05CC0017899F /* float_tests.c in Sources */ = {isa = PBXBuildFile; fileRef = E73B575A2161CA7C0080D658 /* float_tests.c */; };
		E743D12624DE05CC0017899F /* qcbor_decode_tests.c in Sources */ = {isa = PBXBuildFile; fileRef = 0FA9BEB5216CE6CA00BA646B /* qcbor_decode_tests.c */; };
		E743D12724DE05CC0017899F /* UsefulBuf.c in Sources */ = {isa = PBXBuildFile; fileRef = E776E08D214AE07500E67947 /* UsefulBuf.c */; };
		E743D12824DE05CC0017899F /* qcbor_encode_tests.c in Sources */ = {isa = PBXBuildFile; fileRef = 0FA9BEB8216DC7AD00BA646B /* qcbor_encode_tests.c */; };
		E743D12924DE05CC0017899F /* cmd_line_main.c in Sources */ = {isa = PBXBuildFile; fileRef = E776E096214AE0C700E67947 /* cmd_line_main.c */; };
		E743D12A24DE05CC0017899F /* example.c in Sources */ = {isa = PBXBuildFile; fileRef = E743D0E124AC516D0017899F /* example.c */; };
		E743D12B24DE05CC0017899F /* UsefulBuf_Tests.c in Sources */ = {isa = PBXBuildFile; fileRef = 0FA9BEBC216DE31700BA646B /* UsefulBuf_Tests.c */; };
		E772021723B52C02006E966E /* qcbor_encode.c in Sources */ = {isa = PBXBuildFile; fileRef = E776E08C214AE07400E67947 /* qcbor_encode.c */; };
		E772021823B52C02006E966E /* ieee754.c in Sources */ = {isa = PBXBuildFile; fileRef = E73B57582161CA690080D658 /* ieee754.c */; };
		E772021923B52C02006E966E /* half_to_double_from_rfc7049.c in Sources */ = {isa = PBXBuildFile; fileRef = E73B575D2161CA7C0080D658 /* half_to_double_from_rfc7049.c */; };
		E772021A23B52C02006E966E /* run_tests.c in Sources */ = {isa = PBXBuildFile; fileRef = E73B57632161F8F70080D658 /* run_tests.c */; };
		E772021B23B52C02006E966E /* qcbor_decode.c in Sources */ = {isa = PBXBuildFile; fileRef = E776E08E214AE07500E67947 /* qcbor_decode.c */; };
		E772021C23B52C02006E966E /* float_tests.c in Sources */ = {isa = PBXBuildFile; fileRef = E73B575A2161CA7C0080D658 /* float_tests.c */; };
		E772021D23B52C02006E966E /* qcbor_decode_tests.c in Sources */ = {isa = PBXBuildFile; fileRef = 0FA9BEB5216CE6CA00BA646B /* qcbor_decode_tests.c */; };
		E772021E23B52C02006E966E /* UsefulBuf.c in Sources */ = {isa = PBXBuildFile; fileRef = E776E08D214AE07500E67947 /* UsefulBuf.c */; };
		E772021F23B52C02006E966E /* qcbor_encode_tests.c in Sources */ = {isa = PBXBuildFile; fileRef = 0FA9BEB8216DC7AD00BA646B /* qcbor_encode_tests.c */; };
		E772022023B52C02006E966E /* cmd_line_main.c in Sources */ = {isa = PBXBuildFile; fileRef = E776E096214AE0C700E67947 /* cmd_line_main.c */; };
		E772022123B52C02006E966E /* UsefulBuf_Tests.c in Sources */ = {isa = PBXBuildFile; fileRef = 0FA9BEBC216DE31700BA646B /* UsefulBuf_Tests.c */; };
		E776E08F214AE07500E67947 /* qcbor_encode.c in Sources */ = {isa = PBXBuildFile; fileRef = E776E08C214AE07400E67947 /* qcbor_encode.c */; };
		E776E090214AE07500E67947 /* UsefulBuf.c in Sources */ = {isa = PBXBuildFile; fileRef = E776E08D214AE07500E67947 /* UsefulBuf.c */; };
		E776E091214AE07500E67947 /* qcbor_decode.c in Sources */ = {isa = PBXBuildFile; fileRef = E776E08E214AE07500E67947 /* qcbor_decode.c */; };
		E776E097214AE0C700E67947 /* cmd_line_main.c in Sources */ = {isa = PBXBuildFile; fileRef = E776E096214AE0C700E67947 /* cmd_line_main.c */; };
		E7864766252CE63100A0C11B /* qcbor_err_to_str.c in Sources */ = {isa = PBXBuildFile; fileRef = E7864765252CE63100A0C11B /* qcbor_err_to_str.c */; };
		E7FDBF04256C969D007138A8 /* qcbor_encode.c in Sources */ = {isa = PBXBuildFile; fileRef = E776E08C214AE07400E67947 /* qcbor_encode.c */; };
		E7FDBF05256C969D007138A8 /* ieee754.c in Sources */ = {isa = PBXBuildFile; fileRef = E73B57582161CA690080D658 /* ieee754.c */; };
		E7FDBF06256C969D007138A8 /* qcbor_err_to_str.c in Sources */ = {isa = PBXBuildFile; fileRef = E7864765252CE63100A0C11B /* qcbor_err_to_str.c */; };
		E7FDBF07256C969D007138A8 /* half_to_double_from_rfc7049.c in Sources */ = {isa = PBXBuildFile; fileRef = E73B575D2161CA7C0080D658 /* half_to_double_from_rfc7049.c */; };
		E7FDBF08256C969D007138A8 /* run_tests.c in Sources */ = {isa = PBXBuildFile; fileRef = E73B57632161F8F70080D658 /* run_tests.c */; };
		E7FDBF09256C969D007138A8 /* qcbor_decode.c in Sources */ = {isa = PBXBuildFile; fileRef = E776E08E214AE07500E67947 /* qcbor_decode.c */; };
		E7FDBF0A256C969D007138A8 /* float_tests.c in Sources */ = {isa = PBXBuildFile; fileRef = E73B575A2161CA7C0080D658 /* float_tests.c */; };
		E7FDBF0B256C969D007138A8 /* qcbor_decode_tests.c in Sources */ = {isa = PBXBuildFile; fileRef = 0FA9BEB5216CE6CA00BA646B /* qcbor_decode_tests.c */; };
		E7FDBF0C256C969D007138A8 /* UsefulBuf.c in Sources */ = {isa = PBXBuildFile; fileRef = E776E08D214AE07500E67947 /* UsefulBuf.c */; };
		E7FDBF0D256C969D007138A8 /* qcbor_encode_tests.c in Sources */ = {isa = PBXBuildFile; fileRef = 0FA9BEB8216DC7AD00BA646B /* qcbor_encode_tests.c */; };
		E7FDBF0E256C969D007138A8 /* cmd_line_main.c in Sources */ = {isa = PBXBuildFile; fileRef = E776E096214AE0C700E67947 /* cmd_line_main.c */; };
		E7FDBF0F256C969D007138A8 /* example.c in Sources */ = {isa = PBXBuildFile; fileRef = E743D0E124AC516D0017899F /* example.c */; };
		E7FDBF10256C969D007138A8 /* UsefulBuf_Tests.c in Sources */ = {isa = PBXBuildFile; fileRef = 0FA9BEBC216DE31700BA646B /* UsefulBuf_Tests.c */; };
/* End PBXBuildFile section */

/* Begin PBXCopyFilesBuildPhase section */
		E743D11724DD4EF50017899F /* CopyFiles */ = {
			isa = PBXCopyFilesBuildPhase;
			buildActionMask = 2147483647;
			dstPath = /usr/share/man/man1/;
			dstSubfolderSpec = 0;
			files = (
			);
			runOnlyForDeploymentPostprocessing = 1;
		};
		E743D12D24DE05CC0017899F /* CopyFiles */ = {
			isa = PBXCopyFilesBuildPhase;
			buildActionMask = 2147483647;
			dstPath = /usr/share/man/man1/;
			dstSubfolderSpec = 0;
			files = (
			);
			runOnlyForDeploymentPostprocessing = 1;
		};
		E772022323B52C02006E966E /* CopyFiles */ = {
			isa = PBXCopyFilesBuildPhase;
			buildActionMask = 2147483647;
			dstPath = /usr/share/man/man1/;
			dstSubfolderSpec = 0;
			files = (
			);
			runOnlyForDeploymentPostprocessing = 1;
		};
		E776E07A214ADF7F00E67947 /* CopyFiles */ = {
			isa = PBXCopyFilesBuildPhase;
			buildActionMask = 2147483647;
			dstPath = /usr/share/man/man1/;
			dstSubfolderSpec = 0;
			files = (
			);
			runOnlyForDeploymentPostprocessing = 1;
		};
		E7FDBF12256C969D007138A8 /* CopyFiles */ = {
			isa = PBXCopyFilesBuildPhase;
			buildActionMask = 2147483647;
			dstPath = /usr/share/man/man1/;
			dstSubfolderSpec = 0;
			files = (
			);
			runOnlyForDeploymentPostprocessing = 1;
		};
/* End PBXCopyFilesBuildPhase section */

/* Begin PBXFileReference section */
		0F8BADA722EF40FC008B6513 /* not_well_formed_cbor.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = not_well_formed_cbor.h; path = test/not_well_formed_cbor.h; sourceTree = "<group>"; };
		0FA9BEB5216CE6CA00BA646B /* qcbor_decode_tests.c */ = {isa = PBXFileReference; fileEncoding = 4; indentWidth = 3; lastKnownFileType = sourcecode.c.c; name = qcbor_decode_tests.c; path = test/qcbor_decode_tests.c; sourceTree = "<group>"; tabWidth = 3; };
		0FA9BEB6216CE6CA00BA646B /* qcbor_decode_tests.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = qcbor_decode_tests.h; path = test/qcbor_decode_tests.h; sourceTree = "<group>"; };
		0FA9BEB8216DC7AD00BA646B /* qcbor_encode_tests.c */ = {isa = PBXFileReference; fileEncoding = 4; indentWidth = 3; lastKnownFileType = sourcecode.c.c; name = qcbor_encode_tests.c; path = test/qcbor_encode_tests.c; sourceTree = "<group>"; tabWidth = 3; };
		0FA9BEB9216DC7AD00BA646B /* qcbor_encode_tests.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = qcbor_encode_tests.h; path = test/qcbor_encode_tests.h; sourceTree = "<group>"; };
		0FA9BEBB216DE31700BA646B /* UsefulBuf_Tests.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = UsefulBuf_Tests.h; path = test/UsefulBuf_Tests.h; sourceTree = "<group>"; };
		0FA9BEBC216DE31700BA646B /* UsefulBuf_Tests.c */ = {isa = PBXFileReference; fileEncoding = 4; indentWidth = 3; lastKnownFileType = sourcecode.c.c; name = UsefulBuf_Tests.c; path = test/UsefulBuf_Tests.c; sourceTree = "<group>"; tabWidth = 3; };
		E73B57572161CA680080D658 /* ieee754.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = ieee754.h; path = src/ieee754.h; sourceTree = "<group>"; };
		E73B57582161CA690080D658 /* ieee754.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = ieee754.c; path = src/ieee754.c; sourceTree = "<group>"; };
		E73B575A2161CA7C0080D658 /* float_tests.c */ = {isa = PBXFileReference; fileEncoding = 4; indentWidth = 3; lastKnownFileType = sourcecode.c.c; name = float_tests.c; path = test/float_tests.c; sourceTree = "<group>"; tabWidth = 3; };
		E73B575B2161CA7C0080D658 /* half_to_double_from_rfc7049.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = half_to_double_from_rfc7049.h; path = test/half_to_double_from_rfc7049.h; sourceTree = "<group>"; };
		E73B575C2161CA7C0080D658 /* float_tests.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = float_tests.h; path = test/float_tests.h; sourceTree = "<group>"; };
		E73B575D2161CA7C0080D658 /* half_to_double_from_rfc7049.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = half_to_double_from_rfc7049.c; path = test/half_to_double_from_rfc7049.c; sourceTree = "<group>"; };
		E73B57632161F8F70080D658 /* run_tests.c */ = {isa = PBXFileReference; fileEncoding = 4; indentWidth = 3; lastKnownFileType = sourcecode.c.c; name = run_tests.c; path = test/run_tests.c; sourceTree = "<group>"; tabWidth = 3; };
		E73B57642161F8F80080D658 /* run_tests.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = run_tests.h; path = test/run_tests.h; sourceTree = "<group>"; };
		E743D0E124AC516D0017899F /* example.c */ = {isa = PBXFileReference; indentWidth = 3; lastKnownFileType = sourcecode.c.c; path = example.c; sourceTree = "<group>"; tabWidth = 3; };
		E743D0F224AC54600017899F /* example.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = example.h; sourceTree = "<group>"; };
		E743D10824CEDE2D0017899F /* qcbor_spiffy_decode.h */ = {isa = PBXFileReference; fileEncoding = 4; indentWidth = 3; lastKnownFileType = sourcecode.c.h; name = qcbor_spiffy_decode.h; path = inc/qcbor/qcbor_spiffy_decode.h; sourceTree = "<group>"; tabWidth = 3; };
		E743D11B24DD4EF50017899F /* QCBOR_Disable_HW_Float */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = QCBOR_Disable_HW_Float; sourceTree = BUILT_PRODUCTS_DIR; };
		E743D13124DE05CC0017899F /* QCBOR_Disable_Preferred_Float */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = QCBOR_Disable_Preferred_Float; sourceTree = BUILT_PRODUCTS_DIR; };
		E743D132251014E60017899F /* Tagging.md */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = net.daringfireball.markdown; name = Tagging.md; path = doc/Tagging.md; sourceTree = "<group>"; };
		E743D13325115A270017899F /* TRY SPIFFY DECODE.md */ = {isa = PBXFileReference; lastKnownFileType = net.daringfireball.markdown; path = "TRY SPIFFY DECODE.md"; sourceTree = "<group>"; };
		E74BF411245D6713002CE8E8 /* UsefulBuf.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = UsefulBuf.h; path = inc/qcbor/UsefulBuf.h; sourceTree = "<group>"; };
		E772022723B52C02006E966E /* QCBOR_Disable_Exp_Mantissa */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = QCBOR_Disable_Exp_Mantissa; sourceTree = BUILT_PRODUCTS_DIR; };
		E776E07C214ADF7F00E67947 /* QCBOR */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = QCBOR; sourceTree = BUILT_PRODUCTS_DIR; };
		E776E08C214AE07400E67947 /* qcbor_encode.c */ = {isa = PBXFileReference; fileEncoding = 4; indentWidth = 3; lastKnownFileType = sourcecode.c.c; name = qcbor_encode.c; path = src/qcbor_encode.c; sourceTree = "<group>"; tabWidth = 3; };
		E776E08D214AE07500E67947 /* UsefulBuf.c */ = {isa = PBXFileReference; fileEncoding = 4; indentWidth = 3; lastKnownFileType = sourcecode.c.c; name = UsefulBuf.c; path = src/UsefulBuf.c; sourceTree = "<group>"; tabWidth = 3; };
		E776E08E214AE07500E67947 /* qcbor_decode.c */ = {isa = PBXFileReference; fileEncoding = 4; indentWidth = 3; lastKnownFileType = sourcecode.c.c; name = qcbor_decode.c; path = src/qcbor_decode.c; sourceTree = "<group>"; tabWidth = 3; };
		E776E094214AE09700E67947 /* UsefulBuf.h */ = {isa = PBXFileReference; fileEncoding = 4; indentWidth = 3; lastKnownFileType = sourcecode.c.h; name = UsefulBuf.h; path = inc/UsefulBuf.h; sourceTree = "<group>"; tabWidth = 3; };
		E776E096214AE0C700E67947 /* cmd_line_main.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = cmd_line_main.c; sourceTree = "<group>"; };
		E776E161214EE19C00E67947 /* README.md */ = {isa = PBXFileReference; lastKnownFileType = net.daringfireball.markdown; path = README.md; sourceTree = "<group>"; };
		E7864765252CE63100A0C11B /* qcbor_err_to_str.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = qcbor_err_to_str.c; path = src/qcbor_err_to_str.c; sourceTree = "<group>"; };
		E78C91DE240C90C100F4CECE /* qcbor_decode.h */ = {isa = PBXFileReference; fileEncoding = 4; indentWidth = 3; lastKnownFileType = sourcecode.c.h; name = qcbor_decode.h; path = inc/qcbor/qcbor_decode.h; sourceTree = "<group>"; tabWidth = 3; };
		E78C91DF240C90C100F4CECE /* qcbor_common.h */ = {isa = PBXFileReference; fileEncoding = 4; indentWidth = 3; lastKnownFileType = sourcecode.c.h; name = qcbor_common.h; path = inc/qcbor/qcbor_common.h; sourceTree = "<group>"; tabWidth = 3; };
		E78C91E0240C90C100F4CECE /* qcbor_private.h */ = {isa = PBXFileReference; fileEncoding = 4; indentWidth = 3; lastKnownFileType = sourcecode.c.h; name = qcbor_private.h; path = inc/qcbor/qcbor_private.h; sourceTree = "<group>"; tabWidth = 3; };
		E78C91E1240C90C100F4CECE /* qcbor_encode.h */ = {isa = PBXFileReference; fileEncoding = 4; indentWidth = 3; lastKnownFileType = sourcecode.c.h; name = qcbor_encode.h; path = inc/qcbor/qcbor_encode.h; sourceTree = "<group>"; tabWidth = 3; };
		E7FDBF16256C969D007138A8 /* QCBOR_Disable_Indef */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = QCBOR_Disable_Indef; sourceTree = BUILT_PRODUCTS_DIR; };
/* End PBXFileReference section */

/* Begin PBXFrameworksBuildPhase section */
		E743D11624DD4EF50017899F /* Frameworks */ = {
			isa = PBXFrameworksBuildPhase;
			buildActionMask = 2147483647;
			files = (
			);
			runOnlyForDeploymentPostprocessing = 0;
		};
		E743D12C24DE05CC0017899F /* Frameworks */ = {
			isa = PBXFrameworksBuildPhase;
			buildActionMask = 2147483647;
			files = (
			);
			runOnlyForDeploymentPostprocessing = 0;
		};
		E772022223B52C02006E966E /* Frameworks */ = {
			isa = PBXFrameworksBuildPhase;
			buildActionMask = 2147483647;
			files = (
			);
			runOnlyForDeploymentPostprocessing = 0;
		};
		E776E079214ADF7F00E67947 /* Frameworks */ = {
			isa = PBXFrameworksBuildPhase;
			buildActionMask = 2147483647;
			files = (
			);
			runOnlyForDeploymentPostprocessing = 0;
		};
		E7FDBF11256C969D007138A8 /* Frameworks */ = {
			isa = PBXFrameworksBuildPhase;
			buildActionMask = 2147483647;
			files = (
			);
			runOnlyForDeploymentPostprocessing = 0;
		};
/* End PBXFrameworksBuildPhase section */

/* Begin PBXGroup section */
		E743D0E024AC51470017899F /* example */ = {
			isa = PBXGroup;
			children = (
				E743D0E124AC516D0017899F /* example.c */,
				E743D0F224AC54600017899F /* example.h */,
			);
			name = example;
			sourceTree = "<group>";
		};
		E776E073214ADF7F00E67947 = {
			isa = PBXGroup;
			children = (
				E776E161214EE19C00E67947 /* README.md */,
				E743D13325115A270017899F /* TRY SPIFFY DECODE.md */,
				E743D132251014E60017899F /* Tagging.md */,
				E776E096214AE0C700E67947 /* cmd_line_main.c */,
				E776E092214AE07C00E67947 /* inc */,
				E776E08B214AE06600E67947 /* src */,
				E776E095214AE0B600E67947 /* test */,
				E743D0E024AC51470017899F /* example */,
				E776E07D214ADF7F00E67947 /* Products */,
			);
			sourceTree = "<group>";
		};
		E776E07D214ADF7F00E67947 /* Products */ = {
			isa = PBXGroup;
			children = (
				E776E07C214ADF7F00E67947 /* QCBOR */,
				E772022723B52C02006E966E /* QCBOR_Disable_Exp_Mantissa */,
				E743D11B24DD4EF50017899F /* QCBOR_Disable_HW_Float */,
				E743D13124DE05CC0017899F /* QCBOR_Disable_Preferred_Float */,
				E7FDBF16256C969D007138A8 /* QCBOR_Disable_Indef */,
			);
			name = Products;
			sourceTree = "<group>";
		};
		E776E08B214AE06600E67947 /* src */ = {
			isa = PBXGroup;
			children = (
				E776E08C214AE07400E67947 /* qcbor_encode.c */,
				E776E08E214AE07500E67947 /* qcbor_decode.c */,
				E776E08D214AE07500E67947 /* UsefulBuf.c */,
				E73B57582161CA690080D658 /* ieee754.c */,
				E73B57572161CA680080D658 /* ieee754.h */,
				E7864765252CE63100A0C11B /* qcbor_err_to_str.c */,
			);
			name = src;
			sourceTree = "<group>";
		};
		E776E092214AE07C00E67947 /* inc */ = {
			isa = PBXGroup;
			children = (
				E743D10824CEDE2D0017899F /* qcbor_spiffy_decode.h */,
				E74BF411245D6713002CE8E8 /* UsefulBuf.h */,
				E78C91DF240C90C100F4CECE /* qcbor_common.h */,
				E78C91DE240C90C100F4CECE /* qcbor_decode.h */,
				E78C91E1240C90C100F4CECE /* qcbor_encode.h */,
				E78C91E0240C90C100F4CECE /* qcbor_private.h */,
				E776E094214AE09700E67947 /* UsefulBuf.h */,
			);
			name = inc;
			sourceTree = "<group>";
		};
		E776E095214AE0B600E67947 /* test */ = {
			isa = PBXGroup;
			children = (
				E73B57632161F8F70080D658 /* run_tests.c */,
				E73B57642161F8F80080D658 /* run_tests.h */,
				0FA9BEBC216DE31700BA646B /* UsefulBuf_Tests.c */,
				0FA9BEBB216DE31700BA646B /* UsefulBuf_Tests.h */,
				0FA9BEB8216DC7AD00BA646B /* qcbor_encode_tests.c */,
				0FA9BEB9216DC7AD00BA646B /* qcbor_encode_tests.h */,
				0FA9BEB5216CE6CA00BA646B /* qcbor_decode_tests.c */,
				0FA9BEB6216CE6CA00BA646B /* qcbor_decode_tests.h */,
				E73B575A2161CA7C0080D658 /* float_tests.c */,
				E73B575C2161CA7C0080D658 /* float_tests.h */,
				E73B575D2161CA7C0080D658 /* half_to_double_from_rfc7049.c */,
				E73B575B2161CA7C0080D658 /* half_to_double_from_rfc7049.h */,
				0F8BADA722EF40FC008B6513 /* not_well_formed_cbor.h */,
			);
			name = test;
			sourceTree = "<group>";
		};
/* End PBXGroup section */

/* Begin PBXNativeTarget section */
		E743D10924DD4EF50017899F /* QCBOR_Disable_HW_Float */ = {
			isa = PBXNativeTarget;
			buildConfigurationList = E743D11824DD4EF50017899F /* Build configuration list for PBXNativeTarget "QCBOR_Disable_HW_Float" */;
			buildPhases = (
				E743D10A24DD4EF50017899F /* Sources */,
				E743D11624DD4EF50017899F /* Frameworks */,
				E743D11724DD4EF50017899F /* CopyFiles */,
			);
			buildRules = (
			);
			dependencies = (
			);
			name = QCBOR_Disable_HW_Float;
			productName = QCBOR;
			productReference = E743D11B24DD4EF50017899F /* QCBOR_Disable_HW_Float */;
			productType = "com.apple.product-type.tool";
		};
		E743D11E24DE05CC0017899F /* QCBOR_Disable_Preferred_Float */ = {
			isa = PBXNativeTarget;
			buildConfigurationList = E743D12E24DE05CC0017899F /* Build configuration list for PBXNativeTarget "QCBOR_Disable_Preferred_Float" */;
			buildPhases = (
				E743D11F24DE05CC0017899F /* Sources */,
				E743D12C24DE05CC0017899F /* Frameworks */,
				E743D12D24DE05CC0017899F /* CopyFiles */,
			);
			buildRules = (
			);
			dependencies = (
			);
			name = QCBOR_Disable_Preferred_Float;
			productName = QCBOR;
			productReference = E743D13124DE05CC0017899F /* QCBOR_Disable_Preferred_Float */;
			productType = "com.apple.product-type.tool";
		};
		E772021523B52C02006E966E /* QCBOR_Disable_Exp_Mantissa */ = {
			isa = PBXNativeTarget;
			buildConfigurationList = E772022423B52C02006E966E /* Build configuration list for PBXNativeTarget "QCBOR_Disable_Exp_Mantissa" */;
			buildPhases = (
				E772021623B52C02006E966E /* Sources */,
				E772022223B52C02006E966E /* Frameworks */,
				E772022323B52C02006E966E /* CopyFiles */,
			);
			buildRules = (
			);
			dependencies = (
			);
			name = QCBOR_Disable_Exp_Mantissa;
			productName = QCBOR;
			productReference = E772022723B52C02006E966E /* QCBOR_Disable_Exp_Mantissa */;
			productType = "com.apple.product-type.tool";
		};
		E776E07B214ADF7F00E67947 /* QCBOR */ = {
			isa = PBXNativeTarget;
			buildConfigurationList = E776E083214ADF7F00E67947 /* Build configuration list for PBXNativeTarget "QCBOR" */;
			buildPhases = (
				E776E078214ADF7F00E67947 /* Sources */,
				E776E079214ADF7F00E67947 /* Frameworks */,
				E776E07A214ADF7F00E67947 /* CopyFiles */,
			);
			buildRules = (
			);
			dependencies = (
			);
			name = QCBOR;
			productName = QCBOR;
			productReference = E776E07C214ADF7F00E67947 /* QCBOR */;
			productType = "com.apple.product-type.tool";
		};
		E7FDBF02256C969D007138A8 /* QCBOR_Disable_Indef */ = {
			isa = PBXNativeTarget;
			buildConfigurationList = E7FDBF13256C969D007138A8 /* Build configuration list for PBXNativeTarget "QCBOR_Disable_Indef" */;
			buildPhases = (
				E7FDBF03256C969D007138A8 /* Sources */,
				E7FDBF11256C969D007138A8 /* Frameworks */,
				E7FDBF12256C969D007138A8 /* CopyFiles */,
			);
			buildRules = (
			);
			dependencies = (
			);
			name = QCBOR_Disable_Indef;
			productName = QCBOR;
			productReference = E7FDBF16256C969D007138A8 /* QCBOR_Disable_Indef */;
			productType = "com.apple.product-type.tool";
		};
/* End PBXNativeTarget section */

/* Begin PBXProject section */
		E776E074214ADF7F00E67947 /* Project object */ = {
			isa = PBXProject;
			attributes = {
				LastUpgradeCheck = 1150;
				ORGANIZATIONNAME = "Laurence Lundblade";
				TargetAttributes = {
					E776E07B214ADF7F00E67947 = {
						CreatedOnToolsVersion = 9.4.1;
					};
				};
			};
			buildConfigurationList = E776E077214ADF7F00E67947 /* Build configuration list for PBXProject "QCBOR" */;
			compatibilityVersion = "Xcode 9.3";
			developmentRegion = en;
			hasScannedForEncodings = 0;
			knownRegions = (
				en,
				Base,
			);
			mainGroup = E776E073214ADF7F00E67947;
			productRefGroup = E776E07D214ADF7F00E67947 /* Products */;
			projectDirPath = "";
			projectRoot = "";
			targets = (
				E776E07B214ADF7F00E67947 /* QCBOR */,
				E772021523B52C02006E966E /* QCBOR_Disable_Exp_Mantissa */,
				E743D10924DD4EF50017899F /* QCBOR_Disable_HW_Float */,
				E743D11E24DE05CC0017899F /* QCBOR_Disable_Preferred_Float */,
				E7FDBF02256C969D007138A8 /* QCBOR_Disable_Indef */,
			);
		};
/* End PBXProject section */

/* Begin PBXSourcesBuildPhase section */
		E743D10A24DD4EF50017899F /* Sources */ = {
			isa = PBXSourcesBuildPhase;
			buildActionMask = 2147483647;
			files = (
				E743D10B24DD4EF50017899F /* qcbor_encode.c in Sources */,
				E743D10C24DD4EF50017899F /* ieee754.c in Sources */,
				E743D10D24DD4EF50017899F /* half_to_double_from_rfc7049.c in Sources */,
				E743D10E24DD4EF50017899F /* run_tests.c in Sources */,
				E743D10F24DD4EF50017899F /* qcbor_decode.c in Sources */,
				E743D11024DD4EF50017899F /* float_tests.c in Sources */,
				E743D11124DD4EF50017899F /* qcbor_decode_tests.c in Sources */,
				E743D11224DD4EF50017899F /* UsefulBuf.c in Sources */,
				E743D11324DD4EF50017899F /* qcbor_encode_tests.c in Sources */,
				E743D11424DD4EF50017899F /* cmd_line_main.c in Sources */,
				E743D11D24DD51350017899F /* example.c in Sources */,
				E743D11524DD4EF50017899F /* UsefulBuf_Tests.c in Sources */,
			);
			runOnlyForDeploymentPostprocessing = 0;
		};
		E743D11F24DE05CC0017899F /* Sources */ = {
			isa = PBXSourcesBuildPhase;
			buildActionMask = 2147483647;
			files = (
				E743D12024DE05CC0017899F /* qcbor_encode.c in Sources */,
				E743D12124DE05CC0017899F /* ieee754.c in Sources */,
				E743D12224DE05CC0017899F /* half_to_double_from_rfc7049.c in Sources */,
				E743D12324DE05CC0017899F /* run_tests.c in Sources */,
				E743D12424DE05CC0017899F /* qcbor_decode.c in Sources */,
				E743D12524DE05CC0017899F /* float_tests.c in Sources */,
				E743D12624DE05CC0017899F /* qcbor_decode_tests.c in Sources */,
				E743D12724DE05CC0017899F /* UsefulBuf.c in Sources */,
				E743D12824DE05CC0017899F /* qcbor_encode_tests.c in Sources */,
				E743D12924DE05CC0017899F /* cmd_line_main.c in Sources */,
				E743D12A24DE05CC0017899F /* example.c in Sources */,
				E743D12B24DE05CC0017899F /* UsefulBuf_Tests.c in Sources */,
			);
			runOnlyForDeploymentPostprocessing = 0;
		};
		E772021623B52C02006E966E /* Sources */ = {
			isa = PBXSourcesBuildPhase;
			buildActionMask = 2147483647;
			files = (
				E772021723B52C02006E966E /* qcbor_encode.c in Sources */,
				E772021823B52C02006E966E /* ieee754.c in Sources */,
				E772021923B52C02006E966E /* half_to_double_from_rfc7049.c in Sources */,
				E772021A23B52C02006E966E /* run_tests.c in Sources */,
				E772021B23B52C02006E966E /* qcbor_decode.c in Sources */,
				E772021C23B52C02006E966E /* float_tests.c in Sources */,
				E772021D23B52C02006E966E /* qcbor_decode_tests.c in Sources */,
				E772021E23B52C02006E966E /* UsefulBuf.c in Sources */,
				E772021F23B52C02006E966E /* qcbor_encode_tests.c in Sources */,
				E772022023B52C02006E966E /* cmd_line_main.c in Sources */,
				E743D11C24DD51340017899F /* example.c in Sources */,
				E772022123B52C02006E966E /* UsefulBuf_Tests.c in Sources */,
			);
			runOnlyForDeploymentPostprocessing = 0;
		};
		E776E078214ADF7F00E67947 /* Sources */ = {
			isa = PBXSourcesBuildPhase;
			buildActionMask = 2147483647;
			files = (
				E776E08F214AE07500E67947 /* qcbor_encode.c in Sources */,
				E73B57592161CA690080D658 /* ieee754.c in Sources */,
				E7864766252CE63100A0C11B /* qcbor_err_to_str.c in Sources */,
				E73B575F2161CA7C0080D658 /* half_to_double_from_rfc7049.c in Sources */,
				E73B57652161F8F80080D658 /* run_tests.c in Sources */,
				E776E091214AE07500E67947 /* qcbor_decode.c in Sources */,
				E73B575E2161CA7C0080D658 /* float_tests.c in Sources */,
				0FA9BEB7216CE6CA00BA646B /* qcbor_decode_tests.c in Sources */,
				E776E090214AE07500E67947 /* UsefulBuf.c in Sources */,
				0FA9BEBA216DC7AD00BA646B /* qcbor_encode_tests.c in Sources */,
				E776E097214AE0C700E67947 /* cmd_line_main.c in Sources */,
				E743D0F324AD08020017899F /* example.c in Sources */,
				0FA9BEBD216DE31700BA646B /* UsefulBuf_Tests.c in Sources */,
			);
			runOnlyForDeploymentPostprocessing = 0;
		};
		E7FDBF03256C969D007138A8 /* Sources */ = {
			isa = PBXSourcesBuildPhase;
			buildActionMask = 2147483647;
			files = (
				E7FDBF04256C969D007138A8 /* qcbor_encode.c in Sources */,
				E7FDBF05256C969D007138A8 /* ieee754.c in Sources */,
				E7FDBF06256C969D007138A8 /* qcbor_err_to_str.c in Sources */,
				E7FDBF07256C969D007138A8 /* half_to_double_from_rfc7049.c in Sources */,
				E7FDBF08256C969D007138A8 /* run_tests.c in Sources */,
				E7FDBF09256C969D007138A8 /* qcbor_decode.c in Sources */,
				E7FDBF0A256C969D007138A8 /* float_tests.c in Sources */,
				E7FDBF0B256C969D007138A8 /* qcbor_decode_tests.c in Sources */,
				E7FDBF0C256C969D007138A8 /* UsefulBuf.c in Sources */,
				E7FDBF0D256C969D007138A8 /* qcbor_encode_tests.c in Sources */,
				E7FDBF0E256C969D007138A8 /* cmd_line_main.c in Sources */,
				E7FDBF0F256C969D007138A8 /* example.c in Sources */,
				E7FDBF10256C969D007138A8 /* UsefulBuf_Tests.c in Sources */,
			);
			runOnlyForDeploymentPostprocessing = 0;
		};
/* End PBXSourcesBuildPhase section */

/* Begin XCBuildConfiguration section */
		E743D11924DD4EF50017899F /* Debug */ = {
			isa = XCBuildConfiguration;
			buildSettings = {
				CLANG_UNDEFINED_BEHAVIOR_SANITIZER_INTEGER = YES;
				CLANG_UNDEFINED_BEHAVIOR_SANITIZER_NULLABILITY = YES;
				CODE_SIGN_STYLE = Automatic;
				GCC_OPTIMIZATION_LEVEL = 0;
				"GCC_PREPROCESSOR_DEFINITIONS[arch=*]" = QCBOR_DISABLE_FLOAT_HW_USE;
				GCC_TREAT_WARNINGS_AS_ERRORS = YES;
				GCC_WARN_PEDANTIC = YES;
				PRODUCT_NAME = "$(TARGET_NAME)";
			};
			name = Debug;
		};
		E743D11A24DD4EF50017899F /* Release */ = {
			isa = XCBuildConfiguration;
			buildSettings = {
				CLANG_UNDEFINED_BEHAVIOR_SANITIZER_INTEGER = YES;
				CLANG_UNDEFINED_BEHAVIOR_SANITIZER_NULLABILITY = YES;
				CODE_SIGN_STYLE = Automatic;
				GCC_OPTIMIZATION_LEVEL = 0;
				GCC_TREAT_WARNINGS_AS_ERRORS = YES;
				GCC_WARN_PEDANTIC = YES;
				PRODUCT_NAME = "$(TARGET_NAME)";
			};
			name = Release;
		};
		E743D12F24DE05CC0017899F /* Debug */ = {
			isa = XCBuildConfiguration;
			buildSettings = {
				CLANG_UNDEFINED_BEHAVIOR_SANITIZER_INTEGER = YES;
				CLANG_UNDEFINED_BEHAVIOR_SANITIZER_NULLABILITY = YES;
				CODE_SIGN_STYLE = Automatic;
				GCC_OPTIMIZATION_LEVEL = 0;
				"GCC_PREPROCESSOR_DEFINITIONS[arch=*]" = QCBOR_DISABLE_PREFERRED_FLOAT;
				GCC_TREAT_WARNINGS_AS_ERRORS = YES;
				GCC_WARN_PEDANTIC = YES;
				PRODUCT_NAME = "$(TARGET_NAME)";
			};
			name = Debug;
		};
		E743D13024DE05CC0017899F /* Release */ = {
			isa = XCBuildConfiguration;
			buildSettings = {
				CLANG_UNDEFINED_BEHAVIOR_SANITIZER_INTEGER = YES;
				CLANG_UNDEFINED_BEHAVIOR_SANITIZER_NULLABILITY = YES;
				CODE_SIGN_STYLE = Automatic;
				GCC_OPTIMIZATION_LEVEL = 0;
				GCC_TREAT_WARNINGS_AS_ERRORS = YES;
				GCC_WARN_PEDANTIC = YES;
				PRODUCT_NAME = "$(TARGET_NAME)";
			};
			name = Release;
		};
		E772022523B52C02006E966E /* Debug */ = {
			isa = XCBuildConfiguration;
			buildSettings = {
				CLANG_UNDEFINED_BEHAVIOR_SANITIZER_INTEGER = YES;
				CLANG_UNDEFINED_BEHAVIOR_SANITIZER_NULLABILITY = YES;
				CODE_SIGN_STYLE = Automatic;
				GCC_OPTIMIZATION_LEVEL = 0;
				"GCC_PREPROCESSOR_DEFINITIONS[arch=*]" = QCBOR_CONFIG_DISABLE_EXP_AND_MANTISSA;
				GCC_TREAT_WARNINGS_AS_ERRORS = YES;
				GCC_WARN_PEDANTIC = YES;
				PRODUCT_NAME = "$(TARGET_NAME)";
			};
			name = Debug;
		};
		E772022623B52C02006E966E /* Release */ = {
			isa = XCBuildConfiguration;
			buildSettings = {
				CLANG_UNDEFINED_BEHAVIOR_SANITIZER_INTEGER = YES;
				CLANG_UNDEFINED_BEHAVIOR_SANITIZER_NULLABILITY = YES;
				CODE_SIGN_STYLE = Automatic;
				GCC_OPTIMIZATION_LEVEL = 0;
				GCC_TREAT_WARNINGS_AS_ERRORS = YES;
				GCC_WARN_PEDANTIC = YES;
				PRODUCT_NAME = "$(TARGET_NAME)";
			};
			name = Release;
		};
		E776E081214ADF7F00E67947 /* 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_IMPLICIT_SIGN_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_RANGE_LOOP_ANALYSIS = YES;
				CLANG_WARN_STRICT_PROTOTYPES = YES;
				CLANG_WARN_SUSPICIOUS_IMPLICIT_CONVERSION = YES;
				CLANG_WARN_SUSPICIOUS_MOVE = YES;
				CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE;
				CLANG_WARN_UNREACHABLE_CODE = YES;
				CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
				CODE_SIGN_IDENTITY = "-";
				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_TREAT_INCOMPATIBLE_POINTER_TYPE_WARNINGS_AS_ERRORS = YES;
				GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
				GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
				GCC_WARN_SHADOW = YES;
				GCC_WARN_SIGN_COMPARE = YES;
				GCC_WARN_UNDECLARED_SELECTOR = YES;
				GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
				GCC_WARN_UNUSED_FUNCTION = YES;
				GCC_WARN_UNUSED_LABEL = YES;
				GCC_WARN_UNUSED_VARIABLE = YES;
				"HEADER_SEARCH_PATHS[arch=*]" = inc;
				MACOSX_DEPLOYMENT_TARGET = 10.13;
				MTL_ENABLE_DEBUG_INFO = YES;
				ONLY_ACTIVE_ARCH = YES;
				SDKROOT = macosx;
			};
			name = Debug;
		};
		E776E082214ADF7F00E67947 /* 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_IMPLICIT_SIGN_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_RANGE_LOOP_ANALYSIS = YES;
				CLANG_WARN_STRICT_PROTOTYPES = YES;
				CLANG_WARN_SUSPICIOUS_IMPLICIT_CONVERSION = YES;
				CLANG_WARN_SUSPICIOUS_MOVE = YES;
				CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE;
				CLANG_WARN_UNREACHABLE_CODE = YES;
				CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
				CODE_SIGN_IDENTITY = "-";
				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_OPTIMIZATION_LEVEL = 0;
				GCC_TREAT_INCOMPATIBLE_POINTER_TYPE_WARNINGS_AS_ERRORS = YES;
				GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
				GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
				GCC_WARN_SHADOW = YES;
				GCC_WARN_SIGN_COMPARE = YES;
				GCC_WARN_UNDECLARED_SELECTOR = YES;
				GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
				GCC_WARN_UNUSED_FUNCTION = YES;
				GCC_WARN_UNUSED_LABEL = YES;
				GCC_WARN_UNUSED_VARIABLE = YES;
				"HEADER_SEARCH_PATHS[arch=*]" = inc;
				MACOSX_DEPLOYMENT_TARGET = 10.13;
				MTL_ENABLE_DEBUG_INFO = NO;
				SDKROOT = macosx;
			};
			name = Release;
		};
		E776E084214ADF7F00E67947 /* Debug */ = {
			isa = XCBuildConfiguration;
			buildSettings = {
				CLANG_UNDEFINED_BEHAVIOR_SANITIZER_INTEGER = YES;
				CLANG_UNDEFINED_BEHAVIOR_SANITIZER_NULLABILITY = YES;
				CODE_SIGN_STYLE = Automatic;
				GCC_OPTIMIZATION_LEVEL = 0;
				GCC_TREAT_WARNINGS_AS_ERRORS = YES;
				GCC_WARN_PEDANTIC = YES;
				"HEADER_SEARCH_PATHS[arch=*]" = inc;
				PRODUCT_NAME = "$(TARGET_NAME)";
			};
			name = Debug;
		};
		E776E085214ADF7F00E67947 /* Release */ = {
			isa = XCBuildConfiguration;
			buildSettings = {
				CLANG_UNDEFINED_BEHAVIOR_SANITIZER_INTEGER = YES;
				CLANG_UNDEFINED_BEHAVIOR_SANITIZER_NULLABILITY = YES;
				CODE_SIGN_STYLE = Automatic;
				GCC_OPTIMIZATION_LEVEL = 0;
				GCC_TREAT_WARNINGS_AS_ERRORS = YES;
				GCC_WARN_PEDANTIC = YES;
				"HEADER_SEARCH_PATHS[arch=*]" = inc;
				PRODUCT_NAME = "$(TARGET_NAME)";
			};
			name = Release;
		};
		E7FDBF14256C969D007138A8 /* Debug */ = {
			isa = XCBuildConfiguration;
			buildSettings = {
				CLANG_UNDEFINED_BEHAVIOR_SANITIZER_INTEGER = YES;
				CLANG_UNDEFINED_BEHAVIOR_SANITIZER_NULLABILITY = YES;
				CODE_SIGN_STYLE = Automatic;
				GCC_OPTIMIZATION_LEVEL = 0;
				GCC_PREPROCESSOR_DEFINITIONS = QCBOR_DISABLE_INDEFINITE_LENGTH_STRINGS;
				GCC_TREAT_WARNINGS_AS_ERRORS = YES;
				GCC_WARN_PEDANTIC = YES;
				"HEADER_SEARCH_PATHS[arch=*]" = inc;
				PRODUCT_NAME = "$(TARGET_NAME)";
			};
			name = Debug;
		};
		E7FDBF15256C969D007138A8 /* Release */ = {
			isa = XCBuildConfiguration;
			buildSettings = {
				CLANG_UNDEFINED_BEHAVIOR_SANITIZER_INTEGER = YES;
				CLANG_UNDEFINED_BEHAVIOR_SANITIZER_NULLABILITY = YES;
				CODE_SIGN_STYLE = Automatic;
				GCC_OPTIMIZATION_LEVEL = 0;
				GCC_TREAT_WARNINGS_AS_ERRORS = YES;
				GCC_WARN_PEDANTIC = YES;
				"HEADER_SEARCH_PATHS[arch=*]" = inc;
				PRODUCT_NAME = "$(TARGET_NAME)";
			};
			name = Release;
		};
/* End XCBuildConfiguration section */

/* Begin XCConfigurationList section */
		E743D11824DD4EF50017899F /* Build configuration list for PBXNativeTarget "QCBOR_Disable_HW_Float" */ = {
			isa = XCConfigurationList;
			buildConfigurations = (
				E743D11924DD4EF50017899F /* Debug */,
				E743D11A24DD4EF50017899F /* Release */,
			);
			defaultConfigurationIsVisible = 0;
			defaultConfigurationName = Release;
		};
		E743D12E24DE05CC0017899F /* Build configuration list for PBXNativeTarget "QCBOR_Disable_Preferred_Float" */ = {
			isa = XCConfigurationList;
			buildConfigurations = (
				E743D12F24DE05CC0017899F /* Debug */,
				E743D13024DE05CC0017899F /* Release */,
			);
			defaultConfigurationIsVisible = 0;
			defaultConfigurationName = Release;
		};
		E772022423B52C02006E966E /* Build configuration list for PBXNativeTarget "QCBOR_Disable_Exp_Mantissa" */ = {
			isa = XCConfigurationList;
			buildConfigurations = (
				E772022523B52C02006E966E /* Debug */,
				E772022623B52C02006E966E /* Release */,
			);
			defaultConfigurationIsVisible = 0;
			defaultConfigurationName = Release;
		};
		E776E077214ADF7F00E67947 /* Build configuration list for PBXProject "QCBOR" */ = {
			isa = XCConfigurationList;
			buildConfigurations = (
				E776E081214ADF7F00E67947 /* Debug */,
				E776E082214ADF7F00E67947 /* Release */,
			);
			defaultConfigurationIsVisible = 0;
			defaultConfigurationName = Release;
		};
		E776E083214ADF7F00E67947 /* Build configuration list for PBXNativeTarget "QCBOR" */ = {
			isa = XCConfigurationList;
			buildConfigurations = (
				E776E084214ADF7F00E67947 /* Debug */,
				E776E085214ADF7F00E67947 /* Release */,
			);
			defaultConfigurationIsVisible = 0;
			defaultConfigurationName = Release;
		};
		E7FDBF13256C969D007138A8 /* Build configuration list for PBXNativeTarget "QCBOR_Disable_Indef" */ = {
			isa = XCConfigurationList;
			buildConfigurations = (
				E7FDBF14256C969D007138A8 /* Debug */,
				E7FDBF15256C969D007138A8 /* Release */,
			);
			defaultConfigurationIsVisible = 0;
			defaultConfigurationName = Release;
		};
/* End XCConfigurationList section */
	};
	rootObject = E776E074214ADF7F00E67947 /* Project object */;
}
