polyfile-weave 0.5.5__py3-none-any.whl

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.

Potentially problematic release.


This version of polyfile-weave might be problematic. Click here for more details.

Files changed (585) hide show
  1. polyfile/__init__.py +15 -0
  2. polyfile/__main__.py +394 -0
  3. polyfile/arithmetic.py +27 -0
  4. polyfile/ast.py +114 -0
  5. polyfile/debugger.py +1039 -0
  6. polyfile/expressions.py +346 -0
  7. polyfile/fileutils.py +343 -0
  8. polyfile/html.py +135 -0
  9. polyfile/http/__init__.py +1 -0
  10. polyfile/http/defacto.py +37 -0
  11. polyfile/http/deprecated.py +51 -0
  12. polyfile/http/experimental.py +67 -0
  13. polyfile/http/http_11.py +548 -0
  14. polyfile/http/matcher.py +37 -0
  15. polyfile/http/structured_headers.py +48 -0
  16. polyfile/iterators.py +72 -0
  17. polyfile/jpeg.py +24 -0
  18. polyfile/kaitai/__init__.py +0 -0
  19. polyfile/kaitai/compiler.py +156 -0
  20. polyfile/kaitai/parser.py +312 -0
  21. polyfile/kaitai/parsers/__init__.py +0 -0
  22. polyfile/kaitai/parsers/aix_utmp.py +116 -0
  23. polyfile/kaitai/parsers/allegro_dat.py +367 -0
  24. polyfile/kaitai/parsers/andes_firmware.py +64 -0
  25. polyfile/kaitai/parsers/android_bootldr_asus.py +105 -0
  26. polyfile/kaitai/parsers/android_bootldr_huawei.py +181 -0
  27. polyfile/kaitai/parsers/android_bootldr_qcom.py +217 -0
  28. polyfile/kaitai/parsers/android_dto.py +138 -0
  29. polyfile/kaitai/parsers/android_img.py +319 -0
  30. polyfile/kaitai/parsers/android_nanoapp_header.py +83 -0
  31. polyfile/kaitai/parsers/android_opengl_shaders_cache.py +151 -0
  32. polyfile/kaitai/parsers/android_sparse.py +237 -0
  33. polyfile/kaitai/parsers/android_super.py +401 -0
  34. polyfile/kaitai/parsers/apm_partition_table.py +196 -0
  35. polyfile/kaitai/parsers/apple_single_double.py +180 -0
  36. polyfile/kaitai/parsers/asn1_der.py +235 -0
  37. polyfile/kaitai/parsers/au.py +138 -0
  38. polyfile/kaitai/parsers/avantes_roh60.py +112 -0
  39. polyfile/kaitai/parsers/avi.py +296 -0
  40. polyfile/kaitai/parsers/bcd.py +111 -0
  41. polyfile/kaitai/parsers/bitcoin_transaction.py +210 -0
  42. polyfile/kaitai/parsers/blender_blend.py +334 -0
  43. polyfile/kaitai/parsers/bmp.py +780 -0
  44. polyfile/kaitai/parsers/bson.py +411 -0
  45. polyfile/kaitai/parsers/btrfs_stream.py +318 -0
  46. polyfile/kaitai/parsers/bytes_with_io.py +27 -0
  47. polyfile/kaitai/parsers/chrome_pak.py +194 -0
  48. polyfile/kaitai/parsers/code_6502.py +456 -0
  49. polyfile/kaitai/parsers/compressed_resource.py +217 -0
  50. polyfile/kaitai/parsers/cpio_old_le.py +154 -0
  51. polyfile/kaitai/parsers/cramfs.py +344 -0
  52. polyfile/kaitai/parsers/creative_voice_file.py +342 -0
  53. polyfile/kaitai/parsers/dbf.py +274 -0
  54. polyfile/kaitai/parsers/dcmp_0.py +664 -0
  55. polyfile/kaitai/parsers/dcmp_1.py +422 -0
  56. polyfile/kaitai/parsers/dcmp_2.py +312 -0
  57. polyfile/kaitai/parsers/dcmp_variable_length_integer.py +66 -0
  58. polyfile/kaitai/parsers/dex.py +1086 -0
  59. polyfile/kaitai/parsers/dicom.py +4370 -0
  60. polyfile/kaitai/parsers/dime_message.py +201 -0
  61. polyfile/kaitai/parsers/dns_packet.py +569 -0
  62. polyfile/kaitai/parsers/doom_wad.py +654 -0
  63. polyfile/kaitai/parsers/dos_datetime.py +191 -0
  64. polyfile/kaitai/parsers/dos_mz.py +172 -0
  65. polyfile/kaitai/parsers/ds_store.py +513 -0
  66. polyfile/kaitai/parsers/dtb.py +310 -0
  67. polyfile/kaitai/parsers/dune_2_pak.py +126 -0
  68. polyfile/kaitai/parsers/edid.py +472 -0
  69. polyfile/kaitai/parsers/efivar_signature_list.py +331 -0
  70. polyfile/kaitai/parsers/elf.py +2482 -0
  71. polyfile/kaitai/parsers/ethernet_frame.py +114 -0
  72. polyfile/kaitai/parsers/exif.py +723 -0
  73. polyfile/kaitai/parsers/ext2.py +537 -0
  74. polyfile/kaitai/parsers/fallout2_dat.py +187 -0
  75. polyfile/kaitai/parsers/fallout_dat.py +156 -0
  76. polyfile/kaitai/parsers/fasttracker_xm_module.py +558 -0
  77. polyfile/kaitai/parsers/ftl_dat.py +90 -0
  78. polyfile/kaitai/parsers/genmidi_op2.py +161 -0
  79. polyfile/kaitai/parsers/gettext_mo.py +541 -0
  80. polyfile/kaitai/parsers/gif.py +492 -0
  81. polyfile/kaitai/parsers/gimp_brush.py +244 -0
  82. polyfile/kaitai/parsers/glibc_utmp.py +114 -0
  83. polyfile/kaitai/parsers/gltf_binary.py +132 -0
  84. polyfile/kaitai/parsers/google_protobuf.py +151 -0
  85. polyfile/kaitai/parsers/gpt_partition_table.py +175 -0
  86. polyfile/kaitai/parsers/gran_turismo_vol.py +140 -0
  87. polyfile/kaitai/parsers/grub2_font.py +337 -0
  88. polyfile/kaitai/parsers/gzip.py +232 -0
  89. polyfile/kaitai/parsers/hashcat_restore.py +60 -0
  90. polyfile/kaitai/parsers/hccap.py +111 -0
  91. polyfile/kaitai/parsers/hccapx.py +103 -0
  92. polyfile/kaitai/parsers/heaps_pak.py +177 -0
  93. polyfile/kaitai/parsers/heroes_of_might_and_magic_agg.py +116 -0
  94. polyfile/kaitai/parsers/heroes_of_might_and_magic_bmp.py +34 -0
  95. polyfile/kaitai/parsers/icmp_packet.py +136 -0
  96. polyfile/kaitai/parsers/ico.py +129 -0
  97. polyfile/kaitai/parsers/id3v1_1.py +220 -0
  98. polyfile/kaitai/parsers/id3v2_3.py +324 -0
  99. polyfile/kaitai/parsers/id3v2_4.py +423 -0
  100. polyfile/kaitai/parsers/ines.py +282 -0
  101. polyfile/kaitai/parsers/ipv4_packet.py +158 -0
  102. polyfile/kaitai/parsers/ipv6_packet.py +55 -0
  103. polyfile/kaitai/parsers/iso9660.py +544 -0
  104. polyfile/kaitai/parsers/java_class.py +1113 -0
  105. polyfile/kaitai/parsers/jpeg.py +361 -0
  106. polyfile/kaitai/parsers/luks.py +149 -0
  107. polyfile/kaitai/parsers/lzh.py +165 -0
  108. polyfile/kaitai/parsers/mac_os_resource_snd.py +493 -0
  109. polyfile/kaitai/parsers/mach_o.py +3033 -0
  110. polyfile/kaitai/parsers/mach_o_fat.py +92 -0
  111. polyfile/kaitai/parsers/magicavoxel_vox.py +391 -0
  112. polyfile/kaitai/parsers/manifest.json +1 -0
  113. polyfile/kaitai/parsers/mbr_partition_table.py +119 -0
  114. polyfile/kaitai/parsers/mcap.py +1015 -0
  115. polyfile/kaitai/parsers/microsoft_cfb.py +293 -0
  116. polyfile/kaitai/parsers/microsoft_network_monitor_v2.py +309 -0
  117. polyfile/kaitai/parsers/microsoft_pe.py +765 -0
  118. polyfile/kaitai/parsers/mifare_classic.py +706 -0
  119. polyfile/kaitai/parsers/minecraft_nbt.py +449 -0
  120. polyfile/kaitai/parsers/monomakh_sapr_chg.py +69 -0
  121. polyfile/kaitai/parsers/mozilla_mar.py +239 -0
  122. polyfile/kaitai/parsers/mp4.py +333 -0
  123. polyfile/kaitai/parsers/msgpack.py +467 -0
  124. polyfile/kaitai/parsers/nitf.py +1189 -0
  125. polyfile/kaitai/parsers/nt_mdt_pal.py +155 -0
  126. polyfile/kaitai/parsers/ogg.py +118 -0
  127. polyfile/kaitai/parsers/openpgp_message.py +993 -0
  128. polyfile/kaitai/parsers/packet_ppi.py +515 -0
  129. polyfile/kaitai/parsers/pcap.py +344 -0
  130. polyfile/kaitai/parsers/pcf_font.py +506 -0
  131. polyfile/kaitai/parsers/pcx.py +195 -0
  132. polyfile/kaitai/parsers/pcx_dcx.py +79 -0
  133. polyfile/kaitai/parsers/phar_without_stub.py +399 -0
  134. polyfile/kaitai/parsers/php_serialized_value.py +505 -0
  135. polyfile/kaitai/parsers/png.py +721 -0
  136. polyfile/kaitai/parsers/protocol_body.py +260 -0
  137. polyfile/kaitai/parsers/psx_tim.py +104 -0
  138. polyfile/kaitai/parsers/python_pickle.py +718 -0
  139. polyfile/kaitai/parsers/python_pyc_27.py +510 -0
  140. polyfile/kaitai/parsers/quake_mdl.py +441 -0
  141. polyfile/kaitai/parsers/quake_pak.py +112 -0
  142. polyfile/kaitai/parsers/quicktime_mov.py +634 -0
  143. polyfile/kaitai/parsers/rar.py +265 -0
  144. polyfile/kaitai/parsers/regf.py +569 -0
  145. polyfile/kaitai/parsers/renderware_binary_stream.py +877 -0
  146. polyfile/kaitai/parsers/resource_fork.py +611 -0
  147. polyfile/kaitai/parsers/respack.py +57 -0
  148. polyfile/kaitai/parsers/riff.py +409 -0
  149. polyfile/kaitai/parsers/rpm.py +964 -0
  150. polyfile/kaitai/parsers/rtcp_payload.py +579 -0
  151. polyfile/kaitai/parsers/rtp_packet.py +150 -0
  152. polyfile/kaitai/parsers/rtpdump.py +115 -0
  153. polyfile/kaitai/parsers/ruby_marshal.py +423 -0
  154. polyfile/kaitai/parsers/s3m.py +493 -0
  155. polyfile/kaitai/parsers/saints_row_2_vpp_pc.py +254 -0
  156. polyfile/kaitai/parsers/shapefile_index.py +174 -0
  157. polyfile/kaitai/parsers/shapefile_main.py +893 -0
  158. polyfile/kaitai/parsers/some_ip.py +209 -0
  159. polyfile/kaitai/parsers/some_ip_container.py +37 -0
  160. polyfile/kaitai/parsers/some_ip_sd.py +86 -0
  161. polyfile/kaitai/parsers/some_ip_sd_entries.py +160 -0
  162. polyfile/kaitai/parsers/some_ip_sd_options.py +374 -0
  163. polyfile/kaitai/parsers/specpr.py +404 -0
  164. polyfile/kaitai/parsers/sqlite3.py +472 -0
  165. polyfile/kaitai/parsers/ssh_public_key.py +252 -0
  166. polyfile/kaitai/parsers/standard_midi_file.py +390 -0
  167. polyfile/kaitai/parsers/stl.py +111 -0
  168. polyfile/kaitai/parsers/sudoers_ts.py +201 -0
  169. polyfile/kaitai/parsers/swf.py +406 -0
  170. polyfile/kaitai/parsers/systemd_journal.py +361 -0
  171. polyfile/kaitai/parsers/tcp_segment.py +57 -0
  172. polyfile/kaitai/parsers/tga.py +213 -0
  173. polyfile/kaitai/parsers/tls_client_hello.py +293 -0
  174. polyfile/kaitai/parsers/tr_dos_image.py +322 -0
  175. polyfile/kaitai/parsers/tsm.py +198 -0
  176. polyfile/kaitai/parsers/ttf.py +1847 -0
  177. polyfile/kaitai/parsers/udp_datagram.py +42 -0
  178. polyfile/kaitai/parsers/uefi_te.py +236 -0
  179. polyfile/kaitai/parsers/uimage.py +198 -0
  180. polyfile/kaitai/parsers/utf8_string.py +137 -0
  181. polyfile/kaitai/parsers/vfat.py +410 -0
  182. polyfile/kaitai/parsers/vlq_base128_be.py +104 -0
  183. polyfile/kaitai/parsers/vlq_base128_le.py +129 -0
  184. polyfile/kaitai/parsers/vmware_vmdk.py +167 -0
  185. polyfile/kaitai/parsers/vp8_ivf.py +112 -0
  186. polyfile/kaitai/parsers/warcraft_2_pud.py +423 -0
  187. polyfile/kaitai/parsers/wav.py +1014 -0
  188. polyfile/kaitai/parsers/websocket.py +167 -0
  189. polyfile/kaitai/parsers/windows_evt_log.py +304 -0
  190. polyfile/kaitai/parsers/windows_lnk_file.py +467 -0
  191. polyfile/kaitai/parsers/windows_minidump.py +575 -0
  192. polyfile/kaitai/parsers/windows_resource_file.py +243 -0
  193. polyfile/kaitai/parsers/windows_shell_items.py +190 -0
  194. polyfile/kaitai/parsers/windows_systemtime.py +52 -0
  195. polyfile/kaitai/parsers/wmf.py +502 -0
  196. polyfile/kaitai/parsers/xar.py +181 -0
  197. polyfile/kaitai/parsers/xwd.py +189 -0
  198. polyfile/kaitai/parsers/zip.py +685 -0
  199. polyfile/kaitai/parsers/zisofs.py +158 -0
  200. polyfile/kaitai/parsers/zx_spectrum_tap.py +184 -0
  201. polyfile/kaitaimatcher.py +113 -0
  202. polyfile/languagematcher.py +217 -0
  203. polyfile/logger.py +135 -0
  204. polyfile/magic.py +2983 -0
  205. polyfile/magic_defs/COPYING +29 -0
  206. polyfile/magic_defs/__init__.py +0 -0
  207. polyfile/magic_defs/acorn +102 -0
  208. polyfile/magic_defs/adi +13 -0
  209. polyfile/magic_defs/adventure +122 -0
  210. polyfile/magic_defs/aes +29 -0
  211. polyfile/magic_defs/algol68 +35 -0
  212. polyfile/magic_defs/allegro +9 -0
  213. polyfile/magic_defs/alliant +18 -0
  214. polyfile/magic_defs/alpha +32 -0
  215. polyfile/magic_defs/amanda +12 -0
  216. polyfile/magic_defs/amigaos +218 -0
  217. polyfile/magic_defs/android +259 -0
  218. polyfile/magic_defs/animation +1197 -0
  219. polyfile/magic_defs/aout +46 -0
  220. polyfile/magic_defs/apache +28 -0
  221. polyfile/magic_defs/apl +7 -0
  222. polyfile/magic_defs/apple +773 -0
  223. polyfile/magic_defs/application +7 -0
  224. polyfile/magic_defs/applix +13 -0
  225. polyfile/magic_defs/apt +52 -0
  226. polyfile/magic_defs/archive +2586 -0
  227. polyfile/magic_defs/aria +38 -0
  228. polyfile/magic_defs/arm +50 -0
  229. polyfile/magic_defs/asf +132 -0
  230. polyfile/magic_defs/assembler +18 -0
  231. polyfile/magic_defs/asterix +18 -0
  232. polyfile/magic_defs/att3b +41 -0
  233. polyfile/magic_defs/audio +1291 -0
  234. polyfile/magic_defs/avm +33 -0
  235. polyfile/magic_defs/basis +18 -0
  236. polyfile/magic_defs/beetle +7 -0
  237. polyfile/magic_defs/ber +65 -0
  238. polyfile/magic_defs/bflt +14 -0
  239. polyfile/magic_defs/bhl +10 -0
  240. polyfile/magic_defs/bioinformatics +178 -0
  241. polyfile/magic_defs/biosig +154 -0
  242. polyfile/magic_defs/blackberry +8 -0
  243. polyfile/magic_defs/blcr +25 -0
  244. polyfile/magic_defs/blender +50 -0
  245. polyfile/magic_defs/blit +24 -0
  246. polyfile/magic_defs/bm +10 -0
  247. polyfile/magic_defs/bout +11 -0
  248. polyfile/magic_defs/bsdi +33 -0
  249. polyfile/magic_defs/bsi +10 -0
  250. polyfile/magic_defs/btsnoop +13 -0
  251. polyfile/magic_defs/burp +7 -0
  252. polyfile/magic_defs/bytecode +41 -0
  253. polyfile/magic_defs/c-lang +110 -0
  254. polyfile/magic_defs/c64 +531 -0
  255. polyfile/magic_defs/cad +437 -0
  256. polyfile/magic_defs/cafebabe +107 -0
  257. polyfile/magic_defs/cbor +21 -0
  258. polyfile/magic_defs/ccf +14 -0
  259. polyfile/magic_defs/cddb +12 -0
  260. polyfile/magic_defs/chord +15 -0
  261. polyfile/magic_defs/cisco +12 -0
  262. polyfile/magic_defs/citrus +12 -0
  263. polyfile/magic_defs/clarion +27 -0
  264. polyfile/magic_defs/claris +48 -0
  265. polyfile/magic_defs/clipper +65 -0
  266. polyfile/magic_defs/clojure +30 -0
  267. polyfile/magic_defs/coff +98 -0
  268. polyfile/magic_defs/commands +201 -0
  269. polyfile/magic_defs/communications +22 -0
  270. polyfile/magic_defs/compress +461 -0
  271. polyfile/magic_defs/console +1213 -0
  272. polyfile/magic_defs/convex +69 -0
  273. polyfile/magic_defs/coverage +91 -0
  274. polyfile/magic_defs/cracklib +14 -0
  275. polyfile/magic_defs/crypto +31 -0
  276. polyfile/magic_defs/csv +8 -0
  277. polyfile/magic_defs/ctags +6 -0
  278. polyfile/magic_defs/ctf +23 -0
  279. polyfile/magic_defs/cubemap +8 -0
  280. polyfile/magic_defs/cups +56 -0
  281. polyfile/magic_defs/dact +11 -0
  282. polyfile/magic_defs/database +886 -0
  283. polyfile/magic_defs/dataone +47 -0
  284. polyfile/magic_defs/dbpf +15 -0
  285. polyfile/magic_defs/der +146 -0
  286. polyfile/magic_defs/diamond +12 -0
  287. polyfile/magic_defs/dif +33 -0
  288. polyfile/magic_defs/diff +41 -0
  289. polyfile/magic_defs/digital +59 -0
  290. polyfile/magic_defs/dolby +69 -0
  291. polyfile/magic_defs/dsf +25 -0
  292. polyfile/magic_defs/dump +96 -0
  293. polyfile/magic_defs/dwarfs +45 -0
  294. polyfile/magic_defs/dyadic +61 -0
  295. polyfile/magic_defs/ebml +8 -0
  296. polyfile/magic_defs/edid +11 -0
  297. polyfile/magic_defs/editors +43 -0
  298. polyfile/magic_defs/efi +15 -0
  299. polyfile/magic_defs/elf +379 -0
  300. polyfile/magic_defs/encore +22 -0
  301. polyfile/magic_defs/epoc +62 -0
  302. polyfile/magic_defs/erlang +21 -0
  303. polyfile/magic_defs/espressif +57 -0
  304. polyfile/magic_defs/esri +28 -0
  305. polyfile/magic_defs/etf +33 -0
  306. polyfile/magic_defs/fcs +9 -0
  307. polyfile/magic_defs/filesystems +2694 -0
  308. polyfile/magic_defs/finger +16 -0
  309. polyfile/magic_defs/firmware +133 -0
  310. polyfile/magic_defs/flash +62 -0
  311. polyfile/magic_defs/flif +36 -0
  312. polyfile/magic_defs/fonts +449 -0
  313. polyfile/magic_defs/forth +82 -0
  314. polyfile/magic_defs/fortran +9 -0
  315. polyfile/magic_defs/frame +62 -0
  316. polyfile/magic_defs/freebsd +164 -0
  317. polyfile/magic_defs/fsav +128 -0
  318. polyfile/magic_defs/fusecompress +12 -0
  319. polyfile/magic_defs/games +696 -0
  320. polyfile/magic_defs/gcc +17 -0
  321. polyfile/magic_defs/gconv +10 -0
  322. polyfile/magic_defs/gentoo +85 -0
  323. polyfile/magic_defs/geo +166 -0
  324. polyfile/magic_defs/geos +20 -0
  325. polyfile/magic_defs/gimp +77 -0
  326. polyfile/magic_defs/git +13 -0
  327. polyfile/magic_defs/glibc +21 -0
  328. polyfile/magic_defs/gnome +59 -0
  329. polyfile/magic_defs/gnu +173 -0
  330. polyfile/magic_defs/gnumeric +8 -0
  331. polyfile/magic_defs/gpt +240 -0
  332. polyfile/magic_defs/gpu +28 -0
  333. polyfile/magic_defs/grace +21 -0
  334. polyfile/magic_defs/graphviz +12 -0
  335. polyfile/magic_defs/gringotts +48 -0
  336. polyfile/magic_defs/guile +13 -0
  337. polyfile/magic_defs/hardware +12 -0
  338. polyfile/magic_defs/hitachi-sh +30 -0
  339. polyfile/magic_defs/hp +433 -0
  340. polyfile/magic_defs/human68k +26 -0
  341. polyfile/magic_defs/ibm370 +52 -0
  342. polyfile/magic_defs/ibm6000 +35 -0
  343. polyfile/magic_defs/icc +214 -0
  344. polyfile/magic_defs/iff +80 -0
  345. polyfile/magic_defs/images +4210 -0
  346. polyfile/magic_defs/inform +9 -0
  347. polyfile/magic_defs/intel +310 -0
  348. polyfile/magic_defs/interleaf +9 -0
  349. polyfile/magic_defs/island +10 -0
  350. polyfile/magic_defs/ispell +63 -0
  351. polyfile/magic_defs/isz +15 -0
  352. polyfile/magic_defs/java +52 -0
  353. polyfile/magic_defs/javascript +171 -0
  354. polyfile/magic_defs/jpeg +252 -0
  355. polyfile/magic_defs/json +8 -0
  356. polyfile/magic_defs/karma +9 -0
  357. polyfile/magic_defs/kde +11 -0
  358. polyfile/magic_defs/keepass +20 -0
  359. polyfile/magic_defs/kerberos +45 -0
  360. polyfile/magic_defs/kicad +85 -0
  361. polyfile/magic_defs/kml +34 -0
  362. polyfile/magic_defs/lammps +64 -0
  363. polyfile/magic_defs/lecter +6 -0
  364. polyfile/magic_defs/lex +12 -0
  365. polyfile/magic_defs/lif +50 -0
  366. polyfile/magic_defs/linux +557 -0
  367. polyfile/magic_defs/lisp +78 -0
  368. polyfile/magic_defs/llvm +22 -0
  369. polyfile/magic_defs/locoscript +12 -0
  370. polyfile/magic_defs/lua +31 -0
  371. polyfile/magic_defs/luks +126 -0
  372. polyfile/magic_defs/m4 +11 -0
  373. polyfile/magic_defs/mach +303 -0
  374. polyfile/magic_defs/macintosh +505 -0
  375. polyfile/magic_defs/macos +7 -0
  376. polyfile/magic_defs/magic +10 -0
  377. polyfile/magic_defs/magic.mgc +0 -0
  378. polyfile/magic_defs/mail.news +132 -0
  379. polyfile/magic_defs/make +21 -0
  380. polyfile/magic_defs/map +413 -0
  381. polyfile/magic_defs/maple +109 -0
  382. polyfile/magic_defs/marc21 +30 -0
  383. polyfile/magic_defs/mathcad +8 -0
  384. polyfile/magic_defs/mathematica +188 -0
  385. polyfile/magic_defs/matroska +17 -0
  386. polyfile/magic_defs/mcrypt +52 -0
  387. polyfile/magic_defs/measure +44 -0
  388. polyfile/magic_defs/mercurial +13 -0
  389. polyfile/magic_defs/metastore +8 -0
  390. polyfile/magic_defs/meteorological +53 -0
  391. polyfile/magic_defs/microfocus +21 -0
  392. polyfile/magic_defs/mime +9 -0
  393. polyfile/magic_defs/mips +120 -0
  394. polyfile/magic_defs/mirage +8 -0
  395. polyfile/magic_defs/misctools +140 -0
  396. polyfile/magic_defs/mkid +11 -0
  397. polyfile/magic_defs/mlssa +8 -0
  398. polyfile/magic_defs/mmdf +6 -0
  399. polyfile/magic_defs/modem +92 -0
  400. polyfile/magic_defs/modulefile +9 -0
  401. polyfile/magic_defs/motorola +71 -0
  402. polyfile/magic_defs/mozilla +37 -0
  403. polyfile/magic_defs/msdos +2304 -0
  404. polyfile/magic_defs/msooxml +68 -0
  405. polyfile/magic_defs/msvc +222 -0
  406. polyfile/magic_defs/msx +309 -0
  407. polyfile/magic_defs/mup +24 -0
  408. polyfile/magic_defs/music +17 -0
  409. polyfile/magic_defs/nasa +7 -0
  410. polyfile/magic_defs/natinst +24 -0
  411. polyfile/magic_defs/ncr +49 -0
  412. polyfile/magic_defs/neko +12 -0
  413. polyfile/magic_defs/netbsd +251 -0
  414. polyfile/magic_defs/netscape +26 -0
  415. polyfile/magic_defs/netware +11 -0
  416. polyfile/magic_defs/news +13 -0
  417. polyfile/magic_defs/nifty +202 -0
  418. polyfile/magic_defs/nim-lang +29 -0
  419. polyfile/magic_defs/nitpicker +14 -0
  420. polyfile/magic_defs/numpy +9 -0
  421. polyfile/magic_defs/oasis +12 -0
  422. polyfile/magic_defs/ocaml +14 -0
  423. polyfile/magic_defs/octave +6 -0
  424. polyfile/magic_defs/ole2compounddocs +760 -0
  425. polyfile/magic_defs/olf +98 -0
  426. polyfile/magic_defs/openfst +17 -0
  427. polyfile/magic_defs/opentimestamps +16 -0
  428. polyfile/magic_defs/oric +16 -0
  429. polyfile/magic_defs/os2 +186 -0
  430. polyfile/magic_defs/os400 +39 -0
  431. polyfile/magic_defs/os9 +80 -0
  432. polyfile/magic_defs/osf1 +10 -0
  433. polyfile/magic_defs/palm +156 -0
  434. polyfile/magic_defs/parix +13 -0
  435. polyfile/magic_defs/parrot +22 -0
  436. polyfile/magic_defs/pascal +39 -0
  437. polyfile/magic_defs/pbf +11 -0
  438. polyfile/magic_defs/pbm +8 -0
  439. polyfile/magic_defs/pc88 +24 -0
  440. polyfile/magic_defs/pc98 +77 -0
  441. polyfile/magic_defs/pci_ids +116 -0
  442. polyfile/magic_defs/pcjr +8 -0
  443. polyfile/magic_defs/pdf +51 -0
  444. polyfile/magic_defs/pdp +42 -0
  445. polyfile/magic_defs/perl +100 -0
  446. polyfile/magic_defs/pgf +52 -0
  447. polyfile/magic_defs/pgp +581 -0
  448. polyfile/magic_defs/pgp-binary-keys +388 -0
  449. polyfile/magic_defs/pkgadd +7 -0
  450. polyfile/magic_defs/plan9 +25 -0
  451. polyfile/magic_defs/playdate +57 -0
  452. polyfile/magic_defs/plus5 +18 -0
  453. polyfile/magic_defs/pmem +46 -0
  454. polyfile/magic_defs/polyfile_zip +5 -0
  455. polyfile/magic_defs/polyml +23 -0
  456. polyfile/magic_defs/printer +269 -0
  457. polyfile/magic_defs/project +10 -0
  458. polyfile/magic_defs/psdbms +14 -0
  459. polyfile/magic_defs/psl +14 -0
  460. polyfile/magic_defs/pulsar +13 -0
  461. polyfile/magic_defs/puzzle +17 -0
  462. polyfile/magic_defs/pwsafe +14 -0
  463. polyfile/magic_defs/pyramid +12 -0
  464. polyfile/magic_defs/python +305 -0
  465. polyfile/magic_defs/qt +30 -0
  466. polyfile/magic_defs/revision +66 -0
  467. polyfile/magic_defs/riff +840 -0
  468. polyfile/magic_defs/rinex +44 -0
  469. polyfile/magic_defs/ringdove +45 -0
  470. polyfile/magic_defs/rpi +52 -0
  471. polyfile/magic_defs/rpm +45 -0
  472. polyfile/magic_defs/rpmsg +7 -0
  473. polyfile/magic_defs/rst +11 -0
  474. polyfile/magic_defs/rtf +94 -0
  475. polyfile/magic_defs/ruby +55 -0
  476. polyfile/magic_defs/rust +21 -0
  477. polyfile/magic_defs/sc +7 -0
  478. polyfile/magic_defs/sccs +24 -0
  479. polyfile/magic_defs/scientific +144 -0
  480. polyfile/magic_defs/securitycerts +6 -0
  481. polyfile/magic_defs/selinux +24 -0
  482. polyfile/magic_defs/sendmail +37 -0
  483. polyfile/magic_defs/sequent +42 -0
  484. polyfile/magic_defs/sereal +35 -0
  485. polyfile/magic_defs/sgi +144 -0
  486. polyfile/magic_defs/sgml +161 -0
  487. polyfile/magic_defs/sharc +23 -0
  488. polyfile/magic_defs/sinclair +40 -0
  489. polyfile/magic_defs/sisu +18 -0
  490. polyfile/magic_defs/sketch +6 -0
  491. polyfile/magic_defs/smalltalk +25 -0
  492. polyfile/magic_defs/smile +34 -0
  493. polyfile/magic_defs/sniffer +482 -0
  494. polyfile/magic_defs/softquad +40 -0
  495. polyfile/magic_defs/sosi +40 -0
  496. polyfile/magic_defs/spec +21 -0
  497. polyfile/magic_defs/spectrum +184 -0
  498. polyfile/magic_defs/sql +288 -0
  499. polyfile/magic_defs/ssh +39 -0
  500. polyfile/magic_defs/ssl +20 -0
  501. polyfile/magic_defs/statistics +45 -0
  502. polyfile/magic_defs/subtitle +38 -0
  503. polyfile/magic_defs/sun +141 -0
  504. polyfile/magic_defs/svf +5 -0
  505. polyfile/magic_defs/sylk +36 -0
  506. polyfile/magic_defs/symbos +42 -0
  507. polyfile/magic_defs/sysex +429 -0
  508. polyfile/magic_defs/tcl +29 -0
  509. polyfile/magic_defs/teapot +6 -0
  510. polyfile/magic_defs/terminfo +63 -0
  511. polyfile/magic_defs/tex +141 -0
  512. polyfile/magic_defs/tgif +7 -0
  513. polyfile/magic_defs/ti-8x +239 -0
  514. polyfile/magic_defs/timezone +42 -0
  515. polyfile/magic_defs/tplink +95 -0
  516. polyfile/magic_defs/troff +38 -0
  517. polyfile/magic_defs/tuxedo +8 -0
  518. polyfile/magic_defs/typeset +8 -0
  519. polyfile/magic_defs/uf2 +72 -0
  520. polyfile/magic_defs/unicode +15 -0
  521. polyfile/magic_defs/unisig +12 -0
  522. polyfile/magic_defs/unknown +34 -0
  523. polyfile/magic_defs/usd +21 -0
  524. polyfile/magic_defs/uterus +16 -0
  525. polyfile/magic_defs/uuencode +28 -0
  526. polyfile/magic_defs/vacuum-cleaner +54 -0
  527. polyfile/magic_defs/varied.out +46 -0
  528. polyfile/magic_defs/varied.script +21 -0
  529. polyfile/magic_defs/vax +32 -0
  530. polyfile/magic_defs/vicar +17 -0
  531. polyfile/magic_defs/virtual +307 -0
  532. polyfile/magic_defs/virtutech +12 -0
  533. polyfile/magic_defs/visx +32 -0
  534. polyfile/magic_defs/vms +30 -0
  535. polyfile/magic_defs/vmware +6 -0
  536. polyfile/magic_defs/vorbis +155 -0
  537. polyfile/magic_defs/vxl +14 -0
  538. polyfile/magic_defs/warc +16 -0
  539. polyfile/magic_defs/weak +16 -0
  540. polyfile/magic_defs/web +18 -0
  541. polyfile/magic_defs/webassembly +17 -0
  542. polyfile/magic_defs/windows +1811 -0
  543. polyfile/magic_defs/wireless +7 -0
  544. polyfile/magic_defs/wordprocessors +630 -0
  545. polyfile/magic_defs/wsdl +23 -0
  546. polyfile/magic_defs/x68000 +25 -0
  547. polyfile/magic_defs/xdelta +13 -0
  548. polyfile/magic_defs/xenix +106 -0
  549. polyfile/magic_defs/xilinx +58 -0
  550. polyfile/magic_defs/xo65 +37 -0
  551. polyfile/magic_defs/xwindows +43 -0
  552. polyfile/magic_defs/yara +17 -0
  553. polyfile/magic_defs/zfs +96 -0
  554. polyfile/magic_defs/zilog +12 -0
  555. polyfile/magic_defs/zip +126 -0
  556. polyfile/magic_defs/zyxel +17 -0
  557. polyfile/nes.py +144 -0
  558. polyfile/nitf.py +15 -0
  559. polyfile/pdf.py +1264 -0
  560. polyfile/pickles.py +45 -0
  561. polyfile/polyfile.py +409 -0
  562. polyfile/profiling.py +115 -0
  563. polyfile/repl.py +624 -0
  564. polyfile/search.py +310 -0
  565. polyfile/serialization.py +323 -0
  566. polyfile/structmatcher.py +46 -0
  567. polyfile/structs.py +281 -0
  568. polyfile/templates/download.js +162 -0
  569. polyfile/templates/hexdump.css +268 -0
  570. polyfile/templates/hexdump.js +756 -0
  571. polyfile/templates/jquery-3.4.1.min.js +2 -0
  572. polyfile/templates/template.html +119 -0
  573. polyfile/wildcards.py +62 -0
  574. polyfile/zipmatcher.py +183 -0
  575. polyfile_weave-0.5.5.dist-info/METADATA +173 -0
  576. polyfile_weave-0.5.5.dist-info/RECORD +585 -0
  577. polyfile_weave-0.5.5.dist-info/WHEEL +5 -0
  578. polyfile_weave-0.5.5.dist-info/entry_points.txt +2 -0
  579. polyfile_weave-0.5.5.dist-info/licenses/LICENSE +202 -0
  580. polyfile_weave-0.5.5.dist-info/top_level.txt +2 -0
  581. polymerge/__init__.py +1 -0
  582. polymerge/__main__.py +296 -0
  583. polymerge/cfg.py +127 -0
  584. polymerge/polymerge.py +227 -0
  585. polymerge/polytracker.py +190 -0
@@ -0,0 +1,723 @@
1
+ # This is a generated file! Please edit source .ksy file and use kaitai-struct-compiler to rebuild
2
+
3
+ from pkg_resources import parse_version
4
+ import kaitaistruct
5
+ from kaitaistruct import KaitaiStruct, KaitaiStream, BytesIO
6
+ import collections
7
+ from enum import Enum
8
+
9
+
10
+ if parse_version(kaitaistruct.__version__) < parse_version('0.9'):
11
+ raise Exception("Incompatible Kaitai Struct Python API: 0.9 or later is required, but you have %s" % (kaitaistruct.__version__))
12
+
13
+ class Exif(KaitaiStruct):
14
+ SEQ_FIELDS = ["endianness", "body"]
15
+ def __init__(self, _io, _parent=None, _root=None):
16
+ self._io = _io
17
+ self._parent = _parent
18
+ self._root = _root if _root else self
19
+ self._debug = collections.defaultdict(dict)
20
+
21
+ def _read(self):
22
+ self._debug['endianness']['start'] = self._io.pos()
23
+ self.endianness = self._io.read_u2le()
24
+ self._debug['endianness']['end'] = self._io.pos()
25
+ self._debug['body']['start'] = self._io.pos()
26
+ self.body = Exif.ExifBody(self._io, self, self._root)
27
+ self.body._read()
28
+ self._debug['body']['end'] = self._io.pos()
29
+
30
+ class ExifBody(KaitaiStruct):
31
+ SEQ_FIELDS = ["version", "ifd0_ofs"]
32
+ def __init__(self, _io, _parent=None, _root=None):
33
+ self._io = _io
34
+ self._parent = _parent
35
+ self._root = _root if _root else self
36
+ self._debug = collections.defaultdict(dict)
37
+
38
+ def _read(self):
39
+ _on = self._root.endianness
40
+ if _on == 18761:
41
+ self._is_le = True
42
+ elif _on == 19789:
43
+ self._is_le = False
44
+ if not hasattr(self, '_is_le'):
45
+ raise kaitaistruct.UndecidedEndiannessError("/types/exif_body")
46
+ elif self._is_le == True:
47
+ self._read_le()
48
+ elif self._is_le == False:
49
+ self._read_be()
50
+
51
+ def _read_le(self):
52
+ self._debug['version']['start'] = self._io.pos()
53
+ self.version = self._io.read_u2le()
54
+ self._debug['version']['end'] = self._io.pos()
55
+ self._debug['ifd0_ofs']['start'] = self._io.pos()
56
+ self.ifd0_ofs = self._io.read_u4le()
57
+ self._debug['ifd0_ofs']['end'] = self._io.pos()
58
+
59
+ def _read_be(self):
60
+ self._debug['version']['start'] = self._io.pos()
61
+ self.version = self._io.read_u2be()
62
+ self._debug['version']['end'] = self._io.pos()
63
+ self._debug['ifd0_ofs']['start'] = self._io.pos()
64
+ self.ifd0_ofs = self._io.read_u4be()
65
+ self._debug['ifd0_ofs']['end'] = self._io.pos()
66
+
67
+ class Ifd(KaitaiStruct):
68
+ SEQ_FIELDS = ["num_fields", "fields", "next_ifd_ofs"]
69
+ def __init__(self, _io, _parent=None, _root=None, _is_le=None):
70
+ self._io = _io
71
+ self._parent = _parent
72
+ self._root = _root if _root else self
73
+ self._is_le = _is_le
74
+ self._debug = collections.defaultdict(dict)
75
+
76
+ def _read(self):
77
+ if not hasattr(self, '_is_le'):
78
+ raise kaitaistruct.UndecidedEndiannessError("/types/exif_body/types/ifd")
79
+ elif self._is_le == True:
80
+ self._read_le()
81
+ elif self._is_le == False:
82
+ self._read_be()
83
+
84
+ def _read_le(self):
85
+ self._debug['num_fields']['start'] = self._io.pos()
86
+ self.num_fields = self._io.read_u2le()
87
+ self._debug['num_fields']['end'] = self._io.pos()
88
+ self._debug['fields']['start'] = self._io.pos()
89
+ self.fields = [None] * (self.num_fields)
90
+ for i in range(self.num_fields):
91
+ if not 'arr' in self._debug['fields']:
92
+ self._debug['fields']['arr'] = []
93
+ self._debug['fields']['arr'].append({'start': self._io.pos()})
94
+ _t_fields = Exif.ExifBody.IfdField(self._io, self, self._root, self._is_le)
95
+ _t_fields._read()
96
+ self.fields[i] = _t_fields
97
+ self._debug['fields']['arr'][i]['end'] = self._io.pos()
98
+
99
+ self._debug['fields']['end'] = self._io.pos()
100
+ self._debug['next_ifd_ofs']['start'] = self._io.pos()
101
+ self.next_ifd_ofs = self._io.read_u4le()
102
+ self._debug['next_ifd_ofs']['end'] = self._io.pos()
103
+
104
+ def _read_be(self):
105
+ self._debug['num_fields']['start'] = self._io.pos()
106
+ self.num_fields = self._io.read_u2be()
107
+ self._debug['num_fields']['end'] = self._io.pos()
108
+ self._debug['fields']['start'] = self._io.pos()
109
+ self.fields = [None] * (self.num_fields)
110
+ for i in range(self.num_fields):
111
+ if not 'arr' in self._debug['fields']:
112
+ self._debug['fields']['arr'] = []
113
+ self._debug['fields']['arr'].append({'start': self._io.pos()})
114
+ _t_fields = Exif.ExifBody.IfdField(self._io, self, self._root, self._is_le)
115
+ _t_fields._read()
116
+ self.fields[i] = _t_fields
117
+ self._debug['fields']['arr'][i]['end'] = self._io.pos()
118
+
119
+ self._debug['fields']['end'] = self._io.pos()
120
+ self._debug['next_ifd_ofs']['start'] = self._io.pos()
121
+ self.next_ifd_ofs = self._io.read_u4be()
122
+ self._debug['next_ifd_ofs']['end'] = self._io.pos()
123
+
124
+ @property
125
+ def next_ifd(self):
126
+ if hasattr(self, '_m_next_ifd'):
127
+ return self._m_next_ifd if hasattr(self, '_m_next_ifd') else None
128
+
129
+ if self.next_ifd_ofs != 0:
130
+ _pos = self._io.pos()
131
+ self._io.seek(self.next_ifd_ofs)
132
+ self._debug['_m_next_ifd']['start'] = self._io.pos()
133
+ if self._is_le:
134
+ self._m_next_ifd = Exif.ExifBody.Ifd(self._io, self, self._root, self._is_le)
135
+ self._m_next_ifd._read()
136
+ else:
137
+ self._m_next_ifd = Exif.ExifBody.Ifd(self._io, self, self._root, self._is_le)
138
+ self._m_next_ifd._read()
139
+ self._debug['_m_next_ifd']['end'] = self._io.pos()
140
+ self._io.seek(_pos)
141
+
142
+ return self._m_next_ifd if hasattr(self, '_m_next_ifd') else None
143
+
144
+
145
+ class IfdField(KaitaiStruct):
146
+
147
+ class FieldTypeEnum(Enum):
148
+ byte = 1
149
+ ascii_string = 2
150
+ word = 3
151
+ dword = 4
152
+ rational = 5
153
+ undefined = 7
154
+ slong = 9
155
+ srational = 10
156
+
157
+ class TagEnum(Enum):
158
+ image_width = 256
159
+ image_height = 257
160
+ bits_per_sample = 258
161
+ compression = 259
162
+ photometric_interpretation = 262
163
+ thresholding = 263
164
+ cell_width = 264
165
+ cell_length = 265
166
+ fill_order = 266
167
+ document_name = 269
168
+ image_description = 270
169
+ make = 271
170
+ model = 272
171
+ strip_offsets = 273
172
+ orientation = 274
173
+ samples_per_pixel = 277
174
+ rows_per_strip = 278
175
+ strip_byte_counts = 279
176
+ min_sample_value = 280
177
+ max_sample_value = 281
178
+ x_resolution = 282
179
+ y_resolution = 283
180
+ planar_configuration = 284
181
+ page_name = 285
182
+ x_position = 286
183
+ y_position = 287
184
+ free_offsets = 288
185
+ free_byte_counts = 289
186
+ gray_response_unit = 290
187
+ gray_response_curve = 291
188
+ t4_options = 292
189
+ t6_options = 293
190
+ resolution_unit = 296
191
+ page_number = 297
192
+ color_response_unit = 300
193
+ transfer_function = 301
194
+ software = 305
195
+ modify_date = 306
196
+ artist = 315
197
+ host_computer = 316
198
+ predictor = 317
199
+ white_point = 318
200
+ primary_chromaticities = 319
201
+ color_map = 320
202
+ halftone_hints = 321
203
+ tile_width = 322
204
+ tile_length = 323
205
+ tile_offsets = 324
206
+ tile_byte_counts = 325
207
+ bad_fax_lines = 326
208
+ clean_fax_data = 327
209
+ consecutive_bad_fax_lines = 328
210
+ sub_ifd = 330
211
+ ink_set = 332
212
+ ink_names = 333
213
+ numberof_inks = 334
214
+ dot_range = 336
215
+ target_printer = 337
216
+ extra_samples = 338
217
+ sample_format = 339
218
+ s_min_sample_value = 340
219
+ s_max_sample_value = 341
220
+ transfer_range = 342
221
+ clip_path = 343
222
+ x_clip_path_units = 344
223
+ y_clip_path_units = 345
224
+ indexed = 346
225
+ jpeg_tables = 347
226
+ opi_proxy = 351
227
+ global_parameters_ifd = 400
228
+ profile_type = 401
229
+ fax_profile = 402
230
+ coding_methods = 403
231
+ version_year = 404
232
+ mode_number = 405
233
+ decode = 433
234
+ default_image_color = 434
235
+ t82_options = 435
236
+ jpeg_tables2 = 437
237
+ jpeg_proc = 512
238
+ thumbnail_offset = 513
239
+ thumbnail_length = 514
240
+ jpeg_restart_interval = 515
241
+ jpeg_lossless_predictors = 517
242
+ jpeg_point_transforms = 518
243
+ jpegq_tables = 519
244
+ jpegdc_tables = 520
245
+ jpegac_tables = 521
246
+ y_cb_cr_coefficients = 529
247
+ y_cb_cr_sub_sampling = 530
248
+ y_cb_cr_positioning = 531
249
+ reference_black_white = 532
250
+ strip_row_counts = 559
251
+ application_notes = 700
252
+ uspto_miscellaneous = 999
253
+ related_image_file_format = 4096
254
+ related_image_width = 4097
255
+ related_image_height = 4098
256
+ rating = 18246
257
+ xp_dip_xml = 18247
258
+ stitch_info = 18248
259
+ rating_percent = 18249
260
+ sony_raw_file_type = 28672
261
+ light_falloff_params = 28722
262
+ chromatic_aberration_corr_params = 28725
263
+ distortion_corr_params = 28727
264
+ image_id = 32781
265
+ wang_tag1 = 32931
266
+ wang_annotation = 32932
267
+ wang_tag3 = 32933
268
+ wang_tag4 = 32934
269
+ image_reference_points = 32953
270
+ region_xform_tack_point = 32954
271
+ warp_quadrilateral = 32955
272
+ affine_transform_mat = 32956
273
+ matteing = 32995
274
+ data_type = 32996
275
+ image_depth = 32997
276
+ tile_depth = 32998
277
+ image_full_width = 33300
278
+ image_full_height = 33301
279
+ texture_format = 33302
280
+ wrap_modes = 33303
281
+ fov_cot = 33304
282
+ matrix_world_to_screen = 33305
283
+ matrix_world_to_camera = 33306
284
+ model2 = 33405
285
+ cfa_repeat_pattern_dim = 33421
286
+ cfa_pattern2 = 33422
287
+ battery_level = 33423
288
+ kodak_ifd = 33424
289
+ copyright = 33432
290
+ exposure_time = 33434
291
+ f_number = 33437
292
+ md_file_tag = 33445
293
+ md_scale_pixel = 33446
294
+ md_color_table = 33447
295
+ md_lab_name = 33448
296
+ md_sample_info = 33449
297
+ md_prep_date = 33450
298
+ md_prep_time = 33451
299
+ md_file_units = 33452
300
+ pixel_scale = 33550
301
+ advent_scale = 33589
302
+ advent_revision = 33590
303
+ uic1_tag = 33628
304
+ uic2_tag = 33629
305
+ uic3_tag = 33630
306
+ uic4_tag = 33631
307
+ iptc_naa = 33723
308
+ intergraph_packet_data = 33918
309
+ intergraph_flag_registers = 33919
310
+ intergraph_matrix = 33920
311
+ ingr_reserved = 33921
312
+ model_tie_point = 33922
313
+ site = 34016
314
+ color_sequence = 34017
315
+ it8_header = 34018
316
+ raster_padding = 34019
317
+ bits_per_run_length = 34020
318
+ bits_per_extended_run_length = 34021
319
+ color_table = 34022
320
+ image_color_indicator = 34023
321
+ background_color_indicator = 34024
322
+ image_color_value = 34025
323
+ background_color_value = 34026
324
+ pixel_intensity_range = 34027
325
+ transparency_indicator = 34028
326
+ color_characterization = 34029
327
+ hc_usage = 34030
328
+ trap_indicator = 34031
329
+ cmyk_equivalent = 34032
330
+ sem_info = 34118
331
+ afcp_iptc = 34152
332
+ pixel_magic_jbig_options = 34232
333
+ jpl_carto_ifd = 34263
334
+ model_transform = 34264
335
+ wb_grgb_levels = 34306
336
+ leaf_data = 34310
337
+ photoshop_settings = 34377
338
+ exif_offset = 34665
339
+ icc_profile = 34675
340
+ tiff_fx_extensions = 34687
341
+ multi_profiles = 34688
342
+ shared_data = 34689
343
+ t88_options = 34690
344
+ image_layer = 34732
345
+ geo_tiff_directory = 34735
346
+ geo_tiff_double_params = 34736
347
+ geo_tiff_ascii_params = 34737
348
+ jbig_options = 34750
349
+ exposure_program = 34850
350
+ spectral_sensitivity = 34852
351
+ gps_info = 34853
352
+ iso = 34855
353
+ opto_electric_conv_factor = 34856
354
+ interlace = 34857
355
+ time_zone_offset = 34858
356
+ self_timer_mode = 34859
357
+ sensitivity_type = 34864
358
+ standard_output_sensitivity = 34865
359
+ recommended_exposure_index = 34866
360
+ iso_speed = 34867
361
+ iso_speed_latitudeyyy = 34868
362
+ iso_speed_latitudezzz = 34869
363
+ fax_recv_params = 34908
364
+ fax_sub_address = 34909
365
+ fax_recv_time = 34910
366
+ fedex_edr = 34929
367
+ leaf_sub_ifd = 34954
368
+ exif_version = 36864
369
+ date_time_original = 36867
370
+ create_date = 36868
371
+ google_plus_upload_code = 36873
372
+ offset_time = 36880
373
+ offset_time_original = 36881
374
+ offset_time_digitized = 36882
375
+ components_configuration = 37121
376
+ compressed_bits_per_pixel = 37122
377
+ shutter_speed_value = 37377
378
+ aperture_value = 37378
379
+ brightness_value = 37379
380
+ exposure_compensation = 37380
381
+ max_aperture_value = 37381
382
+ subject_distance = 37382
383
+ metering_mode = 37383
384
+ light_source = 37384
385
+ flash = 37385
386
+ focal_length = 37386
387
+ flash_energy = 37387
388
+ spatial_frequency_response = 37388
389
+ noise = 37389
390
+ focal_plane_x_resolution = 37390
391
+ focal_plane_y_resolution = 37391
392
+ focal_plane_resolution_unit = 37392
393
+ image_number = 37393
394
+ security_classification = 37394
395
+ image_history = 37395
396
+ subject_area = 37396
397
+ exposure_index = 37397
398
+ tiff_ep_standard_id = 37398
399
+ sensing_method = 37399
400
+ cip3_data_file = 37434
401
+ cip3_sheet = 37435
402
+ cip3_side = 37436
403
+ sto_nits = 37439
404
+ maker_note = 37500
405
+ user_comment = 37510
406
+ sub_sec_time = 37520
407
+ sub_sec_time_original = 37521
408
+ sub_sec_time_digitized = 37522
409
+ ms_document_text = 37679
410
+ ms_property_set_storage = 37680
411
+ ms_document_text_position = 37681
412
+ image_source_data = 37724
413
+ ambient_temperature = 37888
414
+ humidity = 37889
415
+ pressure = 37890
416
+ water_depth = 37891
417
+ acceleration = 37892
418
+ camera_elevation_angle = 37893
419
+ xp_title = 40091
420
+ xp_comment = 40092
421
+ xp_author = 40093
422
+ xp_keywords = 40094
423
+ xp_subject = 40095
424
+ flashpix_version = 40960
425
+ color_space = 40961
426
+ exif_image_width = 40962
427
+ exif_image_height = 40963
428
+ related_sound_file = 40964
429
+ interop_offset = 40965
430
+ samsung_raw_pointers_offset = 40976
431
+ samsung_raw_pointers_length = 40977
432
+ samsung_raw_byte_order = 41217
433
+ samsung_raw_unknown = 41218
434
+ flash_energy2 = 41483
435
+ spatial_frequency_response2 = 41484
436
+ noise2 = 41485
437
+ focal_plane_x_resolution2 = 41486
438
+ focal_plane_y_resolution2 = 41487
439
+ focal_plane_resolution_unit2 = 41488
440
+ image_number2 = 41489
441
+ security_classification2 = 41490
442
+ image_history2 = 41491
443
+ subject_location = 41492
444
+ exposure_index2 = 41493
445
+ tiff_ep_standard_id2 = 41494
446
+ sensing_method2 = 41495
447
+ file_source = 41728
448
+ scene_type = 41729
449
+ cfa_pattern = 41730
450
+ custom_rendered = 41985
451
+ exposure_mode = 41986
452
+ white_balance = 41987
453
+ digital_zoom_ratio = 41988
454
+ focal_length_in35mm_format = 41989
455
+ scene_capture_type = 41990
456
+ gain_control = 41991
457
+ contrast = 41992
458
+ saturation = 41993
459
+ sharpness = 41994
460
+ device_setting_description = 41995
461
+ subject_distance_range = 41996
462
+ image_unique_id = 42016
463
+ owner_name = 42032
464
+ serial_number = 42033
465
+ lens_info = 42034
466
+ lens_make = 42035
467
+ lens_model = 42036
468
+ lens_serial_number = 42037
469
+ gdal_metadata = 42112
470
+ gdal_no_data = 42113
471
+ gamma = 42240
472
+ expand_software = 44992
473
+ expand_lens = 44993
474
+ expand_film = 44994
475
+ expand_filter_lens = 44995
476
+ expand_scanner = 44996
477
+ expand_flash_lamp = 44997
478
+ pixel_format = 48129
479
+ transformation = 48130
480
+ uncompressed = 48131
481
+ image_type = 48132
482
+ image_width2 = 48256
483
+ image_height2 = 48257
484
+ width_resolution = 48258
485
+ height_resolution = 48259
486
+ image_offset = 48320
487
+ image_byte_count = 48321
488
+ alpha_offset = 48322
489
+ alpha_byte_count = 48323
490
+ image_data_discard = 48324
491
+ alpha_data_discard = 48325
492
+ oce_scanjob_desc = 50215
493
+ oce_application_selector = 50216
494
+ oce_id_number = 50217
495
+ oce_image_logic = 50218
496
+ annotations = 50255
497
+ print_im = 50341
498
+ original_file_name = 50547
499
+ uspto_original_content_type = 50560
500
+ dng_version = 50706
501
+ dng_backward_version = 50707
502
+ unique_camera_model = 50708
503
+ localized_camera_model = 50709
504
+ cfa_plane_color = 50710
505
+ cfa_layout = 50711
506
+ linearization_table = 50712
507
+ black_level_repeat_dim = 50713
508
+ black_level = 50714
509
+ black_level_delta_h = 50715
510
+ black_level_delta_v = 50716
511
+ white_level = 50717
512
+ default_scale = 50718
513
+ default_crop_origin = 50719
514
+ default_crop_size = 50720
515
+ color_matrix1 = 50721
516
+ color_matrix2 = 50722
517
+ camera_calibration1 = 50723
518
+ camera_calibration2 = 50724
519
+ reduction_matrix1 = 50725
520
+ reduction_matrix2 = 50726
521
+ analog_balance = 50727
522
+ as_shot_neutral = 50728
523
+ as_shot_white_xy = 50729
524
+ baseline_exposure = 50730
525
+ baseline_noise = 50731
526
+ baseline_sharpness = 50732
527
+ bayer_green_split = 50733
528
+ linear_response_limit = 50734
529
+ camera_serial_number = 50735
530
+ dng_lens_info = 50736
531
+ chroma_blur_radius = 50737
532
+ anti_alias_strength = 50738
533
+ shadow_scale = 50739
534
+ sr2_private = 50740
535
+ maker_note_safety = 50741
536
+ raw_image_segmentation = 50752
537
+ calibration_illuminant1 = 50778
538
+ calibration_illuminant2 = 50779
539
+ best_quality_scale = 50780
540
+ raw_data_unique_id = 50781
541
+ alias_layer_metadata = 50784
542
+ original_raw_file_name = 50827
543
+ original_raw_file_data = 50828
544
+ active_area = 50829
545
+ masked_areas = 50830
546
+ as_shot_icc_profile = 50831
547
+ as_shot_pre_profile_matrix = 50832
548
+ current_icc_profile = 50833
549
+ current_pre_profile_matrix = 50834
550
+ colorimetric_reference = 50879
551
+ s_raw_type = 50885
552
+ panasonic_title = 50898
553
+ panasonic_title2 = 50899
554
+ camera_calibration_sig = 50931
555
+ profile_calibration_sig = 50932
556
+ profile_ifd = 50933
557
+ as_shot_profile_name = 50934
558
+ noise_reduction_applied = 50935
559
+ profile_name = 50936
560
+ profile_hue_sat_map_dims = 50937
561
+ profile_hue_sat_map_data1 = 50938
562
+ profile_hue_sat_map_data2 = 50939
563
+ profile_tone_curve = 50940
564
+ profile_embed_policy = 50941
565
+ profile_copyright = 50942
566
+ forward_matrix1 = 50964
567
+ forward_matrix2 = 50965
568
+ preview_application_name = 50966
569
+ preview_application_version = 50967
570
+ preview_settings_name = 50968
571
+ preview_settings_digest = 50969
572
+ preview_color_space = 50970
573
+ preview_date_time = 50971
574
+ raw_image_digest = 50972
575
+ original_raw_file_digest = 50973
576
+ sub_tile_block_size = 50974
577
+ row_interleave_factor = 50975
578
+ profile_look_table_dims = 50981
579
+ profile_look_table_data = 50982
580
+ opcode_list1 = 51008
581
+ opcode_list2 = 51009
582
+ opcode_list3 = 51022
583
+ noise_profile = 51041
584
+ time_codes = 51043
585
+ frame_rate = 51044
586
+ t_stop = 51058
587
+ reel_name = 51081
588
+ original_default_final_size = 51089
589
+ original_best_quality_size = 51090
590
+ original_default_crop_size = 51091
591
+ camera_label = 51105
592
+ profile_hue_sat_map_encoding = 51107
593
+ profile_look_table_encoding = 51108
594
+ baseline_exposure_offset = 51109
595
+ default_black_render = 51110
596
+ new_raw_image_digest = 51111
597
+ raw_to_preview_gain = 51112
598
+ default_user_crop = 51125
599
+ padding = 59932
600
+ offset_schema = 59933
601
+ owner_name2 = 65000
602
+ serial_number2 = 65001
603
+ lens = 65002
604
+ kdc_ifd = 65024
605
+ raw_file = 65100
606
+ converter = 65101
607
+ white_balance2 = 65102
608
+ exposure = 65105
609
+ shadows = 65106
610
+ brightness = 65107
611
+ contrast2 = 65108
612
+ saturation2 = 65109
613
+ sharpness2 = 65110
614
+ smoothness = 65111
615
+ moire_filter = 65112
616
+ SEQ_FIELDS = ["tag", "field_type", "length", "ofs_or_data"]
617
+ def __init__(self, _io, _parent=None, _root=None, _is_le=None):
618
+ self._io = _io
619
+ self._parent = _parent
620
+ self._root = _root if _root else self
621
+ self._is_le = _is_le
622
+ self._debug = collections.defaultdict(dict)
623
+
624
+ def _read(self):
625
+ if not hasattr(self, '_is_le'):
626
+ raise kaitaistruct.UndecidedEndiannessError("/types/exif_body/types/ifd_field")
627
+ elif self._is_le == True:
628
+ self._read_le()
629
+ elif self._is_le == False:
630
+ self._read_be()
631
+
632
+ def _read_le(self):
633
+ self._debug['tag']['start'] = self._io.pos()
634
+ self.tag = KaitaiStream.resolve_enum(Exif.ExifBody.IfdField.TagEnum, self._io.read_u2le())
635
+ self._debug['tag']['end'] = self._io.pos()
636
+ self._debug['field_type']['start'] = self._io.pos()
637
+ self.field_type = KaitaiStream.resolve_enum(Exif.ExifBody.IfdField.FieldTypeEnum, self._io.read_u2le())
638
+ self._debug['field_type']['end'] = self._io.pos()
639
+ self._debug['length']['start'] = self._io.pos()
640
+ self.length = self._io.read_u4le()
641
+ self._debug['length']['end'] = self._io.pos()
642
+ self._debug['ofs_or_data']['start'] = self._io.pos()
643
+ self.ofs_or_data = self._io.read_u4le()
644
+ self._debug['ofs_or_data']['end'] = self._io.pos()
645
+
646
+ def _read_be(self):
647
+ self._debug['tag']['start'] = self._io.pos()
648
+ self.tag = KaitaiStream.resolve_enum(Exif.ExifBody.IfdField.TagEnum, self._io.read_u2be())
649
+ self._debug['tag']['end'] = self._io.pos()
650
+ self._debug['field_type']['start'] = self._io.pos()
651
+ self.field_type = KaitaiStream.resolve_enum(Exif.ExifBody.IfdField.FieldTypeEnum, self._io.read_u2be())
652
+ self._debug['field_type']['end'] = self._io.pos()
653
+ self._debug['length']['start'] = self._io.pos()
654
+ self.length = self._io.read_u4be()
655
+ self._debug['length']['end'] = self._io.pos()
656
+ self._debug['ofs_or_data']['start'] = self._io.pos()
657
+ self.ofs_or_data = self._io.read_u4be()
658
+ self._debug['ofs_or_data']['end'] = self._io.pos()
659
+
660
+ @property
661
+ def type_byte_length(self):
662
+ if hasattr(self, '_m_type_byte_length'):
663
+ return self._m_type_byte_length if hasattr(self, '_m_type_byte_length') else None
664
+
665
+ self._m_type_byte_length = (2 if self.field_type == Exif.ExifBody.IfdField.FieldTypeEnum.word else (4 if self.field_type == Exif.ExifBody.IfdField.FieldTypeEnum.dword else 1))
666
+ return self._m_type_byte_length if hasattr(self, '_m_type_byte_length') else None
667
+
668
+ @property
669
+ def byte_length(self):
670
+ if hasattr(self, '_m_byte_length'):
671
+ return self._m_byte_length if hasattr(self, '_m_byte_length') else None
672
+
673
+ self._m_byte_length = (self.length * self.type_byte_length)
674
+ return self._m_byte_length if hasattr(self, '_m_byte_length') else None
675
+
676
+ @property
677
+ def is_immediate_data(self):
678
+ if hasattr(self, '_m_is_immediate_data'):
679
+ return self._m_is_immediate_data if hasattr(self, '_m_is_immediate_data') else None
680
+
681
+ self._m_is_immediate_data = self.byte_length <= 4
682
+ return self._m_is_immediate_data if hasattr(self, '_m_is_immediate_data') else None
683
+
684
+ @property
685
+ def data(self):
686
+ if hasattr(self, '_m_data'):
687
+ return self._m_data if hasattr(self, '_m_data') else None
688
+
689
+ if not (self.is_immediate_data):
690
+ io = self._root._io
691
+ _pos = io.pos()
692
+ io.seek(self.ofs_or_data)
693
+ self._debug['_m_data']['start'] = io.pos()
694
+ if self._is_le:
695
+ self._m_data = io.read_bytes(self.byte_length)
696
+ else:
697
+ self._m_data = io.read_bytes(self.byte_length)
698
+ self._debug['_m_data']['end'] = io.pos()
699
+ io.seek(_pos)
700
+
701
+ return self._m_data if hasattr(self, '_m_data') else None
702
+
703
+
704
+ @property
705
+ def ifd0(self):
706
+ if hasattr(self, '_m_ifd0'):
707
+ return self._m_ifd0 if hasattr(self, '_m_ifd0') else None
708
+
709
+ _pos = self._io.pos()
710
+ self._io.seek(self.ifd0_ofs)
711
+ self._debug['_m_ifd0']['start'] = self._io.pos()
712
+ if self._is_le:
713
+ self._m_ifd0 = Exif.ExifBody.Ifd(self._io, self, self._root, self._is_le)
714
+ self._m_ifd0._read()
715
+ else:
716
+ self._m_ifd0 = Exif.ExifBody.Ifd(self._io, self, self._root, self._is_le)
717
+ self._m_ifd0._read()
718
+ self._debug['_m_ifd0']['end'] = self._io.pos()
719
+ self._io.seek(_pos)
720
+ return self._m_ifd0 if hasattr(self, '_m_ifd0') else None
721
+
722
+
723
+