+
    ˜°³j  ã                  óÞ   € ^ RI Ht ^ RIt^ RIt^ RIHt ^ RIHtHtH	t	 ^ RI
Ht ]'       d   ^ RIHt ^ RIHt ]! R4      t]	! R	4      t]	! R
4      t]! 4       t]! ^R7      tR R ltR R ltR# )é    )ÚannotationsN)ÚThreadPoolExecutor)ÚConcatenateÚTYPE_CHECKINGÚTypeVar)Ú	ParamSpec)ÚCallable)ÚFutureÚ_PÚ_TÚ_C)Úmax_workersc               ó    € V ^8„  d   QhRRRR/# )é   ÚfunczCallable[[], _T]Úreturn© )Úformats   "ÚW/home/luca/screen-checking/.venv/lib/python3.14/site-packages/torch/utils/_functools.pyÚ__annotate__r      s   € ÷ ,ñ ,Ð-ð ,Ð2Bñ ,ó    c                óÆ   a aaa€ \         o\        P                  ! 4       oRoR VVVV 3R llpR VV3R llpR VVV3R llpR VVVV 3R	 llpW!n        W1n        WAn        V# )
z‘
Like functools.cache but with a prefetch() method that starts computing
the value in a background thread, and a set() method for prepopulating.
Nc               ó   € V ^8„  d   QhRR/# )r   r   r   r   )r   s   "r   r   Ú(prefetchable_cache.<locals>.__annotate__"   s   € ÷ 
ñ 
�Rñ 
r   c                 óØ   <€ S;_uu_ 4        S \         Jd   S uuR R R 4       # Se   SP                  4       o R oS uuR R R 4       # S! 4       o S uuR R R 4       #   + '       g   i     R # ; i©N)Ú_cache_sentinelÚresult©Ú_cacheÚ_futureÚ_lockr   s   €€€€r   ÚwrapperÚ#prefetchable_cache.<locals>.wrapper"   sU   ø€ çŠUØœ_Ó,Ø÷ ŠUð Ò"Ø Ÿ™Ó)�Ø�Ø÷ ŠUñ “VˆFØ÷ �U�U‹Uús   ŒA£AÁAÁA)	c               ó    € V ^8„  d   QhRRRR/# )r   Úvalr   r   ÚNoner   )r   s   "r   r   r   .   s   € ÷ ñ �Rð ˜Dñ r   c                ó„   <€ S;_uu_ 4        S\         Jd   \        R 4      hV oRRR4       R#   + '       g   i     R# ; i)z$prefetchable_cache value already setN)r   ÚRuntimeError)r&   r    r"   s   &€€r   Úset_valÚ#prefetchable_cache.<locals>.set_val.   s-   ø€ çŠUØœ_Ó,Ü"Ð#IÓJÐJØˆF÷ �U�UŠUús   Œ.®?	c               ó   € V ^8„  d   QhRR/# ©r   r   r'   r   )r   s   "r   r   r   5   s   € ÷ ñ �4ñ r   c                 óf   <€ S;_uu_ 4        \         o R oR R R 4       R #   + '       g   i     R # ; ir   )r   )r    r!   r"   s   €€€r   ÚclearÚ!prefetchable_cache.<locals>.clear5   s   ø€ çŠUÜ$ˆFØˆG÷ �U�UŠUús   Œ	Ÿ0	c               ó   € V ^8„  d   QhRR/# r-   r   )r   s   "r   r   r   ;   s   € ÷ 6ñ 6�dñ 6r   c                 ó²   <€ S;_uu_ 4        S \         Jg   Se    R R R 4       R # \        P                  S4      oR R R 4       R #   + '       g   i     R # ; ir   )r   Ú_prefetch_executorÚsubmitr   s   €€€€r   ÚprefetchÚ$prefetchable_cache.<locals>.prefetch;   s=   ø€ çŠUØœ_Ó,°Ò0CØ÷ ‰Uô )×/Ñ/°Ó5ˆG÷ �U�UŠUús   ŒA¦AÁA	)r   Ú	threadingÚLockÚsetr/   r5   )r   r#   r*   r/   r5   r    r!   r"   s   f    @@@r   Úprefetchable_cacher:      sZ   û€ ô
 *€FÜ�NŠNÓ€EØ!%€G÷
ó 
÷ñ ÷ò ÷6ó 6ð „KØ„MØÔØ€Nr   c               ó    € V ^8„  d   QhRRRR/# )r   Úfz!Callable[Concatenate[_C, _P], _T]r   r   )r   s   "r   r   r   H   s   € ÷ ñ Ø(ðà&ñr   c                óv   a a€ RS P                   ,           o\        P                  ! S 4      R VV 3R ll4       pV# )aê  
Like `@functools.cache` but for methods.

`@functools.cache` (and similarly `@functools.lru_cache`) shouldn't be used
on methods because it caches `self`, keeping it alive
forever. `@cache_method` ignores `self` so won't keep `self` alive (assuming
no cycles with `self` in the parameters).

Footgun warning: This decorator completely ignores self's properties so only
use it when you know that self is frozen or won't change in a meaningful
way (such as the wrapped function being pure).
Ú_cache_method_c               ó(   € V ^8„  d   QhRRRRRRRR/# )	r   Úselfr   Úargsz_P.argsÚkwargsz	_P.kwargsr   r   r   )r   s   "r   r   Ú"cache_method.<locals>.__annotate__Z   s(   € ÷ ñ �2ð ˜gð °ð ¸rñ r   c                óÚ   <€ V'       d   \        R 4      h\        V SR4      ;p'       g   / p\        V SV4       VP                  V\        4      pV\        Jd   V# S! V .VO5/ VB pWSV&   V# )z.cache_method does not accept keyword argumentsN)ÚAssertionErrorÚgetattrÚsetattrÚgetr   )r@   rA   rB   ÚcacheÚcached_valueÚvalueÚ
cache_namer<   s   &*,   €€r   ÚwrapÚcache_method.<locals>.wrapY   su   ø€ çÜ Ð!QÓRÐRÜ   z°4Ó8Ð8�Ö8ØˆEÜ�D˜* eÔ,Ø—y‘y ¤Ó7ˆØœÓ.ØÐÙ�$Ð(˜Ò( Ñ(ˆØˆd‰Øˆr   )Ú__name__Ú	functoolsÚwraps)r<   rM   rL   s   f @r   Úcache_methodrR   H   s:   ù€ ð " A§J¡JÕ.€Jä‡_‚_�QÓ÷ð ó ðð €Kr   )Ú
__future__r   rP   r7   Úconcurrent.futuresr   Útypingr   r   r   Útyping_extensionsr   Úcollections.abcr	   r
   r   r   r   Úobjectr   r3   r:   rR   r   r   r   Ú<module>rY      sa   ðÝ "ã Û Ý 1ß 6Ñ 6Ý '÷ Ý(Ý)ñ ˆtƒ_€ÙˆTƒ]€ÙˆTƒ]€ñ “(€á'°AÔ6Ð õ,÷^r   