# Copyright (C) 2014-2023 RhodeCode GmbH # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License, version 3 # (only), as published by the Free Software Foundation. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU Affero General Public License # along with this program. If not, see <http://www.gnu.org/licenses/>. # # This program is dual-licensed. If you wish to learn more about the # RhodeCode Enterprise Edition, including its added features, Support services, # and proprietary license terms, please see https://rhodecode.com/licenses/ DEFAULTS = { 'encodings_map': {'.gz': 'gzip', '.Z': 'compress', '.bz2': 'bzip2', '.xz': 'xz'}, 'suffix_map': {'.svgz': '.svg.gz', '.tgz': '.tar.gz', '.taz': '.tar.gz', '.tz': '.tar.gz', '.tbz2': '.tar.bz2', '.txz': '.tar.xz'}, } TYPES_MAP = [ {'.jpg': 'image/jpg', '.mid': 'audio/midi', '.midi': 'audio/midi', '.pct': 'image/pict', '.pic': 'image/pict', '.pict': 'image/pict', '.rtf': 'application/rtf', '.xul': 'text/xul'}, {'.123': 'application/vnd.lotus-1-2-3', '.3dml': 'text/vnd.in3d.3dml', '.3g2': 'video/3gpp2', '.3gp': 'video/3gpp', '.7z': 'application/x-7z-compressed', '.ASM': 'text/x-nasm', '.C': 'text/x-c++hdr', '.COB': 'text/x-cobol', '.CPP': 'text/x-c++hdr', '.CPY': 'text/x-cobol', '.F': 'text/x-fortran', '.F90': 'text/x-fortran', '.H': 'text/x-c++hdr', '.R': 'text/S-plus', '.Rd': 'text/x-r-doc', '.S': 'text/S-plus', '.[1234567]': 'application/x-troff', '.a': 'application/octet-stream', '.aab': 'application/x-authorware-bin', '.aac': 'audio/x-aac', '.aam': 'application/x-authorware-map', '.aas': 'application/x-authorware-seg', '.abap': 'text/x-abap', '.abw': 'application/x-abiword', '.ac': 'application/pkix-attr-cert', '.acc': 'application/vnd.americandynamics.acc', '.ace': 'application/x-ace-compressed', '.acu': 'application/vnd.acucobol', '.acutc': 'application/vnd.acucorp', '.ada': 'text/x-ada', '.adb': 'text/x-ada', '.adp': 'audio/adpcm', '.ads': 'text/x-ada', '.aep': 'application/vnd.audiograph', '.afm': 'application/x-font-type1', '.afp': 'application/vnd.ibm.modcap', '.ahead': 'application/vnd.ahead.space', '.ahk': 'text/x-autohotkey', '.ahkl': 'text/x-autohotkey', '.ai': 'application/postscript', '.aif': 'audio/x-aiff', '.aifc': 'audio/x-aiff', '.aiff': 'audio/x-aiff', '.air': 'application/vnd.adobe.air-application-installer-package+zip', '.ait': 'application/vnd.dvb.ait', '.aj': 'text/x-aspectj', '.ami': 'application/vnd.amiga.ami', '.apk': 'application/vnd.android.package-archive', '.application': 'application/x-ms-application', '.apr': 'application/vnd.lotus-approach', '.as': 'application/x-actionscript3', '.asc': 'application/pgp-signature', '.asf': 'video/x-ms-asf', '.asm': 'text/x-asm', '.aso': 'application/vnd.accpac.simply.aso', '.aspx': 'application/x-aspx', '.asx': 'video/x-ms-asf', '.asy': 'text/x-asymptote', '.atc': 'application/vnd.acucorp', '.atom': 'application/atom+xml', '.atomcat': 'application/atomcat+xml', '.atomsvc': 'application/atomsvc+xml', '.atx': 'application/vnd.antix.game-component', '.au': 'audio/basic', '.au3': 'text/x-autoit', '.aux': 'text/x-tex', '.avi': 'video/x-msvideo', '.aw': 'application/applixware', '.awk': 'application/x-awk', '.azf': 'application/vnd.airzip.filesecure.azf', '.azs': 'application/vnd.airzip.filesecure.azs', '.azw': 'application/vnd.amazon.ebook', '.b': 'application/x-brainfuck', '.bas': 'text/x-vbnet', '.bash': 'text/x-sh', '.bat': 'application/x-msdownload', '.bcpio': 'application/x-bcpio', '.bdf': 'application/x-font-bdf', '.bdm': 'application/vnd.syncml.dm+wbxml', '.bed': 'application/vnd.realvnc.bed', '.befunge': 'application/x-befunge', '.bf': 'application/x-brainfuck', '.bh2': 'application/vnd.fujitsu.oasysprs', '.bin': 'application/octet-stream', '.bmi': 'application/vnd.bmi', '.bmp': 'image/bmp', '.bmx': 'text/x-bmx', '.boo': 'text/x-boo', '.book': 'application/vnd.framemaker', '.box': 'application/vnd.previewsystems.box', '.boz': 'application/x-bzip2', '.bpk': 'application/octet-stream', '.btif': 'image/prs.btif', '.bz': 'application/x-bzip', '.bz2': 'application/x-bzip2', '.c': 'text/x-c', '.c++': 'text/x-c++hdr', '.c++-objdump': 'text/x-cpp-objdump', '.c-objdump': 'text/x-c-objdump', '.c11amc': 'application/vnd.cluetrust.cartomobile-config', '.c11amz': 'application/vnd.cluetrust.cartomobile-config-pkg', '.c4d': 'application/vnd.clonk.c4group', '.c4f': 'application/vnd.clonk.c4group', '.c4g': 'application/vnd.clonk.c4group', '.c4p': 'application/vnd.clonk.c4group', '.c4u': 'application/vnd.clonk.c4group', '.cab': 'application/vnd.ms-cab-compressed', '.car': 'application/vnd.curl.car', '.cat': 'application/vnd.ms-pki.seccat', '.cc': 'text/x-c', '.cct': 'application/x-director', '.ccxml': 'application/ccxml+xml', '.cdbcmsg': 'application/vnd.contact.cmsg', '.cdf': 'application/x-netcdf', '.cdkey': 'application/vnd.mediastation.cdkey', '.cdmia': 'application/cdmi-capability', '.cdmic': 'application/cdmi-container', '.cdmid': 'application/cdmi-domain', '.cdmio': 'application/cdmi-object', '.cdmiq': 'application/cdmi-queue', '.cdx': 'chemical/x-cdx', '.cdxml': 'application/vnd.chemdraw+xml', '.cdy': 'application/vnd.cinderella', '.cer': 'application/pkix-cert', '.ceylon': 'text/x-ceylon', '.cfc': 'application/x-coldfusion', '.cfg': 'text/x-ini', '.cfm': 'application/x-coldfusion', '.cfml': 'application/x-coldfusion', '.cgm': 'image/cgm', '.chat': 'application/x-chat', '.chm': 'application/vnd.ms-htmlhelp', '.chrt': 'application/vnd.kde.kchart', '.cif': 'chemical/x-cif', '.cii': 'application/vnd.anser-web-certificate-issue-initiation', '.cil': 'application/vnd.ms-artgalry', '.cl': 'text/x-common-lisp', '.cla': 'application/vnd.claymore', '.class': 'application/java-vm', '.clj': 'text/x-clojure', '.clkk': 'application/vnd.crick.clicker.keyboard', '.clkp': 'application/vnd.crick.clicker.palette', '.clkt': 'application/vnd.crick.clicker.template', '.clkw': 'application/vnd.crick.clicker.wordbank', '.clkx': 'application/vnd.crick.clicker', '.clp': 'application/x-msclip', '.cls': 'text/x-openedge', '.cmake': 'text/x-cmake', '.cmc': 'application/vnd.cosmocaller', '.cmd': 'application/x-dos-batch', '.cmdf': 'chemical/x-cmdf', '.cml': 'chemical/x-cml', '.cmp': 'application/vnd.yellowriver-custom-menu', '.cmx': 'image/x-cmx', '.cob': 'text/x-cobol', '.cod': 'application/vnd.rim.cod', '.coffee': 'text/coffeescript', '.com': 'application/x-msdownload', '.conf': 'text/plain', '.cp': 'text/x-c++hdr', '.cpio': 'application/x-cpio', '.cpp': 'text/x-c', '.cpp-objdump': 'text/x-cpp-objdump', '.cpt': 'application/mac-compactpro', '.cpy': 'text/x-cobol', '.crd': 'application/x-mscardfile', '.crl': 'application/pkix-crl', '.croc': 'text/x-crocsrc', '.crt': 'application/x-x509-ca-cert', '.cryptonote': 'application/vnd.rig.cryptonote', '.cs': 'text/x-csharp', '.csh': 'application/x-csh', '.csml': 'chemical/x-csml', '.csp': 'application/vnd.commonspace', '.css': 'text/css', '.cst': 'application/x-director', '.csv': 'text/csv', '.cu': 'application/cu-seeme', '.cuh': 'text/x-cuda', '.curl': 'text/vnd.curl', '.cww': 'application/prs.cww', '.cxt': 'application/x-director', '.cxx': 'text/x-c', '.cxx-objdump': 'text/x-cpp-objdump', '.d': 'text/x-dsrc', '.d-objdump': 'text/x-d-objdump', '.dae': 'model/vnd.collada+xml', '.daf': 'application/vnd.mobius.daf', '.dart': 'text/x-dart', '.dataless': 'application/vnd.fdsn.seed', '.davmount': 'application/davmount+xml', '.dcr': 'application/x-director', '.dcurl': 'text/vnd.curl.dcurl', '.dd2': 'application/vnd.oma.dd2+xml', '.ddd': 'application/vnd.fujixerox.ddd', '.deb': 'application/x-debian-package', '.def': 'text/plain', '.deploy': 'application/octet-stream', '.der': 'application/x-x509-ca-cert', '.dfac': 'application/vnd.dreamfactory', '.dg': 'text/x-dg', '.di': 'text/x-dsrc', '.dic': 'text/x-c', '.dif': 'video/x-dv', '.diff': 'text/x-diff', '.dir': 'application/x-director', '.dis': 'application/vnd.mobius.dis', '.dist': 'application/octet-stream', '.distz': 'application/octet-stream', '.djv': 'image/vnd.djvu', '.djvu': 'image/vnd.djvu', '.dll': 'application/x-msdownload', '.dmg': 'application/octet-stream', '.dms': 'application/octet-stream', '.dna': 'application/vnd.dna', '.doc': 'application/msword', '.docm': 'application/vnd.ms-word.document.macroenabled.12', '.docx': 'application/vnd.openxmlformats-officedocument.wordprocessingml.document', '.dot': 'application/msword', '.dotm': 'application/vnd.ms-word.template.macroenabled.12', '.dotx': 'application/vnd.openxmlformats-officedocument.wordprocessingml.template', '.dp': 'application/vnd.osgi.dp', '.dpg': 'application/vnd.dpgraph', '.dra': 'audio/vnd.dra', '.dsc': 'text/prs.lines.tag', '.dssc': 'application/dssc+der', '.dtb': 'application/x-dtbook+xml', '.dtd': 'application/xml-dtd', '.dts': 'audio/vnd.dts', '.dtshd': 'audio/vnd.dts.hd', '.duby': 'text/x-ruby', '.duel': 'text/x-duel', '.dump': 'application/octet-stream', '.dv': 'video/x-dv', '.dvi': 'application/x-dvi', '.dwf': 'model/vnd.dwf', '.dwg': 'image/vnd.dwg', '.dxf': 'image/vnd.dxf', '.dxp': 'application/vnd.spotfire.dxp', '.dxr': 'application/x-director', '.dyl': 'text/x-dylan', '.dylan': 'text/x-dylan', '.dylan-console': 'text/x-dylan-console', '.ebuild': 'text/x-sh', '.ec': 'text/x-echdr', '.ecelp4800': 'audio/vnd.nuera.ecelp4800', '.ecelp7470': 'audio/vnd.nuera.ecelp7470', '.ecelp9600': 'audio/vnd.nuera.ecelp9600', '.ecl': 'text/x-ecl', '.eclass': 'text/x-sh', '.ecma': 'application/ecmascript', '.edm': 'application/vnd.novadigm.edm', '.edx': 'application/vnd.novadigm.edx', '.efif': 'application/vnd.picsel', '.eh': 'text/x-echdr', '.ei6': 'application/vnd.pg.osasli', '.el': 'text/x-common-lisp', '.elc': 'application/octet-stream', '.eml': 'message/rfc822', '.emma': 'application/emma+xml', '.eol': 'audio/vnd.digital-winds', '.eot': 'application/vnd.ms-fontobject', '.eps': 'application/postscript', '.epub': 'application/epub+zip', '.erl': 'text/x-erlang', '.erl-sh': 'text/x-erl-shellsession', '.es': 'text/x-erlang', '.es3': 'application/vnd.eszigno3+xml', '.escript': 'text/x-erlang', '.esf': 'application/vnd.epson.esf', '.et3': 'application/vnd.eszigno3+xml', '.etx': 'text/x-setext', '.evoque': 'application/x-evoque', '.ex': 'text/x-elixir', '.exe': 'application/x-msdownload', '.exi': 'application/exi', '.exs': 'text/x-elixir', '.ext': 'application/vnd.novadigm.ext', '.ez': 'application/andrew-inset', '.ez2': 'application/vnd.ezpix-album', '.ez3': 'application/vnd.ezpix-package', '.f': 'text/x-fortran', '.f4v': 'video/x-f4v', '.f77': 'text/x-fortran', '.f90': 'text/x-fortran', '.factor': 'text/x-factor', '.fan': 'application/x-fantom', '.fancypack': 'text/x-fancysrc', '.fbs': 'image/vnd.fastbidsheet', '.fcs': 'application/vnd.isac.fcs', '.fdf': 'application/vnd.fdf', '.fe_launch': 'application/vnd.denovo.fcselayout-link', '.feature': 'text/x-gherkin', '.fg5': 'application/vnd.fujitsu.oasysgp', '.fgd': 'application/x-director', '.fh': 'image/x-freehand', '.fh4': 'image/x-freehand', '.fh5': 'image/x-freehand', '.fh7': 'image/x-freehand', '.fhc': 'image/x-freehand', '.fig': 'application/x-xfig', '.fli': 'video/x-fli', '.flo': 'application/vnd.micrografx.flo', '.flv': 'video/x-flv', '.flw': 'application/vnd.kde.kivio', '.flx': 'text/vnd.fmi.flexstor', '.flxh': 'text/x-felix', '.fly': 'text/vnd.fly', '.fm': 'application/vnd.framemaker', '.fnc': 'application/vnd.frogans.fnc', '.for': 'text/x-fortran', '.fpx': 'image/vnd.fpx', '.frag': 'text/x-glslsrc', '.frame': 'application/vnd.framemaker', '.fs': 'text/x-fsharp', '.fsc': 'application/vnd.fsc.weblaunch', '.fsi': 'text/x-fsharp', '.fst': 'image/vnd.fst', '.ftc': 'application/vnd.fluxtime.clip', '.fti': 'application/vnd.anser-web-funds-transfer-initiation', '.fun': 'text/x-standardml', '.fvt': 'video/vnd.fvt', '.fxp': 'application/vnd.adobe.fxp', '.fxpl': 'application/vnd.adobe.fxp', '.fy': 'text/x-fancysrc', '.fzs': 'application/vnd.fuzzysheet', '.g2w': 'application/vnd.geoplan', '.g3': 'image/g3fax', '.g3w': 'application/vnd.geospace', '.gac': 'application/vnd.groove-account', '.gdc': 'text/x-gooddata-cl', '.gdl': 'model/vnd.gdl', '.gemspec': 'text/x-ruby', '.geo': 'application/vnd.dynageo', '.gex': 'application/vnd.geometry-explorer', '.ggb': 'application/vnd.geogebra.file', '.ggt': 'application/vnd.geogebra.tool', '.ghf': 'application/vnd.groove-help', '.gif': 'image/gif', '.gim': 'application/vnd.groove-identity-message', '.gmx': 'application/vnd.gmx', '.gnumeric': 'application/x-gnumeric', '.go': 'text/x-gosrc', '.gph': 'application/vnd.flographit', '.gqf': 'application/vnd.grafeq', '.gqs': 'application/vnd.grafeq', '.gram': 'application/srgs', '.gre': 'application/vnd.geometry-explorer', '.groovy': 'text/x-groovy', '.grv': 'application/vnd.groove-injector', '.grxml': 'application/srgs+xml', '.gs': 'text/x-gosu', '.gsf': 'application/x-font-ghostscript', '.gsp': 'text/x-gosu', '.gst': 'text/x-gosu-template', '.gsx': 'text/x-gosu', '.gtar': 'application/x-gtar', '.gtm': 'application/vnd.groove-tool-message', '.gtw': 'model/vnd.gtw', '.gv': 'text/vnd.graphviz', '.gxt': 'application/vnd.geonext', '.h': 'text/x-c', '.h++': 'text/x-c++hdr', '.h261': 'video/h261', '.h263': 'video/h263', '.h264': 'video/h264', '.hal': 'application/vnd.hal+xml', '.haml': 'text/x-haml', '.hbci': 'application/vnd.hbci', '.hdf': 'application/x-hdf', '.hdp': 'text/x-dylan-lid', '.hh': 'text/x-c', '.hlp': 'application/winhlp', '.hpgl': 'application/vnd.hp-hpgl', '.hpid': 'application/vnd.hp-hpid', '.hpp': 'text/x-c++hdr', '.hps': 'application/vnd.hp-hps', '.hqx': 'application/mac-binhex40', '.hrl': 'text/x-erlang', '.hs': 'text/x-haskell', '.htke': 'application/vnd.kenameaapp', '.htm': 'text/html', '.html': 'text/html', '.hvd': 'application/vnd.yamaha.hv-dic', '.hvp': 'application/vnd.yamaha.hv-voice', '.hvs': 'application/vnd.yamaha.hv-script', '.hx': 'text/haxe', '.hxx': 'text/x-c++hdr', '.hy': 'text/x-hybris', '.hyb': 'text/x-hybris', '.i2g': 'application/vnd.intergeo', '.icc': 'application/vnd.iccprofile', '.ice': 'x-conference/x-cooltalk', '.icm': 'application/vnd.iccprofile', '.ico': 'image/x-icon', '.ics': 'text/calendar', '.idc': 'text/x-chdr', '.ief': 'image/ief', '.ifb': 'text/calendar', '.ifm': 'application/vnd.shana.informed.formdata', '.iges': 'model/iges', '.igl': 'application/vnd.igloader', '.igm': 'application/vnd.insors.igm', '.igs': 'model/iges', '.igx': 'application/vnd.micrografx.igx', '.iif': 'application/vnd.shana.informed.interchange', '.ik': 'text/x-iokesrc', '.imp': 'application/vnd.accpac.simply.imp', '.ims': 'application/vnd.ms-ims', '.in': 'text/plain', '.inc': 'text/x-povray', '.ini': 'text/x-ini', '.intr': 'text/x-dylan', '.io': 'text/x-iosrc', '.ipfix': 'application/ipfix', '.ipk': 'application/vnd.shana.informed.package', '.irm': 'application/vnd.ibm.rights-management', '.irp': 'application/vnd.irepository.package+xml', '.iso': 'application/octet-stream', '.itp': 'application/vnd.shana.informed.formtemplate', '.ivp': 'application/vnd.immervision-ivp', '.ivu': 'application/vnd.immervision-ivu', '.j': 'text/x-objective-j', '.jad': 'text/vnd.sun.j2me.app-descriptor', '.jade': 'text/x-jade', '.jam': 'application/vnd.jam', '.jar': 'application/java-archive', '.java': 'text/x-java-source', '.jbst': 'text/x-duel', '.jisp': 'application/vnd.jisp', '.jl': 'text/x-julia', '.jlt': 'application/vnd.hp-jlyt', '.jnlp': 'application/x-java-jnlp-file', '.joda': 'application/vnd.joost.joda-archive', '.jp2': 'image/jp2', '.jpe': 'image/jpeg', '.jpeg': 'image/jpeg', '.jpg': 'image/jpeg', '.jpgm': 'video/jpm', '.jpgv': 'video/jpeg', '.jpm': 'video/jpm', '.js': 'application/javascript', '.json': 'application/json', '.jsp': 'application/x-jsp', '.kar': 'audio/midi', '.karbon': 'application/vnd.kde.karbon', '.kfo': 'application/vnd.kde.kformula', '.kia': 'application/vnd.kidspiration', '.kid': 'application/x-genshi', '.kk': 'text/x-koka', '.kki': 'text/x-koka', '.kml': 'application/vnd.google-earth.kml+xml', '.kmz': 'application/vnd.google-earth.kmz', '.kne': 'application/vnd.kinar', '.knp': 'application/vnd.kinar', '.kon': 'application/vnd.kde.kontour', '.kpr': 'application/vnd.kde.kpresenter', '.kpt': 'application/vnd.kde.kpresenter', '.ksh': 'text/plain', '.ksp': 'application/vnd.kde.kspread', '.kt': 'text/x-kotlin', '.ktr': 'application/vnd.kahootz', '.ktx': 'image/ktx', '.ktz': 'application/vnd.kahootz', '.kwd': 'application/vnd.kde.kword', '.kwt': 'application/vnd.kde.kword', '.lasso': 'text/x-lasso', '.lasso[89]': 'text/x-lasso', '.lasxml': 'application/vnd.las.las+xml', '.latex': 'application/x-latex', '.lbd': 'application/vnd.llamagraphics.life-balance.desktop', '.lbe': 'application/vnd.llamagraphics.life-balance.exchange+xml', '.les': 'application/vnd.hhe.lesson-player', '.less': 'text/x-less', '.lgt': 'text/x-logtalk', '.lha': 'application/octet-stream', '.lhs': 'text/x-literate-haskell', '.lid': 'text/x-dylan-lid', '.link66': 'application/vnd.route66.link66+xml', '.lisp': 'text/x-common-lisp', '.list': 'text/plain', '.list3820': 'application/vnd.ibm.modcap', '.listafp': 'application/vnd.ibm.modcap', '.ll': 'text/x-llvm', '.log': 'text/plain', '.lostxml': 'application/lost+xml', '.lrf': 'application/octet-stream', '.lrm': 'application/vnd.ms-lrm', '.ls': 'text/x-livescript', '.lsp': 'text/x-newlisp', '.ltf': 'application/vnd.frogans.ltf', '.ltx': 'text/x-latex', '.lua': 'text/x-lua', '.lvp': 'audio/vnd.lucent.voice', '.lwp': 'application/vnd.lotus-wordpro', '.lzh': 'application/octet-stream', '.m': 'text/octave', '.m13': 'application/x-msmediaview', '.m14': 'application/x-msmediaview', '.m1v': 'video/mpeg', '.m21': 'application/mp21', '.m2a': 'audio/mpeg', '.m2v': 'video/mpeg', '.m3a': 'audio/mpeg', '.m3u': 'audio/x-mpegurl', '.m3u8': 'application/x-mpegurl', '.m4a': 'audio/mp4a-latm', '.m4p': 'audio/mp4a-latm', '.m4u': 'video/vnd.mpegurl', '.m4v': 'video/x-m4v', '.ma': 'application/mathematica', '.mac': 'image/x-macpaint', '.mads': 'application/mads+xml', '.mag': 'application/vnd.ecowin.chart', '.mak': 'text/x-makefile', '.maker': 'application/vnd.framemaker', '.mako': 'application/x-mako', '.man': 'text/troff', '.manifest': 'text/cache-manifest', '.maql': 'text/x-gooddata-maql', '.markdown': 'text/x-markdown', '.mathml': 'application/mathml+xml', '.mb': 'application/mathematica', '.mbk': 'application/vnd.mobius.mbk', '.mbox': 'application/mbox', '.mc': 'application/x-mason', '.mc1': 'application/vnd.medcalcdata', '.mcd': 'application/vnd.mcd', '.mcurl': 'text/vnd.curl.mcurl', '.md': 'text/x-minidsrc', '.mdb': 'application/x-msaccess', '.mdi': 'image/vnd.ms-modi', '.mdown': 'text/x-markdown', '.me': 'text/troff', '.mesh': 'model/mesh', '.meta4': 'application/metalink4+xml', '.mets': 'application/mets+xml', '.mfm': 'application/vnd.mfmp', '.mgp': 'application/vnd.osgeo.mapguide.package', '.mgz': 'application/vnd.proteus.magazine', '.mht': 'message/rfc822', '.mhtml': 'message/rfc822', '.mi': 'application/x-mason', '.mid': 'audio/midi', '.midi': 'audio/midi', '.mif': 'application/vnd.mif', '.mime': 'message/rfc822', '.mj2': 'video/mj2', '.mjp2': 'video/mj2', '.ml': 'text/x-ocaml', '.mli': 'text/x-ocaml', '.mll': 'text/x-ocaml', '.mlp': 'application/vnd.dolby.mlp', '.mly': 'text/x-ocaml', '.mm': 'text/x-objective-c++', '.mmd': 'application/vnd.chipnuts.karaoke-mmd', '.mmf': 'application/vnd.smaf', '.mmr': 'image/vnd.fujixerox.edmics-mmr', '.mny': 'application/x-msmoney', '.mo': 'text/x-modelica', '.mobi': 'application/x-mobipocket-ebook', '.mobipocket-ebook': 'application/octet-stream', '.mod': 'text/x-modula2', '.mods': 'application/mods+xml', '.monkey': 'text/x-monkey', '.moo': 'text/x-moocode', '.moon': 'text/x-moonscript', '.mov': 'video/quicktime', '.movie': 'video/x-sgi-movie', '.mp2': 'audio/mpeg', '.mp21': 'application/mp21', '.mp2a': 'audio/mpeg', '.mp3': 'audio/mpeg', '.mp4': 'video/mp4', '.mp4a': 'audio/mp4', '.mp4s': 'application/mp4', '.mp4v': 'video/mp4', '.mpa': 'video/mpeg', '.mpc': 'application/vnd.mophun.certificate', '.mpe': 'video/mpeg', '.mpeg': 'video/mpeg', '.mpg': 'video/mpeg', '.mpg4': 'video/mp4', '.mpga': 'audio/mpeg', '.mpkg': 'application/vnd.apple.installer+xml', '.mpm': 'application/vnd.blueice.multipass', '.mpn': 'application/vnd.mophun.application', '.mpp': 'application/vnd.ms-project', '.mpt': 'application/vnd.ms-project', '.mpy': 'application/vnd.ibm.minipay', '.mqy': 'application/vnd.mobius.mqy', '.mrc': 'application/marc', '.mrcx': 'application/marcxml+xml', '.ms': 'text/troff', '.mscml': 'application/mediaservercontrol+xml', '.mseed': 'application/vnd.fdsn.mseed', '.mseq': 'application/vnd.mseq', '.msf': 'application/vnd.epson.msf', '.msh': 'model/mesh', '.msi': 'application/x-msdownload', '.msl': 'application/vnd.mobius.msl', '.msty': 'application/vnd.muvee.style', '.mts': 'model/vnd.mts', '.mus': 'application/vnd.musician', '.musicxml': 'application/vnd.recordare.musicxml+xml', '.mvb': 'application/x-msmediaview', '.mwf': 'application/vnd.mfer', '.mxf': 'application/mxf', '.mxl': 'application/vnd.recordare.musicxml', '.mxml': 'application/xv+xml', '.mxs': 'application/vnd.triscape.mxs', '.mxu': 'video/vnd.mpegurl', '.myt': 'application/x-myghty', '.n': 'text/x-nemerle', '.n-gage': 'application/vnd.nokia.n-gage.symbian.install', '.n3': 'text/n3', '.nb': 'application/mathematica', '.nbp': 'application/vnd.wolfram.player', '.nc': 'application/x-netcdf', '.ncx': 'application/x-dtbncx+xml', '.ngdat': 'application/vnd.nokia.n-gage.data', '.nim': 'text/x-nimrod', '.nimrod': 'text/x-nimrod', '.nl': 'text/x-newlisp', '.nlu': 'application/vnd.neurolanguage.nlu', '.nml': 'application/vnd.enliven', '.nnd': 'application/vnd.noblenet-directory', '.nns': 'application/vnd.noblenet-sealer', '.nnw': 'application/vnd.noblenet-web', '.npx': 'image/vnd.net-fpx', '.ns2': 'text/x-newspeak', '.nsf': 'application/vnd.lotus-notes', '.nsh': 'text/x-nsis', '.nsi': 'text/x-nsis', '.nws': 'message/rfc822', '.o': 'application/octet-stream', '.oa2': 'application/vnd.fujitsu.oasys2', '.oa3': 'application/vnd.fujitsu.oasys3', '.oas': 'application/vnd.fujitsu.oasys', '.obd': 'application/x-msbinder', '.obj': 'application/octet-stream', '.objdump': 'text/x-objdump', '.oda': 'application/oda', '.odb': 'application/vnd.oasis.opendocument.database', '.odc': 'application/vnd.oasis.opendocument.chart', '.odf': 'application/vnd.oasis.opendocument.formula', '.odft': 'application/vnd.oasis.opendocument.formula-template', '.odg': 'application/vnd.oasis.opendocument.graphics', '.odi': 'application/vnd.oasis.opendocument.image', '.odm': 'application/vnd.oasis.opendocument.text-master', '.odp': 'application/vnd.oasis.opendocument.presentation', '.ods': 'application/vnd.oasis.opendocument.spreadsheet', '.odt': 'application/vnd.oasis.opendocument.text', '.oga': 'audio/ogg', '.ogg': 'audio/ogg', '.ogv': 'video/ogg', '.ogx': 'application/ogg', '.onepkg': 'application/onenote', '.onetmp': 'application/onenote', '.onetoc': 'application/onenote', '.onetoc2': 'application/onenote', '.ooc': 'text/x-ooc', '.opa': 'text/x-opa', '.opf': 'application/oebps-package+xml', '.oprc': 'application/vnd.palm', '.org': 'application/vnd.lotus-organizer', '.osf': 'application/vnd.yamaha.openscoreformat', '.osfpvg': 'application/vnd.yamaha.openscoreformat.osfpvg+xml', '.otc': 'application/vnd.oasis.opendocument.chart-template', '.otf': 'application/x-font-otf', '.otg': 'application/vnd.oasis.opendocument.graphics-template', '.oth': 'application/vnd.oasis.opendocument.text-web', '.oti': 'application/vnd.oasis.opendocument.image-template', '.otp': 'application/vnd.oasis.opendocument.presentation-template', '.ots': 'application/vnd.oasis.opendocument.spreadsheet-template', '.ott': 'application/vnd.oasis.opendocument.text-template', '.oxt': 'application/vnd.openofficeorg.extension', '.p': 'text/x-pascal', '.p10': 'application/pkcs10', '.p12': 'application/x-pkcs12', '.p7b': 'application/x-pkcs7-certificates', '.p7c': 'application/pkcs7-mime', '.p7m': 'application/pkcs7-mime', '.p7r': 'application/x-pkcs7-certreqresp', '.p7s': 'application/pkcs7-signature', '.p8': 'application/pkcs8', '.pas': 'text/x-pascal', '.patch': 'text/x-diff', '.paw': 'application/vnd.pawaafile', '.pbd': 'application/vnd.powerbuilder6', '.pbm': 'image/x-portable-bitmap', '.pcf': 'application/x-font-pcf', '.pcl': 'application/vnd.hp-pcl', '.pclxl': 'application/vnd.hp-pclxl', '.pct': 'image/x-pict', '.pcurl': 'application/vnd.curl.pcurl', '.pcx': 'image/x-pcx', '.pdb': 'application/vnd.palm', '.pdf': 'application/pdf', '.pfa': 'application/x-font-type1', '.pfb': 'application/x-font-type1', '.pfm': 'application/x-font-type1', '.pfr': 'application/font-tdpfr', '.pfx': 'application/x-pkcs12', '.pgm': 'image/x-portable-graymap', '.pgn': 'application/x-chess-pgn', '.pgp': 'application/pgp-encrypted', '.php': 'text/x-php', '.php[345]': 'text/x-php', '.phtml': 'application/x-php', '.pic': 'image/x-pict', '.pict': 'image/pict', '.pkg': 'application/octet-stream', '.pki': 'application/pkixcmp', '.pkipath': 'application/pkix-pkipath', '.pl': 'text/plain', '.plb': 'application/vnd.3gpp.pic-bw-large', '.plc': 'application/vnd.mobius.plc', '.plf': 'application/vnd.pocketlearn', '.plot': 'text/x-gnuplot', '.pls': 'application/pls+xml', '.plt': 'text/x-gnuplot', '.pm': 'text/x-perl', '.pml': 'application/vnd.ctc-posml', '.png': 'image/png', '.pnm': 'image/x-portable-anymap', '.pnt': 'image/x-macpaint', '.pntg': 'image/x-macpaint', '.po': 'application/x-gettext', '.portpkg': 'application/vnd.macports.portpkg', '.pot': 'application/vnd.ms-powerpoint', '.potm': 'application/vnd.ms-powerpoint.template.macroenabled.12', '.potx': 'application/vnd.openxmlformats-officedocument.presentationml.template', '.pov': 'text/x-povray', '.ppa': 'application/vnd.ms-powerpoint', '.ppam': 'application/vnd.ms-powerpoint.addin.macroenabled.12', '.ppd': 'application/vnd.cups-ppd', '.ppm': 'image/x-portable-pixmap', '.pps': 'application/vnd.ms-powerpoint', '.ppsm': 'application/vnd.ms-powerpoint.slideshow.macroenabled.12', '.ppsx': 'application/vnd.openxmlformats-officedocument.presentationml.slideshow', '.ppt': 'application/vnd.ms-powerpoint', '.pptm': 'application/vnd.ms-powerpoint.presentation.macroenabled.12', '.pptx': 'application/vnd.openxmlformats-officedocument.presentationml.presentation', '.pqa': 'application/vnd.palm', '.prc': 'application/x-mobipocket-ebook', '.pre': 'application/vnd.lotus-freelance', '.prf': 'application/pics-rules', '.pro': 'text/idl', '.prolog': 'text/x-prolog', '.properties': 'text/x-properties', '.ps': 'application/postscript', '.ps1': 'text/x-powershell', '.psb': 'application/vnd.3gpp.pic-bw-small', '.psd': 'image/vnd.adobe.photoshop', '.psf': 'application/x-font-linux-psf', '.pskcxml': 'application/pskc+xml', '.ptid': 'application/vnd.pvi.ptid1', '.pub': 'application/x-mspublisher', '.pvb': 'application/vnd.3gpp.pic-bw-var', '.pwn': 'application/vnd.3m.post-it-notes', '.pwz': 'application/vnd.ms-powerpoint', '.pxd': 'text/x-cython', '.pxi': 'text/x-cython', '.py': 'text/x-python', '.py3tb': 'text/x-python3-traceback', '.pya': 'audio/vnd.ms-playready.media.pya', '.pyc': 'application/x-python-code', '.pyo': 'application/x-python-code', '.pypylog': 'application/x-pypylog', '.pytb': 'text/x-python-traceback', '.pyv': 'video/vnd.ms-playready.media.pyv', '.pyw': 'text/x-python', '.pyx': 'text/x-cython', '.qam': 'application/vnd.epson.quickanime', '.qbo': 'application/vnd.intu.qbo', '.qfx': 'application/vnd.intu.qfx', '.qml': 'application/x-qml', '.qps': 'application/vnd.publishare-delta-tree', '.qt': 'video/quicktime', '.qti': 'image/x-quicktime', '.qtif': 'image/x-quicktime', '.qwd': 'application/vnd.quark.quarkxpress', '.qwt': 'application/vnd.quark.quarkxpress', '.qxb': 'application/vnd.quark.quarkxpress', '.qxd': 'application/vnd.quark.quarkxpress', '.qxl': 'application/vnd.quark.quarkxpress', '.qxt': 'application/vnd.quark.quarkxpress', '.r': 'text/x-rebol', '.r3': 'text/x-rebol', '.ra': 'audio/x-pn-realaudio', '.rake': 'text/x-ruby', '.ram': 'audio/x-pn-realaudio', '.rar': 'application/x-rar-compressed', '.ras': 'image/x-cmu-raster', '.rb': 'text/x-ruby', '.rbw': 'text/x-ruby', '.rbx': 'text/x-ruby', '.rc': 'text/x-stsrc', '.rcprofile': 'application/vnd.ipunplugged.rcprofile', '.rdf': 'application/rdf+xml', '.rdz': 'application/vnd.data-vision.rdz', '.reg': 'text/x-windows-registry', '.rep': 'application/vnd.businessobjects', '.res': 'application/x-dtbresource+xml', '.rest': 'text/x-rst', '.rgb': 'image/x-rgb', '.rhtml': 'text/html+ruby', '.rif': 'application/reginfo+xml', '.rip': 'audio/vnd.rip', '.rkt': 'text/x-racket', '.rktl': 'text/x-racket', '.rl': 'application/resource-lists+xml', '.rlc': 'image/vnd.fujixerox.edmics-rlc', '.rld': 'application/resource-lists-diff+xml', '.rm': 'application/vnd.rn-realmedia', '.rmi': 'audio/midi', '.rmp': 'audio/x-pn-realaudio-plugin', '.rms': 'application/vnd.jcp.javame.midlet-rms', '.rnc': 'application/relax-ng-compact-syntax', '.robot': 'text/x-robotframework', '.roff': 'text/troff', '.rp9': 'application/vnd.cloanto.rp9', '.rpss': 'application/vnd.nokia.radio-presets', '.rpst': 'application/vnd.nokia.radio-preset', '.rq': 'application/sparql-query', '.rs': 'application/rls-services+xml', '.rsd': 'application/rsd+xml', '.rss': 'application/rss+xml', '.rst': 'text/x-rst', '.rtf': 'application/rtf', '.rtx': 'text/richtext', '.s': 'text/x-asm', '.saf': 'application/vnd.yamaha.smaf-audio', '.sage': 'text/x-python', '.sass': 'text/x-sass', '.sbml': 'application/sbml+xml', '.sc': 'application/vnd.ibm.secure-container', '.scala': 'text/x-scala', '.scaml': 'text/x-scaml', '.scd': 'application/x-msschedule', '.sce': 'text/scilab', '.sci': 'text/scilab', '.scm': 'application/vnd.lotus-screencam', '.scq': 'application/scvp-cv-request', '.scs': 'application/scvp-cv-response', '.scss': 'text/x-scss', '.scurl': 'text/vnd.curl.scurl', '.sda': 'application/vnd.stardivision.draw', '.sdc': 'application/vnd.stardivision.calc', '.sdd': 'application/vnd.stardivision.impress', '.sdkd': 'application/vnd.solent.sdkm+xml', '.sdkm': 'application/vnd.solent.sdkm+xml', '.sdp': 'application/sdp', '.sdw': 'application/vnd.stardivision.writer', '.see': 'application/vnd.seemail', '.seed': 'application/vnd.fdsn.seed', '.sema': 'application/vnd.sema', '.semd': 'application/vnd.semd', '.semf': 'application/vnd.semf', '.ser': 'application/java-serialized-object', '.setpay': 'application/set-payment-initiation', '.setreg': 'application/set-registration-initiation', '.sfd-hdstx': 'application/vnd.hydrostatix.sof-data', '.sfs': 'application/vnd.spotfire.sfs', '.sgl': 'application/vnd.stardivision.writer-global', '.sgm': 'text/sgml', '.sgml': 'text/sgml', '.sh': 'application/x-sh', '.sh-session': 'application/x-shell-session', '.shar': 'application/x-shar', '.shell-session': 'application/x-sh-session', '.shf': 'application/shf+xml', '.sig': 'application/pgp-signature', '.silo': 'model/mesh', '.sis': 'application/vnd.symbian.install', '.sisx': 'application/vnd.symbian.install', '.sit': 'application/x-stuffit', '.sitx': 'application/x-stuffitx', '.skd': 'application/vnd.koan', '.skm': 'application/vnd.koan', '.skp': 'application/vnd.koan', '.skt': 'application/vnd.koan', '.sldm': 'application/vnd.ms-powerpoint.slide.macroenabled.12', '.sldx': 'application/vnd.openxmlformats-officedocument.presentationml.slide', '.slt': 'application/vnd.epson.salt', '.sm': 'application/vnd.stepmania.stepchart', '.smali': 'text/smali', '.smf': 'application/vnd.stardivision.math', '.smi': 'application/smil+xml', '.smil': 'application/smil+xml', '.sml': 'text/x-standardml', '.snd': 'audio/basic', '.snf': 'application/x-font-snf', '.snobol': 'text/x-snobol', '.so': 'application/octet-stream', '.sp': 'text/x-sourcepawn', '.spc': 'application/x-pkcs7-certificates', '.spec': 'text/x-rpm-spec', '.spf': 'application/vnd.yamaha.smaf-phrase', '.spl': 'application/x-futuresplash', '.spot': 'text/vnd.in3d.spot', '.spp': 'application/scvp-vp-response', '.spq': 'application/scvp-vp-request', '.spt': 'application/x-cheetah', '.spx': 'audio/ogg', '.sql': 'text/x-sql', '.sqlite3-console': 'text/x-sqlite3-console', '.src': 'application/x-wais-source', '.sru': 'application/sru+xml', '.srx': 'application/sparql-results+xml', '.ss': 'text/x-scheme', '.sse': 'application/vnd.kodak-descriptor', '.ssf': 'application/vnd.epson.ssf', '.ssml': 'application/ssml+xml', '.ssp': 'application/x-ssp', '.st': 'application/vnd.sailingtracker.track', '.stc': 'application/vnd.sun.xml.calc.template', '.std': 'application/vnd.sun.xml.draw.template', '.stf': 'application/vnd.wt.stf', '.sti': 'application/vnd.sun.xml.impress.template', '.stk': 'application/hyperstudio', '.stl': 'application/vnd.ms-pki.stl', '.str': 'application/vnd.pg.format', '.stw': 'application/vnd.sun.xml.writer.template', '.sub': 'image/vnd.dvb.subtitle', '.sus': 'application/vnd.sus-calendar', '.susp': 'application/vnd.sus-calendar', '.sv': 'text/x-systemverilog', '.sv4cpio': 'application/x-sv4cpio', '.sv4crc': 'application/x-sv4crc', '.svc': 'application/vnd.dvb.service', '.svd': 'application/vnd.svd', '.svg': 'image/svg+xml', '.svgz': 'image/svg+xml', '.svh': 'text/x-systemverilog', '.swa': 'application/x-director', '.swf': 'application/x-shockwave-flash', '.swi': 'application/vnd.aristanetworks.swi', '.sxc': 'application/vnd.sun.xml.calc', '.sxd': 'application/vnd.sun.xml.draw', '.sxg': 'application/vnd.sun.xml.writer.global', '.sxi': 'application/vnd.sun.xml.impress', '.sxm': 'application/vnd.sun.xml.math', '.sxw': 'application/vnd.sun.xml.writer', '.t': 'text/troff', '.tac': 'text/x-python', '.tao': 'application/vnd.tao.intent-module-archive', '.tar': 'application/x-tar', '.tcap': 'application/vnd.3gpp2.tcap', '.tcl': 'application/x-tcl', '.tcsh': 'application/x-csh', '.tea': 'text/x-tea', '.teacher': 'application/vnd.smart.teacher', '.tei': 'application/tei+xml', '.teicorpus': 'application/tei+xml', '.tex': 'application/x-tex', '.texi': 'application/x-texinfo', '.texinfo': 'application/x-texinfo', '.text': 'text/plain', '.tfi': 'application/thraud+xml', '.tfm': 'application/x-tex-tfm', '.thmx': 'application/vnd.ms-officetheme', '.tif': 'image/tiff', '.tiff': 'image/tiff', '.tmo': 'application/vnd.tmobile-livetv', '.tmpl': 'application/x-cheetah', '.toc': 'text/x-tex', '.torrent': 'application/x-bittorrent', '.tpl': 'application/vnd.groove-tool-template', '.tpt': 'application/vnd.trid.tpt', '.tr': 'text/troff', '.tra': 'application/vnd.trueapp', '.trm': 'application/x-msterminal', '.ts': 'video/mp2t', '.tsd': 'application/timestamped-data', '.tst': 'text/scilab', '.tsv': 'text/tab-separated-values', '.ttc': 'application/x-font-ttf', '.ttf': 'application/x-font-ttf', '.ttl': 'text/turtle', '.twd': 'application/vnd.simtech-mindmapper', '.twds': 'application/vnd.simtech-mindmapper', '.txd': 'application/vnd.genomatix.tuxedo', '.txf': 'application/vnd.mobius.txf', '.txt': 'text/plain', '.u': 'application/x-urbiscript', '.u32': 'application/x-authorware-bin', '.udeb': 'application/x-debian-package', '.ufd': 'application/vnd.ufdl', '.ufdl': 'application/vnd.ufdl', '.umj': 'application/vnd.umajin', '.unityweb': 'application/vnd.unity', '.uoml': 'application/vnd.uoml+xml', '.uri': 'text/uri-list', '.uris': 'text/uri-list', '.urls': 'text/uri-list', '.ustar': 'application/x-ustar', '.utz': 'application/vnd.uiq.theme', '.uu': 'text/x-uuencode', '.uva': 'audio/vnd.dece.audio', '.uvd': 'application/vnd.dece.data', '.uvf': 'application/vnd.dece.data', '.uvg': 'image/vnd.dece.graphic', '.uvh': 'video/vnd.dece.hd', '.uvi': 'image/vnd.dece.graphic', '.uvm': 'video/vnd.dece.mobile', '.uvp': 'video/vnd.dece.pd', '.uvs': 'video/vnd.dece.sd', '.uvt': 'application/vnd.dece.ttml+xml', '.uvu': 'video/vnd.uvvu.mp4', '.uvv': 'video/vnd.dece.video', '.uvva': 'audio/vnd.dece.audio', '.uvvd': 'application/vnd.dece.data', '.uvvf': 'application/vnd.dece.data', '.uvvg': 'image/vnd.dece.graphic', '.uvvh': 'video/vnd.dece.hd', '.uvvi': 'image/vnd.dece.graphic', '.uvvm': 'video/vnd.dece.mobile', '.uvvp': 'video/vnd.dece.pd', '.uvvs': 'video/vnd.dece.sd', '.uvvt': 'application/vnd.dece.ttml+xml', '.uvvu': 'video/vnd.uvvu.mp4', '.uvvv': 'video/vnd.dece.video', '.uvvx': 'application/vnd.dece.unspecified', '.uvx': 'application/vnd.dece.unspecified', '.v': 'text/x-verilog', '.vala': 'text/x-vala', '.vapi': 'text/x-vala', '.vark': 'text/x-gosu', '.vb': 'text/vbscript', '.vcd': 'application/x-cdlink', '.vcf': 'text/x-vcard', '.vcg': 'application/vnd.groove-vcard', '.vcs': 'text/x-vcalendar', '.vcx': 'application/vnd.vcx', '.vert': 'text/x-glslsrc', '.vhd': 'text/x-vhdl', '.vhdl': 'text/x-vhdl', '.vim': 'text/x-vim', '.vis': 'application/vnd.visionary', '.viv': 'video/vnd.vivo', '.vor': 'application/vnd.stardivision.writer', '.vox': 'application/x-authorware-bin', '.vrml': 'model/vrml', '.vsd': 'application/vnd.visio', '.vsf': 'application/vnd.vsf', '.vss': 'application/vnd.visio', '.vst': 'application/vnd.visio', '.vsw': 'application/vnd.visio', '.vtu': 'model/vnd.vtu', '.vxml': 'application/voicexml+xml', '.w3d': 'application/x-director', '.wad': 'application/x-doom', '.wav': 'audio/x-wav', '.wax': 'audio/x-ms-wax', '.wbmp': 'image/vnd.wap.wbmp', '.wbs': 'application/vnd.criticaltools.wbs+xml', '.wbxml': 'application/vnd.wap.wbxml', '.wcm': 'application/vnd.ms-works', '.wdb': 'application/vnd.ms-works', '.weba': 'audio/webm', '.webm': 'video/webm', '.webp': 'image/webp', '.weechatlog': 'text/x-irclog', '.wg': 'application/vnd.pmi.widget', '.wgt': 'application/widget', '.wiz': 'application/msword', '.wks': 'application/vnd.ms-works', '.wlua': 'text/x-lua', '.wm': 'video/x-ms-wm', '.wma': 'audio/x-ms-wma', '.wmd': 'application/x-ms-wmd', '.wmf': 'application/x-msmetafile', '.wml': 'text/vnd.wap.wml', '.wmlc': 'application/vnd.wap.wmlc', '.wmls': 'text/vnd.wap.wmlscript', '.wmlsc': 'application/vnd.wap.wmlscriptc', '.wmv': 'video/x-ms-wmv', '.wmx': 'video/x-ms-wmx', '.wmz': 'application/x-ms-wmz', '.woff': 'application/x-font-woff', '.wpd': 'application/vnd.wordperfect', '.wpl': 'application/vnd.ms-wpl', '.wps': 'application/vnd.ms-works', '.wqd': 'application/vnd.wqd', '.wri': 'application/x-mswrite', '.wrl': 'model/vrml', '.wsdl': 'application/wsdl+xml', '.wspolicy': 'application/wspolicy+xml', '.wtb': 'application/vnd.webturbo', '.wvx': 'video/x-ms-wvx', '.x': 'text/x-logos', '.x32': 'application/x-authorware-bin', '.x3d': 'application/vnd.hzn-3d-crossword', '.xap': 'application/x-silverlight-app', '.xar': 'application/vnd.xara', '.xbap': 'application/x-ms-xbap', '.xbd': 'application/vnd.fujixerox.docuworks.binder', '.xbm': 'image/x-xbitmap', '.xdf': 'application/xcap-diff+xml', '.xdm': 'application/vnd.syncml.dm+xml', '.xdp': 'application/vnd.adobe.xdp+xml', '.xdssc': 'application/dssc+xml', '.xdw': 'application/vnd.fujixerox.docuworks', '.xenc': 'application/xenc+xml', '.xer': 'application/patch-ops-error+xml', '.xfdf': 'application/vnd.adobe.xfdf', '.xfdl': 'application/vnd.xfdl', '.xht': 'application/xhtml+xml', '.xhtml': 'application/xhtml+xml', '.xhvml': 'application/xv+xml', '.xi': 'text/x-logos', '.xif': 'image/vnd.xiff', '.xla': 'application/vnd.ms-excel', '.xlam': 'application/vnd.ms-excel.addin.macroenabled.12', '.xlb': 'application/vnd.ms-excel', '.xlc': 'application/vnd.ms-excel', '.xlm': 'application/vnd.ms-excel', '.xls': 'application/vnd.ms-excel', '.xlsb': 'application/vnd.ms-excel.sheet.binary.macroenabled.12', '.xlsm': 'application/vnd.ms-excel.sheet.macroenabled.12', '.xlsx': 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet', '.xlt': 'application/vnd.ms-excel', '.xltm': 'application/vnd.ms-excel.template.macroenabled.12', '.xltx': 'application/vnd.openxmlformats-officedocument.spreadsheetml.template', '.xlw': 'application/vnd.ms-excel', '.xm': 'text/x-logos', '.xmi': 'text/x-logos', '.xml': 'application/xml', '.xo': 'application/vnd.olpc-sugar', '.xop': 'application/xop+xml', '.xpdl': 'application/xml', '.xpi': 'application/x-xpinstall', '.xpl': 'application/xsl+xml', '.xpm': 'image/x-xpixmap', '.xpr': 'application/vnd.is-xpr', '.xps': 'application/vnd.ms-xpsdocument', '.xpw': 'application/vnd.intercon.formnet', '.xpx': 'application/vnd.intercon.formnet', '.xq': 'application/xquery', '.xql': 'application/xquery', '.xqm': 'application/xquery', '.xquery': 'application/xquery', '.xqy': 'application/xquery', '.xsd': 'application/xml', '.xsl': 'application/xml', '.xslt': 'application/xslt+xml', '.xsm': 'application/vnd.syncml+xml', '.xspf': 'application/xspf+xml', '.xtend': 'text/x-xtend', '.xul': 'application/vnd.mozilla.xul+xml', '.xvm': 'application/xv+xml', '.xvml': 'application/xv+xml', '.xwd': 'image/x-xwindowdump', '.xyz': 'chemical/x-xyz', '.yaml': 'text/x-yaml', '.yang': 'application/yang', '.yin': 'application/yin+xml', '.yml': 'text/x-yaml', '.zaz': 'application/vnd.zzazz.deck+xml', '.zip': 'application/zip', '.zir': 'application/vnd.zul', '.zirz': 'application/vnd.zul', '.zmm': 'application/vnd.handheld-entertainment+xml'} ] def get_mimetypes_db(extra_types=None): import mimetypes types_map = TYPES_MAP if extra_types: types_map = TYPES_MAP[::] # copy the initial version for extending types_map[1].update(extra_types) db = mimetypes.MimeTypes() db.types_map = types_map db.encodings_map.update(DEFAULTS['encodings_map']) db.suffix_map.update(DEFAULTS['suffix_map']) return db