+
    –°³j“L  ã                   óŠ  € ^ RI t ^ RIt^ RIt^ RIt^ RIHt ^ RIHt ^ RIH	t	 ^ RI
HtHt ^ RIHt ^ RIt^ RIHt ^ RIHt ^ RIHt ^ R	IHt ^ R
IHt ^ RIHt ^ RIHt ^ RIH t  ^ RI!H"t"H#t# ^ RI$H%t%H&t&H't' ^ RI(H)t) ^ RI*H+t+H,t, ^ RI-H.t. ^RI/H0t0H1t1H2t2 ]'       d   ^ RI3H4t4 . R0Ot5 ! R R]	4      t6]! R]7R7      R1R R ll4       t8]! RR7      ]0RRR RR!RR"RR#RR$R/R% R& ll4       4       t9] ! R' R4      4       t:]! RR7      RRR RR!RR"RR(]6Pv                  R)RR#RR$R/R* R+ ll4       t<]! RR7      R, R- l4       t=R2R. R/ llt>R# )3é    N©ÚFuture)Ú	dataclass)ÚEnum)ÚcastÚTYPE_CHECKING)Ú
deprecated©ÚSTATE_DICT_TYPE)Ú$_ProcessBasedAsyncCheckpointExecutor)Ú#_ThreadBasedAsyncCheckpointExecutor)Ú_storage_setup)ÚDefaultSavePlanner)Ú_dcp_method_logger)ÚMetadata)ÚSavePlanÚSavePlanner)ÚAsyncStagerÚDefaultStagerÚStagingOptions)ÚStateful)ÚStorageWriterÚWriteResult)Ú_get_default_group)Ú_api_bc_checkÚ_DistWrapperÚ_profile)Ú_AsyncCheckpointExecutorÚAsyncCheckpointerTypeÚAsyncSaveResponsec                   ó"   € ] tR t^4tRtRtRtRtR# )r   z!Enum for async checkpointer type.ÚthreadÚprocess© N)Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__ÚTHREADÚPROCESSÚ__static_attributes__r$   ó    Ún/home/luca/screen-checking/.venv/lib/python3.14/site-packages/torch/distributed/checkpoint/state_dict_saver.pyr   r   4   s   † Ù+à€FØ„Gr-   za`save_state_dict` is deprecated and will be removed in future versions.Please use `save` instead.)ÚcategoryFc                óœ   € V ^8„  d   QhR\         R\        R\        P                  R,          R\        R\
        R\        R,          R\        /# )	é   Ú
state_dictÚstorage_writerÚprocess_groupNÚcoordinator_rankÚno_distÚplannerÚreturn©r   r   ÚdistÚProcessGroupÚintÚboolr   r   )Úformats   "r.   Ú__annotate__r?   @   s^   € ÷ 
ñ 
Üð
ä!ð
ô ×$Ñ$ tÕ+ð
ô ð	
ô
 ð
ô ˜4Õð
ô ñ
r-   c           
     ó¤   € VP                  4        \        4       ;_uu_ 4        \        V VVVVV4      uuRRR4       #   + '       g   i     R# ; i)z3This method is deprecated. Please switch to 'save'.N)Úresetr   Ú_save_state_dict)r2   r3   r4   r5   r6   r7   s   &&&&&&r.   Úsave_state_dictrC   ;   s?   € ð ×ÑÔô 
��ÜØØØØØØó
÷ 
��‹ús	   £>¾A	T©Úlog_exceptionsÚcheckpoint_idr3   r7   r4   r6   Úuse_collectivesc                óî   € V ^8„  d   QhR\         R\        \        P                  ,          R,          R\        R,          R\
        R,          R\        P                  R,          R\        R\        R	\        /# )
r1   r2   rF   Nr3   r7   r4   r6   rG   r8   )
r   ÚstrÚosÚPathLiker   r   r:   r;   r=   r   )r>   s   "r.   r?   r?   Y   s‡   € ÷ r
ñ r
Üðr
ô œŸ™Õ$ tÕ+ðr
ô " DÕ(ð	r
ô
 ˜4Õðr
ô ×$Ñ$ tÕ+ðr
ô ðr
ô ðr
ô ñr
r-   c               óØ  € \         P                  P                  R4       T;'       g=    \        P                  ! 4       '       * ;'       g    \        P
                  ! 4       '       * pV'       d   \        P                  ! R^R7       \        4       ;_uu_ 4        \        \        \        W!RR7      4      p\        \        V 4      VVVVVR7      uuRRR4       #   + '       g   i     R# ; i)a,  
Save a distributed model in SPMD style.

This function is different from ``torch.save()`` as it handles
``ShardedTensor`` , and ``DTensor`` by having each rank only save their local shards.

For each ``Stateful`` object (having both a ``state_dict`` and a ``load_state_dict``),
save will call ``state_dict`` before serialization.

.. warning::
    There are no guarantees of Backwards Compatibility across PyTorch versions
    for saved state_dicts.

.. warning::
    If using the `process_group` argument, make sure that only its ranks
    call `save_state_dict` and that all data in state_dict belong to it.

.. note::
    When saving checkpoint for FSDP's `ShardingStrategy.HYBRID_SHARD`, only one of
    the shard_group should be calling `save_state_dict` and the corresponding process
    group needs to be passed in.

.. note::
    If no process group is available, this function assumes the intention is to save the
     state_dict in the local process.

.. note:
    Rank 0 is assumed to be the coordinator rank.


Args:
    state_dict (Dict[str, Any]): The state_dict to save.
    checkpoint_id (Union[str, os.PathLike, None]):
        The ID of this checkpoint instance. The meaning of the checkpoint_id
        depends on the storage. It can be a path to a folder or to a file.
        It can also be a key if the storage is a key-value store.
        (Default: ``None``)
    storage_writer (Optional[StorageWriter]):
        Instance of StorageWriter used to perform writes. If this is not
        specified, DCP will automatically infer the writer based on the
        checkpoint_id. If checkpoint_id is also None, an exception will
        be raised. (Default: ``None``)
    planner (Optional[SavePlanner]):
        Instance of SavePlanner. If this is not specified, the default
        planner will be used. (Default: ``None``)
    process_group (Optional[ProcessGroup]):
        ProcessGroup to be used for cross-rank synchronization.
        (Default: ``None``)
    no_dist (bool):
        If ``True``, this function will assume the intent is to load
        a checkpoint on a single rank/process.
        (Default: ``False``)
    use_collectives (bool): If ``False``, this function will assume the intent is to save
        a checkpoint without using cross-rank synchronization.
        (Default: ``True``)
        This configuration is experimental and should be used with caution.
        It will change the format of the saved checkpoint and may not be backward compatible.

Returns:
    Metadata: Metadata object for the saved checkpoint.

Example:
    >>> # xdoctest: +SKIP
    >>> my_model = MyModule()

    >>> state_dict = {"model": my_model}

    >>> fs_storage_writer = torch.distributed.checkpoint.FileSystemWriter(
    ...     "/checkpoint/1"
    ... )
    >>> torch.distributed.checkpoint.save(
    >>>     state_dict=state_dict,
    >>>     storage_writer=fs_storage_writer,
    >>> )

.. note::
    save_state_dict uses collectives to coordinate writes across ranks.
    For NCCL-based process groups, internal tensor representations of
    objects must be moved to the GPU device before communication takes place.
    In this case, the device used is given by ``torch.cuda.current_device()``
    and it is the user's responsibility to ensure that this is set so that
    each rank has an individual GPU, via ``torch.cuda.set_device()``.
z!torch.distributed.checkpoint.savezptorch.distributed is disabled, unavailable or uninitialized, assuming the intent is to save in a single process.©Ú
stacklevelF)Úreader)r2   r3   r4   r6   r7   rG   N)ÚtorchÚ_CÚ_log_api_usage_oncer:   Úis_availableÚis_initializedÚwarningsÚwarnr   r   r   r   rB   Ú_stateful_to_state_dict)r2   rF   r3   r7   r4   r6   rG   s   &$$$$$$r.   ÚsaverX   W   s§   € ô~ 
‡H�H× Ñ Ð!DÔEà×QÐQœd×/Ò/Ó1Ô1×QÐQ¼4×;NÒ;NÓ;PÔ7P€GßÜ�ŠØ~Øõ	
ô
 
��ÜÜœ>¨.ÐPUÔVó
ˆô  Ü.¨zÓ:Ø)Ø'ØØØ+ô
÷ 
��‹ús   Â5CÃC)	c                   ó0   a € ] tR t^Ît o RtV 3R ltRtV tR# )r    a	  This class contains futures for staging and upload completion.
It is returned by async_save().
staging_completion is a future that indicates when local copy
of state_dict is complete.
upload_completion is a future that indicates when a checkpoint
completed saving.
c                óN   <€ V ^8„  d   Qh/ S[ R,          ;R&   S[ R,          ;R&   # )r1   NÚstaging_completionÚupload_completionr   )r>   Ú__classdict__s   "€r.   r?   ÚAsyncSaveResponse.__annotate__Î   s'   ø‡ ‚ ñ ˜t�Ñ$ñ ñ ˜d•|Ñ#ò r-   r$   N)r%   r&   r'   r(   r)   Ú__annotate_func__r,   Ú__classdictcell__)r]   s   @r.   r    r    Î   s   ø‡ € ñ÷ ƒ r-   Úasync_checkpointer_typeÚasync_stagerc                ó*  € V ^8„  d   QhR\         R\        \        P                  ,          R,          R\        R,          R\
        R,          R\        P                  R,          R\        R\        R,          R	\        R
\        R\        \        ,          /
# )r1   r2   rF   Nr3   r7   r4   ra   rb   r6   rG   r8   )r   rI   rJ   rK   r   r   r:   r;   r   r   r=   r   r    )r>   s   "r.   r?   r?   Ý   s¨   € ÷ nñ nÜðnô œŸ™Õ$ tÕ+ðnô " DÕ(ð	nô
 ˜4Õðnô ×$Ñ$ tÕ+ðnô 3ðnô  Õ$ðnô ðnô ðnô ÔÕñnr-   c               ó²  a aaaa€ \         P                  P                  R4       \        P                  ! 4       '       d`   \        P
                  ! 4       '       dE   T;'       g    \        4       p	\         P                  ! R4      V	P                  9  d   \        R4      hRoSf7   Ve   \        V\        4      '       d   VoM\        \        RRRR4      4      oSo\        S 4      o RoR VV3R llo\        RR	7      R
 VV 3R ll4       p
\         P"                  ! 4       ;_uu_ 4       pSe   VP%                  S4       V
! 4       pV\&        P(                  8X  d   \+        4       M	\-        4       pVP/                  VVVVVVVR7      pSe&   VP1                  V3R l4       VP3                  4        RRR4       \        X\4        4      '       d\   Tp\5        4       pV3R R llpVP7                  4       '       g   VP1                  V4       MVP9                  R4       \;        VXR7      # \        RR	7      V3R l4       pV! 4        X#   + '       g   i     LŸ; i)a,  Asynchronous version of ``save``. This code first de-stages the state_dict on to the
staging storage (defaults to CPU memory), and then calls the `save` in a separate thread.

.. warning::
    This feature is experimental and subject to change.
    If you provide an ``async_stager``, call ``close()`` after the last
    checkpoint is saved. Internally created default stagers are closed
    automatically.

Args:
    state_dict (Dict[str, Any]): The state_dict to save.
    checkpoint_id (Union[str, os.PathLike, None]):
        The ID of this checkpoint instance. The meaning of the checkpoint_id
        depends on the storage. It can be a path to a folder or to a file.
        It can also be a key if the storage is a key-value store.
        (Default: ``None``)
    storage_writer (Optional[StorageWriter]):
        Instance of StorageWriter used to perform 'stage' and  'save'. If
        this is not specified, DCP will automatically infer the writer based on the
        checkpoint_id. If checkpoint_id is also None, an exception will
        be raised. (Default: ``None``)
    planner (Optional[SavePlanner]):
        Instance of SavePlanner. If this is not specified, the default
        planner will be used. (Default: ``None``)
    process_group (Optional[ProcessGroup]):
        ProcessGroup to be used for cross-rank synchronization.
        (Default: ``None``)
    async_checkpointer_type (AsyncCheckpointerType):
        whether to do checkpoint in separate thread or process
        (Default: ``AsyncCheckpointerType.THREAD``)
    async_stager (AsyncStager):
        provides staging implementation. If ``storage_writer`` implements
        ``AsyncStager`` and ``async_stager`` is not provided, ``storage_writer``
        will be used for staging. User-provided stagers remain owned by the
        caller and should be closed after the last checkpoint is saved.
    no_dist (bool):
        If ``True``, this function will assume the intent is to save
        a checkpoint on a single rank/process.
        (Default: ``False``)
    use_collectives: If False, Save the checkpoint without rank coordination. (Default: ``True``)
        This configuration is experimental and should be used with caution.
        It will change the format of the saved checkpoint and may not be backward compatible.

Returns:
    Future: A future holding the resultant Metadata object from `save`.

Example:
    >>> # xdoctest: +SKIP
    >>> my_model = MyModule()

    >>> state_dict = {"model": my_model}

    >>> fs_storage_writer = torch.distributed.checkpoint.FileSystemWriter(
    ...     "/checkpoint/1"
    ... )
    >>> checkpoint_future = torch.distributed.checkpoint.async_save(
    >>>     state_dict=state_dict,
    >>>     storage_writer=fs_storage_writer,
    >>> )
    >>>
    >>> # ... do some work ...
    >>>
    >>> checkpoint_future.result()

z'torch.distributed.checkpoint.async_saveÚcpuzfA CPU backend must be enabled for async save; try initializing process group with 'cpu:gloo,cuda:nccl'NFc                ó   € V ^8„  d   QhRR/# )r1   r8   Nr$   )r>   s   "r.   r?   Ú async_save.<locals>.__annotate__G  s   € ÷ 'ñ '¨Dñ 'r-   c                  óL   <€ S e   S'       g   RoS P                  4        R # R # R # )NT)Úclose)Úowned_async_stagerÚowned_async_stager_closeds   €€r.   Úmaybe_close_owned_async_stagerÚ2async_save.<locals>.maybe_close_owned_async_stagerG  s'   ø€ àÒ)×2KØ(,Ð%Ø×$Ñ$Ö&ñ 3LÑ)r-   TrD   c                óP   € V ^8„  d   QhR\         \        ,          \        ,          /# )r1   r8   ©r   r   )r>   s   "r.   r?   rg   N  s   € ÷ .ñ .œf¤_Õ5¼ÕGñ .r-   c                  ó&   <€ S P                  S4      # ©N)Ústage)rb   r2   s   €€r.   Ústage_state_dictÚ$async_save.<locals>.stage_state_dictM  s   ø€ à×!Ñ! *Ó-Ð-r-   )rF   r3   r7   r4   r6   rG   c                 ó   <€ S! 4       # rq   r$   )Ú_rl   s   &€r.   Ú<lambda>Úasync_save.<locals>.<lambda>h  s	   ø€ Ñ6TÔ6Vr-   c                óT   € V ^8„  d   QhR\         \        ,          R\         R,          /# )r1   Úoriginal_staging_futureÚreturn_staging_futureNro   )r>   s   "r.   r?   rg   p  s%   € ÷ 	7ñ 	7Ü%+¬OÕ%<ð	7ä#)¨$¥<ñ	7r-   c                 óž   €  V P                  4        VP                  R 4       R #   \         d   pTP                  T4        R p?R # R p?ii ; irq   )ÚresultÚ
set_resultÚ	ExceptionÚset_exception)rz   r{   Úes   && r.   ÚcallbackÚasync_save.<locals>.callbackp  sB   € ð7Ø'×.Ñ.Ô0Ø%×0Ñ0°Ö6øÜô 7Ø%×3Ñ3°A×6Ò6ûð7ús   ‚!% ¥A°AÁA)r[   r\   c                  óP   <€ S P                   '       d   S P                  4        R # R # rq   )Ú should_synchronize_after_executeÚsynchronize_staging)rb   s   €r.   Úmaybe_synchronize_stagingÚ-async_save.<locals>.maybe_synchronize_staging…  s    ø€ à×<×<Ð<Ø×0Ñ0Ö2ñ =r-   )rP   rQ   rR   r:   rS   rT   r   ÚdeviceÚ_device_typesÚAssertionErrorÚ
isinstancer   r   r   rW   r   Ú
contextlibÚ	ExitStackr‚   r   r+   r   r   Úexecute_saveÚadd_done_callbackÚpop_allr   Údoner~   r    )r2   rF   r3   r7   r4   ra   rb   r6   rG   Úpgrs   ÚstackÚstaging_future_or_state_dictÚupload_executorÚupload_futureÚstaging_futurer{   r‚   r‡   rl   rj   rk   s   f$$$$$d$$          @@@r.   Ú
async_saver™   Ü   s/  ü€ ô\ 
‡H�H× Ñ Ð!JÔKä×Ò×Òœt×2Ò2×4Ò4Ø×2Ð2Ô0Ó2ˆÜ�<Š<˜Ó b×&6Ñ&6Ô6Ü Øxóð ð .2ÐØÒØÒ%¬*°^Ä[×*QÒ*Qà)‰Lä(ÜØØØØó	óˆLð ".Ðä(¨Ó4€Jà %Ð÷'ñ 'ô  tÔ,÷.ð .ó -ð.ô 
×	Ò	×	Ô	 5ØÒ)Ø�N‰NÐ9Ô:á'7Ó'9Ð$ð 'Ô*?×*GÑ*GÔGô 1Ô2ä4Ó6ð 	ð !0× <Ñ <Ø(Ø'Ø)ØØ'ØØ+ð !=ó !
ˆð Ò)Ø×+Ñ+Ô,VÔWà�M‰MŒO÷3 
 ô6 Ð.´×7Ò7Ø5ˆÜ.4«hÐð 3H÷	7ð ×"Ñ"×$Ò$Ø×,Ñ,¨XÕ6à!×,Ñ,¨TÔ2ô !Ø4Èô
ð 	
ô
 
¨4Ô	0ô	3ó 
1ð	3ñ 	"Ô#ØÐ÷u 
 ×	ús   Ä(BIÉI	c                ó0   € V ^8„  d   QhR\         R\         /# )r1   r2   r8   r
   )r>   s   "r.   r?   r?   �  s   € ÷ ñ ¬ð ¼Oñ r-   c                óŠ   € / pV P                  4        F,  w  r#R pRV 2Vn        \        RR7      ! V4      ! V4      W&   K.  	  V# )z]Creates a shallow copy of `state_dict` where `state_dict` is called for each Stateful object.c                 óR   € \        V \        4      '       d   V P                  4       # T # rq   )rŒ   r   r2   )Úelems   &r.   Ú_elem_to_state_dictÚ4_stateful_to_state_dict.<locals>._elem_to_state_dict”  s    € Ü(2°4¼×(BÒ(B�4—?‘?Ó$ÐLÈÐLr-   z_stateful_to_state_dict.TrD   )Úitemsr%   r   )r2   Ústateful_state_dictÚkeyr�   rž   s   &    r.   rW   rW   Ž  s^   € ð ÐØ×%Ñ%Ö'‰	ˆò	Mð *BÀ#ÀÐ'GÐÔ$ä#5ÀTÕ#JØô$
à
ó$ÐÓ ñ (ð Ðr-   c                ó¨   € V ^8„  d   QhR\         R\        R\        P                  R,          R\        R\
        R\        R,          R\
        R	\        /# )
r1   r2   r3   r4   Nr5   r6   r7   rG   r8   r9   )r>   s   "r.   r?   r?   Ÿ  sr   € ÷ hñ hÜðhä!ðhô ×$Ñ$ tÕ+ðhô ð	hô
 ðhô ˜4Õðhô ðhô ñhr-   c                 ó”  a aaaaaa€ \         P                  P                  R 4       \        W$'       * V4      oSf   \	        4       oSf   \        R4      hRo/ p\        SRR4      ;pe   W‡R&   SP                  VR&   \        R/ VB VVV VV3R l4       p	\        R/ VB VVV3R l4       p
RoS'       d   SP                  RWš4      oMV	! 4       pV
! V.4      pV^ ,          o\        R/ VB VVV3R l4       p\        R/ VB VV3R	 l4       pS'       d   SP                  R
WÞ4      pV# V! 4       pV! V.4      pSP                  4        V# )z,torch.distributed.checkpoint.save_state_dictNúplanner is NonerF   r4   c                  ór  <€ Sf   \        R4      hSP                  4       p R\        P                  ! SP                  4      P
                  9  d6   \        P                  ! R^R7       SP	                  SSP                  4       MSP	                  SV SP                  R7       R\        P                  ! SP                  4      P
                  9   d*   SP                  SP                  SP                  SR7       MSP                  SP                  4       SP                  4       pSP                  V4      pV# )Nr¥   Ústorage_metazªThe function definition for SavePlanner.set_up_planner has been updated to include the storage_meta argument. Please update your implementation to include this parameter.rM   )r2   r§   Úis_coordinatorÚkwargs)ÚrankrG   )r‹   r§   ÚinspectÚ	signatureÚset_up_plannerÚ
parametersrU   rV   r¨   Úset_up_storage_writerrª   Úcreate_local_planÚprepare_local_plan)r§   Ú
local_planÚdistWr7   r2   r3   rG   s     €€€€€r.   Ú
local_stepÚ$_save_state_dict.<locals>.local_step·  s  ø€ àŠ?Ü Ð!2Ó3Ð3Ø%×2Ñ2Ó4ˆØ¤×!2Ò!2°7×3IÑ3IÓ!J×!UÑ!UÔUÜ�MŠMð.ð õ	ð ×"Ñ" :¨u×/CÑ/CÕDà×"Ñ"Ø%Ø)Ø$×3Ñ3ð #ô ð Ü× Ò  ×!EÑ!EÓF×QÑQôRð ×0Ñ0Ø×$Ñ$Ø—Z‘ZØ /ð 1õ ð ×0Ñ0°×1EÑ1EÔFà×.Ñ.Ó0ˆ
Ø#×6Ñ6°zÓBˆ
ØÐr-   c                 óp   <€ Sf   \        R4      hSP                  V 4      w  p oSP                  V 4      p V # )Nr¥   )r‹   Úcreate_global_planÚprepare_global_plan)Úall_local_plansÚglobal_metadatar7   r3   s   &€€€r.   Úglobal_stepÚ%_save_state_dict.<locals>.global_stepÛ  sA   ø€ ð Š?Ü Ð!2Ó3Ð3Ø+2×+EÑ+EÀoÓ+VÑ(ˆ˜Ø(×<Ñ<¸_ÓMˆØÐr-   Úplanc                  óÆ   <€ Sf   \        R4      hSf   \        R4      hSP                  S4      p SP                  V S4      pVP                  4        VP	                  4       # )Nr¥   zcentral_plan is None)r‹   Úfinish_planÚ
write_dataÚwaitÚvalue)Úfinal_local_planÚ
all_writesÚcentral_planr7   r3   s     €€€r.   rÀ   Ú$_save_state_dict.<locals>.write_dataí  sc   ø€ àŠ?Ü Ð!2Ó3Ð3ØÒÜ Ð!7Ó8Ð8Ø"×.Ñ.¨|Ó<ÐØ#×.Ñ.Ð/?ÀÓIˆ
à�‰ÔØ×ÑÓ!Ð!r-   c                 óL   <€ Sf   \        R4      hSP                  SV R7       S# )Nzglobal_metadata is None)ÚmetadataÚresults)r‹   Úfinish)Úall_resultsrº   r3   s   &€€r.   Úfinish_checkpointÚ+_save_state_dict.<locals>.finish_checkpointù  s.   ø€ àÒ"Ü Ð!:Ó;Ð;Ø×Ñ ÀÐÔLØÐr-   Úwriter$   )rP   rQ   rR   r   r   r‹   ÚgetattrÚgroupr   Úreduce_scatterÚ
all_reduceÚbarrier)r2   r3   r4   r5   r6   r7   rG   Úckpt_kwargsÚckpt_idr´   r»   r²   Úglobal_planrÀ   rÌ   rÈ   Úwrite_resultsrÅ   r³   rº   s   ff&&&ff          @@@r.   rB   rB   Ÿ  sd  þ€ ô 
‡H�H× Ñ Ð!OÔPä˜¬Ð5EÓF€EØ‚Ü$Ó&ˆØ‚ÜÐ.Ó/Ð/à€Oà€KÜ˜>¨?¸DÓAÐAˆÒNØ'.�OÑ$Ø',§{¡{ˆ�OÑ$äÑ&˜+Ñ&÷!ð !ó 'ð!ôF Ñ&˜+Ñ&öó 'ðð %)€LßØ×+Ñ+¨F°JÓL‰á)›|ˆ
Ù&1°:°,Ó&?ˆØ" 1•~ˆäÑ&˜+Ñ&ö	"ó 'ð	"ô Ñ&˜+Ñ&õó 'ð÷ Ø×#Ñ# G¨ZÓKˆð €Oñ	 ,6«<ˆÙ$ m _Ó5ˆØ�‰Œà€Or-   )rC   rX   r™   r   r    )Nr   FN)Nr   FNT)?r�   r«   rJ   rU   Úconcurrent.futuresr   Údataclassesr   Úenumr   Útypingr   r   Útyping_extensionsr	   rP   Útorch.distributedÚdistributedr:   Ú#torch.distributed._state_dict_utilsr   Ú4torch.distributed.checkpoint._async_process_executorr   Ú3torch.distributed.checkpoint._async_thread_executorr   Ú+torch.distributed.checkpoint._storage_utilsr   Ú,torch.distributed.checkpoint.default_plannerr   Ú#torch.distributed.checkpoint.loggerr   Ú%torch.distributed.checkpoint.metadatar   Ú$torch.distributed.checkpoint.plannerr   r   Ú$torch.distributed.checkpoint.stagingr   r   r   Ú%torch.distributed.checkpoint.statefulr   Ú$torch.distributed.checkpoint.storager   r   Ú"torch.distributed.distributed_c10dr   Úutilsr   r   r   Ú,torch.distributed.checkpoint._async_executorr   Ú__all__r   ÚFutureWarningrC   rX   r    r*   r™   rW   rB   r$   r-   r.   Ú<module>rï      s½  ðó Û Û 	Û Ý %Ý !Ý ß &Ý (ã Ý  Ý ?õõõ GÝ KÝ BÝ :ß F÷ñ õ
 ;ß KÝ Aç 8Ñ 8÷ ÝUò€ô˜Dô ñ ð!àôö

óð

ñ.  4Ô(Øðr
ð /3ðr
ð ,0ð	r
ð
 #'ðr
ð /3ðr
ð ðr
ð !ör
ó ó )ðr
ðj ÷
$ð 
$ó ð
$ñ  4Ô(ðnð /3ðnð ,0ð	nð
 #'ðnð /3ðnð 6K×5QÑ5Qðnð (,ðnð ðnð !önó )ðnñb  4Ô(ôó )ð÷ hñ hr-   