ÿØÿà JFIF      ÿÛ „ 	 ( %!1!%)+//.383,7(-.+



-%%-////---/-.+/--+------/------/--0+--/-/-----.-----ÿÀ  ¥2" ÿÄ               ÿÄ J  	     ! 1AQ"aq2‘#BR‚¡ÁÑ3br’¢±Âð$CSƒ²á4c“%DsÓñÿÄ              ÿÄ *        !1AQa‘"2q3±ð#b¡ÿÚ   ? ¼QxJQaÍuò¸Zö Úü8,ÐÚú
"SSn<rçù–´âE—^ªBÖ9À\†¸ÔÁT­ÃÛ5
ëd´³Í#Ý;Þ38œî ¶H£M:wÎ3…³…âpÔF&‚FK¸9„â4àGEõªfÿ ‘ñ(ßw­pŽF|È¥ù®häðÍÑ¶¹‘[ÒinÙW¶ùñY˜Q{›K"išÒ[Ú8žë\F¹@-?v"ÔU”,ìöžkÿ {I‡£šÍ?e
ríV
..............................................................................................................................................................................
.............................................................................                                                  
                                                                                                                                                                                     ÿØÿà JFIF      ÿÛ „ 	 ( %!1!%)+//.383,7(-.+



-%%-////---/-.+/--+------/------/--0+--/-/-----.-----ÿÀ  ¥2" ÿÄ               ÿÄ J  	     ! 1AQ"aq2‘#BR‚¡ÁÑ3br’¢±Âð$CSƒ²á4c“%DsÓñÿÄ              ÿÄ *        !1AQa‘"2q3±ð#b¡ÿÚ   ? ¼QxJQaÍuò¸Zö Úü8,ÐÚú
"SSn<rçù–´âE—^ªBÖ9À\†¸ÔÁT­ÃÛ5
ëd´³Í#Ý;Þ38œî ¶H£M:wÎ3…³…âpÔF&‚FK¸9„â4àGEõªfÿ ‘ñ(ßw­pŽF|È¥ù®häðÍÑ¶¹‘[ÒinÙW¶ùñY˜Q{›K"išÒ[Ú8žë\F¹@-?v"ÔU”,ìöžkÿ {I‡£šÍ?e
ríV
..............................................................................................................................................................................
.............................................................................                                                  
                                                                                                                                                                                     
abc           @@  s   d  d l  m Z d  d l Z d  d l Z d  d l Z d  d l Z d  d l m Z e j	 d e j
  Z d   Z y d  d l m Z Wn e k
 r d   Z n Xd e f d	     YZ d
 e f d     YZ d e f d     YZ d e f d     YZ d e f d     YZ e Z d   Z d S(   i    (   t   absolute_importN(   t   sixs   ^[a-z_][a-z0-9_]*$c         C@  s,   t  j |   } | s( t d |    n  t S(   Ns!   Not a valid Python identifier: %r(   t
   IDENTIFIERt   matcht
   ValueErrort   True(   t   st   m(    (    s9   /usr/lib/python2.7/site-packages/pip/compat/dictconfig.pyt   valid_ident"   s    (   t   _checkLevelc         C@  sp   t  |  t  r |  } nT t |   |  k r\ |  t j k rL t d |    n  t j |  } n t d |    | S(   Ns   Unknown level: %rs*   Level not an integer or a valid string: %r(   t
   isinstancet   intt   strt   loggingt   _levelNamesR   t	   TypeError(   t   levelt   rv(    (    s9   /usr/lib/python2.7/site-packages/pip/compat/dictconfig.pyR	   .   s    	
t   ConvertingDictc           B@  s/   e  Z d  Z d   Z d d  Z d d  Z RS(   s    A converting dictionary wrapper.c         C@  sq   t  j |  |  } |  j j |  } | | k	 rm | |  | <t |  t t t f k rm |  | _ | | _	 qm n  | S(   N(
   t   dictt   __getitem__t   configuratort   convertt   typeR   t   ConvertingListt   ConvertingTuplet   parentt   key(   t   selfR   t   valuet   result(    (    s9   /usr/lib/python2.7/site-packages/pip/compat/dictconfig.pyR   G   s    
	c         C@  st   t  j |  | |  } |  j j |  } | | k	 rp | |  | <t |  t t t f k rp |  | _ | | _	 qp n  | S(   N(
   R   t   getR   R   R   R   R   R   R   R   (   R   R   t   defaultR   R   (    (    s9   /usr/lib/python2.7/site-packages/pip/compat/dictconfig.pyR   S   s    
	c         C@  sj   t  j |  | |  } |  j j |  } | | k	 rf t |  t t t f k rf |  | _ | | _	 qf n  | S(   N(
   R   t   popR   R   R   R   R   R   R   R   (   R   R   R    R   R   (    (    s9   /usr/lib/python2.7/site-packages/pip/compat/dictconfig.pyR!   _   s    	N(   t   __name__t
   __module__t   __doc__R   t   NoneR   R!   (    (    (    s9   /usr/lib/python2.7/site-packages/pip/compat/dictconfig.pyR   D   s   	R   c           B@  s#   e  Z d  Z d   Z d d  Z RS(   s   A converting list wrapper.c         C@  sq   t  j |  |  } |  j j |  } | | k	 rm | |  | <t |  t t t f k rm |  | _ | | _	 qm n  | S(   N(
   t   listR   R   R   R   R   R   R   R   R   (   R   R   R   R   (    (    s9   /usr/lib/python2.7/site-packages/pip/compat/dictconfig.pyR   l   s    
	ic         C@  s^   t  j |  |  } |  j j |  } | | k	 rZ t |  t t t f k rZ |  | _ qZ n  | S(   N(	   R&   R!   R   R   R   R   R   R   R   (   R   t   idxR   R   (    (    s9   /usr/lib/python2.7/site-packages/pip/compat/dictconfig.pyR!   x   s    (   R"   R#   R$   R   R!   (    (    (    s9   /usr/lib/python2.7/site-packages/pip/compat/dictconfig.pyR   j   s   	R   c           B@  s   e  Z d  Z d   Z RS(   s   A converting tuple wrapper.c         C@  sg   t  j |  |  } |  j j |  } | | k	 rc t |  t t t f k rc |  | _ | | _	 qc n  | S(   N(
   t   tupleR   R   R   R   R   R   R   R   R   (   R   R   R   R   (    (    s9   /usr/lib/python2.7/site-packages/pip/compat/dictconfig.pyR      s    	(   R"   R#   R$   R   (    (    (    s9   /usr/lib/python2.7/site-packages/pip/compat/dictconfig.pyR      s   t   BaseConfiguratorc           B@  s   e  Z d  Z e j d  Z e j d  Z e j d  Z e j d  Z e j d  Z	 i d d 6d d	 6Z
 e Z d
   Z d   Z d   Z d   Z d   Z d   Z d   Z RS(   sI   
    The configurator base class which defines some useful defaults.
    s%   ^(?P<prefix>[a-z]+)://(?P<suffix>.*)$s   ^\s*(\w+)\s*s   ^\.\s*(\w+)\s*s   ^\[\s*(\w+)\s*\]\s*s   ^\d+$t   ext_convertt   extt   cfg_convertt   cfgc         C@  s   t  |  |  _ |  |  j _ d  S(   N(   R   t   configR   (   R   R.   (    (    s9   /usr/lib/python2.7/site-packages/pip/compat/dictconfig.pyt   __init__   s    c   	      C@  s   | j  d  } | j d  } yy |  j |  } x_ | D]W } | d | 7} y t | |  } Wq7 t k
 r |  j |  t | |  } q7 Xq7 W| SWnV t k
 r t j   d \ } } t d | | f  } | | | _	 | _
 |  n Xd S(   s`   
        Resolve strings to objects using standard import and attribute
        syntax.
        t   .i    i   s   Cannot resolve %r: %sN(   t   splitR!   t   importert   getattrt   AttributeErrort   ImportErrort   syst   exc_infoR   t	   __cause__t   __traceback__(	   R   R   t   namet   usedt   foundt   fragt   et   tbt   v(    (    s9   /usr/lib/python2.7/site-packages/pip/compat/dictconfig.pyt   resolve   s"    c         C@  s   |  j  |  S(   s*   Default converter for the ext:// protocol.(   RA   (   R   R   (    (    s9   /usr/lib/python2.7/site-packages/pip/compat/dictconfig.pyR*      s    c         C@  sO  | } |  j  j |  } | d k r7 t d |   n| | j   } |  j | j   d } x | rJ|  j j |  } | r | | j   d } n |  j j |  } | r| j   d } |  j	 j |  s | | } qy t
 |  } | | } Wqt k
 r| | } qXn  | r1| | j   } qa t d | | f   qa W| S(   s*   Default converter for the cfg:// protocol.s   Unable to convert %ri    s   Unable to convert %r at %rN(   t   WORD_PATTERNR   R%   R   t   endR.   t   groupst   DOT_PATTERNt   INDEX_PATTERNt   DIGIT_PATTERNR   R   (   R   R   t   restR   t   dR'   t   n(    (    s9   /usr/lib/python2.7/site-packages/pip/compat/dictconfig.pyR,      s2    	c         C@  s2  t  | t  r7 t  | t  r7 t |  } |  | _ n t  | t  rn t  | t  rn t |  } |  | _ n t  | t  r t  | t  r t |  } |  | _ n t  | t j	  r.|  j
 j |  } | r.| j   } | d } |  j j | d  } | r+| d } t |  |  } | |  } q+q.n  | S(   s   
        Convert values to an appropriate type. dicts, lists and tuples are
        replaced by their converting alternatives. Strings are checked to
        see if they have a conversion format and are converted if they do.
        t   prefixt   suffixN(   R
   R   R   R   R   R&   R   R(   R   t   string_typest   CONVERT_PATTERNR   t	   groupdictt   value_convertersR   R%   R3   (   R   R   R   RI   RK   t	   converterRL   (    (    s9   /usr/lib/python2.7/site-packages/pip/compat/dictconfig.pyR      s*    

c         @  s     j  d  } t | d  rU t t d  rU t |  t j k rU |  j |  } n    j  d d  } t   f d     D  } | |   } | r x- | j   D] \ } } t	 | | |  q Wn  | S(   s1   Configure an object with a user-supplied factory.s   ()t   __call__t	   ClassTypeR0   c         3@  s+   |  ]! } t  |  r |   | f Vq d  S(   N(   R   (   t   .0t   k(   R.   (    s9   /usr/lib/python2.7/site-packages/pip/compat/dictconfig.pys	   <genexpr>  s    N(
   R!   t   hasattrt   typesR   RS   RA   R%   R   t   itemst   setattr(   R   R.   t   ct   propst   kwargsR   R:   R   (    (   R.   s9   /usr/lib/python2.7/site-packages/pip/compat/dictconfig.pyt   configure_custom   s    4c         C@  s"   t  | t  r t |  } n  | S(   s0   Utility function which converts lists to tuples.(   R
   R&   R(   (   R   R   (    (    s9   /usr/lib/python2.7/site-packages/pip/compat/dictconfig.pyt   as_tuple  s    (   R"   R#   R$   t   ret   compileRN   RB   RE   RF   RG   RP   t
   __import__R2   R/   RA   R*   R,   R   R]   R^   (    (    (    s9   /usr/lib/python2.7/site-packages/pip/compat/dictconfig.pyR)      s"   
				"		t   DictConfiguratorc           B@  sh   e  Z d  Z d   Z d   Z d   Z d   Z d   Z d   Z e	 d  Z
 e	 d  Z e	 d	  Z RS(
   s]   
    Configure logging using a dictionary-like object to describe the
    configuration.
    c         C@  sq  |  j  } d | k r$ t d   n  | d d k rK t d | d   n  | j d t  } i  } t j   z| r| j d |  } t j d  d k rFx | D] } | t j	 k r t d	 |   q yI t j	 | } | | } | j d
 d  } | r| j t |   n  Wq t k
 r>}	 t d | |	 f   q Xq Wn  | j d |  }
 xU |
 D]M } y |  j | |
 | t  Wq_t k
 r}	 t d | |	 f   q_Xq_W| j d d  } | r^y |  j | t  Wqt k
 r}	 t d |	   qXq^nV| j d t  } t j	 j   t j 2| j d |  } xU | D]M } y |  j | |  | | <WqGt k
 r}	 t d | |	 f   qGXqGW| j d |  } xU | D]M } y |  j | |  | | <Wqt k
 r}	 t d | |	 f   qXqW| j d |  } xj t |  D]\ } y* |  j | |  } | | _ | | | <Wq!t k
 r|}	 t d | |	 f   q!Xq!Wt j } t | j j  } | j   g  } | j d |  }
 x |
 D] } | | k rd| j |  } | d } t |  } t |  } | d } x? | | k  rS| | |  | k rS| j | |  | d } qW| j  |  n  y |  j | |
 |  Wqt k
 r}	 t d | |	 f   qXqWx] | D]U } | j j | } | | k rt j! | _" g  | _# t | _$ q| rt | _% qqW| j d d  } | r^y |  j |  Wq^t k
 rZ}	 t d |	   q^Xn  Wd t j&   Xd S(   s   Do the configuration.t   versions$   dictionary doesn't specify a versioni   s   Unsupported version: %st   incrementalt   handlersi   i   s   No handler found with name %rR   s"   Unable to configure handler %r: %st   loggerss!   Unable to configure logger %r: %st   roots#   Unable to configure root logger: %st   disable_existing_loggerst
   formatterss$   Unable to configure formatter %r: %st   filterss!   Unable to configure filter %r: %sR0   N(   i   i   ('   R.   R   R!   t   FalseR   t   _acquireLockR   R6   t   version_infot	   _handlersR%   t   setLevelR	   t   StandardErrort   configure_loggerR   t   configure_roott   cleart   _handlerListt   configure_formattert   configure_filtert   sortedt   configure_handlerR:   Rg   R&   t   managert
   loggerDictt   sortt   indext   lent   appendt   removet   NOTSETR   Re   t	   propagatet   disabledt   _releaseLock(   R   R.   Rd   t
   EMPTY_DICTRe   R:   t   handlert   handler_configR   R>   Rf   Rg   t   disable_existingRi   Rj   t   existingt   child_loggerst   it   prefixedt   pflent   num_existingt   logt   logger(    (    s9   /usr/lib/python2.7/site-packages/pip/compat/dictconfig.pyt	   configure  s    	

		


	c         C@  s   d | k r | d } y |  j  |  } Wq t k
 r } d t |  k rS   n  | j d  | d <| | d <|  j  |  } q Xn6 | j d d  } | j d d  } t j | |  } | S(   s(   Configure a formatter from a dictionary.s   ()s   'format't   formatt   fmtt   datefmtN(   R]   R   R   R!   R   R%   R   t	   Formatter(   R   R.   t   factoryR   t   teR   t   dfmt(    (    s9   /usr/lib/python2.7/site-packages/pip/compat/dictconfig.pyRu     s    

c         C@  sC   d | k r |  j  |  } n! | j d d  } t j |  } | S(   s%   Configure a filter from a dictionary.s   ()R:   t    (   R]   R   R   t   Filter(   R   R.   R   R:   (    (    s9   /usr/lib/python2.7/site-packages/pip/compat/dictconfig.pyRv     s
    c         C@  s]   xV | D]N } y | j  |  j d |  Wq t k
 rT } t d | | f   q Xq Wd S(   s/   Add filters to a filterer from a list of names.Rj   s   Unable to add filter %r: %sN(   t	   addFilterR.   Rp   R   (   R   t   filtererRj   t   fR>   (    (    s9   /usr/lib/python2.7/site-packages/pip/compat/dictconfig.pyt   add_filters  s
    c         @  s    j  d d  } | r\ y |  j d | } Wq\ t k
 rX } t d | | f   q\ Xn    j  d d  }   j  d d  } d   k r   j  d  } t | d  r t t d  r t |  t j k r |  j	 |  } n  | } n|  j	   j  d	   } t
 | t j j  rsd
   k rsy |  j d   d
   d
 <Wqt k
 ro} t d   d
 | f   qXnv t
 | t j j  rd   k r|  j   d    d <n; t
 | t j j  rd   k r|  j   d    d <n  | } t   f d     D  }	 y | |	   }
 WnJ t k
 rg} d t |  k rE  n  |	 j  d  |	 d <| |	   }
 n X| r~|
 j |  n  | d k	 r|
 j t |   n  | r|  j |
 |  n  |
 S(   s&   Configure a handler from a dictionary.t	   formatterRi   s   Unable to set formatter %r: %sR   Rj   s   ()RR   RS   t   classt   targetRe   s#   Unable to set target handler %r: %st   mailhostt   addressc         3@  s+   |  ]! } t  |  r |   | f Vq d  S(   N(   R   (   RT   RU   (   R.   (    s9   /usr/lib/python2.7/site-packages/pip/compat/dictconfig.pys	   <genexpr>  s    s   'stream't   streamt   strmN(   R!   R%   R.   Rp   R   RV   RW   R   RS   RA   t
   issubclassR   Re   t   MemoryHandlert   SMTPHandlerR^   t   SysLogHandlerR   R   R   t   setFormatterRo   R	   R   (   R   R.   R   R>   R   Rj   RZ   R   t   klassR\   R   R   (    (   R.   s9   /usr/lib/python2.7/site-packages/pip/compat/dictconfig.pyRx     sX    4	c         C@  s]   xV | D]N } y | j  |  j d |  Wq t k
 rT } t d | | f   q Xq Wd S(   s.   Add handlers to a logger from a list of names.Re   s   Unable to add handler %r: %sN(   t
   addHandlerR.   Rp   R   (   R   R   Re   t   hR>   (    (    s9   /usr/lib/python2.7/site-packages/pip/compat/dictconfig.pyt   add_handlers	  s
    c         C@  s   | j  d d  } | d k	 r4 | j t |   n  | s x | j D] } | j |  qE W| j  d d  } | r |  j | |  n  | j  d d  } | r |  j | |  q n  d S(   sU   
        Perform configuration which is common to root and non-root loggers.
        R   Re   Rj   N(   R   R%   Ro   R	   Re   t   removeHandlerR   R   (   R   R   R.   Rd   R   R   Re   Rj   (    (    s9   /usr/lib/python2.7/site-packages/pip/compat/dictconfig.pyt   common_logger_config  s    c         C@  sP   t  j |  } |  j | | |  | j d d  } | d k	 rL | | _ n  d S(   s.   Configure a non-root logger from a dictionary.R   N(   R   t	   getLoggerR   R   R%   R   (   R   R:   R.   Rd   R   R   (    (    s9   /usr/lib/python2.7/site-packages/pip/compat/dictconfig.pyRq   #  s
    c         C@  s#   t  j   } |  j | | |  d S(   s*   Configure a root logger from a dictionary.N(   R   R   R   (   R   R.   Rd   Rg   (    (    s9   /usr/lib/python2.7/site-packages/pip/compat/dictconfig.pyRr   +  s    (   R"   R#   R$   R   Ru   Rv   R   Rx   R   Rk   R   Rq   Rr   (    (    (    s9   /usr/lib/python2.7/site-packages/pip/compat/dictconfig.pyRb     s   						5	c         C@  s   t  |   j   d S(   s%   Configure logging using a dictionary.N(   t   dictConfigClassR   (   R.   (    (    s9   /usr/lib/python2.7/site-packages/pip/compat/dictconfig.pyt
   dictConfig3  s    (   t
   __future__R    t   logging.handlersR   R_   R6   RW   t   pip._vendorR   R`   t   IR   R   R	   R5   R   R   R&   R   R(   R   t   objectR)   Rb   R   R   (    (    (    s9   /usr/lib/python2.7/site-packages/pip/compat/dictconfig.pyt   <module>   s&   		& 