§
    ŠŠtjá  ã                   óv   — U d dl mZ g Zee         ed<   dededefd„Zdededeee	e	e	e	f                  fd	„Z
d
S )é    )ÚChunkStorageMetadataÚ__all__Úshard1Úshard2Úreturnc                 ó  — t          | j        ¦  «        }t          |¦  «        D ]\}| j        |         |j        |         |j        |         z   k    r dS |j        |         | j        |         | j        |         z   k    r dS Œ]dS )zCheck if two shards overlap.FT)ÚlenÚoffsetsÚrangeÚsizes)r   r   ÚndimsÚis       úe/var/www/html/CA-Chatbot/venv/lib/python3.11/site-packages/torch/distributed/checkpoint/resharding.pyÚ"_check_shard_metadata_pair_overlapr      s‹   € õ �”ÑÔ€EÝ�5‰\Œ\ð ð ˆØŒ>˜!Ô ¤¨qÔ 1°F´LÀ´OÑ CÒCÐCØ�5�5ØŒ>˜!Ô ¤¨qÔ 1°F´LÀ´OÑ CÒCÐCØ�5�5ð Dð ˆ4ó    Úsaved_shardÚcurrent_shardc                 ó4  — g }t          t          | j        |j        | j        |j        ¦  «        ¦  «        D ]a\  }\  }}}}t	          ||z   ||z   ¦  «        }|t          ||¦  «        z
  }	||k    rd}
||z
  }n||z
  }
d}|                     ||
||	f¦  «         Œb|S )aY  
    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.
    r   )Ú	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Ñ1Ø Ð#5Ñ5ñ
ô 
ˆð
 ¥Ð%9Ð;MÑ!NÔ!NÑNˆàÐ 4Ò4Ð4Ø&'Ð#Ø(:Ð=QÑ(QÐ%Ð%à&:Ð=OÑ&OÐ#Ø()Ð%à�ŠØÐ)Ð+DÀfÐMñ	
ô 	
ð 	
ð 	
ð €Nr   N)Ú%torch.distributed.checkpoint.metadatar   r   ÚlistÚstrÚ__annotations__Úboolr   ÚtupleÚintr$   © r   r   ú<module>r-      s¥   ðØ FÐ FÐ FÐ FÐ FÐ FÐ Fð €ˆˆcŒÐ Ð Ñ ðØ ðØ*>ðà	ðð ð ð ð$,Ø%ð,Ø6Jð,à	ˆ%��S˜#˜sÐ"Ô
#Ô$ð,ð ,ð ,ð ,ð ,ð ,r   