ó
    "Eñiœ  ã                   ó^   • S r SSKrSq " S S5      rS\S\4S jrS\S\4S jrS\S\4S	 jrg)
z.Import mangling.
See mangling.md for details.
é    Nc                   óH   • \ rS rSrSrSS jrS\4S jrS\S\4S jrS	 r	S
r
g)ÚPackageMangleré   zR
Used on import, to ensure that all modules imported have a shared mangle parent.
ÚreturnNc                 óV   • [         U l         [         S-  q SU R                    S3U l        g )Né   z<torch_package_Ú>©Ú_mangle_indexÚ_mangle_parent©Úselfs    ÚT/home/mande/repo/quber/.venv/lib/python3.13/site-packages/torch/package/_mangling.pyÚ__init__ÚPackageMangler.__init__   s.   € ä*ˆÔä˜Ñˆð !0°×0BÑ0BÐ/CÀ1ÐEˆÕó    c                 óZ   • [        U5      S:X  a  [        S5      eU R                  S-   U-   $ )Nr   zname must not be emptyÚ.)ÚlenÚAssertionErrorr   )r   Únames     r   ÚmangleÚPackageMangler.mangle   s/   € Üˆt‹9˜‹>Ü Ð!9Ó:Ð:Ø×"Ñ" SÑ(¨4Ñ/Ð/r   Úmangledc                 ót   • UR                  U R                  S-   5      (       a  UR                  S5      S   $ U$ )zŸ
Note: This only demangles names that were mangled by this specific
PackageMangler. It will pass through names created by a different
PackageMangler instance.
r   é   )Ú
startswithr   Ú	partition)r   r   s     r   ÚdemangleÚPackageMangler.demangle    s=   € ð ×Ñ˜d×1Ñ1°CÑ7×8Ñ8Ø×$Ñ$ SÓ)¨!Ñ,Ð,ð ˆr   c                 ó   • U R                   $ )N)r   r   s    r   Úparent_nameÚPackageMangler.parent_name,   s   € Ø×"Ñ"Ð"r   r
   )r   N)Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__r   Ústrr   r   r"   Ú__static_attributes__© r   r   r   r      s1   † ñôFð0˜cô 0ð

 ð 
¨ô 
õ#r   r   r   r   c                 óB   • [        [        R                  " SU 5      5      $ )Nz<torch_package_\d+>)ÚboolÚreÚmatch©r   s    r   Ú
is_mangledr1   0   s   € Ü”—’Ð/°Ó6Ó7Ð7r   c                 ót   • [        U 5      (       a'  U R                  S5      u  pn[        U5      S:w  a  U$ S$ U $ )z€
Note: Unlike PackageMangler.demangle, this version works on any
mangled name, irrespective of which PackageMangler created it.
r   r   Ú )r1   r   r   )r   Ú_firstÚsepÚlasts       r   r   r   4   s>   € ô
 �$×ÑØ ŸN™N¨3Ó/Ñˆ�Tô ˜3“x 1“}ˆtÐ,¨"Ð,Ø€Kr   c                 óN   • [        U 5      (       a  U R                  S5      S   $ U $ )Nr   r   )r1   r   r0   s    r   Úget_mangle_prefixr8   A   s%   € Ü%/°×%5Ñ%5ˆ4�>‰>˜#Ó˜qÑ!Ð?¸4Ð?r   )	r(   r.   r   r   r)   r-   r1   r   r8   r+   r   r   Ú<module>r9      s]   ðñó 
ð €÷!#ñ !#ðH8�Sð 8˜Tô 8ð
�3ð 
˜3ô 
ð@˜Cð @ Cõ @r   