ÿØÿà 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 m Z m Z y d  d l m Z Wn$ e k
 r` d d d     YZ n Xy d  d l m Z Wn! e k
 r d d l	 m Z n Xd d l
 m Z m Z m Z d	 d
 g Z e   Z d	 e f d     YZ d
 e f d     YZ d S(   i    (   t   absolute_import(   t   Mappingt   MutableMapping(   t   RLockR   c           B@  s   e  Z d    Z d   Z RS(   c         C@  s   d  S(   N(    (   t   self(    (    sD   /usr/lib/python2.7/site-packages/pip/_vendor/urllib3/_collections.pyt	   __enter__   s    c         C@  s   d  S(   N(    (   R   t   exc_typet	   exc_valuet	   traceback(    (    sD   /usr/lib/python2.7/site-packages/pip/_vendor/urllib3/_collections.pyt   __exit__
   s    (   t   __name__t
   __module__R   R	   (    (    (    sD   /usr/lib/python2.7/site-packages/pip/_vendor/urllib3/_collections.pyR      s   	(   t   OrderedDicti   (   t   iterkeyst
   itervaluest   PY3t   RecentlyUsedContainert   HTTPHeaderDictc           B@  sb   e  Z d  Z e Z d d
 d  Z d   Z d   Z d   Z	 d   Z
 d   Z d   Z d	   Z RS(   s  
    Provides a thread-safe dict-like container which maintains up to
    ``maxsize`` keys while throwing away the least-recently-used keys beyond
    ``maxsize``.

    :param maxsize:
        Maximum number of recent elements to retain.

    :param dispose_func:
        Every time an item is evicted from the container,
        ``dispose_func(value)`` is called.  Callback which will get called
    i
   c         C@  s1   | |  _  | |  _ |  j   |  _ t   |  _ d  S(   N(   t   _maxsizet   dispose_funct   ContainerClst
   _containerR   t   lock(   R   t   maxsizeR   (    (    sD   /usr/lib/python2.7/site-packages/pip/_vendor/urllib3/_collections.pyt   __init__+   s    		c         C@  s7   |  j  ( |  j j |  } | |  j | <| SWd  QXd  S(   N(   R   R   t   pop(   R   t   keyt   item(    (    sD   /usr/lib/python2.7/site-packages/pip/_vendor/urllib3/_collections.pyt   __getitem__2   s    
c         C@  s   t  } |  j ] |  j j | t   } | |  j | <t |  j  |  j k rh |  j j d t  \ } } n  Wd  QX|  j r | t  k	 r |  j |  n  d  S(   Nt   last(	   t   _NullR   R   t   gett   lenR   t   popitemt   FalseR   (   R   R   t   valuet   evicted_valuet   _key(    (    sD   /usr/lib/python2.7/site-packages/pip/_vendor/urllib3/_collections.pyt   __setitem__9   s    
$c         C@  s?   |  j   |  j j |  } Wd  QX|  j r; |  j |  n  d  S(   N(   R   R   R   R   (   R   R   R#   (    (    sD   /usr/lib/python2.7/site-packages/pip/_vendor/urllib3/_collections.pyt   __delitem__H   s    
	c         C@  s!   |  j   t |  j  SWd  QXd  S(   N(   R   R    R   (   R   (    (    sD   /usr/lib/python2.7/site-packages/pip/_vendor/urllib3/_collections.pyt   __len__O   s    
c         C@  s   t  d   d  S(   Ns7   Iteration over this class is unlikely to be threadsafe.(   t   NotImplementedError(   R   (    (    sD   /usr/lib/python2.7/site-packages/pip/_vendor/urllib3/_collections.pyt   __iter__S   s    c         C@  s`   |  j  ' t t |  j   } |  j j   Wd  QX|  j r\ x | D] } |  j |  qB Wn  d  S(   N(   R   t   listR   R   t   clearR   (   R   t   valuesR#   (    (    sD   /usr/lib/python2.7/site-packages/pip/_vendor/urllib3/_collections.pyR,   V   s    
	c         C@  s'   |  j   t t |  j   SWd  QXd  S(   N(   R   R+   R   R   (   R   (    (    sD   /usr/lib/python2.7/site-packages/pip/_vendor/urllib3/_collections.pyt   keys`   s    
N(   R
   R   t   __doc__R   R   t   NoneR   R   R&   R'   R(   R*   R,   R.   (    (    (    sD   /usr/lib/python2.7/site-packages/pip/_vendor/urllib3/_collections.pyR      s   						
c           B@  s  e  Z d  Z d d  Z d   Z d   Z d   Z d   Z d   Z	 d   Z
 e si e j Z e j Z n  e   Z d   Z d	   Z e d
  Z d   Z d   Z d   Z e d  Z e Z e Z e Z e Z d   Z d   Z d   Z d   Z d   Z  d   Z! e" d    Z# RS(   sp  
    :param headers:
        An iterable of field-value pairs. Must not contain multiple field names
        when compared case-insensitively.

    :param kwargs:
        Additional field-value pairs to pass in to ``dict.update``.

    A ``dict`` like container for storing HTTP Headers.

    Field names are stored and compared case-insensitively in compliance with
    RFC 7230. Iteration provides the first case-sensitive key seen for each
    case-insensitive pair.

    Using ``__setitem__`` syntax overwrites fields that compare equal
    case-insensitively in order to maintain ``dict``'s api. For fields that
    compare equal, instead create a new ``HTTPHeaderDict`` and use ``.add``
    in a loop.

    If multiple fields that are equal case-insensitively are passed to the
    constructor or ``.update``, the behavior is undefined and some will be
    lost.

    >>> headers = HTTPHeaderDict()
    >>> headers.add('Set-Cookie', 'foo=bar')
    >>> headers.add('set-cookie', 'baz=quxx')
    >>> headers['content-length'] = '7'
    >>> headers['SET-cookie']
    'foo=bar, baz=quxx'
    >>> headers['Content-Length']
    '7'
    c         K@  st   t  t |   j   t   |  _ | d  k	 rZ t | t  rJ |  j |  qZ |  j |  n  | rp |  j |  n  d  S(   N(	   t   superR   R   R   R   R0   t
   isinstancet
   _copy_fromt   extend(   R   t   headerst   kwargs(    (    sD   /usr/lib/python2.7/site-packages/pip/_vendor/urllib3/_collections.pyR      s    c         C@  s*   | | g |  j  | j   <|  j  | j   S(   N(   R   t   lower(   R   R   t   val(    (    sD   /usr/lib/python2.7/site-packages/pip/_vendor/urllib3/_collections.pyR&      s    c         C@  s$   |  j  | j   } d j | d  S(   Ns   , i   (   R   R7   t   join(   R   R   R8   (    (    sD   /usr/lib/python2.7/site-packages/pip/_vendor/urllib3/_collections.pyR      s    c         C@  s   |  j  | j   =d  S(   N(   R   R7   (   R   R   (    (    sD   /usr/lib/python2.7/site-packages/pip/_vendor/urllib3/_collections.pyR'      s    c         C@  s   | j    |  j k S(   N(   R7   R   (   R   R   (    (    sD   /usr/lib/python2.7/site-packages/pip/_vendor/urllib3/_collections.pyt   __contains__   s    c         C@  s   t  | t  r$ t | d  r$ t St  | t |    sN t |   |  } n  t d   |  j   D  t d   | j   D  k S(   NR.   c         s@  s'   |  ] \ } } | j    | f Vq d  S(   N(   R7   (   t   .0t   kt   v(    (    sD   /usr/lib/python2.7/site-packages/pip/_vendor/urllib3/_collections.pys	   <genexpr>   s    c         s@  s'   |  ] \ } } | j    | f Vq d  S(   N(   R7   (   R;   R<   R=   (    (    sD   /usr/lib/python2.7/site-packages/pip/_vendor/urllib3/_collections.pys	   <genexpr>   s    (   R2   R   t   hasattrR"   t   typet   dictt
   itermerged(   R   t   other(    (    sD   /usr/lib/python2.7/site-packages/pip/_vendor/urllib3/_collections.pyt   __eq__   s     c         C@  s   |  j  |  S(   N(   RC   (   R   RB   (    (    sD   /usr/lib/python2.7/site-packages/pip/_vendor/urllib3/_collections.pyt   __ne__   s    c         C@  s   t  |  j  S(   N(   R    R   (   R   (    (    sD   /usr/lib/python2.7/site-packages/pip/_vendor/urllib3/_collections.pyR(      s    c         c@  s'   x  |  j  j   D] } | d Vq Wd  S(   Ni    (   R   R-   (   R   t   vals(    (    sD   /usr/lib/python2.7/site-packages/pip/_vendor/urllib3/_collections.pyR*      s    c         C@  sG   y |  | } Wn' t  k
 r7 | |  j k r3   n  | SX|  | =| Sd S(   s   D.pop(k[,d]) -> v, remove specified key and return the corresponding value.
          If key is not found, d is returned if given, otherwise KeyError is raised.
        N(   t   KeyErrort   _HTTPHeaderDict__marker(   R   R   t   defaultR#   (    (    sD   /usr/lib/python2.7/site-packages/pip/_vendor/urllib3/_collections.pyR      s    c         C@  s#   y |  | =Wn t  k
 r n Xd  S(   N(   RF   (   R   R   (    (    sD   /usr/lib/python2.7/site-packages/pip/_vendor/urllib3/_collections.pyt   discard   s    c         C@  sM   | j    } | | g } |  j j | |  } | | k	 rI | j |  n  d S(   s   Adds a (name, value) pair, doesn't overwrite the value if it already
        exists.

        >>> headers = HTTPHeaderDict(foo='bar')
        >>> headers.add('Foo', 'baz')
        >>> headers['foo']
        'bar, baz'
        N(   R7   R   t
   setdefaultt   append(   R   R   R8   t	   key_lowert   new_valsRE   (    (    sD   /usr/lib/python2.7/site-packages/pip/_vendor/urllib3/_collections.pyt   add   s
    	c         O@  s]  t  |  d k r0 t d j t  |     n  t  |  d k rL | d n d } t | t  r x | j   D] \ } } |  j | |  qn Wn t | t  r x | D] } |  j | | |  q Wnd t | d  rxR | j	   D] } |  j | | |  q Wn' x$ | D] \ } } |  j | |  qWx* | j
   D] \ } } |  j | |  q9Wd S(   s   Generic import function for any type of header-like object.
        Adapted version of MutableMapping.update in order to insert items
        with self.add instead of self.__setitem__
        i   s9   extend() takes at most 1 positional arguments ({0} given)i    R.   N(    (   R    t	   TypeErrort   formatR2   R   t	   iteritemsRN   R   R>   R.   t   items(   R   t   argsR6   RB   R   R8   R#   (    (    sD   /usr/lib/python2.7/site-packages/pip/_vendor/urllib3/_collections.pyR4      s"    	"c         C@  sK   y |  j  | j   } Wn% t k
 r> | |  j k r: g  S| SX| d Sd S(   sm   Returns a list of all the values for the named field. Returns an
        empty list if the key doesn't exist.i   N(   R   R7   RF   RG   (   R   R   RH   RE   (    (    sD   /usr/lib/python2.7/site-packages/pip/_vendor/urllib3/_collections.pyt   getlist   s    c         C@  s#   d t  |   j t |  j    f S(   Ns   %s(%s)(   R?   R
   R@   RA   (   R   (    (    sD   /usr/lib/python2.7/site-packages/pip/_vendor/urllib3/_collections.pyt   __repr__  s    c         C@  s\   xU | D]M } | j  |  } t | t  r: t |  } n  | g | |  j | j   <q Wd  S(   N(   RT   R2   R+   R   R7   (   R   RB   R   R8   (    (    sD   /usr/lib/python2.7/site-packages/pip/_vendor/urllib3/_collections.pyR3     s
    c         C@  s    t  |     } | j |   | S(   N(   R?   R3   (   R   t   clone(    (    sD   /usr/lib/python2.7/site-packages/pip/_vendor/urllib3/_collections.pyt   copy  s    c         c@  sL   xE |  D]= } |  j  | j   } x! | d D] } | d | f Vq+ Wq Wd S(   s8   Iterate over all header lines, including duplicate ones.i   i    N(   R   R7   (   R   R   RE   R8   (    (    sD   /usr/lib/python2.7/site-packages/pip/_vendor/urllib3/_collections.pyRQ     s    c         c@  sD   x= |  D]5 } |  j  | j   } | d d j | d  f Vq Wd S(   s:   Iterate over all headers, merging duplicate ones together.i    s   , i   N(   R   R7   R9   (   R   R   R8   (    (    sD   /usr/lib/python2.7/site-packages/pip/_vendor/urllib3/_collections.pyRA   %  s    c         C@  s   t  |  j    S(   N(   R+   RQ   (   R   (    (    sD   /usr/lib/python2.7/site-packages/pip/_vendor/urllib3/_collections.pyRR   +  s    c         C@  s   g  } x | j  D]z } | j d  rY | d \ } } | | d | j   f | d <q n  | j d d  \ } } | j | | j   f  q W|  |  S(   s4   Read headers from a Python 2 httplib message object.t    s   	is   
t   :i   (   RX   s   	(   R5   t
   startswitht   rstript   splitRK   t   strip(   t   clst   messageR5   t   lineR   R#   (    (    sD   /usr/lib/python2.7/site-packages/pip/_vendor/urllib3/_collections.pyt   from_httplib.  s    N($   R
   R   R/   R0   R   R&   R   R'   R:   RC   RD   R   R   R   R   t   objectRG   R(   R*   R   RI   RN   R4   RT   t
   getheaderst   getallmatchingheaderst   igett   get_allRU   R3   RW   RQ   RA   RR   t   classmethodRa   (    (    (    sD   /usr/lib/python2.7/site-packages/pip/_vendor/urllib3/_collections.pyR   e   s<    																			N(    (   t
   __future__R    t   collectionsR   R   t	   threadingR   t   ImportErrorR   t   packages.ordered_dictt   packages.sixR   R   R   t   __all__Rb   R   R   R   (    (    (    sD   /usr/lib/python2.7/site-packages/pip/_vendor/urllib3/_collections.pyt   <module>   s   	J