Ë
    hKêj^U  ã                  óp  — d dl mZ d dlZd dlZd dlZd dlmZ d dlmZ d dlm	Z	 d dl
mZ d dlmZ d dlmZ d d	lmZ d d
lmZ d dlmZ d dlmZ d dlmZ d dlmZ d dlmZ er%d dlmZ d dlmZ d dlmZ d dlmZ d dlm Z  ee!e"f   Z#e"e!fZ$	  G d„ de!e«      Z%e	 G d„ d«      «       Z&d0d„Zd0d„Zed1d2d„«       Z'ed3d„«       Z'd1d4d„Z'd1d5d„Z(	 d1	 	 	 	 	 	 	 d6d„Z)	 	 	 	 	 	 d7d „Z*	 d1	 	 	 	 	 	 	 	 	 d8d!„Z+	 d1	 	 	 	 	 	 	 d9d"„Z,e	 d:	 	 	 	 	 d;d#„«       Z-e	 	 	 	 	 	 d<d$„«       Z-e	 d:	 	 	 	 	 d=d%„«       Z-	 d1	 	 	 	 	 d=d&„Z-d>d'„Z.d1d?d(„Z/e	 d:	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 d@d)„«       Z0e	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 dAd*„«       Z0e	 d:	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 dBd+„«       Z0	 d1	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 dCd,„Z0 G d-„ d. ed.d/«      «      Z1y)Dé    )ÚannotationsN)Ú
namedtuple)ÚMapping)Ú	dataclass)ÚEnum)ÚTYPE_CHECKING)ÚAny)ÚOptional)ÚUnion)Úoverload)Úquote)Úunquote)Úurlsplit)ÚNoRouteAvailable)ÚCallable)ÚIterable)ÚClassVar)ÚLiteral)ÚSelfc                  ó   — e Zd ZdZdZdZy)ÚValidationSeverityÚerrorÚwarningÚinfoN)Ú__name__Ú
__module__Ú__qualname__ÚERRORÚWARNINGÚINFO© ó    úX/home/oem/CyberBrain26-unified/.venv/lib/python3.12/site-packages/packageurl/__init__.pyr   r   @   s   „ Ø€EØ€GØ�Dr"   r   c                  ó:   — e Zd ZU ded<   ded<   ej
                  Zy)ÚValidationMessager   ÚseverityÚstrÚmessageN)r   r   r   Ú__annotations__ÚdataclassesÚasdictÚto_dictr!   r"   r#   r%   r%   F   s   … à Ó ØƒLØ× Ñ �Gr"   r%   c                óÈ   — t        | t        «      r| j                  d«      n| }t        |«      }t        |t        «      s|j	                  d«      }|j                  dd«      }|S )zo
    Return a percent-encoded unicode string, except for colon :, given an `s`
    byte or unicode string.
    úutf-8z%3Aú:)Ú
isinstancer'   ÚencodeÚ_percent_quoteÚdecodeÚreplace)ÚsÚs_bytesÚquoteds      r#   r   r   M   sT   € ô
 $.¨a´Ô#5ˆa�h‰h�wÔ¸1€GÜ˜GÓ$€FÜ�fœcÔ"Ø—‘˜wÓ'ˆØ�^‰^˜E 3Ó'€FØ€Mr"   c                ó^   — t        | «      }t        |t        «      s|j                  d«      }|S )z[
    Return a percent-decoded unicode string, given an `s` byte or unicode
    string.
    r.   )Ú_percent_unquoter0   r'   r3   )r5   Úunquoteds     r#   r   r   Z   s+   € ô
   Ó"€HÜ�h¤Ô$Ø—?‘? 7Ó+ˆØ€Or"   c                 ó   — y ©Nr!   ©r1   s    r#   Ú
get_quoterr>   e   s   € Ø@Cr"   c                 ó   — y r<   r!   r=   s    r#   r>   r>   i   s   € Ø69r"   c                ó6   — | du rt         S | du rt        S | €d„ S y)zU
    Return quoting callable given an `encode` tri-boolean (True, False or None)
    TFNc                ó   — | S r<   r!   )Úxs    r#   ú<lambda>zget_quoter.<locals>.<lambda>v   s   € ˜€ r"   )r   r   r=   s    r#   r>   r>   m   s,   € ð ��~ÜˆØ	�5‰ÜˆØ	ˆÙÐð 
r"   c                ó¸   — | sy t        | t        «      r| n| j                  d«      }t        |«      } ||«      }|j	                  «       j                  «       xs d S )Nr.   ©r0   r'   r3   r>   ÚstripÚlower)Útyper1   Útype_strÚquoters       r#   Únormalize_typerK   y   sP   € ÙØä! $¬Ô,‰t°$·+±+¸gÓ2F€HÜ˜Ó€FÙ�hÓ€HØ�>‰>Ó×!Ñ!Ó#Ò+ tÐ+r"   c                óœ  — | sy t        | t        «      r| n| j                  d«      }|j                  «       j                  d«      }|dv r|j	                  «       }|r|dv r|j                  «       }|j                  d«      D �cg c]  }|j                  «       sŒ|‘Œ }}t        t        |«      |«      }dj                  |«      xs d S c c}w )Nr.   ú/)
Ú	bitbucketÚgithubÚpypiÚgitlabÚcomposerÚluarocksÚqpkgÚalpmÚapkÚhexÚcpan)
r0   r'   r3   rF   rG   ÚupperÚsplitÚmapr>   Újoin)Ú	namespaceÚptyper1   Únamespace_strÚsegÚsegmentsÚsegments_quoteds          r#   Únormalize_namespacerc   ƒ   sÅ   € ñ Øä!+¨I´sÔ!;‘IÀ×AQÑAQÐRYÓAZ€MØ!×'Ñ'Ó)×/Ñ/°Ó4€MØð ñ ð &×+Ñ+Ó-ˆÙ�˜6Ñ"Ø%×+Ñ+Ó-ˆØ,×2Ñ2°3Ó7ÖG˜¸3¿9¹9½;’ÐG€HÐGÜœ* VÓ,¨hÓ7€OØ�8‰8�OÓ$Ò,¨Ð,ùò Hs   ÂC	ÂC	c                óH  — t        |t        «      rK|j                  d«      }|rd|j                  «       v r| S |r"d|j                  «       v r| j                  «       S t        |t        «      r6d|j                  «       v r| S d|j                  «       v r| j                  «       S | S )zÆMLflow purl names are case-sensitive for Azure ML, it is case sensitive and must be kept as-is in the package URL
    For Databricks, it is case insensitive and must be lowercased in the package URLÚrepository_urlÚazuremlÚ
databricks)r0   ÚdictÚgetrG   r'   )Úname_strÚ
qualifiersÚrepo_urls      r#   Únormalize_mlflow_namerm   Ÿ   s”   € ô �*œdÔ#Ø—>‘>Ð"2Ó3ˆÙ˜	 X§^¡^Ó%5Ñ5ØˆOÙ˜¨¯©Ó(8Ñ8Ø—>‘>Ó#Ð#Ü�*œcÔ"Ø˜
×(Ñ(Ó*Ñ*ØˆOØ˜:×+Ñ+Ó-Ñ-Ø—>‘>Ó#Ð#Ø€Or"   c                óÖ  — | sy t        | t        «      r| n| j                  d«      }t        |«      } ||«      }|j	                  «       j	                  d«      }|r|dv rt        ||«      S |dv r|j                  «       }|dk(  r |j                  dd«      j                  «       }|dk(  r|j                  dd«      }|d	k(  r%t        j                  d
d|j                  «       «      }|xs d S )Nr.   rM   Úmlflow)rN   rO   rP   rQ   rR   rS   ÚociÚnpmrU   rV   ÚbitnamirW   ÚpubrP   Ú_ú-Úhackagers   z	[^a-z0-9])
r0   r'   r3   r>   rF   rm   rG   r4   ÚreÚsub)Únamerk   r^   r1   rj   rJ   s         r#   Únormalize_namerz   ³   sç   € ñ Øä! $¬Ô,‰t°$·+±+¸gÓ2F€HÜ˜Ó€FÙ�hÓ€HØ�~‰~Ó×%Ñ% cÓ*€HÙ�˜8Ñ$Ü$ X¨zÓ:Ð:Øð ñ ð —>‘>Ó#ˆØ�‚Ø×#Ñ# C¨Ó-×3Ñ3Ó5ˆØ�	ÒØ×#Ñ# C¨Ó-ˆØ�‚~Ü—6‘6˜,¨¨X¯^©^Ó-=Ó>ˆØÒ�tÐr"   c                óè   — | sy t        | t        «      r| n| j                  d«      }t        |«      } ||j	                  «       «      }|r$t        |t        «      r|dv r|j                  «       S |xs d S )Nr.   )Úhuggingfacerp   rE   )Úversionr^   r1   Úversion_strrJ   s        r#   Únormalize_versionr   Û   sn   € ñ Øä'¨´Ô5‘'¸7¿>¹>È'Ó;R€KÜ˜Ó€FÙ˜×*Ñ*Ó,Ó-€KÙ”˜E¤3Ô'¨EÐ5KÑ,KØ× Ñ Ó"Ð"ØÒ˜$Ðr"   c                 ó   — y r<   r!   ©rk   r1   s     r#   Únormalize_qualifiersr‚   é   s   € ð r"   c                 ó   — y r<   r!   r�   s     r#   r‚   r‚   ï   s   € ð r"   c                 ó   — y r<   r!   r�   s     r#   r‚   r‚   õ   s   € ð #&r"   c                óF  ‡— | s|rdS i S t        | t        «      rŒt        | t        «      r| n| j                  d«      }|j	                  d«      }t        d„ |D «       «      rt        d|›�«      ‚|D �cg c]  }|j                  d«      ‘Œ }}|D ���cg c]
  \  }}}||f‘Œ }	}}}n/t        | t        «      r| j                  «       }	nt        d| ›�«      ‚t        |«      }
|	D ��ci c]N  \  }}|rG|j                  «       r7|r5|j                  «       r%|j                  «       j                  «        |
|«      “ŒP }}}t        j                  t        j                  z   dz   Š|D ]x  }|st        d	«      ‚d
|v rt        d|›�«      ‚d|v rt        d|›�«      ‚t        ˆfd„|D «       «      rt        d|›�«      ‚|d   t        j                  v sŒlt        d|›�«      ‚ t        t!        |j                  «       «      «      }|s|S t#        |«      xs dS c c}w c c}}}w c c}}w )zõ
    Return normalized `qualifiers` as a mapping (or as a string if `encode` is
    True). The `qualifiers` arg is either a mapping or a string.
    Always return a mapping if decode is True (and never None).
    Raise ValueError on errors.
    Nr.   ú&c              3  ó$   K  — | ]  }d |v–— Œ
 y­w)ú=Nr!   )Ú.0Úkvs     r#   ú	<genexpr>z'normalize_qualifiers.<locals>.<genexpr>  s   è ø€ Ò7 ˆs˜"Œ}Ñ7ùs   ‚z7Invalid qualifier. Must be a string of key=value pairs:rˆ   z,Invalid qualifier. Must be a string or dict:ú.-_zA qualifier key cannot be emptyú%z+A qualifier key cannot be percent encoded: ú z'A qualifier key cannot contain spaces: c              3  ó&   •K  — | ]  }|‰v–— Œ
 y ­wr<   r!   ©r‰   ÚcÚvalid_charss     €r#   r‹   z'normalize_qualifiers.<locals>.<genexpr>)  s   øè ø€ Ò1¨ˆq˜Ô#Ñ1ùó   ƒz_A qualifier key must be composed only of ASCII letters and numbersperiod, dash and underscore: r   z,A qualifier key cannot start with a number: )r0   Ú
basestringr'   r3   rZ   ÚanyÚ
ValueErrorÚ	partitionrh   Úitemsr>   rF   rG   ÚstringÚascii_lettersÚdigitsÚsortedÚ_qualifier_map_to_string)rk   r1   Úqualifiers_strÚqualifiers_listrŠ   Úqualifiers_partsÚkrt   ÚvÚqualifiers_pairsrJ   Úqualifiers_mapÚkeyr’   s                @r#   r‚   r‚   û   s8  ø€ ñ ÙˆtÐ% 2Ð%ä�*œjÔ)Ü'1°*¼cÔ'B™È
×HYÑHYÐZaÓHbˆð )×.Ñ.¨sÓ3ˆÜÑ7 Ô7Ô7ÜØIÈ/ÐI\Ð]óð ð 9HÖH°"˜BŸL™L¨Õ-ÐHÐÐHØM]×6^Ð6^Á'À!ÀQÈ¸¸1²vÐ6^ÐÓ6^Ü	�J¤Ô	%Ø%×+Ñ+Ó-ÑäÐGÈ
À~ÐVÓWÐWä˜Ó€Fð %÷áˆAˆqÙ�—‘”™q Q§W¡W¤Yð 	
�‰‹	�‰Ó™6 !›9Ñ$ð€Nñ ô ×&Ñ&¬¯©Ñ6¸Ñ>€KØò UˆÙÜÐ>Ó?Ð?à�#‰:ÜÐJÈ3È'ÐRÓSÐSà�#‰:ÜÐFÀsÀgÐNÓOÐOäÓ1¨SÔ1Ô1Üð0Ø03¨wð8óð ð
 ˆq‰6”V—]‘]Ò"ÜÐKÈCÈ7ÐSÓTÐTð#Uô& œ& ×!5Ñ!5Ó!7Ó8Ó9€NáØÐÜ# NÓ3Ò;°tÐ;ùòM IùÜ6^ùós   Á2HÂHÃ%AHc                ó~   — | j                  «       D ��cg c]  \  }}|› d|› �‘Œ }}}dj                  |«      S c c}}w )Nrˆ   r†   )r˜   r\   )rk   r¥   ÚvaluerŸ   s       r#   r�   r�   9  sB   € Ø:D×:JÑ:JÓ:L×M©J¨C°˜#˜˜a ˜wÒ'ÐM€OÑMØ�8‰8�OÓ$Ð$ùó Ns   ”9c                ó  — | sy t        | t        «      r| n| j                  d«      }t        |«      }|j	                  d«      }|D �cg c]   }|j                  «       sŒ|dvsŒ ||«      ‘Œ" }}dj                  |«      }|xs d S c c}w )Nr.   rM   )ú.z..)r0   r'   r3   r>   rZ   rF   r\   )Úsubpathr1   Úsubpath_strrJ   ra   r5   s         r#   Únormalize_subpathr¬   >  s€   € ÙØä'¨´Ô5‘'¸7¿>¹>È'Ó;R€KÜ˜Ó€FØ× Ñ  Ó%€HØ#+ÖR˜a¨q¯w©w­y¸QÀkÒ=Q‘�q•	ÐR€HÐRØ—(‘(˜8Ó$€KØÒ˜$Ðùò Ss   ÁBÁBÁ"
Bc                 ó   — y r<   r!   ©rH   r]   ry   r}   rk   rª   r1   s          r#   Ú	normalizer¯   J  s	   € ð GJr"   c                 ó   — y r<   r!   r®   s          r#   r¯   r¯   V  s	   € ð KNr"   c                 ó   — y r<   r!   r®   s          r#   r¯   r¯   b  s	   € ð X[r"   c                óª   — t        | |«      }t        |||«      }t        ||||«      }	t        || |«      }
t	        ||«      }t        ||«      }|||	|
||fS )z+
    Return normalized purl components
    )rK   rc   rz   r   r‚   r¬   )rH   r]   ry   r}   rk   rª   r1   Ú	type_normÚnamespace_normÚ	name_normÚversion_normÚqualifiers_normÚsubpath_norms                r#   r¯   r¯   n  sh   € ô& ˜t VÓ,€IÜ(¨°I¸vÓF€NÜ˜t Z°¸FÓC€IÜ$ W¨d°FÓ;€LÜ*¨:°vÓ>€OÜ$ W¨fÓ5€LØ�n i°¸ÐP\Ð\Ð\r"   c                  óô   ‡ — e Zd ZU dZdZded<   ded<   ded<   ded	<   ded
<   ded<   ded<   	 	 	 	 	 	 	 d	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 dˆ fd„Zdd„Zdd„Zddd„Z	ddd„Z
ddd„Zedd d„«       Zedd!d„«       Zˆ xZS )"Ú
PackageURLz\
    A purl is a package URL as defined at
    https://github.com/package-url/purl-spec
    ÚpkgzClassVar[str]ÚSCHEMEr'   rH   ú
str | Noner]   ry   r}   údict[str, str]rk   rª   c           	     óT  •— t        ||¬«      }|j                  «       D ]  \  }	}
|
rŒ	t        d|	› d�«      ‚ t        |||||¬«      }|j                  «       D ]+  \  }	}
|
rt        |
t        «      s|
sŒt        d|	› d|
›d�«      ‚ |r%t        |t        t         f«      st        d|›d�«      ‚|rt        ||||||d ¬«      \  }}}}}}nKd	d
lm}  ||«      xs d} ||«      } ||«      xs d} ||«      }t        |t         «      r|}ni } ||«      }t        ‰| �%  | ||||||¬«      S )N)rH   ry   zInvalid purl: z is a required argument.)rH   r]   ry   r}   rª   z argument must be a string: r©   z>Invalid purl: qualifiers argument must be a dict or a string: r=   r   )Ú
ensure_strÚ ©rH   r]   ry   r}   rk   rª   )
rh   r˜   r–   r0   r”   r¯   Úpackageurl.utilsrÀ   ÚsuperÚ__new__)ÚclsrH   r]   ry   r}   rk   rª   Únormalize_purlÚrequiredr¥   r§   ÚstringsÚ
type_finalÚnamespace_finalÚ
name_finalÚversion_finalÚqualifiers_finalÚsubpath_finalrÀ   Ú	__class__s                      €r#   rÅ   zPackageURL.__new__›  s‘  ø€ ô ˜T¨Ô-ˆØ"Ÿ.™.Ó*ò 	M‰JˆC�ÙØÜ˜~¨c¨UÐ2JÐKÓLÐLð	Mô
 ØØØØØô
ˆð "Ÿ-™-›/ò 	[‰JˆC�Ùœ E¬:Ô6¹eØÜ˜~¨c¨UÐ2NÈuÈiÐWXÐYÓZÐZð	[ñ
 œj¨´jÄ$Ð5GÔHÜØPÐQ[ÐP^Ð^_Ð`óð ñ ô ˜$ 	¨4°¸*ÀgÐVZÔ[ñØØØØØ Ùõ 4á# DÓ)Ò/¨RˆJÙ(¨Ó3ˆOÙ# DÓ)Ò/¨RˆJÙ& wÓ/ˆMÜ˜*¤dÔ+Ø#-Ñ à#%Ð Ù& wÓ/ˆMä‰w‰ØØØ%ØØ!Ø'Ø!ð ó 
ð 	
r"   c                ó"   — | j                  «       S r<   )Ú	to_string)ÚselfÚargsÚkwargss      r#   Ú__str__zPackageURL.__str__ä  s   € Ø�~‰~ÓÐr"   c                ó4   — t        | j                  «       «      S r<   )ÚhashrÒ   )rÓ   s    r#   Ú__hash__zPackageURL.__hash__ç  s   € Ü�D—N‘NÓ$Ó%Ð%r"   c                ó    — | j                  «       }|rt        | j                  |¬«      |d<   |j                  «       D ]  \  }}|xs |||<   Œ |S )a  
        Return an ordered dict of purl components as {key: value}.
        If `encode` is True, then "qualifiers" are encoded as a normalized
        string. Otherwise, qualifiers is a mapping.
        You can provide a value for `empty` to be used in place of default None.
        r=   rk   )Ú_asdictr‚   rk   r˜   )rÓ   r1   ÚemptyÚdataÚfieldr§   s         r#   r,   zPackageURL.to_dictê  sT   € ð �|‰|‹~ˆÙÜ!5°d·o±oÈfÔ!UˆD�Ñà ŸJ™J›Lò 	)‰LˆE�5Øš. 5ˆD�ŠKð	)ð ˆr"   c           	     óH  — t        | j                  | j                  | j                  | j                  | j
                  | j                  |¬«      \  }}}}}}| j                  d|dg}|r|j                  |df«       |j                  |«       |r"|j                  d«       |j                  |«       |r=|j                  d«       t        |t        «      rt        |«      }|j                  |«       |r"|j                  d«       |j                  |«       dj                  |«      S )z=
        Return a purl string built from components.
        r=   r/   rM   ú@ú?ú#rÁ   )r¯   rH   r]   ry   r}   rk   rª   r¼   ÚextendÚappendr0   r   r�   r\   )	rÓ   r1   rH   r]   ry   r}   rk   rª   Úpurls	            r#   rÒ   zPackageURL.to_stringú  sð   € ô ?HØ�I‰IØ�N‰NØ�I‰IØ�L‰LØ�O‰OØ�L‰LØô?
Ñ;ˆˆi˜˜w¨
°Gð —‘˜S $¨Ð,ˆáØ�K‰K˜ CÐ(Ô)à�‰�DÔáØ�K‰K˜ÔØ�K‰K˜Ô áØ�K‰K˜ÔÜ˜*¤gÔ.Ü5°jÓA�
Ø�K‰K˜
Ô#áØ�K‰K˜ÔØ�K‰K˜Ô à�w‰w�t‹}Ðr"   c                óÒ   — ddl m} |j                  | j                  «      }|s)t	        t
        j                  d| j                  ›�¬«      gS t        |j                  | |¬«      «      S )za
        Validate this PackageURL object and return a list of validation error messages.
        r   )ÚDEFINITIONS_BY_TYPEzUnexpected purl type: expected ©r&   r(   )rå   Ústrict)	Úpackageurl.validaterç   ri   rH   r%   r   r   ÚlistÚvalidate)rÓ   ré   rç   Úvalidator_classs       r#   rì   zPackageURL.validate  sd   € õ 	<à-×1Ñ1°$·)±)Ó<ˆÙä!Ü/×5Ñ5Ø=¸d¿i¹i¸]ÐKôðð ô �O×,Ñ,°$¸vÐ,ÓFÓGÐGr"   c                óê   — 	 | j                  || ¬«      }t        |t        «      sJ ‚|j                  |¬«      S # t        $ r/}t        t        j                  t        |«      ¬«      gcY d}~S d}~ww xY w)zX
        Validate a PURL string and return a list of validation error messages.
        ©rÇ   )ré   rè   N)	Úfrom_stringr0   rº   rì   r–   r%   r   r   r'   )rÆ   rå   ré   Úpurl_objÚes        r#   Úvalidate_stringzPackageURL.validate_string/  sq   € ð

	Ø—‘ tÀ¸J�ÓGˆHÜ˜h¬
Ô3Ð3Ð3Ø×$Ñ$¨FÐ$Ó3Ð3øÜò 	ä!Ü/×5Ñ5Ü ›Fôðõ ûð	ús   ‚7: º	A2Á$A-Á'A2Á-A2c           	     ó`  ‡— |r t        |t        «      r|j                  «       st        d«      ‚|j	                  d«      \  }}}|r|| j
                  k7  rt        d| j
                  › d|›d�«      ‚|j                  «       j                  d«      }|j	                  d«      \  }}}|r|st        d|›d�«      ‚t        j                  t        j                  z   dz   Št        ˆfd	„|D «       «      st        d
|›d�«      ‚|d   t        j                  v rt        d|›d�«      ‚|j                  «       }|}t        |dd¬«      \  }}}	}
}|r|dz   |	z   }	|r|j                  dd«      d   }|dz   |	z   }	|	j                  d«      }	d}|dk(  r&|	j                  d«      r|	j	                  d«      \  }}}	|	j                  d«      \  }}}|s|}d}|j                  «       j                  d«      }|j                  d«      }|D �cg c]  }|sŒ|j                  «       sŒ|‘Œ }}d}|s*t!        |«      dkD  r|d   }|dd }dj#                  |«      }nt!        |«      dk(  r|d   }|st        d|›�«      ‚|rt%        |||||
|d¬«      \  }}}}}}nt'        |
d¬«      xs i } | |||||||¬«      S c c}w )zf
        Return a PackageURL object parsed from a string.
        Raise ValueError on errors.
        z#A purl string argument is required.r/   zpurl is missing the required "z" scheme component: r©   rM   z-purl is missing the required type component: rŒ   c              3  ó&   •K  — | ]  }|‰v –— Œ
 y ­wr<   r!   r�   s     €r#   r‹   z)PackageURL.from_string.<locals>.<genexpr>Z  s   øè ø€ Ò3¨�1˜Ô#Ñ3ùr“   z[purl type must be composed only of ASCII letters and numbers, period, dash and underscore: r   z&purl type cannot start with a number: rÁ   T)ÚurlÚschemeÚallow_fragmentsé   rq   rà   Néÿÿÿÿz-purl is missing the required name component: Fr=   rï   )r0   r'   rF   r–   r—   r¼   Úlstripr™   rš   r›   ÚallrG   Ú	_urlsplitrZ   Ú
startswithÚ
rpartitionÚlenr\   r¯   r‚   )rÆ   rå   rÇ   r÷   ÚsepÚ	remainderÚtype_Úoriginal_remainderÚ	authorityÚpathrž   rª   Úoriginal_schemer]   r}   Úns_nameÚns_name_partsr`   ry   Únsrk   r’   s                        @r#   rð   zPackageURL.from_string@  sù  ø€ ñ œ: d¬CÔ0¸¿
¹
¼ÜÐBÓCÐCà!%§¡°Ó!4Ñˆ��YÙ�f §
¡
Ò*ÜØ0°·±°Ð<PÐQUÐPXÐXYÐZóð ð
 —O‘OÓ%×,Ñ,¨SÓ1ˆ	ð
 !*× 3Ñ 3°CÓ 8Ñˆˆs�IÙ™CÜÐLÈTÈHÐTUÐVÓWÐWä×*Ñ*¬V¯]©]Ñ:¸UÑBˆÜÓ3¨UÔ3Ô3ÜØmÐnsÐmvÐvwÐxóð ð �‰8”v—}‘}Ñ$ÜÐEÀeÀYÈaÐPÓQÐQà—‘“ˆà&Ðä;DØ "°dô<
Ñ8ˆ�	˜4 °ñ Ø˜s‘? TÑ)ˆDáà0×6Ñ6°s¸AÓ>¸qÑAˆOØ" SÑ(¨4Ñ/ˆDà�{‰{˜3Óˆà "ˆ	ð
 �EŠ>˜dŸo™o¨cÔ2Ø#'§>¡>°#Ó#6Ñ ˆI�s˜Dà"&§/¡/°#Ó"6Ñˆ	�3˜ÙØˆIØˆGà—/‘/Ó#×)Ñ)¨#Ó.ˆØŸ™ cÓ*ˆØ(5ÖM ºÀÇÁÅšÐMˆÐMØˆÙœS Ó/°!Ò3Ø  Ñ$ˆDØ˜s Ð#ˆBØŸ™ ›‰IÜ�Ó 1Ò$Ø  Ñ#ˆDáÜÐLÈTÈHÐUÓVÐVáÜCLØØØØØØØôDÑ@ˆE�9˜d G¨Z¹ô .¨nÀUÔKÒQÈrˆJÙØ�9˜d G¨Z¸ÐQ_ô
ð 	
ùò1 Ns   Ç?J+ÈJ+ÈJ+)NNNNNNT)rH   úAnyStr | Noner]   r  ry   r  r}   r  rk   úAnyStr | dict[str, str] | Nonerª   r  rÇ   ÚboolÚreturnr   )rÔ   r	   rÕ   r	   r  r'   )r  Úint)FN)r1   úbool | NonerÜ   r	   r  zdict[str, Any]©T)r1   r  r  r'   )F)ré   r  r  úlist['ValidationMessage'])rå   r'   ré   r  r  r  )rå   r'   rÇ   r  r  r   )r   r   r   Ú__doc__r¼   r)   rÅ   rÖ   rÙ   r,   rÒ   rì   Úclassmethodró   rð   Ú__classcell__)rÐ   s   @r#   rº   rº   Š  sï   ø… ñð
 "€FˆMÓ!à
ƒIØÓØ
ƒIØÓØÓØÓð #Ø#'Ø"Ø!%Ø59Ø!%Ø#ðG
àðG
ð !ðG
ð ð	G
ð
 ðG
ð 3ðG
ð ðG
ð ðG
ð 
õG
óR ó&ôô #ôJHð  óó ðð  ób
ó ôb
r"   rº   rÂ   )r5   ÚAnyStrr  r'   r  )r1   r  r  zCallable[[AnyStr], str])r1   ÚNoner  zCallable[[str], str])r1   r  r  z.Callable[[AnyStr], str] | Callable[[str], str])rH   r  r1   r  r  r½   )r]   r  r^   r½   r1   r  r  r½   )rj   r'   rk   z'Union[str, bytes, dict[str, str], None]r  úOptional[str])
ry   r  rk   z.Union[Union[str, bytes], dict[str, str], None]r^   r½   r1   r  r  r  )r}   r  r^   zOptional[Union[str, bytes]]r1   r  r  r½   ).)rk   r  r1   úLiteral[True]r  r½   )rk   r  r1   úLiteral[False] | Noner  r¾   )rk   r  r1   r  r  zstr | dict[str, str] | None)rk   r¾   r  r'   )rª   r  r1   r  r  r½   )rH   r  r]   r  ry   r  r}   r  rk   r  rª   r  r1   r  r  z?tuple[str, str | None, str, str | None, str | None, str | None])rH   r  r]   r  ry   r  r}   r  rk   r  rª   r  r1   r  r  zCtuple[str, str | None, str, str | None, dict[str, str], str | None])rH   r  r]   r  ry   r  r}   r  rk   r  rª   r  r1   r  r  zPtuple[str, str | None, str, str | None, str | dict[str, str] | None, str | None])rH   r  r]   r  ry   r  r}   r  rk   r  rª   r  r1   r  r  z^tuple[str | None, str | None, str | None, str | None, str | dict[str, str] | None, str | None])2Ú
__future__r   r*   rw   r™   Úcollectionsr   Úcollections.abcr   r   Úenumr   Útypingr   r	   r
   r   r   Úurllib.parser   r2   r   r9   r   rý   Úpackageurl.contrib.router   r   r   r   Útyping_extensionsr   r   r'   Úbytesr  r”   r   r%   r>   rK   rc   rm   rz   r   r‚   r�   r¬   r¯   rº   r!   r"   r#   ú<module>r$     sï  ðõ2 #ã Û 	Û Ý "Ý #Ý !Ý Ý  Ý Ý Ý Ý Ý 0Ý 4Ý .å 5áÝ(Ý(Ýå)Ý&à�3˜�:Ñ€Fð �Sˆ\€
ðô˜˜dô ð ÷!ð !ó ð!ó
óð 
Û Có 
Ø Cð 
Ú 9ó 
Ø 9ô	ô,ð HLð-Øð-Ø%/ð-Ø9Dð-àó-ð8Øðà7ðð óð0 ð	%Ø
ð%à>ð%ð ð%ð ð	%ð
 ó%ðR W[ðØðØ#>ðØHSðàóð 
àHKðØ.ðØ8Eðàòó 
ðð
 
ðØ.ðØ8Mðàòó 
ðð
 
àFIð&Ø.ð&Ø8Cð&à ò&ó 
ð&ð GKð;<Ø.ð;<Ø8Cð;<à ó;<ó|%ô
	ð 
ð  ðJØ
ðJàðJð ðJð ð	Jð
 /ðJð ðJð ðJð EòJó 
ðJð 
ðNØ
ðNàðNð ðNð ð	Nð
 /ðNð ðNð "ðNð IòNó 
ðNð 
ð ð[Ø
ð[àð[ð ð[ð ð	[ð
 /ð[ð ð[ð ð[ð Vò[ó 
ð[ð$ ð]Ø
ð]àð]ð ð]ð ð	]ð
 /ð]ð ð]ð ð]ðó]ô8Y
Ùˆ|Ð^Ó_õY
r"   