// Do not edit this file!  Create a new version with MakeDefaultMimeTypes.

/* Copyright (C) 2000  Free Software Foundation

   This file is part of libgcj.

This software is copyrighted work licensed under the terms of the
Libgcj License.  Please consult the file "LIBGCJ_LICENSE" for
details.  */

package gnu.gcj.io;

public class DefaultMimeTypes
{
  public static final String[] types = {
      "midi",	"audio/midi"
    , "sit",	"application/x-stuffit"
    , "ram",	"audio/x-pn-realaudio"
    , "ez",	"application/andrew-inset"
    , "jpeg",	"image/jpeg"
    , "sv4crc",	"application/x-sv4crc"
    , "sv4cpio",	"application/x-sv4cpio"
    , "txt",	"text/plain"
    , "spl",	"application/x-futuresplash"
    , "ras",	"image/x-cmu-raster"
    , "sh",	"application/x-sh"
    , "dcr",	"application/x-director"
    , "msh",	"model/mesh"
    , "swf",	"application/x-shockwave-flash"
    , "hdf",	"application/x-hdf"
    , "bcpio",	"application/x-bcpio"
    , "zip",	"application/zip"
    , "gif",	"image/gif"
    , "me",	"application/x-troff-me"
    , "gtar",	"application/x-gtar"
    , "tex",	"application/x-tex"
    , "xyz",	"chemical/x-pdb"
    , "hqx",	"application/mac-binhex40"
    , "ms",	"application/x-troff-ms"
    , "oda",	"application/oda"
    , "vcd",	"application/x-cdlink"
    , "aifc",	"audio/x-aiff"
    , "skd",	"application/x-koan"
    , "smil",	"application/smil"
    , "asc",	"text/plain"
    , "aiff",	"audio/x-aiff"
    , "xml",	"text/xml"
    , "tr",	"application/x-troff"
    , "nc",	"application/x-netcdf"
    , "dxr",	"application/x-director"
    , "skm",	"application/x-koan"
    , "wrl",	"model/vrml"
    , "tsv",	"text/tab-separated-values"
    , "mpeg",	"video/mpeg"
    , "skp",	"application/x-koan"
    , "src",	"application/x-wais-source"
    , "rpm",	"application/x-rpm"
    , "skt",	"application/x-koan"
    , "ai",	"application/postscript"
    , "cpt",	"application/mac-compactpro"
    , "mp2",	"audio/mpeg"
    , "man",	"application/x-troff-man"
    , "mp3",	"audio/mpeg"
    , "mesh",	"model/mesh"
    , "igs",	"model/iges"
    , "shar",	"application/x-shar"
    , "au",	"audio/basic"
    , "texi",	"application/x-texinfo"
    , "cpio",	"application/x-cpio"
    , "jpe",	"image/jpeg"
    , "lzh",	"application/octet-stream"
    , "jpg",	"image/jpeg"
    , "cdf",	"application/x-netcdf"
    , "etx",	"text/x-setext"
    , "texinfo",	"application/x-texinfo"
    , "sgml",	"text/sgml"
    , "roff",	"application/x-troff"
    , "pgm",	"image/x-portable-graymap"
    , "pgn",	"application/x-chess-pgn"
    , "bin",	"application/octet-stream"
    , "png",	"image/png"
    , "tar",	"application/x-tar"
    , "mid",	"audio/midi"
    , "mov",	"video/quicktime"
    , "movie",	"video/x-sgi-movie"
    , "mif",	"application/vnd.mif"
    , "pnm",	"image/x-portable-anymap"
    , "mpga",	"audio/mpeg"
    , "smi",	"application/smil"
    , "t",	"application/x-troff"
    , "tiff",	"image/tiff"
    , "xbm",	"image/x-xbitmap"
    , "htm",	"text/html"
    , "mpe",	"video/mpeg"
    , "dms",	"application/octet-stream"
    , "mpg",	"video/mpeg"
    , "lha",	"application/octet-stream"
    , "latex",	"application/x-latex"
    , "ps",	"application/postscript"
    , "sgm",	"text/sgml"
    , "tif",	"image/tiff"
    , "ice",	"x-conference/x-cooltalk"
    , "snd",	"audio/basic"
    , "html",	"text/html"
    , "pbm",	"image/x-portable-bitmap"
    , "xpm",	"image/x-xpixmap"
    , "iges",	"model/iges"
    , "aif",	"audio/x-aiff"
    , "avi",	"video/x-msvideo"
    , "csh",	"application/x-csh"
    , "wav",	"audio/x-wav"
    , "xwd",	"image/x-xwindowdump"
    , "js",	"application/x-javascript"
    , "silo",	"model/mesh"
    , "vrml",	"model/vrml"
    , "tcl",	"application/x-tcl"
    , "css",	"text/css"
    , "eps",	"application/postscript"
    , "class",	"application/octet-stream"
    , "qt",	"video/quicktime"
    , "doc",	"application/msword"
    , "ustar",	"application/x-ustar"
    , "ppm",	"image/x-portable-pixmap"
    , "ppt",	"application/vnd.ms-powerpoint"
    , "ra",	"audio/x-realaudio"
    , "rgb",	"image/x-rgb"
    , "rtf",	"text/rtf"
    , "kar",	"audio/midi"
    , "dvi",	"application/x-dvi"
    , "rm",	"audio/x-pn-realaudio"
    , "exe",	"application/octet-stream"
    , "pdb",	"chemical/x-pdb"
    , "pdf",	"application/pdf"
    , "rtx",	"text/richtext"
    , "dir",	"application/x-director"
    , "ief",	"image/ief"
  };
}

