react-native-update 7.4.0-beta.0 → 7.4.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (750) hide show
  1. package/android/src/main/java/cn/reactnative/modules/update/SafeZipFile.java +34 -5
  2. package/android/src/main/java/cn/reactnative/modules/update/UpdateContext.java +2 -3
  3. package/android/src/main/java/cn/reactnative/modules/update/UpdateModule.java +1 -1
  4. package/ios/RCTPushy/RCTPushy.m +1 -1
  5. package/lib/main.js +25 -27
  6. package/package.json +2 -2
  7. package/android/jni/HDiffPatch/CHANGELOG.md +0 -153
  8. package/android/jni/HDiffPatch/LICENSE +0 -48
  9. package/android/jni/HDiffPatch/Makefile +0 -157
  10. package/android/jni/HDiffPatch/README.md +0 -307
  11. package/android/jni/HDiffPatch/_atosize.h +0 -83
  12. package/android/jni/HDiffPatch/_clock_for_demo.h +0 -47
  13. package/android/jni/HDiffPatch/_dir_ignore.h +0 -191
  14. package/android/jni/HDiffPatch/builds/android_ndk_jni_mk/Android.mk +0 -37
  15. package/android/jni/HDiffPatch/builds/android_ndk_jni_mk/Application.mk +0 -7
  16. package/android/jni/HDiffPatch/builds/android_ndk_jni_mk/build_libs.bat +0 -1
  17. package/android/jni/HDiffPatch/builds/android_ndk_jni_mk/build_libs.sh +0 -1
  18. package/android/jni/HDiffPatch/builds/android_ndk_jni_mk/hpatch.c +0 -18
  19. package/android/jni/HDiffPatch/builds/android_ndk_jni_mk/hpatch.h +0 -20
  20. package/android/jni/HDiffPatch/builds/android_ndk_jni_mk/hpatch_jni.c +0 -28
  21. package/android/jni/HDiffPatch/builds/android_ndk_jni_mk/java/com/github/sisong/HPatch.java +0 -8
  22. package/android/jni/HDiffPatch/builds/codeblocks/HDiffPatch.workspace +0 -8
  23. package/android/jni/HDiffPatch/builds/codeblocks/HDiffZ.cbp +0 -219
  24. package/android/jni/HDiffPatch/builds/codeblocks/HPatchZ.cbp +0 -156
  25. package/android/jni/HDiffPatch/builds/codeblocks/unitTest.cbp +0 -65
  26. package/android/jni/HDiffPatch/builds/vc/HDiffPatch.sln +0 -105
  27. package/android/jni/HDiffPatch/builds/vc/HDiffZ.vcxproj +0 -237
  28. package/android/jni/HDiffPatch/builds/vc/HDiffZ.vcxproj.user +0 -3
  29. package/android/jni/HDiffPatch/builds/vc/HPatchZ.vcxproj +0 -318
  30. package/android/jni/HDiffPatch/builds/vc/HPatchZ.vcxproj.user +0 -3
  31. package/android/jni/HDiffPatch/builds/vc/unitTest.vcxproj +0 -182
  32. package/android/jni/HDiffPatch/builds/vc/unitTest.vcxproj.user +0 -3
  33. package/android/jni/HDiffPatch/builds/xcode/HDiffPatch.xcworkspace/contents.xcworkspacedata +0 -30
  34. package/android/jni/HDiffPatch/builds/xcode/HDiffPatch.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist +0 -8
  35. package/android/jni/HDiffPatch/builds/xcode/bestParams.xcodeproj/project.pbxproj +0 -408
  36. package/android/jni/HDiffPatch/builds/xcode/hdiffz.xcodeproj/project.pbxproj +0 -573
  37. package/android/jni/HDiffPatch/builds/xcode/hpatchz.xcodeproj/project.pbxproj +0 -396
  38. package/android/jni/HDiffPatch/builds/xcode/lz4.xcodeproj/project.pbxproj +0 -268
  39. package/android/jni/HDiffPatch/builds/xcode/lzma.xcodeproj/project.pbxproj +0 -361
  40. package/android/jni/HDiffPatch/builds/xcode/testHashClash.xcodeproj/project.pbxproj +0 -301
  41. package/android/jni/HDiffPatch/builds/xcode/unitTest.xcodeproj/project.pbxproj +0 -411
  42. package/android/jni/HDiffPatch/builds/xcode/zstd.xcodeproj/project.pbxproj +0 -504
  43. package/android/jni/HDiffPatch/checksum_plugin_demo.h +0 -344
  44. package/android/jni/HDiffPatch/compress_parallel.cpp +0 -166
  45. package/android/jni/HDiffPatch/compress_parallel.h +0 -59
  46. package/android/jni/HDiffPatch/compress_plugin_demo.h +0 -1152
  47. package/android/jni/HDiffPatch/decompress_plugin_demo.h +0 -995
  48. package/android/jni/HDiffPatch/dirDiffPatch/dir_diff/dir_diff.cpp +0 -797
  49. package/android/jni/HDiffPatch/dirDiffPatch/dir_diff/dir_diff.h +0 -65
  50. package/android/jni/HDiffPatch/dirDiffPatch/dir_diff/dir_diff_tools.cpp +0 -200
  51. package/android/jni/HDiffPatch/dirDiffPatch/dir_diff/dir_diff_tools.h +0 -178
  52. package/android/jni/HDiffPatch/dirDiffPatch/dir_diff/dir_manifest.cpp +0 -357
  53. package/android/jni/HDiffPatch/dirDiffPatch/dir_diff/dir_manifest.h +0 -87
  54. package/android/jni/HDiffPatch/dirDiffPatch/dir_diff/file_for_dirDiff.h +0 -151
  55. package/android/jni/HDiffPatch/dirDiffPatch/dir_patch/dir_patch.c +0 -770
  56. package/android/jni/HDiffPatch/dirDiffPatch/dir_patch/dir_patch.h +0 -236
  57. package/android/jni/HDiffPatch/dirDiffPatch/dir_patch/dir_patch_private.h +0 -47
  58. package/android/jni/HDiffPatch/dirDiffPatch/dir_patch/dir_patch_tools.c +0 -112
  59. package/android/jni/HDiffPatch/dirDiffPatch/dir_patch/dir_patch_tools.h +0 -53
  60. package/android/jni/HDiffPatch/dirDiffPatch/dir_patch/dir_patch_types.h +0 -61
  61. package/android/jni/HDiffPatch/dirDiffPatch/dir_patch/new_dir_output.c +0 -331
  62. package/android/jni/HDiffPatch/dirDiffPatch/dir_patch/new_dir_output.h +0 -144
  63. package/android/jni/HDiffPatch/dirDiffPatch/dir_patch/new_stream.c +0 -176
  64. package/android/jni/HDiffPatch/dirDiffPatch/dir_patch/new_stream.h +0 -84
  65. package/android/jni/HDiffPatch/dirDiffPatch/dir_patch/ref_stream.c +0 -146
  66. package/android/jni/HDiffPatch/dirDiffPatch/dir_patch/ref_stream.h +0 -61
  67. package/android/jni/HDiffPatch/dirDiffPatch/dir_patch/res_handle_limit.c +0 -152
  68. package/android/jni/HDiffPatch/dirDiffPatch/dir_patch/res_handle_limit.h +0 -76
  69. package/android/jni/HDiffPatch/file_for_patch.c +0 -524
  70. package/android/jni/HDiffPatch/file_for_patch.h +0 -259
  71. package/android/jni/HDiffPatch/hdiffz.cpp +0 -1570
  72. package/android/jni/HDiffPatch/hpatch_dir_listener.h +0 -290
  73. package/android/jni/HDiffPatch/hpatchz.c +0 -1221
  74. package/android/jni/HDiffPatch/libHDiffPatch/HDiff/diff.cpp +0 -1025
  75. package/android/jni/HDiffPatch/libHDiffPatch/HDiff/diff.h +0 -116
  76. package/android/jni/HDiffPatch/libHDiffPatch/HDiff/diff_types.h +0 -72
  77. package/android/jni/HDiffPatch/libHDiffPatch/HDiff/private_diff/bytes_rle.cpp +0 -213
  78. package/android/jni/HDiffPatch/libHDiffPatch/HDiff/private_diff/bytes_rle.h +0 -63
  79. package/android/jni/HDiffPatch/libHDiffPatch/HDiff/private_diff/compress_detect.cpp +0 -170
  80. package/android/jni/HDiffPatch/libHDiffPatch/HDiff/private_diff/compress_detect.h +0 -86
  81. package/android/jni/HDiffPatch/libHDiffPatch/HDiff/private_diff/libdivsufsort/config.h +0 -89
  82. package/android/jni/HDiffPatch/libHDiffPatch/HDiff/private_diff/libdivsufsort/divsufsort.c +0 -13
  83. package/android/jni/HDiffPatch/libHDiffPatch/HDiff/private_diff/libdivsufsort/divsufsort.c.inc.h +0 -398
  84. package/android/jni/HDiffPatch/libHDiffPatch/HDiff/private_diff/libdivsufsort/divsufsort.h +0 -194
  85. package/android/jni/HDiffPatch/libHDiffPatch/HDiff/private_diff/libdivsufsort/divsufsort64.c +0 -13
  86. package/android/jni/HDiffPatch/libHDiffPatch/HDiff/private_diff/libdivsufsort/divsufsort64.h +0 -204
  87. package/android/jni/HDiffPatch/libHDiffPatch/HDiff/private_diff/libdivsufsort/divsufsort_private.h +0 -207
  88. package/android/jni/HDiffPatch/libHDiffPatch/HDiff/private_diff/libdivsufsort/sssort.c.inc.h +0 -815
  89. package/android/jni/HDiffPatch/libHDiffPatch/HDiff/private_diff/libdivsufsort/trsort.c.inc.h +0 -586
  90. package/android/jni/HDiffPatch/libHDiffPatch/HDiff/private_diff/libdivsufsort/utils.c.inc.h +0 -381
  91. package/android/jni/HDiffPatch/libHDiffPatch/HDiff/private_diff/limit_mem_diff/adler_roll.c +0 -352
  92. package/android/jni/HDiffPatch/libHDiffPatch/HDiff/private_diff/limit_mem_diff/adler_roll.h +0 -137
  93. package/android/jni/HDiffPatch/libHDiffPatch/HDiff/private_diff/limit_mem_diff/bloom_filter.h +0 -137
  94. package/android/jni/HDiffPatch/libHDiffPatch/HDiff/private_diff/limit_mem_diff/covers.h +0 -70
  95. package/android/jni/HDiffPatch/libHDiffPatch/HDiff/private_diff/limit_mem_diff/digest_matcher.cpp +0 -628
  96. package/android/jni/HDiffPatch/libHDiffPatch/HDiff/private_diff/limit_mem_diff/digest_matcher.h +0 -87
  97. package/android/jni/HDiffPatch/libHDiffPatch/HDiff/private_diff/limit_mem_diff/stream_serialize.cpp +0 -363
  98. package/android/jni/HDiffPatch/libHDiffPatch/HDiff/private_diff/limit_mem_diff/stream_serialize.h +0 -139
  99. package/android/jni/HDiffPatch/libHDiffPatch/HDiff/private_diff/mem_buf.h +0 -68
  100. package/android/jni/HDiffPatch/libHDiffPatch/HDiff/private_diff/pack_uint.h +0 -115
  101. package/android/jni/HDiffPatch/libHDiffPatch/HDiff/private_diff/suffix_string.cpp +0 -342
  102. package/android/jni/HDiffPatch/libHDiffPatch/HDiff/private_diff/suffix_string.h +0 -94
  103. package/android/jni/HDiffPatch/libHDiffPatch/HPatch/checksum_plugin.h +0 -52
  104. package/android/jni/HDiffPatch/libHDiffPatch/HPatch/patch.c +0 -2292
  105. package/android/jni/HDiffPatch/libHDiffPatch/HPatch/patch.h +0 -215
  106. package/android/jni/HDiffPatch/libHDiffPatch/HPatch/patch_private.h +0 -165
  107. package/android/jni/HDiffPatch/libHDiffPatch/HPatch/patch_types.h +0 -251
  108. package/android/jni/HDiffPatch/libParallel/parallel_channel.cpp +0 -174
  109. package/android/jni/HDiffPatch/libParallel/parallel_channel.h +0 -73
  110. package/android/jni/HDiffPatch/libParallel/parallel_import.cpp +0 -367
  111. package/android/jni/HDiffPatch/libParallel/parallel_import.h +0 -92
  112. package/android/jni/HDiffPatch/test/_private_searchBestParams.cpp +0 -301
  113. package/android/jni/HDiffPatch/test/hpatchz_test.cpp +0 -292
  114. package/android/jni/HDiffPatch/test/testHashClash.cpp +0 -436
  115. package/android/jni/HDiffPatch/test/unit_test.cpp +0 -417
  116. package/android/jni/lzma/Asm/arm/7zCrcOpt.asm +0 -100
  117. package/android/jni/lzma/Asm/x86/7zAsm.asm +0 -147
  118. package/android/jni/lzma/Asm/x86/7zCrcOpt.asm +0 -147
  119. package/android/jni/lzma/Asm/x86/AesOpt.asm +0 -237
  120. package/android/jni/lzma/Asm/x86/LzmaDecOpt.asm +0 -1258
  121. package/android/jni/lzma/Asm/x86/XzCrc64Opt.asm +0 -205
  122. package/android/jni/lzma/C/7z.h +0 -202
  123. package/android/jni/lzma/C/7zAlloc.c +0 -80
  124. package/android/jni/lzma/C/7zAlloc.h +0 -19
  125. package/android/jni/lzma/C/7zArcIn.c +0 -1771
  126. package/android/jni/lzma/C/7zBuf.c +0 -36
  127. package/android/jni/lzma/C/7zBuf.h +0 -35
  128. package/android/jni/lzma/C/7zBuf2.c +0 -52
  129. package/android/jni/lzma/C/7zCrc.c +0 -128
  130. package/android/jni/lzma/C/7zCrc.h +0 -25
  131. package/android/jni/lzma/C/7zCrcOpt.c +0 -115
  132. package/android/jni/lzma/C/7zDec.c +0 -591
  133. package/android/jni/lzma/C/7zFile.c +0 -286
  134. package/android/jni/lzma/C/7zFile.h +0 -83
  135. package/android/jni/lzma/C/7zStream.c +0 -176
  136. package/android/jni/lzma/C/7zTypes.h +0 -375
  137. package/android/jni/lzma/C/7zVersion.h +0 -27
  138. package/android/jni/lzma/C/7zVersion.rc +0 -55
  139. package/android/jni/lzma/C/Aes.c +0 -306
  140. package/android/jni/lzma/C/Aes.h +0 -38
  141. package/android/jni/lzma/C/AesOpt.c +0 -184
  142. package/android/jni/lzma/C/Alloc.c +0 -455
  143. package/android/jni/lzma/C/Alloc.h +0 -51
  144. package/android/jni/lzma/C/Bcj2.c +0 -257
  145. package/android/jni/lzma/C/Bcj2.h +0 -146
  146. package/android/jni/lzma/C/Bcj2Enc.c +0 -311
  147. package/android/jni/lzma/C/Bra.c +0 -230
  148. package/android/jni/lzma/C/Bra.h +0 -64
  149. package/android/jni/lzma/C/Bra86.c +0 -82
  150. package/android/jni/lzma/C/BraIA64.c +0 -53
  151. package/android/jni/lzma/C/Compiler.h +0 -33
  152. package/android/jni/lzma/C/CpuArch.c +0 -218
  153. package/android/jni/lzma/C/CpuArch.h +0 -336
  154. package/android/jni/lzma/C/Delta.c +0 -64
  155. package/android/jni/lzma/C/Delta.h +0 -19
  156. package/android/jni/lzma/C/DllSecur.c +0 -108
  157. package/android/jni/lzma/C/DllSecur.h +0 -20
  158. package/android/jni/lzma/C/LzFind.c +0 -1127
  159. package/android/jni/lzma/C/LzFind.h +0 -121
  160. package/android/jni/lzma/C/LzFindMt.c +0 -853
  161. package/android/jni/lzma/C/LzFindMt.h +0 -101
  162. package/android/jni/lzma/C/LzHash.h +0 -57
  163. package/android/jni/lzma/C/Lzma2Dec.c +0 -488
  164. package/android/jni/lzma/C/Lzma2Dec.h +0 -120
  165. package/android/jni/lzma/C/Lzma2DecMt.c +0 -1082
  166. package/android/jni/lzma/C/Lzma2DecMt.h +0 -79
  167. package/android/jni/lzma/C/Lzma2Enc.c +0 -803
  168. package/android/jni/lzma/C/Lzma2Enc.h +0 -55
  169. package/android/jni/lzma/C/Lzma86.h +0 -111
  170. package/android/jni/lzma/C/Lzma86Dec.c +0 -54
  171. package/android/jni/lzma/C/Lzma86Enc.c +0 -106
  172. package/android/jni/lzma/C/LzmaDec.c +0 -1185
  173. package/android/jni/lzma/C/LzmaDec.h +0 -234
  174. package/android/jni/lzma/C/LzmaEnc.c +0 -2976
  175. package/android/jni/lzma/C/LzmaEnc.h +0 -76
  176. package/android/jni/lzma/C/LzmaLib.c +0 -40
  177. package/android/jni/lzma/C/LzmaLib.h +0 -131
  178. package/android/jni/lzma/C/MtCoder.c +0 -601
  179. package/android/jni/lzma/C/MtCoder.h +0 -141
  180. package/android/jni/lzma/C/MtDec.c +0 -1138
  181. package/android/jni/lzma/C/MtDec.h +0 -201
  182. package/android/jni/lzma/C/Ppmd.h +0 -85
  183. package/android/jni/lzma/C/Ppmd7.c +0 -712
  184. package/android/jni/lzma/C/Ppmd7.h +0 -142
  185. package/android/jni/lzma/C/Ppmd7Dec.c +0 -191
  186. package/android/jni/lzma/C/Ppmd7Enc.c +0 -187
  187. package/android/jni/lzma/C/Precomp.h +0 -10
  188. package/android/jni/lzma/C/RotateDefs.h +0 -30
  189. package/android/jni/lzma/C/Sha256.c +0 -248
  190. package/android/jni/lzma/C/Sha256.h +0 -26
  191. package/android/jni/lzma/C/Sort.c +0 -141
  192. package/android/jni/lzma/C/Sort.h +0 -18
  193. package/android/jni/lzma/C/Threads.c +0 -95
  194. package/android/jni/lzma/C/Threads.h +0 -70
  195. package/android/jni/lzma/C/ThreadsP.c +0 -396
  196. package/android/jni/lzma/C/ThreadsP.h +0 -31
  197. package/android/jni/lzma/C/Util/7z/7z.dsp +0 -241
  198. package/android/jni/lzma/C/Util/7z/7z.dsw +0 -29
  199. package/android/jni/lzma/C/Util/7z/7zMain.c +0 -686
  200. package/android/jni/lzma/C/Util/7z/Precomp.c +0 -4
  201. package/android/jni/lzma/C/Util/7z/Precomp.h +0 -10
  202. package/android/jni/lzma/C/Util/7z/makefile +0 -40
  203. package/android/jni/lzma/C/Util/7z/makefile.gcc +0 -75
  204. package/android/jni/lzma/C/Util/Lzma/LzmaUtil.c +0 -258
  205. package/android/jni/lzma/C/Util/Lzma/LzmaUtil.dsp +0 -168
  206. package/android/jni/lzma/C/Util/Lzma/LzmaUtil.dsw +0 -29
  207. package/android/jni/lzma/C/Util/Lzma/makefile +0 -28
  208. package/android/jni/lzma/C/Util/Lzma/makefile.gcc +0 -44
  209. package/android/jni/lzma/C/Util/LzmaLib/LzmaLib.def +0 -4
  210. package/android/jni/lzma/C/Util/LzmaLib/LzmaLib.dsp +0 -178
  211. package/android/jni/lzma/C/Util/LzmaLib/LzmaLib.dsw +0 -29
  212. package/android/jni/lzma/C/Util/LzmaLib/LzmaLibExports.c +0 -14
  213. package/android/jni/lzma/C/Util/LzmaLib/makefile +0 -34
  214. package/android/jni/lzma/C/Util/LzmaLib/resource.rc +0 -3
  215. package/android/jni/lzma/C/Util/SfxSetup/Precomp.c +0 -4
  216. package/android/jni/lzma/C/Util/SfxSetup/Precomp.h +0 -10
  217. package/android/jni/lzma/C/Util/SfxSetup/SfxSetup.c +0 -640
  218. package/android/jni/lzma/C/Util/SfxSetup/SfxSetup.dsp +0 -231
  219. package/android/jni/lzma/C/Util/SfxSetup/SfxSetup.dsw +0 -29
  220. package/android/jni/lzma/C/Util/SfxSetup/makefile +0 -37
  221. package/android/jni/lzma/C/Util/SfxSetup/makefile_con +0 -38
  222. package/android/jni/lzma/C/Util/SfxSetup/resource.rc +0 -5
  223. package/android/jni/lzma/C/Util/SfxSetup/setup.ico +0 -0
  224. package/android/jni/lzma/C/Xz.c +0 -90
  225. package/android/jni/lzma/C/Xz.h +0 -460
  226. package/android/jni/lzma/C/XzCrc64.c +0 -86
  227. package/android/jni/lzma/C/XzCrc64.h +0 -26
  228. package/android/jni/lzma/C/XzCrc64Opt.c +0 -69
  229. package/android/jni/lzma/C/XzDec.c +0 -2766
  230. package/android/jni/lzma/C/XzEnc.c +0 -1329
  231. package/android/jni/lzma/C/XzEnc.h +0 -60
  232. package/android/jni/lzma/C/XzIn.c +0 -319
  233. package/android/jni/lzma/CPP/7zip/7zip.mak +0 -240
  234. package/android/jni/lzma/CPP/7zip/Aes.mak +0 -7
  235. package/android/jni/lzma/CPP/7zip/Archive/7z/7zCompressionMode.cpp +0 -3
  236. package/android/jni/lzma/CPP/7zip/Archive/7z/7zCompressionMode.h +0 -76
  237. package/android/jni/lzma/CPP/7zip/Archive/7z/7zDecode.cpp +0 -569
  238. package/android/jni/lzma/CPP/7zip/Archive/7z/7zDecode.h +0 -70
  239. package/android/jni/lzma/CPP/7zip/Archive/7z/7zEncode.cpp +0 -678
  240. package/android/jni/lzma/CPP/7zip/Archive/7z/7zEncode.h +0 -92
  241. package/android/jni/lzma/CPP/7zip/Archive/7z/7zExtract.cpp +0 -423
  242. package/android/jni/lzma/CPP/7zip/Archive/7z/7zFolderInStream.cpp +0 -139
  243. package/android/jni/lzma/CPP/7zip/Archive/7z/7zFolderInStream.h +0 -61
  244. package/android/jni/lzma/CPP/7zip/Archive/7z/7zHandler.cpp +0 -763
  245. package/android/jni/lzma/CPP/7zip/Archive/7z/7zHandler.h +0 -181
  246. package/android/jni/lzma/CPP/7zip/Archive/7z/7zHandlerOut.cpp +0 -942
  247. package/android/jni/lzma/CPP/7zip/Archive/7z/7zHeader.cpp +0 -19
  248. package/android/jni/lzma/CPP/7zip/Archive/7z/7zHeader.h +0 -148
  249. package/android/jni/lzma/CPP/7zip/Archive/7z/7zIn.cpp +0 -1666
  250. package/android/jni/lzma/CPP/7zip/Archive/7z/7zIn.h +0 -445
  251. package/android/jni/lzma/CPP/7zip/Archive/7z/7zItem.h +0 -202
  252. package/android/jni/lzma/CPP/7zip/Archive/7z/7zOut.cpp +0 -901
  253. package/android/jni/lzma/CPP/7zip/Archive/7z/7zOut.h +0 -335
  254. package/android/jni/lzma/CPP/7zip/Archive/7z/7zProperties.cpp +0 -174
  255. package/android/jni/lzma/CPP/7zip/Archive/7z/7zProperties.h +0 -22
  256. package/android/jni/lzma/CPP/7zip/Archive/7z/7zRegister.cpp +0 -21
  257. package/android/jni/lzma/CPP/7zip/Archive/7z/7zSpecStream.cpp +0 -22
  258. package/android/jni/lzma/CPP/7zip/Archive/7z/7zSpecStream.h +0 -35
  259. package/android/jni/lzma/CPP/7zip/Archive/7z/7zUpdate.cpp +0 -2500
  260. package/android/jni/lzma/CPP/7zip/Archive/7z/7zUpdate.h +0 -139
  261. package/android/jni/lzma/CPP/7zip/Archive/7z/StdAfx.cpp +0 -3
  262. package/android/jni/lzma/CPP/7zip/Archive/7z/StdAfx.h +0 -8
  263. package/android/jni/lzma/CPP/7zip/Archive/Archive.def +0 -12
  264. package/android/jni/lzma/CPP/7zip/Archive/Archive2.def +0 -19
  265. package/android/jni/lzma/CPP/7zip/Archive/ArchiveExports.cpp +0 -151
  266. package/android/jni/lzma/CPP/7zip/Archive/Common/CoderMixer2.cpp +0 -1125
  267. package/android/jni/lzma/CPP/7zip/Archive/Common/CoderMixer2.h +0 -447
  268. package/android/jni/lzma/CPP/7zip/Archive/Common/DummyOutStream.cpp +0 -17
  269. package/android/jni/lzma/CPP/7zip/Archive/Common/DummyOutStream.h +0 -25
  270. package/android/jni/lzma/CPP/7zip/Archive/Common/HandlerOut.cpp +0 -232
  271. package/android/jni/lzma/CPP/7zip/Archive/Common/HandlerOut.h +0 -110
  272. package/android/jni/lzma/CPP/7zip/Archive/Common/InStreamWithCRC.cpp +0 -46
  273. package/android/jni/lzma/CPP/7zip/Archive/Common/InStreamWithCRC.h +0 -67
  274. package/android/jni/lzma/CPP/7zip/Archive/Common/ItemNameUtils.cpp +0 -88
  275. package/android/jni/lzma/CPP/7zip/Archive/Common/ItemNameUtils.h +0 -28
  276. package/android/jni/lzma/CPP/7zip/Archive/Common/MultiStream.cpp +0 -191
  277. package/android/jni/lzma/CPP/7zip/Archive/Common/MultiStream.h +0 -89
  278. package/android/jni/lzma/CPP/7zip/Archive/Common/OutStreamWithCRC.cpp +0 -18
  279. package/android/jni/lzma/CPP/7zip/Archive/Common/OutStreamWithCRC.h +0 -37
  280. package/android/jni/lzma/CPP/7zip/Archive/Common/ParseProperties.cpp +0 -3
  281. package/android/jni/lzma/CPP/7zip/Archive/Common/ParseProperties.h +0 -6
  282. package/android/jni/lzma/CPP/7zip/Archive/Common/StdAfx.h +0 -8
  283. package/android/jni/lzma/CPP/7zip/Archive/DllExports2.cpp +0 -122
  284. package/android/jni/lzma/CPP/7zip/Archive/IArchive.h +0 -608
  285. package/android/jni/lzma/CPP/7zip/Archive/Icons/7z.ico +0 -0
  286. package/android/jni/lzma/CPP/7zip/Archive/LzmaHandler.cpp +0 -629
  287. package/android/jni/lzma/CPP/7zip/Archive/SplitHandler.cpp +0 -359
  288. package/android/jni/lzma/CPP/7zip/Archive/StdAfx.h +0 -8
  289. package/android/jni/lzma/CPP/7zip/Archive/XzHandler.cpp +0 -1308
  290. package/android/jni/lzma/CPP/7zip/Archive/XzHandler.h +0 -11
  291. package/android/jni/lzma/CPP/7zip/Asm.mak +0 -9
  292. package/android/jni/lzma/CPP/7zip/Bundles/Alone7z/Alone.dsp +0 -1910
  293. package/android/jni/lzma/CPP/7zip/Bundles/Alone7z/Alone.dsw +0 -29
  294. package/android/jni/lzma/CPP/7zip/Bundles/Alone7z/StdAfx.cpp +0 -3
  295. package/android/jni/lzma/CPP/7zip/Bundles/Alone7z/StdAfx.h +0 -8
  296. package/android/jni/lzma/CPP/7zip/Bundles/Alone7z/makefile +0 -154
  297. package/android/jni/lzma/CPP/7zip/Bundles/Alone7z/resource.rc +0 -7
  298. package/android/jni/lzma/CPP/7zip/Bundles/Format7zExtractR/StdAfx.cpp +0 -3
  299. package/android/jni/lzma/CPP/7zip/Bundles/Format7zExtractR/StdAfx.h +0 -8
  300. package/android/jni/lzma/CPP/7zip/Bundles/Format7zExtractR/makefile +0 -96
  301. package/android/jni/lzma/CPP/7zip/Bundles/Format7zExtractR/resource.rc +0 -5
  302. package/android/jni/lzma/CPP/7zip/Bundles/Format7zR/StdAfx.cpp +0 -3
  303. package/android/jni/lzma/CPP/7zip/Bundles/Format7zR/StdAfx.h +0 -8
  304. package/android/jni/lzma/CPP/7zip/Bundles/Format7zR/makefile +0 -116
  305. package/android/jni/lzma/CPP/7zip/Bundles/Format7zR/resource.rc +0 -5
  306. package/android/jni/lzma/CPP/7zip/Bundles/LzmaCon/LzmaAlone.cpp +0 -799
  307. package/android/jni/lzma/CPP/7zip/Bundles/LzmaCon/LzmaCon.dsp +0 -477
  308. package/android/jni/lzma/CPP/7zip/Bundles/LzmaCon/LzmaCon.dsw +0 -29
  309. package/android/jni/lzma/CPP/7zip/Bundles/LzmaCon/StdAfx.cpp +0 -3
  310. package/android/jni/lzma/CPP/7zip/Bundles/LzmaCon/StdAfx.h +0 -8
  311. package/android/jni/lzma/CPP/7zip/Bundles/LzmaCon/makefile +0 -59
  312. package/android/jni/lzma/CPP/7zip/Bundles/LzmaCon/makefile.gcc +0 -195
  313. package/android/jni/lzma/CPP/7zip/Bundles/LzmaCon/resource.rc +0 -3
  314. package/android/jni/lzma/CPP/7zip/Bundles/LzmaSpec/LzmaSpec.cpp +0 -715
  315. package/android/jni/lzma/CPP/7zip/Bundles/SFXCon/7z.ico +0 -0
  316. package/android/jni/lzma/CPP/7zip/Bundles/SFXCon/SFXCon.dsp +0 -912
  317. package/android/jni/lzma/CPP/7zip/Bundles/SFXCon/SFXCon.dsw +0 -29
  318. package/android/jni/lzma/CPP/7zip/Bundles/SFXCon/SfxCon.cpp +0 -482
  319. package/android/jni/lzma/CPP/7zip/Bundles/SFXCon/StdAfx.cpp +0 -3
  320. package/android/jni/lzma/CPP/7zip/Bundles/SFXCon/StdAfx.h +0 -8
  321. package/android/jni/lzma/CPP/7zip/Bundles/SFXCon/makefile +0 -134
  322. package/android/jni/lzma/CPP/7zip/Bundles/SFXCon/resource.rc +0 -5
  323. package/android/jni/lzma/CPP/7zip/Bundles/SFXSetup/ExtractCallbackSfx.cpp +0 -246
  324. package/android/jni/lzma/CPP/7zip/Bundles/SFXSetup/ExtractCallbackSfx.h +0 -86
  325. package/android/jni/lzma/CPP/7zip/Bundles/SFXSetup/ExtractEngine.cpp +0 -137
  326. package/android/jni/lzma/CPP/7zip/Bundles/SFXSetup/ExtractEngine.h +0 -11
  327. package/android/jni/lzma/CPP/7zip/Bundles/SFXSetup/SFXSetup.dsp +0 -803
  328. package/android/jni/lzma/CPP/7zip/Bundles/SFXSetup/SFXSetup.dsw +0 -29
  329. package/android/jni/lzma/CPP/7zip/Bundles/SFXSetup/SfxSetup.cpp +0 -364
  330. package/android/jni/lzma/CPP/7zip/Bundles/SFXSetup/StdAfx.cpp +0 -3
  331. package/android/jni/lzma/CPP/7zip/Bundles/SFXSetup/StdAfx.h +0 -13
  332. package/android/jni/lzma/CPP/7zip/Bundles/SFXSetup/makefile +0 -117
  333. package/android/jni/lzma/CPP/7zip/Bundles/SFXSetup/resource.h +0 -6
  334. package/android/jni/lzma/CPP/7zip/Bundles/SFXSetup/resource.rc +0 -16
  335. package/android/jni/lzma/CPP/7zip/Bundles/SFXSetup/setup.ico +0 -0
  336. package/android/jni/lzma/CPP/7zip/Bundles/SFXWin/7z.ico +0 -0
  337. package/android/jni/lzma/CPP/7zip/Bundles/SFXWin/SFXWin.dsp +0 -988
  338. package/android/jni/lzma/CPP/7zip/Bundles/SFXWin/SFXWin.dsw +0 -29
  339. package/android/jni/lzma/CPP/7zip/Bundles/SFXWin/SfxWin.cpp +0 -241
  340. package/android/jni/lzma/CPP/7zip/Bundles/SFXWin/StdAfx.cpp +0 -3
  341. package/android/jni/lzma/CPP/7zip/Bundles/SFXWin/StdAfx.h +0 -14
  342. package/android/jni/lzma/CPP/7zip/Bundles/SFXWin/makefile +0 -153
  343. package/android/jni/lzma/CPP/7zip/Bundles/SFXWin/resource.h +0 -1
  344. package/android/jni/lzma/CPP/7zip/Bundles/SFXWin/resource.rc +0 -50
  345. package/android/jni/lzma/CPP/7zip/Common/CWrappers.cpp +0 -250
  346. package/android/jni/lzma/CPP/7zip/Common/CWrappers.h +0 -120
  347. package/android/jni/lzma/CPP/7zip/Common/CreateCoder.cpp +0 -536
  348. package/android/jni/lzma/CPP/7zip/Common/CreateCoder.h +0 -192
  349. package/android/jni/lzma/CPP/7zip/Common/FilePathAutoRename.cpp +0 -46
  350. package/android/jni/lzma/CPP/7zip/Common/FilePathAutoRename.h +0 -10
  351. package/android/jni/lzma/CPP/7zip/Common/FileStreams.cpp +0 -475
  352. package/android/jni/lzma/CPP/7zip/Common/FileStreams.h +0 -166
  353. package/android/jni/lzma/CPP/7zip/Common/FilterCoder.cpp +0 -435
  354. package/android/jni/lzma/CPP/7zip/Common/FilterCoder.h +0 -205
  355. package/android/jni/lzma/CPP/7zip/Common/InBuffer.cpp +0 -163
  356. package/android/jni/lzma/CPP/7zip/Common/InBuffer.h +0 -92
  357. package/android/jni/lzma/CPP/7zip/Common/InOutTempBuffer.cpp +0 -127
  358. package/android/jni/lzma/CPP/7zip/Common/InOutTempBuffer.h +0 -48
  359. package/android/jni/lzma/CPP/7zip/Common/LimitedStreams.cpp +0 -367
  360. package/android/jni/lzma/CPP/7zip/Common/LimitedStreams.h +0 -252
  361. package/android/jni/lzma/CPP/7zip/Common/LockedStream.cpp +0 -3
  362. package/android/jni/lzma/CPP/7zip/Common/LockedStream.h +0 -6
  363. package/android/jni/lzma/CPP/7zip/Common/MethodId.cpp +0 -3
  364. package/android/jni/lzma/CPP/7zip/Common/MethodId.h +0 -10
  365. package/android/jni/lzma/CPP/7zip/Common/MethodProps.cpp +0 -509
  366. package/android/jni/lzma/CPP/7zip/Common/MethodProps.h +0 -264
  367. package/android/jni/lzma/CPP/7zip/Common/OffsetStream.cpp +0 -39
  368. package/android/jni/lzma/CPP/7zip/Common/OffsetStream.h +0 -26
  369. package/android/jni/lzma/CPP/7zip/Common/OutBuffer.cpp +0 -111
  370. package/android/jni/lzma/CPP/7zip/Common/OutBuffer.h +0 -66
  371. package/android/jni/lzma/CPP/7zip/Common/ProgressUtils.cpp +0 -51
  372. package/android/jni/lzma/CPP/7zip/Common/ProgressUtils.h +0 -35
  373. package/android/jni/lzma/CPP/7zip/Common/PropId.cpp +0 -108
  374. package/android/jni/lzma/CPP/7zip/Common/RegisterArc.h +0 -78
  375. package/android/jni/lzma/CPP/7zip/Common/RegisterCodec.h +0 -106
  376. package/android/jni/lzma/CPP/7zip/Common/StdAfx.h +0 -8
  377. package/android/jni/lzma/CPP/7zip/Common/StreamBinder.cpp +0 -156
  378. package/android/jni/lzma/CPP/7zip/Common/StreamBinder.h +0 -60
  379. package/android/jni/lzma/CPP/7zip/Common/StreamObjects.cpp +0 -285
  380. package/android/jni/lzma/CPP/7zip/Common/StreamObjects.h +0 -157
  381. package/android/jni/lzma/CPP/7zip/Common/StreamUtils.cpp +0 -56
  382. package/android/jni/lzma/CPP/7zip/Common/StreamUtils.h +0 -13
  383. package/android/jni/lzma/CPP/7zip/Common/UniqBlocks.cpp +0 -57
  384. package/android/jni/lzma/CPP/7zip/Common/UniqBlocks.h +0 -26
  385. package/android/jni/lzma/CPP/7zip/Common/VirtThread.cpp +0 -48
  386. package/android/jni/lzma/CPP/7zip/Common/VirtThread.h +0 -24
  387. package/android/jni/lzma/CPP/7zip/Compress/Bcj2Coder.cpp +0 -666
  388. package/android/jni/lzma/CPP/7zip/Compress/Bcj2Coder.h +0 -120
  389. package/android/jni/lzma/CPP/7zip/Compress/Bcj2Register.cpp +0 -24
  390. package/android/jni/lzma/CPP/7zip/Compress/BcjCoder.cpp +0 -24
  391. package/android/jni/lzma/CPP/7zip/Compress/BcjCoder.h +0 -31
  392. package/android/jni/lzma/CPP/7zip/Compress/BcjRegister.cpp +0 -17
  393. package/android/jni/lzma/CPP/7zip/Compress/BranchMisc.cpp +0 -23
  394. package/android/jni/lzma/CPP/7zip/Compress/BranchMisc.h +0 -35
  395. package/android/jni/lzma/CPP/7zip/Compress/BranchRegister.cpp +0 -41
  396. package/android/jni/lzma/CPP/7zip/Compress/ByteSwap.cpp +0 -92
  397. package/android/jni/lzma/CPP/7zip/Compress/CodecExports.cpp +0 -344
  398. package/android/jni/lzma/CPP/7zip/Compress/CopyCoder.cpp +0 -120
  399. package/android/jni/lzma/CPP/7zip/Compress/CopyCoder.h +0 -49
  400. package/android/jni/lzma/CPP/7zip/Compress/CopyRegister.cpp +0 -15
  401. package/android/jni/lzma/CPP/7zip/Compress/DeltaFilter.cpp +0 -128
  402. package/android/jni/lzma/CPP/7zip/Compress/Lzma2Decoder.cpp +0 -265
  403. package/android/jni/lzma/CPP/7zip/Compress/Lzma2Decoder.h +0 -96
  404. package/android/jni/lzma/CPP/7zip/Compress/Lzma2Encoder.cpp +0 -122
  405. package/android/jni/lzma/CPP/7zip/Compress/Lzma2Encoder.h +0 -42
  406. package/android/jni/lzma/CPP/7zip/Compress/Lzma2Register.cpp +0 -22
  407. package/android/jni/lzma/CPP/7zip/Compress/LzmaDecoder.cpp +0 -343
  408. package/android/jni/lzma/CPP/7zip/Compress/LzmaDecoder.h +0 -113
  409. package/android/jni/lzma/CPP/7zip/Compress/LzmaEncoder.cpp +0 -182
  410. package/android/jni/lzma/CPP/7zip/Compress/LzmaEncoder.h +0 -46
  411. package/android/jni/lzma/CPP/7zip/Compress/LzmaRegister.cpp +0 -22
  412. package/android/jni/lzma/CPP/7zip/Compress/PpmdDecoder.cpp +0 -170
  413. package/android/jni/lzma/CPP/7zip/Compress/PpmdDecoder.h +0 -86
  414. package/android/jni/lzma/CPP/7zip/Compress/PpmdEncoder.cpp +0 -152
  415. package/android/jni/lzma/CPP/7zip/Compress/PpmdEncoder.h +0 -58
  416. package/android/jni/lzma/CPP/7zip/Compress/PpmdRegister.cpp +0 -22
  417. package/android/jni/lzma/CPP/7zip/Compress/StdAfx.h +0 -8
  418. package/android/jni/lzma/CPP/7zip/Compress/XzDecoder.cpp +0 -150
  419. package/android/jni/lzma/CPP/7zip/Compress/XzDecoder.h +0 -92
  420. package/android/jni/lzma/CPP/7zip/Compress/XzEncoder.cpp +0 -245
  421. package/android/jni/lzma/CPP/7zip/Compress/XzEncoder.h +0 -46
  422. package/android/jni/lzma/CPP/7zip/Crc.mak +0 -8
  423. package/android/jni/lzma/CPP/7zip/Crc64.mak +0 -8
  424. package/android/jni/lzma/CPP/7zip/Crypto/7zAes.cpp +0 -280
  425. package/android/jni/lzma/CPP/7zip/Crypto/7zAes.h +0 -118
  426. package/android/jni/lzma/CPP/7zip/Crypto/7zAesRegister.cpp +0 -17
  427. package/android/jni/lzma/CPP/7zip/Crypto/MyAes.cpp +0 -112
  428. package/android/jni/lzma/CPP/7zip/Crypto/MyAes.h +0 -57
  429. package/android/jni/lzma/CPP/7zip/Crypto/MyAesReg.cpp +0 -16
  430. package/android/jni/lzma/CPP/7zip/Crypto/RandGen.cpp +0 -233
  431. package/android/jni/lzma/CPP/7zip/Crypto/RandGen.h +0 -40
  432. package/android/jni/lzma/CPP/7zip/Crypto/StdAfx.h +0 -8
  433. package/android/jni/lzma/CPP/7zip/GuiCommon.rc +0 -84
  434. package/android/jni/lzma/CPP/7zip/Guid.txt +0 -220
  435. package/android/jni/lzma/CPP/7zip/ICoder.h +0 -399
  436. package/android/jni/lzma/CPP/7zip/IDecl.h +0 -28
  437. package/android/jni/lzma/CPP/7zip/IPassword.h +0 -23
  438. package/android/jni/lzma/CPP/7zip/IProgress.h +0 -19
  439. package/android/jni/lzma/CPP/7zip/IStream.h +0 -127
  440. package/android/jni/lzma/CPP/7zip/LzmaDec.mak +0 -5
  441. package/android/jni/lzma/CPP/7zip/MyVersion.h +0 -2
  442. package/android/jni/lzma/CPP/7zip/MyVersionInfo.rc +0 -2
  443. package/android/jni/lzma/CPP/7zip/PropID.h +0 -127
  444. package/android/jni/lzma/CPP/7zip/SubBuild.mak +0 -3
  445. package/android/jni/lzma/CPP/7zip/UI/Client7z/Client7z.cpp +0 -993
  446. package/android/jni/lzma/CPP/7zip/UI/Client7z/Client7z.dsp +0 -235
  447. package/android/jni/lzma/CPP/7zip/UI/Client7z/Client7z.dsw +0 -29
  448. package/android/jni/lzma/CPP/7zip/UI/Client7z/StdAfx.cpp +0 -3
  449. package/android/jni/lzma/CPP/7zip/UI/Client7z/StdAfx.h +0 -8
  450. package/android/jni/lzma/CPP/7zip/UI/Client7z/makefile +0 -28
  451. package/android/jni/lzma/CPP/7zip/UI/Client7z/resource.rc +0 -3
  452. package/android/jni/lzma/CPP/7zip/UI/Common/ArchiveCommandLine.cpp +0 -1295
  453. package/android/jni/lzma/CPP/7zip/UI/Common/ArchiveCommandLine.h +0 -136
  454. package/android/jni/lzma/CPP/7zip/UI/Common/ArchiveExtractCallback.cpp +0 -1715
  455. package/android/jni/lzma/CPP/7zip/UI/Common/ArchiveExtractCallback.h +0 -403
  456. package/android/jni/lzma/CPP/7zip/UI/Common/ArchiveName.cpp +0 -155
  457. package/android/jni/lzma/CPP/7zip/UI/Common/ArchiveName.h +0 -10
  458. package/android/jni/lzma/CPP/7zip/UI/Common/ArchiveOpenCallback.cpp +0 -161
  459. package/android/jni/lzma/CPP/7zip/UI/Common/ArchiveOpenCallback.h +0 -112
  460. package/android/jni/lzma/CPP/7zip/UI/Common/Bench.cpp +0 -3618
  461. package/android/jni/lzma/CPP/7zip/UI/Common/Bench.h +0 -77
  462. package/android/jni/lzma/CPP/7zip/UI/Common/DefaultName.cpp +0 -37
  463. package/android/jni/lzma/CPP/7zip/UI/Common/DefaultName.h +0 -11
  464. package/android/jni/lzma/CPP/7zip/UI/Common/DirItem.h +0 -190
  465. package/android/jni/lzma/CPP/7zip/UI/Common/EnumDirItems.cpp +0 -1096
  466. package/android/jni/lzma/CPP/7zip/UI/Common/EnumDirItems.h +0 -42
  467. package/android/jni/lzma/CPP/7zip/UI/Common/ExitCode.h +0 -27
  468. package/android/jni/lzma/CPP/7zip/UI/Common/Extract.cpp +0 -482
  469. package/android/jni/lzma/CPP/7zip/UI/Common/Extract.h +0 -94
  470. package/android/jni/lzma/CPP/7zip/UI/Common/ExtractMode.h +0 -34
  471. package/android/jni/lzma/CPP/7zip/UI/Common/ExtractingFilePath.cpp +0 -280
  472. package/android/jni/lzma/CPP/7zip/UI/Common/ExtractingFilePath.h +0 -31
  473. package/android/jni/lzma/CPP/7zip/UI/Common/HashCalc.cpp +0 -347
  474. package/android/jni/lzma/CPP/7zip/UI/Common/HashCalc.h +0 -110
  475. package/android/jni/lzma/CPP/7zip/UI/Common/IFileExtractCallback.h +0 -114
  476. package/android/jni/lzma/CPP/7zip/UI/Common/LoadCodecs.cpp +0 -1074
  477. package/android/jni/lzma/CPP/7zip/UI/Common/LoadCodecs.h +0 -424
  478. package/android/jni/lzma/CPP/7zip/UI/Common/OpenArchive.cpp +0 -3553
  479. package/android/jni/lzma/CPP/7zip/UI/Common/OpenArchive.h +0 -436
  480. package/android/jni/lzma/CPP/7zip/UI/Common/PropIDUtils.cpp +0 -668
  481. package/android/jni/lzma/CPP/7zip/UI/Common/PropIDUtils.h +0 -18
  482. package/android/jni/lzma/CPP/7zip/UI/Common/Property.h +0 -14
  483. package/android/jni/lzma/CPP/7zip/UI/Common/SetProperties.cpp +0 -80
  484. package/android/jni/lzma/CPP/7zip/UI/Common/SetProperties.h +0 -10
  485. package/android/jni/lzma/CPP/7zip/UI/Common/SortUtils.cpp +0 -25
  486. package/android/jni/lzma/CPP/7zip/UI/Common/SortUtils.h +0 -10
  487. package/android/jni/lzma/CPP/7zip/UI/Common/StdAfx.h +0 -8
  488. package/android/jni/lzma/CPP/7zip/UI/Common/TempFiles.cpp +0 -19
  489. package/android/jni/lzma/CPP/7zip/UI/Common/TempFiles.h +0 -16
  490. package/android/jni/lzma/CPP/7zip/UI/Common/Update.cpp +0 -1704
  491. package/android/jni/lzma/CPP/7zip/UI/Common/Update.h +0 -200
  492. package/android/jni/lzma/CPP/7zip/UI/Common/UpdateAction.cpp +0 -64
  493. package/android/jni/lzma/CPP/7zip/UI/Common/UpdateAction.h +0 -66
  494. package/android/jni/lzma/CPP/7zip/UI/Common/UpdateCallback.cpp +0 -771
  495. package/android/jni/lzma/CPP/7zip/UI/Common/UpdateCallback.h +0 -162
  496. package/android/jni/lzma/CPP/7zip/UI/Common/UpdatePair.cpp +0 -233
  497. package/android/jni/lzma/CPP/7zip/UI/Common/UpdatePair.h +0 -27
  498. package/android/jni/lzma/CPP/7zip/UI/Common/UpdateProduce.cpp +0 -70
  499. package/android/jni/lzma/CPP/7zip/UI/Common/UpdateProduce.h +0 -55
  500. package/android/jni/lzma/CPP/7zip/UI/Common/WorkDir.cpp +0 -94
  501. package/android/jni/lzma/CPP/7zip/UI/Common/WorkDir.h +0 -26
  502. package/android/jni/lzma/CPP/7zip/UI/Common/ZipRegistry.h +0 -130
  503. package/android/jni/lzma/CPP/7zip/UI/Console/BenchCon.cpp +0 -41
  504. package/android/jni/lzma/CPP/7zip/UI/Console/BenchCon.h +0 -14
  505. package/android/jni/lzma/CPP/7zip/UI/Console/Console.mak +0 -43
  506. package/android/jni/lzma/CPP/7zip/UI/Console/Console.manifest +0 -13
  507. package/android/jni/lzma/CPP/7zip/UI/Console/ConsoleClose.cpp +0 -69
  508. package/android/jni/lzma/CPP/7zip/UI/Console/ConsoleClose.h +0 -33
  509. package/android/jni/lzma/CPP/7zip/UI/Console/ExtractCallbackConsole.cpp +0 -825
  510. package/android/jni/lzma/CPP/7zip/UI/Console/ExtractCallbackConsole.h +0 -164
  511. package/android/jni/lzma/CPP/7zip/UI/Console/HashCon.cpp +0 -367
  512. package/android/jni/lzma/CPP/7zip/UI/Console/HashCon.h +0 -48
  513. package/android/jni/lzma/CPP/7zip/UI/Console/List.cpp +0 -1359
  514. package/android/jni/lzma/CPP/7zip/UI/Console/List.h +0 -27
  515. package/android/jni/lzma/CPP/7zip/UI/Console/Main.cpp +0 -1154
  516. package/android/jni/lzma/CPP/7zip/UI/Console/MainAr.cpp +0 -175
  517. package/android/jni/lzma/CPP/7zip/UI/Console/OpenCallbackConsole.cpp +0 -115
  518. package/android/jni/lzma/CPP/7zip/UI/Console/OpenCallbackConsole.h +0 -66
  519. package/android/jni/lzma/CPP/7zip/UI/Console/PercentPrinter.cpp +0 -183
  520. package/android/jni/lzma/CPP/7zip/UI/Console/PercentPrinter.h +0 -62
  521. package/android/jni/lzma/CPP/7zip/UI/Console/StdAfx.cpp +0 -3
  522. package/android/jni/lzma/CPP/7zip/UI/Console/StdAfx.h +0 -8
  523. package/android/jni/lzma/CPP/7zip/UI/Console/UpdateCallbackConsole.cpp +0 -702
  524. package/android/jni/lzma/CPP/7zip/UI/Console/UpdateCallbackConsole.h +0 -124
  525. package/android/jni/lzma/CPP/7zip/UI/Console/UserInputUtils.cpp +0 -110
  526. package/android/jni/lzma/CPP/7zip/UI/Console/UserInputUtils.h +0 -27
  527. package/android/jni/lzma/CPP/7zip/UI/Console/makefile +0 -64
  528. package/android/jni/lzma/CPP/7zip/UI/Console/resource.rc +0 -7
  529. package/android/jni/lzma/CPP/7zip/UI/Explorer/MyMessages.cpp +0 -37
  530. package/android/jni/lzma/CPP/7zip/UI/Explorer/MyMessages.h +0 -16
  531. package/android/jni/lzma/CPP/7zip/UI/FileManager/BrowseDialog.cpp +0 -1025
  532. package/android/jni/lzma/CPP/7zip/UI/FileManager/BrowseDialog.h +0 -21
  533. package/android/jni/lzma/CPP/7zip/UI/FileManager/BrowseDialogRes.h +0 -9
  534. package/android/jni/lzma/CPP/7zip/UI/FileManager/ComboDialog.cpp +0 -64
  535. package/android/jni/lzma/CPP/7zip/UI/FileManager/ComboDialog.h +0 -28
  536. package/android/jni/lzma/CPP/7zip/UI/FileManager/ComboDialogRes.h +0 -4
  537. package/android/jni/lzma/CPP/7zip/UI/FileManager/DialogSize.h +0 -16
  538. package/android/jni/lzma/CPP/7zip/UI/FileManager/ExtractCallback.cpp +0 -1037
  539. package/android/jni/lzma/CPP/7zip/UI/FileManager/ExtractCallback.h +0 -328
  540. package/android/jni/lzma/CPP/7zip/UI/FileManager/FormatUtils.cpp +0 -28
  541. package/android/jni/lzma/CPP/7zip/UI/FileManager/FormatUtils.h +0 -14
  542. package/android/jni/lzma/CPP/7zip/UI/FileManager/LangUtils.h +0 -40
  543. package/android/jni/lzma/CPP/7zip/UI/FileManager/MyWindowsNew.h +0 -76
  544. package/android/jni/lzma/CPP/7zip/UI/FileManager/OverwriteDialog.cpp +0 -122
  545. package/android/jni/lzma/CPP/7zip/UI/FileManager/OverwriteDialog.h +0 -69
  546. package/android/jni/lzma/CPP/7zip/UI/FileManager/OverwriteDialog.rc +0 -91
  547. package/android/jni/lzma/CPP/7zip/UI/FileManager/OverwriteDialogRes.h +0 -17
  548. package/android/jni/lzma/CPP/7zip/UI/FileManager/PasswordDialog.cpp +0 -58
  549. package/android/jni/lzma/CPP/7zip/UI/FileManager/PasswordDialog.h +0 -28
  550. package/android/jni/lzma/CPP/7zip/UI/FileManager/PasswordDialog.rc +0 -14
  551. package/android/jni/lzma/CPP/7zip/UI/FileManager/PasswordDialogRes.h +0 -5
  552. package/android/jni/lzma/CPP/7zip/UI/FileManager/ProgressDialog.cpp +0 -196
  553. package/android/jni/lzma/CPP/7zip/UI/FileManager/ProgressDialog.h +0 -170
  554. package/android/jni/lzma/CPP/7zip/UI/FileManager/ProgressDialog.rc +0 -12
  555. package/android/jni/lzma/CPP/7zip/UI/FileManager/ProgressDialog2.cpp +0 -1337
  556. package/android/jni/lzma/CPP/7zip/UI/FileManager/ProgressDialog2.h +0 -351
  557. package/android/jni/lzma/CPP/7zip/UI/FileManager/ProgressDialog2.rc +0 -40
  558. package/android/jni/lzma/CPP/7zip/UI/FileManager/ProgressDialog2Res.h +0 -48
  559. package/android/jni/lzma/CPP/7zip/UI/FileManager/ProgressDialog2a.rc +0 -80
  560. package/android/jni/lzma/CPP/7zip/UI/FileManager/ProgressDialogRes.h +0 -3
  561. package/android/jni/lzma/CPP/7zip/UI/FileManager/PropertyName.cpp +0 -23
  562. package/android/jni/lzma/CPP/7zip/UI/FileManager/PropertyName.h +0 -10
  563. package/android/jni/lzma/CPP/7zip/UI/FileManager/PropertyNameRes.h +0 -95
  564. package/android/jni/lzma/CPP/7zip/UI/FileManager/SysIconUtils.cpp +0 -255
  565. package/android/jni/lzma/CPP/7zip/UI/FileManager/SysIconUtils.h +0 -62
  566. package/android/jni/lzma/CPP/7zip/UI/FileManager/resource.h +0 -177
  567. package/android/jni/lzma/CPP/7zip/UI/FileManager/resourceGui.h +0 -15
  568. package/android/jni/lzma/CPP/7zip/UI/GUI/Extract.rc +0 -59
  569. package/android/jni/lzma/CPP/7zip/UI/GUI/ExtractDialog.cpp +0 -418
  570. package/android/jni/lzma/CPP/7zip/UI/GUI/ExtractDialog.h +0 -113
  571. package/android/jni/lzma/CPP/7zip/UI/GUI/ExtractDialog.rc +0 -98
  572. package/android/jni/lzma/CPP/7zip/UI/GUI/ExtractDialogRes.h +0 -24
  573. package/android/jni/lzma/CPP/7zip/UI/GUI/ExtractGUI.cpp +0 -280
  574. package/android/jni/lzma/CPP/7zip/UI/GUI/ExtractGUI.h +0 -38
  575. package/android/jni/lzma/CPP/7zip/UI/GUI/ExtractRes.h +0 -51
  576. package/android/jni/lzma/CPP/7zip/UI/GUI/HashGUI.h +0 -27
  577. package/android/jni/lzma/CPP/7zip/UI/GUI/resource2.h +0 -2
  578. package/android/jni/lzma/CPP/Build.mak +0 -156
  579. package/android/jni/lzma/CPP/Common/AutoPtr.h +0 -35
  580. package/android/jni/lzma/CPP/Common/CRC.cpp +0 -7
  581. package/android/jni/lzma/CPP/Common/C_FileIO.cpp +0 -92
  582. package/android/jni/lzma/CPP/Common/C_FileIO.h +0 -53
  583. package/android/jni/lzma/CPP/Common/ComTry.h +0 -21
  584. package/android/jni/lzma/CPP/Common/CommandLineParser.cpp +0 -197
  585. package/android/jni/lzma/CPP/Common/CommandLineParser.h +0 -63
  586. package/android/jni/lzma/CPP/Common/Common.h +0 -43
  587. package/android/jni/lzma/CPP/Common/CrcReg.cpp +0 -98
  588. package/android/jni/lzma/CPP/Common/Defs.h +0 -15
  589. package/android/jni/lzma/CPP/Common/DynamicBuffer.h +0 -64
  590. package/android/jni/lzma/CPP/Common/IntToString.cpp +0 -193
  591. package/android/jni/lzma/CPP/Common/IntToString.h +0 -28
  592. package/android/jni/lzma/CPP/Common/Lang.h +0 -23
  593. package/android/jni/lzma/CPP/Common/ListFileUtils.cpp +0 -132
  594. package/android/jni/lzma/CPP/Common/ListFileUtils.h +0 -18
  595. package/android/jni/lzma/CPP/Common/MyBuffer.h +0 -259
  596. package/android/jni/lzma/CPP/Common/MyBuffer2.h +0 -100
  597. package/android/jni/lzma/CPP/Common/MyCom.h +0 -277
  598. package/android/jni/lzma/CPP/Common/MyException.h +0 -14
  599. package/android/jni/lzma/CPP/Common/MyGuidDef.h +0 -54
  600. package/android/jni/lzma/CPP/Common/MyInitGuid.h +0 -45
  601. package/android/jni/lzma/CPP/Common/MyLinux.h +0 -42
  602. package/android/jni/lzma/CPP/Common/MyString.cpp +0 -1659
  603. package/android/jni/lzma/CPP/Common/MyString.h +0 -868
  604. package/android/jni/lzma/CPP/Common/MyTypes.h +0 -35
  605. package/android/jni/lzma/CPP/Common/MyUnknown.h +0 -17
  606. package/android/jni/lzma/CPP/Common/MyVector.cpp +0 -3
  607. package/android/jni/lzma/CPP/Common/MyVector.h +0 -634
  608. package/android/jni/lzma/CPP/Common/MyWindows.cpp +0 -145
  609. package/android/jni/lzma/CPP/Common/MyWindows.h +0 -231
  610. package/android/jni/lzma/CPP/Common/NewHandler.cpp +0 -163
  611. package/android/jni/lzma/CPP/Common/NewHandler.h +0 -88
  612. package/android/jni/lzma/CPP/Common/Sha256Reg.cpp +0 -40
  613. package/android/jni/lzma/CPP/Common/StdAfx.h +0 -8
  614. package/android/jni/lzma/CPP/Common/StdInStream.cpp +0 -89
  615. package/android/jni/lzma/CPP/Common/StdInStream.h +0 -38
  616. package/android/jni/lzma/CPP/Common/StdOutStream.cpp +0 -163
  617. package/android/jni/lzma/CPP/Common/StdOutStream.h +0 -71
  618. package/android/jni/lzma/CPP/Common/StringConvert.cpp +0 -319
  619. package/android/jni/lzma/CPP/Common/StringConvert.h +0 -88
  620. package/android/jni/lzma/CPP/Common/StringToInt.cpp +0 -144
  621. package/android/jni/lzma/CPP/Common/StringToInt.h +0 -21
  622. package/android/jni/lzma/CPP/Common/TextConfig.cpp +0 -124
  623. package/android/jni/lzma/CPP/Common/TextConfig.h +0 -19
  624. package/android/jni/lzma/CPP/Common/UTFConvert.cpp +0 -288
  625. package/android/jni/lzma/CPP/Common/UTFConvert.h +0 -12
  626. package/android/jni/lzma/CPP/Common/Wildcard.cpp +0 -676
  627. package/android/jni/lzma/CPP/Common/Wildcard.h +0 -149
  628. package/android/jni/lzma/CPP/Common/XzCrc64Init.cpp +0 -7
  629. package/android/jni/lzma/CPP/Common/XzCrc64Reg.cpp +0 -42
  630. package/android/jni/lzma/CPP/Windows/COM.h +0 -70
  631. package/android/jni/lzma/CPP/Windows/CommonDialog.cpp +0 -185
  632. package/android/jni/lzma/CPP/Windows/CommonDialog.h +0 -23
  633. package/android/jni/lzma/CPP/Windows/Control/ComboBox.cpp +0 -66
  634. package/android/jni/lzma/CPP/Windows/Control/ComboBox.h +0 -65
  635. package/android/jni/lzma/CPP/Windows/Control/CommandBar.h +0 -52
  636. package/android/jni/lzma/CPP/Windows/Control/Dialog.cpp +0 -251
  637. package/android/jni/lzma/CPP/Windows/Control/Dialog.h +0 -170
  638. package/android/jni/lzma/CPP/Windows/Control/Edit.h +0 -19
  639. package/android/jni/lzma/CPP/Windows/Control/ImageList.cpp +0 -10
  640. package/android/jni/lzma/CPP/Windows/Control/ImageList.h +0 -87
  641. package/android/jni/lzma/CPP/Windows/Control/ListView.cpp +0 -155
  642. package/android/jni/lzma/CPP/Windows/Control/ListView.h +0 -146
  643. package/android/jni/lzma/CPP/Windows/Control/ProgressBar.h +0 -35
  644. package/android/jni/lzma/CPP/Windows/Control/PropertyPage.cpp +0 -143
  645. package/android/jni/lzma/CPP/Windows/Control/PropertyPage.h +0 -50
  646. package/android/jni/lzma/CPP/Windows/Control/ReBar.h +0 -34
  647. package/android/jni/lzma/CPP/Windows/Control/Static.h +0 -28
  648. package/android/jni/lzma/CPP/Windows/Control/StatusBar.h +0 -42
  649. package/android/jni/lzma/CPP/Windows/Control/StdAfx.h +0 -8
  650. package/android/jni/lzma/CPP/Windows/Control/ToolBar.h +0 -43
  651. package/android/jni/lzma/CPP/Windows/Control/Trackbar.h +0 -27
  652. package/android/jni/lzma/CPP/Windows/Control/Window2.cpp +0 -200
  653. package/android/jni/lzma/CPP/Windows/Control/Window2.h +0 -51
  654. package/android/jni/lzma/CPP/Windows/DLL.cpp +0 -109
  655. package/android/jni/lzma/CPP/Windows/DLL.h +0 -58
  656. package/android/jni/lzma/CPP/Windows/Defs.h +0 -17
  657. package/android/jni/lzma/CPP/Windows/ErrorMsg.cpp +0 -66
  658. package/android/jni/lzma/CPP/Windows/ErrorMsg.h +0 -15
  659. package/android/jni/lzma/CPP/Windows/FileDir.cpp +0 -714
  660. package/android/jni/lzma/CPP/Windows/FileDir.h +0 -117
  661. package/android/jni/lzma/CPP/Windows/FileFind.cpp +0 -749
  662. package/android/jni/lzma/CPP/Windows/FileFind.h +0 -161
  663. package/android/jni/lzma/CPP/Windows/FileIO.cpp +0 -432
  664. package/android/jni/lzma/CPP/Windows/FileIO.h +0 -212
  665. package/android/jni/lzma/CPP/Windows/FileLink.cpp +0 -440
  666. package/android/jni/lzma/CPP/Windows/FileMapping.cpp +0 -12
  667. package/android/jni/lzma/CPP/Windows/FileMapping.h +0 -66
  668. package/android/jni/lzma/CPP/Windows/FileName.cpp +0 -839
  669. package/android/jni/lzma/CPP/Windows/FileName.h +0 -115
  670. package/android/jni/lzma/CPP/Windows/FileSystem.cpp +0 -131
  671. package/android/jni/lzma/CPP/Windows/FileSystem.h +0 -27
  672. package/android/jni/lzma/CPP/Windows/Handle.h +0 -37
  673. package/android/jni/lzma/CPP/Windows/MemoryLock.cpp +0 -112
  674. package/android/jni/lzma/CPP/Windows/MemoryLock.h +0 -40
  675. package/android/jni/lzma/CPP/Windows/NtCheck.h +0 -46
  676. package/android/jni/lzma/CPP/Windows/PropVariant.cpp +0 -347
  677. package/android/jni/lzma/CPP/Windows/PropVariant.h +0 -114
  678. package/android/jni/lzma/CPP/Windows/PropVariantConv.cpp +0 -138
  679. package/android/jni/lzma/CPP/Windows/PropVariantConv.h +0 -37
  680. package/android/jni/lzma/CPP/Windows/Registry.cpp +0 -390
  681. package/android/jni/lzma/CPP/Windows/Registry.h +0 -84
  682. package/android/jni/lzma/CPP/Windows/ResourceString.cpp +0 -103
  683. package/android/jni/lzma/CPP/Windows/ResourceString.h +0 -16
  684. package/android/jni/lzma/CPP/Windows/SecurityUtils.cpp +0 -181
  685. package/android/jni/lzma/CPP/Windows/SecurityUtils.h +0 -167
  686. package/android/jni/lzma/CPP/Windows/Shell.cpp +0 -358
  687. package/android/jni/lzma/CPP/Windows/Shell.h +0 -94
  688. package/android/jni/lzma/CPP/Windows/StdAfx.h +0 -8
  689. package/android/jni/lzma/CPP/Windows/Synchronization.cpp +0 -10
  690. package/android/jni/lzma/CPP/Windows/Synchronization.h +0 -164
  691. package/android/jni/lzma/CPP/Windows/System.cpp +0 -142
  692. package/android/jni/lzma/CPP/Windows/System.h +0 -40
  693. package/android/jni/lzma/CPP/Windows/Thread.h +0 -38
  694. package/android/jni/lzma/CPP/Windows/TimeUtils.cpp +0 -213
  695. package/android/jni/lzma/CPP/Windows/TimeUtils.h +0 -32
  696. package/android/jni/lzma/CPP/Windows/Window.cpp +0 -179
  697. package/android/jni/lzma/CPP/Windows/Window.h +0 -284
  698. package/android/jni/lzma/CS/7zip/Common/CRC.cs +0 -55
  699. package/android/jni/lzma/CS/7zip/Common/CommandLineParser.cs +0 -274
  700. package/android/jni/lzma/CS/7zip/Common/InBuffer.cs +0 -72
  701. package/android/jni/lzma/CS/7zip/Common/OutBuffer.cs +0 -47
  702. package/android/jni/lzma/CS/7zip/Compress/LZ/IMatchFinder.cs +0 -24
  703. package/android/jni/lzma/CS/7zip/Compress/LZ/LzBinTree.cs +0 -367
  704. package/android/jni/lzma/CS/7zip/Compress/LZ/LzInWindow.cs +0 -132
  705. package/android/jni/lzma/CS/7zip/Compress/LZ/LzOutWindow.cs +0 -110
  706. package/android/jni/lzma/CS/7zip/Compress/LZMA/LzmaBase.cs +0 -76
  707. package/android/jni/lzma/CS/7zip/Compress/LZMA/LzmaDecoder.cs +0 -398
  708. package/android/jni/lzma/CS/7zip/Compress/LZMA/LzmaEncoder.cs +0 -1480
  709. package/android/jni/lzma/CS/7zip/Compress/LzmaAlone/LzmaAlone.cs +0 -364
  710. package/android/jni/lzma/CS/7zip/Compress/LzmaAlone/LzmaAlone.csproj +0 -90
  711. package/android/jni/lzma/CS/7zip/Compress/LzmaAlone/LzmaAlone.sln +0 -20
  712. package/android/jni/lzma/CS/7zip/Compress/LzmaAlone/LzmaBench.cs +0 -340
  713. package/android/jni/lzma/CS/7zip/Compress/LzmaAlone/Properties/AssemblyInfo.cs +0 -29
  714. package/android/jni/lzma/CS/7zip/Compress/LzmaAlone/Properties/Resources.cs +0 -70
  715. package/android/jni/lzma/CS/7zip/Compress/LzmaAlone/Properties/Settings.cs +0 -42
  716. package/android/jni/lzma/CS/7zip/Compress/RangeCoder/RangeCoder.cs +0 -234
  717. package/android/jni/lzma/CS/7zip/Compress/RangeCoder/RangeCoderBit.cs +0 -117
  718. package/android/jni/lzma/CS/7zip/Compress/RangeCoder/RangeCoderBitTree.cs +0 -157
  719. package/android/jni/lzma/CS/7zip/ICoder.cs +0 -157
  720. package/android/jni/lzma/DOC/7zC.txt +0 -187
  721. package/android/jni/lzma/DOC/7zFormat.txt +0 -469
  722. package/android/jni/lzma/DOC/Methods.txt +0 -173
  723. package/android/jni/lzma/DOC/installer.txt +0 -166
  724. package/android/jni/lzma/DOC/lzma-history.txt +0 -446
  725. package/android/jni/lzma/DOC/lzma-sdk.txt +0 -357
  726. package/android/jni/lzma/DOC/lzma-specification.txt +0 -1176
  727. package/android/jni/lzma/DOC/lzma.txt +0 -328
  728. package/android/jni/lzma/Java/SevenZip/CRC.java +0 -52
  729. package/android/jni/lzma/Java/SevenZip/Compression/LZ/BinTree.java +0 -382
  730. package/android/jni/lzma/Java/SevenZip/Compression/LZ/InWindow.java +0 -131
  731. package/android/jni/lzma/Java/SevenZip/Compression/LZ/OutWindow.java +0 -85
  732. package/android/jni/lzma/Java/SevenZip/Compression/LZMA/Base.java +0 -88
  733. package/android/jni/lzma/Java/SevenZip/Compression/LZMA/Decoder.java +0 -329
  734. package/android/jni/lzma/Java/SevenZip/Compression/LZMA/Encoder.java +0 -1416
  735. package/android/jni/lzma/Java/SevenZip/Compression/RangeCoder/BitTreeDecoder.java +0 -55
  736. package/android/jni/lzma/Java/SevenZip/Compression/RangeCoder/BitTreeEncoder.java +0 -99
  737. package/android/jni/lzma/Java/SevenZip/Compression/RangeCoder/Decoder.java +0 -88
  738. package/android/jni/lzma/Java/SevenZip/Compression/RangeCoder/Encoder.java +0 -151
  739. package/android/jni/lzma/Java/SevenZip/ICodeProgress.java +0 -6
  740. package/android/jni/lzma/Java/SevenZip/LzmaAlone.java +0 -253
  741. package/android/jni/lzma/Java/SevenZip/LzmaBench.java +0 -392
  742. package/android/jni/lzma/bin/7zS2.sfx +0 -0
  743. package/android/jni/lzma/bin/7zS2con.sfx +0 -0
  744. package/android/jni/lzma/bin/7zSD.sfx +0 -0
  745. package/android/jni/lzma/bin/7zdec.exe +0 -0
  746. package/android/jni/lzma/bin/7zr.exe +0 -0
  747. package/android/jni/lzma/bin/installer/config.txt +0 -5
  748. package/android/jni/lzma/bin/installer/cr.bat +0 -5
  749. package/android/jni/lzma/bin/lzma.exe +0 -0
  750. package/android/jni/lzma/bin/x64/7zr.exe +0 -0
@@ -1,1771 +0,0 @@
1
- /* 7zArcIn.c -- 7z Input functions
2
- 2018-12-31 : Igor Pavlov : Public domain */
3
-
4
- #include "Precomp.h"
5
-
6
- #include <string.h>
7
-
8
- #include "7z.h"
9
- #include "7zBuf.h"
10
- #include "7zCrc.h"
11
- #include "CpuArch.h"
12
-
13
- #define MY_ALLOC(T, p, size, alloc) { \
14
- if ((p = (T *)ISzAlloc_Alloc(alloc, (size) * sizeof(T))) == NULL) return SZ_ERROR_MEM; }
15
-
16
- #define MY_ALLOC_ZE(T, p, size, alloc) { if ((size) == 0) p = NULL; else MY_ALLOC(T, p, size, alloc) }
17
-
18
- #define MY_ALLOC_AND_CPY(to, size, from, alloc) \
19
- { MY_ALLOC(Byte, to, size, alloc); memcpy(to, from, size); }
20
-
21
- #define MY_ALLOC_ZE_AND_CPY(to, size, from, alloc) \
22
- { if ((size) == 0) to = NULL; else { MY_ALLOC_AND_CPY(to, size, from, alloc) } }
23
-
24
- #define k7zMajorVersion 0
25
-
26
- enum EIdEnum
27
- {
28
- k7zIdEnd,
29
- k7zIdHeader,
30
- k7zIdArchiveProperties,
31
- k7zIdAdditionalStreamsInfo,
32
- k7zIdMainStreamsInfo,
33
- k7zIdFilesInfo,
34
- k7zIdPackInfo,
35
- k7zIdUnpackInfo,
36
- k7zIdSubStreamsInfo,
37
- k7zIdSize,
38
- k7zIdCRC,
39
- k7zIdFolder,
40
- k7zIdCodersUnpackSize,
41
- k7zIdNumUnpackStream,
42
- k7zIdEmptyStream,
43
- k7zIdEmptyFile,
44
- k7zIdAnti,
45
- k7zIdName,
46
- k7zIdCTime,
47
- k7zIdATime,
48
- k7zIdMTime,
49
- k7zIdWinAttrib,
50
- k7zIdComment,
51
- k7zIdEncodedHeader,
52
- k7zIdStartPos,
53
- k7zIdDummy
54
- // k7zNtSecure,
55
- // k7zParent,
56
- // k7zIsReal
57
- };
58
-
59
- const Byte k7zSignature[k7zSignatureSize] = {'7', 'z', 0xBC, 0xAF, 0x27, 0x1C};
60
-
61
- #define SzBitUi32s_Init(p) { (p)->Defs = NULL; (p)->Vals = NULL; }
62
-
63
- static SRes SzBitUi32s_Alloc(CSzBitUi32s *p, size_t num, ISzAllocPtr alloc)
64
- {
65
- if (num == 0)
66
- {
67
- p->Defs = NULL;
68
- p->Vals = NULL;
69
- }
70
- else
71
- {
72
- MY_ALLOC(Byte, p->Defs, (num + 7) >> 3, alloc);
73
- MY_ALLOC(UInt32, p->Vals, num, alloc);
74
- }
75
- return SZ_OK;
76
- }
77
-
78
- void SzBitUi32s_Free(CSzBitUi32s *p, ISzAllocPtr alloc)
79
- {
80
- ISzAlloc_Free(alloc, p->Defs); p->Defs = NULL;
81
- ISzAlloc_Free(alloc, p->Vals); p->Vals = NULL;
82
- }
83
-
84
- #define SzBitUi64s_Init(p) { (p)->Defs = NULL; (p)->Vals = NULL; }
85
-
86
- void SzBitUi64s_Free(CSzBitUi64s *p, ISzAllocPtr alloc)
87
- {
88
- ISzAlloc_Free(alloc, p->Defs); p->Defs = NULL;
89
- ISzAlloc_Free(alloc, p->Vals); p->Vals = NULL;
90
- }
91
-
92
-
93
- static void SzAr_Init(CSzAr *p)
94
- {
95
- p->NumPackStreams = 0;
96
- p->NumFolders = 0;
97
-
98
- p->PackPositions = NULL;
99
- SzBitUi32s_Init(&p->FolderCRCs);
100
-
101
- p->FoCodersOffsets = NULL;
102
- p->FoStartPackStreamIndex = NULL;
103
- p->FoToCoderUnpackSizes = NULL;
104
- p->FoToMainUnpackSizeIndex = NULL;
105
- p->CoderUnpackSizes = NULL;
106
-
107
- p->CodersData = NULL;
108
- }
109
-
110
- static void SzAr_Free(CSzAr *p, ISzAllocPtr alloc)
111
- {
112
- ISzAlloc_Free(alloc, p->PackPositions);
113
- SzBitUi32s_Free(&p->FolderCRCs, alloc);
114
-
115
- ISzAlloc_Free(alloc, p->FoCodersOffsets);
116
- ISzAlloc_Free(alloc, p->FoStartPackStreamIndex);
117
- ISzAlloc_Free(alloc, p->FoToCoderUnpackSizes);
118
- ISzAlloc_Free(alloc, p->FoToMainUnpackSizeIndex);
119
- ISzAlloc_Free(alloc, p->CoderUnpackSizes);
120
-
121
- ISzAlloc_Free(alloc, p->CodersData);
122
-
123
- SzAr_Init(p);
124
- }
125
-
126
-
127
- void SzArEx_Init(CSzArEx *p)
128
- {
129
- SzAr_Init(&p->db);
130
-
131
- p->NumFiles = 0;
132
- p->dataPos = 0;
133
-
134
- p->UnpackPositions = NULL;
135
- p->IsDirs = NULL;
136
-
137
- p->FolderToFile = NULL;
138
- p->FileToFolder = NULL;
139
-
140
- p->FileNameOffsets = NULL;
141
- p->FileNames = NULL;
142
-
143
- SzBitUi32s_Init(&p->CRCs);
144
- SzBitUi32s_Init(&p->Attribs);
145
- // SzBitUi32s_Init(&p->Parents);
146
- SzBitUi64s_Init(&p->MTime);
147
- SzBitUi64s_Init(&p->CTime);
148
- }
149
-
150
- void SzArEx_Free(CSzArEx *p, ISzAllocPtr alloc)
151
- {
152
- ISzAlloc_Free(alloc, p->UnpackPositions);
153
- ISzAlloc_Free(alloc, p->IsDirs);
154
-
155
- ISzAlloc_Free(alloc, p->FolderToFile);
156
- ISzAlloc_Free(alloc, p->FileToFolder);
157
-
158
- ISzAlloc_Free(alloc, p->FileNameOffsets);
159
- ISzAlloc_Free(alloc, p->FileNames);
160
-
161
- SzBitUi32s_Free(&p->CRCs, alloc);
162
- SzBitUi32s_Free(&p->Attribs, alloc);
163
- // SzBitUi32s_Free(&p->Parents, alloc);
164
- SzBitUi64s_Free(&p->MTime, alloc);
165
- SzBitUi64s_Free(&p->CTime, alloc);
166
-
167
- SzAr_Free(&p->db, alloc);
168
- SzArEx_Init(p);
169
- }
170
-
171
-
172
- static int TestSignatureCandidate(const Byte *testBytes)
173
- {
174
- unsigned i;
175
- for (i = 0; i < k7zSignatureSize; i++)
176
- if (testBytes[i] != k7zSignature[i])
177
- return 0;
178
- return 1;
179
- }
180
-
181
- #define SzData_Clear(p) { (p)->Data = NULL; (p)->Size = 0; }
182
-
183
- #define SZ_READ_BYTE_SD(_sd_, dest) if ((_sd_)->Size == 0) return SZ_ERROR_ARCHIVE; (_sd_)->Size--; dest = *(_sd_)->Data++;
184
- #define SZ_READ_BYTE(dest) SZ_READ_BYTE_SD(sd, dest)
185
- #define SZ_READ_BYTE_2(dest) if (sd.Size == 0) return SZ_ERROR_ARCHIVE; sd.Size--; dest = *sd.Data++;
186
-
187
- #define SKIP_DATA(sd, size) { sd->Size -= (size_t)(size); sd->Data += (size_t)(size); }
188
- #define SKIP_DATA2(sd, size) { sd.Size -= (size_t)(size); sd.Data += (size_t)(size); }
189
-
190
- #define SZ_READ_32(dest) if (sd.Size < 4) return SZ_ERROR_ARCHIVE; \
191
- dest = GetUi32(sd.Data); SKIP_DATA2(sd, 4);
192
-
193
- static MY_NO_INLINE SRes ReadNumber(CSzData *sd, UInt64 *value)
194
- {
195
- Byte firstByte, mask;
196
- unsigned i;
197
- UInt32 v;
198
-
199
- SZ_READ_BYTE(firstByte);
200
- if ((firstByte & 0x80) == 0)
201
- {
202
- *value = firstByte;
203
- return SZ_OK;
204
- }
205
- SZ_READ_BYTE(v);
206
- if ((firstByte & 0x40) == 0)
207
- {
208
- *value = (((UInt32)firstByte & 0x3F) << 8) | v;
209
- return SZ_OK;
210
- }
211
- SZ_READ_BYTE(mask);
212
- *value = v | ((UInt32)mask << 8);
213
- mask = 0x20;
214
- for (i = 2; i < 8; i++)
215
- {
216
- Byte b;
217
- if ((firstByte & mask) == 0)
218
- {
219
- UInt64 highPart = (unsigned)firstByte & (unsigned)(mask - 1);
220
- *value |= (highPart << (8 * i));
221
- return SZ_OK;
222
- }
223
- SZ_READ_BYTE(b);
224
- *value |= ((UInt64)b << (8 * i));
225
- mask >>= 1;
226
- }
227
- return SZ_OK;
228
- }
229
-
230
-
231
- static MY_NO_INLINE SRes SzReadNumber32(CSzData *sd, UInt32 *value)
232
- {
233
- Byte firstByte;
234
- UInt64 value64;
235
- if (sd->Size == 0)
236
- return SZ_ERROR_ARCHIVE;
237
- firstByte = *sd->Data;
238
- if ((firstByte & 0x80) == 0)
239
- {
240
- *value = firstByte;
241
- sd->Data++;
242
- sd->Size--;
243
- return SZ_OK;
244
- }
245
- RINOK(ReadNumber(sd, &value64));
246
- if (value64 >= (UInt32)0x80000000 - 1)
247
- return SZ_ERROR_UNSUPPORTED;
248
- if (value64 >= ((UInt64)(1) << ((sizeof(size_t) - 1) * 8 + 4)))
249
- return SZ_ERROR_UNSUPPORTED;
250
- *value = (UInt32)value64;
251
- return SZ_OK;
252
- }
253
-
254
- #define ReadID(sd, value) ReadNumber(sd, value)
255
-
256
- static SRes SkipData(CSzData *sd)
257
- {
258
- UInt64 size;
259
- RINOK(ReadNumber(sd, &size));
260
- if (size > sd->Size)
261
- return SZ_ERROR_ARCHIVE;
262
- SKIP_DATA(sd, size);
263
- return SZ_OK;
264
- }
265
-
266
- static SRes WaitId(CSzData *sd, UInt32 id)
267
- {
268
- for (;;)
269
- {
270
- UInt64 type;
271
- RINOK(ReadID(sd, &type));
272
- if (type == id)
273
- return SZ_OK;
274
- if (type == k7zIdEnd)
275
- return SZ_ERROR_ARCHIVE;
276
- RINOK(SkipData(sd));
277
- }
278
- }
279
-
280
- static SRes RememberBitVector(CSzData *sd, UInt32 numItems, const Byte **v)
281
- {
282
- UInt32 numBytes = (numItems + 7) >> 3;
283
- if (numBytes > sd->Size)
284
- return SZ_ERROR_ARCHIVE;
285
- *v = sd->Data;
286
- SKIP_DATA(sd, numBytes);
287
- return SZ_OK;
288
- }
289
-
290
- static UInt32 CountDefinedBits(const Byte *bits, UInt32 numItems)
291
- {
292
- Byte b = 0;
293
- unsigned m = 0;
294
- UInt32 sum = 0;
295
- for (; numItems != 0; numItems--)
296
- {
297
- if (m == 0)
298
- {
299
- b = *bits++;
300
- m = 8;
301
- }
302
- m--;
303
- sum += ((b >> m) & 1);
304
- }
305
- return sum;
306
- }
307
-
308
- static MY_NO_INLINE SRes ReadBitVector(CSzData *sd, UInt32 numItems, Byte **v, ISzAllocPtr alloc)
309
- {
310
- Byte allAreDefined;
311
- Byte *v2;
312
- UInt32 numBytes = (numItems + 7) >> 3;
313
- *v = NULL;
314
- SZ_READ_BYTE(allAreDefined);
315
- if (numBytes == 0)
316
- return SZ_OK;
317
- if (allAreDefined == 0)
318
- {
319
- if (numBytes > sd->Size)
320
- return SZ_ERROR_ARCHIVE;
321
- MY_ALLOC_AND_CPY(*v, numBytes, sd->Data, alloc);
322
- SKIP_DATA(sd, numBytes);
323
- return SZ_OK;
324
- }
325
- MY_ALLOC(Byte, *v, numBytes, alloc);
326
- v2 = *v;
327
- memset(v2, 0xFF, (size_t)numBytes);
328
- {
329
- unsigned numBits = (unsigned)numItems & 7;
330
- if (numBits != 0)
331
- v2[(size_t)numBytes - 1] = (Byte)((((UInt32)1 << numBits) - 1) << (8 - numBits));
332
- }
333
- return SZ_OK;
334
- }
335
-
336
- static MY_NO_INLINE SRes ReadUi32s(CSzData *sd2, UInt32 numItems, CSzBitUi32s *crcs, ISzAllocPtr alloc)
337
- {
338
- UInt32 i;
339
- CSzData sd;
340
- UInt32 *vals;
341
- const Byte *defs;
342
- MY_ALLOC_ZE(UInt32, crcs->Vals, numItems, alloc);
343
- sd = *sd2;
344
- defs = crcs->Defs;
345
- vals = crcs->Vals;
346
- for (i = 0; i < numItems; i++)
347
- if (SzBitArray_Check(defs, i))
348
- {
349
- SZ_READ_32(vals[i]);
350
- }
351
- else
352
- vals[i] = 0;
353
- *sd2 = sd;
354
- return SZ_OK;
355
- }
356
-
357
- static SRes ReadBitUi32s(CSzData *sd, UInt32 numItems, CSzBitUi32s *crcs, ISzAllocPtr alloc)
358
- {
359
- SzBitUi32s_Free(crcs, alloc);
360
- RINOK(ReadBitVector(sd, numItems, &crcs->Defs, alloc));
361
- return ReadUi32s(sd, numItems, crcs, alloc);
362
- }
363
-
364
- static SRes SkipBitUi32s(CSzData *sd, UInt32 numItems)
365
- {
366
- Byte allAreDefined;
367
- UInt32 numDefined = numItems;
368
- SZ_READ_BYTE(allAreDefined);
369
- if (!allAreDefined)
370
- {
371
- size_t numBytes = (numItems + 7) >> 3;
372
- if (numBytes > sd->Size)
373
- return SZ_ERROR_ARCHIVE;
374
- numDefined = CountDefinedBits(sd->Data, numItems);
375
- SKIP_DATA(sd, numBytes);
376
- }
377
- if (numDefined > (sd->Size >> 2))
378
- return SZ_ERROR_ARCHIVE;
379
- SKIP_DATA(sd, (size_t)numDefined * 4);
380
- return SZ_OK;
381
- }
382
-
383
- static SRes ReadPackInfo(CSzAr *p, CSzData *sd, ISzAllocPtr alloc)
384
- {
385
- RINOK(SzReadNumber32(sd, &p->NumPackStreams));
386
-
387
- RINOK(WaitId(sd, k7zIdSize));
388
- MY_ALLOC(UInt64, p->PackPositions, (size_t)p->NumPackStreams + 1, alloc);
389
- {
390
- UInt64 sum = 0;
391
- UInt32 i;
392
- UInt32 numPackStreams = p->NumPackStreams;
393
- for (i = 0; i < numPackStreams; i++)
394
- {
395
- UInt64 packSize;
396
- p->PackPositions[i] = sum;
397
- RINOK(ReadNumber(sd, &packSize));
398
- sum += packSize;
399
- if (sum < packSize)
400
- return SZ_ERROR_ARCHIVE;
401
- }
402
- p->PackPositions[i] = sum;
403
- }
404
-
405
- for (;;)
406
- {
407
- UInt64 type;
408
- RINOK(ReadID(sd, &type));
409
- if (type == k7zIdEnd)
410
- return SZ_OK;
411
- if (type == k7zIdCRC)
412
- {
413
- /* CRC of packed streams is unused now */
414
- RINOK(SkipBitUi32s(sd, p->NumPackStreams));
415
- continue;
416
- }
417
- RINOK(SkipData(sd));
418
- }
419
- }
420
-
421
- /*
422
- static SRes SzReadSwitch(CSzData *sd)
423
- {
424
- Byte external;
425
- RINOK(SzReadByte(sd, &external));
426
- return (external == 0) ? SZ_OK: SZ_ERROR_UNSUPPORTED;
427
- }
428
- */
429
-
430
- #define k_NumCodersStreams_in_Folder_MAX (SZ_NUM_BONDS_IN_FOLDER_MAX + SZ_NUM_PACK_STREAMS_IN_FOLDER_MAX)
431
-
432
- SRes SzGetNextFolderItem(CSzFolder *f, CSzData *sd)
433
- {
434
- UInt32 numCoders, i;
435
- UInt32 numInStreams = 0;
436
- const Byte *dataStart = sd->Data;
437
-
438
- f->NumCoders = 0;
439
- f->NumBonds = 0;
440
- f->NumPackStreams = 0;
441
- f->UnpackStream = 0;
442
-
443
- RINOK(SzReadNumber32(sd, &numCoders));
444
- if (numCoders == 0 || numCoders > SZ_NUM_CODERS_IN_FOLDER_MAX)
445
- return SZ_ERROR_UNSUPPORTED;
446
-
447
- for (i = 0; i < numCoders; i++)
448
- {
449
- Byte mainByte;
450
- CSzCoderInfo *coder = f->Coders + i;
451
- unsigned idSize, j;
452
- UInt64 id;
453
-
454
- SZ_READ_BYTE(mainByte);
455
- if ((mainByte & 0xC0) != 0)
456
- return SZ_ERROR_UNSUPPORTED;
457
-
458
- idSize = (unsigned)(mainByte & 0xF);
459
- if (idSize > sizeof(id))
460
- return SZ_ERROR_UNSUPPORTED;
461
- if (idSize > sd->Size)
462
- return SZ_ERROR_ARCHIVE;
463
- id = 0;
464
- for (j = 0; j < idSize; j++)
465
- {
466
- id = ((id << 8) | *sd->Data);
467
- sd->Data++;
468
- sd->Size--;
469
- }
470
- if (id > (UInt32)0xFFFFFFFF)
471
- return SZ_ERROR_UNSUPPORTED;
472
- coder->MethodID = (UInt32)id;
473
-
474
- coder->NumStreams = 1;
475
- coder->PropsOffset = 0;
476
- coder->PropsSize = 0;
477
-
478
- if ((mainByte & 0x10) != 0)
479
- {
480
- UInt32 numStreams;
481
-
482
- RINOK(SzReadNumber32(sd, &numStreams));
483
- if (numStreams > k_NumCodersStreams_in_Folder_MAX)
484
- return SZ_ERROR_UNSUPPORTED;
485
- coder->NumStreams = (Byte)numStreams;
486
-
487
- RINOK(SzReadNumber32(sd, &numStreams));
488
- if (numStreams != 1)
489
- return SZ_ERROR_UNSUPPORTED;
490
- }
491
-
492
- numInStreams += coder->NumStreams;
493
-
494
- if (numInStreams > k_NumCodersStreams_in_Folder_MAX)
495
- return SZ_ERROR_UNSUPPORTED;
496
-
497
- if ((mainByte & 0x20) != 0)
498
- {
499
- UInt32 propsSize = 0;
500
- RINOK(SzReadNumber32(sd, &propsSize));
501
- if (propsSize > sd->Size)
502
- return SZ_ERROR_ARCHIVE;
503
- if (propsSize >= 0x80)
504
- return SZ_ERROR_UNSUPPORTED;
505
- coder->PropsOffset = sd->Data - dataStart;
506
- coder->PropsSize = (Byte)propsSize;
507
- sd->Data += (size_t)propsSize;
508
- sd->Size -= (size_t)propsSize;
509
- }
510
- }
511
-
512
- /*
513
- if (numInStreams == 1 && numCoders == 1)
514
- {
515
- f->NumPackStreams = 1;
516
- f->PackStreams[0] = 0;
517
- }
518
- else
519
- */
520
- {
521
- Byte streamUsed[k_NumCodersStreams_in_Folder_MAX];
522
- UInt32 numBonds, numPackStreams;
523
-
524
- numBonds = numCoders - 1;
525
- if (numInStreams < numBonds)
526
- return SZ_ERROR_ARCHIVE;
527
- if (numBonds > SZ_NUM_BONDS_IN_FOLDER_MAX)
528
- return SZ_ERROR_UNSUPPORTED;
529
- f->NumBonds = numBonds;
530
-
531
- numPackStreams = numInStreams - numBonds;
532
- if (numPackStreams > SZ_NUM_PACK_STREAMS_IN_FOLDER_MAX)
533
- return SZ_ERROR_UNSUPPORTED;
534
- f->NumPackStreams = numPackStreams;
535
-
536
- for (i = 0; i < numInStreams; i++)
537
- streamUsed[i] = False;
538
-
539
- if (numBonds != 0)
540
- {
541
- Byte coderUsed[SZ_NUM_CODERS_IN_FOLDER_MAX];
542
-
543
- for (i = 0; i < numCoders; i++)
544
- coderUsed[i] = False;
545
-
546
- for (i = 0; i < numBonds; i++)
547
- {
548
- CSzBond *bp = f->Bonds + i;
549
-
550
- RINOK(SzReadNumber32(sd, &bp->InIndex));
551
- if (bp->InIndex >= numInStreams || streamUsed[bp->InIndex])
552
- return SZ_ERROR_ARCHIVE;
553
- streamUsed[bp->InIndex] = True;
554
-
555
- RINOK(SzReadNumber32(sd, &bp->OutIndex));
556
- if (bp->OutIndex >= numCoders || coderUsed[bp->OutIndex])
557
- return SZ_ERROR_ARCHIVE;
558
- coderUsed[bp->OutIndex] = True;
559
- }
560
-
561
- for (i = 0; i < numCoders; i++)
562
- if (!coderUsed[i])
563
- {
564
- f->UnpackStream = i;
565
- break;
566
- }
567
-
568
- if (i == numCoders)
569
- return SZ_ERROR_ARCHIVE;
570
- }
571
-
572
- if (numPackStreams == 1)
573
- {
574
- for (i = 0; i < numInStreams; i++)
575
- if (!streamUsed[i])
576
- break;
577
- if (i == numInStreams)
578
- return SZ_ERROR_ARCHIVE;
579
- f->PackStreams[0] = i;
580
- }
581
- else
582
- for (i = 0; i < numPackStreams; i++)
583
- {
584
- UInt32 index;
585
- RINOK(SzReadNumber32(sd, &index));
586
- if (index >= numInStreams || streamUsed[index])
587
- return SZ_ERROR_ARCHIVE;
588
- streamUsed[index] = True;
589
- f->PackStreams[i] = index;
590
- }
591
- }
592
-
593
- f->NumCoders = numCoders;
594
-
595
- return SZ_OK;
596
- }
597
-
598
-
599
- static MY_NO_INLINE SRes SkipNumbers(CSzData *sd2, UInt32 num)
600
- {
601
- CSzData sd;
602
- sd = *sd2;
603
- for (; num != 0; num--)
604
- {
605
- Byte firstByte, mask;
606
- unsigned i;
607
- SZ_READ_BYTE_2(firstByte);
608
- if ((firstByte & 0x80) == 0)
609
- continue;
610
- if ((firstByte & 0x40) == 0)
611
- {
612
- if (sd.Size == 0)
613
- return SZ_ERROR_ARCHIVE;
614
- sd.Size--;
615
- sd.Data++;
616
- continue;
617
- }
618
- mask = 0x20;
619
- for (i = 2; i < 8 && (firstByte & mask) != 0; i++)
620
- mask >>= 1;
621
- if (i > sd.Size)
622
- return SZ_ERROR_ARCHIVE;
623
- SKIP_DATA2(sd, i);
624
- }
625
- *sd2 = sd;
626
- return SZ_OK;
627
- }
628
-
629
-
630
- #define k_Scan_NumCoders_MAX 64
631
- #define k_Scan_NumCodersStreams_in_Folder_MAX 64
632
-
633
-
634
- static SRes ReadUnpackInfo(CSzAr *p,
635
- CSzData *sd2,
636
- UInt32 numFoldersMax,
637
- const CBuf *tempBufs, UInt32 numTempBufs,
638
- ISzAllocPtr alloc)
639
- {
640
- CSzData sd;
641
-
642
- UInt32 fo, numFolders, numCodersOutStreams, packStreamIndex;
643
- const Byte *startBufPtr;
644
- Byte external;
645
-
646
- RINOK(WaitId(sd2, k7zIdFolder));
647
-
648
- RINOK(SzReadNumber32(sd2, &numFolders));
649
- if (numFolders > numFoldersMax)
650
- return SZ_ERROR_UNSUPPORTED;
651
- p->NumFolders = numFolders;
652
-
653
- SZ_READ_BYTE_SD(sd2, external);
654
- if (external == 0)
655
- sd = *sd2;
656
- else
657
- {
658
- UInt32 index;
659
- RINOK(SzReadNumber32(sd2, &index));
660
- if (index >= numTempBufs)
661
- return SZ_ERROR_ARCHIVE;
662
- sd.Data = tempBufs[index].data;
663
- sd.Size = tempBufs[index].size;
664
- }
665
-
666
- MY_ALLOC(size_t, p->FoCodersOffsets, (size_t)numFolders + 1, alloc);
667
- MY_ALLOC(UInt32, p->FoStartPackStreamIndex, (size_t)numFolders + 1, alloc);
668
- MY_ALLOC(UInt32, p->FoToCoderUnpackSizes, (size_t)numFolders + 1, alloc);
669
- MY_ALLOC_ZE(Byte, p->FoToMainUnpackSizeIndex, (size_t)numFolders, alloc);
670
-
671
- startBufPtr = sd.Data;
672
-
673
- packStreamIndex = 0;
674
- numCodersOutStreams = 0;
675
-
676
- for (fo = 0; fo < numFolders; fo++)
677
- {
678
- UInt32 numCoders, ci, numInStreams = 0;
679
-
680
- p->FoCodersOffsets[fo] = sd.Data - startBufPtr;
681
-
682
- RINOK(SzReadNumber32(&sd, &numCoders));
683
- if (numCoders == 0 || numCoders > k_Scan_NumCoders_MAX)
684
- return SZ_ERROR_UNSUPPORTED;
685
-
686
- for (ci = 0; ci < numCoders; ci++)
687
- {
688
- Byte mainByte;
689
- unsigned idSize;
690
- UInt32 coderInStreams;
691
-
692
- SZ_READ_BYTE_2(mainByte);
693
- if ((mainByte & 0xC0) != 0)
694
- return SZ_ERROR_UNSUPPORTED;
695
- idSize = (mainByte & 0xF);
696
- if (idSize > 8)
697
- return SZ_ERROR_UNSUPPORTED;
698
- if (idSize > sd.Size)
699
- return SZ_ERROR_ARCHIVE;
700
- SKIP_DATA2(sd, idSize);
701
-
702
- coderInStreams = 1;
703
-
704
- if ((mainByte & 0x10) != 0)
705
- {
706
- UInt32 coderOutStreams;
707
- RINOK(SzReadNumber32(&sd, &coderInStreams));
708
- RINOK(SzReadNumber32(&sd, &coderOutStreams));
709
- if (coderInStreams > k_Scan_NumCodersStreams_in_Folder_MAX || coderOutStreams != 1)
710
- return SZ_ERROR_UNSUPPORTED;
711
- }
712
-
713
- numInStreams += coderInStreams;
714
-
715
- if ((mainByte & 0x20) != 0)
716
- {
717
- UInt32 propsSize;
718
- RINOK(SzReadNumber32(&sd, &propsSize));
719
- if (propsSize > sd.Size)
720
- return SZ_ERROR_ARCHIVE;
721
- SKIP_DATA2(sd, propsSize);
722
- }
723
- }
724
-
725
- {
726
- UInt32 indexOfMainStream = 0;
727
- UInt32 numPackStreams = 1;
728
-
729
- if (numCoders != 1 || numInStreams != 1)
730
- {
731
- Byte streamUsed[k_Scan_NumCodersStreams_in_Folder_MAX];
732
- Byte coderUsed[k_Scan_NumCoders_MAX];
733
-
734
- UInt32 i;
735
- UInt32 numBonds = numCoders - 1;
736
- if (numInStreams < numBonds)
737
- return SZ_ERROR_ARCHIVE;
738
-
739
- if (numInStreams > k_Scan_NumCodersStreams_in_Folder_MAX)
740
- return SZ_ERROR_UNSUPPORTED;
741
-
742
- for (i = 0; i < numInStreams; i++)
743
- streamUsed[i] = False;
744
- for (i = 0; i < numCoders; i++)
745
- coderUsed[i] = False;
746
-
747
- for (i = 0; i < numBonds; i++)
748
- {
749
- UInt32 index;
750
-
751
- RINOK(SzReadNumber32(&sd, &index));
752
- if (index >= numInStreams || streamUsed[index])
753
- return SZ_ERROR_ARCHIVE;
754
- streamUsed[index] = True;
755
-
756
- RINOK(SzReadNumber32(&sd, &index));
757
- if (index >= numCoders || coderUsed[index])
758
- return SZ_ERROR_ARCHIVE;
759
- coderUsed[index] = True;
760
- }
761
-
762
- numPackStreams = numInStreams - numBonds;
763
-
764
- if (numPackStreams != 1)
765
- for (i = 0; i < numPackStreams; i++)
766
- {
767
- UInt32 index;
768
- RINOK(SzReadNumber32(&sd, &index));
769
- if (index >= numInStreams || streamUsed[index])
770
- return SZ_ERROR_ARCHIVE;
771
- streamUsed[index] = True;
772
- }
773
-
774
- for (i = 0; i < numCoders; i++)
775
- if (!coderUsed[i])
776
- {
777
- indexOfMainStream = i;
778
- break;
779
- }
780
-
781
- if (i == numCoders)
782
- return SZ_ERROR_ARCHIVE;
783
- }
784
-
785
- p->FoStartPackStreamIndex[fo] = packStreamIndex;
786
- p->FoToCoderUnpackSizes[fo] = numCodersOutStreams;
787
- p->FoToMainUnpackSizeIndex[fo] = (Byte)indexOfMainStream;
788
- numCodersOutStreams += numCoders;
789
- if (numCodersOutStreams < numCoders)
790
- return SZ_ERROR_UNSUPPORTED;
791
- if (numPackStreams > p->NumPackStreams - packStreamIndex)
792
- return SZ_ERROR_ARCHIVE;
793
- packStreamIndex += numPackStreams;
794
- }
795
- }
796
-
797
- p->FoToCoderUnpackSizes[fo] = numCodersOutStreams;
798
-
799
- {
800
- size_t dataSize = sd.Data - startBufPtr;
801
- p->FoStartPackStreamIndex[fo] = packStreamIndex;
802
- p->FoCodersOffsets[fo] = dataSize;
803
- MY_ALLOC_ZE_AND_CPY(p->CodersData, dataSize, startBufPtr, alloc);
804
- }
805
-
806
- if (external != 0)
807
- {
808
- if (sd.Size != 0)
809
- return SZ_ERROR_ARCHIVE;
810
- sd = *sd2;
811
- }
812
-
813
- RINOK(WaitId(&sd, k7zIdCodersUnpackSize));
814
-
815
- MY_ALLOC_ZE(UInt64, p->CoderUnpackSizes, (size_t)numCodersOutStreams, alloc);
816
- {
817
- UInt32 i;
818
- for (i = 0; i < numCodersOutStreams; i++)
819
- {
820
- RINOK(ReadNumber(&sd, p->CoderUnpackSizes + i));
821
- }
822
- }
823
-
824
- for (;;)
825
- {
826
- UInt64 type;
827
- RINOK(ReadID(&sd, &type));
828
- if (type == k7zIdEnd)
829
- {
830
- *sd2 = sd;
831
- return SZ_OK;
832
- }
833
- if (type == k7zIdCRC)
834
- {
835
- RINOK(ReadBitUi32s(&sd, numFolders, &p->FolderCRCs, alloc));
836
- continue;
837
- }
838
- RINOK(SkipData(&sd));
839
- }
840
- }
841
-
842
-
843
- UInt64 SzAr_GetFolderUnpackSize(const CSzAr *p, UInt32 folderIndex)
844
- {
845
- return p->CoderUnpackSizes[p->FoToCoderUnpackSizes[folderIndex] + p->FoToMainUnpackSizeIndex[folderIndex]];
846
- }
847
-
848
-
849
- typedef struct
850
- {
851
- UInt32 NumTotalSubStreams;
852
- UInt32 NumSubDigests;
853
- CSzData sdNumSubStreams;
854
- CSzData sdSizes;
855
- CSzData sdCRCs;
856
- } CSubStreamInfo;
857
-
858
-
859
- static SRes ReadSubStreamsInfo(CSzAr *p, CSzData *sd, CSubStreamInfo *ssi)
860
- {
861
- UInt64 type = 0;
862
- UInt32 numSubDigests = 0;
863
- UInt32 numFolders = p->NumFolders;
864
- UInt32 numUnpackStreams = numFolders;
865
- UInt32 numUnpackSizesInData = 0;
866
-
867
- for (;;)
868
- {
869
- RINOK(ReadID(sd, &type));
870
- if (type == k7zIdNumUnpackStream)
871
- {
872
- UInt32 i;
873
- ssi->sdNumSubStreams.Data = sd->Data;
874
- numUnpackStreams = 0;
875
- numSubDigests = 0;
876
- for (i = 0; i < numFolders; i++)
877
- {
878
- UInt32 numStreams;
879
- RINOK(SzReadNumber32(sd, &numStreams));
880
- if (numUnpackStreams > numUnpackStreams + numStreams)
881
- return SZ_ERROR_UNSUPPORTED;
882
- numUnpackStreams += numStreams;
883
- if (numStreams != 0)
884
- numUnpackSizesInData += (numStreams - 1);
885
- if (numStreams != 1 || !SzBitWithVals_Check(&p->FolderCRCs, i))
886
- numSubDigests += numStreams;
887
- }
888
- ssi->sdNumSubStreams.Size = sd->Data - ssi->sdNumSubStreams.Data;
889
- continue;
890
- }
891
- if (type == k7zIdCRC || type == k7zIdSize || type == k7zIdEnd)
892
- break;
893
- RINOK(SkipData(sd));
894
- }
895
-
896
- if (!ssi->sdNumSubStreams.Data)
897
- {
898
- numSubDigests = numFolders;
899
- if (p->FolderCRCs.Defs)
900
- numSubDigests = numFolders - CountDefinedBits(p->FolderCRCs.Defs, numFolders);
901
- }
902
-
903
- ssi->NumTotalSubStreams = numUnpackStreams;
904
- ssi->NumSubDigests = numSubDigests;
905
-
906
- if (type == k7zIdSize)
907
- {
908
- ssi->sdSizes.Data = sd->Data;
909
- RINOK(SkipNumbers(sd, numUnpackSizesInData));
910
- ssi->sdSizes.Size = sd->Data - ssi->sdSizes.Data;
911
- RINOK(ReadID(sd, &type));
912
- }
913
-
914
- for (;;)
915
- {
916
- if (type == k7zIdEnd)
917
- return SZ_OK;
918
- if (type == k7zIdCRC)
919
- {
920
- ssi->sdCRCs.Data = sd->Data;
921
- RINOK(SkipBitUi32s(sd, numSubDigests));
922
- ssi->sdCRCs.Size = sd->Data - ssi->sdCRCs.Data;
923
- }
924
- else
925
- {
926
- RINOK(SkipData(sd));
927
- }
928
- RINOK(ReadID(sd, &type));
929
- }
930
- }
931
-
932
- static SRes SzReadStreamsInfo(CSzAr *p,
933
- CSzData *sd,
934
- UInt32 numFoldersMax, const CBuf *tempBufs, UInt32 numTempBufs,
935
- UInt64 *dataOffset,
936
- CSubStreamInfo *ssi,
937
- ISzAllocPtr alloc)
938
- {
939
- UInt64 type;
940
-
941
- SzData_Clear(&ssi->sdSizes);
942
- SzData_Clear(&ssi->sdCRCs);
943
- SzData_Clear(&ssi->sdNumSubStreams);
944
-
945
- *dataOffset = 0;
946
- RINOK(ReadID(sd, &type));
947
- if (type == k7zIdPackInfo)
948
- {
949
- RINOK(ReadNumber(sd, dataOffset));
950
- RINOK(ReadPackInfo(p, sd, alloc));
951
- RINOK(ReadID(sd, &type));
952
- }
953
- if (type == k7zIdUnpackInfo)
954
- {
955
- RINOK(ReadUnpackInfo(p, sd, numFoldersMax, tempBufs, numTempBufs, alloc));
956
- RINOK(ReadID(sd, &type));
957
- }
958
- if (type == k7zIdSubStreamsInfo)
959
- {
960
- RINOK(ReadSubStreamsInfo(p, sd, ssi));
961
- RINOK(ReadID(sd, &type));
962
- }
963
- else
964
- {
965
- ssi->NumTotalSubStreams = p->NumFolders;
966
- // ssi->NumSubDigests = 0;
967
- }
968
-
969
- return (type == k7zIdEnd ? SZ_OK : SZ_ERROR_UNSUPPORTED);
970
- }
971
-
972
- static SRes SzReadAndDecodePackedStreams(
973
- ILookInStream *inStream,
974
- CSzData *sd,
975
- CBuf *tempBufs,
976
- UInt32 numFoldersMax,
977
- UInt64 baseOffset,
978
- CSzAr *p,
979
- ISzAllocPtr allocTemp)
980
- {
981
- UInt64 dataStartPos;
982
- UInt32 fo;
983
- CSubStreamInfo ssi;
984
-
985
- RINOK(SzReadStreamsInfo(p, sd, numFoldersMax, NULL, 0, &dataStartPos, &ssi, allocTemp));
986
-
987
- dataStartPos += baseOffset;
988
- if (p->NumFolders == 0)
989
- return SZ_ERROR_ARCHIVE;
990
-
991
- for (fo = 0; fo < p->NumFolders; fo++)
992
- Buf_Init(tempBufs + fo);
993
-
994
- for (fo = 0; fo < p->NumFolders; fo++)
995
- {
996
- CBuf *tempBuf = tempBufs + fo;
997
- UInt64 unpackSize = SzAr_GetFolderUnpackSize(p, fo);
998
- if ((size_t)unpackSize != unpackSize)
999
- return SZ_ERROR_MEM;
1000
- if (!Buf_Create(tempBuf, (size_t)unpackSize, allocTemp))
1001
- return SZ_ERROR_MEM;
1002
- }
1003
-
1004
- for (fo = 0; fo < p->NumFolders; fo++)
1005
- {
1006
- const CBuf *tempBuf = tempBufs + fo;
1007
- RINOK(LookInStream_SeekTo(inStream, dataStartPos));
1008
- RINOK(SzAr_DecodeFolder(p, fo, inStream, dataStartPos, tempBuf->data, tempBuf->size, allocTemp));
1009
- }
1010
-
1011
- return SZ_OK;
1012
- }
1013
-
1014
- static SRes SzReadFileNames(const Byte *data, size_t size, UInt32 numFiles, size_t *offsets)
1015
- {
1016
- size_t pos = 0;
1017
- *offsets++ = 0;
1018
- if (numFiles == 0)
1019
- return (size == 0) ? SZ_OK : SZ_ERROR_ARCHIVE;
1020
- if (size < 2)
1021
- return SZ_ERROR_ARCHIVE;
1022
- if (data[size - 2] != 0 || data[size - 1] != 0)
1023
- return SZ_ERROR_ARCHIVE;
1024
- do
1025
- {
1026
- const Byte *p;
1027
- if (pos == size)
1028
- return SZ_ERROR_ARCHIVE;
1029
- for (p = data + pos;
1030
- #ifdef _WIN32
1031
- *(const UInt16 *)p != 0
1032
- #else
1033
- p[0] != 0 || p[1] != 0
1034
- #endif
1035
- ; p += 2);
1036
- pos = p - data + 2;
1037
- *offsets++ = (pos >> 1);
1038
- }
1039
- while (--numFiles);
1040
- return (pos == size) ? SZ_OK : SZ_ERROR_ARCHIVE;
1041
- }
1042
-
1043
- static MY_NO_INLINE SRes ReadTime(CSzBitUi64s *p, UInt32 num,
1044
- CSzData *sd2,
1045
- const CBuf *tempBufs, UInt32 numTempBufs,
1046
- ISzAllocPtr alloc)
1047
- {
1048
- CSzData sd;
1049
- UInt32 i;
1050
- CNtfsFileTime *vals;
1051
- Byte *defs;
1052
- Byte external;
1053
-
1054
- RINOK(ReadBitVector(sd2, num, &p->Defs, alloc));
1055
-
1056
- SZ_READ_BYTE_SD(sd2, external);
1057
- if (external == 0)
1058
- sd = *sd2;
1059
- else
1060
- {
1061
- UInt32 index;
1062
- RINOK(SzReadNumber32(sd2, &index));
1063
- if (index >= numTempBufs)
1064
- return SZ_ERROR_ARCHIVE;
1065
- sd.Data = tempBufs[index].data;
1066
- sd.Size = tempBufs[index].size;
1067
- }
1068
-
1069
- MY_ALLOC_ZE(CNtfsFileTime, p->Vals, num, alloc);
1070
- vals = p->Vals;
1071
- defs = p->Defs;
1072
- for (i = 0; i < num; i++)
1073
- if (SzBitArray_Check(defs, i))
1074
- {
1075
- if (sd.Size < 8)
1076
- return SZ_ERROR_ARCHIVE;
1077
- vals[i].Low = GetUi32(sd.Data);
1078
- vals[i].High = GetUi32(sd.Data + 4);
1079
- SKIP_DATA2(sd, 8);
1080
- }
1081
- else
1082
- vals[i].High = vals[i].Low = 0;
1083
-
1084
- if (external == 0)
1085
- *sd2 = sd;
1086
-
1087
- return SZ_OK;
1088
- }
1089
-
1090
-
1091
- #define NUM_ADDITIONAL_STREAMS_MAX 8
1092
-
1093
-
1094
- static SRes SzReadHeader2(
1095
- CSzArEx *p, /* allocMain */
1096
- CSzData *sd,
1097
- ILookInStream *inStream,
1098
- CBuf *tempBufs, UInt32 *numTempBufs,
1099
- ISzAllocPtr allocMain,
1100
- ISzAllocPtr allocTemp
1101
- )
1102
- {
1103
- CSubStreamInfo ssi;
1104
-
1105
- {
1106
- UInt64 type;
1107
-
1108
- SzData_Clear(&ssi.sdSizes);
1109
- SzData_Clear(&ssi.sdCRCs);
1110
- SzData_Clear(&ssi.sdNumSubStreams);
1111
-
1112
- ssi.NumSubDigests = 0;
1113
- ssi.NumTotalSubStreams = 0;
1114
-
1115
- RINOK(ReadID(sd, &type));
1116
-
1117
- if (type == k7zIdArchiveProperties)
1118
- {
1119
- for (;;)
1120
- {
1121
- UInt64 type2;
1122
- RINOK(ReadID(sd, &type2));
1123
- if (type2 == k7zIdEnd)
1124
- break;
1125
- RINOK(SkipData(sd));
1126
- }
1127
- RINOK(ReadID(sd, &type));
1128
- }
1129
-
1130
- if (type == k7zIdAdditionalStreamsInfo)
1131
- {
1132
- CSzAr tempAr;
1133
- SRes res;
1134
-
1135
- SzAr_Init(&tempAr);
1136
- res = SzReadAndDecodePackedStreams(inStream, sd, tempBufs, NUM_ADDITIONAL_STREAMS_MAX,
1137
- p->startPosAfterHeader, &tempAr, allocTemp);
1138
- *numTempBufs = tempAr.NumFolders;
1139
- SzAr_Free(&tempAr, allocTemp);
1140
-
1141
- if (res != SZ_OK)
1142
- return res;
1143
- RINOK(ReadID(sd, &type));
1144
- }
1145
-
1146
- if (type == k7zIdMainStreamsInfo)
1147
- {
1148
- RINOK(SzReadStreamsInfo(&p->db, sd, (UInt32)1 << 30, tempBufs, *numTempBufs,
1149
- &p->dataPos, &ssi, allocMain));
1150
- p->dataPos += p->startPosAfterHeader;
1151
- RINOK(ReadID(sd, &type));
1152
- }
1153
-
1154
- if (type == k7zIdEnd)
1155
- {
1156
- return SZ_OK;
1157
- }
1158
-
1159
- if (type != k7zIdFilesInfo)
1160
- return SZ_ERROR_ARCHIVE;
1161
- }
1162
-
1163
- {
1164
- UInt32 numFiles = 0;
1165
- UInt32 numEmptyStreams = 0;
1166
- const Byte *emptyStreams = NULL;
1167
- const Byte *emptyFiles = NULL;
1168
-
1169
- RINOK(SzReadNumber32(sd, &numFiles));
1170
- p->NumFiles = numFiles;
1171
-
1172
- for (;;)
1173
- {
1174
- UInt64 type;
1175
- UInt64 size;
1176
- RINOK(ReadID(sd, &type));
1177
- if (type == k7zIdEnd)
1178
- break;
1179
- RINOK(ReadNumber(sd, &size));
1180
- if (size > sd->Size)
1181
- return SZ_ERROR_ARCHIVE;
1182
-
1183
- if (type >= ((UInt32)1 << 8))
1184
- {
1185
- SKIP_DATA(sd, size);
1186
- }
1187
- else switch ((unsigned)type)
1188
- {
1189
- case k7zIdName:
1190
- {
1191
- size_t namesSize;
1192
- const Byte *namesData;
1193
- Byte external;
1194
-
1195
- SZ_READ_BYTE(external);
1196
- if (external == 0)
1197
- {
1198
- namesSize = (size_t)size - 1;
1199
- namesData = sd->Data;
1200
- }
1201
- else
1202
- {
1203
- UInt32 index;
1204
- RINOK(SzReadNumber32(sd, &index));
1205
- if (index >= *numTempBufs)
1206
- return SZ_ERROR_ARCHIVE;
1207
- namesData = (tempBufs)[index].data;
1208
- namesSize = (tempBufs)[index].size;
1209
- }
1210
-
1211
- if ((namesSize & 1) != 0)
1212
- return SZ_ERROR_ARCHIVE;
1213
- MY_ALLOC(size_t, p->FileNameOffsets, numFiles + 1, allocMain);
1214
- MY_ALLOC_ZE_AND_CPY(p->FileNames, namesSize, namesData, allocMain);
1215
- RINOK(SzReadFileNames(p->FileNames, namesSize, numFiles, p->FileNameOffsets))
1216
- if (external == 0)
1217
- {
1218
- SKIP_DATA(sd, namesSize);
1219
- }
1220
- break;
1221
- }
1222
- case k7zIdEmptyStream:
1223
- {
1224
- RINOK(RememberBitVector(sd, numFiles, &emptyStreams));
1225
- numEmptyStreams = CountDefinedBits(emptyStreams, numFiles);
1226
- emptyFiles = NULL;
1227
- break;
1228
- }
1229
- case k7zIdEmptyFile:
1230
- {
1231
- RINOK(RememberBitVector(sd, numEmptyStreams, &emptyFiles));
1232
- break;
1233
- }
1234
- case k7zIdWinAttrib:
1235
- {
1236
- Byte external;
1237
- CSzData sdSwitch;
1238
- CSzData *sdPtr;
1239
- SzBitUi32s_Free(&p->Attribs, allocMain);
1240
- RINOK(ReadBitVector(sd, numFiles, &p->Attribs.Defs, allocMain));
1241
-
1242
- SZ_READ_BYTE(external);
1243
- if (external == 0)
1244
- sdPtr = sd;
1245
- else
1246
- {
1247
- UInt32 index;
1248
- RINOK(SzReadNumber32(sd, &index));
1249
- if (index >= *numTempBufs)
1250
- return SZ_ERROR_ARCHIVE;
1251
- sdSwitch.Data = (tempBufs)[index].data;
1252
- sdSwitch.Size = (tempBufs)[index].size;
1253
- sdPtr = &sdSwitch;
1254
- }
1255
- RINOK(ReadUi32s(sdPtr, numFiles, &p->Attribs, allocMain));
1256
- break;
1257
- }
1258
- /*
1259
- case k7zParent:
1260
- {
1261
- SzBitUi32s_Free(&p->Parents, allocMain);
1262
- RINOK(ReadBitVector(sd, numFiles, &p->Parents.Defs, allocMain));
1263
- RINOK(SzReadSwitch(sd));
1264
- RINOK(ReadUi32s(sd, numFiles, &p->Parents, allocMain));
1265
- break;
1266
- }
1267
- */
1268
- case k7zIdMTime: RINOK(ReadTime(&p->MTime, numFiles, sd, tempBufs, *numTempBufs, allocMain)); break;
1269
- case k7zIdCTime: RINOK(ReadTime(&p->CTime, numFiles, sd, tempBufs, *numTempBufs, allocMain)); break;
1270
- default:
1271
- {
1272
- SKIP_DATA(sd, size);
1273
- }
1274
- }
1275
- }
1276
-
1277
- if (numFiles - numEmptyStreams != ssi.NumTotalSubStreams)
1278
- return SZ_ERROR_ARCHIVE;
1279
-
1280
- for (;;)
1281
- {
1282
- UInt64 type;
1283
- RINOK(ReadID(sd, &type));
1284
- if (type == k7zIdEnd)
1285
- break;
1286
- RINOK(SkipData(sd));
1287
- }
1288
-
1289
- {
1290
- UInt32 i;
1291
- UInt32 emptyFileIndex = 0;
1292
- UInt32 folderIndex = 0;
1293
- UInt32 remSubStreams = 0;
1294
- UInt32 numSubStreams = 0;
1295
- UInt64 unpackPos = 0;
1296
- const Byte *digestsDefs = NULL;
1297
- const Byte *digestsVals = NULL;
1298
- UInt32 digestsValsIndex = 0;
1299
- UInt32 digestIndex;
1300
- Byte allDigestsDefined = 0;
1301
- Byte isDirMask = 0;
1302
- Byte crcMask = 0;
1303
- Byte mask = 0x80;
1304
-
1305
- MY_ALLOC(UInt32, p->FolderToFile, p->db.NumFolders + 1, allocMain);
1306
- MY_ALLOC_ZE(UInt32, p->FileToFolder, p->NumFiles, allocMain);
1307
- MY_ALLOC(UInt64, p->UnpackPositions, p->NumFiles + 1, allocMain);
1308
- MY_ALLOC_ZE(Byte, p->IsDirs, (p->NumFiles + 7) >> 3, allocMain);
1309
-
1310
- RINOK(SzBitUi32s_Alloc(&p->CRCs, p->NumFiles, allocMain));
1311
-
1312
- if (ssi.sdCRCs.Size != 0)
1313
- {
1314
- SZ_READ_BYTE_SD(&ssi.sdCRCs, allDigestsDefined);
1315
- if (allDigestsDefined)
1316
- digestsVals = ssi.sdCRCs.Data;
1317
- else
1318
- {
1319
- size_t numBytes = (ssi.NumSubDigests + 7) >> 3;
1320
- digestsDefs = ssi.sdCRCs.Data;
1321
- digestsVals = digestsDefs + numBytes;
1322
- }
1323
- }
1324
-
1325
- digestIndex = 0;
1326
-
1327
- for (i = 0; i < numFiles; i++, mask >>= 1)
1328
- {
1329
- if (mask == 0)
1330
- {
1331
- UInt32 byteIndex = (i - 1) >> 3;
1332
- p->IsDirs[byteIndex] = isDirMask;
1333
- p->CRCs.Defs[byteIndex] = crcMask;
1334
- isDirMask = 0;
1335
- crcMask = 0;
1336
- mask = 0x80;
1337
- }
1338
-
1339
- p->UnpackPositions[i] = unpackPos;
1340
- p->CRCs.Vals[i] = 0;
1341
-
1342
- if (emptyStreams && SzBitArray_Check(emptyStreams, i))
1343
- {
1344
- if (emptyFiles)
1345
- {
1346
- if (!SzBitArray_Check(emptyFiles, emptyFileIndex))
1347
- isDirMask |= mask;
1348
- emptyFileIndex++;
1349
- }
1350
- else
1351
- isDirMask |= mask;
1352
- if (remSubStreams == 0)
1353
- {
1354
- p->FileToFolder[i] = (UInt32)-1;
1355
- continue;
1356
- }
1357
- }
1358
-
1359
- if (remSubStreams == 0)
1360
- {
1361
- for (;;)
1362
- {
1363
- if (folderIndex >= p->db.NumFolders)
1364
- return SZ_ERROR_ARCHIVE;
1365
- p->FolderToFile[folderIndex] = i;
1366
- numSubStreams = 1;
1367
- if (ssi.sdNumSubStreams.Data)
1368
- {
1369
- RINOK(SzReadNumber32(&ssi.sdNumSubStreams, &numSubStreams));
1370
- }
1371
- remSubStreams = numSubStreams;
1372
- if (numSubStreams != 0)
1373
- break;
1374
- {
1375
- UInt64 folderUnpackSize = SzAr_GetFolderUnpackSize(&p->db, folderIndex);
1376
- unpackPos += folderUnpackSize;
1377
- if (unpackPos < folderUnpackSize)
1378
- return SZ_ERROR_ARCHIVE;
1379
- }
1380
-
1381
- folderIndex++;
1382
- }
1383
- }
1384
-
1385
- p->FileToFolder[i] = folderIndex;
1386
-
1387
- if (emptyStreams && SzBitArray_Check(emptyStreams, i))
1388
- continue;
1389
-
1390
- if (--remSubStreams == 0)
1391
- {
1392
- UInt64 folderUnpackSize = SzAr_GetFolderUnpackSize(&p->db, folderIndex);
1393
- UInt64 startFolderUnpackPos = p->UnpackPositions[p->FolderToFile[folderIndex]];
1394
- if (folderUnpackSize < unpackPos - startFolderUnpackPos)
1395
- return SZ_ERROR_ARCHIVE;
1396
- unpackPos = startFolderUnpackPos + folderUnpackSize;
1397
- if (unpackPos < folderUnpackSize)
1398
- return SZ_ERROR_ARCHIVE;
1399
-
1400
- if (numSubStreams == 1 && SzBitWithVals_Check(&p->db.FolderCRCs, i))
1401
- {
1402
- p->CRCs.Vals[i] = p->db.FolderCRCs.Vals[folderIndex];
1403
- crcMask |= mask;
1404
- }
1405
- else if (allDigestsDefined || (digestsDefs && SzBitArray_Check(digestsDefs, digestIndex)))
1406
- {
1407
- p->CRCs.Vals[i] = GetUi32(digestsVals + (size_t)digestsValsIndex * 4);
1408
- digestsValsIndex++;
1409
- crcMask |= mask;
1410
- }
1411
-
1412
- folderIndex++;
1413
- }
1414
- else
1415
- {
1416
- UInt64 v;
1417
- RINOK(ReadNumber(&ssi.sdSizes, &v));
1418
- unpackPos += v;
1419
- if (unpackPos < v)
1420
- return SZ_ERROR_ARCHIVE;
1421
- if (allDigestsDefined || (digestsDefs && SzBitArray_Check(digestsDefs, digestIndex)))
1422
- {
1423
- p->CRCs.Vals[i] = GetUi32(digestsVals + (size_t)digestsValsIndex * 4);
1424
- digestsValsIndex++;
1425
- crcMask |= mask;
1426
- }
1427
- }
1428
- }
1429
-
1430
- if (mask != 0x80)
1431
- {
1432
- UInt32 byteIndex = (i - 1) >> 3;
1433
- p->IsDirs[byteIndex] = isDirMask;
1434
- p->CRCs.Defs[byteIndex] = crcMask;
1435
- }
1436
-
1437
- p->UnpackPositions[i] = unpackPos;
1438
-
1439
- if (remSubStreams != 0)
1440
- return SZ_ERROR_ARCHIVE;
1441
-
1442
- for (;;)
1443
- {
1444
- p->FolderToFile[folderIndex] = i;
1445
- if (folderIndex >= p->db.NumFolders)
1446
- break;
1447
- if (!ssi.sdNumSubStreams.Data)
1448
- return SZ_ERROR_ARCHIVE;
1449
- RINOK(SzReadNumber32(&ssi.sdNumSubStreams, &numSubStreams));
1450
- if (numSubStreams != 0)
1451
- return SZ_ERROR_ARCHIVE;
1452
- /*
1453
- {
1454
- UInt64 folderUnpackSize = SzAr_GetFolderUnpackSize(&p->db, folderIndex);
1455
- unpackPos += folderUnpackSize;
1456
- if (unpackPos < folderUnpackSize)
1457
- return SZ_ERROR_ARCHIVE;
1458
- }
1459
- */
1460
- folderIndex++;
1461
- }
1462
-
1463
- if (ssi.sdNumSubStreams.Data && ssi.sdNumSubStreams.Size != 0)
1464
- return SZ_ERROR_ARCHIVE;
1465
- }
1466
- }
1467
- return SZ_OK;
1468
- }
1469
-
1470
-
1471
- static SRes SzReadHeader(
1472
- CSzArEx *p,
1473
- CSzData *sd,
1474
- ILookInStream *inStream,
1475
- ISzAllocPtr allocMain,
1476
- ISzAllocPtr allocTemp)
1477
- {
1478
- UInt32 i;
1479
- UInt32 numTempBufs = 0;
1480
- SRes res;
1481
- CBuf tempBufs[NUM_ADDITIONAL_STREAMS_MAX];
1482
-
1483
- for (i = 0; i < NUM_ADDITIONAL_STREAMS_MAX; i++)
1484
- Buf_Init(tempBufs + i);
1485
-
1486
- res = SzReadHeader2(p, sd, inStream,
1487
- tempBufs, &numTempBufs,
1488
- allocMain, allocTemp);
1489
-
1490
- for (i = 0; i < NUM_ADDITIONAL_STREAMS_MAX; i++)
1491
- Buf_Free(tempBufs + i, allocTemp);
1492
-
1493
- RINOK(res);
1494
-
1495
- if (sd->Size != 0)
1496
- return SZ_ERROR_FAIL;
1497
-
1498
- return res;
1499
- }
1500
-
1501
- static SRes SzArEx_Open2(
1502
- CSzArEx *p,
1503
- ILookInStream *inStream,
1504
- ISzAllocPtr allocMain,
1505
- ISzAllocPtr allocTemp)
1506
- {
1507
- Byte header[k7zStartHeaderSize];
1508
- Int64 startArcPos;
1509
- UInt64 nextHeaderOffset, nextHeaderSize;
1510
- size_t nextHeaderSizeT;
1511
- UInt32 nextHeaderCRC;
1512
- CBuf buf;
1513
- SRes res;
1514
-
1515
- startArcPos = 0;
1516
- RINOK(ILookInStream_Seek(inStream, &startArcPos, SZ_SEEK_CUR));
1517
-
1518
- RINOK(LookInStream_Read2(inStream, header, k7zStartHeaderSize, SZ_ERROR_NO_ARCHIVE));
1519
-
1520
- if (!TestSignatureCandidate(header))
1521
- return SZ_ERROR_NO_ARCHIVE;
1522
- if (header[6] != k7zMajorVersion)
1523
- return SZ_ERROR_UNSUPPORTED;
1524
-
1525
- nextHeaderOffset = GetUi64(header + 12);
1526
- nextHeaderSize = GetUi64(header + 20);
1527
- nextHeaderCRC = GetUi32(header + 28);
1528
-
1529
- p->startPosAfterHeader = startArcPos + k7zStartHeaderSize;
1530
-
1531
- if (CrcCalc(header + 12, 20) != GetUi32(header + 8))
1532
- return SZ_ERROR_CRC;
1533
-
1534
- nextHeaderSizeT = (size_t)nextHeaderSize;
1535
- if (nextHeaderSizeT != nextHeaderSize)
1536
- return SZ_ERROR_MEM;
1537
- if (nextHeaderSizeT == 0)
1538
- return SZ_OK;
1539
- if (nextHeaderOffset > nextHeaderOffset + nextHeaderSize ||
1540
- nextHeaderOffset > nextHeaderOffset + nextHeaderSize + k7zStartHeaderSize)
1541
- return SZ_ERROR_NO_ARCHIVE;
1542
-
1543
- {
1544
- Int64 pos = 0;
1545
- RINOK(ILookInStream_Seek(inStream, &pos, SZ_SEEK_END));
1546
- if ((UInt64)pos < startArcPos + nextHeaderOffset ||
1547
- (UInt64)pos < startArcPos + k7zStartHeaderSize + nextHeaderOffset ||
1548
- (UInt64)pos < startArcPos + k7zStartHeaderSize + nextHeaderOffset + nextHeaderSize)
1549
- return SZ_ERROR_INPUT_EOF;
1550
- }
1551
-
1552
- RINOK(LookInStream_SeekTo(inStream, startArcPos + k7zStartHeaderSize + nextHeaderOffset));
1553
-
1554
- if (!Buf_Create(&buf, nextHeaderSizeT, allocTemp))
1555
- return SZ_ERROR_MEM;
1556
-
1557
- res = LookInStream_Read(inStream, buf.data, nextHeaderSizeT);
1558
-
1559
- if (res == SZ_OK)
1560
- {
1561
- res = SZ_ERROR_ARCHIVE;
1562
- if (CrcCalc(buf.data, nextHeaderSizeT) == nextHeaderCRC)
1563
- {
1564
- CSzData sd;
1565
- UInt64 type;
1566
- sd.Data = buf.data;
1567
- sd.Size = buf.size;
1568
-
1569
- res = ReadID(&sd, &type);
1570
-
1571
- if (res == SZ_OK && type == k7zIdEncodedHeader)
1572
- {
1573
- CSzAr tempAr;
1574
- CBuf tempBuf;
1575
- Buf_Init(&tempBuf);
1576
-
1577
- SzAr_Init(&tempAr);
1578
- res = SzReadAndDecodePackedStreams(inStream, &sd, &tempBuf, 1, p->startPosAfterHeader, &tempAr, allocTemp);
1579
- SzAr_Free(&tempAr, allocTemp);
1580
-
1581
- if (res != SZ_OK)
1582
- {
1583
- Buf_Free(&tempBuf, allocTemp);
1584
- }
1585
- else
1586
- {
1587
- Buf_Free(&buf, allocTemp);
1588
- buf.data = tempBuf.data;
1589
- buf.size = tempBuf.size;
1590
- sd.Data = buf.data;
1591
- sd.Size = buf.size;
1592
- res = ReadID(&sd, &type);
1593
- }
1594
- }
1595
-
1596
- if (res == SZ_OK)
1597
- {
1598
- if (type == k7zIdHeader)
1599
- {
1600
- /*
1601
- CSzData sd2;
1602
- unsigned ttt;
1603
- for (ttt = 0; ttt < 40000; ttt++)
1604
- {
1605
- SzArEx_Free(p, allocMain);
1606
- sd2 = sd;
1607
- res = SzReadHeader(p, &sd2, inStream, allocMain, allocTemp);
1608
- if (res != SZ_OK)
1609
- break;
1610
- }
1611
- */
1612
- res = SzReadHeader(p, &sd, inStream, allocMain, allocTemp);
1613
- }
1614
- else
1615
- res = SZ_ERROR_UNSUPPORTED;
1616
- }
1617
- }
1618
- }
1619
-
1620
- Buf_Free(&buf, allocTemp);
1621
- return res;
1622
- }
1623
-
1624
-
1625
- SRes SzArEx_Open(CSzArEx *p, ILookInStream *inStream,
1626
- ISzAllocPtr allocMain, ISzAllocPtr allocTemp)
1627
- {
1628
- SRes res = SzArEx_Open2(p, inStream, allocMain, allocTemp);
1629
- if (res != SZ_OK)
1630
- SzArEx_Free(p, allocMain);
1631
- return res;
1632
- }
1633
-
1634
-
1635
- SRes SzArEx_Extract(
1636
- const CSzArEx *p,
1637
- ILookInStream *inStream,
1638
- UInt32 fileIndex,
1639
- UInt32 *blockIndex,
1640
- Byte **tempBuf,
1641
- size_t *outBufferSize,
1642
- size_t *offset,
1643
- size_t *outSizeProcessed,
1644
- ISzAllocPtr allocMain,
1645
- ISzAllocPtr allocTemp)
1646
- {
1647
- UInt32 folderIndex = p->FileToFolder[fileIndex];
1648
- SRes res = SZ_OK;
1649
-
1650
- *offset = 0;
1651
- *outSizeProcessed = 0;
1652
-
1653
- if (folderIndex == (UInt32)-1)
1654
- {
1655
- ISzAlloc_Free(allocMain, *tempBuf);
1656
- *blockIndex = folderIndex;
1657
- *tempBuf = NULL;
1658
- *outBufferSize = 0;
1659
- return SZ_OK;
1660
- }
1661
-
1662
- if (*tempBuf == NULL || *blockIndex != folderIndex)
1663
- {
1664
- UInt64 unpackSizeSpec = SzAr_GetFolderUnpackSize(&p->db, folderIndex);
1665
- /*
1666
- UInt64 unpackSizeSpec =
1667
- p->UnpackPositions[p->FolderToFile[(size_t)folderIndex + 1]] -
1668
- p->UnpackPositions[p->FolderToFile[folderIndex]];
1669
- */
1670
- size_t unpackSize = (size_t)unpackSizeSpec;
1671
-
1672
- if (unpackSize != unpackSizeSpec)
1673
- return SZ_ERROR_MEM;
1674
- *blockIndex = folderIndex;
1675
- ISzAlloc_Free(allocMain, *tempBuf);
1676
- *tempBuf = NULL;
1677
-
1678
- if (res == SZ_OK)
1679
- {
1680
- *outBufferSize = unpackSize;
1681
- if (unpackSize != 0)
1682
- {
1683
- *tempBuf = (Byte *)ISzAlloc_Alloc(allocMain, unpackSize);
1684
- if (*tempBuf == NULL)
1685
- res = SZ_ERROR_MEM;
1686
- }
1687
-
1688
- if (res == SZ_OK)
1689
- {
1690
- res = SzAr_DecodeFolder(&p->db, folderIndex,
1691
- inStream, p->dataPos, *tempBuf, unpackSize, allocTemp);
1692
- }
1693
- }
1694
- }
1695
-
1696
- if (res == SZ_OK)
1697
- {
1698
- UInt64 unpackPos = p->UnpackPositions[fileIndex];
1699
- *offset = (size_t)(unpackPos - p->UnpackPositions[p->FolderToFile[folderIndex]]);
1700
- *outSizeProcessed = (size_t)(p->UnpackPositions[(size_t)fileIndex + 1] - unpackPos);
1701
- if (*offset + *outSizeProcessed > *outBufferSize)
1702
- return SZ_ERROR_FAIL;
1703
- if (SzBitWithVals_Check(&p->CRCs, fileIndex))
1704
- if (CrcCalc(*tempBuf + *offset, *outSizeProcessed) != p->CRCs.Vals[fileIndex])
1705
- res = SZ_ERROR_CRC;
1706
- }
1707
-
1708
- return res;
1709
- }
1710
-
1711
-
1712
- size_t SzArEx_GetFileNameUtf16(const CSzArEx *p, size_t fileIndex, UInt16 *dest)
1713
- {
1714
- size_t offs = p->FileNameOffsets[fileIndex];
1715
- size_t len = p->FileNameOffsets[fileIndex + 1] - offs;
1716
- if (dest != 0)
1717
- {
1718
- size_t i;
1719
- const Byte *src = p->FileNames + offs * 2;
1720
- for (i = 0; i < len; i++)
1721
- dest[i] = GetUi16(src + i * 2);
1722
- }
1723
- return len;
1724
- }
1725
-
1726
- /*
1727
- size_t SzArEx_GetFullNameLen(const CSzArEx *p, size_t fileIndex)
1728
- {
1729
- size_t len;
1730
- if (!p->FileNameOffsets)
1731
- return 1;
1732
- len = 0;
1733
- for (;;)
1734
- {
1735
- UInt32 parent = (UInt32)(Int32)-1;
1736
- len += p->FileNameOffsets[fileIndex + 1] - p->FileNameOffsets[fileIndex];
1737
- if SzBitWithVals_Check(&p->Parents, fileIndex)
1738
- parent = p->Parents.Vals[fileIndex];
1739
- if (parent == (UInt32)(Int32)-1)
1740
- return len;
1741
- fileIndex = parent;
1742
- }
1743
- }
1744
-
1745
- UInt16 *SzArEx_GetFullNameUtf16_Back(const CSzArEx *p, size_t fileIndex, UInt16 *dest)
1746
- {
1747
- BoolInt needSlash;
1748
- if (!p->FileNameOffsets)
1749
- {
1750
- *(--dest) = 0;
1751
- return dest;
1752
- }
1753
- needSlash = False;
1754
- for (;;)
1755
- {
1756
- UInt32 parent = (UInt32)(Int32)-1;
1757
- size_t curLen = p->FileNameOffsets[fileIndex + 1] - p->FileNameOffsets[fileIndex];
1758
- SzArEx_GetFileNameUtf16(p, fileIndex, dest - curLen);
1759
- if (needSlash)
1760
- *(dest - 1) = '/';
1761
- needSlash = True;
1762
- dest -= curLen;
1763
-
1764
- if SzBitWithVals_Check(&p->Parents, fileIndex)
1765
- parent = p->Parents.Vals[fileIndex];
1766
- if (parent == (UInt32)(Int32)-1)
1767
- return dest;
1768
- fileIndex = parent;
1769
- }
1770
- }
1771
- */