
    Zճcn                     2   d dl Z d dlZd dlZddl 	 ej
                  j                  Z ej                  d      Z	d Z
dej                  z   ej                  z   Z ej                  e      j                  d      Z ej"                   ej                  dej                  z   ej                  z          ej$                   ej                  d	      j'                               z         j                  d
      Zej*                  j-                         j                  d      j/                  e
      Zej-                         j                  d      j3                  e      Ze ej6                  d	      z   eez  z   Z ej:                   ej<                   ej>                  e                  Z  ed      Z!e! e d       ed      z  z   Z"e j-                         Z# ej<                   ej>                  e"            Z$ddZ%ddZ&y# e$ r ej                  ZY w xY w)    N   )*z\\(.)c                 :    t         j                  d|d   dd       S )Nz\1r   r   )UNQUOTE_PAIRSsub)slts      //usr/lib/python3/dist-packages/httplib2/auth.py<lambda>r      s    -++E1Q4":>     z!#$%&'*+-.^_`|~tokenz-._~+/=token68zquoted-stringzauth-param-nameschemeparamsc                     | j                  |d      j                         }|si S 	 t        j                  |      }|j                         S # t        j
                  $ r}t        |      d}~ww xY w)z(https://tools.ietf.org/html/rfc7615
     N)getstripauthentication_infoparseStringppParseExceptionMalformedHeaderasDict)headers
headernameheaderparsedexs        r   _parse_authentication_infor#   %   sk     [[R(..0F	*$008
 ==?	  *j))*s   A A.A))A.c                 b   | j                  |d      j                         }|si S 	 t        j                  |      }|D ci c]>  }|d   j                         d|v r|d   j                         nd|j                  d      i@ }}|S # t        j
                  $ r}t        |      d}~ww xY wc c}w )z?Returns a dictionary of dictionaries, one dict per auth_scheme.r   Nr   r   r   )	r   r   www_authenticater   r   r   r   lowerr   )r   r   r    r!   r"   	challengeretvals          r   _parse_www_authenticater)   4   s    [[R(..0F	*!--f5  	  	(!!#y  &/x%8%?%?%Ay}}W-.	/F  M  *j))*s   B AB,B)B$$B))zauthentication-info)zwww-authenticate)'base64re	pyparsingr   errorcommondowncaseTokensAttributeErrorcompiler   unquotenumsalphastcharWordsetNamer   CombineOptionalleaveWhitespacer   dblQuotedStringcopysetParseActionquoted_stringaddParseActionauth_param_nameSuppress
auth_paramDictdelimitedListGroupr   r   r'   r   r%   r#   r)    r   r   <module>rG      s    	  'YY--N 

8$
> 	BGG#bii/w'
"**WRWWX/"));<{r{{7277SV<KgKgKi?jj
k
s
s ""'')11/BQQRYZ**,&&'89HHX{r{{3//=53HI
	!!!("((:"67	8	xfX&)99:	kkm #2##HBHHY$78 S  '&&N's   H HH