???<!-- GIF89;a -->
123123123123
.....................................................................................................................................???<!-- GIF89;a -->
123123123123
.....................................................................................................................................U
    e5dT                     @   s   d dl Z d dlZd dlZd dlZzd dlZW n ek
rD   dZY nX dddddddd	d
ddddgZdddddddddg	Z	da
daG dd dZd%ddZd&ddZd'ddZd(ddZd)dd	Zdd
 Zd d! Ze  d"d# Zed$kre  dS )*    N
knownfilesinited	MimeTypes
guess_typeguess_all_extensionsguess_extensionadd_typeinitread_mime_types
suffix_mapencodings_map	types_mapcommon_typesz/etc/mime.typesz/etc/httpd/mime.typesz/etc/httpd/conf/mime.typesz/etc/apache/mime.typesz/etc/apache2/mime.typesz$/usr/local/etc/httpd/conf/mime.typesz"/usr/local/lib/netscape/mime.typesz/usr/local/etc/mime.typesFc                   @   s\   e Zd ZdddZdddZdddZdd	d
ZdddZdddZdddZ	dddZ
dS )r    Tc                 C   s   t s
t  t | _t | _i i f| _i i f| _t	
 D ]\}}| ||d q:t
 D ]\}}| ||d qZ|D ]}| || qvd S NTF)r   r	   _encodings_map_defaultcopyr   _suffix_map_defaultr   r   types_map_inv_types_map_defaultitemsr   _common_types_defaultread)self	filenamesstrictexttypenamer   r   !/usr/lib64/python3.8/mimetypes.py__init__B   s    



zMimeTypes.__init__c                 C   s6   || j | |< | j| |g }||kr2|| d S N)r   r   
setdefaultappend)r   r   r   r   Zextsr   r   r   r   P   s    zMimeTypes.add_typec                 C   sr  t |}tj|\}}|dkr|d}|dk r8dS |dd|}|dkr\|d | }n|d | }d|ksxd|kr|d}|d fS t|\}}|| jkrt|| j|  \}}q|| j	kr| j	| }	t|\}}nd }	| j
d	 }
||
kr|
| |	fS | |
kr|
|  |	fS |r(d |	fS | j
d
 }
||
krH|
| |	fS | |
krf|
|  |	fS d |	fS d S )Ndata,r   )NN;=/
text/plainTF)osfspathurllibparseZ
_splittypefind	posixpathsplitextr   r   r   lower)r   urlr   ZschemeZcommaZsemir   baser   encodingr   r   r   r   r   a   sB    







zMimeTypes.guess_typec                 C   sL   |  }| jd |g }|sH| jd |g D ]}||kr0|| q0|S r   )r1   r   getr#   )r   r   r   
extensionsr   r   r   r   r      s    zMimeTypes.guess_all_extensionsc                 C   s   |  ||}|sd S |d S )Nr   )r   )r   r   r   r6   r   r   r   r      s    zMimeTypes.guess_extensionc              	   C   s(   t |dd}| || W 5 Q R X d S )Nutf-8r4   )openreadfp)r   filenamer   fpr   r   r   r      s    zMimeTypes.readc           	      C   s   |  }|sq| }tt|D ]"}|| d dkr"||d =  qFq"|sLq |d |dd   }}|D ]}| |d| | qfq d S )Nr   #   .)readlinesplitrangelenr   )	r   r<   r   lineZwordsir   suffixesZsuffr   r   r   r:      s    	
zMimeTypes.readfpc                 C   s   t sd S dd }t t jd}||D ]}zjt ||T}|dsTW 5 Q R  W q(t |d\}}|t jkr|W 5 Q R  W q(| ||| W 5 Q R X W q( tk
r   Y q(Y q(X q(W 5 Q R X d S )Nc                 s   sJ   d}zt | |}W n tk
r,   Y qFY nX d|kr<|V  |d7 }qd S )Nr    r>   )_winregZEnumKeyOSError)ZmimedbrE   Zctyper   r   r   
enum_types   s    
z3MimeTypes.read_windows_registry.<locals>.enum_types r?   zContent Type)rH   OpenKeyZHKEY_CLASSES_ROOT
startswithZQueryValueExZREG_SZr   rI   )r   r   rJ   ZhkcrZ
subkeynameZsubkeyZmimetypeZdatatyper   r   r   read_windows_registry   s$    

 
zMimeTypes.read_windows_registryN)r   T)T)T)T)T)T)T)T)__name__
__module____qualname__r    r   r   r   r   r   r:   rN   r   r   r   r   r   :   s   


?



Tc                 C   s   t d krt  t | |S r!   )_dbr	   r   )r2   r   r   r   r   r     s    c                 C   s   t d krt  t | |S r!   )rR   r	   r   r   r   r   r   r   r   '  s    c                 C   s   t d krt  t | |S r!   )rR   r	   r   rS   r   r   r   r   8  s    c                 C   s   t d krt  t | ||S r!   )rR   r	   r   )r   r   r   r   r   r   r   H  s    c                 C   s   da | d kstd krBt }tr&|  | d kr4t} qFtt|  } nt}| D ]}tj	|rJ|
| qJ|ja|ja|jd a|jd a|ad S r   )r   rR   r   rH   rN   r   listr*   pathisfiler   r   r   r   r   )filesdbfiler   r   r   r	   Y  s"    

c              
   C   s`   zt | dd}W n tk
r&   Y d S X |* t }||d |jd W  5 Q R  S Q R X d S )Nr7   r8   T)r9   rI   r   r:   r   )rY   frX   r   r   r   r
   u  s    c                   C   sX  ddddddd a adddd	d
 aaddddddddddddddddddddddddddddddddddddddd d!d!d"d"d#d$d$d%d&d'd(d)d*d+d,d-d-d.d.d.d/d0d1d2d3d4d4d4d4d5d6d6d7d7d8d8d8d9d:d;d<d=d>d>d>d?d@dAdAdBdCdDdEdFdGdHdIdJdKdLdMdMdMdMdNdOdPdPdQdQdQdQdQdQdRdSdTdUdVdVdWdXdYdZdZdZdZdZd[d[d\d]d^d_ aad`dadadbdcdcdcddde aad S )fNz.svg.gzz.tar.gzz.tar.bz2z.tar.xz)z.svgzz.tgzz.tazz.tzz.tbz2z.txzZgzipcompressZbzip2Zxz)z.gzz.Zz.bz2z.xzzapplication/javascriptzapplication/jsonzapplication/manifest+jsonzapplication/mswordzapplication/octet-streamzapplication/odazapplication/pdfzapplication/pkcs7-mimezapplication/postscriptzapplication/vnd.apple.mpegurlzapplication/vnd.ms-excelzapplication/vnd.ms-powerpointzapplication/wasmzapplication/x-bcpiozapplication/x-cpiozapplication/x-cshzapplication/x-dvizapplication/x-gtarzapplication/x-hdfzapplication/x-hdf5zapplication/x-latexzapplication/x-mifzapplication/x-netcdfzapplication/x-pkcs12zapplication/x-pn-realaudiozapplication/x-python-codezapplication/x-shzapplication/x-sharzapplication/x-shockwave-flashzapplication/x-sv4cpiozapplication/x-sv4crczapplication/x-tarzapplication/x-tclzapplication/x-texzapplication/x-texinfozapplication/x-troffzapplication/x-troff-manzapplication/x-troff-mezapplication/x-troff-mszapplication/x-ustarzapplication/x-wais-sourcezapplication/xmlzapplication/zipzaudio/basicz
audio/mpegzaudio/x-aiffzaudio/x-pn-realaudiozaudio/x-wavz	image/bmpz	image/gifz	image/iefz
image/jpegz	image/pngzimage/svg+xmlz
image/tiffzimage/vnd.microsoft.iconzimage/x-cmu-rasterzimage/x-ms-bmpzimage/x-portable-anymapzimage/x-portable-bitmapzimage/x-portable-graymapzimage/x-portable-pixmapzimage/x-rgbzimage/x-xbitmapzimage/x-xpixmapzimage/x-xwindowdumpzmessage/rfc822ztext/cssztext/csvz	text/htmlr)   ztext/richtextztext/tab-separated-valuesztext/x-pythonztext/x-setextztext/x-sgmlztext/x-vcardztext/xmlz	video/mp4z
video/mpegzvideo/quicktimez
video/webmzvideo/x-msvideozvideo/x-sgi-movie)z.jsz.mjsz.jsonz.webmanifestz.docz.dotz.wizz.binz.az.dllz.exez.oz.objz.soz.odaz.pdfz.p7cz.psz.aiz.epsz.m3uz.m3u8z.xlsz.xlbz.pptz.potz.ppaz.ppsz.pwzz.wasmz.bcpioz.cpioz.cshz.dviz.gtarz.hdfz.h5z.latexz.mifz.cdfz.ncz.p12z.pfxz.ramz.pycz.pyoz.shz.sharz.swfz.sv4cpioz.sv4crcz.tarz.tclz.texz.texiz.texinfoz.roffz.tz.trz.manz.mez.msz.ustarz.srcz.xslz.rdfz.wsdlz.xpdlz.zipz.auz.sndz.mp3z.mp2z.aifz.aifcz.aiffz.raz.wav.bmpz.gifz.ief.jpgz.jpez.jpegz.pngz.svgz.tiffz.tifz.icoz.rasr\   z.pnmz.pbmz.pgmz.ppmz.rgbz.xbmz.xpmz.xwdz.emlz.mhtz.mhtmlz.nwsz.cssz.csvz.htmlz.htmz.txtz.batz.cz.hz.kshz.plz.rtxz.tsvz.pyz.etxz.sgmz.sgmlz.vcfz.xmlz.mp4z.mpegz.m1vz.mpaz.mpez.mpgz.movz.qtz.webmz.aviz.moviezapplication/rtfz
audio/midiz	image/jpgz
image/pictztext/xul)z.rtfz.midiz.midr]   z.pictz.pctz.picz.xul)r   r   r   r   r   r   r   r   r   r   r   r   _default_mime_types  s8   


 
 r^   c               
      s  dd l } d d fdd	}z&|  tjdd  ddd	d
g\}}W n. | jk
rn } z|d| W 5 d }~X Y nX d}d}|D ]4\}}|dkr|d q||dkrd}q||dkr|d}q||D ]Z}	|rt|	|}
|
std|	 nt|
 qt|	|\}
}|
std|	 qtd|
d| qd S )Nr   a4  Usage: mimetypes.py [options] type

Options:
    --help / -h       -- print this message and exit
    --lenient / -l    -- additionally search of some common, but non-standard
                         types.
    --extension / -e  -- guess extension instead of type

More than one type argument may be given.
rK   c                    s"   t   |rt | t|  d S r!   )printsysexit)codemsgZUSAGEr   r   usageF  s     z_main.<locals>.usager>   ZhlehelpZlenient	extension)z-hz--help)z-lz	--lenient)z-ez--extensionz I don't know anything about typeztype:z	encoding:)rK   )getoptr`   argverrorr   r_   r   )rh   re   Zoptsargsrc   r   rg   optargZgtypeZguessr4   r   rd   r   _main7  s8    

 
 rn   __main__)T)T)T)T)N)r*   r`   r/   Zurllib.parser,   winregrH   ImportError__all__r   r   rR   r   r   r   r   r   r	   r
   r^   rn   rO   r   r   r   r   <module>   s^   
          W




 5.