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,413 @@
1
+
2
+
3
+ #------------------------------------------------------------------------------
4
+ # $File: map,v 1.10 2023/02/03 20:41:57 christos Exp $
5
+ # map: file(1) magic for Map data
6
+ #
7
+
8
+ # Garmin .FIT files https://pub.ks-and-ks.ne.jp/cycling/edge500_fit.shtml
9
+ 8 string .FIT FIT Map data
10
+ >15 byte 0
11
+ >>35 belong x \b, unit id %d
12
+ >>39 lelong x \b, serial %u
13
+ # https://pub.ks-and-ks.ne.jp/cycling/edge500_fit.shtml
14
+ # 20 years after unix epoch
15
+ # TZ=GMT date -d '1989-12-31 0:00' +%s
16
+ >>43 leldate+631065600 x \b, %s
17
+
18
+ >>47 leshort x \b, manufacturer %d
19
+ >>47 leshort 1 \b (garmin)
20
+ >>49 leshort x \b, product %d
21
+ >>53 byte x \b, type %d
22
+ >>53 byte 1 \b (Device)
23
+ >>53 byte 2 \b (Settings)
24
+ >>53 byte 3 \b (Sports/Cycling)
25
+ >>53 byte 4 \b (Activity)
26
+ >>53 byte 8 \b (Elevations)
27
+ >>53 byte 10 \b (Totals)
28
+
29
+ # Summary: Garmin map
30
+ # From: Joerg Jenderek
31
+ # URL: https://en.wikipedia.org/wiki/Garmin_.img
32
+ # Reference: https://wiki.openstreetmap.org/wiki/OSM_Map_On_Garmin/IMG_File_Format
33
+ # sourceforge.net/projects/garmin-img/files/IMG%20File%20Format/1.0/imgformat-1.0.pdf
34
+ # GRR: similar to MBR boot sector handled by ./filesystems
35
+ 0x1FE leshort =0xAA55
36
+ # look for valid map signature
37
+ >0x13 string =IMG\0
38
+ >>0 use garmin-map
39
+ 0 name garmin-map
40
+ >0 ubyte x Garmin
41
+ !:mime application/x-garmin-map
42
+ # If non-zero, every byte of the entire .img file is to be XORed with this value
43
+ >0 ubyte !0 \b, %#x XORed
44
+ # goto block before FAT
45
+ >(0x40.b*512) ubyte x
46
+ # 1st fat name "DLLINFO TXT" only found for vpm
47
+ >>&512 string =DLLINFO\ TXT map (Voice Processing)
48
+ # there exist 2 other Garmin VPM formats; see ./audio
49
+ !:ext vpm
50
+ # Deutsch__Yannick_D4481-00_0210.vpm
51
+ #>>>512 search/0x0116da60/s RIFF \b; with
52
+ # determine type voice type by ./riff
53
+ #>>>>&0 indirect x \b
54
+ >>&512 string !DLLINFO\ TXT map
55
+ !:ext img
56
+ # 9 zeros
57
+ >1 ubelong !0 \b, zeroes %#x
58
+ # Map's version major
59
+ >8 ubyte x v%u
60
+ # Map's version minor
61
+ >9 ubyte x \b.%.2u
62
+ # Map description[20], 0x20 padded
63
+ >0x49 string x %.20s
64
+ # Map name, continued (0x20 padded, \0 terminated)
65
+ >0x65 string >\ \b%.31s
66
+ # Update year (+1900 for val >= 0x63, +2000 for val <= 0x62)
67
+ >0xB ubyte x \b, updated
68
+ >>0xB ubyte >0x62
69
+ >>>0xB ubyte-100 x 20%.2u
70
+ >>0xB ubyte <0x63
71
+ >>>0xB ubyte x 20%.2u
72
+ # Update month (0-11)
73
+ >0xA ubyte x \b-%.2u
74
+ # All zeroes
75
+ >0xc uleshort !0 \b, zeroes %#x
76
+ # Mapsource flag, 1 - file created by Mapsource, 0 - Garmin map visible in Basecamp and Homeport
77
+ #>0xE ubyte !0 \b, Mapsource flag %#x
78
+ >0xE ubyte 1 \b, Mapsource
79
+ # Checksum, sum of all bytes modulo 256 should be 0
80
+ #>0xF ubyte x \b, Checksum %#x
81
+ # Signature: DSKIMG 0x00 or DSDIMG 0x00 for demo map
82
+ >0x10 string !DSKIMG \b, signature "%.7s"
83
+ >0x39 use garmin-date
84
+ # Map file identifier like GARMIN\0
85
+ >0x41 string !GARMIN \b, id "%.7s"
86
+ # Block size exponent, E1; appears to always be 0x09; minimum block size 512 bytes
87
+ >0x61 ubyte !0x09 \b, E1=%u
88
+ # Block size exponent, E2 ; file blocksize=2**(E1+E2)
89
+ >>0x62 ubyte x \b, E2=%u
90
+ >0x61 ubyte =0x09 \b, blocksize
91
+ >>0x62 ubyte 0 512
92
+ >>0x62 ubyte 1 1024
93
+ >>0x62 ubyte 2 2048
94
+ >>0x62 ubyte 3 4096
95
+ >>0x62 ubyte 4 8192
96
+ >>0x62 ubyte 5 16384
97
+ >>0x62 default x
98
+ >>>0x62 ubyte x E2=%u
99
+ # MBR signature
100
+ >0x1FE leshort !0xAA55 \b, invalid MBR
101
+ # 512 zeros
102
+ >0x200 uquad !0 \b, zeroes %#llx
103
+ # First sub-file offset (absolute); sometimes NO/UNKNOWN sub file!
104
+ >0x40C ulelong >0 \b, at %#x
105
+ # sub-file Header length
106
+ #>>(0x40C.l) uleshort x \b, header len %#x
107
+ >>(0x40C.l) uleshort x %u bytes
108
+ # sub-file Type[10] like "GARMIN RGN" "GARMIN TRE", "GARMIN TYP", etc.
109
+ >>(0x40C.l+2) ubyte >0x1F
110
+ >>>(0x40C.l+2) ubyte <0xFF
111
+ >>>>(0x40C.l+2) string x "%.10s"
112
+ # 0x00 for most maps, 0x80 for locked maps (City Nav, City Select, etc.)
113
+ >>>>(0x40C.l+13) ubyte >0 \b, locked %#x
114
+ # Block sequence numbers like 0000 0100 0200 ... FFFF
115
+ # >0x420 ubequad >0 \b, seq. %#16.16llx
116
+ # >>0x428 ubequad >0 \b%16.16llx
117
+ # >>>0x430 ubequad >0 \b%16.16llx
118
+ # >>>>0x438 ubequad >0 \b%16.16llx
119
+ # >>>>>0x440 ubequad >0 \b%16.16llx
120
+ # >>>>>>0x448 ubequad >0 \b%16.16llx
121
+ # >>>>>>>0x450 ubequad >0 \b%16.16llx
122
+ # >>>>>>>>0x458 ubequad >0 \b%16.16llx
123
+ # >>>>>>>>>0x460 ubequad >0 \b%16.16llx
124
+ # >>>>>>>>>>0x468 ubequad >0 \b%16.16llx
125
+ # >>>>>>>>>>>0x470 ubequad >0 \b%16.16llx
126
+ # >>>>>>>>>>>>0x478 ubequad >0 \b%16.16llx
127
+ # >>>>>>>>>>>>>0x480 ubequad >0 \b%16.16llx
128
+ # >>>>>>>>>>>>>>0x488 ubequad >0 \b%16.16llx
129
+ # >>>>>>>>>>>>>>>0x490 ubequad >0 \b%16.16llx
130
+ # >>>>>>>>>>>>>>>>0x498 ubequad >0 \b%16.16llx
131
+ # >>>>>>>>>>>>>>>>>0x4A0 ubequad >0 \b%16.16llx
132
+ # >>>>>>>>>>>>>>>>>>0x4A8 ubequad >0 \b%16.16llx
133
+ # look for end of FAT
134
+ #>>0x420 search/512/s \xff\xff FAT END
135
+ # Physical block number of FAT header
136
+ #>0x40 ubyte x \b, FAT at phy. block %u
137
+ >0x40 ubyte x
138
+ >>(0x40.b*512) ubyte x
139
+ # 1st FAT block
140
+ >>>&511 use garmin-fat
141
+ # 2nd FAT block
142
+ >>>&1023 use garmin-fat
143
+ # 3th FAT block
144
+ >>>&1535 use garmin-fat
145
+ # 4th FAT block
146
+ >>>&2047 use garmin-fat
147
+ # ... xth FAT block
148
+ #
149
+ # 314 zeros but not in vpm and also gmaptz.img
150
+ >0x84 uquad !0 \b, at 0x84 %#llx
151
+ # display FileAllocationTable block entry in garmin map
152
+ 0 name garmin-fat
153
+ >0 ubyte x \b;
154
+ # sub file part; 0x0003 seems to be garbage
155
+ >0x10 uleshort !0 next %#4.4x
156
+ >0x10 uleshort =0
157
+ # fat flag 0~dummy block 1~true sub file
158
+ >>0 ubyte !1 flag %u
159
+ >>0 ubyte =1
160
+ # sub-file name like MAKEGMAP 12345678
161
+ >>>0x1 string x %.8s
162
+ # sub-file typ like RGN TRE MDR LBL
163
+ >>>0x9 string x \b.%.3s
164
+ # size of sub file
165
+ >>>0xC ulelong x \b, %u bytes
166
+ # 32-bit block sequence numbers
167
+ #>>>0x20 ubequad x \b, seq. %#16.16llx
168
+
169
+ # display date stored inside Garmin maps like yyyy-mm-dd h:mm:ss
170
+ 0 name garmin-date
171
+ # year like 2018
172
+ >0 uleshort x \b, created %u
173
+ # month (0-11)
174
+ >2 ubyte x \b-%.2u
175
+ # day (1-31)
176
+ >3 ubyte x \b-%.2u
177
+ # hour (0-23)
178
+ >4 ubyte x %u
179
+ # minute (0-59)
180
+ >5 ubyte x \b:%.2u
181
+ # second (0-59)
182
+ >6 ubyte x \b:%.2u
183
+
184
+ # Summary: Garmin Map subfiles
185
+ # From: Joerg Jenderek
186
+ # URL: https://wiki.openstreetmap.org/wiki/OSM_Map_On_Garmin/IMG_File_Format
187
+ # Garmin Common Header
188
+ 2 string GARMIN\
189
+ # skip ASCII text by checking for low header length
190
+ >0 uleshort <0x1000 Garmin map,
191
+ # URL: https://wiki.openstreetmap.org/wiki/OSM_Map_On_Garmin/GMP_Subfile_Format
192
+ >>9 string GMP subtile
193
+ !:mime application/x-garmin-gpm
194
+ !:ext gmp
195
+ # copyright message
196
+ >>>(0.s) string x %s
197
+ >>>0x0E use garmin-date
198
+ # URL: https://wiki.openstreetmap.org/wiki/OSM_Map_On_Garmin/MDR_Subfile_Format
199
+ # This contains the searchable address table used for finding routing destinations
200
+ >>9 string MDR address table
201
+ !:mime application/x-garmin-mdr
202
+ !:ext mdr
203
+ # URL: https://wiki.openstreetmap.org/wiki/OSM_Map_On_Garmin/NOD_Subfile_Format
204
+ # http://svn.parabola.me.uk/display/trunk/doc/nod.txt
205
+ # This contains the routing information
206
+ >>9 string NOD routing
207
+ !:mime application/x-garmin-nod
208
+ !:ext nod
209
+ >>>0x0E use garmin-date
210
+ #>>>0x15 ulelong x \b, at %#x
211
+ #>>>0x19 ulelong x %#x bytes NOD1
212
+ #>>>0x25 ulelong x \b, at %#x
213
+ #>>>0x29 ulelong x %#x bytes NOD2
214
+ #>>>0x31 ulelong x \b, at %#x
215
+ #>>>0x35 ulelong x %#x bytes NOD3
216
+ # URL: http://www.pinns.co.uk/osm/net.html
217
+ # routable highways (length, direction, allowed speed,house address information)
218
+ >>9 string NET highways
219
+ !:mime application/x-garmin-net
220
+ !:ext net
221
+ #>>>0x15 ulelong x \b, at %#x
222
+ #>>>0x19 ulelong x %#x bytes NET1
223
+ #>>>0x22 ulelong >0
224
+ #>>>>0x1E ulelong x \b, at %#x
225
+ #>>>>0x22 ulelong x %#x bytes NET2
226
+ #>>>0x2B ulelong >0
227
+ #>>>>0x27 ulelong x \b, at %#x
228
+ #>>>>0x2B ulelong x %#x bytes NET3
229
+ # URL: https://wiki.openstreetmap.org/wiki/OSM_Map_On_Garmin/LBL_Subfile_Format
230
+ >>9 string LBL labels
231
+ !:mime application/x-garmin-lbl
232
+ !:ext lbl
233
+ >>>(0.s) string x %s
234
+ # Label coding type 6h 9h and ah
235
+ >>>0x1E ubyte x \b, coding type %#x
236
+ #>>>0x15 ulelong x \b, at %#x
237
+ #>>>0x19 ulelong x %#x bytes LBL1
238
+ #>>>0x1F ulelong x \b, at %#x
239
+ #>>>0x23 ulelong x %#x bytes LBL2
240
+ #>>>0x2D ulelong x \b, at %#x
241
+ #>>>0x31 ulelong x %#x bytes LBL3
242
+ # URL: https://wiki.openstreetmap.org/wiki/OSM_Map_On_Garmin/SRT_Subfile_Format
243
+ # A lookup table of the chars in the map's codepage, and their collating sequence
244
+ >>9 string SRT sort table
245
+ !:mime application/x-garmin-srt
246
+ !:ext srt
247
+ >>>0x0E use garmin-date
248
+ # URL: https://wiki.openstreetmap.org/wiki/OSM_Map_On_Garmin/TRE_Subfile_Format
249
+ >>9 string TRE tree
250
+ !:mime application/x-garmin-tre
251
+ !:ext tre
252
+ # title like City Nav Europe NTU 2019.2 Basemap
253
+ # or OSM Street map
254
+ >>>(0.s) string x %s
255
+ # 2nd title like Copyright 1995-2018 by GARMIN Corporation.
256
+ # or http://www.openstreetmap.org/
257
+ >>>>&1 string x %s
258
+ >>>0x0E use garmin-date
259
+ #>>>0x21 ulelong x \b, at %#x
260
+ #>>>0x25 ulelong x %#x bytes TRE1
261
+ #>>>0x29 ulelong x \b, at %#x
262
+ #>>>0x2D ulelong x %#x bytes TRE2
263
+ #>>>0x31 ulelong x \b, at %#x
264
+ #>>>0x35 ulelong x %#x bytes TRE3
265
+ # Copyright record size
266
+ #>>>0x39 uleshort x \b, copyright record size %u
267
+ # Map ID
268
+ >>>0x74 ulelong x \b, ID %#x
269
+ # URL: https://www.gpspower.net/garmin-tutorials/353310-basecamp-installing-free-desktop-map.html
270
+ # For road traffic information service (RDS/TMS/TMC). Commonly seen in City Navigator maps
271
+ >>9 string TRF traffic,
272
+ !:mime application/x-garmin-trf
273
+ !:ext trf
274
+ # city/region like Preitenegg
275
+ >>>(0.s+1) string x 1st %s
276
+ # highway part like L606/L148
277
+ >>>>&1 string x %s
278
+ # URL: https://wiki.openstreetmap.org/wiki/OSM_Map_On_Garmin/Format
279
+ # Reference: http://www.pinns.co.uk/osm/typformat.html
280
+ # customize the appearance of objects. For GPS and MapSource/Qlandkarte better looking maps
281
+ >>9 string TYP types
282
+ !:mime application/x-garmin-typ
283
+ !:ext typ
284
+ >>>0x0E use garmin-date
285
+ # character set 1252 65001~UTF8
286
+ >>>0x15 uleshort x \b, code page %u
287
+ # POIs
288
+ #>>>0x17 ulelong x \b, at %#x
289
+ #>>>0x1B ulelong x %#x bytes TYP1
290
+ # extra pois
291
+ #>>>0x5B ulelong x \b, at %#x
292
+ #>>>0x5F ulelong x %#x bytes TYP8
293
+ # URL: https://wiki.openstreetmap.org/wiki/OSM_Map_On_Garmin/RGN_Subfile_Format
294
+ # http://www.pinns.co.uk/osm/RGN.html
295
+ # region data used by the Garmin software
296
+ >>9 string RGN region
297
+ !:mime application/x-garmin-rgn
298
+ !:ext rgn
299
+ # POIs,Indexed POIs,Polylines or Polygons or first map level
300
+ #>>>0x15 ulelong x \b, at %#x
301
+ #>>>0x19 ulelong x %#x bytes RGN1
302
+ # polygons with extended types
303
+ #>>>0x21 ulelong >0
304
+ #>>>>0x1D ulelong x \b, at %#x
305
+ #>>>>0x21 ulelong x %#x bytes RGN2
306
+ # polylines with extended types
307
+ #>>>0x3D ulelong >0
308
+ #>>>>0x39 ulelong x \b, at %#x
309
+ #>>>>0x3D ulelong x %#x bytes RGN3
310
+ # extended POIs
311
+ #>>>0x59 ulelong >0
312
+ #>>>>0x55 ulelong x \b, at %#x
313
+ #>>>>0x59 ulelong x %#x bytes RGN3
314
+ #>>9 default x unknown map type
315
+ # Header length; GMP:31h 35h 3Dh,MDR:11Eh 238h 2C4h 310h,NOD:3Fh 7Fh,NET:64h,
316
+ # LBL:2A9h,SRT:1Dh 25h 27h,TRE:CFh 135h,TRF:5Ah,TYP:5Bh 6Eh 7Ch AEh,RGN:7Dh
317
+ >>0 uleshort x \b, header length %#x
318
+
319
+ # URL: https://www.memotech.franken.de/FileFormats/
320
+ # Reference: https://www.memotech.franken.de/FileFormats/Garmin_RGN_Format.pdf
321
+ # From: Joerg Jenderek
322
+ 0 string KpGr Garmin update
323
+ # format version like: 0064h~1.0
324
+ >0x4 uleshort !0x0064
325
+ >>4 uleshort/100 x \b, version %u
326
+ >>4 uleshort%100 x \b.%u
327
+ # 1st Garmin entry
328
+ >6 use garmin-entry
329
+ # 2nd Garmin entry
330
+ >(0x6.l+10) ubyte x
331
+ >>&0 use garmin-entry
332
+ # 3rd entry
333
+ >(0x6.l+10) ubyte x
334
+ >>&(&0.l+4) ubyte x
335
+ >>>&0 use garmin-entry
336
+ # look again at version to use default clause
337
+ >0x4 uleshort x
338
+ # test for region content by looking for
339
+ # Garmin *.srf by ./images with normal builder name "SQA" or longer "hales"
340
+ # 1 space after equal sign
341
+ >>0x3a search/5/s GARMIN\ BITMAP \b=
342
+ !:mime image/x-garmin-exe
343
+ !:ext exe
344
+ >>>&0 indirect x
345
+ # if not bitmap *.srf then region; 1 space after equal sign
346
+ >>0x3a default x \b=
347
+ !:mime application/x-garmin-rgn
348
+ !:ext rgn
349
+ # recursiv embedded
350
+ >>>0x3a search/5/s KpGrd
351
+ >>>>&0 indirect x
352
+ # look for ZIP or JAR archive by ./archive and ./zip
353
+ >>>0x3a search/5/s PK\003\004
354
+ >>>>&0 indirect x
355
+ # TODO: other garmin RGN record content like foo
356
+ #>>0x3a search/5/s bar BAR
357
+ # display information of Garmin RGN record
358
+ 0 name garmin-entry
359
+ # record length: 2 for Data, for Application often 1Bh sometimes 1Dh, "big" for Region
360
+ #>0 ulelong x \b, length %#x
361
+ # data record (ID='D') with version content like 0064h~1.0
362
+ >4 ubyte =0x44
363
+ >>5 uleshort !0x0064 \b; Data
364
+ >>>5 uleshort/100 x \b, version %u
365
+ >>>5 uleshort%100 x \b.%u
366
+ # Application Record (ID='A')
367
+ >4 ubyte =0x41 \b; App
368
+ # version content like 00c8h~2.0
369
+ >>5 uleshort !0x00C8
370
+ >>>5 uleshort/100 x \b, version %u
371
+ >>>5 uleshort%100 x \b.%u
372
+ # builder name like: SQA sqa build hales
373
+ >>7 string x \b, build by %s
374
+ # build date like: Oct 25 1999, Oct 1 2008, Feb 23 2009, Dec 15 2009
375
+ >>>&1 string x %s
376
+ # build time like: 11:26:12, 11:45:54, 14:16:13, 18:23:01
377
+ >>>>&1 string x %s
378
+ # region record (ID='R')
379
+ >4 ubyte =0x52 \b; Region
380
+ # region ID:14~fw_all.bin: 78~ZIP, RGN or SRF bitmap; 148~ZIP or JAR; 249~display firmware; 251~WiFi or GCD firmware; 255~ZIP
381
+ >>5 uleshort x ID=%u
382
+ # delay in ms: like 0, 500
383
+ >>7 ulelong !0 \b, %u ms
384
+ # region size (is record length - 10)
385
+ #>>11 ulelong x \b, length %#x
386
+ # region content like:
387
+ # "KpGr"~recursiv embedded,"GARMIN BITMAP"~Garmin Bitmap *.srf, "PK"~ZIP archive
388
+ #>>15 string x \b, content "%s"
389
+ >>15 ubequad x \b, content %#llx...
390
+ # This does NOT WORK!
391
+ #>>15 indirect x \b; contains
392
+ >4 default x \b; other
393
+ # garmin Record ID Identifies the record content like: D A R
394
+ >>4 ubyte x ID '%c'
395
+
396
+ # TOM TOM GPS watches ttbin files:
397
+ # https://github.com/ryanbinns/ttwatch/tree/master/ttbin
398
+ # From: Daniel Lenski
399
+ 0 byte 0x20
400
+ >1 leshort 0x0007
401
+ >>0x76 byte 0x20
402
+ >>>0x77 leshort 0x0075 TomTom activity file, v7
403
+ >>>>8 leldate x (%s,
404
+ >>>>3 byte x device firmware %d.
405
+ >>>>4 byte x \b%d.
406
+ >>>>5 byte x \b%d,
407
+ >>>>6 leshort x product ID %04d)
408
+
409
+ # Garmin firmware:
410
+ # https://www.memotech.franken.de/FileFormats/Garmin_GCD_Format.pdf
411
+ # https://www.gpsrchive.com/GPSMAP/GPSMAP%2066sr/Firmware.html
412
+ 0 string GARMIN
413
+ >6 uleshort 100 GARMIN firmware (version 1.0)
@@ -0,0 +1,109 @@
1
+
2
+ #------------------------------------------------------------------------------
3
+ # $File: maple,v 1.10 2021/08/30 13:31:25 christos Exp $
4
+ # maple: file(1) magic for maple files
5
+ # "H. Nanosecond" <aldomel@ix.netcom.com>
6
+ # Maple V release 4, a multi-purpose math program
7
+ #
8
+
9
+ # maple library .lib
10
+ # URL: https://en.wikipedia.org/wiki/Maple_(software)
11
+ # Reference: http://mark0.net/download/triddefs_xml.7z/defs/l/lib-maple-v-r4.trid.xml
12
+ # Update: Joerg Jenderek
13
+ 0 string \000MVR4\nI Maple Vr4 library
14
+ #!:mime application/octet-stream
15
+ !:mime application/x-maple-lib
16
+ !:ext lib
17
+
18
+ # URL: https://en.wikipedia.org/wiki/Maple_(software)
19
+ # Reference: http://mark0.net/download/triddefs_xml.7z/defs/l/lib-maple-v-r5.trid.xml
20
+ # From: Joerg Jenderek
21
+ 0 string \000MVR5\n Maple Vr5 library
22
+ #!:mime application/octet-stream
23
+ !:mime application/x-maple-lib
24
+ !:ext lib
25
+
26
+ # From: Joerg Jenderek
27
+ 0x400 string M7R0\nI Maple Vr7 library
28
+ #!:mime application/octet-stream
29
+ !:mime application/x-maple-lib
30
+ !:ext lib
31
+ # null terminated library name like: C:\Maple12/Cliffordlib\maple.lib ../Maplets/Tutors.lib
32
+ >5 string x %s
33
+ # probably library name padding with nil or points (0x2E)
34
+ #>0xF8 uquad x \b, PADDING 0x%16.16llx
35
+ # null terminated strings like: Exterior Clifford FunctionArithmetics
36
+ # like: 1 20 40
37
+ >0x115 ulelong x \b, %u string
38
+ # plural s
39
+ >0x115 ulelong >1 \bs
40
+ >0x119 string x 1st '%s'
41
+ # probably second name section padding with nil or points (0x2E)
42
+ #>0x3F0 uquad x \b, 2nd PADDING 0x%16.16llx
43
+ # line feed separated ASCII string with maximal 79 length
44
+ #>0x407 string x \b, section "%s"
45
+ >0x454 ubyte !0x0a \b, at 0x454 0x%x
46
+
47
+ # .ind
48
+ # no magic for these :-(
49
+ # they are compiled indexes for maple files
50
+
51
+ # .hdb
52
+ # Update: Joerg Jenderek
53
+ # URL: https://www.maplesoft.com/support/help/maple/view.aspx?path=Formats/HDB
54
+ # Reference: http://mark0.net/download/triddefs_xml.7z/defs/h/hdb-maple.trid.xml
55
+ # Note: This format was replaced in Maple 18 by the Maple Help format (*.help)
56
+ 0 string \000\004\000\000
57
+ # skip xBASE Compound Index file *.CDX by looking for version
58
+ >1028 string version Maple help database
59
+ # length of string version
60
+ #>>1024 ulelong !7 \b, at 0x400 unexpected %u
61
+ #!:mime application/octet-stream
62
+ !:mime application/x-maple-hdb
63
+ !:ext hdb
64
+ >1028 default x
65
+ # skip more xBASE Compound Index file *.CDX by looking for keyword Maple
66
+ # like hsum.hdb
67
+ >>4 search/0xCC41 Maple Maple help database
68
+ !:mime application/x-maple-hdb
69
+ !:ext hdb
70
+
71
+ # .mhp
72
+ # this has the form <PACKAGE=name>
73
+ 0 string \<PACKAGE= Maple help file
74
+ 0 string \<HELP\ NAME= Maple help file
75
+ 0 string \n\<HELP\ NAME= Maple help file with extra carriage return at start (yuck)
76
+ #0 string #\ Newton Maple help file, old style
77
+ 0 string #\ daub Maple help file, old style
78
+ #0 string #=========== Maple help file, old style
79
+
80
+ # .mws
81
+ 0 string \000\000\001\044\000\221 Maple worksheet
82
+ #this is anomalous
83
+ 0 string WriteNow\000\002\000\001\000\000\000\000\100\000\000\000\000\000 Maple worksheet, but weird
84
+ # this has the form {VERSION 2 3 "IBM INTEL NT" "2.3" }\n
85
+ # that is {VERSION major_version miunor_version computer_type version_string}
86
+ 0 string {VERSION\ Maple worksheet
87
+ >9 string >\0 version %.1s.
88
+ >>11 string >\0 %.1s
89
+
90
+ # .mps
91
+ 0 string \0\0\001$ Maple something
92
+ # from byte 4 it is either 'nul E' or 'soh R'
93
+ # I think 'nul E' means a file that was saved as a different name
94
+ # a sort of revision marking
95
+ # 'soh R' means new
96
+ >4 string \000\105 An old revision
97
+ >4 string \001\122 The latest save
98
+
99
+ # .mpl
100
+ # some of these are the same as .mps above
101
+ #0000000 000 000 001 044 000 105 same as .mps
102
+ #0000000 000 000 001 044 001 122 same as .mps
103
+
104
+ 0 string #\n##\ <SHAREFILE= Maple something
105
+ 0 string \n#\n##\ <SHAREFILE= Maple something
106
+ 0 string ##\ <SHAREFILE= Maple something
107
+ 0 string #\r##\ <SHAREFILE= Maple something
108
+ 0 string \r#\r##\ <SHAREFILE= Maple something
109
+ 0 string #\ \r##\ <DESCRIBE> Maple something anomalous.
@@ -0,0 +1,30 @@
1
+ #--------------------------------------------
2
+ # marc21: file(1) magic for MARC 21 Format
3
+ #
4
+ # Kevin Ford (kefo@loc.gov)
5
+ #
6
+ # MARC21 formats are for the representation and communication
7
+ # of bibliographic and related information in machine-readable
8
+ # form. For more info, see https://www.loc.gov/marc/
9
+
10
+
11
+ # leader position 20-21 must be 45
12
+ # and 22-23 also 00 so far, but we check that later.
13
+ 20 string 45
14
+ >0 search/2048 \x1e
15
+
16
+ # leader starts with 5 digits, followed by codes specific to MARC format
17
+ >>0 regex/1l (^[0-9]{5})[acdnp][^bhlnqsu-z] MARC21 Bibliographic
18
+ !:mime application/marc
19
+ >>0 regex/1l (^[0-9]{5})[acdnosx][z] MARC21 Authority
20
+ !:mime application/marc
21
+ >>0 regex/1l (^[0-9]{5})[cdn][uvxy] MARC21 Holdings
22
+ !:mime application/marc
23
+ >>0 regex/1l (^[0-9]{5})[acdn][w] MARC21 Classification
24
+ !:mime application/marc
25
+ >>0 regex/1l (^[0-9]{5})[cdn][q] MARC21 Community
26
+ !:mime application/marc
27
+
28
+ # leader position 22-23, should be "00" but is it?
29
+ >>0 regex/1l (^.{21})([^0]{2}) (non-conforming)
30
+ !:mime application/marc
@@ -0,0 +1,8 @@
1
+
2
+ #------------------------------------------------------------------------------
3
+ # $File: mathcad,v 1.5 2009/09/19 16:28:10 christos Exp $
4
+ # mathcad: file(1) magic for Mathcad documents
5
+ # URL: http://www.mathsoft.com/
6
+ # From: Josh Triplett <josh@freedesktop.org>
7
+
8
+ 0 string .MCAD\t Mathcad document