3
NZ              \  @   s*3  d dl Z d dlZd dlZdZd ddddgd dddd	gd ddd
dgd ddddgd ddddgd ddddgd ddddgd ddddgd ddddgd ddddgd ddddgd ddddgd ddddgddddd gdddd!d"gd ddd#d$gdddd%d&gdddd'd&gd d(dd)d*gd ddd+d,gd ddd-d.gd ddd/d.gd ddd0d.gd ddd1d.gd ddd2d.gd ddd3d.gd4ddd5d6gd4ddd7d8gd ddd9d:gd ddd;d<gd ddd=d:gd ddd>d:gd ddd?d:gd ddd@dAgd d(ddBdCgd dddBd.gd d(ddDd.gd dddDd.gd d(dd)d*gd dddEdCgd dddFdCgd dddGd.gd dddHdCgd dddEdCgd dddEdCgd dddIdCgd dddJdCgd d(ddKdCgd dLddBd.gd dddBd.gd dLddDd.gd dddDd.gd dLddMd.gd dLddNd.gd dOddPdQgd dOddRdQgd dOddSdQgd dOddTdQgd dOddUdQgd dOddVdQgd dddWd.gd dddXdYgd dddZd.gd ddd[d\gd]ddd^d_gd]ddd`d_gd]dddad_gd]dddbd_gd]dddcd_gd]ddddd_gd]ddded_gd]dddfd_gd]dddgd_gd]dddhd_gd]dddid_gd dddjdkgd dddld.gd dddmd.gd dddndogdpdLddqdrgdsdddtdugd dddvd.gd dddwd.gd dxddydgd dxddzdgd ddd{d|gd ddd}d~gd dLddd~gd ddddgd ddddgd ddddgd ddddgd ddddgd ddddgd ddddgd ddddgd ddddgd ddddgd ddddgd ddddgdddddgd ddddgd ddddgd ddddgd ddddgd ddddgdddddgdddddgdddddgdddddgdddddgdddddgdddddgdddddgdddddgdddddgdddddgd ddddgd ddddgd d(dddgd ddddgd ddddgd dLdddgd ddddgd dddd.gd dddd.gd dddd.gd dddd.gd ddddgd ddddgddddd.gddddd.gd dddd.gd ddddgd ddddgd ddddgd ddddgd ddddgd ddddgd ddddgd ddddgd ddddgd ddddgd ddddgd ddddgd ddddgd ddddgd ddddgd ddddgd ddddgd ddddgd ddddgd ddddgd ddddgd ddddgd ddddgd ddddgd ddddgd ddddgd ddddgd ddddgd ddddgd ddddgd ddddgd ddddgd ddddgd ddddgd ddddgd ddddgd ddddgd ddddgd ddddgd ddddgd ddddgd ddddgd ddddgd ddddgd ddddgd ddddgd ddddgd ddddgd ddddgd ddddgd ddddgd ddddgd ddddgd ddddgd ddddgd ddddgd ddddgd ddddgd ddddgd ddddgd ddddgd ddddgd ddddgd ddddgd ddddgd ddddgd ddddgd ddddgd ddddgd ddddgd ddd dgd ddddgd ddddgd ddddgd ddddgd ddddgd ddddgd ddddgd ddddgd ddddgd ddddgd ddd	dgd ddd	dgd ddd
dgd ddddgd ddddgd ddddgd ddddgd ddddgd dddd\gd ddddgd ddddgd dddd.gd dddd.gd dddd.gd dddd.gd dddd.gd ddddgd dddd.gd dddd.gd ddddgd dddd.gd dddd.gd ddd d.gd ddd!d"gd ddd#d.gd ddd$d%gd ddd&dgd ddd'dgd ddd(dgd ddd)d|gd*ddd+d.gd*ddd,d.gd*ddd-d.gd*ddd.d.gd ddd/d%gd ddd0d.gd ddd1d2gd dLdd1d2gd ddd3d2gd ddd4d5gd ddd6d5gd ddd7d.gd ddd8d\gd ddd9d\gd ddd:d\gd ddd;d\gd ddd<d.gd ddd=dgd ddd>dgd ddd?d%gd ddd@d.gd dddAd.gd dddBd.gd dddCd.gd d(ddDdEgd dddFdGgd dddHdIgd*ddd,dJgd*ddd+dJgd*dLdd,dJgd*dLdd+dJgd dddKdgd dddLd.gd dddMdgddddNdOgd dddPdQgdRdxddSd.gdTdddUd.gdVdddWdXgdVdddYdXgdVdddZdXgdVddd[dXgd ddd\dXgd]ddd^d_gd ddd`dagd dddbdagd dddcdagd dddddegdfdddgdegd ddddhgd dLdddhgd dddid\gd dddjdkgd dddldmgd dddndogd dddpdqgd dddrdsgd dddtdugdvdddwdugdvdddxdugdydddzdugd ddd{d|gd ddd}d|gd ddd~d|gd ddddgd dddd|gd dddd|gd dddd|gd ddddgd ddddgd ddddgd ddddgdvdddd|gd dLddd.gd ddddgd ddddgdpddddgdpddddgd ddddIgd ddddIgd dxdddgd dxdddgd ddddgd d(ddd.gd d(ddd.gd d(ddd.gd d(ddd.gd dddd%gd ddddgd ddddgd ddddgd ddddgd ddddgd dddd%gd ddddgd ddddgd ddddgd ddddgd dddd%gd dddd%gd ddddgd ddddgd ddddgd ddddgd ddddgd dddKdCgd d(dddgd d(dddgd d(dddgd ddddgd ddddgd ddddgd ddddgd ddddgd ddddgd ddddgd ddddgd d(dddgd d(dddgd d(dddgd d(dddgd d(ddd|gd d(dddgd ddddgd dddÐdgd d(ddŐdgd dddǐdIgd dddȐdgd dddʐdgd dxdd̐dgd dxddΐdgd dxddАdgd dxddҐdgd dxddԐdgd dxdd֐dgd dxddאdgd dxddِdgd dxddڐdgd dxddܐdgd dxddސdgd dxdddgd dxdddgd dxdddgd dxdddgd dxdddgd ddddgd ddddgd ddddgd ddddgd ddddgd ddddgd ddddgd ddddgd ddddgd ddddgd ddddgd ddddgd ddddgd dddd gddddd gd ddddgd ddddgd ddddgd d(dd	d
gd ddddgd ddddgd ddddgd ddddgd ddddgd ddddgd dxdddgd ddddgd ddddgd ddddgd ddd d!gd ddd"d#gdddd$d%gd ddd&d'gd dxdd(d)gd ddd*d+gd ddd,d-gd ddd.d/gd ddd0d1gd ddd2d3gd ddd4d5gd ddd6d7gd ddd8d9gd ddd:d;gd ddd<d=gd dxdd>d?gd ddd@dAgd dddBdAgdCdddDdEgd dddFdGgd dddHdIgd dddJdKgd dddLdMgd dxddNdOgdPdddQdRgd dddSdTgd dddUdVgd dddTdgd dddWdgd dddXdgd dddYdgd dddZdgd ddd[d\gd ddd]d^gdddd_d`gdadddbdcgd ddddedfgd dgddedhgd dddidjgd dxddkdlgd dddmdngd dddodpgdqdddrdsgddddtdugd dddvdwgd dddxdygd dLddzd{gd dLdd|d}gd dLdd~dgd dLdddgd ddddgd ddddgd ddddgd ddddgd ddddgd ddddgd ddddgddLdddgd]ddddgd dddd\gd ddddgdddddgd ddd=dgdZddddgd ddddgd ddddgd ddddgd ddddgd ddddgd ddddgd d(dddgd d(dddgd d(dddgd d(dddgd dddidgd ddddgdddddgd ddddgdddddgd ddddgdddddgd ddddgdddddgd ddddgddddÐdgd dddŐdgddddǐdgd dddɐdgddddːdgd ddd͐dgddddϐdgd dddѐdgddddӐdgd dddՐdgddddאdgd dddِdgddddېdgd dddݐdgddddސdgd dddߐdegdddddegd ddddgdddddgd ddddgdddddgd ddddgdddddgd ddddgdddddgd ddddgd ddddgd ddddgd ddddgd ddddgd ddddgd ddddgd ddddgd ddddgd ddd dgd ddddgd ddddgd ddddgd ddddgd dddd\gd dddd\gd d(dd	d
gd ddddgd ddddgdddddgd ddddgd ddddgd ddddgd ddddgd ddddgd dxdddgd dxdddgd dxddYdgd dxddd gd dxdd!d"gd ddd#d$gd ddd%d&gd'ddd(d)gd ddd*d+gd ddd,d-gd ddd.d/gd ddd0d1gd ddd2d3gd ddd4d5gd ddd6d7gd ddd8d9gd ddd:d;gd<ddd=d>gd<ddd?d>gd@dddAd>gd dddBd>gd dddCd>gd<dddDdEgdFdddGdEgd dddHdIgd dddXdIgddddJdKgd dxddLdMgd dxddNdMgd dxddOdPgd dxddQdPgd dxddRdSgd dxddTdUgd dxddVdWgd dLddXdYgd dddXdZgd d[ddd\gd d[ddd]gd d[ddd^gd d[dd_d`gd d[ddadbgd d[ddcddgd d[ddedfgd d[ddgdhgd d[ddidjgd d[ddkdlgd d[ddmdngd d[ddodpgd d[ddqdrgd d[ddsdtgd d[ddudvgd d[ddwdxgd d[ddydzgd d[dd{d|gd d[dd}d~gd d[dddgd d[dddgd d[dddgd d[dddgd d[dddgd d[dddgd d[dddgd d[dddgd d[dddgd dLdddgd d[dddgd d[dddgd d[dddgd d[dddgd d[dddgd d[dddgd d[dddgd d[dddgd d[dddgd ddddgd ddddgd ddddgd ddddgd ddddgd ddddgdddddgdddddgd ddddgd ddddgd ddddgd dxdddgd dxdddgd d(dddgd ddddgd ddddgd ddddgd dLdddgd dLddÐdgd dddXdgd dddƐdgd dddȐdgd dddʐdgd ddd̐dgd dddΐdgd dxddАdgd dxddҐdgd dxddԐdgd dxddՐdgd dddאdgd dddِdgd ddd/dgd dddܐdgd dddސdgd ddddgd ddddgd ddddgd ddddgd ddddgd ddddgd ddddgd ddddgd ddddgd d(dddgd d(dddgd d(dddgd dxddd\gd ddddgdddddgdddddgd ddddgd ddd dgd dLdddgd dLdddgd dLdddgd dLdddgd ddd	d
gd ddddgd ddddgd ddddgd ddddgd dddXdgd dddʐdgd dxdddgd dxdddgd dxdddgd ddddgd ddddgd ddddgd dxddd gd dxdd!d"gd dxdd#d$gd dxdd%d&gd dxdd'd(gd dxdd,d)gd dxdd*d+gd dxdd,d-gd dxdd.d/gd dxdd0d1gd dxdd2d3gd dxdd4d5gd dxdd6d7gd dxdd8d9gd ddd:d;gd ddd<d=gd ddd>d?gd ddd@dAgd dddBdCgd dddDdEgd dddFdGgd dddHdIgd dddJdKgd dddJdLgd dddMdNgddddOdPgddddQdRgd dddSdTgd dddUdTgd dddVdTgd dddWdTgd dddXdTgd dddYdTgd dddZdTgd ddd[dTgd ddd\d]gd ddd^d]gd ddd_d`gd dddad`gd dddbd]gd dddcddgd dddedfgd dddgdhgd diddjdkgd dlddjdmgd dddndogd dddpdqgd dddrdsgd dddtdugd dddvdwgd dddxdygd dddzd{gd ddd|d}gd d~dddgd d~dddgd d~dddgd d~dddgd d~dddgd d~dddgd d~dddgd d~dddgd d~dddgd dddXdgd dddʐdgd ddddgd ddddgd d(dddgd ddddgd ddddgdddddgd ddddgd ddddgd ddddgd ddddgd ddddgd ddddgd ddddgd ddddgd ddddgd ddddgd]ddddgd]ddddgd ddddgd ddddgd ddddgd ddddgd ddddgd ddddgd ddddgd ddddgd ddddgd dddÐdgd dddŐdgd dddǐdgd dddɐdgd dddːdgd ddd͐dgd dddϐdgd dddѐdgd dddӐdgd dddՐdgd dddאdgd dddِdgd dddېdgd dddݐdgd dddߐdgd ddddgd ddddgd ddddgd ddddgd ddddgd ddddgd ddddgd ddddgd ddddgd ddddgd ddddgd ddddgd ddddgd ddddgd ddddgd d(dddgd d(dddgd d(dddgd ddddgd ddddgd dddd gd ddddgdddddgd dddLdgd dxdddgd dxdddgd dxddd	gdfdxddXd
gdddddgd ddddgd dLdddgd dLdddgd dLddXdgd dLddʐdgd dLdddgd ddddgd ddddgd ddddgdddddgd dddd gd ddd!d"gd ddd#d$gddddJd%gd ddd&d'gd ddd'd(gd dddd)gd ddd*d+gd ddd.d,gd dLdd*d-gd ddd.d/gd d(dd0d1gd d(dd2d3gd d(dd4d5gd d(dd6d7gd ddd8d9ggXZg ad:Zd;d< Zd=d> Z	G d?d@ d@Z
dAdB ZdCdB ZdDdE ZdFdG Zx<eD ]4Ztje
ed  ed ed] edH ed  2qW dS (I      Nz0.2string=s   #definezimage/x-xbitmapleshorti  z!application/x-alan-adventure-games   TADSzapplication/x-tads-gameshorti  zapplication/x-executable-filei  i[  s   Cores   AMANDA: TAPESTART DATEzapplication/x-amanda-headerbelongi  i  zapplication/x-library-filei  z
video/mpegi  zbeshort&0xfff0i  z
audio/mpeg   i  z	video/flii  z	video/flcs   MOVIzvideo/x-sgi-movies   moovzvideo/quicktimes   mdatlongiʈ zapplication/x-apl-workspaces   FiLeStArTfIlEsTaRtztext/x-apple-binsciis   
GLzapplication/datas   vs   NuFiles   NFli  i i  s   ustar zapplication/x-tars   ustar   zapplication/x-gtari3 zapplication/x-cpioi0 zapplication/x-bcpios   070707s   070701s   070702s   !<arch>
debianzapplication/x-dpkgi zapplication/x-ari s   <ar>s   !<arch>
__________Es   -h-s   !<arch>i  ei>ra<ira<!lelongi i zlelong&0x8080ffffi  zapplication/x-arci	  i  i  i  i  s   archivei`  zapplication/x-arjs   HPAKs   ,JAM application/data    s   -lh0-zapplication/x-lhas   -lh1-s   -lz4-s   -lz5-s   -lzs-s   -lh -s   -lhd-s   -lh2-s   -lh3-s   -lh4-s   -lh5-s   Rar!zapplication/x-rars   SQSHs   UC2s   PKzapplication/zip   l   '{ zapplication/x-zoo
   s   # This is a shell archivezapplication/x-shars   *STAs   2278beshorti0  i1  s    zapplication/cores   .sndzaudio/basici.sd s   MThdz
audio/midis   CTMFzaudio/x-cmfs   SBIzaudio/x-sbis   Creative Voice Filezaudio/x-vociKRTNzaudio/x-multitracks   RIFFzaudio/x-wavs   EMODzaudio/x-emodiar.zaudio/x-pn-realaudios   MTMs   ifzaudio/x-669-mods   FARz	audio/mods   MAS_Uzaudio/x-multimate-mod,   s   SCRMzaudio/x-st3-mods   GF1PATCH110 ID#000002 zaudio/x-gus-patchs   GF1PATCH100 ID#000002 s   JNs   UN05zaudio/x-mikmod-unis   Extended Module:zaudio/x-ft2-mod   s   !SCREAM!zaudio/x-st2-modi8  s   M.K.zaudio/x-protracker-mods   M!K!s   FLT4zaudio/x-startracker-mods   4CHNzaudio/x-fasttracker-mods   6CHNs   8CHNs   CD81zaudio/x-oktalyzer-mods   OKTAs   16CNzaudio/x-taketracker-mods   32CNs   TOCzaudio/x-tociI  i  i  i:  s   //ztext/cpps   \\1cw\s   \\1cwzbelong&0xffffff00l    
 l    K
 i?  iA  s   pipes   profs   : shells	   #!/bin/shzapplication/x-shs
   #! /bin/shs
   #!/bin/cshzapplication/x-cshs   #! /bin/cshs
   #!/bin/kshzapplication/x-kshs   #! /bin/kshs   #!/bin/tcshs   #! /bin/tcshs   #!/usr/local/tcshs   #! /usr/local/tcshs   #!/usr/local/bin/tcshs   #! /usr/local/bin/tcshs   #!/usr/local/bin/zshzapplication/x-zshs   #! /usr/local/bin/zshs   #!/usr/local/bin/ashs   #! /usr/local/bin/ashs   #!/usr/local/bin/aeztext/scripts   #! /usr/local/bin/aes   #!/bin/nawkzapplication/x-awks   #! /bin/nawks   #!/usr/bin/nawks   #! /usr/bin/nawks   #!/usr/local/bin/nawks   #! /usr/local/bin/nawks   #!/bin/gawks   #! /bin/gawks   #!/usr/bin/gawks   #! /usr/bin/gawks   #!/usr/local/bin/gawks   #! /usr/local/bin/gawks
   #!/bin/awks   #! /bin/awks   #!/usr/bin/awks   #! /usr/bin/awks   BEGINs   #!/bin/perlzapplication/x-perls   #! /bin/perls   eval "exec /bin/perls   #!/usr/bin/perls   #! /usr/bin/perls   eval "exec /usr/bin/perls   #!/usr/local/bin/perls   #! /usr/local/bin/perls   eval "exec /usr/local/bin/perls   #!/bin/pythonzapplication/x-pythons   #! /bin/pythons   eval "exec /bin/pythons   #!/usr/bin/pythons   #! /usr/bin/pythons   eval "exec /usr/bin/pythons   #!/usr/local/bin/pythons   #! /usr/local/bin/pythons    eval "exec /usr/local/bin/pythons   #!/usr/bin/env pythons   #! /usr/bin/env pythons	   #!/bin/rcs
   #! /bin/rcs   #!/bin/bashs   #! /bin/bashs   #!/usr/local/bin/bashs   #! /usr/local/bin/bashs   #! /s   #!/s   #! text/scripts   zapplication/compresss   zapplication/x-gzips   iD  i  s   i7 s   BZhzapplication/x-bzip2iv  iv  iv  zapplication/x-lzhs   s   s   s   BZzapplication/x-bzips	   LZO 

i  zapplication/x-object-filei  i  i  iW    ik  il  im  in  iY  i_  iΚWzapplication/x-gdbms   GDBMia zapplication/x-dbib1 s   <list>
<protocol bbn-ms   diff text/x-patchs   *** text/x-patchs   Only in text/x-patchs#   Common subdirectories: text/x-patchs   !<arch>
________64Ei  i  i  s   s   |s   ~s   ciyE z	image/x11s   !<PDF>!
zapplication/x-profi  zapplication/x-localezapplication/x-dumps   ELFiT  iU  iS  zapplication/x-linux-ext2fss   zapplication/x-pc-floppyi  i  i  iU  i  i  zapplication/x-filesystemi  ih$  ix$  s	   -rom1fs- i  zOS/2zapplication/x-bootables   FONTzfont/x-vfonti  iiB  s   %!PS-AdobeFont-1.0z
font/type1   z%!PS-AdobeFont-1.0z
font/x-snfs   STARTFONT font/x-bdfs   fcpz
font/x-pcfs   D1.0zfont/x-speedos   flfzfont/x-figlets   flczapplication/x-fontiYzfont/x-libgrxl   NO~ z
font/x-dos   iAGE iDIV i  ZDOSFONTs
   <MakerFilezapplication/x-framemakers   <MIFFiles   <MakerDictionarys   <MakerScreenFontzfont/x-framemakers   <MMLs	   <BookFiles   <Makerzlelong&0377777777iWwiZwi]wiwu   ï                    l   M~Q
 s   GIMP Gradientzapplication/x-gimp-gradients   gimp xcfzapplication/x-gimp-images   GPATzapplication/x-gimp-patterns   GIMPzapplication/x-gimp-brushs   s   is  ip  s       zfont/ttfi0Gibxeiپ;it|_iiiiiiiiiiiiiiiiiiiiiiiiii
i
iiie  ie
ieiei!XiMzfont/x-hp-windowss
   Bitmapfilezimage/unknowns   IMGfilezCIS image/unknownizapplication/x-lisps   msgcat01s   HPHP48-zHP48 binarys   %%HP:z	HP48 text   zhp200 (68010) BSDi,  zhp300 (68020+68881) BSDi  z370 XA sysV executablei  z370 XA sysV pure executablei  z370 sysV pure executablei  iQ  z370 sysV executablei9  i  zSVR2 executable (Amdahl-UTS)i  z!SVR2 pure executable (Amdahl-UTS)i  zSVR2 pure executable (USS/370)i  zSVR2 executable (USS/370)i  z0executable (RISC System/6000 V3.1) or obj modulei  zshared libraryi  z	ctab datai  zstructured files   0xabcdefzAIX message catalogi  zAIX compiled message catalogs   <aiaff>archives   FORMzIFF datas   P1zimage/x-portable-bitmaps   P2zimage/x-portable-graymaps   P3zimage/x-portable-pixmaps   P4s   P5s   P6s   IIN1z
image/tiffs   MM *s   II* s   PNGz	image/png   ZPNGs   GIF8z	image/gifs    @zimage/x-cmu-rasters   id=ImageMagickzMIFF image datai$BzArtisan image datas   #FIGzFIG image texts
   ARF_BEGARFzPHIGS clear text archives   @(#)SunPHIGSZSunPHIGSs   GKSMzGKS Metafiles   BEGMFz%clear text Computer Graphics Metafilezbeshort&0xffe0    z!binary Computer Graphics Metafilei 0  z$character Computer Graphics Metafiles   yzz(MGR bitmap, modern format, 8-bit aligneds   zzz2MGR bitmap, old format, 1-bit deep, 16-bit aligneds   xzz2MGR bitmap, old format, 1-bit deep, 32-bit aligneds   yxz#MGR bitmap, modern format, squeezeds   %bitmap zFBM image datazPC Research, Inczgroup 3 fax datas   hplip_g3zapplication/hplip-faxi  z
image/jpegs   hsi1zimage/x-jpeg-proprietarys   BMzimage/x-bmps   ICzimage/x-icos   PIzPC pointer image datas   CIzPC color icon datas   CPzPC color pointer image datas	   /* XPM */zimage/x-xpixmapiR  zRLE image data,s   Imagefile version-ziff image dataijYzimage/x-sun-rasteri  zx/x-image-sgis   IT01zFIT image datas   IT02i   ZPCD_IPIzx/x-photo-cd-pack-files   PCD_OPAzx/x-photo-cd-overfiew-files	   SIMPLE  =zFITS image datas   This is a BitMap filezLisp Machine bit-array-files   !!zBennet Yee's "face" formati  zPEX Binary Archivei  s   Visio (TM) Drawingz%si  zbasic-16 executablei  zbasic-16 executable (TV)i  i   i
  i  s   OPSzInterleaf saved datas   <!OPSzInterleaf document textZpgscriptverzIslandWrite document   ZDrawFilezIslandDraw documentzleshort&0xFFFCi   zlittle endian ispellzbeshort&0xFFFCzbig endian ispelll   : zcompiled Java class data,i  zJava serialization datas   KarmaRHDz$Version Karma Data Structure Versions   lectz"DEC SRC Virtual Paper Lectern file5   Z
yypreviouszC program text (from lex)zgenerated by flexzC program text (from flex)s   %{zlex description texti   zlif fileid z%Linux/i386 impure executable (OMAGIC)id z#Linux/i386 pure executable (NMAGIC)id z+Linux/i386 demand-paged executable (ZMAGIC)i d z+Linux/i386 demand-paged executable (QMAGIC)s    zLinux/i386 object files   zLinux-8086 impure executables    zLinux-8086 executables    zLinux-8086 object files   zMinix-386 impure executables    zMinix-386 executables   *nazgul*zLinux compiled message catalog   zLinux/i386 core fileZLILOz!Linux/i386 LILO boot/chain loaders   0.9i6  zfont/linux-psfi  z
SWAP-SPACEzLinux/i386 swap filezECOFF alphaZHdrSzLinux kernell   q s   Begin3zLinux Software Map entry texts   ;;zLisp/Scheme program texts   
(z%byte-compiled Emacs-Lisp program datas   ;ELC   z(SYSTEM::VERSION 'z%CLISP byte-compiled Lisp program textiҋvpzCLISP memory image datal   pv% z%CLISP memory image data, other endianl   $< zGNU-format message catalog datal   * zmach-o fat filel   z} zmach-o   zmust be converted with BinHexzBinHex binary texts   SIT!zStuffIt Archive (data)A   zSIT!zStuffIt Archive (rsrc + data)s   SITDzStuffIt Deluxe (data)ZSITDzStuffIt Deluxe (rsrc + data)s   SegzStuffIt Deluxe Segment (data)ZSegz$StuffIt Deluxe Segment (rsrc + data)s   APPLzMacintosh Application (data)ZAPPLz#Macintosh Application (rsrc + data)s   zsyszMacintosh System File (data)Zzsysz"Macintosh System File(rsrc + data)s   FNDRzMacintosh Finder (data)ZFNDRzMacintosh Finder(rsrc + data)s   librzMacintosh Library (data)ZlibrzMacintosh Library(rsrc + data)s   shlbzMacintosh Shared Library (data)Zshlbz%Macintosh Shared Library(rsrc + data)s   cdevzMacintosh Control Panel (data)Zcdevz$Macintosh Control Panel(rsrc + data)s   INITzMacintosh Extension (data)ZINITz Macintosh Extension(rsrc + data)s   FFILZFFILs   LWFNZLWFNs   PACTz$Macintosh Compact Pro Archive (data)ZPACTz*Macintosh Compact Pro Archive(rsrc + data)s   ttrozMacintosh TeachText File (data)Zttroz%Macintosh TeachText File(rsrc + data)s   TEXTZTEXTs   PDFzMacintosh PDF File (data)ZPDFzMacintosh PDF File(rsrc + data)s   # Magiczmagic text file for file(1) cmds   Relay-Version:zold news texts   #! rnewszbatched news texts	   N#! rnewszmailed, batched news texts
   Forward tozmail forwarding texts   Pipe tozmail piping texts   Return-Path:zmessage/rfc822s   Path:zmessage/newss   Xref:s   From:s   Articles   BABYLzmessage/x-gnu-rmails	   Received:s   MIME-Version:zMIME entity texts   Content-Type: s   Content-Type:iz  z!Mirage Assembler m.out executables   zID tags datas   zMMDF mailboxz	Research,zDigifax-G3-File   zraw G3 data, byte-paddedi   zraw G3 datas   RMD1zraw modem datas   PVF1
zportable voice formats   PVF2
i  z
mc68k COFFi	  zmc68k executable (shared)z&mc68k executable (shared demand paged)i*  z68K BCS executablei+  z88K BCS executables   S0z-Motorola S-Record; binary data in text formats	   @echo offzMS-DOS batch file text   zPE  zMS Windows PEiL  z'MS Windows COFF Intel 80386 object fileif  z&MS Windows COFF MIPS R4000 object filei  z!MS Windows COFF Alpha object fileih  z*MS Windows COFF Motorola 68000 object filei  z#MS Windows COFF PowerPC object filei  z#MS Windows COFF PA-RISC object files   MZzapplication/x-ms-dos-executables   LZzMS-DOS executable (built-in)s   regfzWindows NT Registry filei   s   Microsoft Word 6.0 Documentztext/vnd.ms-words   Documento Microsoft Word 6i@  Z	MSWordDoci  1s   PO^Q`s   Microsoft Excel 5.0 Worksheetzapplication/vnd.ms-exceliB  ZBiff5i   zLotus 1-2-3ZWPCztext/vnd.wordperfectib  zTower/XP rel 2 objectig  il  zTower/XP rel 3 objectiq  iv  zTower32/600/400 68020 objecti  zTower32/800 68020i  zTower32/800 68010i  z NetBSD little-endian object filezNetBSD big-endian object filezbelong&0377777777zNetBSD/i386 demand pagedzNetBSD/i386 purezNetBSD/i386iwzNetBSD/i386 coreizzNetBSD/m68k demand pagedizzNetBSD/m68k pureizzNetBSD/m68kizzNetBSD/m68k coreizNetBSD/m68k4k demand pagedizNetBSD/m68k4k pureizNetBSD/m68k4ki{zNetBSD/m68k4k corei]zNetBSD/ns32532 demand pagediZzNetBSD/ns32532 pureiWzNetBSD/ns32532izNetBSD/ns32532 coreizNetBSD/sparc demand pagedizNetBSD/sparc pureizNetBSD/sparcizNetBSD/sparc coreizNetBSD/pmax demand pagedizNetBSD/pmax pureizNetBSD/pmaxi;zNetBSD/pmax corei]"zNetBSD/vax demand pagediZ"zNetBSD/vax pureiW"z
NetBSD/vaxi"zNetBSD/vax corei zECOFF NetBSD/alpha binaryi/zNetBSD/alpha corei<zNetBSD/mips demand pagedi<zNetBSD/mips purei<zNetBSD/mipsi;=zNetBSD/mips coreiJzNetBSD/arm32 demand pagediJzNetBSD/arm32 pureiJzNetBSD/arm32i{JzNetBSD/arm32 cores   StartFontMetricszfont/x-sunos-newss	   StartFontiD)ziG)ziP)ziQ)z   iE+ziH+zs
   Octave-1-Lz"Octave binary data (little endian)s
   Octave-1-BzOctave binary data (big endian)s   OLFZOLFi͇  zOS9/6809 module:iJ  zOS9/68K module:i  zOSF/Rose objecti5  zi386 COFF objecti*  z#"compact bitmap" format (Poskanzer)s   %PDF-zapplication/pdfi z%PDP-11 single precision APL workspacei z%PDP-11 double precision APL workspacezPDP-11 executablei  zPDP-11 UNIX/RT ldpi  zPDP-11 old overlayi  zPDP-11 pure executablei  zPDP-11 separate I&D executablei  zPDP-11 kernel overlayi   zPGP key public ringi  zPGP key security ringi   i   zPGP encrypted datas   -----BEGIN PGPzPGP armored datas   # PaCkAgE DaTaStReAmzpkg Datastream (SVR4)zmumps avl globaliZ  zmumps blt globals   %!zapplication/postscripts   %!l   S zDOS EPS Binary Files   *PPD-Adobe:s   %-12345X@PJLzHP Printer Job Language datas   Ezimage/x-pcl-hps
   @document(zImagen printers   RastzRST-format raster font datazbelong&0xff00ffffi   Vzps databaseiPzPyramid 90x family executableiPz"Pyramid 90x family pure executableiPz/Pyramid 90x family demand paged pure executablei  s   {\\rtfzRich Text Format data,&   ZSpreadsheetzsc spreadsheet filezs SCCSzarchive dataZbyte.   zSendmail frozen configurationi'     zBALANCE NS32000 .oi  z"BALANCE NS32000 executable (0 @ 0)i   z(BALANCE NS32000 executable (invalid @ 0)i0  z%BALANCE NS32000 standalone executablei  zSYMMETRY i386 .oi"  z SYMMETRY i386 executable (0 @ 0)i2  z&SYMMETRY i386 executable (invalid @ 0)iB  z#SYMMETRY i386 standalone executables   kbd!mapzkbd map filezold SGI 68020 executablezold SGI 68020 pure executableie  zdisk quotas filei  zIRIS Showcase filei&  zIRIS Showcase templateiMFCSiMFCTl   :[= zIRIX Parallel Arenai`  zMIPSEB COFF executableib  zMIPSEL COFF executablei`  zMIPSEB-LE COFF executableib  zMIPSEL-LE COFF executableic  zMIPSEB MIPS-II COFF executablezMIPSEL MIPS-II COFF executableic  z!MIPSEB-LE MIPS-II COFF executableif  z!MIPSEL-LE MIPS-II COFF executablei@  zMIPSEB MIPS-III COFF executableiB  zMIPSEL MIPS-III COFF executablei@  z"MIPSEB-LE MIPS-III COFF executableiB  z"MIPSEL-LE MIPS-III COFF executablei  zMIPSEB Ucodei  zMIPSEL Ucodel   -[= zIRIX core dumpl   @-[= zIRIX 64-bit core dumpl   @}u zIRIX N32 core dumps   CrshDumpzIRIX vmcore dump ofs   SGIAUDITzSGI Audit files   WNGZWZSCzWingz compiled scripts   WNGZWZSSzWingz spreadsheets   WNGZWZHPzWingz help files
   \#InventorzV IRIS Inventor 1.0 filezV2 Open Inventor 2.0 files   glfHeadMagic();ZGLF_TEXTi  AZGLF_BINARY_LSB_FIRSTiA  ZGLF_BINARY_MSB_FIRSTs   <!DOCTYPE HTMLz	text/htmls   <!doctype htmls   <HEADs   <heads   <TITLEs   <titles   <htmls   <HTMLs	   <!DOCTYPEzexported SGML document texts	   <!doctypes   <!SUBDOCzexported SGML subdocument texts   <!subdocs   <!--s   RTSSzNetMon capture files   TRSNIFF data    zSniffer capture files   XCP zNetXRay capture fileZubelongl   CeC z!tcpdump capture file (big-endian)Zulelongz$tcpdump capture file (little-endian)s	   <!SQ DTD>zCompiled SGML rules files	   <!SQ A/E>zA/E SGML Document binarys	   <!SQ STS>zA/E SGML binary styles filei  zCompiled PSI (v1) datai  zCompiled PSI (v2) dataiD z!SoftQuad DESC or font file binarys
   SQ BITMAP1zSoftQuad Raster Format texts
   X SoftQuadztroff Context intermediatezbelong&077777777i])	 zsparc demand pagediZ)	 z
sparc pureiW)	 Zsparci zmc68020 demand pagedi zmc68020 purei Zmc68020i zmc68010 demand pagedi zmc68010 purei Zmc68010zold sun-2 executablezold sun-2 pure executablei  z!old sun-2 demand paged executableiV zSunOS core filel   @gt zSunPC 4.0 Hard Disks   #SUNPC_CONFIGzSunPC 4.0 Properties Valuess   snoopzSnoop capture file$   Zacspz*Kodak Color Management System, ICC Profiles   #!teapot
xdrzteapot work sheet (XDR format)s   zCompiled terminfo entryi  zCurses screen imagei  s   zTeX DVI files   z
font/x-texs   Ys   s   This is TeX,zTeX transcript texts   This is METAFONT,zMETAFONT transcript textz zfont/x-tex-tfmz s   \\input\ztexinfo Texinfo source texts   This is Info filezGNU Info texts   \\inputzTeX document texts	   \\sectionzLaTeX document texts   \\setlengths   \\documentstyles	   \\chapters   \\documentclasszLaTeX 2e document texts   \\relaxzLaTeX auxiliary files   \\contentslinezLaTeX table of contentss   \\indexentryzLaTeX raw index files   \\begin{theindex}zLaTeX sorted indexs   \\glossaryentryzLaTeX raw glossarys   \\begin{theglossary}zLaTeX sorted glossarys   This is makeindexzMakeindex log files   **TI82**zTI-82 Graphing Calculators   **TI83**zTI-83 Graphing Calculators   **TI85**zTI-85 Graphing Calculators   **TI92**zTI-92 Graphing Calculators   **TI80**zTI-80 Graphing Calculator File.s   **TI81**zTI-81 Graphing Calculator File.s   TZifztimezone datas                               zold timezone dataz                            z                            z                            z                            z                            s   .\\"z troff or preprocessor input texts   '\\"s   '.\\"s   \\"s   x Tzditroff texts   @z"very old (C/A/T) troff output datas   Interpress/XeroxzXerox InterPress datai  zunknown machine executablei  zunknown pure executablei	  zPDP-11 separate I&Di  i  z$unknown demand paged pure executablei  i  z-unknown readable demand paged pure executables   begin uuencodedzor xxencoded texts   xbtoa Beginzbtoa'd texts   $
shipzship'd binary texts   Decode the following with bdecozbencoded News textzPerkin-Elmer executablei<  z amd 29k coff noprebar executablei$  zamd 29k coff prebar executableiq zamd 29k coff archivezunicos (cray) executableiT  u   XßÿÿzUltrix core files   Joy!peffpwpcz!header for PowerPC PEF executablei z"VAX single precision APL workspacei z"VAX double precision APL workspacezVAX executablezVAX pure executablez VAX demand paged pure executablei:  zVAX COFF executablezVAX COFF pure executables   LBLSIZE=zVICAR image data+   Z
SFDU_LABELzVICAR label fileiUU  zVISX image files    0 zVMS VAX executablei   zVMS Alpha executablez
(Corel/WP)s   corezcore file (Xenix)z8086 relocatable (Microsoft)zx.outi  zMicrosoft a.outzold Microsoft 8086 x.outzb.outi  z+XENIX 8086 relocatable or 80286 small modeli  zobject file (z8000 a.out)i  zpure object file (z8000 a.out)i	  z"separate object file (z8000 a.out)i  z!overlay object file (z8000 a.out)s   ZyXELzZyXEL voice dataZ0123456789abcdefABCDEFc             C   s`   | d d dkrd|  } | d d dkr2t | dS | d dkrT| dd  } t | d	S t | S d S )
Nr   x0r   0x   r   \r   )int)n r,   /usr/share/hplip/base/magic.pystrToNum  s    

r.   c             C   s  xt jd| }|sP |j d }|j t| krL| d t| d  d } q| ||d  dkrtt| ||d  }| d |d  | | |d d   } q| |j d  dkrtt| ||d  }| d |d  | | |d d   } qd	t| |   kod
kn  r|}xFt| | d
kr^t| | d	k r^|d }|t| d krP qW tt| |d | }| d |d  | | |d   } q| | dkr| d |d  d | |d d   } qP qW | S )Nz\\r    r   r'   r   r%      :   /   r+   
)researchstartendlenchrr.   ord)smr%   cr7   r,   r,   r-   unescape  s2    &&$&"&r>   c               @   s&   e Zd ZdddZdd Zdd ZdS )		magicTestNc             C   s   |j ddkr:t||jdd d  }|d |jd }t|tdkrVt|| _n|| _|| _|| _g | _|| _|| _|| _	d S )N&r   r   a)
countr.   indextypeoffsetmsgsubTestsopmaskvalue)selfrE   trH   rJ   rF   rI   r,   r,   r-   __init__  s    zmagicTest.__init__c             C   s.   | j r|| j @ }| jdkr*| j|kr*| jS d S )Nr   )rI   rH   rJ   rF   )rK   datar,   r,   r-   test  s    


zmagicTest.testc             C   s  y| j dkrd\}}xbtdt| jd D ]J}|| j t|d krHP || }tjd|| j| | j| d  \}q,W |}n| j dkrtjd|| j| jd  \}n| j d	krtjd
|| j| jd  \}n| j dkrtjd|| j| jd  \}n| j dkr.tjd|| j| jd  \}nX| j dkrZtjd|| j| jd  \}n,| j dkrtjd|| j| jd  \}n W n
   d S | j|S )Nr       r   r   r=   r   hr   r   z<hr   z>Hr   lr   r	   z<lr   z>l)rP   rP   )rD   ranger8   rJ   rE   structZunpackrO   )rK   rN   r=   r;   ir,   r,   r-   compare  s2    
*
 
     zmagicTest.compare)N)__name__
__module____qualname__rM   rO   rV   r,   r,   r,   r-   r?     s   

r?   c             C   s&  t | j }dd i}x
|D ] }tjd|r2qq|j }tjd|}t|dk rTq|d }|d }|d }d}x$|d dkr|d }|dd  }qrW t}|dkr||d  j}|d dkrqd
ddd	g}	|	j	|d dkr|d }
|dd  }n@t|dkr.|d dkr.|	j	|d dkr.|dd  }d
}
d }|dkrxt
|}|t|d  dkrt|dkr||d  }|d= nP qBW nn|j	d	dkr||jd	d d  }|d |jd	d  }yt|}W n   wY nX djt|dd  }t|||
|||}|||< |j| qW d S )Nr   z\s*#z\s*r0   r   r   >(r@   r   <r)   r   r/   r
   )r[   r@   )open	readlinesr4   matchrstripsplitr8   magicNumbersrG   rB   r>   rC   r.   joinlistr?   append)filelineslastlinerE   rD   rJ   levelrR   operandsrH   rI   rF   newr,   r,   r-   load&  s^    0
$
rm   c             C   s6  t | j }dd i}x|D ]}tjd|r2qq|j }tjd|}t|dk rTq|d }|d }|d }d}x$|d dkr|d }|dd  }qrW t}|dkr||d  j}|d dkrq|d d	krqd
ddd	g}	|	j	|d dkr|d }
|dd  }n@t|dkr>|d dkr>|	j	|d dkr>|dd  }d
}
d }|dkrxt
|}|t|d  dkrt|dkr||d  }|d= nP qRW nn|j	d	dkr||jd	d d  }|d |jd	d  }yt|}W n   wY nX djt|dd  }t|||
|||}|||< |j| qW d S )Nr   z\s*#z\s*r0   r   r   rZ   r[   r@   r   r\   r)   r   r/   r
   )r]   r^   r4   r_   r`   ra   r8   rb   rG   rB   r>   rC   r.   rc   rd   r?   re   )rf   rg   rh   ri   rE   rD   rJ   rj   rR   rk   rH   rI   rF   rl   r,   r,   r-   rm   u  sb    0
$
c             C   s   xt D ]}|j| }|r|S qW x2| D ]*}t|tkr<|}nt|}|dkr&dS q&W | jddddksx| jddddkr|dS | jddddks| jd	dd
dkrdS dS )Nr   rN   s   #includer   r   s   /***ztext/cpps   !/usr/bin/env pythons   def i    zapplication/x-pythonz
text/plainrn   rn   rn   )rb   rV   rD   r*   r:   find)rN   rO   r<   r=   Zc1r,   r,   r-   whatis  s    


$$rp   c             C   s8   t jj| r0t jj| rdS tt| djdS dS d S )NZ	directoryrbi    r
   )ospathexistsisdirrp   r]   read)fr,   r,   r-   	mime_type  s
    rx   r0   )r4   rT   os.pathrr   __version__magicrb   Z	hexdigitsr.   r>   r?   rm   rp   rx   r<   re   r,   r,   r,   r-   <module>.   s  
-EOU
