#
# Base MIME types file for CUPS.
#
# DO NOT EDIT THIS FILE, AS IT IS OVERWRITTEN WHEN YOU INSTALL NEW
# VERSIONS OF CUPS.  Instead, create a "local.types" file that
# reflects your local configuration changes.
#
# Copyright © 2020-2024 by OpenPrinting.
# Copyright © 2007-2017 by Apple Inc.
# Copyright © 1997-2007 by Easy Software Products.
#
# Licensed under Apache License v2.0.  See the file "LICENSE" for more
# information.
#

########################################################################
#
# Format of Lines:
#
#   super/type rules
#
# "rules" can be any combination of:
#
#   ( expr )				Parenthesis for expression grouping
#   +					Logical AND
#   , or whitespace			Logical OR
#   !					Logical NOT
#   match("pattern")			Pattern match on filename
#   extension				Pattern match on "*.extension"
#   ascii(offset,length)		True if bytes are valid printable ASCII
#					(CR, NL, TAB, BS, 32-126)
#   priority(number)                    Sets priority of type (0=lowest,
#                                       100=default, 200=highest)
#   printable(offset,length)		True if bytes are printable 8-bit chars
#					(CR, NL, TAB, BS, 32-126, 128-254)
#   regex(offset,"regex")		True if bytes match regular expression
#   string(offset,"string")		True if bytes are identical to string
#   istring(offset,"string")		True if bytes are identical to
#                                       case-insensitive string
#   char(offset,value)			True if byte is identical
#   short(offset,value)			True if 16-bit integer is identical
#   int(offset,value)			True if 32-bit integer is identical
#   locale("string")                    True if current locale matches string
#   contains(offset,range,"string")	True if the range contains the string
#
# General Notes:
#
#   MIME type names are case-insensitive.  Internally they are converted
#   to lowercase.  Multiple occurrences of a type will cause the provided
#   rules to be appended to the existing definition.  If two types use the same
#   rules to resolve a type and have the same priority, e.g. "doc" extension for
#   "text/bar" and "text/foo", the returned type will be the first type as
#   sorted in alphanumerically ascending order without regard to case.  Thus,
#   the "text/bar" type will match the "doc" extension first unless the
#   "text/foo" type has specified a higher priority.
#
#   The "printable" rule differs from the "ascii" rule in that it also
#   accepts 8-bit characters in the range 128-255.
#
#   String constants must be surrounded by "" if they contain whitespace.
#   To insert binary data into a string, use the <hex> notation.
#

########################################################################
#
# Application-generated files...
#

#application/msword		doc string(0,<D0CF11E0A1B11AE1>)
application/pdf			pdf regex(0,^[\n\r]*%PDF)
application/postscript		ai eps ps string(0,%!) string(0,<04>%!) \
				contains(0,128,<1B>%-12345X) + \
				(contains(0,8192,"LANGUAGE=POSTSCRIPT") \
				 contains(0,8192,"LANGUAGE = Postscript") \
				 contains(0,8192,"LANGUAGE = PostScript") \
				 contains(0,8192,"LANGUAGE = POSTSCRIPT") \
				 (contains(0,8192,<0a>%!) + \
				  !contains(0,8192,"ENTER LANGUAGE")))


########################################################################
#
# Image files...
#

image/gif			gif string(0,GIF87a) string(0,GIF89a)
image/png			png string(0,<89>PNG)
image/jpeg			jpeg jpg jpe string(0,<FFD8FF>) +\
				(char(3,0xe0) char(3,0xe1) char(3,0xe2) char(3,0xe3)\
				 char(3,0xe4) char(3,0xe5) char(3,0xe6) char(3,0xe7)\
				 char(3,0xe8) char(3,0xe9) char(3,0xea) char(3,0xeb)\
				 char(3,0xec) char(3,0xed) char(3,0xee) char(3,0xef))
image/pwg-raster		string(0,"RaS2") + string(4,PwgRaster<00>) priority(150)
image/tiff			tiff tif string(0,MM<002A>) string(0,II<2A00>)
image/x-photocd			pcd string(2048,PCD_IPI)
image/x-portable-anymap		pnm
image/x-portable-bitmap		pbm string(0,P1) string(0,P4)
image/x-portable-graymap	pgm string(0,P2) string(0,P5)
image/x-portable-pixmap		ppm string(0,P3) string(0,P6)
image/x-sgi-rgb			rgb sgi bw icon short(0,474)
image/x-xbitmap			xbm
image/x-xpixmap			xpm ascii(0,1024) + string(3,"XPM")
#image/x-xwindowdump		xwd string(4,<00000007>)
image/x-sun-raster		ras string(0,<59a66a95>)

#image/fpx			fpx
image/urf			urf string(0,UNIRAST<00>)
image/x-alias			pix short(8,8) short(8,24)
image/x-bitmap			bmp string(0,BM) + !printable(2,14)
image/x-icon			ico

########################################################################
#
# Text files...
#

application/x-cshell		csh printable(0,1024) + string(0,#!) +\
				(contains(2,80,/csh) contains(2,80,/tcsh))
application/x-perl		pl printable(0,1024) + string(0,#!) +\
				contains(2,80,/perl)
application/x-shell		sh printable(0,1024) + string(0,#!) +\
				(contains(2,80,/bash) contains(2,80,/ksh)\
				 contains(2,80,/sh) contains(2,80,/zsh))
application/x-csource		c cxx cpp cc C h hpp \
				printable(0,1024) + ! css + \
				(string(0,/*) string(0,//) \
				 string(0,#include) contains(0,1024,<0a>#include) \
				 string(0,#define) contains(0,1024,<0a>#define))
text/html			html htm printable(0,1024) +\
				(istring(0,"<HTML>") istring(0,"<!DOCTYPE"))
text/plain			txt printable(0,1024)
text/css			css


########################################################################
#
# RSS feed type...
#

application/rss+xml		rss


########################################################################
#
# CUPS-specific types...
#

application/vnd.cups-banner	string(0,'#CUPS-BANNER')
application/vnd.cups-command	string(0,'#CUPS-COMMAND')
application/vnd.cups-pdf
application/vnd.cups-postscript
application/vnd.cups-ppd	ppd string(0,"*PPD-Adobe:")
application/vnd.cups-raster	string(0,"RaSt") string(0,"tSaR") \
				(string(0,"RaS2") + !string(4,PwgRaster<00>)) string(0,"2SaR") \
				string(0,"RaS3") string(0,"3SaR")
application/vnd.cups-raw	(string(0,<1B>E) + !string(2,<1B>%0B)) \
				string(0,<1B>@) \
				(contains(0,128,<1B>%-12345X) + \
				 (contains(0,8192,"LANGUAGE=PCL") \
				  contains(0,8192,"LANGUAGE = PCL")))

########################################################################
#
# Raw print file support...
#
# Comment the following type to prevent raw file printing.
#

application/octet-stream
