# Magic file created Thu Dec 24 12:14:18  1992 by winter!root     tty1         Dec 24 08:58
# Magic data for file(1) command.
# Machine-genererated from src/file/Magdir/*; edit there only!
# Format is described in magic(5)

#	Add any locally-observed files here.  Remember:
#	text if readable, executable if runnable binary, data if unreadable.
# Values for Linux/i386 binaries
2	short		100		Linux/i386
>0	short		0407		executable
>0	short		0410		pure executable
>0	short		0413		demand paged executable
>16	long		>0		not stripped
>0      string          Jump            jump
# core dump file
216	long		0421		core file (Linux)
#
# Alliant FX series a.out files:
#
0	short		0420		0420 Alliant virtual executable
>2	short		&0x0020		common library
>16	long		>0		not stripped
0	short		0421		0421 Alliant compact executable
>2	short		&0x0020		common library
>16	long		>0		not stripped
0       short           0531            SVR2 executable (Amdahl-UTS)
>12	long		>0		not stripped
>24     long            >0              - version %ld
0	short		0534		SVR2 pure executable (Amdahl-UTS)
>12	long		>0		not stripped
>24	long		>0		- version %ld
0	short		0530		SVR2 pure executable (USS/370)
>12	long		>0		not stripped
>24	long		>0		- version %ld
0	short		0535		SVR2 executable (USS/370)
>12	long		>0		not stripped
>24	long		>0		- version %ld


#
# magic.apl:
#
0	long		0100554		APL workspace (Ken's original?)
#
# magic.apollo:
#
0	short		0627		apollo m68k executable (COFF)
>18	short		^040000		not stripped 
>22	short		>0		- version %ld
0	short		0624		apollo a88k executable (COFF)
>18	short		^040000		not stripped 
>22	short		>0		- version %ld
0       long            01203604016     TML 0123 byte-order format
0       long            01702407010     TML 1032 byte-order format
0       long            01003405017     TML 2301 byte-order format
0       long            01602007412     TML 3210 byte-order format
#
# magic.ar:
#
0	string		!<arch>		current ar archive
>0	long		=65538		- pre SR9.5
>0	long		=65539		- post SR9.5
>0	short		2		- object archive
>0	short		3		- shared library module
>0	short		4		- debug break-pointed module
>0	short		5		- absolute code program module
>8	string		__.SYMDEF	random library
0	string		\<ar>		System V Release 1 ar archive
0	string		=<ar>		archive
0	long		0xff6d		obsolete ar archive
0	long		0x213c6172	archive file
0	long		0177555		very old archive
0	short		0177555		very old PDP-11 archive
0	long		0177545		old archive
0	short		0177545		old PDP-11 archive
0	string		=<ar>		archive
0	string		!<arch>		archive
>8	string		__.SYMDEF	random library
0	string		-h-		Software Tools format archive text
# Rahul Dhesi's zoo archive format, from keith@cerberus.uchicago.edu.
20	long		0xdca7c4fd	Rahul Dhesi's "zoo" archive
0	byte		26		'arc' archive
>1	byte		0		(empty)
>1	byte		1		(old format)
# A collection of various "ar" and "cpio" archive formats.
# "Tar" archives are handled in the C code.
#
0	short		070701		cpio archive
0	string		070701		ASCII cpio archive
0	short		070702		cpio archive - CRC header
0	string		070702		ASCII cpio archive - CRC header
0	short		070707		cpio archive
0	string		070707		ASCII cpio archive
0	long		0177555		very old archive
0	short		0177555		very old PDP-11 archive
0	long		0177545		old archive
0	short		0177545		old PDP-11 archive
0	long		0100554		apl workspace
0	string		=<ar>		archive
0	string		!<arch>		archive
>8	string		__.SYMDEF	random library
0	string		-h-		Software Tools format archive text
# Rahul Dhesi's zoo archive format, from keith@cerberus.uchicago.edu.
20	long		0xdca7c4fd	Rahul Dhesi's "zoo" archive
#
# magic.basic
#
0	short		0x142		basic-16 executable
>12	long		>0		not stripped
0	short		0x143		basic-16 executable (TV)
>12	long		>0		not stripped
# 68K Blit stuff as seen from 680x0 machine
# Note that this 0407 conflicts with several other a.out formats...
0	long		0407		68K Blit (standalone) executable
0	short		0407		VAX-order2 68K Blit (standalone) executable
0	short		03401		VAX-order 68K Blit (standalone) executable
0	long		0406		68k Blit mpx/mux executable
0	short		0406		VAX-order2 68k Blit mpx/mux executable
0	short		03001		VAX-order 68k Blit mpx/mux executable
# Need more values for WE32 DMD executables.
# Note that 0520 is the same as COFF
#0	short		0520		tty630 layers executable
#	this first will upset you if you're a PL/1 shop...
#	in which case rm it; ascmagic will catch real C programs
0	string		/*		c program text
# CLIPPER
0	short		0575		CLIPPER executable (VAX #)
>20	short		0407		(writable text)
>20	short		0410		(5.2 compatible)
>20	short		0411		(swapped)
>20	short		0413		(paged)
>20	short		0443		(target shared library)
>12	long		>0		not stripped
>22	short		>0		- version %ld
0	short		0577		CLIPPER executable
>18	short		!074000,000000	C1 R1 
>18	short		!074000,004000	C2 R1
>18	short		!074000,010000	C3 R1
>18	short		!074000,074000	TEST
>20	short		0407		(writable text)
>20	short		0410		(swapped)
>20	short		0411		(separate I&D)
>20	short		0413		(paged)
>20	short		0443		(target shared library)
>12	long		>0		not stripped
>22	short		>0		- version %ld
>48	long		!01,01		alignment trap enabled
>52	byte		1		-Ctnc
>52	byte		2		-Ctsw
>52	byte		3		-Ctpw
>52	byte		4		-Ctcb
>53	byte		1		-Cdnc
>53	byte		2		-Cdsw
>53	byte		3		-Cdpw
>53	byte		4		-Cdcb
>54	byte		1		-Csnc
>54	byte		2		-Cssw
>54	byte		3		-Cspw
>54	byte		4		-Cscb
4	string		pipe		CLIPPER instruction trace
4	string		prof		CLIPPER instruction profile
0	short		0520		COFF object
>12	long		>0		not stripped
>168	string		.lowmem		Apple toolbox
>20	short		0407		executable
>20	short		0410		pure executable
>20	short		0413		paged executable
>20	short		0421		standalone executable
# "Commands": stuff for various shells and interpreters.
0	string		#!\ /bin/sh	commands text
0	string		#!/bin/sh	commands text
0	string		#!\ /bin/csh	C shell commands text
0	string		#!/bin/csh	C shell commands text
# korn shell magic, sent by George Wu, gwu@clyde.att.com
0	string		#!\ /bin/ksh	Korn shell text
0	string		#!/bin/ksh	Korn shell text
0	string		#!\ /bin/awk	awk commands text
0	string		#!/bin/awk	awk commands text
0	string		#!\ /		a
>3	string		>\0		%s script
0	string		#!/		a
>2	string		>\0		%s script
0	string		#!\ 		commands text
>3	string		>\0		 for %s

#	An "antique" kernel is either unmodified early V7,
#	without DMR's 1979 mod for #!, or any kernel
#	derived from a pre-v7 kernel (i.e., System V)
0	string		:\ 		shell archive or commands for antique kernel text

# For Larry Wall's perl language.  The ``eval'' line recognizes an
# outrageously clever hack for USG systems.
#				Keith Waclena <keith@cerberus.uchicago.edu>
0	string		#!/bin/perl	perl commands text
0	string		#!\ /bin/perl	perl commands text
0	string		eval\ "exec\ /bin/perl	perl commands text
# Formats for "compress" proper have been moved into "compress.c".
#
0	short		017037		packed data
# CPL 	- added pack to /etc/magic
0	short		017436		packed data
0	short		0145405		huf output
#
# Squeeze and Crunch...
# These numbers were gleaned from the Unix versions of the programs to
# handle these formats.  Note that I can only uncrunch, not crunch, and
# I didn't have a crunched file handy, so the crunch number is untested.
#				Keith Waclena <keith@cerberus.uchicago.edu>
0	short		0x76FF		squeezed data (CP/M, DOS)
0	short		0x76FE		crunched data (CP/M, DOS)
#
# Freeze
0	short		0x1f9f		Frozen file 2.1
0	short		0x1f9e		Frozen file 1.0
0	long		0513		Convex executable
# ... diamond is a multi-media mail and electronic conferencing system....
#
#	The full deal is too long...
#0	string	<list>\n<protocol\ bbn-multimedia-format>	Diamond Multimedia Document
0	string	=<list>\n<protocol\ bbn-m	Diamond Multimedia Document
#
# magic file lines for output from "diff"...
0	string		diff\ 	'diff' output text
0	string		***\ 		'diff' output text
0	string		Only\ in\ 	'diff' output text
0	string		Common\ subdirectories:\ 	'diff' output text
# Magic numbers for ditroff intermediate language
0	string		x\ T\ cat	titroff output for the C/A/T text
0	string		x\ T\ ps	titroff output for PostScript
0	string		x\ T 		titroff output text
#
# magic.dump, dump file format. For new and old dump filesystems
#
24	long	60012		new-fs dump file,
>4	date	x		Previous dump %s,
>8	date	x		This dump %s,
>12	long	>0		Volume %ld,
>692	long	0		Level zero, type:
>692	long	>0		Level %d, type:
>0	long	1		tape header,
>0	long	2		beginning of file record,
>0	long	3		map of inodes on tape,
>0	long	4		continuation of file record,
>0	long	5		end of volume,
>0	long	6		map of inodes deleted,
>0	long	7		end of medium (for floppy),
>676	string	>\0		Label %s,
>696	string	>\0		Filesystem %s,
>760	string	>\0		Device %s,
>824	string	>\0		Host %s,
>888	long	>0		Flags %x

24	long	60011		old-fs dump file,
#>4	date	x		Previous dump %s,
#>8	date	x		This dump %s,
>12	long	>0		Volume %ld,
>692	long	0		Level zero, type:
>692	long	>0		Level %d, type:
>0	long	1		tape header,
>0	long	2		beginning of file record,
>0	long	3		map of inodes on tape,
>0	long	4		continuation of file record,
>0	long	5		end of volume,
>0	long	6		map of inodes deleted,
>0	long	7		end of medium (for floppy),
>676	string	>\0		Label %s,
>696	string	>\0		Filesystem %s,
>760	string	>\0		Device %s,
>824	string	>\0		Host %s,
>888	long	>0		Flags %x
# DVI stuff
0	string		\367\2		DVI file
# ELF
0	string		ELF		ELF
>4	byte		1		32-bit
>5	byte		1		LSB
>5	byte		2		MSB
>16	short		0		unknown type
>16	short		1		relocatable
>16	short		2		executable
>16	short		3		dynamic lib
>16	short		4		core file
>18	short		0		unknown machine
>18	short		1		WE32100
>18	short		2		SPARC
>18	short		3		80386
>18	short		4		M68000
>18	short		5		M88000
>20	long		1		Version 1
>36	long		1		MathCoPro/FPU/MAU Required
#
# magic.encore: Recognize encore machines
#
0	short		0x154		Encore
>20	short		0x107		executable
>20	short		0x108		pure executable
>20	short		0x10b		demand-paged executable
>20	short		0x10f		unsupported executable
>12	long		>0		not stripped
>22	short		>0		- version %ld
>22	short		0		-
#>4	date		x		stamp %s
0	short		0x155		Encore unsupported executable
>12	long		>0		not stripped
>22	short		>0		- version %ld
>22	short		0		-
#>4	date		x		stamp %s
0	string	#FIG		FIG graphics savefile text
0	string	FONT	ASCII vfont text
0	short	0436	Berkeley vfont data
0	short	017001	byte-swapped Berkeley vfont data
#
# Magic number for FrameMaker files
# This stuff came on a FrameMaker demo tape, most of which is
# copyright, but this file is "published" as witness the following:
#
0	string		\<MakerFile	FrameMaker document
>11	string		3.0		 (3.0
>11	string		2.0		 (2.0
>11	string		1.0		 (1.0
>14	byte		x		  %c)
0	string		\<MIFFile	FrameMaker MIF file
>9	string		3.0		 (3.0)
>9	string		2.0		 (2.0)
>9	string		1.0		 (1.x)
0	string		\<MakerDictionar	FrameMaker Dictionary file
>17	string		2.0		 (2.0)
>17	string		1.0		 (1.x)
0	string		\<MakerScreenFon	FrameMaker Font file
>17	string		1.01		 (%s)
0	string		\<MML		FrameMaker MML file
0	string		\<Book		FrameMaker Book file
>10	string		2.0		 (2.0
>10	string		1.0		 (1.0
>13	byte		x		  %c)
0	string		\<Maker Intermediate Print File	FrameMaker IPL file
#
# magic.gif: Magic for gif images
#
0	string		GIF		GIF picture
>3	string		87a		- version %s
>3	string		89a		- version %s
>6	short		>0		%d x
>8	short		>0		%d,
>10	byte		&0x40		interlaced,
>10	byte&0x07	=0x00		2 colors
>10	byte&0x07	=0x01		4 colors
>10	byte&0x07	=0x02		8 colors
>10	byte&0x07	=0x03		16 colors
>10	byte&0x07	=0x04		32 colors
>10	byte&0x07	=0x05		64 colors
>10	byte&0x07	=0x06		128 colors
>10	byte&0x07	=0x07		256 colors
#
# magic.gks:
#
0	string		GKSM		GKS Metafile
#
# magic.hp: Hewlett Packard Magic
#
#### HPPA
0	long 		0x02100106	HPPA-RISC1.1 relocatable object
0	long 		0x02100107	HPPA-RISC1.1 executable
>(144)	long		0x054ef630	dynamically linked
>96	long		>0		-not stripped

0	long 		0x02100108	HPPA-RISC1.1 shared executable
>(144)	long		0x054ef630	dynamically linked
>96	long		>0		-not stripped

0	long 		0x0210010b	HPPA-RISC1.1 demand-load executable
>(144)	long		0x054ef630	dynamically linked
>96	long		>0		-not stripped

0	long 		0x0210010e	HPPA-RISC1.1 shared library
>96	long		>0		-not stripped

0	long 		0x0210010d	HPPA-RISC1.1 dynamic load library
>96	long		>0		-not stripped

#### 800
0	long 		0x020b0106	HP s800 relocatable object

0	long 		0x020b0107	HP s800 executable
>(144)	long		0x054ef630	dynamically linked
>96	long		>0		-not stripped

0	long 		0x020b0108	HP s800 shared executable
>(144)	long		0x054ef630	dynamically linked
>96	long		>0		-not stripped

0	long 		0x020b010b	HP s800 demand-load executable
>(144)	long		0x054ef630	dynamically linked
>96	long		>0		-not stripped

0	long 		0x020b010e	HP s800 shared library
>96	long		>0		-not stripped

0	long 		0x020b010d	HP s800 dynamic load library
>96	long		>0		-not stripped

0	long		0x213c6172	archive file
>68	long 		0x020b0619	-HP s800 relocatable library

#### 500
0	long		0x02080106	HP s500 relocatable executable
>16	long		>0		-version %ld

0	long		0x02080107	HP s500 executable
>16	long		>0		-version %ld

0	long		0x02080108	HP s500 pure executable
>16	long		>0		-version %ld

#### 200
0	long 		0x020c0108	HP s200 pure executable
>4	short		>0		-version %ld
>8	long		&0x80000000	save fp regs
>8	long		&0x40000000	dynamically linked
>8	long		&0x20000000	debuggable
>36	long		>0		not stripped

0	long		0x020c0107	HP s200 executable
>4	short		>0		-version %ld
>8	long		&0x80000000	save fp regs
>8	long		&0x40000000	dynamically linked
>8	long		&0x20000000	debuggable
>36	long		>0		not stripped

0	long		0x020c010b	HP s200 demand-load executable
>4	short		>0		-version %ld
>8	long		&0x80000000	save fp regs
>8	long		&0x40000000	dynamically linked
>8	long		&0x20000000	debuggable
>36	long		>0		not stripped

0	long		0x020c0106	HP s200 relocatable executable
>4	short		>0		-version %ld
>6	short		>0		-highwater %d
>8	long		&0x80000000	save fp regs
>8	long		&0x20000000	debuggable
>8	long		&0x10000000	PIC

0	long 		0x020a0108	HP s200 (2.x release) pure executable
>4	short		>0		-version %ld
>36	long		>0		not stripped

0	long		0x020a0107	HP s200 (2.x release) executable
>4	short		>0		-version %ld
>36	long		>0		not stripped

0	long		0x020c010e	HP s200 shared library
>4	short		>0		-version %ld
>6	short		>0		-highwater %d
>36	long		>0		not stripped

0	long		0x020c010d	HP s200 dynamic load library
>4	short		>0		-version %ld
>6	short		>0		-highwater %d
>36	long		>0		not stripped

#### MISC
0	long		0x0000ff65	HP old archive
0	long		0x020aff65	HP s200 old archive
0	long		0x020cff65	HP s200 old archive
0	long		0x0208ff65	HP s500 old archive

0	long		0x015821a6	HP core file

0	long		0x4da7eee8	HP-WINDOWS font
>8	byte		>0		-version %ld
0	string		Bitmapfile	HP Bitmapfile

0	string		IMGfile	CIS 	compimg HP Bitmapfile
0	short		0x8000		lif file
0	long		0x020c010c	compiled Lisp

0	string		msgcat01	NLS message catalog,
>8	long		>0		%d messages
#
# magic.ibm370:
#
0	short		0x15d		ibm 370 pure executable
>12	long		>0		not stripped
# magic.rs6000:
0	short		0x01df		executable (RISC System/6000 V3.1) or obj module
>12	long		>0		not stripped
# Breaks sun4 statically linked execs.
#0       short		0x0103		executable (RT Version 2) or obj module
#>2	byte		0x50		pure
#>28	long		>0		not stripped
#>6	short		>0		- version %ld
0	short		0x0104		shared library
0	short		0x0105		ctab data
0	short		0xfe04		structured file
0	string		0xabcdef	message catalog
#0	string		<aiaff>		archive
# image file format
# From Robert Potter, potter@cs.rochester.edu
0	string		Imagefile\ version-	iff image data
# this adds the whole header (inc. version number), informative but longish
>10	string		>\0		%s
# $Id: /home/darian/ian/src/cmd/file/magdir/RCS/ileaf,v 1.1 90/08/05 14:48:21 ian Exp $
0	string		=\210OPS	Interleaf saved data
0	string		=<!OPS		Interleaf ASCII document
# Tell file about magic for IMAGEN printer-ready files:
0	string	@document(		Imagen printer
# this only works if "language xxx" is first item in Imagen header.
>10	string	language\ impress	(imPRESS data)
>10	string	language\ daisy		(daisywheel text)
>10	string	language\ diablo		(daisywheel text)
>10	string	language\ printer	(line printer emulation)
>10	string	language\ tektronix	(Tektronix 4014 emulation)
# Add any other languages that your Imagen uses - remember
# to keep the word `text' if the file is human-readable.
#
# Now magic for IMAGEN font files...
0	string		Rast		RST-format raster font data
>45	string		>0		face %
#
# magic.interleaf:
#
0	string		=\210OPS	Interleaf saved data
0	string		=<!OPS		Interleaf ASCII document
#
# magic.iris: Magic for mips from an iris4d
#
0	short		0x0160		mipseb
>20	short		0407		executable
>20	short		0410		pure
>20	short		0413		demand paged
>8	long		>0		not stripped
>8	long		0		stripped
>22	byte		>0		- version %ld.
>23	byte		>0		%ld
0	short		0x0162		mipsel
>20	short		0407		executable
>20	short		0410		pure
>20	short		0413		demand paged
>8	long		>0		not stripped
>8	long		0		stripped
>23	byte		>0		- version %ld.
>22	byte		>0		%ld
0	short		0x6001		swapped mipseb
>20	short		03401		executable
>20	short		04001		pure
>20	short		05401		demand paged
>8	long		>0		not stripped
>8	long		0		stripped
>22	byte		>0		- version %ld.
>23	byte		>0		%ld
0	short		0x6201		swapped mipsel
>20	short		03401		executable
>20	short		04001		pure
>20	short		05401		demand paged
>8	long		>0		not stripped
>8	long		0		stripped
>22	byte		>0		- version %ld.
>23	byte		>0		%ld
0	short		0x180		mipseb ucode
0	short		0x182		mipsel ucode
#
# IRIX core format version 1 (from /usr/include/core.out.h)
0	long		0xdeadadb0	IRIX core dump
>4	long		1		of
>16	string		>\0		'%s'
#
# Archives - This handles archive subtypes
#
0	string		!<arch>\n__________E	MIPS archive
>20	string		U			with mipsucode members
>21	string		L			with mipsel members
>21	string		B			with mipseb members
>19	string		L			and a EL hash table
>19	string		B			and a EB hash table
>22	string		X			-- out of date
#
# magic.ispell
#
0	short	0xffff9601	ispell hash file
>2	short	0x00	- 8-bit, no capitalization, 26 flags
>2	short	0x01	- 7-bit, no capitalization, 26 flags 
>2	short	0x02	- 8-bit, capitalization, 26 flags
>2	short	0x03	- 7-bit, capitalization, 26 flags 
>2	short	0x04	- 8-bit, no capitalization, 52 flags
>2	short	0x05	- 7-bit, no capitalization, 52 flags 
>2	short	0x06	- 8-bit, capitalization, 52 flags
>2	short	0x07	- 7-bit, capitalization, 52 flags 
>2	short	0x08	- 8-bit, no capitalization, 128 flags
>2	short	0x09	- 7-bit, no capitalization, 128 flags 
>2	short	0x0A	- 8-bit, capitalization, 128 flags
>2	short	0x0B	- 7-bit, capitalization, 128 flags 
>2	short	0x0C	- 8-bit, no capitalization, 256 flags
>2	short	0x0D	- 7-bit, no capitalization, 256 flags 
>2	short	0x0E	- 8-bit, capitalization, 256 flags
>2	short	0x0F	- 7-bit, capitalization, 256 flags 
>4	short	>0	and %d string characters
#	derived empirically, your offsets may vary!
53	string		yyprevious	c program text (from lex)
>3	string		>\0		 for %s
#
# magic.lif:
#
0	short		0x8000		lif file
#
# magic.mail: Recognize mail files
#
# Unfortunately, saved netnews also has From line added in some news software.
#0	string		From 		mail text
# There are tests to ascmagic.c to cope with mail and news.
0	string		Relay-Version: 	old news text
0	string		#!\ rnews	batched news text
0	string		N#!\ rnews	mailed, batched news text
0	string		Forward\ to 	mail forwarding text
0	string		Pipe\ to 	mail piping text
0	string		Return-Path:	smtp mail text
0	string		Path:		news text
0	string		Xref:		news text
0	string		From:		news or mail text
0	string		Article 	saved news text
# Unfortunately, saved netnews also has From line added in some news software.
#0	string		From 		mail text
# There are tests to ascmagic.c to cope with mail and news.
0	string		Relay-Version: 	old news text
0	string		#!\ rnews	batched news text
0	string		N#!\ rnews	mailed, batched news text
0	string		Forward\ to 	mail forwarding text
0	string		Pipe\ to 	mail piping text
0	string		Return-Path:	smtp mail text
0	string		Path:		news text
0	string		Xref:		news text
0	string		From:		news or mail text
0	string		Article 	saved news text
# Microsoft
0	string		core		core file (Xenix)
0	byte		0x80		8086 relocatable (Microsoft)
0	byte		0xf0		MS-DOS library
0	short		0xff65		x.out
>2	string		__.SYMDEF	 randomized
>0	byte		x		archive
0	short		0x206		Microsoft a.out
>0x1e	short		&0x10		overlay
>0x1e	short		&0x2		separate
>0x1e	short		&0x4		pure
>0x1e	short		&0x800		segmented
>0x1e	short		&0x400		standalone
>0x1e	short		&0x8		fixed-stack
>0x1c	byte		&0x80		byte-swapped
>0x1c	byte		&0x40		word-swapped
>0x10	long		>0		not-stripped
>0x1e	short		^0xc000		pre-SysV
>0x1c	byte		&0x4		86
>0x1c	byte		&0x9		286
>0x1c	byte		&0xa		386
>0x1e	short		&0x1		executable
>0x1e	short		^0x1		object file
>0x1e	short		&0x40		Large Text
>0x1e	short		&0x20		Large Data
>0x1e	short		&0x120		Huge Objects Enabled

0	short		0x140		old Microsoft 8086 x.out
>0x3	byte		&0x4		separate
>0x3	byte		&0x2		pure
>0	byte		&0x1		executable
>0	byte		^0x1		relocatable
>0x14	long		>0		not stripped

0	long		0x206		b.out
>0x1e	short		&0x10		overlay
>0x1e	short		&0x2		separate
>0x1e	short		&0x4		pure
>0x1e	short		&0x800		segmented
>0x1e	short		&0x400		standalone
>0x1e	short		&0x1		executable
>0x1e	short		^0x1		object file
>0x1e	short		&0x4000		V2.3
>0x1e	short		&0x8000		V3.0
>0x1c	byte		&0x4		86
>0x1c	byte		&0xb		186
>0x1c	byte		&0x9		286
>0x1c	byte		&0x29		286
>0x1c	byte		&0xa		386
>0x1e	short		&0x4		Large Text
>0x1e	short		&0x2		Large Data
>0x1e	short		&0x102		Huge Objects Enabled

# RISC MIPS decstation
0	short		0x6201		MIPS executable
0	long	31415		Mirage Assembler m.out executable
# ID is the binary tags database produced by mkid(1).
0	string		\311\304	ID tags data
>2	short		>0		version %d
0	long		0x1010101	MMDF mailbox
# Motorola
0	short		0520		mc68k executable
>12	long		>0		not stripped
0	short		0521		mc68k executable (shared)
>12	long		>0		not stripped
0	short		0522		mc68k executable (shared demand paged)
>12	long		>0		not stripped

# various intel-CPU magic numbers
0	short		01006		80286 executable (STL)
>31	byte		<0x040		small model
>31	byte		=0x048		large model	
>31	byte		=0x049		huge model 
>16	long		>0		not stripped
0	string		MZ		DOS executable (EXE)
0	string		LZ		DOS executable (built-in)
0	byte		0xe9		DOS executable (COM)
0	byte		0xeb		DOS executable (COM)
0	byte		0xf0		MS-DOS program library
0	short		=0512		80286 executable small model (COFF)
>12	long		>0		not stripped
>22	short		>0		- version %ld
0	short		=0522		80286 executable large model (COFF)
>12	long		>0		not stripped
>22	short		>0		- version %ld
0	short		=0514		80386 executable
>12	long		>0		not stripped
>22	short		>0		- version %ld
0	string		PK		zip archive file 
>2	byte		>0		- version [%d
>3	byte		>0		%d]
#
# magic.tower:
#
# NCR Tower objects, contributed by
# Michael R. Wayne  ***  TMC & Associates  ***  INTERNET: wayne@ford-vax.arpa
# uucp: {philabs | pyramid} !fmsrl7!wayne   OR   wayne@fmsrl7.UUCP
#
0	short		000610	Tower/XP rel 2 object
>12	   long			>0	not stripped
>20	   short		0407	executable
>20	   short		0410	pure executable
>22	   short		>0	-version %ld
0	short		000615	Tower/XP rel 2 object
>12	   long			>0	not stripped
>20	   short		0407	executable
>20	   short		0410	pure executable
>22	   short		>0	-version %ld
0	short		000620	Tower/XP rel 3 object
>12	   long			>0	not stripped
>20	   short		0407	executable
>20	   short		0410	pure executable
>22	   short		>0	-version %ld
0	short		000625	Tower/XP rel 3 object
>12	   long			>0	not stripped
>20	   short		0407	executable
>20	   short		0410	pure executable
>22	   short		>0	-version %ld
0	short		000630	Tower32/600/400 68020 object
>12	   long			>0	not stripped
>20	   short		0407	executable
>20	   short		0410	pure executable
>22	   short		>0	-version %ld
0	short		000640	Tower32/800 68020
>18	   short		&020000	w/68881 object
>18	   short		&040000	compatible object
>18	   short		&~060000	object
>20	   short		0407	executable
>20	   short		0413	pure executable
>12	   long			>0	not stripped
>22	   short		>0	-version %ld
0	short		000645	Tower32/800 68010
>18	   short		&040000	compatible object
>18	   short		&~060000 object
>20	   short		0407	executable
>20	   short		0413	pure executable
>12	   long			>0	not stripped
>22	   short		>0	-version %ld
# NeWS, not "news" as in "netnews"
0	string		StartFontMetrics	ASCII font metrics
0	string		StartFont	ASCII font bits
0	long		0x137A2944	NeWS bitmap font
0	long		0x137A2947	NeWS font family
0	long		0407		executable
>16	long		>0		not stripped
#>2	short		>0		- version %ld
0	short		0407		PDP-11 executable
>8	short		>0		not stripped
0	short		0401		unix-rt ldp
0	short		0405		old overlay
0	long		0410		pure executable
>16	long		>0		not stripped
#>2	short		>0		- version %ld
0	short		0410		PDP-11 pure executable
>8	short		>0		not stripped
#>2	short		>0		- version %ld
0	short		0411		PDP-11 separate I&D executable
>8	short		>0		not stripped
#>2	short		>0		- version %ld
0	long		0413		demand paged pure executable
>16	long		>0		not stripped
#>2	short		>0		- version %ld
0	long		0420		demand paged (first page unmapped) pure executable
>16	long		>0		not stripped
#>2	short		>0		- version %ld
0	short		0437		pdp11 kernel overlay
#
# magic.pack: 
#
0	short		0x1f1e		packed data
0	short		0x1e1f		packed data
0	short		0x1f1f		old packed data
0	short		0x1fff		compacted data
0	string		\377\037	compacted data
0	short		0145405		huf output
0	short	0x2a17	"compact bitmap" format (Poskanzer)
# From:	jef@helios.ee.lbl.gov (Jef Poskanzer)
# To:	ian@sq.com
# Subject: magic
# 
# I just got pointed to your file program, with all the magic numbers.
# Neat.  I enclose a magic file for image formats.  You already have
# a better entry for Sun rasterfiles, so ignore that one.  I made this
# file by going through all the format converters in the PBMPLUS package
# and noting which ones had magic numbers.  Disappointingly few of them
# did.
# 
# By the way, note the comment below about string format.  Am I right
# about this, or does the program handle this problem in some way?

# PBMPLUS auxiliary magic numbers file
#
# All of these entries use the "string" format so that they will work on
# both big-endian and little-endian machines.

0	string		xbtoa			btoa'd file

0	string		P1			PBM file
0	string		P2			PGM file
0	string		P3			PPM file
0	string		P4			PBM "rawbits" file
0	string		P5			PGM "rawbits" file
0	string		P6			PPM "rawbits" file

0	string		\361\0\100\273		CMU window manager bitmap
0	string		yz			MGR bitmap
0	string		\115\115		TIFF file, big-endian
0	string		\111\111		TIFF file, little-endian
0	string		GIF87a			GIF file
8	string		ILBM			IFF ILBM file
#
# magic.pdp: PDP 11
#
0	long		0x39bed		PDP-11 old archive
0	long		0x39bee		PDP-11 4.0 archive
0	long		0x836c		PDP-11 double precision APL workspace
0	long		0x836d		PDP-11 single precision APL workspace

0	short		0177555		very old PDP-11 archive
0	short		0177545		old PDP-11 archive

0	short		0407		PDP-11 executable
>8	short		>0		not stripped

0	short		0401		PDP-11 unix-rt ldp
0	short		0405		PDP-11 old overlay

0	short		0410		PDP-11 pure executable
>8	short		>0		not stripped
#>2	short		>0		- version %ld

0	short		0411		PDP-11 separate I&D executable
>8	short		>0		not stripped
#>2	short		>0		- version %ld

0	long		0413		PDP-11 demand paged pure executable
>16	long		>0		not stripped
#>2	short		>0		- version %ld

0	long		0420		PDP-11 demand paged (first page unmapped) pure executable
>16	long		>0		not stripped
#>2	short		>0		- version %ld
0	short		0437		PDP-11 kernel overlay

0	short		0xff65		PDP-11/pre System V/old Sun ar archive
>8	string		__.SYMDEF	random library
#
# magic.phigs:
#
0       string          ARF_BEGARF      PHIGS clear text archive
#/etc/magic entries for Plus Five's UNIX MUMPS
0	short		0x259		mumps avl global
>2	byte		>0		(V%d)
>6	byte		>0		with %d byte name
>7	byte		>0		and %d byte data cells
0	short		0x25a		mumps blt global
>2	byte		>0		(V%d)
>8	short		>0		- %d byte blocks
>15	byte		0x00		- P/D format
>15	byte		0x01		- P/K/D format
>15	byte		0x02		- K/D format
>15	byte		>0x02		- Bad Flags
#
# magic.postscript: Magic for postscript files
#
0	string		%!		PostScript document
>2	string	PS-Adobe-		conforming
>11	string	1.0			at level %s
>11	string	2.0			at level %s
#
# magic.ps: psdatabase magic
#
0	byte	0126	ps database
>1	string	>\0	- version %s
>4	string	>\0	from kernel %s
#
# magic.pyramid: Magic for pyramids
#
0	long		0x50900107	Pyramid 90x family executable
0	long		0x50900108	Pyramid 90x family pure executable
>16	long		>0		not stripped
0	long		0x5090010b	Pyramid 90x family demand paged pure executable
>16	long		>0		not stripped
# Sun rasterfiles
0	string	\x59\xa6\x6a\x95	rasterfile
>4	long	>0		%d
>8	long	>0		x %d
>12	long	>0		x %d
>20	long	0		old format
>20	long	2		compressed
>24	long	1		with color map
# for SC
38	string		Spreadsheet	sc file
# SCCS archive structure:
# \001h01207
# \001s 00276/00000/00000
# \001d D 1.1 87/09/23 08:09:20 ian 1 0
# \001c date and time created 87/09/23 08:09:20 by ian
# \001e
# \001u
# \001U
# ... etc.
# Now '\001h' happens to be the same as the 3B20's a.out magic number (0550).
# *Sigh*. And these both came from various parts of the USG.
# Maybe we should just switch everybody from SCCS to RCS!
# Further, you can't just say '\001h0', because the five-digit number
# is a checksum that could (presumably) have any leading digit,
# and we don't have regular expression matching yet. 
# Hence the following official kludge:
8	string		\001s\ 			SCCS archive.
#
# magic.sendmail:
#
0	byte	046	  Sendmail frozen configuration 
>16	string	>\0	  - version %s
0	short	0x271c	  Sendmail frozen configuration
>16	string	>\0	  - version %s
# Sequent information updated by Don Dwiggins <atsun!dwiggins>.
# For Sequent's multiprocessor systems (incomplete).
0       short   0x00ea          BALANCE NS32000 .o
0       short   0x10ea          BALANCE NS32000 executable (0 @ 0)
>16     long    >0              not stripped
0       short   0x20ea          BALANCE NS32000 executable (invalid @ 0)
>16     long    >0              not stripped
0       short   0x30ea          BALANCE NS32000 standalone executable
>16     long    >0              not stripped
#   The above seen byte-swapped, e.g. from a remote NFS mount
0       short   0xea00          BALANCE NS32000 .o (byte-swapped)
0       short   0xea10          BALANCE NS32000 executable (0 @ 0, byte-swapped)
>16     long    >0              not stripped
0       short   0xea20          BALANCE NS32000 executable (invalid @ 0, byte-swapped)
>16     long    >0              not stripped
0       short   0xea30          BALANCE NS32000 standalone executable (byte-swapped)
>16     long    >0              not stripped
# Also need info on Sequent "Symmetry" series...
# $Id: /home/darian/ian/src/cmd/file/magdir/RCS/sgml,v 1.1 90/07/05 11:16:55 ian Exp $
# SGML goop, mostly from rph@sq.
0	string		\<!DOCTYPE	Exported SGML document
0	string		\<!doctype	Exported SGML document
0	string		\<!SUBDOC	Exported SGML subdocument
0	string		\<!subdoc	Exported SGML subdocument
#
# Magic.shell: Shell Scripts
# "Commands": stuff for various shells and interpreters.
#
0	string		:\ shell archive or commands for antique kernel text
0	string		#!/bin/sh		Bourne Shell script
0	string		#!\ /bin/sh		Bourne Shell script
0	string		#!/bin/csh		C Shell script
0	string		#!\ /bin/csh		C Shell script
# korn shell magic, sent by George Wu, gwu@clyde.att.com
0	string		#!/bin/ksh		Korn Shell script
0	string		#!\ /bin/ksh		Korn Shell script
0	string	 	#!/bin/tcsh		Tenex C Shell script
0	string	 	#!\ /bin/tcsh		Tenex C Shell script
0	string		#!/usr/local/tcsh	Tenex C Shell script
0	string	 	#!\ /usr/local/tcsh	Tenex C Shell script
0	string		#!/usr/local/bin/tcsh	Tenex C Shell script
0	string		#!\ /usr/local/bin/tcsh	Tenex C Shell script
0	string		#!/bin/awk		Awk Commands text
0	string		#!\ /bin/awk		Awk Commands text
0	string		#!\ /			a
>3	string		>\0			%s script
0	string		#!/			a
>2	string		>\0			%s script
0	string		#!\ 			commands text
>3	string		>\0			for %s

# For Larry Wall's perl language.  The ``eval'' line recognizes an
# outrageously clever hack for USG systems.
#				Keith Waclena <keith@cerberus.uchicago.edu>
0	string		#!/bin/perl	perl commands text
0	string		#!\ /bin/perl	perl commands text
0	string		eval\ "exec\ /bin/perl	perl commands text

#	An "antique" kernel is either unmodified early V7,
#	without DMR's 1979 mod for #!, or any kernel
#	derived from a pre-v7 kernel (i.e., System V)
0	string		:\ 		shell archive or commands for antique kernel text
# SoftQuad Publishing Software magic numbers
# $Id: /home/sqarc/ian/src/cmd/file/Magdir/RCS/softquad,v 1.6 92/05/21 16:38:53 ian Exp $
# Author/Editor and RulesBuilder
0	string		\<!SQ\ DTD>	Compiled SGML rules file
>9	string		>\0		 Type %s
0	string		\<!SQ\ A/E>	A/E SGML Document binary
>9	string		>\0		 Type %s
0	string		\<!SQ\ STS>	A/E SGML binary styles file
>9	string		>\0		 Type %s
0	short		0xc0de		Compiled PSI (v1) data
0	short		0xc0da		Compiled PSI (v2) data
>3	string		>\0		(%s)
# Binary sqtroff font/desc files...
0	short		0125252		SoftQuad DESC or font file binary
>2	short		>0		- version %d
# Bitmaps...
0	string		SQ\ BITMAP1	SoftQuad Raster Format text
#0	string		SQ\ BITMAP2	SoftQuad Raster Format data
# sqtroff intermediate language (replacement for ditroff int. lang.)
0	string		X\ 		SoftQuad troff Context intermediate
>2	string		495		for AT&T 495 laser printer
>2	string		hp		for Hewlett-Packard LaserJet
>2	string		impr		for IMAGEN imPRESS
>2	string		ps		for PostScript
# Values for big-endian Sun (MC680x0, SPARC) binaries
1	byte		3		SPARC
>0	byte		&0x80		dynamically linked
>2	short		0407		executable
>2	short		0410		pure executable
>2	short		0413		demand paged executable
>16	long		>0		not stripped
1	byte		2		mc68020
>0	byte		&0x80		dynamically linked
>2	short		0407		executable
>2	short		0410		pure executable
>2	short		0413		demand paged executable
>16	long		>0		not stripped
1	byte		1		mc68010
>0	byte		&0x80		dynamically linked
>2	short		0407		executable
>2	short		0410		pure executable
>2	short		0413		demand paged executable
>16	long		>0		not stripped
0	short		0		old sun-2
>2	short		0407		executable
>2	short		0410		pure executable
>2	short		0413		demand paged executable
>16	long		>0		not stripped
0	long		0x080456	core file
>128	string		>0		from '%s'
#
0	short		05401		byte-swapped demand paged executable
0	short		010001		byte-swapped demand paged executable
# Terminfo
0	string		\032\001	Compiled terminfo entry
0	short		0433		Curses screen image
0	short		0434		Curses screen image
#
# magic.tex: 
#
0	short	0173402	DVI File
>16	string	>\0	(%s)
0	short	0173531	Packed TeX Font
>4	string	>\0	(%s)
2	string	\000\022	Metafont Font Metric
>34	string	>\0	(%s)
# NCR Tower objects, contributed by
# Michael R. Wayne  ***  TMC & Associates  ***  INTERNET: wayne@ford-vax.arpa
# uucp: {philabs | pyramid} !fmsrl7!wayne   OR   wayne@fmsrl7.UUCP
#
0	short		000610	Tower/XP rel 2 object
>12	   long			>0	not stripped
>20	   short		0407	executable
>20	   short		0410	pure executable
>22	   short		>0	-version %ld
0	short		000615	Tower/XP rel 2 object
>12	   long			>0	not stripped
>20	   short		0407	executable
>20	   short		0410	pure executable
>22	   short		>0	-version %ld
0	short		000620	Tower/XP rel 3 object
>12	   long			>0	not stripped
>20	   short		0407	executable
>20	   short		0410	pure executable
>22	   short		>0	-version %ld
0	short		000625	Tower/XP rel 3 object
>12	   long			>0	not stripped
>20	   short		0407	executable
>20	   short		0410	pure executable
>22	   short		>0	-version %ld
0	short		000630	Tower32/600/400 68020 object
>12	   long			>0	not stripped
>20	   short		0407	executable
>20	   short		0410	pure executable
>22	   short		>0	-version %ld
0	short		000640	Tower32/800 68020
>18	   short		&020000	w/68881 object
>18	   short		&040000	compatible object
>18	   short		&~060000	object
>20	   short		0407	executable
>20	   short		0413	pure executable
>12	   long			>0	not stripped
>22	   short		>0	-version %ld
0	short		000645	Tower32/800 68010
>18	   short		&040000	compatible object
>18	   short		&~060000 object
>20	   short		0407	executable
>20	   short		0413	pure executable
>12	   long			>0	not stripped
>22	   short		>0	-version %ld
#
# magic.troff:
#
0	string		\100\357	very old (C/A/T) troff output data
0	string		'		[nt]roff, tbl, or eqn input text

# other typesetting magic
0	string		\100\357	very old (C/A/T) troff output data
0	string		Interpress/Xerox	Xerox InterPress data
#
# magic.unknown: Unknown machine magic
#
0	short		0x107		unknown machine executable
>8	short		>0		not stripped
>15	byte		>0		- version %ld
0	short		0x108		unknown pure executable
>8	short		>0		not stripped
>15	byte		>0		- version %ld
0	short		0x109		PDP-11 separate I&D
>8	short		>0		not stripped
>15	byte		>0		- version %ld
0	short		0x10b		unknown pure executable
>8	short		>0		not stripped
>15	byte		>0		- version %ld
0	long		0x10c		unknown demand paged pure executable
>16	long		>0		not stripped
0	long		0x10d		unknown demand paged pure executable
>16	long		>0		not stripped
0	long		0x10e		unknown readable demand paged pure executable
0	string		begin 		uuencoded mail text
# Btoa(1) is an alternative to uuencode that requires less space.
0	string		xbtoa\ Begin	btoa'd text
#	Herewith many of the object file formats used by USG systems.
#	The `versions' should be un-commented if they work for you.
0	short		0570		SysV executable
>12	long		>0		not stripped
#>22	short		>0		- version %ld
0	short		0575		SysV pure executable
>12	long		>0		not stripped
#>22	short		>0		- version %ld
0	short		0502		basic-16 executable
>12	long		>0		not stripped
0	short		0503		basic-16 executable (TV)
>12	long		>0		not stripped
0	short		0510		x86 executable
>12	long		>0		not stripped
0	short		0511		x86 executable (TV)
>12	long		>0		not stripped
0	short		0550		3b20 executable
>12	long		>0		not stripped
0	short		0551		3b20 executable (TV)
>12	long		>0		not stripped
0	short		0560		WE32000 executable
>12	long		>0		not stripped
>18	short		^00010000	- N/A on 3b2/300 w/paging
>18	short		&00020000	- 32100 required
>18	short		&00040000	and mau hardware required
>20	short		0443		(target shared library)
>20	short		0410		(swapped)
>20	short		0413		(paged)
>22	short		>0		- version %ld
0	short		0561		WE32000 executable (TV)
>12	long		>0		not stripped
#
0	short		0610		Perkin-Elmer executable
#
# Motorola/UniSoft Application Binary Interface (ABI)
0	short	0554	68K BCS executable
# Motorola/88Open ABI
0	short	0555	88K BCS executable
#
# magic.vax: Vax magic...
#
0	long		0x3c61723e	VAX 5.0 archive
0	long		0x65ff0000	VAX 3.0 archive
0	long		0x836e		VAX double precision APL workspace
0	long		0x836f		VAX single precision APL workspace
0	short		0x178		vax executable
0	short		0x17d		vax pure executable
# Michael R. Wayne  ***  TMC & Associates  ***  INTERNET: wayne@ford-vax.arpa
# From: dupuy@amsterdam.columbia.edu (Alexander Dupuy)
# Byte-swapped VAXen
# Here are a few lines you can add to /etc/magic on your sun workstations in
# order to recognize VAX executables and objects.... you could do something
# similar (in reverse) for your vaxen, but since 4.3+NFS' file(1) doesn't look
# for /etc/magic, I've never bothered.  It really should be built in to file(1)
# so you would see the state of setuid/setgid/sticky bits.  Or actually, there
# should be support for checking that sort of thing in /etc/magic.
#
0	long		00700200000	VAX executable
>16	long		&0x7fffffff	not stripped
0	long		01000200000	VAX pure executable
>16	long		&0x7fffffff	not stripped
0	long		01300200000	VAX demand-paged pure executable
>16	long		&0x7fffffff	not stripped
0	long		0101557		VAX single precision APL workspace
0	long		0101556		VAX double precision APL workspace
# Byte-swapped VAXen
# From: dupuy@amsterdam.columbia.edu (Alexander Dupuy)
# 
# Here are a few lines you can add to /etc/magic on your sun workstations in
# order to recognize VAX executables and objects.... you could do something
# similar (in reverse) for your vaxen, but since 4.3+NFS' file(1) doesn't look
# for /etc/magic, I've never bothered.  It really should be built in to file(1)
# so you would see the state of setuid/setgid/sticky bits.  Or actually, there
# should be support for checking that sort of thing in /etc/magic.
#
0	long		00700200000	VAX executable
>16	long		&0x7fffffff	not stripped
0	long		01000200000	VAX pure executable
>16	long		&0x7fffffff	not stripped
0	long		01300200000	VAX demand-paged pure executable
>16	long		&0x7fffffff	not stripped
0	long		01100200000	PDP-11 executable
#
# magic.vfont:
#
0	string	FONT	ASCII vfont text
0	short	0436	Berkeley vfont data
0	short	017001	byte-swapped Berkeley vfont data
#
# magic.visx: Visx format file
#
0	short		0x5555		VISX image file
>2	byte		0		(zero)
>2	byte		1		(unsigned char)
>2	byte		2		(short integer)
>2	byte		3		(float 32)
>2	byte		4		(float 64)
>2	byte		5		(signed char)
>2	byte		6		(bit-plane)
>2	byte		7		(classes)
>2	byte		8		(statistics)
>2	byte		10		(ascii text)
>2	byte		15		(image segments)
>2	byte		100		(image set)
>2	byte		101		(unsigned char vector)
>2	byte		102		(short integer vector)
>2	byte		103		(float 32 vector)
>2	byte		104		(float 64 vector)
>2	byte		105		(signed char vector)
>2	byte		106		(bit plane vector)
>2	byte		121		(feature vector)
>2	byte		122		(feature vector library)
>2	byte		124		(chain code)
>2	byte		126		(bit vector)
>2	byte		130		(graph)
>2	byte		131		(adjacency graph)
>2	byte		132		(adjacency graph library)
>2	string		.VISIX		(ascii text)
#
# magic.x11
#
0	long	00000004	X11 snf font
#
# magic.xenix: XENIX executable formats: derived empirically; 
# treat as folklore until proven
#
0	short	01006		XENIX (x.out) executable
>8	short	1		Middle model
>16	short	>0		not stripped
0	short	02600		XENIX 8086 relocatable or 80286 small model
# Zilog
0	long		0xe807		object file (z8000 a.out)
0	long		0xe808		pure object file (z8000 a.out)
0	long		0xe809		separate object file (z8000 a.out)
0	long		0xe805		overlay object file (z8000 a.out)

