@@ -362,10 +362,14 @@ 4BD653C6143B8489006182F0 /* OFTCPSocket+SOCKS5.m in Sources */ = {isa = PBXBuildFile; fileRef = 4BD653C4143B8489006182F0 /* OFTCPSocket+SOCKS5.m */; }; 4BD77FDE176E4BC40031C497 /* OFUnboundPrefixException.h in Headers */ = {isa = PBXBuildFile; fileRef = 4BD77FDC176E4BC40031C497 /* OFUnboundPrefixException.h */; settings = {ATTRIBUTES = (Public, ); }; }; 4BD77FDF176E4BC40031C497 /* OFUnboundPrefixException.m in Sources */ = {isa = PBXBuildFile; fileRef = 4BD77FDD176E4BC40031C497 /* OFUnboundPrefixException.m */; }; 4BD98C03133814220048DD5B /* objfw-defs.h in Headers */ = {isa = PBXBuildFile; fileRef = 4BD98C011338140B0048DD5B /* objfw-defs.h */; settings = {ATTRIBUTES = (Public, ); }; }; 4BDF37B51338055600F9A81A /* config.h in Headers */ = {isa = PBXBuildFile; fileRef = 4BDF37B41338055600F9A81A /* config.h */; }; + 4BE52D2117B990B4005958D1 /* OFZIPArchive.h in Headers */ = {isa = PBXBuildFile; fileRef = 4BE52D1F17B990B4005958D1 /* OFZIPArchive.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 4BE52D2217B990B4005958D1 /* OFZIPArchive.m in Sources */ = {isa = PBXBuildFile; fileRef = 4BE52D2017B990B4005958D1 /* OFZIPArchive.m */; }; + 4BE52D2517B990DA005958D1 /* OFChecksumFailedException.h in Headers */ = {isa = PBXBuildFile; fileRef = 4BE52D2317B990DA005958D1 /* OFChecksumFailedException.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 4BE52D2617B990DA005958D1 /* OFChecksumFailedException.m in Sources */ = {isa = PBXBuildFile; fileRef = 4BE52D2417B990DA005958D1 /* OFChecksumFailedException.m */; }; 4BEF2D3117A5BF5200BB8BA3 /* forwarding.S in Sources */ = {isa = PBXBuildFile; fileRef = 4BEF2D3017A5BF5200BB8BA3 /* forwarding.S */; }; 4BF33AFB133807590059CEF7 /* ObjFW.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 4B3D23761337FBC800DD29B8 /* ObjFW.framework */; }; 4BF33AFC133807A20059CEF7 /* OFArrayTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 4B6EF66E1235358D0076B512 /* OFArrayTests.m */; }; 4BF33AFD133807A20059CEF7 /* OFBlockTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 4BE5F0E412DF4259005C7A0C /* OFBlockTests.m */; }; 4BF33AFE133807A20059CEF7 /* OFDataArrayTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 4B6EF66F1235358D0076B512 /* OFDataArrayTests.m */; }; @@ -798,10 +802,14 @@ 4BD98C011338140B0048DD5B /* objfw-defs.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = "objfw-defs.h"; path = "src/objfw-defs.h"; sourceTree = SOURCE_ROOT; }; 4BDF37B41338055600F9A81A /* config.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = config.h; sourceTree = SOURCE_ROOT; }; 4BE17AD812FD744C002CEB0B /* foundation-compat.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = "foundation-compat.m"; path = "src/foundation-compat.m"; sourceTree = SOURCE_ROOT; }; 4BE17AD912FD746D002CEB0B /* OFDataArray+Hashing.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = "OFDataArray+Hashing.h"; path = "src/OFDataArray+Hashing.h"; sourceTree = SOURCE_ROOT; }; 4BE17ADA12FD746D002CEB0B /* OFDataArray+Hashing.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = "OFDataArray+Hashing.m"; path = "src/OFDataArray+Hashing.m"; sourceTree = SOURCE_ROOT; }; + 4BE52D1F17B990B4005958D1 /* OFZIPArchive.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = OFZIPArchive.h; path = src/OFZIPArchive.h; sourceTree = ""; }; + 4BE52D2017B990B4005958D1 /* OFZIPArchive.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = OFZIPArchive.m; path = src/OFZIPArchive.m; sourceTree = ""; }; + 4BE52D2317B990DA005958D1 /* OFChecksumFailedException.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = OFChecksumFailedException.h; path = src/exceptions/OFChecksumFailedException.h; sourceTree = ""; }; + 4BE52D2417B990DA005958D1 /* OFChecksumFailedException.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = OFChecksumFailedException.m; path = src/exceptions/OFChecksumFailedException.m; sourceTree = ""; }; 4BE5F0D712DF4225005C7A0C /* OFConstantString.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = OFConstantString.h; path = src/OFConstantString.h; sourceTree = SOURCE_ROOT; }; 4BE5F0D812DF4225005C7A0C /* OFConstantString.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = OFConstantString.m; path = src/OFConstantString.m; sourceTree = SOURCE_ROOT; }; 4BE5F0D912DF4225005C7A0C /* OFDate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = OFDate.h; path = src/OFDate.h; sourceTree = SOURCE_ROOT; }; 4BE5F0DA12DF4225005C7A0C /* OFDate.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = OFDate.m; path = src/OFDate.m; sourceTree = SOURCE_ROOT; }; 4BE5F0E412DF4259005C7A0C /* OFBlockTests.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = OFBlockTests.m; path = tests/OFBlockTests.m; sourceTree = SOURCE_ROOT; }; @@ -899,10 +907,12 @@ 4B067FB0177BA6F900B8CFDA /* OFChangeCurrentDirectoryPathFailedException.m */, 4B067FB1177BA6F900B8CFDA /* OFChangeOwnerFailedException.h */, 4B067FB2177BA6F900B8CFDA /* OFChangeOwnerFailedException.m */, 4B067FB3177BA6F900B8CFDA /* OFChangePermissionsFailedException.h */, 4B067FB4177BA6F900B8CFDA /* OFChangePermissionsFailedException.m */, + 4BE52D2317B990DA005958D1 /* OFChecksumFailedException.h */, + 4BE52D2417B990DA005958D1 /* OFChecksumFailedException.m */, 4B8B1701133A3B8E007CD8B3 /* OFConditionBroadcastFailedException.h */, 4B8B1702133A3B8E007CD8B3 /* OFConditionBroadcastFailedException.m */, 4B8B1703133A3B8E007CD8B3 /* OFConditionSignalFailedException.h */, 4B8B1704133A3B8E007CD8B3 /* OFConditionSignalFailedException.m */, 4B7FF3B2133CED6100000324 /* OFConditionStillWaitingException.h */, @@ -1242,10 +1252,12 @@ 4B11005B14329B9A003A45D8 /* OFXMLNode.m */, 4B6799891099E7C50041064A /* OFXMLParser.h */, 4B67998A1099E7C50041064A /* OFXMLParser.m */, 4B48B95214DC23B100546D39 /* OFXMLProcessingInstructions.h */, 4B48B95314DC23B100546D39 /* OFXMLProcessingInstructions.m */, + 4BE52D1F17B990B4005958D1 /* OFZIPArchive.h */, + 4BE52D2017B990B4005958D1 /* OFZIPArchive.m */, 4B6AF97310A8D4450003FB0A /* ObjFW.h */, 4BB52CC817B8EA8E00B7EBF5 /* apple-forwarding-arm.S */, 4BB52CC917B8EA8E00B7EBF5 /* apple-forwarding-i386.S */, 4BB52CCA17B8EA8E00B7EBF5 /* apple-forwarding-ppc.S */, 4BB52CCB17B8EA8E00B7EBF5 /* apple-forwarding-x86_64.S */, @@ -1456,10 +1468,11 @@ 4BB25E8C139C388A00F574EA /* OFXMLElement+Serialization.h in Headers */, 4B3D23E21337FCB000DD29B8 /* OFXMLElementBuilder.h in Headers */, 4B11005C14329B9A003A45D8 /* OFXMLNode.h in Headers */, 4B3D23E31337FCB000DD29B8 /* OFXMLParser.h in Headers */, 4B48B95414DC23B100546D39 /* OFXMLProcessingInstructions.h in Headers */, + 4BE52D2117B990B4005958D1 /* OFZIPArchive.h in Headers */, 4B3D23E41337FCB000DD29B8 /* ObjFW.h in Headers */, 4B3D23E51337FCB000DD29B8 /* asprintf.h in Headers */, 4B3D23E61337FCB000DD29B8 /* atomic.h in Headers */, 4BA9CFA415E129D30076DC74 /* autorelease.h in Headers */, 4B3D23E71337FCB000DD29B8 /* base64.h in Headers */, @@ -1477,10 +1490,11 @@ 4B90B78D133AD46700BD33CB /* OFAlreadyConnectedException.h in Headers */, 4B90B7A2133AD87D00BD33CB /* OFBindFailedException.h in Headers */, 4B067FBB177BA6F900B8CFDA /* OFChangeCurrentDirectoryPathFailedException.h in Headers */, 4B067FBD177BA6F900B8CFDA /* OFChangeOwnerFailedException.h in Headers */, 4B067FBF177BA6F900B8CFDA /* OFChangePermissionsFailedException.h in Headers */, + 4BE52D2517B990DA005958D1 /* OFChecksumFailedException.h in Headers */, 4B29BC58133AC8540004B236 /* OFConditionBroadcastFailedException.h in Headers */, 4B29BC59133AC8540004B236 /* OFConditionSignalFailedException.h in Headers */, 4B7FF3B4133CED6200000324 /* OFConditionStillWaitingException.h in Headers */, 4B29BC5A133AC8540004B236 /* OFConditionWaitFailedException.h in Headers */, 4B90B7A4133AD87D00BD33CB /* OFConnectionFailedException.h in Headers */, @@ -1812,10 +1826,11 @@ 4BB25E8D139C388A00F574EA /* OFXMLElement+Serialization.m in Sources */, 4B3D23B01337FC0D00DD29B8 /* OFXMLElementBuilder.m in Sources */, 4B11005D14329B9A003A45D8 /* OFXMLNode.m in Sources */, 4B3D23B11337FC0D00DD29B8 /* OFXMLParser.m in Sources */, 4B48B95514DC23B100546D39 /* OFXMLProcessingInstructions.m in Sources */, + 4BE52D2217B990B4005958D1 /* OFZIPArchive.m in Sources */, 4B3D23B31337FC0D00DD29B8 /* base64.m in Sources */, 4BB52CC717B8EA7F00B7EBF5 /* codepage_437.m in Sources */, 4B3D23B41337FC0D00DD29B8 /* iso_8859_15.m in Sources */, 4BEF2D3117A5BF5200BB8BA3 /* forwarding.S in Sources */, 4B3D23B51337FC0D00DD29B8 /* foundation-compat.m in Sources */, @@ -1829,10 +1844,11 @@ 4B90B78E133AD46700BD33CB /* OFAlreadyConnectedException.m in Sources */, 4B90B7A3133AD87D00BD33CB /* OFBindFailedException.m in Sources */, 4B067FBC177BA6F900B8CFDA /* OFChangeCurrentDirectoryPathFailedException.m in Sources */, 4B067FBE177BA6F900B8CFDA /* OFChangeOwnerFailedException.m in Sources */, 4B067FC0177BA6F900B8CFDA /* OFChangePermissionsFailedException.m in Sources */, + 4BE52D2617B990DA005958D1 /* OFChecksumFailedException.m in Sources */, 4B8B170D133A3C11007CD8B3 /* OFConditionBroadcastFailedException.m in Sources */, 4B8B170E133A3C11007CD8B3 /* OFConditionSignalFailedException.m in Sources */, 4B7FF3B5133CED6200000324 /* OFConditionStillWaitingException.m in Sources */, 4B8B170F133A3C11007CD8B3 /* OFConditionWaitFailedException.m in Sources */, 4B90B7A5133AD87D00BD33CB /* OFConnectionFailedException.m in Sources */,