ó
    !Eñi8Z  ã                   ó*  • S SK r S SKrS SKrS SK Jr  S SKJr  S SKrS SKJr   S SK	r  " S S5      r " S S\5      r\" 5       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S jrS rS rS r S r!S r"S r#S r$g! \
 a     Nif = f) é    N)Ú	reduction)Úregister_after_fork)Úcheck_serializing_named_tensorc                   óN   • \ rS rSrSrSS/rS r\S 5       rS r	S r
S	 rS
 rSrg)ÚStorageWeakRefé   z‚A weak reference to a Storage.

The cdata member is a Python number containing the integer representation of
the Storage pointer.
ÚcdataÚ_free_weak_refc                 ól   • UR                  5       U l        [        R                  R                  U l        g ©N)Ú	_weak_refr	   ÚtorchÚStorager
   )ÚselfÚstorages     Ú]/home/mande/repo/quber/.venv/lib/python3.13/site-packages/torch/multiprocessing/reductions.pyÚ__init__ÚStorageWeakRef.__init__    s&   € Ø×&Ñ&Ó(ˆŒ
ô $Ÿm™m×:Ñ:ˆÕó    c                 ór   • U R                  U 5      nXl        [        R                  R                  Ul        U$ r   )Ú__new__r	   r   r   r
   )Úclsr	   Úinstances      r   Úfrom_weakrefÚStorageWeakRef.from_weakref&   s,   € à—;‘;˜sÓ#ˆØŒÜ"'§-¡-×">Ñ">ˆÔØˆr   c                 óT   • [         R                  R                  U R                  5      $ r   )r   r   Ú_expiredr	   ©r   s    r   ÚexpiredÚStorageWeakRef.expired-   s   € Ü�}‰}×%Ñ% d§j¡jÓ1Ð1r   c                 ó:   • U R                  U R                  5        g r   ©r
   r	   r   s    r   Ú__del__ÚStorageWeakRef.__del__0   s   € Ø×Ñ˜DŸJ™JÕ'r   c                 ó   • U R                   $ r   )r	   r   s    r   Ú__hash__ÚStorageWeakRef.__hash__3   s   € Ø�z‰zÐr   c                 óf   • [        U 5      [        U5      :X  a  gU R                  UR                  :H  $ )NT)Úidr	   )r   Úothers     r   Ú__eq__ÚStorageWeakRef.__eq__6   s(   € Üˆd‹8”r˜%“yÓ ØØ�z‰z˜UŸ[™[Ñ(Ð(r   r"   N)Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__Ú	__slots__r   Úclassmethodr   r   r#   r&   r+   Ú__static_attributes__© r   r   r   r      sA   † ñð Ð*Ð+€Iò;ð ñó ðò2ò(òõ)r   r   c                   ó:   • \ rS rSrSrS
S jrS rS rS rS r	S	r
g)ÚSharedCacheé<   z:Dictionary from multiprocessing handles to StorageWeakRef.Nc                 óf   • SU l         U R                  5         [        U [        R                  5        g )Né€   )ÚlimitÚ_after_forkr   r7   r   s    r   r   ÚSharedCache.__init__?   s)   € ð ˆŒ
ð 	×ÑÔÜ˜D¤+×"9Ñ"9Õ:r   c                 ó8   • [         R                  " 5       U l        g r   )Ú	threadingÚLockÚlockr   s    r   r<   ÚSharedCache._after_forkI   s   € Ü—N’NÓ$ˆ�	r   c                 óz   • U R                      [        R                  X5      sS S S 5        $ ! , (       d  f       g = fr   )rA   ÚdictÚget)r   Úkeys     r   rE   ÚSharedCache.getL   s   € Ø�Y‹YÜ—8‘8˜DÓ&÷ �Y�Yús   �,¬
:c                 óÎ   • U R                      [        R                  XU5        [        U 5      U R                  :”  a  U R                  5         S S S 5        g ! , (       d  f       g = fr   )rA   rD   Ú__setitem__Úlenr;   Úfree_dead_references)r   rF   Ústorage_refs      r   rI   ÚSharedCache.__setitem__P   s?   € Ø�Y‹YÜ×Ñ˜T¨Ô4Ü�4‹y˜4Ÿ:™:Ó%Ø×)Ñ)Ô+÷ �YŽYús   �A AÁ
A$c                 ó°   • Sn[        U R                  5       5       H#  u  p#UR                  5       (       a  X	 M  US-  nM%     [        SUS-  5      U l        g )Nr   é   r:   é   )ÚlistÚitemsr   Úmaxr;   )r   ÚliverF   rL   s       r   rK   Ú SharedCache.free_dead_referencesV   sP   € ØˆÜ $ T§Z¡Z£\Ö 2ÑˆCØ×"Ñ"×$Ñ$Ø’Ià˜‘	’ñ	 !3ô
 ˜˜d Q™hÓ'ˆ�
r   )r;   rA   )ÚreturnN)r-   r.   r/   r0   r1   r   r<   rE   rI   rK   r4   r5   r   r   r7   r7   <   s   † ÙDô;ò%ò'ò,õ(r   r7   c                 óT   • [         R                  R                  R                  X5      $ r   )r   ÚcudaÚEventÚfrom_ipc_handle)ÚdeviceÚhandles     r   Úrebuild_eventr]   d   s   € Ü�:‰:×Ñ×+Ñ+¨FÓ;Ð;r   c                 óJ   • U R                  5       n[        U R                  U44$ r   )Ú
ipc_handler]   r[   )Úeventr\   s     r   Úreduce_eventra   h   s$   € Ø×ÑÓ€FÜ˜EŸL™L¨&Ð1Ð2Ð2r   c                 óþ   • Uu  p4pV[         R                  R                  XXE5      nU [         R                  R                  R
                  :X  a)  [         R                  R                  R                  XvS9nU$ Xgl        U$ )N©Úrequires_grad)r   Ú_utilsÚ_rebuild_tensorÚnnÚ	parameterÚ	Parameterrd   )r   r   ÚmetadataÚstorage_offsetÚsizeÚstriderd   Úts           r   Úrebuild_tensorro   m   sl   € Ø2:Ñ/€N˜&Ü�‰×$Ñ$ W¸dÓK€AØ
Œe�h‰h× Ñ ×*Ñ*Ó*ô �H‰H×Ñ×(Ñ(¨Ð(ÐHˆð €Hð (ŒØ€Hr   c                 óL  • [         R                  " USS9n[         R                  " XtSS9n[         R                  R	                  UUUU5      n	U [         R
                  R                  R                  :X  a)  [         R
                  R                  R                  X–S9n	U	$ Xil        U	$ )NÚmeta©r[   T©Úwrap_storageÚdtypeÚ	_internalrc   )	r   ÚUntypedStorageÚTypedStoragere   rf   rg   rh   ri   rd   )
Ú
tensor_clsÚtensor_sizeÚtensor_strideÚtensor_offsetru   Ústorage_size_bytesrd   Úuntyped_storageÚtyped_storagern   s
             r   Úrebuild_meta_tensorr€   z   sš   € ô ×*Ò*Ð+=ÀfÑM€Oä×&Ò&Ø$¸Tñ€Mô 	�‰×$Ñ$ØØØØó		€Að ”U—X‘X×'Ñ'×1Ñ1Ó1ô �H‰H×Ñ×(Ñ(¨Ð(ÐHˆð €Hð (Œà€Hr   c           
      óˆ  • Ub  US:X  a	  U" SXVSS9nOj[        XGU	45      nUcJ  [        R                  R                  5         UR	                  UUUU	UUUU5      n[        U5      [        Xy4'   OUR                  X¼US9  [        U[        R                  5      (       a  UOUR                  n[        R                  R                  [        R                  R                  UUSS9UUU5      nU [        R                  R                   R"                  :X  a*  [        R                  R                   R#                  UU
S9nU$ U
Ul        U$ )Nr   T)ru   r[   rv   rr   rs   rc   )Ústorage_from_cacher   rX   Ú
_lazy_initÚ_new_shared_cudar   Úshared_cacheÚ_release_ipc_counterÚ
isinstancerw   Ú_untyped_storagere   rf   r   rx   rg   rh   ri   rd   )ry   rz   r{   r|   Ústorage_clsru   Ústorage_deviceÚstorage_handler}   Ústorage_offset_bytesrd   Úref_counter_handleÚref_counter_offsetÚevent_handleÚevent_sync_requiredr   Ú_storagern   s                     r   Úrebuild_cuda_tensorr’   š   sW  € ð$ ÑÐ!3°qÓ!8Ù˜a uÈtÑT‰ä$ØÐ*>Ð?ó
ˆð ‰?Ü�J‰J×!Ñ!Ô#Ø!×2Ñ2ØØØ"Ø$Ø"Ø"ØØ#ó	ˆGô DRØóDŒL˜.Ð?Ò@ð
 ×,Ñ,Ø"¸~ð -ñ ô �gœu×3Ñ3×4Ñ4ñ 	à×%Ñ%ð ô 	�‰×$Ñ$Ü�‰×"Ñ"°ÀÐQUÐ"ÐVØØØó		€Að ”U—X‘X×'Ñ'×1Ñ1Ó1ô �H‰H×Ñ×(Ñ(¨¸-Ð(ÐHˆð €Hð (ˆŒà€Hr   c                 óJ  • U R                   (       a  U R                  (       d  [        S5      e[        U 5        [        R
                  R                  R                  U 5        SSKJ	n  U R                  (       a  [        X5      (       d  [        U 5      $ U R                  [        R                  [        R                  [        R                   [        R"                  [        R$                  1;   a  ['        U 5      $ U R)                  5       nUR*                  R,                  R.                  S:X  a”  UR1                  5       u  nnnnnnn	n
U R3                  5       n[5        U5      [6        U'   [8        [/        U 5      U R;                  5       U R=                  5       U[/        U5      U R>                  UUUUU R                   UUU	U
44$ UR*                  R,                  R.                  S:X  ar  [@        [/        U 5      U R;                  5       U R=                  5       U R3                  5       U R>                  U RC                  5       R;                  5       U R                   44$ U R3                  5       U R;                  5       U R=                  5       U R                   4n[D        [/        U 5      X,44$ )NzøCowardly refusing to serialize non-leaf tensor which requires_grad, since autograd does not support crossing process boundaries.  If you just want to transfer the data, call detach() on the tensor before serializing (e.g., putting it on the queue).r   )ÚNestedTensorrX   rq   )#rd   Úis_leafÚRuntimeErrorr   r   ÚutilsÚhooksÚwarn_if_has_hooksÚ$torch.nested._internal.nested_tensorr”   Ú	is_nestedr‡   Úreduce_nested_tensorÚlayoutÚ
sparse_cooÚ
sparse_csrÚ
sparse_bsrÚ
sparse_cscÚ
sparse_bscÚreduce_sparse_tensorÚ_typed_storagerˆ   r[   ÚtypeÚ_share_cuda_rk   r   r…   r’   rl   rm   ru   r€   r~   ro   )Útensorr”   r   r[   r\   r}   rŒ   r�   rŽ   r�   r�   r|   rj   s                r   Úreduce_tensorr¨   Þ   sC  € Ø×× F§N§NÜðBó
ð 	
ô # 6Ô*Ü	‡K�K×Ñ×'Ñ'¨Ô/õ~ Bà××¤
¨6× @Ñ @Ü# FÓ+Ð+à‡}�}Ü×ÑÜ×ÑÜ×ÑÜ×ÑÜ×Ñðó ô $ FÓ+Ð+à×#Ñ#Ó%€Gà×Ñ×&Ñ&×+Ñ+¨vÓ5ð × Ñ Ó"ñ		
ØØØØ ØØØØà×-Ñ-Ó/ˆÜ-¨gÓ6Œ�VÑô  ä�V“Ø—‘“Ø—‘“ØÜ�W“Ø—‘ØØØ"Ø$Ø×$Ñ$Ø"Ø"ØØ#ðð
ð 	
ð( 
×	!Ñ	!×	(Ñ	(×	-Ñ	-°Ó	7ää�V“Ø—‘“Ø—‘“Ø×%Ñ%Ó'Ø—‘Ø×&Ñ&Ó(×-Ñ-Ó/Ø×$Ñ$ðð
ð 	
ð 	×ÑÓØ�‰‹Ø�‰‹Ø×Ñð	€Hô œT &›\¨7Ð=Ð>Ð>r   c                 óX   • U " U6 nU" U6 n	U" U6 n
U" U6 n[         R                  " X‰X«5      $ r   )r   Ú_nested_view_from_buffer_copy)Úrebuild_buffer_funcÚrebuild_buffer_argsÚrebuild_sizes_funcÚrebuild_sizes_argsÚrebuild_strides_funcÚrebuild_strides_argsÚrebuild_offsets_funcÚrebuild_offsets_argsÚbufferÚsizesÚstridesÚoffsetss               r   Úrebuild_nested_tensorr·   ’  sC   € ñ !Ð"5Ð6€FÙÐ 2Ð3€EÙ"Ð$8Ð9€GÙ"Ð$8Ð9€GÜ×.Ò.¨v¸gÓOÐOr   c           	      óú   • [        U R                  5       5      u  p[        U R                  5       5      u  p4[        U R                  5       5      u  pV[        U R	                  5       5      u  px[
        UUUUUUUU44$ r   )r¨   ÚvaluesÚ_nested_tensor_sizeÚ_nested_tensor_stridesÚ_nested_tensor_storage_offsetsr·   )	Úntr«   r¬   r­   r®   r¯   r°   r±   r²   s	            r   rœ   rœ   £  s�   € Ü/<¸R¿Y¹Y»[Ó/IÑ,ÐÜ-:¸2×;QÑ;QÓ;SÓ-TÑ*ÐÜ1>Ø
×!Ñ!Ó#ó2Ñ.Ðô 2?Ø
×)Ñ)Ó+ó2Ñ.Ðô
 	àØØØØ Ø Ø Ø ð		
ðð r   c                 ó@   • U " U6 nU" U6 n[         R                  " XgXES9$ )N)Úis_coalesced)r   Úsparse_coo_tensor)Úrebuild_indices_funcÚrebuild_indices_argsÚrebuild_values_funcÚrebuild_values_argsÚshaper¿   Úindicesr¹   s           r   Úrebuild_sparse_coo_tensorrÇ   ¼  s-   € ñ #Ð$8Ð9€GÙ Ð"5Ð6€FÜ×"Ò" 7°EÑUÐUr   c                 óL   • U " U6 nU" U6 n	U" U6 n
[         R                  " X‰X¦US9$ )N)r�   )r   Úsparse_compressed_tensor)Úrebuild_compressed_indices_funcÚrebuild_compressed_indices_argsÚrebuild_plain_indices_funcÚrebuild_plain_indices_argsrÃ   rÄ   rÅ   r�   Úcompressed_indicesÚplain_indicesr¹   s              r   Ú rebuild_sparse_compressed_tensorrÐ   É  sD   € ñ 9Ø	(ðÐñ /Ð0JÐK€MÙ Ð"5Ð6€FÜ×)Ò)Ø¨6Àñð r   c           	      ó  • U R                   [        R                  L a\  [        U R	                  5       5      u  p[        U R                  5       5      u  p4[        UUUUU R                  U R                  5       44$ U R                   [        R                  [        R                  1;   a!  U R                  5       nU R                  5       nOdU R                   [        R                  [        R                  1;   a!  U R                  5       nU R!                  5       nO[#        U R                   5      e[        U5      u  nn[        U5      u  pš[        U R%                  5       5      u  p4[&        UUU	U
UUU R                  U R                   44$ r   )r�   r   rž   r¨   Ú_indicesÚ_valuesrÇ   rÅ   r¿   rŸ   r    Úcrow_indicesÚcol_indicesr¡   r¢   Úccol_indicesÚrow_indicesÚNotImplementedErrorr¹   rÐ   )ÚsparserÁ   rÂ   rÃ   rÄ   rÎ   rÏ   rÊ   rË   rÌ   rÍ   s              r   r£   r£   Ý  se  € Ø‡}�}œ×(Ñ(Ò(Ü5BÀ6Ç?Á?ÓCTÓ5UÑ2ÐÜ3@ÀÇÁÓAQÓ3RÑ0Ðä%à$Ø$Ø#Ø#Ø—‘Ø×#Ñ#Ó%ðð

ð 
	
ð �=‰=œU×-Ñ-¬u×/?Ñ/?Ð@Ó@Ø!'×!4Ñ!4Ó!6ÐØ"×.Ñ.Ó0‰MØ�]‰]œu×/Ñ/´×1AÑ1AÐBÓBØ!'×!4Ñ!4Ó!6ÐØ"×.Ñ.Ó0‰Mä% f§m¡mÓ4Ð4ô Ð,Ó-ñ	
Ø+Ø+äANØóB
Ñ>Ð"ô 4AÀÇÁÃÓ3QÑ0Ðä,à/Ø/Ø*Ø*Ø#Ø#Ø—‘Ø—‘ð	ð
ð 	
r   c                 ó^   • [         R                  " U 5      nUR                  UR                  4$ r   )ÚosÚfstatÚst_inoÚst_dev)ÚfdÚstats     r   Úfd_idrá     s$   € ô �8Š8�B‹<€DØ�K‰K˜Ÿ™Ð%Ð%r   c                 ó†   • [         R                  U5      nUc  g [        R                  R	                  UR
                  5      $ r   )r…   rE   r   rw   Ú_new_with_weak_ptrr	   )r   rF   rL   s      r   r‚   r‚     s8   € Ü×"Ñ" 3Ó'€KØÑØÜ×Ñ×2Ñ2°;×3DÑ3DÓEÐEr   c                 óB  • UR                  5       n [        U [        U5      5      nUb  U[        R                  " U5        $ U R                  X25      n[        U5      [        [        U5      '   U[        R                  " U5        $ ! [        R                  " U5        f = fr   )Údetachr‚   rá   rÛ   ÚcloseÚ_new_shared_fd_cpur   r…   )r   Údfrl   rß   r   s        r   Úrebuild_storage_fdré     sw   € Ø	�‰‹€BðÜ$ S¬%°«)Ó4ˆØÑØô
 	�Š��ð	 ×(Ñ(¨Ó2ˆÜ"0°Ó"9Œ”U˜2“YÑØä
�Š��øŒ�Š��ús   ’B Á-B ÂBc                 óx  • [        X5      nUb  UR                  5       $ Uc!  [        R                  R	                  XU5      nOWU[        R
                  R                  U5      -  n[        R                  R	                  XU5      n[        R                  " XtSS9n[        U5      [        U'   UR                  5       $ ©NTrs   )
r‚   Ú_shared_decrefr   rw   Ú_new_shared_filename_cpure   Ú_element_sizerx   r   r…   )r   Úmanagerr\   rl   ru   r   Ú	byte_sizer~   s           r   Úrebuild_storage_filenamerñ   (  sª   € Ü9KÈCÓ9X€GØÑØ×%Ñ%Ó'Ð'Ø�}Ü×&Ñ&×?Ñ?ÀÐQUÓV‰àœ5Ÿ<™<×5Ñ5°eÓ<Ñ<ˆ	ä× Ñ ×9Ñ9¸'È9ÓUð 	ô ×$Ò$Ø(Àñ
ˆô *¨'Ó2„L�ÑØ×!Ñ!Ó#Ð#r   c                 ó   • U " 5       $ r   r5   )r   s    r   Úrebuild_storage_emptyró   :  s	   € Ù‹5€Lr   c                 ó>   • [         R                  R                  XSS9$ rë   )r   r   rx   )r   ru   s     r   Úrebuild_typed_storagerõ   >  s   € Ü�=‰=×%Ñ%°7ÐSWÐ%ÐXÐXr   c                 ó>   • [         U R                  U R                  44$ r   )rõ   rˆ   ru   ©r   s    r   Úreduce_typed_storagerø   C  s   € Ü! G×$<Ñ$<¸g¿m¹mÐ#LÐMÐMr   c                 ó   • U" U SS9$ )NT)rt   rv   r5   )r   Ústorage_types     r   Úrebuild_typed_storage_childrû   G  s   € Ù W¸Ñ=Ð=r   c                 ó<   • [         U R                  [        U 5      44$ r   )rû   rˆ   r¥   r÷   s    r   Úreduce_typed_storage_childrý   L  s   € Ü'¨'×*BÑ*BÄDÈÃMÐ)RÐSÐSr   c                 óv  • SSK Jn  U R                  (       a  [        S5      eU R                  R
                  S:X  a  [        S5      eU" 5       S:X  aZ  U R                  5       nUS   n[        n[        U [        R                  5      (       a  X R                  4-  nU R                  5         OkU R                  5       S:X  a  [        [        U 5      44$ U R                  5       u  pV[         R"                  R%                  U5      n['        U5      nXv4n[(        n[+        U 5      [,        U'   U[        U 5      4U-   4$ )NrO   )Úget_sharing_strategyz>Cannot pickle CUDA storage; try pickling a CUDA tensor insteadrq   z>Cannot pickle meta storage; try pickling a meta tensor insteadÚfile_systemr   )Ú rÿ   Úis_cudar–   r[   r¥   Ú_share_filename_cpu_rñ   r‡   r   rx   ru   Ú_shared_increfrl   ró   Ú_share_fd_cpu_Úmultiprocessingr   ÚDupFdrá   ré   r   r…   )r   rÿ   rj   Ú	cache_keyÚrebuildrß   rl   rè   s           r   Úreduce_storager
  P  s  € Ý&à‡‡ÜØLó
ð 	
ð 
�‰×	Ñ	 Ó	&ÜØLó
ð 	
ñ 
Ó	 =Ó	0Ø×/Ñ/Ó1ˆØ˜Q‘Kˆ	Ü*ˆÜ�gœu×1Ñ1×2Ñ2ØŸ™Ð(Ñ(ˆHØ×ÑÕ Ø	�‰‹˜1Ó	ô &¬¨W«Ð'7Ð8Ð8à×)Ñ)Ó+‰ˆÜ×&Ñ&×,Ñ,¨RÓ0ˆÜ˜"“Iˆ	Ø�:ˆÜ$ˆä,¨WÓ5„L�ÑØ”d˜7“mÐ%¨Ñ0Ð1Ð1r   c                  ó†  • [         R                  " [        R                  R                  [
        5        [        R                   HK  n U R                  S:X  a  [         R                  " U [        5        M0  [         R                  " U [        5        MM     [         R                  " [        R                  R                  [        5        [        R                   H  n [         R                  " U [        5        M      [         R                  " [        R                  [        5        SSKJn  [         R                  " U[        5        g )Nrw   r   )ri   )r   Úregisterr   rX   rY   ra   Ú_storage_classesr-   r
  rý   r   rx   rø   Ú_tensor_classesr¨   ÚTensorÚtorch.nn.parameterri   )rn   ri   s     r   Úinit_reductionsr  q  sÀ   € Ü×Ò”u—z‘z×'Ñ'¬Ô6ä×#Ô#ˆØ�:‰:Ð)Ó)Ü×Ò˜q¤.Ö1ä×Ò˜qÔ"<Ö=ñ	 $ô ×Ò”u—}‘}×1Ñ1Ô3GÔHä×"Ô"ˆÜ×Ò˜1œmÖ,ñ #ô ×Ò”u—|‘|¤]Ô3å,ä×Ò�y¤-Õ0r   r   )%r  rÛ   r?   r   Úmultiprocessing.utilr   r   Útorch._namedtensor_internalsr   Úmultiprocessing.resource_sharerÚImportErrorr   rD   r7   r…   r]   ra   ro   r€   r’   r¨   r·   rœ   rÇ   rÐ   r£   rá   r‚   ré   rñ   ró   rõ   rø   rû   rý   r
  r  r5   r   r   Ú<module>r     sÕ   ðã Û 	Û Ý %Ý 4ã Ý Gð	ó +÷
")ñ ")ôJ!(�$ô !(ñJ ‹}€ò<ò3ò

òò@AòHq?òhPò"ò2
Vòò(,
ò^&òFò
ô$ò$òYò
Nò>ò
Tò2óB1øð} ó 	Ùð	ús   ¤B	 Â	BÂB