Ë
    ÃÓ^j™  ã                  ó(  — d dl mZ d dlZd dlZd dlZd dlZd dlmZmZm	Z	 d dl
mZ eez  ez  ez  Z G d„ de	«      Z ej$                  d¬«       G d	„ d
«      «       Z edd¬«      Z edddd¬«      Z eddd¬«      Z edd¬«      Z eddd¬«      Zy)é    )ÚannotationsN)ÚAnyÚLiteralÚProtocol)Úassert_neverc                  ó$   — e Zd Zdd„Zdd„Zdd„Zy)Ú	_HashLikec                ó   — y ©N© )ÚselfÚdatas     úd/var/www/ramen.bs-engineer-server.com/venv/lib/python3.12/site-packages/torch/_inductor/cache_key.pyÚupdatez_HashLike.update   ó   � ó    c                 ó   — y r   r   ©r   s    r   Údigestz_HashLike.digest   r   r   c                 ó   — y r   r   r   s    r   Ú	hexdigestz_HashLike.hexdigest   r   r   N)r   ÚbytesÚreturnÚNone)r   r   )r   Ústr)Ú__name__Ú
__module__Ú__qualname__r   r   r   r   r   r   r	   r	      s   „ Û1Û"Ü#r   r	   T)Úfrozenc                  óˆ   — e Zd ZU dZded<   ded<   dZded<   dZd	ed
<   dZded<   edd„«       Z	dd„Z
dd„Zdd„Zddœdd„Zy)ÚCacheKeyStrategya6  
    Describes how an Inductor cache turns stable components into a cache key.

    Different caches intentionally use different key formats for compatibility
    with existing on-disk and remote cache layouts. Keeping those choices in
    named strategies makes the composition explicit at the call site.
    r   ÚnamezLiteral['base32', 'hex']Údigest_formatÚ ÚprefixNzbytes | NoneÚ	separatoré3   ÚintÚbase32_lengthc                ó  — t        | t        «      r| j                  d«      S t        | t        «      r| S t        | t        «      rt        | «      S t        | t
        «      r| j                  «       S t        dt        | «      ›�«      ‚)Núutf-8z!Unsupported cache key component: )	Ú
isinstancer   Úencoder   Ú	bytearrayÚ
memoryviewÚtobytesÚ	TypeErrorÚtype)Ú	components    r   Ú	_to_byteszCacheKeyStrategy._to_bytes%   ss   € ä�i¤Ô%Ø×#Ñ# GÓ,Ð,Ü�i¤Ô'ØÐÜ�i¤Ô+Ü˜Ó#Ð#Ü�i¤Ô,Ø×$Ñ$Ó&Ð&ÜÐ;¼DÀ»OÐ;NÐOÓPÐPr   c                óì   — t        j                  «       }t        |«      D ]Q  \  }}|dkD  r'| j                  �|j	                  | j                  «       |j	                  | j                  |«      «       ŒS |S )Nr   )ÚhashlibÚsha256Ú	enumerater&   r   r4   )r   Ú
componentsÚhasherÚidxr3   s        r   Ú_hasherzCacheKeyStrategy._hasher1   sb   € Ü—‘Ó!ˆÜ'¨
Ó3ò 	5‰NˆC�Ø�QŠw˜4Ÿ>™>Ð5Ø—‘˜dŸn™nÔ-Ø�M‰M˜$Ÿ.™.¨Ó3Õ4ð	5ð ˆr   c                óF  — | j                  |«      }| j                  dk(  r|j                  «       S | j                  dk(  rMt        j                  |j                  «       «      d | j                   j                  d«      j                  «       S t        | j                  «       y )NÚhexÚbase32r+   )
r<   r#   r   Úbase64Ú	b32encoder   r)   ÚdecodeÚlowerr   )r   r9   r:   s      r   r   zCacheKeyStrategy.digest9   s„   € Ø—‘˜jÓ)ˆØ×Ñ Ò&Ø×#Ñ#Ó%Ð%Ø×Ñ Ò)ô × Ñ  §¡£Ó1Ð2F°D×4FÑ4FÐGß‘˜“ß‘“ðô
 	�T×'Ñ'Õ(r   c                ó<   — | j                   ›  | j                  |Ž › �S r   )r%   r   )r   r9   s     r   ÚkeyzCacheKeyStrategy.keyF   s!   € Ø—+‘+�˜{˜tŸ{™{¨JÐ7Ð8Ð9Ð9r   T©Ú	sort_keysc               óN   — | j                  t        j                  ||¬«      «      S )NrF   )rE   ÚjsonÚdumps)r   ÚvaluerG   s      r   Úkey_from_jsonzCacheKeyStrategy.key_from_jsonI   s   € Ø�x‰xœŸ
™
 5°IÔ>Ó?Ð?r   )r3   ÚCacheKeyComponentr   r   )r9   ztuple[CacheKeyComponent, ...]r   r	   )r9   rM   r   r   )rK   r   rG   Úboolr   r   )r   r   r   Ú__doc__Ú__annotations__r%   r&   r)   Ústaticmethodr4   r<   r   rE   rL   r   r   r   r!   r!      sa   … ñð ƒIØ+Ó+Ø€FˆCÓØ"€Iˆ|Ó"Ø€M�3Óàò	Qó ð	Qóó)ó:ð >Bö @r   r!   Úcompactr?   )r"   r#   ÚcodeÚcs   ||)r"   r#   r%   r&   Úfx_graphÚf)r"   r#   r%   Úsystemr>   Úautotune)r"   r#   r&   )Ú
__future__r   r@   Údataclassesr6   rI   Útypingr   r   r   Útyping_extensionsr   r   r   r.   r/   rM   r	   Ú	dataclassr!   ÚCOMPACT_CACHE_KEY_STRATEGYÚCODE_CACHE_KEY_STRATEGYÚFX_GRAPH_CACHE_KEY_STRATEGYÚSYSTEM_CACHE_KEY_STRATEGYÚAUTOTUNE_CACHE_KEY_STRATEGYr   r   r   ú<module>rc      sÔ   ðÝ "ã Û Û Û ß )Ñ )Ý *ð ˜%‘K )Ñ+¨jÑ8Ð ô$�ô $ð €×Ñ˜dÔ#÷5@ð 5@ó $ð5@ñp .Ø	ØôÐ ñ
 +Ø	ØØØô	Ð ñ /Ø	ØØôÐ ñ -Ø	ØôÐ ñ
 /Ø	Øàô	Ñ r   