
h'iNc           @   s  d  Z  d Z d d l Z d d l Z d d l Z d d l Z d d l Z d d l Z d d l Z d d l	 Z	 d d l
 Z
 d d l Z d d l Z y d d l Z WnP e k
 r e j d k r d e j   d GHd GHd	 GHe j d
  q   n Xy e Wn! e k
 rd d l m Z n Xy e Wn e k
 r@e Z n Xe j j Z d e j d e j d f Z e j j d  Z e e d  Z  e j d k Z! e" e d d  Z# e  rd Z$ n e rd Z$ n d Z$ d d d d d d d d d d d  d! d" d# d$ d% d& d' d( d) d* g Z% d+ d, g Z& e j d  \ Z' Z( e' d k re( d- k rie% j) d. d/ d0 d1 g  n  e( d2 k re% j) d3 g  n  e( d k rMe% j) d4 d5 g  qMn e' d k rMe% j) d0 d. d/ d1 d6 d3 d7 d8 d9 d5 d: d; d< d= d> d? g  e( d k rd@ e' e& d <n  e( d k rMe% j) dA dB dC dD dE dF dG dH dI g	  qMn  e  rie% j) dJ d/ g  n  dK e* f dL     YZ+ e+ e+ j, d e j- f g  a. dM   Z/ dN   Z0 e1 dO  Z2 e1 dP  Z3 dQ   Z4 dR   Z5 dS   Z6 e7 e7 d e7 dT  Z9 dU   Z: e7 d e7 dV  Z; e7 d e7 dW  Z< e j= dX e j>  Z? d e7 dY  Z@ dZ d[  ZA d\   ZB e1 d d e1 d d d]  ZC e1 e7 e7 e1 d d e7 d^  ZD d_   ZE d`   ZF da   ZG db   ZH d dc  ZI dd   ZJ de   ZK df   ZL dg   ZM dh   ZN di   ZO d dj e jP d  dk dl dm g ZQ dn   ZR d do  ZS dp   ZT dq   ZU e1 dr  ZV d ds  ZW dt   ZX eX du  ZY eX dv  ZZ eX dw  Z[ eX dx  Z\ eX dy  Z] eX dz  Z^ eX d{  Z_ eX d|  Z` eX d}  Za eX d~  Zb eX d  Zc ed d k reB   n  d S(   s'   Create a "virtual" Python installation
s   1.6.4iNi   i   s	   ERROR: %si   sU   ERROR: this script requires Python 2.4 or greater; or at least the subprocess module.sW   If you copy subprocess.py from a newer version of Python this script will probably workie   (   t   Sets   python%s.%si    t   javat   pypy_version_infot   win32t   abiflagst    t   pypyt   jythont   pythont   ost   posixt	   posixpatht   ntt   ntpatht   genericpatht   fnmatcht   localet	   encodingst   codecst   statt   UserDictt   readlinet   copy_regt   typest   ret   sret	   sre_parset   sre_constantst   sre_compilet   zlibs   lib-dynloadt   configi   t   warningst	   linecachet   _abcollt   abci   t   _weakrefsett   setst
   __future__t   iot   copyregt   tempfilet   randomt   collectionst   keywordt   tarfilet   shutilt   structt   copys	   config-%st   base64t   bisectt   _dummy_threadt   hashlibt   heapqt   hmact   reprlibt   rlcompletert   weakreft	   tracebackt   Loggerc           B   s  e  Z d  Z e j Z e j Z e j e j d Z e j Z Z e j	 Z	 e j
 Z
 e e e e e	 e
 g Z d   Z d   Z d   Z d   Z d   Z d   Z d   Z d	   Z d
   Z d d  Z d   Z d   Z d   Z d   Z d   Z e e  Z RS(   s   
    Logging object for use in command-line script.  Allows ranges of
    levels, to avoid some redundancy of displayed information.
    i   c         C   s(   | |  _  d |  _ d  |  _ t |  _ d  S(   Ni    (   t	   consumerst   indentt   Nonet   in_progresst   Falset   in_progress_hanging(   t   selfR;   (    (    s.   /usr/lib/python2.7/dist-packages/virtualenv.pyt   __init__   s    			c         O   s   |  j  |  j | | |  d  S(   N(   t   logt   DEBUG(   RA   t   msgt   argst   kw(    (    s.   /usr/lib/python2.7/dist-packages/virtualenv.pyt   debug  s    c         O   s   |  j  |  j | | |  d  S(   N(   RC   t   INFO(   RA   RE   RF   RG   (    (    s.   /usr/lib/python2.7/dist-packages/virtualenv.pyt   info  s    c         O   s   |  j  |  j | | |  d  S(   N(   RC   t   NOTIFY(   RA   RE   RF   RG   (    (    s.   /usr/lib/python2.7/dist-packages/virtualenv.pyt   notify  s    c         O   s   |  j  |  j | | |  d  S(   N(   RC   t   WARN(   RA   RE   RF   RG   (    (    s.   /usr/lib/python2.7/dist-packages/virtualenv.pyt   warn	  s    c         O   s   |  j  |  j | | |  d  S(   N(   RC   RM   (   RA   RE   RF   RG   (    (    s.   /usr/lib/python2.7/dist-packages/virtualenv.pyt   error  s    c         O   s   |  j  |  j | | |  d  S(   N(   RC   t   FATAL(   RA   RE   RF   RG   (    (    s.   /usr/lib/python2.7/dist-packages/virtualenv.pyt   fatal  s    c         O   s  | r | r t  d   q n  | p' | } d  } x |  j D] \ } } |  j | |  r: |  j r | t j t j f k r t |  _ t j j	 d  t j j
   n  | d  k r | r | | } n | } d |  j | } n  t | d  r | j	 | d  q| |  q: q: Wd  S(   Ns6   You may give positional or keyword arguments, not boths   
t    t   write(   t	   TypeErrorR=   R;   t   level_matchesR@   t   syst   stdoutt   stderrR?   RS   t   flushR<   t   hasattr(   RA   t   levelRE   RF   RG   t   renderedt   consumer_levelt   consumer(    (    s.   /usr/lib/python2.7/dist-packages/virtualenv.pyRC     s*    		c         C   sz   |  j  s  t d | |  j  f  |  j |  j |  j    rd t j j |  t j j   t	 |  _
 n	 t |  _
 | |  _  d  S(   Ns0   Tried to start_progress(%r) while in_progress %r(   R>   t   AssertionErrorRU   RK   t   _stdout_levelRV   RW   RS   RY   t   TrueR@   R?   (   RA   RE   (    (    s.   /usr/lib/python2.7/dist-packages/virtualenv.pyt   start_progress(  s    	s   done.c         C   s   |  j  s t d  |  j |  j  r |  j s\ t j j d |  j  | d  t j j   q t j j | d  t j j   n  d  |  _  t
 |  _ d  S(   Ns,   Tried to end_progress without start_progresss   ...s   
(   R>   R_   t   stdout_level_matchesRK   R@   RV   RW   RS   RY   R=   R?   (   RA   RE   (    (    s.   /usr/lib/python2.7/dist-packages/virtualenv.pyt   end_progress4  s    		c         C   s-   |  j  r) t j j d  t j j   n  d S(   sa   If we are in a progress scope, and no log messages have been
        shown, write out another '.'t   .N(   R@   RV   RW   RS   RY   (   RA   (    (    s.   /usr/lib/python2.7/dist-packages/virtualenv.pyt   show_progressB  s    	c         C   s   |  j  | |  j    S(   s9   Returns true if a message at this level will go to stdout(   RU   R`   (   RA   R[   (    (    s.   /usr/lib/python2.7/dist-packages/virtualenv.pyRc   I  s    c         C   s4   x* |  j  D] \ } } | t j k r
 | Sq
 W|  j S(   s%   Returns the level that stdout runs at(   R;   RV   RW   RP   (   RA   R[   R^   (    (    s.   /usr/lib/python2.7/dist-packages/virtualenv.pyR`   M  s    c         C   sl   t  | t  r^ | j | j } } | d k	 r> | | k r> t S| d k	 rZ | | k rZ t St S| | k Sd S(   so  
        >>> l = Logger([])
        >>> l.level_matches(3, 4)
        False
        >>> l.level_matches(3, 2)
        True
        >>> l.level_matches(slice(None, 3), 3)
        False
        >>> l.level_matches(slice(None, 3), 2)
        True
        >>> l.level_matches(slice(1, 3), 1)
        True
        >>> l.level_matches(slice(2, 3), 1)
        False
        N(   t
   isinstancet   slicet   startt   stopR=   R?   Ra   (   RA   R[   R]   Ri   Rj   (    (    s.   /usr/lib/python2.7/dist-packages/virtualenv.pyRU   T  s    c         C   s?   |  j  } | d k  r | d S| t |  k r7 | d S| | S(   Ni    i(   t   LEVELSt   len(   t   clsR[   t   levels(    (    s.   /usr/lib/python2.7/dist-packages/virtualenv.pyt   level_for_integero  s    	(   t   __name__t
   __module__t   __doc__t   loggingRD   RI   RM   RK   t   WARNINGt   ERRORRP   Rk   RB   RH   RJ   RL   RN   RO   RQ   RC   Rb   Rd   Rf   Rc   R`   RU   Ro   t   classmethod(    (    (    s.   /usr/lib/python2.7/dist-packages/virtualenv.pyR:      s0   																		c         C   sF   t  j j |   s2 t j d |   t  j |   n t j d |   d  S(   Ns   Creating %ss   Directory %s already exists(   R	   t   patht   existst   loggerRJ   t   makedirs(   Rw   (    (    s.   /usr/lib/python2.7/dist-packages/virtualenv.pyt   mkdir}  s    c         C   s<   t  j j |   r( t j |  | t  n t j |  |  d  S(   N(   R	   Rw   t   isdirR-   t   copytreeRa   t   copy2(   t   srct   dest(    (    s.   /usr/lib/python2.7/dist-packages/virtualenv.pyt   copyfileordir  s    c         C   sm  t  j j |   s& t j d |   d  St  j j |  rL t j d |  d  St  j j t  j j |   s t j d t  j j |   t  j t  j j |   n  t  j j	 |   s t  j j
 |   } n t  j |   } | rLt t  d  rLt j d |  y t  j | |  Wqit t f k
 rHt j d |  t |  |  qiXn t j d |  t |  |  d  S(   Ns!   Cannot find file %s (bad symlink)s   File %s already existss"   Creating parent directories for %st   symlinks   Symlinking %ss    Symlinking failed, copying to %ss   Copying to %s(   R	   Rw   Rx   Ry   RN   RH   t   dirnameRJ   Rz   t   islinkt   abspatht   readlinkRZ   R   t   OSErrort   NotImplementedErrorR   (   R   R   R   t   srcpath(    (    s.   /usr/lib/python2.7/dist-packages/virtualenv.pyt   copyfile  s*    c         C   s   t  j j |   sU t j d |   t |  d  } | j | j d   | j   d  St |  d  } | j	   } | j   | | k r | s t j
 d |   d  St j
 d |   t |  d  } | j | j d   | j   n t j d |   d  S(   Ns
   Writing %st   wbs   utf-8t   rbs6   File %s exists with different content; not overwritings   Overwriting %s with new contents   Content %s already in place(   R	   Rw   Rx   Ry   RJ   t   openRS   t   encodet   closet   readRL   (   R   t   contentt	   overwritet   ft   c(    (    s.   /usr/lib/python2.7/dist-packages/virtualenv.pyt	   writefile  s$    

c         C   sF   t  j j |   r2 t j d |   t j |   n t j d |   d  S(   Ns   Deleting tree %ss&   Do not need to delete %s; already gone(   R	   Rw   Rx   Ry   RL   R-   t   rmtreeRJ   (   t   dir(    (    s.   /usr/lib/python2.7/dist-packages/virtualenv.pyR     s    c         C   sc   t  t d  r_ t j |   j d @} | d Bd @} t j |  |  t j d |  t |   n  d  S(   Nt   chmodi  im  s   Changed mode of %s to %s(   RZ   R	   R   t   st_modeR   Ry   RJ   t   oct(   t   fnt   oldmodet   newmode(    (    s.   /usr/lib/python2.7/dist-packages/virtualenv.pyt   make_exe  s
    c         C   s=   x6 | D]. } t  j j t | |    r t | |   Sq W|  S(   N(   R	   Rw   Rx   t   join(   t   filenamet   dirsR   (    (    s.   /usr/lib/python2.7/dist-packages/virtualenv.pyt
   _find_file  s    c            s  | d  k r t   } n  | sD d t j d  } d   t } d  } n d  } d } d   t } t j } t j j	 d  r t j d t _ n  zm yU d d  l
 }	 t |	 d	  s t j j |	 j  }
 t j d
 |
  t j d  n  Wn t k
 r n XWd  | t _ X| d  k	 r"t | |  } n  | d  k	 r@t | |  } n  t rt j d k rt j d  \ } } t j | |  t j |  |  | g } n |  d | g } | r| j d  n  i  } g  } t j t j  r| j d  n  t j   } | d  k	 rxt j j |  rxt j d   | f  | j |  t j j	 d  rk| t j j t j d | d <q6| | d <n | d  k	 rt j j |  rt j d   | f  t j t j j |   | j d  nJ | rt j  d     | p| | f  t j! d  n  t j d    | j" d d   g  t j# d    t j$ d 7_$ d  }   d k rud | d <n    f d   } t j% t j   t j&  st j'   } | d  k	 rt j j |  rt j j( | t j j) |  d  } t* j+ | |  qn  z, t, | d t- d | d | d | d  | Wd  t j$ d 8_$ t j.   t j   | k rnt j |  n  t rt j d k rt j/ |  n  Xd  S(!   Ns   setuptools-0.6c11-py%s.eggi   t
   setuptoolss   distribute-0.6.19.tar.gzt
   distributet   VIRTUALENV_INTERPRETER_RUNNINGi   it   _distributes1   A globally installed setuptools was found (in %s)sF   Use the --no-site-packages option to use distribute in the virtualenv.R   s   .pys   -cs   --always-unzips   -vs   Using existing %s egg: %st
   PYTHONPATHs   Can't find any local distributions of %s to install and --never-download is set.  Either re-run virtualenv without the --never-download option, or place a %s distribution (%s) in one of these locations: %rs   No %s egg found; downloadings   --always-copys   -Us   Installing %s...i   t   truet   DONT_PATCH_SETUPTOOLSc            s   t  |     S(   N(   t   filter_ez_setup(   t   line(   t   project_name(    s.   /usr/lib/python2.7/dist-packages/virtualenv.pyt   _filter_ez_setup2  s    t   show_stdoutt   filter_stdoutt	   extra_envt   remove_from_envt   cwd(0   R=   t   file_search_dirsRV   t   versiont   EZ_SETUP_PYt   DISTRIBUTE_SETUP_PYRw   R	   t   environt   gett   pkg_resourcesRZ   R   t   __file__Ry   RL   t   ImportErrorR   t	   is_jythont   _nameR(   t   mkstempRS   R   t   appendRc   RD   t   getcwdRx   RJ   t   pathsept   chdirRQ   t   exitt   extendRb   R<   t   accesst   W_OKt   mkdtempR   t   splitR-   R/   t   call_subprocessR?   Rd   t   remove(   t   py_executablet   unzipR   t   search_dirst   never_downloadt   setup_fnt   bootstrap_scriptt   sourcet   _prev_sys_pathR   t   locationt   fdt   ez_setupt   cmdt   envR   t	   old_chdirR   R   t   target(    (   R   s.   /usr/lib/python2.7/dist-packages/virtualenv.pyt   _install_req  s    		
"		%
c          C   s   t  j j t  j j t   }  d |  d g } t  j j t  j j t   d d k r y d d  l } Wn t k
 rx q X| j t  j j	 t  j j | j  d   n  g  | D] } t  j j
 |  r | ^ q S(   NRe   s   /usr/share/python-virtualenv/i    t
   virtualenvit   virtualenv_support(   R	   Rw   R   R   R   t   splitextR   R   R   R   R|   (   t   hereR   R   t   d(    (    s.   /usr/lib/python2.7/dist-packages/virtualenv.pyR   J  s    	(.c         C   s   t  |  | d | d | d  S(   NR   R   (   R   (   R   R   R   R   (    (    s.   /usr/lib/python2.7/dist-packages/virtualenv.pyt   install_setuptoolsY  s    c      	   C   s#   t  |  | d t d | d | d  S(   NR   R   R   (   R   Ra   (   R   R   R   R   (    (    s.   /usr/lib/python2.7/dist-packages/virtualenv.pyt   install_distribute^  s    s$   ^pip-.*(zip|tar.gz|tar.bz2|tgz|tbz)$c         C   s  | d  k r t   } n  g  } xO | D]G } | j g  t j |  D]$ } t j |  rA t | |  ^ qA  q% Wg  t |  D]- \ } } t j	 j
 |  j   | | f ^ q} } | j   g  | D] \ } } } | ^ q } | s d } n
 | d } d }	 t j d k rd }	 n  |  t t j	 j |   |	  | g }
 | d k rz| rjt j d |  t j d  n  t j d  n# t j d	 t j	 j
 |  | f  t j d
  t j d 7_ d   } z t |
 d t d | Wd  t j d 8_ t j   Xd  S(   Nt   pipit   easy_installR   s   easy_install-script.pys   Can't find any local distributions of pip to install and --never-download is set.  Either re-run virtualenv without the --never-download option, or place a pip source distribution (zip/tar.gz/tar.bz2) in one of these locations: %ri   s   Installing pip from network...s'   Installing existing %s distribution: %ss   Installing pip...i   c         S   s   t  |  d  S(   NR   (   R   (   R   (    (    s.   /usr/lib/python2.7/dist-packages/virtualenv.pyt   _filter_setup  s    R   R   (   R=   R   R   R	   t   listdirt   _pip_ret   searchR   t	   enumerateRw   t   basenamet   lowert   sortRV   t   platformR   Ry   RQ   R   RJ   Rb   R<   R   R?   Rd   (   R   R   R   t	   filenamesR   R   t   iR   R   t   easy_install_scriptR   R   (    (    s.   /usr/lib/python2.7/dist-packages/virtualenv.pyt   install_pipd  s@    )@
"	
	$			R   c         C   s   |  j    s t j S| d k rM x$ d D] } |  j |  r& t j Sq& Wt j Sx9 d d d d d d d g D] } |  j |  ri t j Sqi Wt j S(   NR   t
   Extractings   Now workingt
   Installingt   Beforet   Scanningt
   Setuptoolst   Eggt   Alreadyt   runningt   writingt   readingt
   installingt   creatingt   copyings   byte-compilingt   removingt
   Processings   Reading s
   Best matchs   Processing setuptoolss   Copying setuptoolss   Adding setuptoolss   Installing s
   Installed (   R   s   Now workingR   R   R   R   R   R   R   R   R   R   R   R   s   byte-compilingR   R   (   t   stripR:   RD   t
   startswithRI   (   R   R   t   prefix(    (    s.   /usr/lib/python2.7/dist-packages/virtualenv.pyR     s"       
c    
      C   sp  t  j d t d d  }  |  j d d d d d d	 d
 d d d |  j d d d d d d d
 d d d |  j d d d d d d d d t j |  j d d d d d d d |  j d d d d d d d |  j d d d  d d d d! |  j d" d d# d d d d$ |  j d% d d& d d d
 t d d' |  j d( d d& d d) d d* t   } |  j d+ d d, d d- d
 | d d. |  j d/ d d0 d d d d1 |  j d2 d d3 d d4 d5 t   k rt	 |   n  |  j
   \ } } d6 t   k rt | |  n  | j | j } t t j d7 |  t j f g  a | j rt j j d8  rt j j   } t | j  } | t j k rt j d9 |  qt j d: |  d; | d8 <t } | j d<  r| d=  } n  t j | | g t j d> d? | } t | j      n  | s3d@ GH|  j!   t j" d7  n  t# |  d> k rqdA dB j$ |  GH|  j!   t j" d7  n  | d }	 t j j dC  rt j% dD  t j% dE  t j" dF  n  dG t j k rt j dH  t j dG =n  | j& rt' |	  d  St( |	 dI | j) d | j* d  | j+ d& | j, p.t- d7 k d3 | j. d, | j/ d0 | j0 dJ t   k rlt1 | |	  n  d  S(K   NR   t   usages   %prog [OPTIONS] DEST_DIRs   -vs	   --verboset   actiont   countR   t   verboset   defaulti    t   helps   Increase verbositys   -qs   --quiett   quiets   Decrease verbositys   -ps   --pythonR   t   metavart
   PYTHON_EXEs   The Python interpreter to use, e.g., --python=python2.5 will use the python2.5 interpreter to create the new environment.  The default is the interpreter that virtualenv was installed with (%s)s   --cleart   cleart
   store_trues5   Clear out the non-root install and start from scratchs   --no-site-packagest   no_site_packagessL   Don't give access to the global site-packages dir to the virtual environments   --unzip-setuptoolst   unzip_setuptoolss1   Unzip Setuptools or Distribute when installing its   --relocatablet   relocatablesm   Make an EXISTING virtualenv environment relocatable.  This fixes up scripts and makes all .pth files relatives   --distributet   use_distributesb   Ignored.  Distribute is used by default. See --setuptools to use Setuptools instead of Distribute.s   --setuptoolst   store_falsesl   Use Setuptools instead of Distribute. Set environ variable VIRTUALENV_USE_SETUPTOOLS to make it the default.s   --extra-search-dirR   R   s   Directory to look for setuptools/distribute/pip distributions in. You can add any number of additional --extra-search-dir paths.s   --never-downloadR   s   Never download anything from the network.  Instead, virtualenv will fail if local distributions of setuptools/distribute/pip are not present.s	   --prompt=t   prompts:   Provides an alternative prompt prefix for this environmentt   extend_parsert   adjust_optionsi   R   s   Already using interpreter %ss&   Running virtualenv with interpreter %sR   s   .pycii   R   s   You must provide a DEST_DIRs7   There must be only one argument: DEST_DIR (you gave %s)RR   t   WORKING_ENVs6   ERROR: you cannot run virtualenv while in a workingenvs:   Please deactivate your workingenv, then re-run this scripti   t
   PYTHONHOMEsF   PYTHONHOME is set.  You *must* activate the virtualenv before using itt   site_packagest   after_install(2   t   optparset   OptionParsert   virtualenv_versiont
   add_optionRV   t
   executableRa   R   t   globalsR  t
   parse_argsR  R  R	  R:   Ro   RW   Ry   R   R	   R   R   R/   t   resolve_interpreterRN   RL   R   t   endswitht
   subprocesst   Popent   argvt
   SystemExitt   waitt
   print_helpR   Rl   R   RQ   R  t   make_environment_relocatablet   create_environmentR  R  R  R  t   majverR  R   R   R  (
   t   parsert   default_search_dirst   optionsRF   t	   verbosityR   t   interpretert   filet   popent   home_dir(    (    s.   /usr/lib/python2.7/dist-packages/virtualenv.pyt   main  s    						%
&


	
			
c         C   s  g  } x |  D] } t  |  d k r> | d  d | d } n  d | k sn d | k sn d | k sn d | k r d	 | j d d
  } n  | j |  q Wd j |  }	 | r d  }
 n	 t j }
 t j d |	  | s | r.t	 j
 j   } | r| j |  n  | r4x! | D] } | j | d   qWq4n d  } y4 t j |  d t j d d  d |
 d | d | } Wn; t k
 rt j   d } t j d | |	 f    n Xg  } |
 d  k	 rz| j }
 t j   } x |
 j   j |  } | sPn  | j   } | j |  | rg| |  } t | t  r8| \ } } n  t j | |  t j |  stt j   qtqt j |  qn
 | j   | j    | j! r
| r| rt j" d |	  t j" d j |  d  n  t# d |	 | j! f   q
t j$ d |	 | j! f  n  d  S(   Ni-   i   s   ...iRR   s   
t   "t   's   "%s"s   \"s   Running command %sRX   t   stdinRW   R   R   i   s#   Error %s while executing command %ss    Complete output from command %s:s)   
----------------------------------------s$   Command %s failed with error code %ss   Command %s had error code %s(%   Rl   t   replaceR   R   R=   R#  t   PIPERy   RH   R	   R   R/   t   updatet   popR$  t   STDOUTt	   ExceptionRV   t   exc_infoRQ   RW   t   getdefaultencodingR   t   decodet   rstripRg   t   tupleRC   Rc   Rf   RJ   t   communicateR'  t
   returncodeRL   R   RN   (   R   R   R   R   t   raise_on_returncodeR   R   t	   cmd_partst   partt   cmd_descRW   R   t   varnamet   proct   et
   all_outputt   encodingR   R[   (    (    s.   /usr/lib/python2.7/dist-packages/virtualenv.pyR   6  sx    0			

	c      
   C   s   t  |   \ }  } }	 }
 t j j t |  | |	 |
 d | d |  } t |   | sh t j j d  r t | d | d | d | n t	 | d | d | d | t
 | d | d | t |  |
 |  d S(   s  
    Creates a new environment in ``home_dir``.

    If ``site_packages`` is true (the default) then the global
    ``site-packages/`` directory will be on the path.

    If ``clear`` is true (default False) then the environment will
    first be cleared.
    R  R  t   VIRTUALENV_USE_SETUPTOOLSR   R   R   N(   t   path_locationsR	   Rw   R   t   install_pythont   install_distutilsR   R   R   R   R   t   install_activate(   R3  R  R  R  R  R  R   R   t   lib_dirt   inc_dirt   bin_dirR   (    (    s.   /usr/lib/python2.7/dist-packages/virtualenv.pyR*  }  s    
c         C   sU  t  j d k r t |   d |  k r{ y d d l } Wn1 t k
 rh d |  GHd GHd GHt  j d  n X| j |   }  n  t |  d	  } t |  d
  } t |  d  } n t r t |  d	  } t |  d
  } t |  d  } nd t	 r|  } t |  d  } t |  d  } n7 t |  d t
  } t |  d t
 t  } t |  d  } |  | | | f S(   s^   Return the path locations for the environment (where libraries are,
    where scripts go, etc)R   RR   iNs&   Error: the path "%s" has a space in itsF   To handle these kinds of paths, the win32api module must be installed:s*     http://sourceforge.net/projects/pywin32/i   t   Libt   Includet   Scriptst   bint   includet   lib(   RV   R   R{   t   win32apiR   R   t   GetShortPathNameR   R   t   is_pypyt
   py_versionR   (   R3  R\  RS  RT  RU  (    (    s.   /usr/lib/python2.7/dist-packages/virtualenv.pyRO    s4    
	c      	   C   sX  t  j g } t  j d k r | j t j j d t  j d  d  t j j t  j d d d  t j j d d	 d
 t  j d  d  f  n  t t  d  r | j	 t  j
  n  t t t j j |   } t j j |   }  xe | D]] } |  j |  r |  j | d  \ } } | d t j k s t  | d } t | |  Sq Wt sTt d |  | f  d  S(   Nt   darwins   /Library/Pythoni   s   site-packagest   ExtrasR[  R   t   ~t   Libraryt   Pythont   real_prefixi   i    s9   Filename %s does not start with any of these prefixes: %s(   RV   R  R   R   R	   Rw   R   R   RZ   R   Re  t   listt   mapR   R  R   t   sepR_   R?   (   R   t
   dst_prefixt   prefixest
   src_prefixt   _t   relpath(    (    s.   /usr/lib/python2.7/dist-packages/virtualenv.pyt   change_prefix  s$    ,
c         C   s   d d  l  } x t D] } | t j k r? t j d |  q n  y | j |  \ } } } Wn" t k
 r t j d |  q X| d  k	 r | j	   n  t
 | |   } t | |  | j d  r | d  } t j j |  r t | | d   q q q Wd  S(   Nis&   Ignoring built-in bootstrap module: %ss"   Cannot import bootstrap module: %ss   .pyc(   t   impt   REQUIRED_MODULESRV   t   builtin_module_namesRy   RJ   t   find_moduleR   R=   R   Rn  R   R"  R	   Rw   Rx   (   Ri  Ro  t   modnameR   R   Rl  t   dst_filenamet   pyfile(    (    s.   /usr/lib/python2.7/dist-packages/virtualenv.pyt   copy_required_modules  s"    
c   $      C   s-  t  j j |  r d GHd S| r> t |  t j d |  n  t t  d  rm t j d t  j  t  j } n	 t  j } t	 |  t
 |  t |   t j j t j  g } t  j d k r | j t t j j | d  d   n, t  j d	 k r| j t | d d
   n  t t d  r/t j d  n t j d  t j d 7_ z x | D] } t j j |  ssqUn  xg t j |  D]V }	 t j j |	  d }
 |	 d
 k r|
 t k rt t | |	  t | |	   qqWqUWt |   Wd t j d 8_ Xt	 t | d
   d d l } | j } | j d  rC| d  } n$ | j d  rg| j d d  } n  t | |   } t j j |  } t | t   t t | d  |  t | d  } | st | d  n3 t j j! |  rt j d |  t j" |  n  t# st$ r!t | d  } n t | d t% t&  } t j j! |  rYt | |  n t j' d |  t  j( | k rt# rt  j d k rt t  j( d  } n0 t) rt t  j( d  } n t t  j( d t%  } x9 t j |  D]% }	 t t | |	  t | |	   qWn  t) rxH dE D]@ } t | |  } t j j! |  rt | t |  |   qqWt | d  } t j j! |  rt | t |  d  d t* n  t t | d  t |  d  d t* n  t	 |  t | t j j+ t  j   } d  | k r6t, j- d! |  r6t j j t j j |  d"  } q6n  t j d# t. |  t  j | k rt  j } t  j d$ k rt j j! | d%  r| d% 7} | d% 7} t j d& |  n  t/ j | |  t0 |  t  j d k st  j d$ k rZt j j t j j t  j  d'  } t j j! |  rZt j d(  t/ j | t j j t j j |  d'   qZn  t# rt j j t j j |  d"  } t j d) |  t | |  qn  t j j t j j+ |   d t. k r}t j j t j j |  t.  } t j j |  d* } | d% k r| | 7} n  t j j! |  rLt j1 d+ t. | | f  q}t j d, |  t/ j t  j |  t0 |  n  d  | k r(	t j' d-  t j j | d.  } t/ j2 | |  t j j |  d/  } t j j! |  rt j" |  n  t t j j | d0  |  y, t3 d1 d2 t j j | d0  d3 | g  Wn t j4 d4    n Xd5 t  j5 d t  j5 d* f } | j |  s| d5 t  j5 d t  j5 d* f } t j j! |  rt j" |  n  t j6 d" |  q(	t | d"  } t j j! |  r		t j" |  n  t j6 t j j+ |  |  n  t  j d k rP	d6 | k rP	d7 | } n  | d8 d9 g } t j d: t7 |   y. t8 j9 | d; t8 j: } | j;   \ }  }! Wn` t< k
 r
t  j=   d* }" |" j> t> j? k r	t j4 d< | |" f  t  j@ d=  q
|"  n X|  jA   jB t  jC    }  t j jD t j jE |    }  |  t j jD t j jE |    k r
t j4 d> |  t j4 d? |  t j jD t j jE |    f  t j4 d@  t  j d k r
t j4 dA  n  t  j@ d=  n t j dB |   t j jF dC  }# t j j! |#  r)t j dD |#  n  | S(F   s;   Install just the base environment, no distutils patches etcs1   Please use the *system* python to run this scriptNs   Not deleting %sRe  s   Using real prefix %rR   i    t   DLLsR`  s   site-packagesR   s#   Symlinking Python bootstrap moduless    Copying Python bootstrap modulesi   is   .pycs	   $py.classs   .pys   orig-prefix.txts   no-global-site-packages.txtR   s   Deleting %sRZ  s   No include dir %sR[  RV  s   jython-dev.jart   javalibs
   jython.jart   registryt   cachedirs   Python.frameworks   /Python(?:-32|-64)*$R   s   New %s executable in %st   cygwins   .exes    Executable actually exists in %ss   pythonw.exes   Also created pythonw.exes   Also created executable %si   s7   Not overwriting existing %s script %s (you must use %s)s   Also creating executable in %ss    MacOSX Python framework detecteds*   Resources/Python.app/Contents/MacOS/Pythons   .PythonRd  t   install_name_tools   -changes   @executable_path/../.PythonsU   Could not call install_name_tool -- you must have Apple's development tools installeds   %s.%sRR   s   "%s"s   -cs   import sys; print(sys.prefix)s"   Testing executable with %s %s "%s"RW   s-   ERROR: The executable %s could not be run: %sid   s+   ERROR: The executable %s is not functionings0   ERROR: It thinks sys.prefix is %r (should be %r)sB   ERROR: virtualenv is not compatible with this system or executables   Note: some Windows users have reported this error when they installed Python for "Only this user".  The problem may be resolvable if you install Python "For all users".  (See https://bugs.launchpad.net/virtualenv/+bug/352844)s   Got sys.prefix result: %rs   ~/.pydistutils.cfgsH   Please make sure you remove any previous custom paths from your %s file.(   s   jython-dev.jarRx  s
   jython.jar(G   RV   R  R  R   Ry   RL   RZ   Re  R  R{   t	   fix_lib64t   fix_local_schemeR	   Rw   R   R   R   R   R   RJ   R<   R|   R   R   t   REQUIRED_FILESR   Rv  t   siteR"  R8  Rn  R   t   SITE_PYRx   t   unlinkR^  t   is_winR_  R   RH   t   exec_prefixR   R?   R   R   R   t   expected_exeR-   R   RN   R/   R   RQ   t   version_infoR   RB  R#  R$  R9  RC  R   R>  t   errnot   EACCESR   R   R@  R?  t   normcaseR   t
   expanduser($   R3  RS  RT  RU  R  R  R  t   stdlib_dirst
   stdlib_dirR   t   bnR  t   site_filenamet   site_filename_dstt   site_dirt   site_packages_filenamet
   stdinc_dirt   exec_dirt   nameR   R   R  t   pythonwt   python_executablet   secondary_exet   py_executable_extt   original_pythont   virtual_libt   py_executable_versiont   pthR   RJ  t   proc_stdoutt   proc_stderrRK  t   pydistutils(    (    s.   /usr/lib/python2.7/dist-packages/virtualenv.pyRP    s`   
	


)*	&

		%


$1!(			
$&
	c      
   C   s  t  j d k s$ t rx t j d k rx i t d 6t d 6} t j j d  d k r t j j d  d k r t	 | d	 <q n! i t	 d	 6} t
 | d
 <t | d <t | d <t j j t j j |    } x | j   D] \ } } | j d | p d  } | j d | pd |  } | j d t j j |    } | j d |  } | j d t j j |   } t t j j | |  |  q Wd  S(   NR   R   s   activate.bats   deactivate.batt   OSt
   Windows_NTt   OSTYPER{  t   activates   activate.fishs   activate.cshs   activate_this.pyt   __VIRTUAL_PROMPT__R   t   __VIRTUAL_WINPROMPT__s   (%s)t   __VIRTUAL_ENV__t   __VIRTUAL_NAME__t   __BIN_NAME__(   RV   R   R   R	   R   t   ACTIVATE_BATt   DEACTIVATE_BATR   R   t   ACTIVATE_SHt   ACTIVATE_FISHt   ACTIVATE_CSHt   ACTIVATE_THISRw   R   R   t   itemsR8  R   R   (   R3  RU  R  t   filest   vnameR  R   (    (    s.   /usr/lib/python2.7/dist-packages/virtualenv.pyRR    s"    $

0


c         C   st   t  t j d |   } t |  t j j |   }  t t j j | d  t	  t t j j | d  t
 d t d  S(   Ni    s   __init__.pys   distutils.cfgR   (   Rn  t	   distutilst   __path__R{   R	   Rw   R   R   R   t   DISTUTILS_INITt   DISTUTILS_CFGR?   (   R3  t   distutils_path(    (    s.   /usr/lib/python2.7/dist-packages/virtualenv.pyRQ    s
    
c         C   s   y d d l  } Wn t k
 r# n\ X| j   d k r t j j |  d  } t j j |  s t j t j j |   |  q n  d S(   s   
    Platforms that use the "posix_local" install scheme (like Ubuntu with
    Python 2.7) need to be given an additional "local" location, sigh.
    iNt   posix_localt   local(	   t	   sysconfigR   t   _get_default_schemeR	   Rw   R   Rx   R   R   (   R3  R  t
   local_path(    (    s.   /usr/lib/python2.7/dist-packages/virtualenv.pyR~    s    c         C   s   g  t  j j   j   D]' } t | t  r d | k r | ^ q r t j d  t j	 j
 |   d t j d  k s t d |   t j	 j |   } t j	 j
 |  d k s t d |  t | t j	 j t j	 j |  d   n  d S(	   s   
    Some platforms (particularly Gentoo on x64) put things in lib64/pythonX.Y
    instead of lib/pythonX.Y.  If this is such a platform we'll just create a
    symlink so lib64 points to lib
    t   lib64s/   This system uses lib64; symlinking lib64 to libs   python%si   s   Unexpected python lib dir: %rR[  s   Unexpected parent dir: %rN(   R  R  t   get_config_varst   valuesRg   t
   basestringRy   RH   R	   Rw   R   RV   R   R_   R   R   R   (   RS  t   pt
   lib_parent(    (    s.   /usr/lib/python2.7/dist-packages/virtualenv.pyR}    s    '&

c         C   s   t  j j |   |  k r t  j j d d  j t  j  } xK | D]@ } t  j j t  j j | |    r@ t  j j | |   }  Pq@ q@ Wn  t  j j |   s t	 j
 d |  |  f  t d   n  t |   s t	 j
 d |  |  f  t d   n  |  S(   sZ   
    If the executable given isn't an absolute path, search $PATH for the interpreter
    t   PATHR   s3   The executable %s (from --python=%s) does not existi   s6   The executable %s (from --python=%s) is not executable(   R	   Rw   R   R   R   R   R   Rx   R   Ry   RQ   R&  t   is_executable(   t   exet   pathsRw   (    (    s.   /usr/lib/python2.7/dist-packages/virtualenv.pyR!    s    !!c         C   s   t  j |  t  j  S(   s   Checks a file is executable(   R	   R   t   X_OK(   R  (    (    s.   /usr/lib/python2.7/dist-packages/virtualenv.pyR  0  s    c         C   sk   t  |   \ }  } } } t j j | d  } t j j |  sS t j d |  n  t |   t |   d S(   s   
    Makes the already-existing environment use relative paths, and takes out
    the #!-based environment selection in scripts.
    s   activate_this.pysc   The environment doesn't have a file %s -- please re-run virtualenv on this environment to update itN(	   RO  R	   Rw   R   Rx   Ry   RQ   t   fixup_scriptst   fixup_pth_and_egg_link(   R3  RS  RT  RU  t   activate_this(    (    s.   /usr/lib/python2.7/dist-packages/virtualenv.pyR)  7  s    
s   python%sR  s   activate.bats   activate_this.pyc         C   s  d t  j j t  j j |    } d t j d  } d } t j d k rQ d } n d } t  j j |  |  } t |   \ }  } } } xet  j	 |  D]T} t  j j | |  } t  j j
 |  s q n  t | d  }	 |	 j   }
 |	 j   |
 s	t j d	 |  q n  |
 d
 j   j |  st  j j |  t k rNt j d |  q |
 d
 j   | k rxt j d |  q t j d | | f  q n  t j d |  | d | d g |
 d }
 t | d  }	 |	 j |
  |	 j   q Wd  S(   Ns   #!%s/bin/pythons   #!/usr/bin/env python%si   s   import os; activate_this=os.path.join(os.path.dirname(__file__), 'activate_this.py'); execfile(activate_this, dict(__file__=activate_this)); del os, activate_thisR   RX  RY  R   s   Script %s is an empty filei    s   Cannot make script %s relatives(   Script %s has already been made relativesP   Script %s cannot be made relative (it's not a normal script that starts with %s)s   Making script %s relatives   
i   R   (   R	   Rw   R  R   RV   R   R   R   RO  R   t   isfileR   t	   readlinesR   Ry   RN   R   R  R   t   OK_ABS_SCRIPTSRH   RJ   RL   t
   writelines(   R3  t   shebangt   new_shebangR  t
   bin_suffixRU  RS  RT  R   R   t   lines(    (    s.   /usr/lib/python2.7/dist-packages/virtualenv.pyR  I  s>    "	
	c         C   so  t  j j t  j j |    }  | d k r6 t j } n  x2| D]*} | sR d } n  t  j j |  sj q= n  t  j j t  j j |   } | j |   s t j	 d |  q= n  x t  j
 |  D] } t  j j | |  } | j d  rt  j | t  j  st j d |  qt |  n  | j d  r t  j | t  j  sVt j d |  qct |  q q Wq= Wd S(   s1   Makes .pth and .egg-link files use relative pathsRe   s.   Skipping system (non-environment) directory %ss   .pths#   Cannot write .pth file %s, skippings	   .egg-links(   Cannot write .egg-link file %s, skippingN(   R	   Rw   R  R   R=   RV   R|   R  Ry   RH   R   R   R"  R   R   RN   t   fixup_pth_filet   fixup_egg_link(   R3  t   sys_pathRw   R   (    (    s.   /usr/lib/python2.7/dist-packages/virtualenv.pyR  o  s,    	c      	   C   sF  g  } g  } t  |   } | j   } | j   x | D] } | j   } | s | j d  s | j d  s t j j |  | k r | j |  q5 t	 |  |  } | | k r t
 j d | | |  f  n  | j |  q5 W| | k r t
 j d |   d  St
 j d |   t  |  d  } | j d j |  d  | j   d  S(   Nt   #s   import s   Rewriting path %s as %s (in %s)s   No changes to .pth file %ss%   Making paths in .pth file %s relativet   ws   
(   R   R  R   R   R  R	   Rw   R   R   t   make_relative_pathRy   RH   RJ   RL   RS   R   (   R   R  t
   prev_linesR   R   t	   new_value(    (    s.   /usr/lib/python2.7/dist-packages/virtualenv.pyR    s*    
%c         C   s   t  |   } | j   j   } | j   t j j |  | k rU t j d |   d  St	 |  |  } t j
 d | |  | f  t  |  d  } | j |  | j   d  S(   Ns   Link in %s already relatives   Rewriting link %s in %s as %sR  (   R   R   R   R   R	   Rw   R   Ry   RH   R  RL   RS   (   R   R   t   linkt   new_link(    (    s.   /usr/lib/python2.7/dist-packages/virtualenv.pyR    s    
c         C   sN  t  j j |   }  | s? t  j j |  } t  j j |  } n  t  j j t  j j |   } t  j j t  j j |    }  | j t  j j  j t  j j  } |  j t  j j  j t  j j  } x> | r| r| d | d k r| j	 d  | j	 d  q Wd g t
 |  | } | s1| j |  n  | s;d St  j j j |  S(   s*  
    Make a filename relative, where the filename is dest, and it is
    being referred to from the filename source.

        >>> make_relative_path('/usr/share/something/a-file.pth',
        ...                    '/usr/share/another-place/src/Directory')
        '../another-place/src/Directory'
        >>> make_relative_path('/usr/share/something/a-file.pth',
        ...                    '/home/user/src/Directory')
        '../../../home/user/src/Directory'
        >>> make_relative_path('/usr/share/a-file.pth', '/usr/share/')
        './'
    i    s   ..s   ./(   R	   Rw   R   R   t   normpathR   R   Rh  R   R;  Rl   R   R   (   R   R   t   dest_is_directoryt   dest_filenamet
   dest_partst   source_partst
   full_parts(    (    s.   /usr/lib/python2.7/dist-packages/virtualenv.pyR    s"    $$#c         C   ss   t  } | j d  r" | d  } n  t | d  } | j   } | j   d | } d | d | } | j d |   S(   s\  
    Creates a bootstrap script, which is like this script but with
    extend_parser, adjust_options, and after_install hooks.

    This returns a string that (written to disk of course) can be used
    as a bootstrap script with your own customizations.  The script
    will be the standard virtualenv.py script, with your extra text
    added (your extra text should be Python code).

    If you include these functions, they will be called:

    ``extend_parser(optparse_parser)``:
        You can add or remove options from the parser here.

    ``adjust_options(options, args)``:
        You can change options here, or change the args (if you accept
        different kinds of arguments, be sure you modify ``args`` so it is
        only ``[DEST_DIR]``).

    ``after_install(options, home_dir)``:

        After everything is installed, this function is called.  This
        is probably the function you are most likely to use.  An
        example would be::

            def after_install(options, home_dir):
                subprocess.call([join(home_dir, 'bin', 'easy_install'),
                                 'MyPackage'])
                subprocess.call([join(home_dir, 'bin', 'my-package-script'),
                                 'setup', home_dir])

        This example immediately installs a package, and runs a setup
        script from that package.

    If you provide something like ``python_version='2.4'`` then the
    script will start with ``#!/usr/bin/env python2.4`` instead of
    ``#!/usr/bin/env python``.  You can use this when the script must
    be run with a particular Python version.
    s   .pyciR   s   python%ss   #!/usr/bin/env %s
s#   ## WARNING: This file is generated
s
   ##EXTEND##(   R   R"  R   R   R   R8  (   t
   extra_textt   python_versionR   R   R   t   py_exe(    (    s.   /usr/lib/python2.7/dist-packages/virtualenv.pyt   create_bootstrap_script  s    (

c         C   s.   t  j |  j d   } t j |  j d  S(   Nt   asciis   utf-8(   R0   t	   b64decodeR   R   t
   decompressR@  (   t   st   b(    (    s.   /usr/lib/python2.7/dist-packages/virtualenv.pyt   convert  s    s(  
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
s  
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
BDaonX65d/fwEjNqlDjLVIvM9X+XVxF7
s  
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
s  
eJytVU1v4jAQPW9+xTT0ANVS1GsrDlRFAqmFqmG72m0rY5IJsRRslDiktNr/vuMQ8tFQpNU2B4I9
H36eeW/SglkgYvBFiLBKYg0LhCRGD1KhA7BjlUQuwkLIHne12HCNNpz5kVrBgsfBmdWCrUrA5VIq
DVEiQWjwRISuDreW5eE+CtodeLeAnhZEGKMGFXqAciMiJVcoNWx4JPgixDjzEj48QVeCfcqmtzfs
cfww+zG4ZfeD2ciGF7gCHaDMPM1jtvuHXAsPfF2rSGeOxV4iDY5GUGb3xVEYv2aj6WQ0vRseAlMY
G5DKsAawwnQUXt2LQOYlzZoYByqhonqoqfxZf4BLD97i4DukgXADCPgGgdOLTK5arYxZB1xnrc9T
EQFcHoZEAa1gSQioo/TPV5FZrDlxJA+NzwF+Ek1UonOzFnKZp6k5mgLBqSkuuAGXS4whJb5xz/xs
wXCHjiVerAk5eh9Kfz1wqOldtVv9dkbscfjgjKeTA8XPrtaNauX5rInOxaHuOReNtpFjo1/OxdFG
5eY9hJ3L3jqcPJbATggXAemDLZX0MNZRYjSDH7C1wMHQh73DyYfTu8a0F9v+6D8W6XNnF1GEIXW/
JrSKPOtnW1YFat9mrLJkzLbyIlTvYzV0RGXcaTBfVLx7jF2PJ2wyuBsydpm7VSVa4C4Zb6pFO2TR
huypCEPwuQjNftUrNl6GsYZzuFrrLdC9iJjQ3omAPBbcI2lsU77tUD43kw1NPZhTrnZWzuQKLomx
Rd4OXM1ByExVVkmoTwfBJ7Lt10Iq1Kgo23Bmd8Ib1KrGbsbO4Pp2yO4fpnf3s6MnZiwuiJuls1/L
Pu4yUCvhpA+vZaJvWWDTr0yFYYyVnHMqCEq+QniuYX225xmnzRENjbXACF3wkCYNVZ1mBwxoR9Iw
WAo3/36oSOTfgjwEEQKt15e9Xpqm52+oaXxszmnE9GLl65RH2OMmS6+u5acKxDmlPgj2eT5/gQOX
LLK0j1y0Uwbmn438VZkVpqlfNKa/YET/53j+99G8H8tUhr9ZSXs2
s  
eJydVm1v4jgQ/s6vmA1wBxUE7X2stJVYlVWR2lK13d6d9laRk0yIr8HmbIe0++tvnIQQB9pbXT5A
Ys/LM55nZtyHx5RrSHiGsMm1gRAh1xhDwU0Kng8hFzMWGb5jBv2E69SDs0TJDdj3MxilxmzPZzP7
pVPMMl+q9bjXh1eZQ8SEkAZULoAbiLnCyGSvvV6SC7IoBcS4Nw0wjcFbvJDcjiuTswzFDpiIQaHJ
lQAjQUi1YRmUboC2uZJig8J4PaCnT5IaDcgsbm/CjinOwgx1KcUTMEhhTgV4g2B1fRk8Le8fv86v
g7v545UHpZB9rKnp+gXsMhxLunIIpwVQxP/l9c/Hq9Xt1epm4R27bva6AJqN92G4YhbMG2i+LB+u
grv71c3dY7B6WtzfLy9bePbp0taDTXSwJQJszUnnp0y57mvpPcrF7ZODyhswtd59+/jdgw+fwBNS
xLSscksUPIDqwwNmCez3PpxGeyBYg6HE0YdcWBxcKczYzuVJi5Wu915vn5oWePCCoPUZBN5B7IgV
MCi54ZDLG7TUZ0HweXkb3M5vFmSpFm/gthhBx0UrveoPpv9AJ9unIbQYdUoe21bKg2q48sPFGVwu
H+afrxd1qvclaNlRFyh1EQ2sSccEuNAGWQwysfVpz1tPajUqbqJUnEcIJkWo6OXDaodK8ZiLdbmM
L1wb+9H0D+pcyPSrX5u5kgWSygRYXCnJUi/KKcuU4cqsAyTKZBiissLc7NFwizvjxtieKBVCIdWz
fzilzPaYyljZN0cGN1v7NnaIPNCGmVy3GKuJaQ6iVjE1Qfm+36hglErwmnAD8hu0dDy4uICBA8ZV
pQr/q/+O0KFW2kjelu9Dgb9SDBsWV4F4x5CswgS0zBVlk5tDMP5bVtUGpslbm81Lu2sdKq7uNMGh
MVQ4fy9xhogC1lS5guhISa0DlBWv0O8odT6/LP+4WZzDV6FzIkEqC0uolGZSZoMnlpxplmD2euaT
O4hkTpPnbztDccey0bhjDaBIqaWQa0uwEtQEwtyU56i4fq54F9IE3ORR6mKriODM4XOYZwaVYLYz
7SPbKkz4i7VkB6/Ot1upDE3znNqYKpM8raa0Bx8vfvntJ32UENsM4aI6gJL+jJwhxhh3jVIDOcpi
m0r2hmEtS8XXXNBk71QCDXTBNhhPiHX2LtHkrVIlhoEshH/EZgdq53Eirqs5iFKMnkOmqZTtr3Xq
djvPTWZT4S3NT5aVLgurMPUWI07BRVYqkQrmtCKohNY8qu9EdACoT6ki0a66XxVF4f9AQ3W38yO5
mWmZmIIpnDFrbXakvKWeZhLwhvrbUH8fahhqD0YUcBDJjEBMQwiznE4y5QbHrbhHBOnUAYzb2tVN
jJa65e+eE2Ya30E2GurxUP8ssA6e/wOnvo3V78d3vTcvMB3n7l3iX1JXWqk=
s  
eJx9U11vmzAUffevOCVRu+UB9pws29Kl0iq1aVWllaZlcgxciiViItsQdb9+xiQp+dh4QOB7Pu49
XHqY59IgkwVhVRmLmFAZSrGRNkdgykonhFiqSCRW1sJSmJg8wCDT5QrucRCyHn6WFRKhVGmhKwVp
kUpNiS3emup3TY6XIn7DVNQyJUwlrgthJD6n/iCNv72uhCzCpFx9CRkThRQGKe08cWXJ9db/yh/u
pvzl9mn+PLnjj5P5D1yM8QmXlzBkSdXwZ0H/BBc0mEo5FE5qI2jKhclHOOvy9HD/OO/6YO1mX9vx
sY0H/tPIV0dtqel0V7iZvWyNg8XFcBA0ToEqVeqOdNUEQFvN41SumAv32VtJrakQNSmLWmgp4oJM
yDoBHgoydtoEAs47r5wHHnUal5vbJ8oOI+9wI86vb2d8Nrm/4Xy4RZ8R85E4uTZPB5EZPnTaaAGu
E59J8BE2J8XgrkbLeXMlVoQxznEYFYY8uFFdxsKQRx90Giwx9vSueHP1YNaUSFG4vTaErNSYuBOF
lXiVyXa9Sy3JdClEyK1dD6Nos9mEf8iKlOpmqSNTZnYjNEWiUYn2pKNB3ttcLJ3HmYYXy6Un76f7
r8rRsC1TpTJj7f19m5sUf/V3Ir+x/yjtLu8KjLX/CmN/AcVGUUo=
s)  
eJyFUkEKgzAQvAfyhz0YaL9QEWpRqlSjWGspFPZQTevFHOr/adQaU1GaUzI7Mzu7ZF89XhKkEJS8
qxaKMMsvboQ+LxxE44VICSW1gEa2UFaibqoS0iyJ0xw2lIA6nX5AHCu1jpRsv5KRjknkac9VLVug
sX9mtzxIeJDE/mg4OGp47qoLo3NHX2jsMB3AiDht5hryAUOEifoTdCXbSh7V0My2NMq/Xbh5MEjU
ZT63gpgNT9lKOJ/CtHsvT99re3pX303kydn4HeyOeAg5cjf2EW1D6HOPkg9NGKhu
s   
eJxzSE3OyFfIT0vj4spMU0hJTcvMS01RiPf3cYkP8wwKCXX0iQ8I8vcNCFHQ4FIAguLUEgWIgK0q
FlWqXJpcICVYpGzx2BAZ4uHv5+Hv6wq1BWINXBTdKriEKkI1DhW2QAfhttcxxANiFZCBbglQSJUL
i2dASrm4rFz9XLgAwJNbyQ==
sg  
eJytV92L4zYQf/dfMU0ottuse7RvC6FQrg8Lxz2Ugz4si9HacqKuIxlJ2ST313dG8odkO9d7aGBB
luZLv/nNjFacOqUtKJMIvzK3cXlhWgp5MDBsqK5SNYftsBAGpLLA4F1oe2Ytl+9wUvW55TswCi4c
KibhbFDSglXQCFmDPXIwtm7FawLRbwtPzg2T9gf4gupKv4GS0N262w7V0NvpbCy8cvTo3eAus6C5
ETU3ICQZX1hFTw/dzR6V/AW1RCN4/XAtbsVXqIXmlVX6liS4lOzEYY9QFB2zx6LfoSNjz1a0pqT9
QOIfJWQ2E888NEVZNqLlZZnvIB0NpHkimlFdKn2iRRY7yGG/CCJb6Iz280d34SFXBS2yEYPNF0Q7
yM7oCjpWvbEDQmnhRwOs6zjThpKE8HogwRAgraqYFZgGZvzmzVh+mgz9vskT3hruwyjdFcqyENJw
bbMPO5jdzonxK68QKT7B57CMRRG5shRSWDTX3dI8LzRndZbnSWL1zfvriUmK4TcGWSnZiEPCrxXv
bM+sP7VW2is2WgWXCO3sAu3Rzysz3FiNCA8WPyM4gb1JAAmCiyTZbhFjWx3h9SzauuRXC9MFoVbc
yNTCm1QXOOIfIn/g1kGMhDUBN72hI5XCBQtIXQw8UEEdma6Jaz4vJIJ51Orc15hzzmu6TdFp3ogr
Aof0c98tsw1SiaiWotHffk3XYCkqdToxWRfTFXqgpg2khcLluOHMVC0zZhLKIomesfSreUNNgbXi
Ky9VRzwzkBneNoGQyyvGjbsFQqOZvpWIjqH281lJ/jireFgR3cPzSyTGWzQpDNIU+03Fs4XKLkhp
/n0uFnuF6VphB44b3uWRneSbBoMSioqE8oeF0JY+qTvYfEK+bPLYdoR4McfYQ7wMZj39q0kfP8q+
FfsymO0GzNlPh644Jje06ulqHpOEQqdJUfoidI2O4CWx4qOglLye6RrFQirpCRXvhoRqXH3sYdVJ
AItvc+VUsLO2v2hVAWrNIfVGtkG351cUMNncbh/WdowtSPtCdkzYFv6mwYc9o2Jt68ud6wectBr8
hYAulPSlgzH44YbV3ikjrulEaNJxt+/H3wZ7bXSXje/YY4tfVVrVmUstaDwwOBLMg6iduDB0lMVC
UyzYx7Ab4kjCqdViEJmDcdk/SKbgsjYXgfMznUWcrtS4z4fmJ/XOM1LPk/iIpqass5XwNbdnLb1Y
8h3ERXSWZI6rZJxKs1LBqVH65w0Oy4ra0CBYxEeuOMbDmV5GI6E0Ha/wgVTtkX0+OXvqsD02CKLf
XHbeft85D7tTCMYy2Njp4DJP7gWJr6paVWXZ1+/6YXLv/iE0M90FktiI7yFJD9e7SOLhEkkaMTUO
azq9i2woBNR0/0eoF1HFMf0H8ChxH/jgcB34GZIz3Qn4/vid+VEamQrOVqAPTrOfmD4MPdVh09tb
8dLLjvh/61lEP4yW5vJaH4vHcevG8agXvzPGoOhhXNncpTr99PTHx6e/UvffFLaxUSjuSeP286Dw
gtEMcW1xKr/he4/6IQ6FUXP+0gkioHY5iwC9Eyx3HKO7af0zPPe+XyLn7fAY78k4aiR387bCr5XT
5C4rFgwLGfMvJuAMew==
s   
eJxNj00KwkAMhfc9xYNuxe4Ft57AjYiUtDO1wXSmNJnK3N5pdSEEAu8nH6lxHVlRhtDHMPATA4uH
xJ4EFmGbvfJiicSHFRzUSISMY6hq3GLCRLnIvSTnEefN0FIjw5tF0Hkk9Q5dRunBsVoyFi24aaLg
9FDOlL0FPGluf4QjcInLlxd6f6rqkgPu/5nHLg0cXCscXoozRrP51DRT3j9QNl99AP53T2Q=
s  
eJyNUlGL2zAMfvevEBlHEujSsXsL9GGDvW1jD3sZpQQ3Ua7aJXawnbT595Ocpe0dO5ghseVP+vRJ
VpIkn2cYPZknwAvWLXWYhRP5Sk4baKgOWRWNqtpdgTyH2Y5wpq5Tug406YAgKEzkwqg7NBPwR86a
Hk0olPopaK0NHJHzYQPnE5rI0o8+yBUwiBfyQcT8mMPJGiAT0A0O+b8BY4MKJ7zPcSSzHaKrSpJE
qeDmUgGvVbPCS41DgO+6xy/OWbfAThMn/OQ9ukDWRCSLiKzk1yrLjWapq6NnvHUoHXQ4bYPdrsVX
4lQMc/q6ZW975nmSK+oH6wL42a9H65U6aha342Mh0UVDzrD87C1bH73s16R5zsStkBZDp0NrXQ+7
HaRnMo8f06UBnljKoOtn/YT+LtdvSyaT/BtIv9KR60nF9f3qmuYKO4//T9ItJMsjPfgUHqKwCZ3n
xu/Lx8M/UvCLTxW7VULHxB1PRRbrYfvWNY5S8it008jOjcleaMqVBDnUXcWULV2YK9JEQ92OfC96
1Tv4ZicZZZ7GpuEpZbbeQ7DxquVx5hdqoyFSSmXwfC90f1Dc7hjFs/tK99I0fpkI8zSLy4tSy+sI
3vMWehjQNJmE5VePlZbL61nzX3S93ZcfDqznnkb9AZ3GWJU=
t   __main__(   i   i   (e   Rr   R  R0   RV   R	   R  R   R-   Rs   R(   R   R  t   distutils.sysconfigR  R#  R   R  R>  R   t   sett	   NameErrorR$   R    R  t   strRw   R   R_  R   R  R   RZ   R^  R  t   getattrR   R  Rp  R  R+  t   minverR   t   objectR:   Rk   RW   Ry   R{   R   Ra   R   R   R   R   R   R?   R=   R   R   R   R   t   compilet   IR   R   R   R4  R   R*  RO  Rn  Rv  RP  RR  RQ  R~  R}  R!  R  R)  R   R  R  R  R  R  R  R  R  R  R   R   R  R  R  R  R  R  R  R  Rp   (    (    (    s.   /usr/lib/python2.7/dist-packages/virtualenv.pyt   <module>   s"  
			.)						{	*	D	%										&		&6		D	P			
					
	