<?php
/** ---------------------------------------------------------------------
 * app/lib/File/FileMimeTypes.php : 
 * ----------------------------------------------------------------------
 * CollectiveAccess
 * Open-source collections management software
 * ----------------------------------------------------------------------
 *
 * Software by Whirl-i-Gig (http://www.whirl-i-gig.com)
 * Copyright 2009-2024 Whirl-i-Gig
 *
 * For more information visit http://www.CollectiveAccess.org
 *
 * This program is free software; you may redistribute it and/or modify it under
 * the terms of the provided license as published by Whirl-i-Gig
 *
 * CollectiveAccess is distributed in the hope that it will be useful, but
 * WITHOUT ANY WARRANTIES whatsoever, including any implied warranty of 
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  
 *
 * This source code is free and modifiable under the terms of 
 * GNU General Public License. (http://www.gnu.org/copyleft/gpl.html). See
 * the "license.txt" file for details, or visit the CollectiveAccess web site at
 * http://www.CollectiveAccess.org
 *
 * @package CollectiveAccess
 * @subpackage File
 * @license http://www.gnu.org/copyleft/gpl.html GNU Public License version 3
 *
 * ----------------------------------------------------------------------
 */
global $g_mimetypes_to_info;
$g_mimetypes_to_info= array(
	'x-world/x-3dmf'	=>				array('name' => '3DMF'),
	'application/octet-stream'	=>		array('name' => 'Binary data'),
	'application/postscript'	=>		array('name' => 'Postscript'),
	'application/aiff'	=>				array('name' => 'AIFF audio'),
	'application/x-aiff'	=>			array('name' => 'AIFF audio'),
	'video/x-ms-asf'	=>				array('name' => 'Microsoft ASF'),
	'audio/basic'	=>					array('name' => 'AU audio'),
	'audio/x-au'	=>					array('name' => 'AU audio'),
	'text/asp'	=>						array('name' => 'Microsoft ASP'),
	'application/x-mplayer2'	=>		array('name' => 'Microsoft ASX'),
	'video/x-ms-asf-plugin'	=>			array('name' => 'Microsoft ASX'),
	'application/x-troff-msvideo'	=>	array('name' => 'AVI'),
	'video/avi'	=>						array('name' => 'AVI'),
	'video/msvideo'	=>					array('name' => 'AVI'),
	'video/x-msvideo'	=>				array('name' => 'AVI'),
	'application/mac-binary'	=>		array('name' => 'MacBinary'),
	'application/macbinary'	=>			array('name' => 'MacBinary'),
	'application/x-binary'	=>			array('name' => 'Binary data'),
	'application/x-macbinary'	=>		array('name' => 'MacBinary'),
	'image/bmp'	=>						array('name' => 'BMP'),
	'image/x-windows-bmp'	=>			array('name' => 'MacBinary'),
	'application/x-bzip'	=>			array('name' => 'BZip'),
	'application/x-bzip2'	=>			array('name' => 'BZip2'),
	'text/plain'	=>					array('name' => 'Text'),
	'text/css'	=>						array('name' => 'CSS'),
	'application/x-director'	=>		array('name' => 'Adobe Director'),
	'application/msword'	=>			array('name' => 'Microsoft Word'),
	'video/x-dv'	=>					array('name' => 'DV Video'),
	'application/x-dvi'	=>				array('name' => 'DV'),
	'model/vnd.dwf'	=>					array('name' => 'DWF'),
	'application/acad'	=>				array('name' => 'AutoCad DWG'),
	'image/vnd.dwg'	=>					array('name' => 'AutoCad DWG'),
	'image/x-dwg'	=>					array('name' => 'AutoCad DWG'),
	'application/dxf'	=>				array('name' => 'AutoCad DXF'),
	'image/vnd.fpx'	=>					array('name' => 'FPX'),
	'image/vnd.net-fpx'	=>				array('name' => 'FPX'),
	'image/gif'	=>						array('name' => 'GIF'),
	'application/x-gtar'	=>			array('name' => 'GNU TAR'),
	'application/x-compressed'	=>		array('name' => 'GZip'),
	'application/x-gzip'	=>			array('name' => 'GZip'),
	'multipart/x-gzip'	=>				array('name' => 'GZip'),
	'text/html'	=>						array('name' => 'HTML'),
	'image/x-icon'	=>					array('name' => 'ICO'),
	'image/jpeg'	=>					array('name' => 'JPEG'),
	'image/pjpeg'	=>					array('name' => 'JPEG'),
	'application/x-javascript'	=>		array('name' => 'Javascript'),
	'video/mpeg'	=>					array('name' => 'MPEG Video'),
	'audio/mpeg'	=>					array('name' => 'MPEG Audio'),
	'application/x-midi' =>				array('name' => 'MIDI'),
	'audio/midi'	=>					array('name' => 'MIDI'),
	'audio/x-mid'	=>					array('name' => 'MIDI'),
	'audio/x-midi'	=>					array('name' => 'MIDI'),
	'message/rfc822'	=>				array('name' => 'MIME'),
	'www/mime'	=>						array('name' => 'MIME'),
	'video/x-motion-jpeg'	=>			array('name' => 'Motion JPEG'),
	'video/quicktime'	=>				array('name' => 'QuickTime'),
	'audio/x-mpeg'	=>					array('name' => 'MPEG Audio'),
	'video/x-mpeg'	=>					array('name' => 'MPEG Video'),
	'video/x-mpeq2a'	=>				array('name' => 'MPEG-2 Video'),
	'audio/mpeg3'	=>					array('name' => 'MP3'),
	'audio/x-mpeg-3'	=>				array('name' => 'MP3'),
	'application/vnd.ms-project'	=>	array('name' => 'Microsoft Project'),
	'application/marc'	=>				array('name' => 'MARC'),
	'image/x-pict'	=>					array('name' => 'PICT'),
	'image/x-pcx'	=>					array('name' => 'PC'),
	'image/pict'	=>					array('name' => 'PICT'),
	'image/png'	=>						array('name' => 'PNG'),
	'application/mspowerpoint'	=>		array('name' => 'Microsoft PowerPoint'),
	'application/powerpoint'	=>		array('name' => 'Microsoft PowerPoint'),
	'application/vnd.ms-powerpoint'	=>	array('name' => 'Microsoft PowerPoint'),
	'application/x-mspowerpoint'	=>	array('name' => 'Microsoft PowerPoint'),
	'video/x-qtc'	=>					array('name' => 'QuickTime'),
	'image/x-quicktime'	=>				array('name' => 'QuickTime'),
	'application/rtf'	=>				array('name' => 'RTF Text'),
	'application/x-rtf'	=>				array('name' => 'RTF Text'),
	'text/richtext'	=>					array('name' => 'RTF Text'),
	'text/sgml'	=>						array('name' => 'SGML'),
	'text/x-sgml'	=>					array('name' => 'SGML'),
	'application/x-sit'	=>				array('name' => 'Stuffit'),
	'application/x-stuffit'	=>			array('name' => 'Stuffit'),
	'application/smil'	=>				array('name' => 'SMIL'),
	'application/x-shockwave-flash'	=>	array('name' => 'Adobe Flash'),
	'application/x-tar'	=>				array('name' => 'TAR'),
	'image/tiff'	=>					array('name' => 'TIFF'),
	'image/x-tiff'	=>					array('name' => 'TIFF'),
	'application/x-vrml'	=>			array('name' => 'VRML'),
	'model/vrml'	=>					array('name' => 'VRML'),
	'x-world/x-vrml'	=>				array('name' => 'VRML'),
	'audio/wav'	=>						array('name' => 'WAV Audio'),
	'audio/x-wav'	=>					array('name' => 'WAV Audio'),
	'windows/metafile'	=>				array('name' => 'Windows Metafile'),
	'application/excel'	=>				array('name' => 'Microsoft Excel'),
	'application/x-excel'	=>			array('name' => 'Microsoft Excel'),
	'application/x-msexcel'	=>			array('name' => 'Microsoft Excel'),
	'application/vnd.ms-excel'	=>		array('name' => 'Microsoft Excel'),
	'application/xml'	=>				array('name' => 'XML'),
	'text/xml'	=>						array('name' => 'XML'),
	'application/zip'	=>				array('name' => 'ZIP'),
	'multipart/x-zip'	=>				array('name' => 'ZIP'),
	'application/x-httpd-php'	=>		array('name' => 'PHP'),
	'application/x-php4'	=>			array('name' => 'PHP'),
	'application/javascript'	=>		array('name' => 'Javascript'),
	'application/json'	=>				array('name' => 'JSON'),
	'video/x-flv'	=>					array('name' => 'Flash Video'),
	'application/atom+xml'	=>			array('name' => 'Atom'),
	'image/svg+xml'	=>					array('name' => 'SVG'),
	'application/x-rar-compressed'	=>	array('name' => 'RAR'),
	'application/pdf'	=>				array('name' => 'PDF'),
	'image/vnd.adobe.photoshop'	=>		array('name' => 'Photoshop PSD'),
	'application/vnd.oasis.opendocument.text'	=>	array('name' => 'OpenDocument Text'),
	'application/vnd.oasis.opendocument.spreadsheet'	=>	array('name' => 'OpenDocument Spreadsheet'),
	'application/x-shockwave-flash2-preview'	=>	array('name' => 'Adobe Flash'),
	'application/futuresplash'	=>	array('name' => 'Adobe Flash'),
	'application/windows-media' => array('name' => 'Windows Media'),
	'text/vtt' => array('name' => 'VTT'),
	'text/srt' => array('name' => 'SRT'),
	'text/csv' => array('name' => 'CSV'),
	'text/tab-separated-values' => array('name' => 'TAB'),
 );
 
 global $g_file_extensions_to_mimetypes;
 $g_file_extensions_to_mimetypes = array(
	'3dm'    => 'x-world/x-3dmf',
	'3dmf'   => 'x-world/x-3dmf',
	'a'      => 'application/octet-stream',
	'aab'    => 'application/x-authorware-bin',
	'aam'    => 'application/x-authorware-map',
	'aas'    => 'application/x-authorware-seg',
	'abc'    => 'text/vnd.abc',
	'acgi'   => 'text/html',
	'afl'    => 'video/animaflex',
	'ai'     => 'application/postscript',
	'aif'    => 'audio/aiff',
	'aifc'   => 'audio/aiff',
	'aiff'   => 'audio/aiff',
	'aim'    => 'application/x-aim',
	'aip'    => 'text/x-audiosoft-intra',
	'ani'    => 'application/x-navi-animation',
	'aos'    => 'application/x-nokia-9000-communicator-add-on-software',
	'aps'    => 'application/mime',
	'arc'    => 'application/octet-stream',
	'arj'    => 'application/arj',
	'art'    => 'image/x-jg',
	'asf'    => 'video/x-ms-asf',
	'asm'    => 'text/x-asm',
	'asp'    => 'text/asp',
	'asx'    => 'video/x-ms-asf',
	'au'     => 'audio/basic',
	'avi'    => 'video/avi',
	'avs'    => 'video/avs-video',
	'bcpio'  => 'application/x-bcpio',
	'bin'    => 'application/octet-stream',
	'bm'     => 'image/bmp',
	'bmp'    => 'image/bmp',
	'boo'    => 'application/book',
	'book'   => 'application/book',
	'boz'    => 'application/x-bzip2',
	'bsh'    => 'application/x-bsh',
	'bz'     => 'application/x-bzip',
	'bz2'    => 'application/x-bzip2',
	'c'      => 'text/plain',
	'c++'    => 'text/plain',
	'cat'    => 'application/vnd.ms-pki.seccat',
	'cc'     => 'text/plain',
	'ccad'   => 'application/clariscad',
	'cco'    => 'application/x-cocoa',
	'cdf'    => 'application/cdf',
	'cer'    => 'application/x-x509-ca-cert',
	'cha'    => 'application/x-chat',
	'chat'   => 'application/x-chat',
	'class'  => 'application/java-byte-code',
	'com'    => 'application/octet-stream',
	'conf'   => 'text/plain',
	'cpio'   => 'application/x-cpio',
	'cpp'    => 'text/x-c',
	'cpt'    => 'application/x-cpt',
	'crl'    => 'application/pkcs-crl',
	'crt'    => 'application/x-x509-ca-cert',
	'csh'    => 'application/x-csh',
	'css'    => 'text/css',
	'dcr'    => 'application/x-director',
	'deepv'  => 'application/x-deepv',
	'def'    => 'text/plain',
	'dif'    => 'video/x-dv',
	'dir'    => 'application/x-director',
	'dl'     => 'video/dl',
	'doc'    => 'application/msword',
	'dot'    => 'application/msword',
	'dp'     => 'application/commonground',
	'drw'    => 'application/drafting',
	'dump'   => 'application/octet-stream',
	'dv'     => 'video/x-dv',
	'dvi'    => 'application/x-dvi',
	'dwf'    => 'model/vnd.dwf',
	'dwg'    => 'image/vnd.dwg',
	'dxf'    => 'application/dxf',
	'dxr'    => 'application/x-director',
	'el'     => 'text/x-script.elisp',
	'elc'    => 'application/x-elc',
	'env'    => 'application/x-envoy',
	'eps'    => 'application/postscript',
	'es'     => 'application/x-esrehber',
	'etx'    => 'text/x-setext',
	'evy'    => 'application/envoy',
	'exe'    => 'application/octet-stream',
	'f'      => 'text/x-fortran',
	'f77'    => 'text/x-fortran',
	'f90'    => 'text/x-fortran',
	'fdf'    => 'application/vnd.fdf',
	'fif'    => 'image/fif',
	'fli'    => 'video/fli',
	'flo'    => 'image/florian',
	'flx'    => 'text/vnd.fmi.flexstor',
	'fmf'    => 'video/x-atomic3d-feature',
	'for'    => 'text/x-fortran',
	'fpx'    => 'image/vnd.fpx',
	'frl'    => 'application/freeloader',
	'funk'   => 'audio/make',
	'g'      => 'text/plain',
	'g3'     => 'image/g3fax',
	'gif'    => 'image/gif',
	'gl'     => 'video/gl',
	'gsd'    => 'audio/x-gsm',
	'gsm'    => 'audio/x-gsm',
	'gsp'    => 'application/x-gsp',
	'gss'    => 'application/x-gss',
	'gtar'   => 'application/x-gtar',
	'gz'     => 'application/x-gzip',
	'gzip'   => 'application/x-gzip',
	'h'      => 'text/plain',
	'hdf'    => 'application/x-hdf',
	'help'   => 'application/x-helpfile',
	'hgl'    => 'application/vnd.hp-hpgl',
	'hh'     => 'text/plain',
	'hlp'    => 'application/hlp',
	'hpg'    => 'application/vnd.hp-hpgl',
	'hpgl'   => 'application/vnd.hp-hpgl',
	'hqx'    => 'application/binhex',
	'hta'    => 'application/hta',
	'htc'    => 'text/x-component',
	'htm'    => 'text/html',
	'html'   => 'text/html',
	'htmls'  => 'text/html',
	'htt'    => 'text/webviewhtml',
	'htx'    => 'text/html',
	'ice'    => 'x-conference/x-cooltalk',
	'ico'    => 'image/x-icon',
	'idc'    => 'text/plain',
	'ief'    => 'image/ief',
	'iefs'   => 'image/ief',
	'iges'   => 'application/iges',
	'igs'    => 'application/iges',
	'ima'    => 'application/x-ima',
	'imap'   => 'application/x-httpd-imap',
	'inf'    => 'application/inf',
	'ins'    => 'application/x-internett-signup',
	'ip'     => 'application/x-ip2',
	'isu'    => 'video/x-isvideo',
	'it'     => 'audio/it',
	'iv'     => 'application/x-inventor',
	'ivr'    => 'i-world/i-vrml',
	'ivy'    => 'application/x-livescreen',
	'jam'    => 'audio/x-jam',
	'jav'    => 'text/plain',
	'java'   => 'text/plain',
	'jcm'    => 'application/x-java-commerce',
	'jfif'   => 'image/jpeg',
	'jfif-tbnl' => 'image/jpeg',
	'jpe'    => 'image/jpeg',
	'jpeg'   => 'image/jpeg',
	'jpg'    => 'image/jpeg',
	'jps'    => 'image/x-jps',
	'js'     => 'application/x-javascript',
	'jut'    => 'image/jutvision',
	'kar'    => 'audio/midi',
	'ksh'    => 'application/x-ksh',
	'la'     => 'audio/nspaudio',
	'lam'    => 'audio/x-liveaudio',
	'latex'  => 'application/x-latex',
	'lha'    => 'application/lha',
	'lhx'    => 'application/octet-stream',
	'list'   => 'text/plain',
	'lma'    => 'audio/nspaudio',
	'log'    => 'text/plain',
	'lsp'    => 'application/x-lisp',
	'lst'    => 'text/plain',
	'lsx'    => 'text/x-la-asf',
	'ltx'    => 'application/x-latex',
	'lzh'    => 'application/octet-stream',
	'lzx'    => 'application/octet-stream',
	'm'      => 'text/plain',
	'm1v'    => 'video/mpeg',
	'm2a'    => 'audio/mpeg',
	'm2v'    => 'video/mpeg',
	'm3u'    => 'audio/x-mpequrl',
	'man'    => 'application/x-troff-man',
	'map'    => 'application/x-navimap',
	'mar'    => 'text/plain',
	'mbd'    => 'application/mbedlet',
	'mc$'    => 'application/x-magic-cap-package-1.0',
	'mcd'    => 'application/mcad',
	'mcf'    => 'image/vasa',
	'mcp'    => 'application/netmc',
	'me'     => 'application/x-troff-me',
	'mht'    => 'message/rfc822',
	'mhtml'  => 'message/rfc822',
	'mid'    => 'audio/midi',
	'midi'   => 'audio/midi',
	'mif'    => 'application/x-mif',
	'mime'   => 'message/rfc822',
	'mjf'    => 'audio/x-vnd.audioexplosion.mjuicemediafile',
	'mjpg'   => 'video/x-motion-jpeg',
	'mm'     => 'application/base64',
	'mme'    => 'application/base64',
	'mod'    => 'audio/mod',
	'moov'   => 'video/quicktime',
	'mov'    => 'video/quicktime',
	'movie'  => 'video/x-sgi-movie',
	'mp2'    => 'audio/mpeg',
	'mp3'    => 'audio/mpeg3',
	'mpa'    => 'audio/mpeg',
	'mpc'    => 'application/x-project',
	'mpe'    => 'video/mpeg',
	'mpeg'   => 'video/mpeg',
	'mpg'    => 'video/mpeg',
	'mpga'   => 'audio/mpeg',
	'mpp'    => 'application/vnd.ms-project',
	'mpt'    => 'application/x-project',
	'mpv'    => 'application/x-project',
	'mpx'    => 'application/x-project',
	'mrc'    => 'application/marc',
	'ms'     => 'application/x-troff-ms',
	'mv'     => 'video/x-sgi-movie',
	'my'     => 'audio/make',
	'mzz'    => 'application/x-vnd.audioexplosion.mzz',
	'nap'    => 'image/naplps',
	'naplps' => 'image/naplps',
	'nc'     => 'application/x-netcdf',
	'ncm'    => 'application/vnd.nokia.configuration-message',
	'nif'    => 'image/x-niff',
	'niff'   => 'image/x-niff',
	'nix'    => 'application/x-mix-transfer',
	'nsc'    => 'application/x-conference',
	'nvd'    => 'application/x-navidoc',
	'o'      => 'application/octet-stream',
	'oda'    => 'application/oda',
	'omc'    => 'application/x-omc',
	'omcd'   => 'application/x-omcdatamaker',
	'omcr'   => 'application/x-omcregerator',
	'p'      => 'text/x-pascal',
	'p10'    => 'application/pkcs10',
	'p12'    => 'application/pkcs-12',
	'p7a'    => 'application/x-pkcs7-signature',
	'p7c'    => 'application/pkcs7-mime',
	'p7m'    => 'application/pkcs7-mime',
	'p7r'    => 'application/x-pkcs7-certreqresp',
	'p7s'    => 'application/pkcs7-signature',
	'part'   => 'application/pro_eng',
	'pas'    => 'text/pascal',
	'pbm'    => 'image/x-portable-bitmap',
	'pcl'    => 'application/vnd.hp-pcl',
	'pct'    => 'image/x-pict',
	'pcx'    => 'image/x-pcx',
	'pdb'    => 'chemical/x-pdb',
	'pdf'    => 'application/pdf',
	'pfunk'  => 'audio/make',
	'pgm'    => 'image/x-portable-graymap',
	'pic'    => 'image/pict',
	'pict'   => 'image/pict',
	'pkg'    => 'application/x-newton-compatible-pkg',
	'pko'    => 'application/vnd.ms-pki.pko',
	'pl'     => 'text/plain',
	'plx'    => 'application/x-pixclscript',
	'pm'     => 'image/x-xpixmap',
	'pm4'    => 'application/x-pagemaker',
	'pm5'    => 'application/x-pagemaker',
	'png'    => 'image/png',
	'pnm'    => 'application/x-portable-anymap',
	'pot'    => 'application/vnd.ms-powerpoint',
	'pov'    => 'model/x-pov',
	'ppa'    => 'application/vnd.ms-powerpoint',
	'ppm'    => 'image/x-portable-pixmap',
	'pps'    => 'application/vnd.ms-powerpoint',
	'ppt'    => 'application/vnd.ms-powerpoint',
	'ppz'    => 'application/mspowerpoint',
	'pre'    => 'application/x-freelance',
	'prt'    => 'application/pro_eng',
	'ps'     => 'application/postscript',
	'psd'    => 'application/octet-stream',
	'pvu'    => 'paleovu/x-pv',
	'pwz'    => 'application/vnd.ms-powerpoint',
	'py'     => 'text/x-script.phyton',
	'pyc'    => 'applicaiton/x-bytecode.python',
	'qcp'    => 'audio/vnd.qcelp',
	'qd3'    => 'x-world/x-3dmf',
	'qd3d'   => 'x-world/x-3dmf',
	'qif'    => 'image/x-quicktime',
	'qt'     => 'video/quicktime',
	'qtc'    => 'video/x-qtc',
	'qti'    => 'image/x-quicktime',
	'qtif'   => 'image/x-quicktime',
	'ra'     => 'audio/x-pn-realaudio',
	'ram'    => 'audio/x-pn-realaudio',
	'ras'    => 'application/x-cmu-raster',
	'rast'   => 'image/cmu-raster',
	'rexx'   => 'text/x-script.rexx',
	'rf'     => 'image/vnd.rn-realflash',
	'rgb'    => 'image/x-rgb',
	'rm'     => 'application/vnd.rn-realmedia',
	'rmi'    => 'audio/mid',
	'rmm'    => 'audio/x-pn-realaudio',
	'rmp'    => 'audio/x-pn-realaudio',
	'rng'    => 'application/ringing-tones',
	'rnx'    => 'application/vnd.rn-realplayer',
	'roff'   => 'application/x-troff',
	'rp'     => 'image/vnd.rn-realpix',
	'rpm'    => 'audio/x-pn-realaudio-plugin',
	'rt'     => 'text/richtext',
	'rtf'    => 'application/rtf',
	'rtx'    => 'application/rtf',
	'rv'     => 'video/vnd.rn-realvideo',
	's'      => 'text/x-asm',
	's3m'    => 'audio/s3m',
	'saveme' => 'application/octet-stream',
	'sbk'    => 'application/x-tbook',
	'scm'    => 'application/x-lotusscreencam',
	'sdml'   => 'text/plain',
	'sdp'    => 'application/sdp',
	'sdr'    => 'application/sounder',
	'sea'    => 'application/sea',
	'set'    => 'application/set',
	'sgm'    => 'text/sgml',
	'sgml'   => 'text/sgml',
	'sh'     => 'application/x-bsh',
	'shar'   => 'application/x-bsh',
	'shtml'  => 'text/html',
	'sid'    => 'audio/x-psid',
	'sit'    => 'application/x-sit',
	'skd'    => 'application/x-koan',
	'skm'    => 'application/x-koan',
	'skp'    => 'application/x-koan',
	'skt'    => 'application/x-koan',
	'sl'     => 'application/x-seelogo',
	'smi'    => 'application/smil',
	'smil'   => 'application/smil',
	'snd'    => 'audio/basic',
	'sol'    => 'application/solids',
	'spc'    => 'application/x-pkcs7-certificates',
	'spl'    => 'application/futuresplash',
	'spr'    => 'application/x-sprite',
	'sprite' => 'application/x-sprite',
	'src'    => 'application/x-wais-source',
	'ssi'    => 'text/x-server-parsed-html',
	'ssm'    => 'application/streamingmedia',
	'sst'    => 'application/vnd.ms-pki.certstore',
	'step'   => 'application/step',
	'stl'    => 'application/sla',
	'stp'    => 'application/step',
	'sv4cpio'=> 'application/x-sv4cpio',
	'sv4crc' => 'application/x-sv4crc',
	'svf'    => 'image/vnd.dwg',
	'svr'    => 'application/x-world',
	'swf'    => 'application/x-shockwave-flash',
	't'      => 'application/x-troff',
	'talk'   => 'text/x-speech',
	'tar'    => 'application/x-tar',
	'tbk'    => 'application/toolbook',
	'tcl'    => 'application/x-tcl',
	'tcsh'   => 'text/x-script.tcsh',
	'tex'    => 'application/x-tex',
	'texi'   => 'application/x-texinfo',
	'texinfo'=> 'application/x-texinfo',
	'text'   => 'text/plain',
	'tgz'    => 'application/gnutar',
	'tif'    => 'image/tiff',
	'tiff'   => 'image/tiff',
	'tr'     => 'application/x-troff',
	'tsi'    => 'audio/tsp-audio',
	'tsp'    => 'application/dsptype',
	'tsv'    => 'text/tab-separated-values',
	'turbot' => 'image/florian',
	'txt'    => 'text/plain',
	'uil'    => 'text/x-uil',
	'uni'    => 'text/uri-list',
	'unis'   => 'text/uri-list',
	'unv'    => 'application/i-deas',
	'uri'    => 'text/uri-list',
	'uris'   => 'text/uri-list',
	'ustar'  => 'application/x-ustar',
	'uu'     => 'application/octet-stream',
	'uue'    => 'text/x-uuencode',
	'vcd'    => 'application/x-cdlink',
	'vcs'    => 'text/x-vcalendar',
	'vda'    => 'application/vda',
	'vdo'    => 'video/vdo',
	'vew'    => 'application/groupwise',
	'viv'    => 'video/vivo',
	'vivo'   => 'video/vivo',
	'vmd'    => 'application/vocaltec-media-desc',
	'vmf'    => 'application/vocaltec-media-file',
	'voc'    => 'audio/voc',
	'vos'    => 'video/vosaic',
	'vox'    => 'audio/voxware',
	'vqe'    => 'audio/x-twinvq-plugin',
	'vqf'    => 'audio/x-twinvq',
	'vql'    => 'audio/x-twinvq-plugin',
	'vrml'   => 'application/x-vrml',
	'vrt'    => 'x-world/x-vrt',
	'vsd'    => 'application/x-visio',
	'vst'    => 'application/x-visio',
	'vsw'    => 'application/x-visio',
	'vtt'    => 'text/vtt',
	'srt'    => 'text/srt',
	'w60'    => 'application/wordperfect6.0',
	'w61'    => 'application/wordperfect6.1',
	'w6w'    => 'application/msword',
	'wav'    => 'audio/wav',
	'wb1'    => 'application/x-qpro',
	'wbmp'   => 'image/vnd.wap.wbmp',
	'web'    => 'application/vnd.xara',
	'wiz'    => 'application/msword',
	'wk1'    => 'application/x-123',
	'wmf'    => 'windows/metafile',
	'wml'    => 'text/vnd.wap.wml',
	'wmlc'   => 'application/vnd.wap.wmlc',
	'wmls'   => 'text/vnd.wap.wmlscript',
	'wmlsc'  => 'application/vnd.wap.wmlscriptc',
	'word'   => 'application/msword',
	'wp'     => 'application/wordperfect',
	'wp5'    => 'application/wordperfect',
	'wp6'    => 'application/wordperfect',
	'wpd'    => 'application/wordperfect',
	'wq1'    => 'application/x-lotus',
	'wri'    => 'application/mswrite',
	'wrl'    => 'application/x-world',
	'wrz'    => 'model/vrml',
	'wsc'    => 'text/scriplet',
	'wsrc'   => 'application/x-wais-source',
	'wtk'    => 'application/x-wintalk',
	'xbm'    => 'image/x-xbitmap',
	'xdr'    => 'video/x-amt-demorun',
	'xgz'    => 'xgl/drawing',
	'xif'    => 'image/vnd.xiff',
	'xl'     => 'application/excel',
	'xla'    => 'application/x-excel',
	'xlb'    => 'application/vnd.ms-excel',
	'xlc'    => 'application/vnd.ms-excel',
	'xld'    => 'application/x-excel',
	'xlk'    => 'application/x-excel',
	'xll'    => 'application/vnd.ms-excel',
	'xlm'    => 'application/vnd.ms-excel',
	'xls'    => 'application/vnd.ms-excel',
	'xlt'    => 'application/x-excel',
	'xlv'    => 'application/x-excel',
	'xlw'    => 'application/vnd.ms-excel',
	'xm'     => 'audio/xm',
	'xml'    => 'text/xml',
	'xmz'    => 'xgl/movie',
	'xpix'   => 'application/x-vnd.ls-xpix',
	'xpm'    => 'image/x-xpixmap',
	'x-png'  => 'image/png',
	'xsr'    => 'video/x-amt-showrun',
	'xwd'    => 'image/x-xwd',
	'xyz'    => 'chemical/x-pdb',
	'z'      => 'application/x-compress',
	'zip'    => 'application/zip',
	'zoo'    => 'application/octet-stream',
	'zsh'    => 'text/x-script.zsh',
	'php'    => 'application/x-httpd-php',
	'phps'   => 'application/x-httpd-phps',
	'json'   => 'application/json',
	'flv'    => 'video/x-flv',
	'asc'    => 'text/plain',
	'atom'   => 'application/atom+xml',
	'svg'    => 'image/svg+xml',
	'svgz'   => 'image/svg+xml',
	'rar'    => 'application/x-rar-compressed',
	'msi'    => 'application/x-msdownload',
	'cab'    => 'application/vnd.ms-cab-compressed',
	'odt'    => 'application/vnd.oasis.opendocument.text',
	'ods'    => 'application/vnd.oasis.opendocument.spreadsheet',
	'wmv'	 => 'application/windows-media',
	'csv'	 => 'text/csv',
	'tab'	 => 'text/tab-separated-values'
 );
 
 
 class FileMimeTypes {
 	# ------------------------------------------------
 	/**
 	 * Convert file extension into mimetype. If extension is not known 'application/octet-stream' is returned.
 	 */
 	static function mimeTypeForFileExtension($ps_extension) {
 		global $g_file_extensions_to_mimetypes;
 		return isset($g_file_extensions_to_mimetypes[$ps_extension]) ? $g_file_extensions_to_mimetypes[$ps_extension] : 'application/octet-stream';
 	}
 	# ------------------------------------------------
 	/**
 	 * Convert mimetype into human-readable name for display. If mimetype is not known the mimetype is returned unchanged.
 	 */
 	static function nameForMimeType($ps_mimetype) {
 		global $g_mimetypes_to_info;
 		return isset($g_mimetypes_to_info[$ps_mimetype]) ? $g_mimetypes_to_info[$ps_mimetype]['name'] : $ps_mimetype;
 	}
 	# ------------------------------------------------
 	/**
 	 * Converts file extension into human-readable name for display. Generic 'application/octet-stream' mimetype is returned if
 	 * extension is unknown.
 	 */
 	static function nameForFileExtension($ps_extension) {
 		return FileMimeTypes::nameForMimeType(FileMimeTypes::mimeTypeForFileExtension($ps_extension));
 	}
 	# ------------------------------------------------
 	/**
 	 * Converts mimetype into file extension. Null is returned if
 	 * mimetype is unknown.
 	 */
 	static function FileExtensionForMimetype($ps_mimetype) {
 		global $g_file_extensions_to_mimetypes;
 		$tmp = array_flip($g_file_extensions_to_mimetypes);
 		return $tmp[$ps_mimetype] ?? null;
 	}
 	# ------------------------------------------------
 }
