{-# LANGUAGE OverloadedStrings #-}

module Network.Mime (
    -- * Lookups
    mimeByExt,
    defaultMimeLookup,

    -- * Defaults
    defaultMimeType,
    defaultMimeMap,
    defaultExtensionMap,

    -- * Utilities
    fileNameExtensions,

    -- * Types
    FileName,
    MimeType,
    MimeMap,
    Extension,
    ExtensionMap,
) where

import Data.ByteString (ByteString)
import Data.ByteString.Char8 ()
import qualified Data.List as L
import qualified Data.Map as Map
import Data.Text (Text)
import qualified Data.Text as T

-- | Maps extensions to mime types.
type MimeMap = Map.Map Extension MimeType

-- | Maps mime types to extensions.
-- The list of extensions is in alphabetical order.
--
-- @since 0.1.2.0
type ExtensionMap = Map.Map MimeType [Extension]

-- | The filename component of a filepath, leaving off the directory but
-- keeping all extensions.
type FileName = Text

-- | Individual mime type for be served over the wire.
type MimeType = ByteString

-- | Look up a mime type from the given mime map and default mime type.
mimeByExt
    :: MimeMap
    -> MimeType
    -- ^ default mime type
    -> FileName
    -> MimeType
mimeByExt :: MimeMap -> ByteString -> Text -> ByteString
mimeByExt MimeMap
mm ByteString
def =
    [Text] -> ByteString
go ([Text] -> ByteString) -> (Text -> [Text]) -> Text -> ByteString
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Text -> [Text]
fileNameExtensions
  where
    go :: [Text] -> ByteString
go [] = ByteString
def
    go (Text
e : [Text]
es) =
        case Text -> MimeMap -> Maybe ByteString
forall k a. Ord k => k -> Map k a -> Maybe a
Map.lookup Text
e MimeMap
mm of
            Maybe ByteString
Nothing -> [Text] -> ByteString
go [Text]
es
            Just ByteString
mt -> ByteString
mt

-- | @mimeByExt@ applied to @defaultMimeType@ and @defaultMimeMap@.
defaultMimeLookup :: FileName -> MimeType
defaultMimeLookup :: Text -> ByteString
defaultMimeLookup = MimeMap -> ByteString -> Text -> ByteString
mimeByExt MimeMap
defaultMimeMap ByteString
defaultMimeType

-- | Get a list of all of the file name extensions.
--
-- > fileNameExtensions "foo.tar.gz" == ["tar.gz", "gz"]
fileNameExtensions :: FileName -> [Extension]
fileNameExtensions :: Text -> [Text]
fileNameExtensions =
    Text -> [Text]
go (Text -> [Text]) -> (Text -> Text) -> Text -> [Text]
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Text -> Text
T.toLower (Text -> Text) -> (Text -> Text) -> Text -> Text
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Text -> Text
dropToExt
  where
    dropToExt :: Text -> Text
dropToExt = Int -> Text -> Text
T.drop Int
1 (Text -> Text) -> (Text -> Text) -> Text -> Text
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (Char -> Bool) -> Text -> Text
T.dropWhile (Char -> Char -> Bool
forall a. Eq a => a -> a -> Bool
/= Char
'.')

    go :: Text -> [Text]
go Text
e
        | Text -> Bool
T.null Text
e = []
        | Bool
otherwise = Text
e Text -> [Text] -> [Text]
forall a. a -> [a] -> [a]
: Text -> [Text]
go Text
next
      where
        next :: Text
next = Text -> Text
dropToExt Text
e

-- | Path extension. May include multiple components, e.g. tar.gz
type Extension = Text

-- | The default fallback mime type \"application/octet-stream\".
defaultMimeType :: MimeType
defaultMimeType :: ByteString
defaultMimeType = ByteString
"application/octet-stream"

-- | A default mapping from filename extension to mime type.
--
-- Generated from the Apache and nginx mime.types files.
defaultMimeMap :: MimeMap
defaultMimeMap :: MimeMap
defaultMimeMap = [(Text, ByteString)] -> MimeMap
forall k a. Eq k => [(k, a)] -> Map k a
Map.fromAscList [(Text, ByteString)]
mimeAscList

-- | A mapping of 'MimeType' to a set of 'Extension's.
--
-- @since 0.1.2.0
defaultExtensionMap :: ExtensionMap
defaultExtensionMap :: Map ByteString [Text]
defaultExtensionMap =
    ((Text, ByteString)
 -> Map ByteString [Text] -> Map ByteString [Text])
-> Map ByteString [Text]
-> [(Text, ByteString)]
-> Map ByteString [Text]
forall a b. (a -> b -> b) -> b -> [a] -> b
forall (t :: * -> *) a b.
Foldable t =>
(a -> b -> b) -> b -> t a -> b
L.foldr (Text, ByteString)
-> Map ByteString [Text] -> Map ByteString [Text]
forall {k} {a}. Ord k => (a, k) -> Map k [a] -> Map k [a]
go Map ByteString [Text]
forall a. Monoid a => a
mempty [(Text, ByteString)]
mimeAscList
  where
    go :: (a, k) -> Map k [a] -> Map k [a]
go (a
ext, k
mimeType) =
        (Maybe [a] -> Maybe [a]) -> k -> Map k [a] -> Map k [a]
forall k a.
Ord k =>
(Maybe a -> Maybe a) -> k -> Map k a -> Map k a
Map.alter ([a] -> Maybe [a]
forall a. a -> Maybe a
Just ([a] -> Maybe [a]) -> (Maybe [a] -> [a]) -> Maybe [a] -> Maybe [a]
forall b c a. (b -> c) -> (a -> b) -> a -> c
. [a] -> ([a] -> [a]) -> Maybe [a] -> [a]
forall b a. b -> (a -> b) -> Maybe a -> b
maybe [a
ext] (a
ext a -> [a] -> [a]
forall a. a -> [a] -> [a]
:)) k
mimeType

-- | Find the current table in IANA media-types registry
-- https://www.iana.org/assignments/media-types/media-types.xhtml
mimeAscList :: [(Extension, MimeType)]
mimeAscList :: [(Text, ByteString)]
mimeAscList =
    [ (Text
"123", ByteString
"application/vnd.lotus-1-2-3")
    , (Text
"3dml", ByteString
"text/vnd.in3d.3dml")
    , (Text
"3ds", ByteString
"image/x-3ds")
    , (Text
"3g2", ByteString
"video/3gpp2")
    , (Text
"3gp", ByteString
"video/3gpp")
    , (Text
"3gpp", ByteString
"video/3gpp")
    , (Text
"7z", ByteString
"application/x-7z-compressed")
    , (Text
"aab", ByteString
"application/x-authorware-bin")
    , (Text
"aac", ByteString
"audio/x-aac")
    , (Text
"aam", ByteString
"application/x-authorware-map")
    , (Text
"aas", ByteString
"application/x-authorware-seg")
    , (Text
"abw", ByteString
"application/x-abiword")
    , (Text
"ac", ByteString
"application/pkix-attr-cert")
    , (Text
"acc", ByteString
"application/vnd.americandynamics.acc")
    , (Text
"ace", ByteString
"application/x-ace-compressed")
    , (Text
"acu", ByteString
"application/vnd.acucobol")
    , (Text
"acutc", ByteString
"application/vnd.acucorp")
    , (Text
"adp", ByteString
"audio/adpcm")
    , (Text
"aep", ByteString
"application/vnd.audiograph")
    , (Text
"afm", ByteString
"application/x-font-type1")
    , (Text
"afp", ByteString
"application/vnd.ibm.modcap")
    , (Text
"ahead", ByteString
"application/vnd.ahead.space")
    , (Text
"ai", ByteString
"application/postscript")
    , (Text
"aif", ByteString
"audio/x-aiff")
    , (Text
"aifc", ByteString
"audio/x-aiff")
    , (Text
"aiff", ByteString
"audio/x-aiff")
    , (Text
"air", ByteString
"application/vnd.adobe.air-application-installer-package+zip")
    , (Text
"ait", ByteString
"application/vnd.dvb.ait")
    , (Text
"ami", ByteString
"application/vnd.amiga.ami")
    , (Text
"apk", ByteString
"application/vnd.android.package-archive")
    , (Text
"appcache", ByteString
"text/cache-manifest")
    , (Text
"application", ByteString
"application/x-ms-application")
    , (Text
"apr", ByteString
"application/vnd.lotus-approach")
    , (Text
"arc", ByteString
"application/x-freearc")
    , (Text
"asc", ByteString
"text/plain")
    , (Text
"asf", ByteString
"video/x-ms-asf")
    , (Text
"asm", ByteString
"text/x-asm")
    , (Text
"aso", ByteString
"application/vnd.accpac.simply.aso")
    , (Text
"asx", ByteString
"video/x-ms-asf")
    , (Text
"atc", ByteString
"application/vnd.acucorp")
    , (Text
"atom", ByteString
"application/atom+xml")
    , (Text
"atomcat", ByteString
"application/atomcat+xml")
    , (Text
"atomsvc", ByteString
"application/atomsvc+xml")
    , (Text
"atx", ByteString
"application/vnd.antix.game-component")
    , (Text
"au", ByteString
"audio/basic")
    , (Text
"avi", ByteString
"video/x-msvideo")
    , (Text
"avif", ByteString
"image/avif")
    , (Text
"aw", ByteString
"application/applixware")
    , (Text
"azf", ByteString
"application/vnd.airzip.filesecure.azf")
    , (Text
"azs", ByteString
"application/vnd.airzip.filesecure.azs")
    , (Text
"azw", ByteString
"application/vnd.amazon.ebook")
    , (Text
"bat", ByteString
"application/x-msdownload")
    , (Text
"bcpio", ByteString
"application/x-bcpio")
    , (Text
"bdf", ByteString
"application/x-font-bdf")
    , (Text
"bdm", ByteString
"application/vnd.syncml.dm+wbxml")
    , (Text
"bed", ByteString
"application/vnd.realvnc.bed")
    , (Text
"bh2", ByteString
"application/vnd.fujitsu.oasysprs")
    , (Text
"bib", ByteString
"application/x-bibtex")
    , (Text
"bin", ByteString
"application/octet-stream")
    , (Text
"blb", ByteString
"application/x-blorb")
    , (Text
"blorb", ByteString
"application/x-blorb")
    , (Text
"bmi", ByteString
"application/vnd.bmi")
    , (Text
"bmp", ByteString
"image/bmp")
    , (Text
"book", ByteString
"application/vnd.framemaker")
    , (Text
"box", ByteString
"application/vnd.previewsystems.box")
    , (Text
"boz", ByteString
"application/x-bzip2")
    , (Text
"bpk", ByteString
"application/octet-stream")
    , (Text
"btif", ByteString
"image/prs.btif")
    , (Text
"bz", ByteString
"application/x-bzip")
    , (Text
"bz2", ByteString
"application/x-bzip")
    , (Text
"c", ByteString
"text/plain")
    , (Text
"c11amc", ByteString
"application/vnd.cluetrust.cartomobile-config")
    , (Text
"c11amz", ByteString
"application/vnd.cluetrust.cartomobile-config-pkg")
    , (Text
"c4d", ByteString
"application/vnd.clonk.c4group")
    , (Text
"c4f", ByteString
"application/vnd.clonk.c4group")
    , (Text
"c4g", ByteString
"application/vnd.clonk.c4group")
    , (Text
"c4p", ByteString
"application/vnd.clonk.c4group")
    , (Text
"c4u", ByteString
"application/vnd.clonk.c4group")
    , (Text
"cab", ByteString
"application/vnd.ms-cab-compressed")
    , (Text
"caf", ByteString
"audio/x-caf")
    , (Text
"cap", ByteString
"application/vnd.tcpdump.pcap")
    , (Text
"car", ByteString
"application/vnd.curl.car")
    , (Text
"cat", ByteString
"application/vnd.ms-pki.seccat")
    , (Text
"cb7", ByteString
"application/x-cbr")
    , (Text
"cba", ByteString
"application/x-cbr")
    , (Text
"cbr", ByteString
"application/x-cbr")
    , (Text
"cbt", ByteString
"application/x-cbr")
    , (Text
"cbz", ByteString
"application/x-cbr")
    , (Text
"cc", ByteString
"text/x-c")
    , (Text
"cco", ByteString
"application/x-cocoa")
    , (Text
"cct", ByteString
"application/x-director")
    , (Text
"ccxml", ByteString
"application/ccxml+xml")
    , (Text
"cdbcmsg", ByteString
"application/vnd.contact.cmsg")
    , (Text
"cdf", ByteString
"application/x-netcdf")
    , (Text
"cdkey", ByteString
"application/vnd.mediastation.cdkey")
    , (Text
"cdmia", ByteString
"application/cdmi-capability")
    , (Text
"cdmic", ByteString
"application/cdmi-container")
    , (Text
"cdmid", ByteString
"application/cdmi-domain")
    , (Text
"cdmio", ByteString
"application/cdmi-object")
    , (Text
"cdmiq", ByteString
"application/cdmi-queue")
    , (Text
"cdx", ByteString
"chemical/x-cdx")
    , (Text
"cdxml", ByteString
"application/vnd.chemdraw+xml")
    , (Text
"cdy", ByteString
"application/vnd.cinderella")
    , (Text
"cer", ByteString
"application/pkix-cert")
    , (Text
"cfs", ByteString
"application/x-cfs-compressed")
    , (Text
"cgm", ByteString
"image/cgm")
    , (Text
"chat", ByteString
"application/x-chat")
    , (Text
"chm", ByteString
"application/vnd.ms-htmlhelp")
    , (Text
"chrt", ByteString
"application/vnd.kde.kchart")
    , (Text
"cif", ByteString
"chemical/x-cif")
    , (Text
"cii", ByteString
"application/vnd.anser-web-certificate-issue-initiation")
    , (Text
"cil", ByteString
"application/vnd.ms-artgalry")
    , (Text
"cla", ByteString
"application/vnd.claymore")
    , (Text
"class", ByteString
"application/java-vm")
    , (Text
"clkk", ByteString
"application/vnd.crick.clicker.keyboard")
    , (Text
"clkp", ByteString
"application/vnd.crick.clicker.palette")
    , (Text
"clkt", ByteString
"application/vnd.crick.clicker.template")
    , (Text
"clkw", ByteString
"application/vnd.crick.clicker.wordbank")
    , (Text
"clkx", ByteString
"application/vnd.crick.clicker")
    , (Text
"clp", ByteString
"application/x-msclip")
    , (Text
"cls", ByteString
"application/x-tex")
    , (Text
"cmc", ByteString
"application/vnd.cosmocaller")
    , (Text
"cmdf", ByteString
"chemical/x-cmdf")
    , (Text
"cml", ByteString
"chemical/x-cml")
    , (Text
"cmp", ByteString
"application/vnd.yellowriver-custom-menu")
    , (Text
"cmx", ByteString
"image/x-cmx")
    , (Text
"cod", ByteString
"application/vnd.rim.cod")
    , (Text
"com", ByteString
"application/x-msdownload")
    , (Text
"conf", ByteString
"text/plain")
    , (Text
"cpio", ByteString
"application/x-cpio")
    , (Text
"cpp", ByteString
"text/plain")
    , (Text
"cpt", ByteString
"application/mac-compactpro")
    , (Text
"crd", ByteString
"application/x-mscardfile")
    , (Text
"crl", ByteString
"application/pkix-crl")
    , (Text
"crt", ByteString
"application/x-x509-ca-cert")
    , (Text
"cryptonote", ByteString
"application/vnd.rig.cryptonote")
    , (Text
"csh", ByteString
"application/x-csh")
    , (Text
"csml", ByteString
"chemical/x-csml")
    , (Text
"csp", ByteString
"application/vnd.commonspace")
    , (Text
"css", ByteString
"text/css")
    , (Text
"cst", ByteString
"application/x-director")
    , (Text
"csv", ByteString
"text/csv")
    , (Text
"cu", ByteString
"application/cu-seeme")
    , (Text
"curl", ByteString
"text/vnd.curl")
    , (Text
"cww", ByteString
"application/prs.cww")
    , (Text
"cxt", ByteString
"application/x-director")
    , (Text
"cxx", ByteString
"text/plain")
    , (Text
"dae", ByteString
"model/vnd.collada+xml")
    , (Text
"daf", ByteString
"application/vnd.mobius.daf")
    , (Text
"dart", ByteString
"application/vnd.dart")
    , (Text
"dataless", ByteString
"application/vnd.fdsn.seed")
    , (Text
"davmount", ByteString
"application/davmount+xml")
    , (Text
"dbk", ByteString
"application/docbook+xml")
    , (Text
"dcr", ByteString
"application/x-director")
    , (Text
"dcurl", ByteString
"text/vnd.curl.dcurl")
    , (Text
"dd2", ByteString
"application/vnd.oma.dd2+xml")
    , (Text
"ddd", ByteString
"application/vnd.fujixerox.ddd")
    , (Text
"deb", ByteString
"application/x-debian-package")
    , (Text
"def", ByteString
"text/plain")
    , (Text
"deploy", ByteString
"application/octet-stream")
    , (Text
"der", ByteString
"application/x-x509-ca-cert")
    , (Text
"dfac", ByteString
"application/vnd.dreamfactory")
    , (Text
"dgc", ByteString
"application/x-dgc-compressed")
    , (Text
"dic", ByteString
"text/x-c")
    , (Text
"dir", ByteString
"application/x-director")
    , (Text
"dis", ByteString
"application/vnd.mobius.dis")
    , (Text
"dist", ByteString
"application/octet-stream")
    , (Text
"distz", ByteString
"application/octet-stream")
    , (Text
"djv", ByteString
"image/vnd.djvu")
    , (Text
"djvu", ByteString
"image/vnd.djvu")
    , (Text
"dll", ByteString
"application/x-msdownload")
    , (Text
"dmg", ByteString
"application/x-apple-diskimage")
    , (Text
"dmp", ByteString
"application/vnd.tcpdump.pcap")
    , (Text
"dms", ByteString
"application/octet-stream")
    , (Text
"dna", ByteString
"application/vnd.dna")
    , (Text
"doc", ByteString
"application/msword")
    , (Text
"docm", ByteString
"application/vnd.ms-word.document.macroenabled.12")
    ,
        ( Text
"docx"
        , ByteString
"application/vnd.openxmlformats-officedocument.wordprocessingml.document"
        )
    , (Text
"dot", ByteString
"application/msword")
    , (Text
"dotm", ByteString
"application/vnd.ms-word.template.macroenabled.12")
    ,
        ( Text
"dotx"
        , ByteString
"application/vnd.openxmlformats-officedocument.wordprocessingml.template"
        )
    , (Text
"dp", ByteString
"application/vnd.osgi.dp")
    , (Text
"dpg", ByteString
"application/vnd.dpgraph")
    , (Text
"dra", ByteString
"audio/vnd.dra")
    , (Text
"dsc", ByteString
"text/prs.lines.tag")
    , (Text
"dssc", ByteString
"application/dssc+der")
    , (Text
"dtb", ByteString
"application/x-dtbook+xml")
    , (Text
"dtd", ByteString
"application/xml-dtd")
    , (Text
"dts", ByteString
"audio/vnd.dts")
    , (Text
"dtshd", ByteString
"audio/vnd.dts.hd")
    , (Text
"dump", ByteString
"application/octet-stream")
    , (Text
"dv", ByteString
"video/dv")
    , (Text
"dvb", ByteString
"video/vnd.dvb.file")
    , (Text
"dvi", ByteString
"application/x-dvi")
    , (Text
"dwf", ByteString
"model/vnd.dwf")
    , (Text
"dwg", ByteString
"image/vnd.dwg")
    , (Text
"dxf", ByteString
"image/vnd.dxf")
    , (Text
"dxp", ByteString
"application/vnd.spotfire.dxp")
    , (Text
"dxr", ByteString
"application/x-director")
    , (Text
"ear", ByteString
"application/java-archive")
    , (Text
"ecelp4800", ByteString
"audio/vnd.nuera.ecelp4800")
    , (Text
"ecelp7470", ByteString
"audio/vnd.nuera.ecelp7470")
    , (Text
"ecelp9600", ByteString
"audio/vnd.nuera.ecelp9600")
    , (Text
"ecma", ByteString
"application/ecmascript")
    , (Text
"edm", ByteString
"application/vnd.novadigm.edm")
    , (Text
"edx", ByteString
"application/vnd.novadigm.edx")
    , (Text
"efif", ByteString
"application/vnd.picsel")
    , (Text
"ei6", ByteString
"application/vnd.pg.osasli")
    , (Text
"elc", ByteString
"application/octet-stream")
    , (Text
"emf", ByteString
"application/x-msmetafile")
    , (Text
"eml", ByteString
"message/rfc822")
    , (Text
"emma", ByteString
"application/emma+xml")
    , (Text
"emz", ByteString
"application/x-msmetafile")
    , (Text
"eol", ByteString
"audio/vnd.digital-winds")
    , (Text
"eot", ByteString
"application/vnd.ms-fontobject")
    , (Text
"eps", ByteString
"application/postscript")
    , (Text
"epub", ByteString
"application/epub+zip")
    , (Text
"es3", ByteString
"application/vnd.eszigno3+xml")
    , (Text
"esa", ByteString
"application/vnd.osgi.subsystem")
    , (Text
"esf", ByteString
"application/vnd.epson.esf")
    , (Text
"et3", ByteString
"application/vnd.eszigno3+xml")
    , (Text
"etx", ByteString
"text/x-setext")
    , (Text
"eva", ByteString
"application/x-eva")
    , (Text
"evy", ByteString
"application/x-envoy")
    , (Text
"exe", ByteString
"application/vnd.microsoft.portable-executable")
    , (Text
"exi", ByteString
"application/exi")
    , (Text
"ext", ByteString
"application/vnd.novadigm.ext")
    , (Text
"ez", ByteString
"application/andrew-inset")
    , (Text
"ez2", ByteString
"application/vnd.ezpix-album")
    , (Text
"ez3", ByteString
"application/vnd.ezpix-package")
    , (Text
"f", ByteString
"text/x-fortran")
    , (Text
"f4v", ByteString
"video/x-f4v")
    , (Text
"f77", ByteString
"text/x-fortran")
    , (Text
"f90", ByteString
"text/x-fortran")
    , (Text
"fbs", ByteString
"image/vnd.fastbidsheet")
    , (Text
"fcdt", ByteString
"application/vnd.adobe.formscentral.fcdt")
    , (Text
"fcs", ByteString
"application/vnd.isac.fcs")
    , (Text
"fdf", ByteString
"application/vnd.fdf")
    , (Text
"fe_launch", ByteString
"application/vnd.denovo.fcselayout-link")
    , (Text
"fg5", ByteString
"application/vnd.fujitsu.oasysgp")
    , (Text
"fgd", ByteString
"application/x-director")
    , (Text
"fh", ByteString
"image/x-freehand")
    , (Text
"fh4", ByteString
"image/x-freehand")
    , (Text
"fh5", ByteString
"image/x-freehand")
    , (Text
"fh7", ByteString
"image/x-freehand")
    , (Text
"fhc", ByteString
"image/x-freehand")
    , (Text
"fig", ByteString
"application/x-xfig")
    , (Text
"flac", ByteString
"audio/x-flac")
    , (Text
"fli", ByteString
"video/x-fli")
    , (Text
"flo", ByteString
"application/vnd.micrografx.flo")
    , (Text
"flv", ByteString
"video/x-flv")
    , (Text
"flw", ByteString
"application/vnd.kde.kivio")
    , (Text
"flx", ByteString
"text/vnd.fmi.flexstor")
    , (Text
"fly", ByteString
"text/vnd.fly")
    , (Text
"fm", ByteString
"application/vnd.framemaker")
    , (Text
"fnc", ByteString
"application/vnd.frogans.fnc")
    , (Text
"for", ByteString
"text/x-fortran")
    , (Text
"fpx", ByteString
"image/vnd.fpx")
    , (Text
"frame", ByteString
"application/vnd.framemaker")
    , (Text
"fsc", ByteString
"application/vnd.fsc.weblaunch")
    , (Text
"fst", ByteString
"image/vnd.fst")
    , (Text
"ftc", ByteString
"application/vnd.fluxtime.clip")
    , (Text
"fti", ByteString
"application/vnd.anser-web-funds-transfer-initiation")
    , (Text
"fvt", ByteString
"video/vnd.fvt")
    , (Text
"fxp", ByteString
"application/vnd.adobe.fxp")
    , (Text
"fxpl", ByteString
"application/vnd.adobe.fxp")
    , (Text
"fzs", ByteString
"application/vnd.fuzzysheet")
    , (Text
"g2w", ByteString
"application/vnd.geoplan")
    , (Text
"g3", ByteString
"image/g3fax")
    , (Text
"g3w", ByteString
"application/vnd.geospace")
    , (Text
"gac", ByteString
"application/vnd.groove-account")
    , (Text
"gam", ByteString
"application/x-tads")
    , (Text
"gbr", ByteString
"application/rpki-ghostbusters")
    , (Text
"gca", ByteString
"application/x-gca-compressed")
    , (Text
"gdl", ByteString
"model/vnd.gdl")
    , (Text
"geo", ByteString
"application/vnd.dynageo")
    , (Text
"gex", ByteString
"application/vnd.geometry-explorer")
    , (Text
"gf", ByteString
"application/x-tex-gf")
    , (Text
"ggb", ByteString
"application/vnd.geogebra.file")
    , (Text
"ggt", ByteString
"application/vnd.geogebra.tool")
    , (Text
"ghf", ByteString
"application/vnd.groove-help")
    , (Text
"gif", ByteString
"image/gif")
    , (Text
"gim", ByteString
"application/vnd.groove-identity-message")
    , (Text
"gml", ByteString
"application/gml+xml")
    , (Text
"gmx", ByteString
"application/vnd.gmx")
    , (Text
"gnumeric", ByteString
"application/x-gnumeric")
    , (Text
"gph", ByteString
"application/vnd.flographit")
    , (Text
"gpx", ByteString
"application/gpx+xml")
    , (Text
"gqf", ByteString
"application/vnd.grafeq")
    , (Text
"gqs", ByteString
"application/vnd.grafeq")
    , (Text
"gram", ByteString
"application/srgs")
    , (Text
"gramps", ByteString
"application/x-gramps-xml")
    , (Text
"gre", ByteString
"application/vnd.geometry-explorer")
    , (Text
"grv", ByteString
"application/vnd.groove-injector")
    , (Text
"grxml", ByteString
"application/srgs+xml")
    , (Text
"gsf", ByteString
"application/x-font-ghostscript")
    , (Text
"gtar", ByteString
"application/x-gtar")
    , (Text
"gtm", ByteString
"application/vnd.groove-tool-message")
    , (Text
"gtw", ByteString
"model/vnd.gtw")
    , (Text
"gv", ByteString
"text/vnd.graphviz")
    , (Text
"gxf", ByteString
"application/gxf")
    , (Text
"gxt", ByteString
"application/vnd.geonext")
    , (Text
"gz", ByteString
"application/gzip")
    , (Text
"h", ByteString
"text/x-c")
    , (Text
"h261", ByteString
"video/h261")
    , (Text
"h263", ByteString
"video/h263")
    , (Text
"h264", ByteString
"video/h264")
    , (Text
"hal", ByteString
"application/vnd.hal+xml")
    , (Text
"hbci", ByteString
"application/vnd.hbci")
    , (Text
"hdf", ByteString
"application/x-hdf")
    , (Text
"hh", ByteString
"text/x-c")
    , (Text
"hlp", ByteString
"application/winhlp")
    , (Text
"hpgl", ByteString
"application/vnd.hp-hpgl")
    , (Text
"hpid", ByteString
"application/vnd.hp-hpid")
    , (Text
"hps", ByteString
"application/vnd.hp-hps")
    , (Text
"hqx", ByteString
"application/mac-binhex40")
    , (Text
"hs", ByteString
"text/plain")
    , (Text
"htc", ByteString
"text/x-component")
    , (Text
"htke", ByteString
"application/vnd.kenameaapp")
    , (Text
"htm", ByteString
"text/html")
    , (Text
"html", ByteString
"text/html")
    , (Text
"hvd", ByteString
"application/vnd.yamaha.hv-dic")
    , (Text
"hvp", ByteString
"application/vnd.yamaha.hv-voice")
    , (Text
"hvs", ByteString
"application/vnd.yamaha.hv-script")
    , (Text
"i2g", ByteString
"application/vnd.intergeo")
    , (Text
"icc", ByteString
"application/vnd.iccprofile")
    , (Text
"ice", ByteString
"x-conference/x-cooltalk")
    , (Text
"icm", ByteString
"application/vnd.iccprofile")
    , (Text
"ico", ByteString
"image/vnd.microsoft.icon")
    , (Text
"ics", ByteString
"text/calendar")
    , (Text
"ief", ByteString
"image/ief")
    , (Text
"ifb", ByteString
"text/calendar")
    , (Text
"ifm", ByteString
"application/vnd.shana.informed.formdata")
    , (Text
"iges", ByteString
"model/iges")
    , (Text
"igl", ByteString
"application/vnd.igloader")
    , (Text
"igm", ByteString
"application/vnd.insors.igm")
    , (Text
"igs", ByteString
"model/iges")
    , (Text
"igx", ByteString
"application/vnd.micrografx.igx")
    , (Text
"iif", ByteString
"application/vnd.shana.informed.interchange")
    , (Text
"img", ByteString
"application/octet-stream")
    , (Text
"imp", ByteString
"application/vnd.accpac.simply.imp")
    , (Text
"ims", ByteString
"application/vnd.ms-ims")
    , (Text
"in", ByteString
"text/plain")
    , (Text
"ink", ByteString
"application/inkml+xml")
    , (Text
"inkml", ByteString
"application/inkml+xml")
    , (Text
"install", ByteString
"application/x-install-instructions")
    , (Text
"iota", ByteString
"application/vnd.astraea-software.iota")
    , (Text
"ipfix", ByteString
"application/ipfix")
    , (Text
"ipk", ByteString
"application/vnd.shana.informed.package")
    , (Text
"irm", ByteString
"application/vnd.ibm.rights-management")
    , (Text
"irp", ByteString
"application/vnd.irepository.package+xml")
    , (Text
"iso", ByteString
"application/x-iso9660-image")
    , (Text
"itp", ByteString
"application/vnd.shana.informed.formtemplate")
    , (Text
"ivp", ByteString
"application/vnd.immervision-ivp")
    , (Text
"ivu", ByteString
"application/vnd.immervision-ivu")
    , (Text
"jad", ByteString
"text/vnd.sun.j2me.app-descriptor")
    , (Text
"jam", ByteString
"application/vnd.jam")
    , (Text
"jar", ByteString
"application/java-archive")
    , (Text
"jardiff", ByteString
"application/x-java-archive-diff")
    , (Text
"java", ByteString
"text/x-java-source")
    , (Text
"jisp", ByteString
"application/vnd.jisp")
    , (Text
"jlt", ByteString
"application/vnd.hp-jlyt")
    , (Text
"jng", ByteString
"image/x-jng")
    , (Text
"jnlp", ByteString
"application/x-java-jnlp-file")
    , (Text
"joda", ByteString
"application/vnd.joost.joda-archive")
    , (Text
"jpe", ByteString
"image/jpeg")
    , (Text
"jpeg", ByteString
"image/jpeg")
    , (Text
"jpg", ByteString
"image/jpeg")
    , (Text
"jpgm", ByteString
"video/jpm")
    , (Text
"jpgv", ByteString
"video/jpeg")
    , (Text
"jpm", ByteString
"video/jpm")
    , (Text
"js", ByteString
"text/javascript")
    , (Text
"json", ByteString
"application/json")
    , (Text
"jsonml", ByteString
"application/jsonml+json")
    , (Text
"kar", ByteString
"audio/midi")
    , (Text
"karbon", ByteString
"application/vnd.kde.karbon")
    , (Text
"kfo", ByteString
"application/vnd.kde.kformula")
    , (Text
"kia", ByteString
"application/vnd.kidspiration")
    , (Text
"kml", ByteString
"application/vnd.google-earth.kml+xml")
    , (Text
"kmz", ByteString
"application/vnd.google-earth.kmz")
    , (Text
"kne", ByteString
"application/vnd.kinar")
    , (Text
"knp", ByteString
"application/vnd.kinar")
    , (Text
"kon", ByteString
"application/vnd.kde.kontour")
    , (Text
"kpr", ByteString
"application/vnd.kde.kpresenter")
    , (Text
"kpt", ByteString
"application/vnd.kde.kpresenter")
    , (Text
"kpxx", ByteString
"application/vnd.ds-keypoint")
    , (Text
"ksp", ByteString
"application/vnd.kde.kspread")
    , (Text
"ktr", ByteString
"application/vnd.kahootz")
    , (Text
"ktx", ByteString
"image/ktx")
    , (Text
"ktz", ByteString
"application/vnd.kahootz")
    , (Text
"kwd", ByteString
"application/vnd.kde.kword")
    , (Text
"kwt", ByteString
"application/vnd.kde.kword")
    , (Text
"lasxml", ByteString
"application/vnd.las.las+xml")
    , (Text
"latex", ByteString
"application/x-latex")
    , (Text
"lbd", ByteString
"application/vnd.llamagraphics.life-balance.desktop")
    , (Text
"lbe", ByteString
"application/vnd.llamagraphics.life-balance.exchange+xml")
    , (Text
"les", ByteString
"application/vnd.hhe.lesson-player")
    , -- Added after deliberation in PR (https://github.com/yesodweb/wai/pull/534)
      -- Accepted mainly because of StackOverflow (http://stackoverflow.com/questions/7319555/how-to-add-less-to-iis-7-0)
      (Text
"less", ByteString
"text/css")
    , (Text
"lha", ByteString
"application/x-lzh-compressed")
    , (Text
"link66", ByteString
"application/vnd.route66.link66+xml")
    , (Text
"list", ByteString
"text/plain")
    , (Text
"list3820", ByteString
"application/vnd.ibm.modcap")
    , (Text
"listafp", ByteString
"application/vnd.ibm.modcap")
    , (Text
"lnk", ByteString
"application/x-ms-shortcut")
    , (Text
"log", ByteString
"text/plain")
    , (Text
"lostxml", ByteString
"application/lost+xml")
    , (Text
"lrf", ByteString
"application/octet-stream")
    , (Text
"lrm", ByteString
"application/vnd.ms-lrm")
    , (Text
"ltf", ByteString
"application/vnd.frogans.ltf")
    , (Text
"ltx", ByteString
"application/x-tex")
    , (Text
"lvp", ByteString
"audio/vnd.lucent.voice")
    , (Text
"lwp", ByteString
"application/vnd.lotus-wordpro")
    , (Text
"lzh", ByteString
"application/x-lzh-compressed")
    , (Text
"m13", ByteString
"application/x-msmediaview")
    , (Text
"m14", ByteString
"application/x-msmediaview")
    , (Text
"m1v", ByteString
"video/mpeg")
    , (Text
"m21", ByteString
"application/mp21")
    , (Text
"m2a", ByteString
"audio/mpeg")
    , (Text
"m2v", ByteString
"video/mpeg")
    , (Text
"m3a", ByteString
"audio/mpeg")
    , (Text
"m3u", ByteString
"application/vnd.apple.mpegurl")
    , (Text
"m3u8", ByteString
"application/vnd.apple.mpegurl")
    , (Text
"m4a", ByteString
"audio/mp4")
    , (Text
"m4u", ByteString
"video/vnd.mpegurl")
    , (Text
"m4v", ByteString
"video/x-m4v")
    , (Text
"ma", ByteString
"application/mathematica")
    , (Text
"mads", ByteString
"application/mads+xml")
    , (Text
"mag", ByteString
"application/vnd.ecowin.chart")
    , (Text
"maker", ByteString
"application/vnd.framemaker")
    , (Text
"man", ByteString
"text/troff")
    , (Text
"manifest", ByteString
"text/cache-manifest")
    , (Text
"mar", ByteString
"application/octet-stream")
    , (Text
"markdown", ByteString
"text/markdown")
    , (Text
"mathml", ByteString
"application/mathml+xml")
    , (Text
"mb", ByteString
"application/mathematica")
    , (Text
"mbk", ByteString
"application/vnd.mobius.mbk")
    , (Text
"mbox", ByteString
"application/mbox")
    , (Text
"mc1", ByteString
"application/vnd.medcalcdata")
    , (Text
"mcd", ByteString
"application/vnd.mcd")
    , (Text
"mcurl", ByteString
"text/vnd.curl.mcurl")
    , (Text
"md", ByteString
"text/markdown")
    , (Text
"mdb", ByteString
"application/x-msaccess")
    , (Text
"mdi", ByteString
"image/vnd.ms-modi")
    , (Text
"me", ByteString
"text/troff")
    , (Text
"mesh", ByteString
"model/mesh")
    , (Text
"meta4", ByteString
"application/metalink4+xml")
    , (Text
"metalink", ByteString
"application/metalink+xml")
    , (Text
"mets", ByteString
"application/mets+xml")
    , (Text
"mfm", ByteString
"application/vnd.mfmp")
    , (Text
"mft", ByteString
"application/rpki-manifest")
    , (Text
"mgp", ByteString
"application/vnd.osgeo.mapguide.package")
    , (Text
"mgz", ByteString
"application/vnd.proteus.magazine")
    , (Text
"mid", ByteString
"audio/midi")
    , (Text
"midi", ByteString
"audio/midi")
    , (Text
"mie", ByteString
"application/x-mie")
    , (Text
"mif", ByteString
"application/vnd.mif")
    , (Text
"mime", ByteString
"message/rfc822")
    , (Text
"mj2", ByteString
"video/mj2")
    , (Text
"mjp2", ByteString
"video/mj2")
    , (Text
"mjs", ByteString
"text/javascript")
    , (Text
"mk3d", ByteString
"video/x-matroska")
    , (Text
"mka", ByteString
"audio/x-matroska")
    , (Text
"mks", ByteString
"video/x-matroska")
    , (Text
"mkv", ByteString
"video/x-matroska")
    , (Text
"mlp", ByteString
"application/vnd.dolby.mlp")
    , (Text
"mmd", ByteString
"application/vnd.chipnuts.karaoke-mmd")
    , (Text
"mmf", ByteString
"application/vnd.smaf")
    , (Text
"mml", ByteString
"text/mathml")
    , (Text
"mmr", ByteString
"image/vnd.fujixerox.edmics-mmr")
    , (Text
"mng", ByteString
"video/x-mng")
    , (Text
"mny", ByteString
"application/x-msmoney")
    , (Text
"mobi", ByteString
"application/x-mobipocket-ebook")
    , (Text
"mods", ByteString
"application/mods+xml")
    , (Text
"mov", ByteString
"video/quicktime")
    , (Text
"movie", ByteString
"video/x-sgi-movie")
    , (Text
"mp2", ByteString
"audio/mpeg")
    , (Text
"mp21", ByteString
"application/mp21")
    , (Text
"mp2a", ByteString
"audio/mpeg")
    , (Text
"mp3", ByteString
"audio/mpeg")
    , (Text
"mp4", ByteString
"video/mp4")
    , (Text
"mp4a", ByteString
"audio/mp4")
    , (Text
"mp4s", ByteString
"application/mp4")
    , (Text
"mp4v", ByteString
"video/mp4")
    , (Text
"mpc", ByteString
"application/vnd.mophun.certificate")
    , (Text
"mpe", ByteString
"video/mpeg")
    , (Text
"mpeg", ByteString
"video/mpeg")
    , (Text
"mpg", ByteString
"video/mpeg")
    , (Text
"mpg4", ByteString
"video/mp4")
    , (Text
"mpga", ByteString
"audio/mpeg")
    , (Text
"mpkg", ByteString
"application/vnd.apple.installer+xml")
    , (Text
"mpm", ByteString
"application/vnd.blueice.multipass")
    , (Text
"mpn", ByteString
"application/vnd.mophun.application")
    , (Text
"mpp", ByteString
"application/vnd.ms-project")
    , (Text
"mpt", ByteString
"application/vnd.ms-project")
    , (Text
"mpy", ByteString
"application/vnd.ibm.minipay")
    , (Text
"mqy", ByteString
"application/vnd.mobius.mqy")
    , (Text
"mrc", ByteString
"application/marc")
    , (Text
"mrcx", ByteString
"application/marcxml+xml")
    , (Text
"ms", ByteString
"text/troff")
    , (Text
"mscml", ByteString
"application/mediaservercontrol+xml")
    , (Text
"mseed", ByteString
"application/vnd.fdsn.mseed")
    , (Text
"mseq", ByteString
"application/vnd.mseq")
    , (Text
"msf", ByteString
"application/vnd.epson.msf")
    , (Text
"msh", ByteString
"model/mesh")
    , (Text
"msi", ByteString
"application/x-msdownload")
    , (Text
"msl", ByteString
"application/vnd.mobius.msl")
    , (Text
"msm", ByteString
"application/octet-stream")
    , (Text
"msp", ByteString
"application/octet-stream")
    , (Text
"msty", ByteString
"application/vnd.muvee.style")
    , (Text
"mts", ByteString
"model/vnd.mts")
    , (Text
"mus", ByteString
"application/vnd.musician")
    , (Text
"musicxml", ByteString
"application/vnd.recordare.musicxml+xml")
    , (Text
"mvb", ByteString
"application/x-msmediaview")
    , (Text
"mwf", ByteString
"application/vnd.mfer")
    , (Text
"mxf", ByteString
"application/mxf")
    , (Text
"mxl", ByteString
"application/vnd.recordare.musicxml")
    , (Text
"mxml", ByteString
"application/xv+xml")
    , (Text
"mxs", ByteString
"application/vnd.triscape.mxs")
    , (Text
"mxu", ByteString
"video/vnd.mpegurl")
    , (Text
"n-gage", ByteString
"application/vnd.nokia.n-gage.symbian.install")
    , (Text
"n3", ByteString
"text/n3")
    , (Text
"nb", ByteString
"application/mathematica")
    , (Text
"nbp", ByteString
"application/vnd.wolfram.player")
    , (Text
"nc", ByteString
"application/x-netcdf")
    , (Text
"ncx", ByteString
"application/x-dtbncx+xml")
    , (Text
"nfo", ByteString
"text/x-nfo")
    , (Text
"ngdat", ByteString
"application/vnd.nokia.n-gage.data")
    , (Text
"nitf", ByteString
"application/vnd.nitf")
    , (Text
"nlu", ByteString
"application/vnd.neurolanguage.nlu")
    , (Text
"nml", ByteString
"application/vnd.enliven")
    , (Text
"nnd", ByteString
"application/vnd.noblenet-directory")
    , (Text
"nns", ByteString
"application/vnd.noblenet-sealer")
    , (Text
"nnw", ByteString
"application/vnd.noblenet-web")
    , (Text
"npx", ByteString
"image/vnd.net-fpx")
    , (Text
"nsc", ByteString
"application/x-conference")
    , (Text
"nsf", ByteString
"application/vnd.lotus-notes")
    , (Text
"ntf", ByteString
"application/vnd.nitf")
    , (Text
"nzb", ByteString
"application/x-nzb")
    , (Text
"oa2", ByteString
"application/vnd.fujitsu.oasys2")
    , (Text
"oa3", ByteString
"application/vnd.fujitsu.oasys3")
    , (Text
"oas", ByteString
"application/vnd.fujitsu.oasys")
    , (Text
"obd", ByteString
"application/x-msbinder")
    , (Text
"obj", ByteString
"application/x-tgif")
    , (Text
"oda", ByteString
"application/oda")
    , (Text
"odb", ByteString
"application/vnd.oasis.opendocument.database")
    , (Text
"odc", ByteString
"application/vnd.oasis.opendocument.chart")
    , (Text
"odf", ByteString
"application/vnd.oasis.opendocument.formula")
    , (Text
"odft", ByteString
"application/vnd.oasis.opendocument.formula-template")
    , (Text
"odg", ByteString
"application/vnd.oasis.opendocument.graphics")
    , (Text
"odi", ByteString
"application/vnd.oasis.opendocument.image")
    , (Text
"odm", ByteString
"application/vnd.oasis.opendocument.text-master")
    , (Text
"odp", ByteString
"application/vnd.oasis.opendocument.presentation")
    , (Text
"ods", ByteString
"application/vnd.oasis.opendocument.spreadsheet")
    , (Text
"odt", ByteString
"application/vnd.oasis.opendocument.text")
    , (Text
"oga", ByteString
"audio/ogg")
    , (Text
"ogg", ByteString
"audio/ogg")
    , (Text
"ogv", ByteString
"video/ogg")
    , (Text
"ogx", ByteString
"application/ogg")
    , (Text
"omdoc", ByteString
"application/omdoc+xml")
    , (Text
"onepkg", ByteString
"application/onenote")
    , (Text
"onetmp", ByteString
"application/onenote")
    , (Text
"onetoc", ByteString
"application/onenote")
    , (Text
"onetoc2", ByteString
"application/onenote")
    , (Text
"opf", ByteString
"application/oebps-package+xml")
    , (Text
"opml", ByteString
"text/x-opml")
    , (Text
"oprc", ByteString
"application/vnd.palm")
    , (Text
"opus", ByteString
"audio/opus")
    , (Text
"org", ByteString
"application/vnd.lotus-organizer")
    , (Text
"osf", ByteString
"application/vnd.yamaha.openscoreformat")
    , (Text
"osfpvg", ByteString
"application/vnd.yamaha.openscoreformat.osfpvg+xml")
    , (Text
"otc", ByteString
"application/vnd.oasis.opendocument.chart-template")
    , (Text
"otf", ByteString
"font/otf")
    , (Text
"otg", ByteString
"application/vnd.oasis.opendocument.graphics-template")
    , (Text
"oth", ByteString
"application/vnd.oasis.opendocument.text-web")
    , (Text
"oti", ByteString
"application/vnd.oasis.opendocument.image-template")
    , (Text
"otp", ByteString
"application/vnd.oasis.opendocument.presentation-template")
    , (Text
"ots", ByteString
"application/vnd.oasis.opendocument.spreadsheet-template")
    , (Text
"ott", ByteString
"application/vnd.oasis.opendocument.text-template")
    , (Text
"oxps", ByteString
"application/oxps")
    , (Text
"oxt", ByteString
"application/vnd.openofficeorg.extension")
    , (Text
"p", ByteString
"text/x-pascal")
    , (Text
"p10", ByteString
"application/pkcs10")
    , (Text
"p12", ByteString
"application/x-pkcs12")
    , (Text
"p7b", ByteString
"application/x-pkcs7-certificates")
    , (Text
"p7c", ByteString
"application/pkcs7-mime")
    , (Text
"p7m", ByteString
"application/pkcs7-mime")
    , (Text
"p7r", ByteString
"application/x-pkcs7-certreqresp")
    , (Text
"p7s", ByteString
"application/pkcs7-signature")
    , (Text
"p8", ByteString
"application/pkcs8")
    , (Text
"pac", ByteString
"application/x-ns-proxy-autoconfig")
    , (Text
"pas", ByteString
"text/x-pascal")
    , (Text
"paw", ByteString
"application/vnd.pawaafile")
    , (Text
"pbd", ByteString
"application/vnd.powerbuilder6")
    , (Text
"pbm", ByteString
"image/x-portable-bitmap")
    , (Text
"pcap", ByteString
"application/vnd.tcpdump.pcap")
    , (Text
"pcf", ByteString
"application/x-font-pcf")
    , (Text
"pcl", ByteString
"application/vnd.hp-pcl")
    , (Text
"pclxl", ByteString
"application/vnd.hp-pclxl")
    , (Text
"pct", ByteString
"image/x-pict")
    , (Text
"pcurl", ByteString
"application/vnd.curl.pcurl")
    , (Text
"pcx", ByteString
"image/vnd.zbrush.pcx")
    , (Text
"pdb", ByteString
"application/vnd.palm")
    , (Text
"pdf", ByteString
"application/pdf")
    , (Text
"pem", ByteString
"application/x-x509-ca-cert")
    , (Text
"pfa", ByteString
"application/x-font-type1")
    , (Text
"pfb", ByteString
"application/x-font-type1")
    , (Text
"pfm", ByteString
"application/x-font-type1")
    , (Text
"pfr", ByteString
"application/font-tdpfr")
    , (Text
"pfx", ByteString
"application/x-pkcs12")
    , (Text
"pgm", ByteString
"image/x-portable-graymap")
    , (Text
"pgn", ByteString
"application/x-chess-pgn")
    , (Text
"pgp", ByteString
"application/pgp-encrypted")
    , (Text
"pic", ByteString
"image/x-pict")
    , (Text
"pkg", ByteString
"application/octet-stream")
    , (Text
"pki", ByteString
"application/pkixcmp")
    , (Text
"pkipath", ByteString
"application/pkix-pkipath")
    , (Text
"pl", ByteString
"application/x-perl")
    , (Text
"plb", ByteString
"application/vnd.3gpp.pic-bw-large")
    , (Text
"plc", ByteString
"application/vnd.mobius.plc")
    , (Text
"plf", ByteString
"application/vnd.pocketlearn")
    , (Text
"pls", ByteString
"application/pls+xml")
    , (Text
"pm", ByteString
"application/x-perl")
    , (Text
"pml", ByteString
"application/vnd.ctc-posml")
    , (Text
"png", ByteString
"image/png")
    , (Text
"pnm", ByteString
"image/x-portable-anymap")
    , (Text
"portpkg", ByteString
"application/vnd.macports.portpkg")
    , (Text
"pot", ByteString
"application/vnd.ms-powerpoint")
    , (Text
"potm", ByteString
"application/vnd.ms-powerpoint.template.macroenabled.12")
    ,
        ( Text
"potx"
        , ByteString
"application/vnd.openxmlformats-officedocument.presentationml.template"
        )
    , (Text
"ppam", ByteString
"application/vnd.ms-powerpoint.addin.macroenabled.12")
    , (Text
"ppd", ByteString
"application/vnd.cups-ppd")
    , (Text
"ppm", ByteString
"image/x-portable-pixmap")
    , (Text
"pps", ByteString
"application/vnd.ms-powerpoint")
    , (Text
"ppsm", ByteString
"application/vnd.ms-powerpoint.slideshow.macroenabled.12")
    ,
        ( Text
"ppsx"
        , ByteString
"application/vnd.openxmlformats-officedocument.presentationml.slideshow"
        )
    , (Text
"ppt", ByteString
"application/vnd.ms-powerpoint")
    , (Text
"pptm", ByteString
"application/vnd.ms-powerpoint.presentation.macroenabled.12")
    ,
        ( Text
"pptx"
        , ByteString
"application/vnd.openxmlformats-officedocument.presentationml.presentation"
        )
    , (Text
"pqa", ByteString
"application/vnd.palm")
    , (Text
"prc", ByteString
"application/x-mobipocket-ebook")
    , (Text
"pre", ByteString
"application/vnd.lotus-freelance")
    , (Text
"prf", ByteString
"application/pics-rules")
    , (Text
"ps", ByteString
"application/postscript")
    , (Text
"psb", ByteString
"application/vnd.3gpp.pic-bw-small")
    , (Text
"psd", ByteString
"image/vnd.adobe.photoshop")
    , (Text
"psf", ByteString
"application/x-font-linux-psf")
    , (Text
"pskcxml", ByteString
"application/pskc+xml")
    , (Text
"ptid", ByteString
"application/vnd.pvi.ptid1")
    , (Text
"pub", ByteString
"application/x-mspublisher")
    , (Text
"pvb", ByteString
"application/vnd.3gpp.pic-bw-var")
    , (Text
"pwn", ByteString
"application/vnd.3m.post-it-notes")
    , (Text
"pya", ByteString
"audio/vnd.ms-playready.media.pya")
    , (Text
"pyv", ByteString
"video/vnd.ms-playready.media.pyv")
    , (Text
"qam", ByteString
"application/vnd.epson.quickanime")
    , (Text
"qbo", ByteString
"application/vnd.intu.qbo")
    , (Text
"qfx", ByteString
"application/vnd.intu.qfx")
    , (Text
"qps", ByteString
"application/vnd.publishare-delta-tree")
    , (Text
"qt", ByteString
"video/quicktime")
    , (Text
"qwd", ByteString
"application/vnd.quark.quarkxpress")
    , (Text
"qwt", ByteString
"application/vnd.quark.quarkxpress")
    , (Text
"qxb", ByteString
"application/vnd.quark.quarkxpress")
    , (Text
"qxd", ByteString
"application/vnd.quark.quarkxpress")
    , (Text
"qxl", ByteString
"application/vnd.quark.quarkxpress")
    , (Text
"qxt", ByteString
"application/vnd.quark.quarkxpress")
    , (Text
"ra", ByteString
"audio/x-pn-realaudio")
    , (Text
"ram", ByteString
"audio/x-pn-realaudio")
    , (Text
"rar", ByteString
"application/vnd.rar")
    , (Text
"ras", ByteString
"image/x-cmu-raster")
    , (Text
"rcprofile", ByteString
"application/vnd.ipunplugged.rcprofile")
    , (Text
"rdf", ByteString
"application/rdf+xml")
    , (Text
"rdz", ByteString
"application/vnd.data-vision.rdz")
    , (Text
"rep", ByteString
"application/vnd.businessobjects")
    , (Text
"res", ByteString
"application/x-dtbresource+xml")
    , (Text
"rgb", ByteString
"image/x-rgb")
    , (Text
"rif", ByteString
"application/reginfo+xml")
    , (Text
"rip", ByteString
"audio/vnd.rip")
    , (Text
"ris", ByteString
"application/x-research-info-systems")
    , (Text
"rl", ByteString
"application/resource-lists+xml")
    , (Text
"rlc", ByteString
"image/vnd.fujixerox.edmics-rlc")
    , (Text
"rld", ByteString
"application/resource-lists-diff+xml")
    , (Text
"rm", ByteString
"application/vnd.rn-realmedia")
    , (Text
"rmi", ByteString
"audio/midi")
    , (Text
"rmp", ByteString
"audio/x-pn-realaudio-plugin")
    , (Text
"rms", ByteString
"application/vnd.jcp.javame.midlet-rms")
    , (Text
"rmvb", ByteString
"application/vnd.rn-realmedia-vbr")
    , (Text
"rnc", ByteString
"application/relax-ng-compact-syntax")
    , (Text
"roa", ByteString
"application/rpki-roa")
    , (Text
"roff", ByteString
"text/troff")
    , (Text
"rp9", ByteString
"application/vnd.cloanto.rp9")
    , (Text
"rpm", ByteString
"application/x-redhat-package-manager")
    , (Text
"rpss", ByteString
"application/vnd.nokia.radio-presets")
    , (Text
"rpst", ByteString
"application/vnd.nokia.radio-preset")
    , (Text
"rq", ByteString
"application/sparql-query")
    , (Text
"rs", ByteString
"application/rls-services+xml")
    , (Text
"rsd", ByteString
"application/rsd+xml")
    , (Text
"rss", ByteString
"application/rss+xml")
    , (Text
"rtf", ByteString
"application/rtf")
    , (Text
"rtx", ByteString
"text/richtext")
    , (Text
"run", ByteString
"application/x-makeself")
    , (Text
"s", ByteString
"text/x-asm")
    , (Text
"s3m", ByteString
"audio/s3m")
    , (Text
"saf", ByteString
"application/vnd.yamaha.smaf-audio")
    , (Text
"sbml", ByteString
"application/sbml+xml")
    , (Text
"sc", ByteString
"application/vnd.ibm.secure-container")
    , (Text
"scd", ByteString
"application/x-msschedule")
    , (Text
"scm", ByteString
"application/vnd.lotus-screencam")
    , (Text
"scq", ByteString
"application/scvp-cv-request")
    , (Text
"scs", ByteString
"application/scvp-cv-response")
    , (Text
"scurl", ByteString
"text/vnd.curl.scurl")
    , (Text
"sda", ByteString
"application/vnd.stardivision.draw")
    , (Text
"sdc", ByteString
"application/vnd.stardivision.calc")
    , (Text
"sdd", ByteString
"application/vnd.stardivision.impress")
    , (Text
"sdkd", ByteString
"application/vnd.solent.sdkm+xml")
    , (Text
"sdkm", ByteString
"application/vnd.solent.sdkm+xml")
    , (Text
"sdp", ByteString
"application/sdp")
    , (Text
"sdw", ByteString
"application/vnd.stardivision.writer")
    , (Text
"sea", ByteString
"application/x-sea")
    , (Text
"see", ByteString
"application/vnd.seemail")
    , (Text
"seed", ByteString
"application/vnd.fdsn.seed")
    , (Text
"sema", ByteString
"application/vnd.sema")
    , (Text
"semd", ByteString
"application/vnd.semd")
    , (Text
"semf", ByteString
"application/vnd.semf")
    , (Text
"ser", ByteString
"application/java-serialized-object")
    , (Text
"setpay", ByteString
"application/set-payment-initiation")
    , (Text
"setreg", ByteString
"application/set-registration-initiation")
    , (Text
"sfd-hdstx", ByteString
"application/vnd.hydrostatix.sof-data")
    , (Text
"sfs", ByteString
"application/vnd.spotfire.sfs")
    , (Text
"sfv", ByteString
"text/x-sfv")
    , (Text
"sgi", ByteString
"image/sgi")
    , (Text
"sgl", ByteString
"application/vnd.stardivision.writer-global")
    , (Text
"sgm", ByteString
"text/sgml")
    , (Text
"sgml", ByteString
"text/sgml")
    , (Text
"sh", ByteString
"application/x-sh")
    , (Text
"shar", ByteString
"application/x-shar")
    , (Text
"shf", ByteString
"application/shf+xml")
    , (Text
"shtml", ByteString
"text/html")
    , (Text
"sid", ByteString
"image/x-mrsid-image")
    , (Text
"sig", ByteString
"application/pgp-signature")
    , (Text
"sil", ByteString
"audio/silk")
    , (Text
"silo", ByteString
"model/mesh")
    , (Text
"sis", ByteString
"application/vnd.symbian.install")
    , (Text
"sisx", ByteString
"application/vnd.symbian.install")
    , (Text
"sit", ByteString
"application/x-stuffit")
    , (Text
"sitx", ByteString
"application/x-stuffitx")
    , (Text
"skd", ByteString
"application/vnd.koan")
    , (Text
"skm", ByteString
"application/vnd.koan")
    , (Text
"skp", ByteString
"application/vnd.koan")
    , (Text
"skt", ByteString
"application/vnd.koan")
    , (Text
"sldm", ByteString
"application/vnd.ms-powerpoint.slide.macroenabled.12")
    , (Text
"sldx", ByteString
"application/vnd.openxmlformats-officedocument.presentationml.slide")
    , (Text
"slt", ByteString
"application/vnd.epson.salt")
    , (Text
"sm", ByteString
"application/vnd.stepmania.stepchart")
    , (Text
"smf", ByteString
"application/vnd.stardivision.math")
    , (Text
"smi", ByteString
"application/smil+xml")
    , (Text
"smil", ByteString
"application/smil+xml")
    , (Text
"smv", ByteString
"video/x-smv")
    , (Text
"smzip", ByteString
"application/vnd.stepmania.package")
    , (Text
"snd", ByteString
"audio/basic")
    , (Text
"snf", ByteString
"application/x-font-snf")
    , (Text
"so", ByteString
"application/octet-stream")
    , (Text
"spc", ByteString
"application/x-pkcs7-certificates")
    , (Text
"spf", ByteString
"application/vnd.yamaha.smaf-phrase")
    , (Text
"spl", ByteString
"application/futuresplash")
    , (Text
"spot", ByteString
"text/vnd.in3d.spot")
    , (Text
"spp", ByteString
"application/scvp-vp-response")
    , (Text
"spq", ByteString
"application/scvp-vp-request")
    , (Text
"spx", ByteString
"audio/ogg")
    , (Text
"sql", ByteString
"application/x-sql")
    , (Text
"src", ByteString
"application/x-wais-source")
    , (Text
"srt", ByteString
"application/x-subrip")
    , (Text
"sru", ByteString
"application/sru+xml")
    , (Text
"srx", ByteString
"application/sparql-results+xml")
    , (Text
"ssdl", ByteString
"application/ssdl+xml")
    , (Text
"sse", ByteString
"application/vnd.kodak-descriptor")
    , (Text
"ssf", ByteString
"application/vnd.epson.ssf")
    , (Text
"ssml", ByteString
"application/ssml+xml")
    , (Text
"st", ByteString
"application/vnd.sailingtracker.track")
    , (Text
"stc", ByteString
"application/vnd.sun.xml.calc.template")
    , (Text
"std", ByteString
"application/vnd.sun.xml.draw.template")
    , (Text
"stf", ByteString
"application/vnd.wt.stf")
    , (Text
"sti", ByteString
"application/vnd.sun.xml.impress.template")
    , (Text
"stk", ByteString
"application/hyperstudio")
    , (Text
"stl", ByteString
"application/vnd.ms-pki.stl")
    , (Text
"str", ByteString
"application/vnd.pg.format")
    , (Text
"stw", ByteString
"application/vnd.sun.xml.writer.template")
    , (Text
"sty", ByteString
"application/x-tex")
    , (Text
"sub", ByteString
"text/vnd.dvb.subtitle")
    , (Text
"sus", ByteString
"application/vnd.sus-calendar")
    , (Text
"susp", ByteString
"application/vnd.sus-calendar")
    , (Text
"sv4cpio", ByteString
"application/x-sv4cpio")
    , (Text
"sv4crc", ByteString
"application/x-sv4crc")
    , (Text
"svc", ByteString
"application/vnd.dvb.service")
    , (Text
"svd", ByteString
"application/vnd.svd")
    , (Text
"svg", ByteString
"image/svg+xml")
    , (Text
"svgz", ByteString
"image/svg+xml")
    , (Text
"swa", ByteString
"application/x-director")
    , (Text
"swf", ByteString
"application/x-shockwave-flash")
    , (Text
"swi", ByteString
"application/vnd.aristanetworks.swi")
    , (Text
"sxc", ByteString
"application/vnd.sun.xml.calc")
    , (Text
"sxd", ByteString
"application/vnd.sun.xml.draw")
    , (Text
"sxg", ByteString
"application/vnd.sun.xml.writer.global")
    , (Text
"sxi", ByteString
"application/vnd.sun.xml.impress")
    , (Text
"sxm", ByteString
"application/vnd.sun.xml.math")
    , (Text
"sxw", ByteString
"application/vnd.sun.xml.writer")
    , (Text
"t", ByteString
"text/troff")
    , (Text
"t3", ByteString
"application/x-t3vm-image")
    , (Text
"taglet", ByteString
"application/vnd.mynfc")
    , (Text
"tao", ByteString
"application/vnd.tao.intent-module-archive")
    , (Text
"tar", ByteString
"application/x-tar")
    , (Text
"tar.bz2", ByteString
"application/x-bzip-compressed-tar")
    , (Text
"tar.gz", ByteString
"application/x-tgz")
    , (Text
"tbz", ByteString
"application/x-bzip-compressed-tar")
    , (Text
"tcap", ByteString
"application/vnd.3gpp2.tcap")
    , (Text
"tcl", ByteString
"application/x-tcl")
    , (Text
"teacher", ByteString
"application/vnd.smart.teacher")
    , (Text
"tei", ByteString
"application/tei+xml")
    , (Text
"teicorpus", ByteString
"application/tei+xml")
    , (Text
"tex", ByteString
"application/x-tex")
    , (Text
"texi", ByteString
"application/x-texinfo")
    , (Text
"texinfo", ByteString
"application/x-texinfo")
    , (Text
"text", ByteString
"text/plain")
    , (Text
"tfi", ByteString
"application/thraud+xml")
    , (Text
"tfm", ByteString
"application/x-tex-tfm")
    , (Text
"tga", ByteString
"image/x-tga")
    , (Text
"tgz", ByteString
"application/x-tgz")
    , (Text
"thmx", ByteString
"application/vnd.ms-officetheme")
    , (Text
"tif", ByteString
"image/tiff")
    , (Text
"tiff", ByteString
"image/tiff")
    , (Text
"tk", ByteString
"application/x-tcl")
    , (Text
"tmo", ByteString
"application/vnd.tmobile-livetv")
    , (Text
"torrent", ByteString
"application/x-bittorrent")
    , (Text
"tpl", ByteString
"application/vnd.groove-tool-template")
    , (Text
"tpt", ByteString
"application/vnd.trid.tpt")
    , (Text
"tr", ByteString
"text/troff")
    , (Text
"tra", ByteString
"application/vnd.trueapp")
    , (Text
"trm", ByteString
"application/x-msterminal")
    , (Text
"tsd", ByteString
"application/timestamped-data")
    , (Text
"tsv", ByteString
"text/tab-separated-values")
    , (Text
"ttc", ByteString
"font/ttf")
    , (Text
"ttf", ByteString
"font/ttf")
    , (Text
"ttl", ByteString
"text/turtle")
    , (Text
"twd", ByteString
"application/vnd.simtech-mindmapper")
    , (Text
"twds", ByteString
"application/vnd.simtech-mindmapper")
    , (Text
"txd", ByteString
"application/vnd.genomatix.tuxedo")
    , (Text
"txf", ByteString
"application/vnd.mobius.txf")
    , (Text
"txt", ByteString
"text/plain")
    , (Text
"u32", ByteString
"application/x-authorware-bin")
    , (Text
"udeb", ByteString
"application/x-debian-package")
    , (Text
"ufd", ByteString
"application/vnd.ufdl")
    , (Text
"ufdl", ByteString
"application/vnd.ufdl")
    , (Text
"ulx", ByteString
"application/x-glulx")
    , (Text
"umj", ByteString
"application/vnd.umajin")
    , (Text
"unityweb", ByteString
"application/vnd.unity")
    , (Text
"uoml", ByteString
"application/vnd.uoml+xml")
    , (Text
"uri", ByteString
"text/uri-list")
    , (Text
"uris", ByteString
"text/uri-list")
    , (Text
"urls", ByteString
"text/uri-list")
    , (Text
"ustar", ByteString
"application/x-ustar")
    , (Text
"utz", ByteString
"application/vnd.uiq.theme")
    , (Text
"uu", ByteString
"text/x-uuencode")
    , (Text
"uva", ByteString
"audio/vnd.dece.audio")
    , (Text
"uvd", ByteString
"application/vnd.dece.data")
    , (Text
"uvf", ByteString
"application/vnd.dece.data")
    , (Text
"uvg", ByteString
"image/vnd.dece.graphic")
    , (Text
"uvh", ByteString
"video/vnd.dece.hd")
    , (Text
"uvi", ByteString
"image/vnd.dece.graphic")
    , (Text
"uvm", ByteString
"video/vnd.dece.mobile")
    , (Text
"uvp", ByteString
"video/vnd.dece.pd")
    , (Text
"uvs", ByteString
"video/vnd.dece.sd")
    , (Text
"uvt", ByteString
"application/vnd.dece.ttml+xml")
    , (Text
"uvu", ByteString
"video/vnd.uvvu.mp4")
    , (Text
"uvv", ByteString
"video/vnd.dece.video")
    , (Text
"uvva", ByteString
"audio/vnd.dece.audio")
    , (Text
"uvvd", ByteString
"application/vnd.dece.data")
    , (Text
"uvvf", ByteString
"application/vnd.dece.data")
    , (Text
"uvvg", ByteString
"image/vnd.dece.graphic")
    , (Text
"uvvh", ByteString
"video/vnd.dece.hd")
    , (Text
"uvvi", ByteString
"image/vnd.dece.graphic")
    , (Text
"uvvm", ByteString
"video/vnd.dece.mobile")
    , (Text
"uvvp", ByteString
"video/vnd.dece.pd")
    , (Text
"uvvs", ByteString
"video/vnd.dece.sd")
    , (Text
"uvvt", ByteString
"application/vnd.dece.ttml+xml")
    , (Text
"uvvu", ByteString
"video/vnd.uvvu.mp4")
    , (Text
"uvvv", ByteString
"video/vnd.dece.video")
    , (Text
"uvvx", ByteString
"application/vnd.dece.unspecified")
    , (Text
"uvvz", ByteString
"application/vnd.dece.zip")
    , (Text
"uvx", ByteString
"application/vnd.dece.unspecified")
    , (Text
"uvz", ByteString
"application/vnd.dece.zip")
    , (Text
"vcard", ByteString
"text/vcard")
    , (Text
"vcd", ByteString
"application/x-cdlink")
    , (Text
"vcf", ByteString
"text/x-vcard")
    , (Text
"vcg", ByteString
"application/vnd.groove-vcard")
    , (Text
"vcs", ByteString
"text/x-vcalendar")
    , (Text
"vcx", ByteString
"application/vnd.vcx")
    , (Text
"vis", ByteString
"application/vnd.visionary")
    , (Text
"viv", ByteString
"video/vnd.vivo")
    , (Text
"vob", ByteString
"video/x-ms-vob")
    , (Text
"vor", ByteString
"application/vnd.stardivision.writer")
    , (Text
"vox", ByteString
"application/x-authorware-bin")
    , (Text
"vrml", ByteString
"model/vrml")
    , (Text
"vsd", ByteString
"application/vnd.visio")
    , (Text
"vsf", ByteString
"application/vnd.vsf")
    , (Text
"vss", ByteString
"application/vnd.visio")
    , (Text
"vst", ByteString
"application/vnd.visio")
    , (Text
"vsw", ByteString
"application/vnd.visio")
    , (Text
"vtt", ByteString
"text/vtt")
    , (Text
"vtu", ByteString
"model/vnd.vtu")
    , (Text
"vxml", ByteString
"application/voicexml+xml")
    , (Text
"w3d", ByteString
"application/x-director")
    , (Text
"wad", ByteString
"application/x-doom")
    , (Text
"war", ByteString
"application/java-archive")
    , (Text
"wasm", ByteString
"application/wasm")
    , (Text
"wav", ByteString
"audio/x-wav")
    , (Text
"wax", ByteString
"audio/x-ms-wax")
    , (Text
"wbmp", ByteString
"image/vnd.wap.wbmp")
    , (Text
"wbs", ByteString
"application/vnd.criticaltools.wbs+xml")
    , (Text
"wbxml", ByteString
"application/vnd.wap.wbxml")
    , (Text
"wcm", ByteString
"application/vnd.ms-works")
    , (Text
"wdb", ByteString
"application/vnd.ms-works")
    , (Text
"wdp", ByteString
"image/vnd.ms-photo")
    , (Text
"weba", ByteString
"audio/webm")
    , (Text
"webm", ByteString
"video/webm")
    , (Text
"webp", ByteString
"image/webp")
    , (Text
"wg", ByteString
"application/vnd.pmi.widget")
    , (Text
"wgt", ByteString
"application/widget")
    , (Text
"wks", ByteString
"application/vnd.ms-works")
    , (Text
"wm", ByteString
"video/x-ms-wm")
    , (Text
"wma", ByteString
"audio/x-ms-wma")
    , (Text
"wmd", ByteString
"application/x-ms-wmd")
    , (Text
"wmf", ByteString
"application/x-msmetafile")
    , (Text
"wml", ByteString
"text/vnd.wap.wml")
    , (Text
"wmlc", ByteString
"application/vnd.wap.wmlc")
    , (Text
"wmls", ByteString
"text/vnd.wap.wmlscript")
    , (Text
"wmlsc", ByteString
"application/vnd.wap.wmlscriptc")
    , (Text
"wmv", ByteString
"video/x-ms-wmv")
    , (Text
"wmx", ByteString
"video/x-ms-wmx")
    , (Text
"wmz", ByteString
"application/x-msmetafile")
    , (Text
"woff", ByteString
"font/woff")
    , (Text
"woff2", ByteString
"font/woff2")
    , (Text
"wpd", ByteString
"application/vnd.wordperfect")
    , (Text
"wpl", ByteString
"application/vnd.ms-wpl")
    , (Text
"wps", ByteString
"application/vnd.ms-works")
    , (Text
"wqd", ByteString
"application/vnd.wqd")
    , (Text
"wri", ByteString
"application/x-mswrite")
    , (Text
"wrl", ByteString
"model/vrml")
    , (Text
"wsdl", ByteString
"application/wsdl+xml")
    , (Text
"wspolicy", ByteString
"application/wspolicy+xml")
    , (Text
"wtb", ByteString
"application/vnd.webturbo")
    , (Text
"wvx", ByteString
"video/x-ms-wvx")
    , (Text
"x32", ByteString
"application/x-authorware-bin")
    , (Text
"x3d", ByteString
"model/x3d+xml")
    , (Text
"x3db", ByteString
"model/x3d+binary")
    , (Text
"x3dbz", ByteString
"model/x3d+binary")
    , (Text
"x3dv", ByteString
"model/x3d+vrml")
    , (Text
"x3dvz", ByteString
"model/x3d+vrml")
    , (Text
"x3dz", ByteString
"model/x3d+xml")
    , (Text
"xaml", ByteString
"application/xaml+xml")
    , (Text
"xap", ByteString
"application/x-silverlight-app")
    , (Text
"xar", ByteString
"application/vnd.xara")
    , (Text
"xbap", ByteString
"application/x-ms-xbap")
    , (Text
"xbd", ByteString
"application/vnd.fujixerox.docuworks.binder")
    , (Text
"xbm", ByteString
"image/x-xbitmap")
    , (Text
"xcf", ByteString
"image/x-xcf")
    , (Text
"xdf", ByteString
"application/xcap-diff+xml")
    , (Text
"xdm", ByteString
"application/vnd.syncml.dm+xml")
    , (Text
"xdp", ByteString
"application/vnd.adobe.xdp+xml")
    , (Text
"xdssc", ByteString
"application/dssc+xml")
    , (Text
"xdw", ByteString
"application/vnd.fujixerox.docuworks")
    , (Text
"xenc", ByteString
"application/xenc+xml")
    , (Text
"xer", ByteString
"application/patch-ops-error+xml")
    , (Text
"xfdf", ByteString
"application/vnd.adobe.xfdf")
    , (Text
"xfdl", ByteString
"application/vnd.xfdl")
    , (Text
"xht", ByteString
"application/xhtml+xml")
    , (Text
"xhtml", ByteString
"application/xhtml+xml")
    , (Text
"xhvml", ByteString
"application/xv+xml")
    , (Text
"xif", ByteString
"image/vnd.xiff")
    , (Text
"xla", ByteString
"application/vnd.ms-excel")
    , (Text
"xlam", ByteString
"application/vnd.ms-excel.addin.macroenabled.12")
    , (Text
"xlc", ByteString
"application/vnd.ms-excel")
    , (Text
"xlf", ByteString
"application/x-xliff+xml")
    , (Text
"xlm", ByteString
"application/vnd.ms-excel")
    , (Text
"xls", ByteString
"application/vnd.ms-excel")
    , (Text
"xlsb", ByteString
"application/vnd.ms-excel.sheet.binary.macroenabled.12")
    , (Text
"xlsm", ByteString
"application/vnd.ms-excel.sheet.macroenabled.12")
    , (Text
"xlsx", ByteString
"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet")
    , (Text
"xlt", ByteString
"application/vnd.ms-excel")
    , (Text
"xltm", ByteString
"application/vnd.ms-excel.template.macroenabled.12")
    , (Text
"xltx", ByteString
"application/vnd.openxmlformats-officedocument.spreadsheetml.template")
    , (Text
"xlw", ByteString
"application/vnd.ms-excel")
    , (Text
"xm", ByteString
"audio/xm")
    , (Text
"xml", ByteString
"application/xml")
    , (Text
"xo", ByteString
"application/vnd.olpc-sugar")
    , (Text
"xop", ByteString
"application/xop+xml")
    , (Text
"xpi", ByteString
"application/x-xpinstall")
    , (Text
"xpl", ByteString
"application/xproc+xml")
    , (Text
"xpm", ByteString
"image/x-xpixmap")
    , (Text
"xpr", ByteString
"application/vnd.is-xpr")
    , (Text
"xps", ByteString
"application/vnd.ms-xpsdocument")
    , (Text
"xpw", ByteString
"application/vnd.intercon.formnet")
    , (Text
"xpx", ByteString
"application/vnd.intercon.formnet")
    , (Text
"xsl", ByteString
"application/xml")
    , (Text
"xslt", ByteString
"application/xslt+xml")
    , (Text
"xsm", ByteString
"application/vnd.syncml+xml")
    , (Text
"xspf", ByteString
"application/xspf+xml")
    , (Text
"xul", ByteString
"application/vnd.mozilla.xul+xml")
    , (Text
"xvm", ByteString
"application/xv+xml")
    , (Text
"xvml", ByteString
"application/xv+xml")
    , (Text
"xwd", ByteString
"image/x-xwindowdump")
    , (Text
"xyz", ByteString
"chemical/x-xyz")
    , (Text
"xz", ByteString
"application/x-xz")
    , (Text
"yang", ByteString
"application/yang")
    , (Text
"yin", ByteString
"application/yin+xml")
    , (Text
"z1", ByteString
"application/x-zmachine")
    , (Text
"z2", ByteString
"application/x-zmachine")
    , (Text
"z3", ByteString
"application/x-zmachine")
    , (Text
"z4", ByteString
"application/x-zmachine")
    , (Text
"z5", ByteString
"application/x-zmachine")
    , (Text
"z6", ByteString
"application/x-zmachine")
    , (Text
"z7", ByteString
"application/x-zmachine")
    , (Text
"z8", ByteString
"application/x-zmachine")
    , (Text
"zaz", ByteString
"application/vnd.zzazz.deck+xml")
    , (Text
"zip", ByteString
"application/zip")
    , (Text
"zir", ByteString
"application/vnd.zul")
    , (Text
"zirz", ByteString
"application/vnd.zul")
    , (Text
"zmm", ByteString
"application/vnd.handheld-entertainment+xml")
    ]