
    q"h\                        S r SSKrSSKrSSKJr  SSKJr  / SQr\R                  " \	5      r
 " S S\5      r " S	 S
\5      r " S S\5      r\R                   " S\R"                  5      rS r\r " S S\5      rS r " S S\5      r\R                   " S5      S4\R                   " S5      S4\R                   " S5      S4\R                   " S5      S4\R                   " S5      S4\R                   " S5      S4\R                   " S5      S4\R                   " S 5      S!4\R                   " S"5      S#4\R                   " S$5      S%44
r\R                   " S&5      S4\R                   " S'5      S4\R                   " S(5      S4\R                   " S5      S4\R                   " S)5      S44r\R                   " S*5      rS+ rS, r\R                   " S-\R"                  5      rS.S.S/S.S0SSS1.rS2 r " S3 S4\5      r  " S5 S6\5      r!\R                   " S7\R"                  5      r"S8 r#S9 r$ " S: S;\5      r% " S< S=\5      r& " S> S?\5      r'\'" \\\5      \'" \\!S@ 5      \'" \$\&\5      SA.r(\(SB   \(SC'   SD r)g)Ez~
Implementation of a flexible versioning scheme providing support for PEP-440,
setuptools-compatible and semantic versioning.
    N   )string_typesparse_requirement)NormalizedVersionNormalizedMatcherLegacyVersionLegacyMatcherSemanticVersionSemanticMatcherUnsupportedVersionError
get_schemec                       \ rS rSrSrSrg)r      zThis is an unsupported version. N)__name__
__module____qualname____firstlineno____doc____static_attributes__r       M/var/www/html/env/lib/python3.13/site-packages/pip/_vendor/distlib/version.pyr   r      s    )r   r   c                   l    \ rS rSrS rS rS rS rS rS r	S r
S	 rS
 rS rS rS r\S 5       rSrg)Version   c                     UR                  5       =U l        nU R                  U5      =U l        n[	        U[
        5      (       d   e[        U5      S:  d   eg )Nr   )strip_stringparse_parts
isinstancetuplelen)selfspartss      r   __init__Version.__init__   sK    779$q"jjm+e%''''5zA~~r   c                     [        S5      e)Nzplease implement in a subclassNotImplementedErrorr%   r&   s     r   r    Version.parse%   s    !"BCCr   c                 Z    [        U 5      [        U5      :w  a  [        SU < SU< 35      eg Nzcannot compare z and )type	TypeErrorr%   others     r   _check_compatibleVersion._check_compatible(   s'    :e$$FGG %r   c                 V    U R                  U5        U R                  UR                  :H  $ Nr5   r!   r3   s     r   __eq__Version.__eq__,   s#    u%{{ell**r   c                 .    U R                  U5      (       + $ r8   r:   r3   s     r   __ne__Version.__ne__0       ;;u%%%r   c                 V    U R                  U5        U R                  UR                  :  $ r8   r9   r3   s     r   __lt__Version.__lt__3   s#    u%{{U\\))r   c                 ^    U R                  U5      =(       d    U R                  U5      (       + $ r8   rB   r:   r3   s     r   __gt__Version.__gt__7   s"    KK&<$++e*<==r   c                 T    U R                  U5      =(       d    U R                  U5      $ r8   rE   r3   s     r   __le__Version.__le__:       {{5!7T[[%77r   c                 T    U R                  U5      =(       d    U R                  U5      $ r8   )rF   r:   r3   s     r   __ge__Version.__ge__=   rK   r   c                 ,    [        U R                  5      $ r8   )hashr!   r%   s    r   __hash__Version.__hash__A   s    DKK  r   c                 R    U R                   R                  < SU R                  < S3$ )Nz('z')	__class__r   r   rQ   s    r   __repr__Version.__repr__D   s    !^^44dllCCr   c                     U R                   $ r8   r   rQ   s    r   __str__Version.__str__G       ||r   c                     [        S5      e)NzPlease implement in subclasses.r+   rQ   s    r   is_prereleaseVersion.is_prereleaseJ   s    !"CDDr   )r!   r   N)r   r   r   r   r(   r    r5   r:   r>   rB   rF   rI   rM   rR   rW   r[   propertyr_   r   r   r   r   r   r      sW    DH+&*>88!D E Er   r   c            	           \ rS rSrSrS S S S S S S	 S
 S.rS rS rS r\	S 5       r
S rS rS rS rS rS rSrg)MatcherO   Nc                 
    X:  $ r8   r   vcps      r   <lambda>Matcher.<lambda>T       QUr   c                 
    X:  $ r8   r   rf   s      r   rj   rk   U   rl   r   c                      X:H  =(       d    X:  $ r8   r   rf   s      r   rj   rk   V       afoor   c                      X:H  =(       d    X:  $ r8   r   rf   s      r   rj   rk   W   ro   r   c                 
    X:H  $ r8   r   rf   s      r   rj   rk   X       afr   c                 
    X:H  $ r8   r   rf   s      r   rj   rk   Y   s    qvr   c                      X:H  =(       d    X:  $ r8   r   rf   s      r   rj   rk   [   ro   r   c                 
    X:g  $ r8   r   rf   s      r   rj   rk   \   rr   r   )<><=>======~=!=c                     [        U5      $ r8   r   r-   s     r   r   Matcher.parse_requirementa   s     ##r   c                 L   U R                   c  [        S5      eUR                  5       =U l        nU R	                  U5      nU(       d  [        SU-  5      eUR
                  U l        U R
                  R                  5       U l        / nUR                  (       a|  UR                   Hl  u  pAUR                  S5      (       a,  US;  a  [        SU-  5      eUS S SpeU R                  U5        OU R                  U5      SpeUR                  XEU45        Mn     [        U5      U l        g )	NzPlease specify a version classzNot valid: %rz.*)rz   r}   z#'.*' not allowed for %r constraintsTF)version_class
ValueErrorr   r   r   namelowerkeyconstraintsendswithappendr#   r!   )r%   r&   rclistopvnprefixs          r   r(   Matcher.__init__d   s
   %=>>779$q""1%_q011FF	99??$==::d##-( *:<>*? @ @ "#3B&&r* "&!3!3A!6bf-. ' Elr   c                 p   [        U[        5      (       a  U R                  U5      nU R                   H  u  p#nU R                  R                  U5      n[        U[        5      (       a  [        X5      nU(       d(  U< SU R                  R                  < 3n[        U5      eU" XU5      (       a  M    g   g)z
Check if the provided version matches the constraints.

:param version: The version to match against this instance.
:type version: String or :class:`Version` instance.
z not implemented for FT)
r"   r   r   r!   
_operatorsgetgetattrrV   r   r,   )r%   versionoperator
constraintr   fmsgs          r   matchMatcher.match   s     g|,,((1G,0KK(H&##H-A!\**D$#+T^^-D-DF)#..W&11 -8 r   c                     S n[        U R                  5      S:X  a(  U R                  S   S   S;   a  U R                  S   S   nU$ )Nr   r   )rz   r{   )r$   r!   )r%   results     r   exact_versionMatcher.exact_version   sC    t{{q T[[^A%6-%G[[^A&Fr   c                     [        U 5      [        U5      :w  d  U R                  UR                  :w  a  [        SU < SU< 35      eg r0   )r1   r   r2   r3   s     r   r5   Matcher._check_compatible   s7    :e$		UZZ(?$FGG )@r   c                     U R                  U5        U R                  UR                  :H  =(       a    U R                  UR                  :H  $ r8   )r5   r   r!   r3   s     r   r:   Matcher.__eq__   s5    u%xx599$D)DDr   c                 .    U R                  U5      (       + $ r8   r=   r3   s     r   r>   Matcher.__ne__   r@   r   c                 X    [        U R                  5      [        U R                  5      -   $ r8   )rP   r   r!   rQ   s    r   rR   Matcher.__hash__   s    DHH~T[[ 111r   c                 R    U R                   R                  < SU R                  < S3$ )N()rU   rQ   s    r   rW   Matcher.__repr__   s    >>22DLLAAr   c                     U R                   $ r8   rZ   rQ   s    r   r[   Matcher.__str__   r]   r   )r!   r   r   r   )r   r   r   r   r   r   r   r(   r   ra   r   r5   r:   r>   rR   rW   r[   r   r   r   r   rc   rc   O   sl    M #"--$%-$
J$#:*  HE&2Br   rc   z^v?(\d+!)?(\d+(\.\d+)*)((a|alpha|b|beta|c|rc|pre|preview)(\d+)?)?(\.(post|r|rev)(\d+)?)?([._-]?(dev)(\d+)?)?(\+([a-zA-Z\d]+(\.[a-zA-Z\d]+)?))?$c                    U R                  5       n [        R                  U 5      nU(       d  [        SU -  5      eUR	                  5       n[        S US   R                  S5       5       5      n[        U5      S:  a(  US   S:X  a  US S n[        U5      S:  a  US   S:X  a  M  US   (       d  SnO[        US   S S 5      nUSS nUS	S
 nUSS nUS   nUS:X  a  SnO!US   c  US   S4nOUS   [        US   5      4nUS:X  a  SnO!US   c  US   S4nOUS   [        US   5      4nUS:X  a  SnO!US   c  US   S4nOUS   [        US   5      4nUc  SnO]/ n	UR                  S5       H;  n
U
R                  5       (       a  S[        U
5      4n
OSU
4n
U	R                  U
5        M=     [        U	5      nU(       d  U(       d
  U(       a  SnOSnU(       d  SnU(       d  SnXCXVXx4$ )NzNot a valid version: %sc              3   8   #    U  H  n[        U5      v   M     g 7fr8   int.0rg   s     r   	<genexpr>_pep_440_key.<locals>.<genexpr>   s     6!5AQ!5   r   .r            	   
         )NNr   )ar   )z)_)final)r   PEP440_VERSION_REr   r   groupsr#   splitr$   r   isdigitr   )r&   mr   numsepochprepostdevlocalr'   parts              r   _pep_440_keyr      s   		A"A%&?!&CDDXXZF6!566D
d)a-DHMCRy d)a-DHM !9F1IcrN#
1+C!A;D
B-C2JE
lq6>a&!)Ca&#c!f+%C|7?7A:D7CQL(D
lq6>a&!)Ca&#c!f+%C}KK$D ||~~3t9~4yLL % eCC3--r   c                   B    \ rS rSrSrS r\" / SQ5      r\S 5       r	Sr
g)r      a  A rational version.

Good:
    1.2         # equivalent to "1.2.0"
    1.2.0
    1.2a1
    1.2.3a2
    1.2.3b1
    1.2.3c1
    1.2.3.4
    TODO: fill this out

Bad:
    1           # minimum two numbers
    1.2a        # release level must have a release serial
    1.2.3b
c                     [        U5      n[        R                  U5      nUR                  5       n[	        S US   R                  S5       5       5      U l        U$ )Nc              3   8   #    U  H  n[        U5      v   M     g 7fr8   r   r   s     r   r   *NormalizedVersion.parse.<locals>.<genexpr>  s     $J5ISVV5Ir   r   r   )_normalized_keyr   r   r   r#   r   _release_clause)r%   r&   r   r   r   s        r   r    NormalizedVersion.parse  sN     #
 ##A&$$JVAY__S5I$JJr   )r   brh   rcr   c                 B   ^  [        U 4S jT R                   5       5      $ )Nc              3   X   >#    U  H  o(       d  M  US    TR                   ;   v   M!     g7f)r   N)PREREL_TAGS)r   tr%   s     r   r   2NormalizedVersion.is_prerelease.<locals>.<genexpr>!  s%     F[A+1Q44+++[s   
**)anyr!   rQ   s   `r   r_   NormalizedVersion.is_prerelease  s    FT[[FFFr   )r   N)r   r   r   r   r   r    setr   ra   r_   r   r   r   r   r   r      s-    "	 23KG Gr   r   c                     [        U 5      n [        U5      nX:X  a  gU R                  U5      (       d  g[        U5      nX   S:H  $ )NTFr   )str
startswithr$   )xyns      r   _match_prefixr   $  sA    AAAAv<<??AA43;r   c            	       d    \ rS rSr\rSSSSSSSS	S
.rS rS rS r	S r
S rS rS rS rS rSrg)r   i/  _match_compatible	_match_lt	_match_gt	_match_le	_match_ge	_match_eq_match_arbitrary	_match_ne)r|   rv   rw   rx   ry   rz   r{   r}   c                    U(       a  SU;  =(       a    UR                   S   nO*UR                   S   (       + =(       a    UR                   S   nU(       a0  UR                  R                  SS5      S   nU R                  U5      nX4$ )N+r   r   r   )r!   r   r   r   )r%   r   r   r   strip_localr&   s         r   _adjust_localNormalizedMatcher._adjust_local>  sw    Z/FGNN24FK )//33Jr8JK%%c1-a0A((+G""r   c                     U R                  XU5      u  pX:  a  gUR                  nSR                  U Vs/ s H  n[        U5      PM     sn5      n[	        X5      (       + $ s  snf NFr   r   r   joinr   r   r%   r   r   r   release_clauseipfxs          r   r   NormalizedMatcher._match_ltL  _    "00fM #33hh71A78 ... 8   A"c                     U R                  XU5      u  pX::  a  gUR                  nSR                  U Vs/ s H  n[        U5      PM     sn5      n[	        X5      (       + $ s  snf r   r   r   s          r   r   NormalizedMatcher._match_gtT  r   r  c                 2    U R                  XU5      u  pX:*  $ r8   r   r%   r   r   r   s       r   r   NormalizedMatcher._match_le\       "00fM$$r   c                 2    U R                  XU5      u  pX:  $ r8   r  r  s       r   r   NormalizedMatcher._match_ge`  r  r   c                 ^    U R                  XU5      u  pU(       d  X:H  nU$ [        X5      nU$ r8   r   r   r%   r   r   r   r   s        r   r   NormalizedMatcher._match_eqd  s:    "00fM+F  #77Fr   c                 0    [        U5      [        U5      :H  $ r8   )r   r  s       r   r   "NormalizedMatcher._match_arbitraryl  s    7|s:..r   c                 h    U R                  XU5      u  pU(       d  X:g  nU$ [        X5      (       + nU$ r8   r  r  s        r   r   NormalizedMatcher._match_neo  s=    "00fM+F  'w;;Fr   c                     U R                  XU5      u  pX:X  a  gX:  a  gUR                  n[        U5      S:  a  US S nSR                  U Vs/ s H  n[	        U5      PM     sn5      n[        X5      $ s  snf )NTFr   r   r   )r   r   r$   r   r   r   r   s          r   r   #NormalizedMatcher._match_compatiblew  s    "00fM  $33~"+CR0Nhh71A78W** 8s   A7r   N)r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   /  sU    %M "!	J#//%%/+r   r   z[.+-]$ z^[.](\d)z0.\1z^[.-]z
^\((.*)\)$\1z^v(ersion)?\s*(\d+)z\2z^r(ev)?\s*(\d+)z[.]{2,}r   z\b(alfa|apha)\balphaz\b(pre-alpha|prealpha)\bz	pre.alphaz	\(beta\)$betaz
^[:~._+-]+z
[,*")([\]]z[~:+_ -]z\.$z(\d+(\.\d+)*)c                    U R                  5       R                  5       n[         H  u  p#UR                  X15      nM     U(       d  Sn[        R                  U5      nU(       d  SnUnGOUR                  5       S   R                  S5      nU Vs/ s H  n[        U5      PM     nn[        U5      S:  a"  UR                  S5        [        U5      S:  a  M"  [        U5      S:X  a  XR                  5       S nOFSR                  USS  Vs/ s H  n[        U5      PM     sn5      XR                  5       S -   nUSS nSR                  U Vs/ s H  n[        U5      PM     sn5      nUR                  5       nU(       a   [         H  u  p#UR                  X65      nM     U(       d  UnOSU;   a  SOSnXX-   U-   n[        U5      (       d  SnU$ s  snf s  snf s  snf )	zt
Try to suggest a semantic form for a version for which
_suggest_normalized_version couldn't come up with anything.
z0.0.0r   r      Nr   -r   )r   r   _REPLACEMENTSsub_NUMERIC_PREFIXr   r   r   r   r$   r   endr   r   _SUFFIX_REPLACEMENTS	is_semver)	r&   r   patreplr   r   suffixr   seps	            r   _suggest_semantic_versionr&    s   
 WWY__F"	& #
 	f%AA$$S)"()&Q#a&&)&kAoMM! &kAov;!EEGH%FXXvabz:z!s1vz:;fUUWX>NNFBQZF626a3q6623 .ICWWT*F . f_c#&VM/ * ;2s   GGGc                     [        U 5        U $ ! [         a     Of = fU R                  5       nS H  u  p#UR                  X#5      nM     [        R
                  " SSU5      n[        R
                  " SSU5      n[        R
                  " SSU5      n[        R
                  " SS	U5      n[        R
                  " S
SU5      nUR                  S5      (       a  USS n[        R
                  " SSU5      n[        R
                  " SSU5      n[        R
                  " SSU5      n[        R
                  " SSU5      n[        R
                  " SSU5      n[        R
                  " SSU5      n[        R
                  " SSU5      n[        R
                  " SSU5      n[        R
                  " SSU5      n[        R
                  " SSU5      n[        R
                  " SS U5      n [        U5        U$ ! [         a    Sn U$ f = f)!a  Suggest a normalized version close to the given version string.

If you have a version string that isn't rational (i.e. NormalizedVersion
doesn't like it) then you might be able to get an equivalent (or close)
rational version from this function.

This does a number of simple normalizations to the given string, based
on observation of versions currently in use on PyPI. Given a dump of
those version during PyCon 2009, 4287 of them:
- 2312 (53.93%) match NormalizedVersion without change
  with the automatic suggestion
- 3474 (81.04%) match when using this suggestion method

@param s {str} An irrational version string.
@returns A rational version string, or None, if couldn't determine one.
))z-alphar   )z-betar   )r  r   )r  r   )r   rh   )z-finalr  )z-prerh   )z-releaser  )z.releaser  )z-stabler  )r   r   )r   r   ) r  )z.finalr  )r   r  zpre$pre0zdev$dev0z([abc]|rc)[\-\.](\d+)$z\1\2z[\-\.](dev)[\-\.]?r?(\d+)$z.\1\2z[.~]?([abc])\.?r  rg   r   Nz\b0+(\d+)(?!\d)z(\d+[abc])$z\g<1>0z\.?(dev-r|dev\.r)\.?(\d+)$z.dev\2z-(a|b|c)(\d+)$z[\.\-](dev|devel)$z.dev0z(?![\.\-])dev$z(final|stable)$r  z\.?(r|-|-r)\.?(\d+)$z.post\2z\.?(dev|git|bzr)\.?(\d+)$z\.?(pre|preview|-c)(\d+)$zc\g<2>zp(\d+)$z.post\1)r   r   r   replacerer  r   )r&   rsorigr#  s       r   _suggest_normalized_versionr/    s   ""  
B&
 ZZ#& 
"	%B	"	%B
 
)7B	7B 
-x	<B 
"E2	.B 
}}SV
 
"E2	.B
 
	2	.B 
-y"	=B 
!7B	/B 
%x	4B 
!8R	0B 
"B	+B 
'R	8B 
,i	<B 
,i	<B 

J	+B I # Is    
'G4 4HHz([a-z]+|\d+|[\.-])rh   zfinal-@)r   previewr  r   r   r  r   c                 b   S n/ nU" U 5       H  nUR                  S5      (       aj  US:  a2  U(       a+  US   S:X  a"  UR                  5         U(       a  US   S:X  a  M"  U(       a+  US   S:X  a"  UR                  5         U(       a  US   S:X  a  M"  UR                  U5        M     [        U5      $ )Nc                 2   / n[         R                  U R                  5       5       H\  n[        R	                  X"5      nU(       d  M!  SUS S s=::  a  S::  a  O  OUR                  S5      nOSU-   nUR                  U5        M^     UR                  S5        U$ )N0r   9   **final)_VERSION_PARTr   r   _VERSION_REPLACEr   zfillr   )r&   r   ri   s      r   	get_parts_legacy_key.<locals>.get_partsM  s    $$QWWY/A $$Q*Aq!BQ%&3&
AaAa  0 	hr   r7  r8  r   z*final-00000000)r   popr   r#   )r&   r<  r   ri   s       r   _legacy_keyr@  L  s     Fq\<<8|y!8JJL y!8VBZ:5

 VBZ:5a  =r   c                   *    \ rS rSrS r\S 5       rSrg)r	   if  c                     [        U5      $ r8   )r@  r-   s     r   r    LegacyVersion.parseg  s    1~r   c                     SnU R                    H=  n[        U[        5      (       d  M  UR                  S5      (       d  M2  US:  d  M:  Sn  U$    U$ )NFr7  r8  T)r!   r"   r   r   )r%   r   r   s      r   r_   LegacyVersion.is_prereleasej  sJ    A1l++S0A0Aa(l	  r   r   Nr   r   r   r   r    ra   r_   r   r   r   r   r	   r	   f  s      r   r	   c                   p    \ rS rSr\r\" \R                  5      rS\S'   \	R                  " S5      rS rSrg)r
   it  r   r|   z^(\d+(\.\d+)*)c                    X:  a  gU R                   R                  [        U5      5      nU(       d  [        R	                  SX5        gUR                  5       S   nSU;   a  UR                  SS5      S   n[        X5      $ )NFzACannot compute compatible match for version %s  and constraint %sTr   r   r   )
numeric_rer   r   loggerwarningr   rsplitr   )r%   r   r   r   r   r&   s         r   r   LegacyMatcher._match_compatible|  st    OO!!#j/2NN 018FHHJqM!8a #AW((r   r   N)r   r   r   r   r	   r   dictrc   r   r,  compilerI  r   r   r   r   r   r
   r
   t  s5    !Mg(()J*Jt-.J)r   r
   zN^(\d+)\.(\d+)\.(\d+)(-[a-z0-9]+(\.[a-z0-9-]+)*)?(\+[a-z0-9]+(\.[a-z0-9-]+)*)?$c                 ,    [         R                  U 5      $ r8   )
_SEMVER_REr   )r&   s    r   r!  r!    s    Ar   c                     S n[        U 5      nU(       d  [        U 5      eUR                  5       nUS S  Vs/ s H  n[        U5      PM     snu  pVnU" US   S5      U" US   S5      pXVU4X4$ s  snf )Nc                     U c  U4nU$ U SS  R                  S5      n[        U Vs/ s H*  oDR                  5       (       a  UR                  S5      OUPM,     sn5      nU$ s  snf )Nr   r   r6  )r   r#   r   r;  )r&   absentr   r'   ri   s        r   
make_tuple!_semantic_key.<locals>.make_tuple  sf    9YF 	 abEKK$E eLe))++AGGAJ1<eLMF Ms   1A r  |   r7  )r!  r   r   r   )
r&   rU  r   r   r   majorminorpatchr   builds
             r   _semantic_keyr]    s     	!A%a((XXZF+1"1:6:a3q6:6E%F1Is+Zq	3-G% #,, 7s   A0c                   *    \ rS rSrS r\S 5       rSrg)r   i  c                     [        U5      $ r8   )r]  r-   s     r   r    SemanticVersion.parse  s    Qr   c                 ,    U R                   S   S   S:g  $ )Nr   r   rW  )r!   rQ   s    r   r_   SemanticVersion.is_prerelease  s    {{1~a C''r   r   NrF  r   r   r   r   r     s      ( (r   r   c                       \ rS rSr\rSrg)r   i  r   N)r   r   r   r   r   r   r   r   r   r   r   r     s    #Mr   r   c                   6    \ rS rSrS	S jrS rS rS rS rSr	g)
VersionSchemei  Nc                 (    Xl         X l        X0l        g r8   r   matcher	suggester)r%   r   rh  ri  s       r   r(   VersionScheme.__init__  s    "r   c                 h     U R                   R                  U5        SnU$ ! [         a    Sn U$ f = fNTF)rh  r   r   r%   r&   r   s      r   is_valid_versionVersionScheme.is_valid_version  s@    	LL&&q)F  ' 	F	s   ! 11c                 T     U R                  U5        SnU$ ! [         a    Sn U$ f = frl  )rh  r   rm  s      r   is_valid_matcherVersionScheme.is_valid_matcher  s9    	LLOF  ' 	F	s    ''c                 `    UR                  S5      (       a  USS nU R                  SU-  5      $ )z*
Used for processing some metadata fields
,Nr   zdummy_name (%s))r   rq  r-   s     r   is_valid_constraint_list&VersionScheme.is_valid_constraint_list  s3    
 ::c??#2A$$%6%:;;r   c                 J    U R                   c  S nU$ U R                  U5      nU$ r8   )ri  rm  s      r   suggestVersionScheme.suggest  s-    >>!F  ^^A&Fr   rg  r8   )
r   r   r   r   r(   rn  rq  ru  rx  r   r   r   r   re  re    s    #
<r   re  c                     U$ r8   r   r-   s     r   rj   rj     s    r   )
normalizedlegacysemanticr{  defaultc                 D    U [         ;  a  [        SU -  5      e[         U    $ )Nzunknown scheme name: %r)_SCHEMESr   )r   s    r   r   r     s%    82T9::D>r   )*r   loggingr,  compatr   utilr   __all__	getLoggerr   rJ  r   r   objectr   rc   rO  Ir   r   r   r   r   r   r  r   r  r&  r/  r9  r:  r@  r	   r
   rQ  r!  r]  r   r   re  r  r   r   r   r   <module>r     s  
  	   #4
 
		8	$	j 	
.Ef .Ebaf aH JJ  FGIttM 
B.J !G !GHT+ T+p ZZ2ZZg&ZZ"ZZ&ZZ&'/ZZ"#U+ZZ	C ZZ"#W-ZZ+,ZZv& ZZr"ZZ#ZZ
S!ZZ	C ZZ  **-.+\lf 

0"$$7	
	 4G )G )4 ZZ :;=44A

-*(g ($g $$F $P  1B ;=K8IJm_79	 |, r   