+
    –°³já  ã                   óB   a € R t0 t ^ RIHt . t] ^ k R R ltR R ltR# )é    )ÚChunkStorageMetadatac                ó<   € V ^8„  d   QhR\         R\         R\        /# )é   Úshard1Úshard2Úreturn)r   Úbool)Úformats   "Úh/home/luca/screen-checking/.venv/lib/python3.14/site-packages/torch/distributed/checkpoint/resharding.pyÚ__annotate__r      s$   € ÷ ñ Ü ðÜ*>ðä	ñó    c                ód  € \        V P                  4      p\        V4       F‹  pV P                  V,          VP                  V,          VP                  V,          ,           8¼  d    R# VP                  V,          V P                  V,          V P                  V,          ,           8¼  g   KŠ   R# 	  R# )zCheck if two shards overlap.FT)ÚlenÚoffsetsÚrangeÚsizes)r   r   ÚndimsÚis   &&  r   Ú"_check_shard_metadata_pair_overlapr      sy   € ô �—‘Ó€EÜ�5Ž\ˆØ�>‰>˜!Õ §¡¨qÕ 1°F·L±LÀµOÕ CÔCÚØ�>‰>˜!Õ §¡¨qÕ 1°F·L±LÀµOÕ CÖCÚñ	 ñ r   c                óˆ   € V ^8„  d   QhR\         R\         R\        \        \        \        \        \        3,          ,          /# )r   Úsaved_shardÚcurrent_shardr   )r   ÚlistÚtupleÚint)r
   s   "r   r   r      s7   € ÷ ,ñ ,Ü%ð,Ü6Jð,ä	Œ%””Sœ#œsÐ"Õ
#Õ$ñ,r   c                óV  € . p\        \        V P                  VP                  V P                  VP                  4      4       Fc  w  pw  pppp\	        WF,           WW,           4      pV\        WT4      ,
          p	WE8”  d   ^ p
WE,
          pM
WT,
          p
^ pVP                  W:W¹34       Ke  	  V# )aA  
Return the overlapping region between saved_shard and current_shard.

The returned list has the same number of elements as the tensor's dimension.
For each element, we produce a tuple with the following contents:
    (dimension, `saved_shard` offset, `current_shard` offset, length)

Offsets are relative to each shard.
)Ú	enumerateÚzipr   r   ÚminÚmaxÚappend)r   r   ÚnarrowsÚdimÚsaved_shard_offsetÚcurrent_shard_offsetÚsaved_shard_sizeÚcurrent_shard_sizeÚmin_range_endÚlengthÚoffset_for_saved_tensorÚoffset_for_current_tensors   &&          r   Ú+_shards_get_overlap_region_wrt_saved_tensorr,      sÆ   € ð €Gô 
ÜØ×ÑØ×!Ñ!Ø×ÑØ×Ñó		
ö
ñ	ˆñ ØØØØô ØÕ1Ø Õ5ó
ˆð
 ¤Ð%9Ó!NÕNˆàÔ4Ø&'Ð#Ø(:Õ(QÑ%à&:Õ&OÐ#Ø()Ð%à�‰ØÐ+DÐMö	
ñ-
ð4 €Nr   c                óV   € V ^8„  d   Qh/ ^ \         9   d   \        \        ,          ;R&   # )r   Ú__all__)Ú__conditional_annotations__r   Ústr)r
   s   "r   r   r      s   € × FÑ F÷ Ò ŒŒc�Ñ ò Gr   N)r/   Ú%torch.distributed.checkpoint.metadatar   r.   r   r,   r   )r/   s   @r   Ú<module>r2      s    øðß FÒ Fð €Ó õ÷$,r   