ó
    ýÞ j^­ ã            
      ó  • % S SK Jr  S SKrS SKrS SKrS SKrS SKrS SKrS SKrS SK	J
r
Jr  S SKJrJrJrJrJrJr  S SKJrJr  S SKJr  S SKJr  S SKJr  S S	KJrJrJrJ r J!r!J"r"  S S
K#J$r$J%r%  S SK&J'r'  S SK(J)r)  S SK*J+r+  S SK,J-r-J.r.  S SK/J0r0J1r1J2r2  S SK3J4r4  S SK5J6r6  S SK7J8r8  S SK9J:r:J;r;J<r<  S SK=J>r>  S SK?J@r@JArA  S SKBJCrCJDrDJErEJFrF  S SKGJHrH  S SKIJJrJJKrKJLrLJMrMJNrNJOrO  S SKPJQrQJRrRJSrSJTrTJUrUJVrVJWrWJXrXJYrYJZrZJ[r[J\r\J]r]J^r^J_r_J`r`JaraJbrbJcrcJdrdJereJfrfJgrgJhrh  S SKiJjrj  S SKkJlrlJmrm  S SKnJoroJprpJqrqJrrr  S SKsJtrt  S SKuJvrvJwrw  S SKxJyryJzrzJ{r{J|r|  S S K}J~r~  S S!KJ€r€  S S"K�J‚r‚  S S#KƒJ„r„  S S$K…J†r†J‡r‡JˆrˆJ‰r‰JŠrŠ  S S%K‹JŒrŒ  S S&K�JŽrŽJ�r�J�r�J‘r‘J’r’  S S'K“J”r”  S S(K•J–r–J—r—J˜r˜J™r™JšršJ›r›Jœrœ  S S)K�Jžrž  S S*KŸJ r J¡r¡  S S+K¢J£r£J¤r¤  S S,K¥J¦r¦J§r§  S S-K¨J©r©Jªrª  S S.K«J¬r¬  S S/K­J®r®  S S0K¯J°r°  S S1K±J²r²J³r³  S S2K´JµrµJ¶r¶  S S3K·J¸r¸J¹r¹  S S4KºJ»r»J¼r¼J½r½  S S5K¾J¿r¿JÀrÀJÁrÁ  S S6KÂJÃrÃJÄrÄJÅrÅJÆrÆJÇrÇ  S S7KÈJÉrÉ  S S8KÊJËrË  S S9KÌJÍrÍJÎrÎ  S S:KÏJÐrÐJÑrÑJÒrÒJÓrÓ  S S;KÔJÕrÕJÖrÖJ×r×JØrØJÙrÙJÚrÚJÛrÛJÜrÜJÝrÝJÞrÞJßrßJàràJáráJârâ  S S<KãJäräJåråJæræJçrç  S S=KèJéré   S S>KêJërë  S?rí\\-/\.4   \-  rî " S@ SA5      rïSBrðSC\ñSD'   SQSE jròSRSF jró    SSSG jrô " SH SI\¿\ç\ä\å\æ4   \\ç\ä\å\æ4   5      rõSTSJ jrö   SU                 SVSK jjr÷SWSL jrø      SXSM jrùSYSN jrú      SZSO jrû      S[SP jrüg! \ì a    Srë N¡f = f)\é    )ÚannotationsN)ÚdefaultdictÚdeque)ÚAsyncIteratorÚ	AwaitableÚCallableÚIteratorÚMappingÚSequence)Úis_dataclassÚreplace)Ú	timedelta)Úpartial)Úisclass)ÚAnyÚGenericÚLiteralÚcastÚget_type_hintsÚoverload)ÚUUIDÚuuid5)Úbeta)Ú	get_debug)ÚRunnableSequence)ÚInputÚOutput)ÚRunnableConfigÚ%get_async_callback_manager_for_configÚget_callback_manager_for_config)ÚGraph)ÚStreamEvent)Ú	BaseCache)ÚBaseCheckpointSaverÚ
CheckpointÚCheckpointTuple)Ú	BaseStore)Ú	BaseModelÚTypeAdapter)ÚSelfÚUnpackÚ
deprecatedÚis_typeddict)Ú_serde)Úensure_configÚmerge_configsÚpatch_checkpoint_mapÚpatch_configÚpatch_configurableÚrecast_checkpoint_ns)ÚCACHE_NS_WRITESÚCONFÚCONFIG_KEY_CACHEÚCONFIG_KEY_CHECKPOINT_IDÚCONFIG_KEY_CHECKPOINT_NSÚCONFIG_KEY_CHECKPOINTERÚCONFIG_KEY_DURABILITYÚCONFIG_KEY_NODE_FINISHEDÚCONFIG_KEY_READÚCONFIG_KEY_RUNNER_SUBMITÚCONFIG_KEY_RUNTIMEÚCONFIG_KEY_SENDÚCONFIG_KEY_STREAMÚCONFIG_KEY_STREAM_MESSAGES_V2ÚCONFIG_KEY_TASK_IDÚCONFIG_KEY_THREAD_IDÚERRORÚINPUTÚ	INTERRUPTÚNS_ENDÚNS_SEPÚNULL_TASK_IDÚPUSHÚTASKS)Úcreate_model)Ú
AsyncQueueÚ	SyncQueue)ÚRunnableÚRunnableLikeÚRunnableSeqÚcoerce_to_runnable)Úcoerce_timeout_policy)ÚMISSINGÚDeprecatedKwargs)ÚGraphInterruptEventÚGraphResumeEventÚ+get_async_graph_callback_manager_for_configÚ*get_sync_graph_callback_manager_for_config)ÚBaseChannel)ÚTopic)Ú
get_config)ÚEND)Ú	ErrorCodeÚGraphDrainedÚGraphRecursionErrorÚInvalidUpdateErrorÚcreate_error_message)ÚManagedValueSpec)ÚPregelTaskWritesÚ_scratchpadÚapply_writesÚ
local_readÚprepare_next_tasks)Ú
identifier)Úachannels_from_checkpointÚchannels_from_checkpointÚcopy_checkpointÚcreate_checkpointÚ+create_checkpoint_plan_for_update_state_apiÚempty_checkpointÚget_updated_channels_from_tasks)Ú
draw_graph)Ú	map_inputÚread_channels)ÚAsyncPregelLoopÚSyncPregelLoop)ÚStreamMessagesHandlerÚStreamMessagesHandlerV2)ÚDEFAULT_BOUNDÚ
PregelNode)ÚRetryPolicy)ÚPregelRunner)ÚStreamToolCallHandler)Úget_new_channel_versionsÚvalidate_timeout_supported)Úvalidate_graphÚvalidate_keys)ÚChannelWriteÚChannelWriteEntry)Úget_bolded_textÚget_colored_textÚtasks_w_writes)ÚPregelProtocolÚStreamChunkÚStreamProtocol)ÚDEFAULT_RUNTIMEÚBaseUserÚ
RunControlÚRuntimeÚ
ServerInfo)Ú	StreamMux)ÚStreamTransformer)ÚAsyncGraphRunStreamÚGraphRunStream)ÚLifecycleTransformerÚMessagesTransformerÚSubgraphTransformerÚValuesTransformer)ÚAllÚCachePolicyÚCheckpointerÚCommandÚ
DurabilityÚGraphOutputÚ	InterruptÚSendÚStateSnapshotÚStateUpdateÚ
StreamModeÚ
StreamPartÚTimeoutPolicyÚensure_valid_checkpointer)ÚContextTÚInputTÚOutputTÚStateT)ÚLangGraphDeprecatedSinceV10)Ú_StreamingCallbackHandler)ÚNodeBuilderÚPregelc                  ó  • \ rS rSr% SrS\S'   S\S'   S\S'   S\S	'   S
\S'   S\S'   S\S'   S\S'   S\S'     S#S jr    S$S jrSS.     S%S jjr    S&S jr	    S'S jr
      S(S jrS)S jrS*S jrS+S jrS,S jrS-S  jrS!rg").r«   éÎ   )	Ú	_channelsÚ	_triggersÚ_tagsÚ	_metadataÚ_writesÚ_boundÚ_retry_policyÚ_cache_policyÚ_timeoutzstr | list[str]r¯   z	list[str]r°   r±   údict[str, Any]r²   zlist[ChannelWriteEntry]r³   rP   r´   zlist[RetryPolicy]rµ   úCachePolicy | Noner¶   zTimeoutPolicy | Noner·   c                óŠ   • / U l         / U l        / U l        0 U l        / U l        [
        U l        / U l        S U l        S U l	        g ©N)
r¯   r°   r±   r²   r³   ry   r´   rµ   r¶   r·   ©Úselfs    ÚO/var/www/html/gaurav/venv/lib/python3.13/site-packages/langgraph/pregel/main.pyÚ__init__ÚNodeBuilder.__init__å   sE   € ð ˆŒØˆŒØˆŒ
ØˆŒØˆŒÜ#ˆŒØˆÔØ!ˆÔØˆ�ó    c                ó‚   • U R                   (       d  Xl         O[        S5      eU R                  R                  U5        U $ )zSubscribe to a single channel.zQCannot subscribe to single channels when other channels are already subscribed to)r¯   Ú
ValueErrorr°   Úappend©r½   Úchannels     r¾   Úsubscribe_onlyÚNodeBuilder.subscribe_onlyò   s9   € ð
 �~�~Ø$�NäØcóð ð 	�‰×Ñ˜gÔ&àˆrÁ   T)Úreadc               ó|  • [        U R                  [        5      (       a  [        S5      eU(       a=  U R                  (       d  [	        U5      U l        OU R                  R                  U5        [        U[        5      (       a  U R                  R                  U5        U $ U R                  R                  U5        U $ )au  Add channels to subscribe to.

Node will be invoked when any of these channels are updated, with a dict of the
channel values as input.

Args:
    channels: Channel name(s) to subscribe to
    read: If `True`, the channels will be included in the input to the node.
        Otherwise, they will trigger the node without being sent in input.

Returns:
    Self for chaining
z@Cannot subscribe to channels when subscribed to a single channel)Ú
isinstancer¯   ÚstrrÃ   ÚlistÚextendr°   rÄ   )r½   rÉ   Úchannelss      r¾   Úsubscribe_toÚNodeBuilder.subscribe_to  s�   € ô$ �d—n‘n¤c×*Ñ*ÜØRóð ö Ø—>—>Ü!% h£�•à—‘×%Ñ% hÔ/ä�h¤×$Ñ$Ø�N‰N×!Ñ! (Ô+ð ˆð �N‰N×!Ñ! (Ô+àˆrÁ   c                óˆ   • [        U R                  [        5      (       d   S5       eU R                  R                  U5        U $ )zFAdds the specified channels to read from, without subscribing to them.zBCannot read additional channels when subscribed to single channels)rË   r¯   rÍ   rÎ   )r½   rÏ   s     r¾   Ú	read_fromÚNodeBuilder.read_from%  s>   € ô
 ˜$Ÿ.™.¬$×/Ñ/ð 	
ØPó	
Ð/ð 	�‰×Ñ˜hÔ'ØˆrÁ   c           	     ó˜   • U R                   [        La&  [        U R                   [        USSS95      U l         U $ [        USSS9U l         U $ )zAdds the specified node.NT)ÚnameÚtrace)r´   ry   rR   rS   )r½   Únodes     r¾   ÚdoÚNodeBuilder.do0  sM   € ð
 �;‰;œmÒ+Ü%Ø—‘Ô/°¸4ÀtÑLóˆDŒKð
 ˆô -¨T¸ÀDÑIˆDŒKØˆrÁ   c                óª   • U R                   R                  S U 5       5        U R                   R                  S UR                  5        5       5        U $ )z”Add channel writes.

Args:
    *channels: Channel names to write to.
    **kwargs: Channel name and value mappings.

Returns:
    Self for chaining
c              3  ód   #   • U H'  n[        U[        5      (       a  [        U5      OUv •  M)     g 7fr»   )rË   rÌ   rƒ   )Ú.0Úcs     r¾   Ú	<genexpr>Ú'NodeBuilder.write_to.<locals>.<genexpr>K  s*   é € ð 
ÙGOÀ!¤J¨q´#×$6Ñ$6Ô˜aÔ ¸AÔ=Âxùs   ‚.0c              3  óh   #   • U H)  u  p[        U5      (       a	  [        XS 9O[        XS9v •  M+     g7f))Úmapper©ÚvalueN)Úcallablerƒ   )rÝ   ÚkÚvs      r¾   rß   rà   N  s:   é € ð 
ñ '‘�ô ˜�{‰{ô ˜aÒ*ä" 1Ñ.ô/ò 'ùs   ‚02)r³   rÎ   Úitems)r½   rÏ   Úkwargss      r¾   Úwrite_toÚNodeBuilder.write_to=  sS   € ð 	�‰×Ññ 
ÙGOó
ô 	
ð 	�‰×Ññ 
ð Ÿ™œó	
ô 	
ð ˆrÁ   c                ór   • U R                   R                  U5        U R                  R                  U5        U $ )z!Add tags or metadata to the node.)r±   rÎ   r²   Úupdate)r½   ÚtagsÚmetadatas      r¾   ÚmetaÚNodeBuilder.metaW  s+   € à�
‰
×Ñ˜$ÔØ�‰×Ñ˜hÔ'ØˆrÁ   c                ó<   • U R                   R                  U5        U $ )z Adds retry policies to the node.)rµ   rÎ   )r½   Úpoliciess     r¾   Úadd_retry_policiesÚNodeBuilder.add_retry_policies]  s   € à×Ñ×!Ñ! (Ô+ØˆrÁ   c                ó   • Xl         U $ )z Adds cache policies to the node.)r¶   )r½   Úpolicys     r¾   Úadd_cache_policyÚNodeBuilder.add_cache_policyb  s   € à#ÔØˆrÁ   c                ó&   • [        U5      U l        U $ )z1Set the per-attempt timeout policy for this node.)rT   r·   )r½   Útimeouts     r¾   Úset_timeoutÚNodeBuilder.set_timeoutg  s   € ä-¨gÓ6ˆŒØˆrÁ   c                óì   • [        U R                  U R                  U R                  U R                  [        U R                  5      /U R                  U R                  U R                  U R                  S9	$ )zBuilds the node.)	rÏ   Útriggersrî   rï   ÚwritersÚboundÚretry_policyÚcache_policyrû   )rz   r¯   r°   r±   r²   r‚   r³   r´   rµ   r¶   r·   r¼   s    r¾   ÚbuildÚNodeBuilder.buildl  sZ   € äØ—^‘^Ø—^‘^Ø—‘Ø—^‘^Ü! $§,¡,Ó/Ð0Ø—+‘+Ø×+Ñ+Ø×+Ñ+Ø—M‘Mñ

ð 
	
rÁ   )	r´   r¶   r¯   r²   rµ   r±   r·   r°   r³   N©ÚreturnÚNone)rÆ   rÌ   r  r*   )rÏ   rÌ   rÉ   Úboolr  r*   )rÏ   rÌ   r  r*   )rØ   rQ   r  r*   )rÏ   zstr | ChannelWriteEntryré   Ú_WriteValuer  r*   )rî   rÌ   rï   r   r  r*   )ró   r{   r  r*   )r÷   r˜   r  r*   )rû   z(float | timedelta | TimeoutPolicy | Noner  r*   )r  rz   )Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú	__slots__Ú__annotations__r¿   rÇ   rÐ   rÓ   rÙ   rê   rð   rô   rø   rü   r  Ú__static_attributes__© rÁ   r¾   r«   r«   Î   sô   ‡ ð
€Ið ÓØÓØÓØÓØ$Ó$ØÓØ$Ó$Ø%Ó%Ø"Ó"ðà	ôðàðð 
ôð& ñ!àð!ð ð!ð 
õ	!ðF	àð	ð 
ô	ðàðð 
ôðà*ðð ðð 
ô	ô4ôô
ô
÷

rÁ   r«   )Ústream_modeÚ	subgraphsútuple[str, ...]Ú_V3_INVARIANT_KWARGSc                ó�   • [          Vs/ sH  oU ;   d  M
  UPM     nnU(       a  [        SSR                  U5       S35      eg s  snf )NzIstream_events(version='v3') / astream_events(version='v3') do not accept z, z‰; v3 owns these (stream_mode is built from the transformer mux, subgraphs is forced True so nested namespaces flow through scoped muxes).)r  Ú	TypeErrorÚjoin)ré   ræ   Ú
collisionss      r¾   Ú_reject_v3_invariant_kwargsr  ƒ  sW   € Ý1ÓAÑ1˜¸&±[—!Ñ1€JÐAÞÜðØŸ)™) JÓ/Ð0ð 1KðKó
ð 	
ð ùò Bs
   ‰A•Ac                óž   • [        5       nU R                   H)  nUR                  [        S[	        USS5      5      5        M+     [        U5      $ )uD  Return the union of `required_stream_modes` across registered transformers.

Transformers declare the stream modes they need to function, and
`stream_events(version="v3")` asks the graph for exactly that union â€” no hardcoded
default set. If zero transformers declare a given mode, the graph
does not stream events for it.
ztuple[StreamMode, ...]Úrequired_stream_modesr  )ÚsetÚ_transformersrí   r   ÚgetattrrÍ   )ÚmuxÚmodesÚtransformers      r¾   Ú_collect_stream_modesr$  Ž  sK   € ô !›U€EØ×(Ô(ˆØ�‰ÜØ(Ü˜Ð%<¸bÓAóö	
ñ )ô �‹;ÐrÁ   c                ó2  • / nU =(       d    S H…  n[        U[        5      (       a"  [        S[        U5      R                   S35      e[        U5      (       d"  [        S[        U5      R                   S35      eU4SS jjnUR                  U5        M‡     U$ )aM  Normalize stream transformer specs to scoped factories.

A stream transformer spec is a callable that accepts
`scope: tuple[str, ...]` and returns a fresh `StreamTransformer`.
Transformer classes work when their constructor follows the same
shape. Pre-built instances are rejected because they cannot be
cloned into subgraph scopes.
r  z_stream_events(version='v3') transformers must be scope-aware callables, got pre-built instance zY. Pass the transformer class or a factory like `lambda scope: MyTransformer(scope, ...)`.zLstream_events(version='v3') transformers must be scope-aware callables, got Ú.c                ó   • U" U 5      $ r»   r  )ÚscopeÚ_specs     r¾   ÚfactoryÚ8_normalize_stream_transformer_factories.<locals>.factory»  s   € Ù˜“<ÐrÁ   )r(  r  r)  zCallable[..., Any]r  r   )rË   r�   r  Útyper  rå   rÄ   )ÚspecsÚ	factoriesÚspecr*  s       r¾   Ú'_normalize_stream_transformer_factoriesr0  ¡  s«   € ð 9;€IØ—˜’ˆÜ�dÔ-×.Ñ.Üð*Ü*.¨t«*×*=Ñ*=Ð)>ð ?=ð=óð ô ˜�~‰~ÜðÜ˜D“z×*Ñ*Ð+¨1ð.óð ð
 IMö 	 ð 	×Ñ˜Ö!ñ# ð$ ÐrÁ   c                  ó  ^ • \ rS rSr% SrS\S'   S\S'   SrS\S	'    S
rS\S'    S\S'   SrS\S'    S\S'   S\S'   S\S'   Sr	S\S'    S\S'    Sr
S\S'    SrS\S'    SrS\S'    SrS \S!'    SrS"\S#'    SrS$\S%'    SrS&\S''   S(rS)\S*'   S+\S,'   S-\S.'   S/SS
SSSSSSSSSSSSSSS(SS0.                                                 S„S1 jjr    S…S2 jr S†S
S3.     S‡S4 jjjr S†S
S3.     S‡S5 jjjrSˆS6 jrS†S‰S7 jjrS†SŠS8 jjrS‹S9 jr\" S:SS;9SS<.SŒS= jj5       r\" S>SS;9SS<.   S�S? jj5       rSŽS@ jr\S�SA j5       rS†S�U 4SB jjjr  S†   S‘SC jjr!\S�SD j5       r" S†   S�U 4SE jjjr# S†   S‘SF jjr$\S’SG j5       r%\S“SH j5       r&SS
SI.     S”SJ jjr'SS
SI.     S•SK jjr(Sr)SL\SM'   Sr*SL\SN'   S–SO jr+  S—         S˜SP jjr,  S—         S˜SQ jjr-S
SR.     S™SS jjr.S
SR.     S™ST jjr/SSSSU.         SšSV jjr0SSSSU.         S›SW jjr1      SœSX jr2      SœSY jr3  S�         SžSZ jjr4  S�         SŸS[ jjr5SS\.               S S] jjr6\7 S†SSSSSSSSS
SS^.
                             S¡S_ jjj5       r8\7 S†SSSSSSSSS
SS`Sa.                             S¢Sb jjj5       r8 S†SSSSSSSSS
SScSa.                             S£Sd jjjr8\7 S†SSSSSSSSS
SS^.
                             S¤Se jjj5       r9\7 S†SSSSSSSSS
SS`Sa.                             S¥Sf jjj5       r9 S†SSSSSSSSS
SScSa.                             S¦Sg jjjr9\:" ShSi9 S†SSSSSj.               S§Sk jjj5       r;\:" ShSi9 S†SSSSSj.               S¨Sl jjj5       r<\7 S†SmSn.         S©So jjj5       r=\7 S†SSSSSj.                 SªSp jjj5       r= S†SmSSSSSq.                 S«U 4Sr jjjjr=\7 S†SmSn.         S¬Ss jjj5       r>\7 S†SSSSSj.                 S­St jjj5       r> S†SmSSSSSq.                 S®U 4Su jjjjr>\7 S†SS`SSSSSSSv.                         S¯Sw jjj5       r?\7 S†SSSSSSSSx.                         S°Sy jjj5       r?\7 S†SSSSSSSSS`Sz.	                         S±S{ jjj5       r? S†SSSSSSSSScSz.	                         S²S| jjjr?\7 S†SS`SSSSSSSv.                         S¯S} jjj5       r@\7 S†SSSSSSSSx.                         S°S~ jjj5       r@\7 S†SSSSSSSSS`Sz.	                         S±S jjj5       r@ S†SSSSSSSSScSz.	                         S²S€ jjjr@S†S³S� jjrAS†S³S‚ jjrBSƒrCU =rD$ )´r¬   iÂ  u_  Pregel manages the runtime behavior for LangGraph applications.

## Overview

Pregel combines [**actors**](https://en.wikipedia.org/wiki/Actor_model)
and **channels** into a single application.
**Actors** read data from channels and write data to channels.
Pregel organizes the execution of the application into multiple steps,
following the **Pregel Algorithm**/**Bulk Synchronous Parallel** model.

Each step consists of three phases:

- **Plan**: Determine which **actors** to execute in this step. For example,
    in the first step, select the **actors** that subscribe to the special
    **input** channels; in subsequent steps,
    select the **actors** that subscribe to channels updated in the previous step.
- **Execution**: Execute all selected **actors** in parallel,
    until all complete, or one fails, or a timeout is reached. During this
    phase, channel updates are invisible to actors until the next step.
- **Update**: Update the channels with the values written by the **actors**
    in this step.

Repeat until no **actors** are selected for execution, or a maximum number of
steps is reached.

## Actors

An **actor** is a `PregelNode`.
It subscribes to channels, reads data from them, and writes data to them.
It can be thought of as an **actor** in the Pregel algorithm.
`PregelNodes` implement LangChain's
Runnable interface.

## Channels

Channels are used to communicate between actors (`PregelNodes`).
Each channel has a value type, an update type, and an update function â€“ which
takes a sequence of updates and
modifies the stored value. Channels can be used to send data from one chain to
another, or to send data from a chain to itself in a future step. LangGraph
provides a number of built-in channels:

### Basic channels: LastValue and Topic

- `LastValue`: The default channel, stores the last value sent to the channel,
   useful for input and output values, or for sending data from one step to the next
- `Topic`: A configurable PubSub Topic, useful for sending multiple values
   between *actors*, or for accumulating output. Can be configured to deduplicate
   values, and/or to accumulate values over the course of multiple steps.

### Advanced channels: Context and BinaryOperatorAggregate

- `Context`: exposes the value of a context manager, managing its lifecycle.
    Useful for accessing external resources that require setup and/or teardown. e.g.
    `client = Context(httpx.Client)`
- `BinaryOperatorAggregate`: stores a persistent value, updated by applying
    a binary operator to the current value and each update
    sent to the channel, useful for computing aggregates over multiple steps. e.g.
    `total = BinaryOperatorAggregate(int, operator.add)`

## Examples

Most users will interact with Pregel via a
[StateGraph (Graph API)][langgraph.graph.StateGraph] or via an
[entrypoint (Functional API)][langgraph.func.entrypoint].

However, for **advanced** use cases, Pregel can be used directly. If you're
not sure whether you need to use Pregel directly, then the answer is probably no
- you should use the Graph API or Functional API instead. These are higher-level
interfaces that will compile down to Pregel under the hood.

Here are some examples to give you a sense of how it works:

Example: Single node application
    ```python
    from langgraph.channels import EphemeralValue
    from langgraph.pregel import Pregel, NodeBuilder

    node1 = (
        NodeBuilder().subscribe_only("a")
        .do(lambda x: x + x)
        .write_to("b")
    )

    app = Pregel(
        nodes={"node1": node1},
        channels={
            "a": EphemeralValue(str),
            "b": EphemeralValue(str),
        },
        input_channels=["a"],
        output_channels=["b"],
    )

    app.invoke({"a": "foo"})
    ```

    ```con
    {'b': 'foofoo'}
    ```

Example: Using multiple nodes and multiple output channels
    ```python
    from langgraph.channels import LastValue, EphemeralValue
    from langgraph.pregel import Pregel, NodeBuilder

    node1 = (
        NodeBuilder().subscribe_only("a")
        .do(lambda x: x + x)
        .write_to("b")
    )

    node2 = (
        NodeBuilder().subscribe_to("b")
        .do(lambda x: x["b"] + x["b"])
        .write_to("c")
    )


    app = Pregel(
        nodes={"node1": node1, "node2": node2},
        channels={
            "a": EphemeralValue(str),
            "b": LastValue(str),
            "c": EphemeralValue(str),
        },
        input_channels=["a"],
        output_channels=["b", "c"],
    )

    app.invoke({"a": "foo"})
    ```

    ```con
    {'b': 'foofoo', 'c': 'foofoofoofoo'}
    ```

Example: Using a Topic channel
    ```python
    from langgraph.channels import LastValue, EphemeralValue, Topic
    from langgraph.pregel import Pregel, NodeBuilder

    node1 = (
        NodeBuilder().subscribe_only("a")
        .do(lambda x: x + x)
        .write_to("b", "c")
    )

    node2 = (
        NodeBuilder().subscribe_only("b")
        .do(lambda x: x + x)
        .write_to("c")
    )


    app = Pregel(
        nodes={"node1": node1, "node2": node2},
        channels={
            "a": EphemeralValue(str),
            "b": EphemeralValue(str),
            "c": Topic(str, accumulate=True),
        },
        input_channels=["a"],
        output_channels=["c"],
    )

    app.invoke({"a": "foo"})
    ```

    ```pycon
    {"c": ["foofoo", "foofoofoofoo"]}
    ```

Example: Using a `BinaryOperatorAggregate` channel
    ```python
    from langgraph.channels import EphemeralValue, BinaryOperatorAggregate
    from langgraph.pregel import Pregel, NodeBuilder


    node1 = (
        NodeBuilder().subscribe_only("a")
        .do(lambda x: x + x)
        .write_to("b", "c")
    )

    node2 = (
        NodeBuilder().subscribe_only("b")
        .do(lambda x: x + x)
        .write_to("c")
    )


    def reducer(current, update):
        if current:
            return current + " | " + update
        else:
            return update


    app = Pregel(
        nodes={"node1": node1, "node2": node2},
        channels={
            "a": EphemeralValue(str),
            "b": EphemeralValue(str),
            "c": BinaryOperatorAggregate(str, operator=reducer),
        },
        input_channels=["a"],
        output_channels=["c"],
    )

    app.invoke({"a": "foo"})
    ```

    ```con
    {'c': 'foofoo | foofoofoofoo'}
    ```

Example: Introducing a cycle
    This example demonstrates how to introduce a cycle in the graph, by having
    a chain write to a channel it subscribes to.

    Execution will continue until a `None` value is written to the channel.

    ```python
    from langgraph.channels import EphemeralValue
    from langgraph.pregel import Pregel, NodeBuilder, ChannelWriteEntry

    example_node = (
        NodeBuilder()
        .subscribe_only("value")
        .do(lambda x: x + x if len(x) < 10 else None)
        .write_to(ChannelWriteEntry(channel="value", skip_none=True))
    )

    app = Pregel(
        nodes={"example_node": example_node},
        channels={
            "value": EphemeralValue(str),
        },
        input_channels=["value"],
        output_channels=["value"],
    )

    app.invoke({"value": "a"})
    ```

    ```con
    {'value': 'aaaaaaaaaaaaaaaa'}
    ```
údict[str, PregelNode]Únodesz)dict[str, BaseChannel | ManagedValueSpec]rÏ   Úvaluesr¡   r  Fr	  Ústream_eagerústr | Sequence[str]Úoutput_channelsNústr | Sequence[str] | NoneÚstream_channelsúAll | Sequence[str]Úinterrupt_after_nodesÚinterrupt_before_nodesÚinput_channelsúfloat | NoneÚstep_timeoutÚdebugr™   ÚcheckpointerúBaseStore | NoneÚstoreúBaseCache | NoneÚcacher  zSequence[RetryPolicy]r  r¹   r  útype[ContextT] | NoneÚcontext_schemaúRunnableConfig | NoneÚconfigÚ	LangGraphrÌ   rÖ   úMapping[str, Sequence[str]]Útrigger_to_nodeszMapping[str, str]Únode_error_handler_mapT)Úauto_validater  r5  r9  r;  r<  r?  r@  rA  rC  rE  r  r  rG  rI  rL  rM  rÖ   Ústream_transformersc          	     ó6  • UR                  S[        5      =n[        La4  [        R                  " S[        SS9  Uc  [        [        [           U5      n[        U5      nUR                  5        VVs0 sH.  u  nnU[        U[        5      (       a  UR                  5       OU_M0     snnU l        U=(       d    0 U l        [        U R                  ;   a9  [        U R                  [           [         5      (       d  [#        S[         S35      e[!        [$        SS9U R                  [        '   X@l        XPl        X`l        Xpl        X€l        X�l        X l        X°l        Ub  UO	[7        5       U l        XÐl        Xàl        Xðl        [        U[@        5      (       a  U4OUU l!        UU l"        UU l#        UU l$        U=(       d    0 U l%        U=(       d    0 U l&        UU l'        [Q        U=(       d    S	5      U l)        S U l*        U(       a  U RW                  5         g g s  snnf )
NÚconfig_typezU`config_type` is deprecated and will be removed. Please use `context_schema` instead.é   ©ÚcategoryÚ
stacklevelz	Channel 'z.' is reserved and cannot be used in the graph.F)Ú
accumulater  ),ÚgetrU   ÚwarningsÚwarnr©   r   r,  r¥   r¤   rè   rË   r«   r  r3  rÏ   rL   r\   rÃ   rž   r  r5  r7  r9  r;  r<  r=  r?  r   r@  rA  rC  rE  r{   r  r  rG  rI  rL  rM  rÖ   ÚtuplerO  Ú_serde_allowlistÚvalidate)r½   r3  rÏ   rN  r  r5  r7  r9  r;  r<  r=  r?  r@  rA  rC  rE  r  r  rG  rI  rL  rM  rÖ   rO  Údeprecated_kwargsrQ  ræ   rç   s                               r¾   r¿   ÚPregel.__init__ö  sØ  € ð: -×0Ñ0°ÄÓHÐHˆKÜòô �MŠMØgÜ4Øòð Ñ%Ü!%¤d¬8¡n°kÓ!B�ä0°Ó>ˆð KPÏ+É+Ì-ô
ÙJWÁ$À!ÀQˆAœJ q¬+×6Ñ6ˆq�w‰wŒy¸AÒ=É-ò
ˆŒ
ð !Ÿ BˆŒÜ�D—M‘MÓ!¬*°T·]±]Ä5Ñ5IÌ5×*QÑ*QÜØœE˜7Ð"PÐQóð ô $)¬¸%Ñ#@ˆD�M‰Mœ%Ñ Ø&ÔØ(ÔØ.ÔØ.ÔØ%:Ô"Ø&<Ô#Ø,ÔØ(ÔØ#Ñ/‘U´Y³[ˆŒ
Ø(ÔØŒ
ØŒ
ä)¨,¼×DÑDˆ\‰OÈ,ð 	Ôð )ˆÔØ,ˆÔØˆŒØ 0× 6°BˆÔØ&<×&BÀˆÔ#ØˆŒ	ÜQVØ×% 2óR
ˆÔ ð >BˆÔÞØ�M‰M�Oð ùóG
s   Á24Hc                óp   • [         R                  (       d  U$ [         R                  " XR                  5      $ r»   )r.   ÚSTRICT_MSGPACK_ENABLEDÚapply_checkpointer_allowlistr[  )r½   rA  s     r¾   Ú_apply_checkpointer_allowlistÚ$Pregel._apply_checkpointer_allowlistF  s*   € ô ×,×,ØÐÜ×2Ò2°<×AVÑAVÓWÐWrÁ   ©Úxrayc               óš  • U(       aR  U R                  5        VVs0 sH5  u  p4X4R                  U[        U[        5      (       d  US::  a  UOUS-
  S9_M7     nnnO0 n[	        [        U R                  U5      U R                  U R                  U R                  U R                  U R                  U R                  U R                  US9	$ s  snnf )ú:Return a drawable representation of the computation graph.r   é   rd  ©r3  r-  r=  r;  r<  rL  rA  r  )Úget_subgraphsÚ	get_graphrË   r	  rr   r0   rI  r3  rÏ   r=  r;  r<  rL  rA  )r½   rI  re  ræ   rç   r  s         r¾   rk  ÚPregel.get_graphM  sÑ   € ö
 ð !×.Ñ.Ô0ôñ
 1‘D�Að	 —;‘;ØÜ!+¨D´$×!7Ñ!7¸4À1»9™È$ÐQRÉ(ð ð ò ñ 1ð ñ ˆIð ˆIäÜ˜$Ÿ+™+ vÓ.Ø—*‘*Ø—-‘-Ø×.Ñ.Ø"&×"<Ñ"<Ø#'×#>Ñ#>Ø!×2Ñ2Ø×*Ñ*Øñ

ð 
	
ùós   ›;Cc             ƒ  ó  ^^#   • T(       a$  U R                  5        VVs0 s Sh  v•N u  p4X4_M  0 n[        [        U R                  T5      U R                  U R                  U R                  U R                  U R                  U R                  U R                  US9	$  Nw
 Os  snnf nnn[        U[        R                  " UU4S jUR	                  5        5       6 I Sh  v•N  5       VVs0 sH  u  p4X4_M	     Os  snnf nnnNÒ7f)rg  Nc              3  ó‚   >#   • U H5  nUR                  T[        T[        5      (       d  TS ::  a  TOTS-
  S9v •  M7     g7f)r   rh  rd  N)Ú
aget_graphrË   r	  )rÝ   ÚprI  re  s     €€r¾   rß   Ú$Pregel.aget_graph.<locals>.<genexpr>x  sL   øé € ð ñ &9 ð ŸL™LØ &ä#-¨d´D×#9Ñ#9¸TÀQ»Yñ &*à%)¨A¡Xð	 )õ ò &9ùs   ƒ<?ri  )Úaget_subgraphsÚzipÚasyncioÚgatherr4  rr   r0   rI  r3  rÏ   r=  r;  r<  rL  rA  )r½   rI  re  ræ   rç   Ú
subpregelsr  s    ``    r¾   ro  ÚPregel.aget_graphi  s   ùé € ö à'+×':Ñ':Ô'<÷5ô 5Ù#˜q�’ð( ˆIäÜ˜$Ÿ+™+ vÓ.Ø—*‘*Ø—-‘-Ø×.Ñ.Ø"&×"<Ñ"<Ø#'×#>Ñ#>Ø!×2Ñ2Ø×*Ñ*Øñ

ð 
	
ó/5ùó 5ˆJñ 5ô
  ØÜ!Ÿ.š.õð &0×%6Ñ%6Ô%8óð
÷ 
ð 
ôôñ‘D�Að ’òùóˆIñ ˆIùsN   „DŸB!¡B¥B¦B©B!°A-DÂBÂB!Â ?DÃC"
Ã DÃ,C:Ã9Dc                óV   • [        U 5      U R                  5       R                  5       S.$ )z0Mime bundle used by Jupyter to display the graph)z
text/plainz	image/png)Úreprrk  Údraw_mermaid_png)r½   ré   s     r¾   Ú_repr_mimebundle_ÚPregel._repr_mimebundle_“  s(   € ô ˜t›*ØŸ™Ó)×:Ñ:Ó<ñ
ð 	
rÁ   c                óÐ   • U R                   R                  5        VVs0 sH  u  p#US:w  d  M  X#_M     nnnUR                  U=(       d    0 5        U R                  " S0 UD6$ s  snnf )NÚ__orig_class__r  )Ú__dict__rè   rí   Ú	__class__)r½   rí   ræ   rç   Úattrss        r¾   ÚcopyÚPregel.copyš  s[   € Ø"&§-¡-×"5Ñ"5Ô"7ÔQÑ"7™$˜!¸1Ð@PÑ;P“�’Ñ"7ˆÑQØ�‰�V—\˜rÔ"Ø�~Š~Ñ& Ñ&Ð&ùó Rs
   žA"­A"c                ón   • U R                  S[        U R                  U[        [        U5      5      05      $ )z:Create a copy of the Pregel object with an updated config.rI  )r‚  r0   rI  r   r   )r½   rI  ré   s      r¾   Úwith_configÚPregel.with_configŸ  s/   € à�y‰yØ”} T§[¡[°&¼$¼~ÈvÓ:VÓWÐXó
ð 	
rÁ   c                ó¬  • U R                   R                  5        H;  u  pUR                  c  M  [        UR                  =(       d    UR
                  US9  M=     [        U R                   U R                  R                  5        VVs0 sH  u  p4[        U[        5      (       d  M  X4_M      snnU R                  R                  5        VVs0 sH  u  p4[        U[        5      (       a  M  X4_M      snnU R                  U R                  U R                  U R                  U R                  5        [        U R                   5      U l        U $ s  snnf s  snnf )N)rÖ   )r3  rè   rû   r   rØ   r  r€   rÏ   rË   r[   r=  r7  r9  r;  r<  Ú_trigger_to_nodesrL  )r½   rÖ   rØ   ræ   rç   s        r¾   r\  ÚPregel.validate¥  sû   € ØŸ*™*×*Ñ*Ö,‰JˆDØ�|‰|Ó'Ü*¨4¯9©9×+B¸¿
¹
ÈÔNñ -ô 	Ø�J‰JØ"Ÿm™m×1Ñ1Ô3ÔRÑ3‘d�a´zÀ!Ä[×7Q‹TˆQŠTÑ3ÒRØ"Ÿm™m×1Ñ1Ô3ÔVÑ3‘d�a¼:ÀaÌ×;U‹TˆQŠTÑ3ÒVØ×ÑØ× Ñ Ø× Ñ Ø×&Ñ&Ø×'Ñ'ô		
ô !2°$·*±*Ó =ˆÔØˆùó SùÛVs   ÂE
Â%E
ÃEÃ)Eú\`config_schema` is deprecated. Use `get_context_jsonschema` for the relevant schema instead.©rT  ©Úincludec               ó†  • [         R                  " S[        SS9  U=(       d    / n0 U R                  (       a  SU R                  S 40O0 E[	        [
        5      R                  5        VVVs0 sH'  u  p#X! Vs/ sH  oDS:w  d  M
  UPM     sn;   d  M#  X#S 4_M)     snnnEn[        U R                  S5      US9$ s  snf s  snnnf )NrŠ  rR  rS  ÚconfigurableÚConfig©Úfield_definitions)	rX  rY  r©   rG  r   r   rè   rM   Úget_name)r½   r�  Ú
field_nameÚ
field_typeÚiÚfieldss         r¾   Úconfig_schemaÚPregel.config_schema¶  sÏ   € ô
 	�ŠØjÜ0Øò	
ð —-˜Rˆð
ð ×&×&ð   $×"5Ñ"5°tÐ!<Ñ=àð	
ô /=¼^Ó.L×.RÑ.RÔ.Tõá.TÑ*�JØ¨WÓ!L©W¨¸^Ñ8K§!©WÑ!LÑLó /�
¨Ð.Ò.Ù.Tóð
ˆô ˜DŸM™M¨(Ó3ÀvÑNÐNùò "Mùôs$   Á+B<
Á6B7ÂB7ÂB<
ÂB<
Â7B<
úL`get_config_jsonschema` is deprecated. Use `get_context_jsonschema` instead.c               ó"  • [         R                  " S[        SS9  [         R                  " 5          [         R                  " S[        S9  U R                  US9nS S S 5        UR                  5       $ ! , (       d  f       WR                  5       $ = f)Nrš  rR  rS  Úignorer‹  rŒ  )rX  rY  r©   Úcatch_warningsÚfilterwarningsr˜  Úmodel_json_schema)r½   r�  Úschemas      r¾   Úget_config_jsonschemaÚPregel.get_config_jsonschemaÐ  s{   € ô 	�ŠØZÜ0Øò	
ô ×$Ò$Õ&Ü×#Ò# HÔ7RÒSØ×'Ñ'°Ð'Ð8ˆF÷ 'ð ×'Ñ'Ó)Ð)÷ 'Ô&ð ×'Ñ'Ó)Ð)ús   °)A1Á1
Bc                ó  • U R                   =nc  g [        U5      (       a%  [        U[        5      (       a  UR	                  5       $ [        U5      (       d  [        U5      (       a  [        U5      R                  5       $ [        SU S35      e)NzInvalid context schema type: z.. Must be a BaseModel, TypedDict or dataclass.)
rG  r   Ú
issubclassr(   rŸ  r-   r   r)   Újson_schemarÃ   )r½   rG  s     r¾   Úget_context_jsonschemaÚPregel.get_context_jsonschemaâ  s€   € Ø"×1Ñ1Ð1ˆNÑ:Øä�>×"Ñ"¤z°.Ä)×'LÑ'LØ!×3Ñ3Ó5Ð5Ü˜.×)Ñ)¬\¸.×-IÑ-IÜ˜~Ó.×:Ñ:Ó<Ð<äØ/°Ð/?Ð?mÐnóð rÁ   c                ó¸   • [        U R                  [        5      (       a;  U R                  U R                     n[        U[        5      (       a  UR
                  $ g g r»   )rË   r=  rÌ   rÏ   r[   Ú
UpdateTyperÅ   s     r¾   Ú	InputTypeÚPregel.InputTypeï  sL   € ä�d×)Ñ)¬3×/Ñ/Ø—m‘m D×$7Ñ$7Ñ8ˆGÜ˜'¤;×/Ñ/Ø×)Ñ)Ð)ð 0ð 0rÁ   c           
     ó´  >• [        U R                  U5      n[        U R                  [        5      (       a  [
        TU ]  U5      $ [        U R                  S5      U R                  =(       d    U R                  R                  5        Vs0 sH@  nU R                  U   =n(       d  M  [        U[        5      (       d  M2  X#R                  S 4_MB     snS9$ s  snf )Nr   r‘  )r0   rI  rË   r=  rÌ   ÚsuperÚget_input_schemarM   r“  rÏ   Úkeysr[   r©  ©r½   rI  ræ   rÞ   r€  s       €r¾   r®  ÚPregel.get_input_schemaö  s½   ø€ Ü˜tŸ{™{¨FÓ3ˆÜ�d×)Ñ)¬3×/Ñ/Ü‘7Ñ+¨FÓ3Ð3äØ—‘˜gÓ&ð "×0Ñ0×H°D·M±M×4FÑ4FÓ4HÐHó#áH˜Ø!Ÿ]™]¨1Ñ-Ð-˜Ó-ó ,ä3=¸aÄ×3Mó ,�AŸ™ dÐ+Ò+ÙHñ#ñð ùò#s   Â
C
Â'C
Â>C
c                óD   • U R                  U5      nUR                  5       $ r»   )r®  rŸ  ©r½   rI  r   s      r¾   Úget_input_jsonschemaÚPregel.get_input_jsonschema  s#   € ð ×&Ñ& vÓ.ˆØ×'Ñ'Ó)Ð)rÁ   c                ó¸   • [        U R                  [        5      (       a;  U R                  U R                     n[        U[        5      (       a  UR
                  $ g g r»   )rË   r7  rÌ   rÏ   r[   Ú	ValueTyperÅ   s     r¾   Ú
OutputTypeÚPregel.OutputType
  sL   € ä�d×*Ñ*¬C×0Ñ0Ø—m‘m D×$8Ñ$8Ñ9ˆGÜ˜'¤;×/Ñ/Ø×(Ñ(Ð(ð 0ð 1rÁ   c           
     ór  >• [        U R                  U5      n[        U R                  [        5      (       a  [
        TU ]  U5      $ [        U R                  S5      U R                   Vs0 sH@  nU R                  U   =n(       d  M  [        U[        5      (       d  M2  X#R                  S 4_MB     snS9$ s  snf )Nr   r‘  )r0   rI  rË   r7  rÌ   r­  Úget_output_schemarM   r“  rÏ   r[   r·  r°  s       €r¾   r»  ÚPregel.get_output_schema  sª   ø€ ô ˜tŸ{™{¨FÓ3ˆÜ�d×*Ñ*¬C×0Ñ0Ü‘7Ñ,¨VÓ4Ð4äØ—‘˜hÓ'ð "×1Ò1ó#á1˜Ø!Ÿ]™]¨1Ñ-Ð-˜Ó-ó +ä3=¸aÄ×3Mó +�AŸ™ TÐ*Ò*Ù1ñ#ñð ùò#s   Á)B4
ÂB4
ÂB4
c                óD   • U R                  U5      nUR                  5       $ r»   )r»  rŸ  r³  s      r¾   Úget_output_jsonschemaÚPregel.get_output_jsonschema!  s#   € ð ×'Ñ'¨Ó/ˆØ×'Ñ'Ó)Ð)rÁ   c                óN   • U R                   n[        U[        5      (       a  U/$ U$ r»   )Ústream_channels_asisrË   rÌ   )r½   r9  s     r¾   Ústream_channels_listÚPregel.stream_channels_list'  s,   € à×3Ñ3ˆä!+¨O¼S×!AÑ!Aˆ_Ðð	
ØGVð	
rÁ   c                ó²   • U R                   =(       d@    U R                   Vs/ sH)  n[        U R                  U   [        5      (       d  M'  UPM+     sn$ s  snf r»   )r9  rÏ   rË   r[   )r½   ræ   s     r¾   rÁ  ÚPregel.stream_channels_asis.  sG   € à×#Ñ#÷ 
Ø—}’}ó(
Ù$�!¬
°4·=±=ÀÑ3CÄ[×(Q�A‘}ñ(
ð 	
ùò (
s   ¢%AÁA©Ú	namespaceÚrecursec             #  ó¾  ^#   • U R                   R                  5        H¸  u  mnUb  UR                  T5      (       d  M!  UR                  (       a  UR                  S   OSnU(       d  ML  TU:X  a  TU4v •    gUc  TU4v •  U(       d  Ml  [	        U[
        5      (       d  Mƒ  Ub  U[        T5      S-   S nU4S jUR                  XS9 5        Sh  v•N   Mº     g N	7f)á  Get the subgraphs of the graph.

Args:
    namespace: The namespace to filter the subgraphs by.
    recurse: Whether to recurse into the subgraphs.
        If `False`, only the immediate subgraphs will be returned.

Returns:
    An iterator of the `(namespace, subgraph)` pairs.
Nr   rh  c              3  óB   >#   • U H  u  pT [          U 3U4v •  M     g 7fr»   )rI   )rÝ   ÚnÚsrÖ   s      €r¾   rß   Ú'Pregel.get_subgraphs.<locals>.<genexpr>T  s0   øé € ð  ñ%™D˜Að !˜6¤& ¨!¨Ð-¨qÕ1ò%ùs   ƒrÆ  )r3  rè   Ú
startswithr  rË   r¬   Úlenrj  )r½   rÇ  rÈ  rØ   ÚgraphrÖ   s        @r¾   rj  ÚPregel.get_subgraphs4  sÛ   øé € ð Ÿ*™*×*Ñ*Ö,‰JˆD�$àÑ$Ø ×+Ñ+¨D×1Ñ1Ùð *.¯¯�D—N‘N 1Ò%¸TˆE÷ ˆuØ˜9Ó$Ø ˜+Ò%ÙØÑ$Ø ˜+Ò%ß�7œz¨%´×8Ó8Ø Ñ,Ø$-¬c°$«i¸!©m¨oÐ$>˜	ô à$)×$7Ñ$7Ø&/ð %8ñ %ó ÷ ò ò' -ñ&ùs$   ƒA#CÁ*CÂ
CÂ!0CÃCÃ
Cc              óH   #   • U R                  XS9 H  u  p4X447v •  M     g7f)rÊ  rÆ  N)rj  )r½   rÇ  rÈ  rÖ   rØ   s        r¾   rr  ÚPregel.aget_subgraphs[  s*   é € ð ×,Ñ,°yÐ,ÓR‰JˆDØ�*Õò Sùs   ‚ "úCallable[[Any], Any] | NoneÚ_output_mapperÚ_state_mapperc                óÊ   • US   S:  aZ  UR                  S5      (       aC  UR                  S5      nX!S   [        '   [        US   R	                  5       5      US   [        '   ggg)z1Migrate a saved checkpoint to new channel layout.rç   é   Úpending_sendsÚchannel_valuesÚchannel_versionsN)rW  ÚpoprL   Úmaxr4  )r½   Ú
checkpointrÚ  s      r¾   Ú_migrate_checkpointÚPregel._migrate_checkpointp  sh   € à�c‰?˜QÓ :§>¡>°/×#BÑ#BØ(2¯©°Ó(GˆMØ2?Ð'Ñ(¬Ñ/Ü47ØÐ-Ñ.×5Ñ5Ó7ó5ˆJÐ)Ñ*¬5Ò1ð $CÐrÁ   c                ó	  • U(       d  [        0 SUS S S SSS9$ U R                  UR                  5        UR                  R	                  SS5      S-   nUS-   n[        U R                  UR                  [        U R                  [        5      (       a  U R                  OS UR                  S9u  px[        UR                  UR                  =(       d    / U R                  UUUR                  UUSU R                  [        U R                  [        5      (       a  U R                  OS S S	9n	[        U R!                  5       5      n
UR                  ["           R	                  [$        S
5      n0 nU	R'                  5        HÕ  nUR(                  U
;  a  M  UR(                   [*         UR,                   3nU(       a  U [.         U 3nU(       d4  ["        SUR                  ["           S   [$        U00nXUR,                  '   Mƒ  ["        [0        USUR                  ["           S   [$        U00nX­R(                     R3                  USS9XÍR,                  '   M×     UR                  =(       d    /  Vs/ sH  oÿS   [4        :X  d  M  USS  PM     sn=n(       a4  [7        UR                  U[9        S[:        U/ 5      /S U R<                  5        U(       a¿  UR                  (       a®  UR                   HA  u  nnnU[>        [@        4;   a  M  UU	;  a  M!  U	U   RB                  RE                  UU45        MC     U	R'                  5        Vs/ sH  nURB                  (       d  M  UPM     sn=n(       a#  [7        UR                  UUS U R<                  5        [G        U	R'                  5       UR                  UU RH                  5      n[        [K        XpRH                  5      [M        S U	R'                  5        5       5      [O        UR                  UR                  5      UR                  UR                  S   [O        URP                  UR                  5      U[M        U VVs/ sH  oÝRR                   H  nUPM     M     snn5      5      $ s  snf s  snf s  snnf )Nr  ©r4  ÚnextrI  rï   Ú
created_atÚparent_configÚtasksÚ
interruptsÚstepéÿÿÿÿrh  rR  ©ÚsaverrI  T©Úfor_executionrC  rA  ÚmanagerÚ Ú	thread_id©r  r   c              3  ó\   #   • U H#  oR                   (       a  M  UR                  v •  M%     g 7fr»   ©ÚwritesrÖ   ©rÝ   Úts     r¾   rß   Ú1Pregel._prepare_state_snapshot.<locals>.<genexpr>ë  ó   é € ÐFÑ"5˜Q¿X½X“&�!—&–&Ò"5ùó   ‚,™,Úts)*rŸ   rà  rß  rï   rW  rl   rÏ   rË   rA  r$   rI  ri   Úpending_writesr3  rC  Údictrj  r6   r9   r4  rÖ   rH   ÚidrI   r:   Ú	get_staterJ   rg   re   rF   rL  rE   rG   rõ  rÄ   r†   rÁ  rt   rZ  r1   ræ  rè  )r½   rI  ÚsavedrÈ  Úapply_pending_writesré  ÚstoprÏ   ÚmanagedÚ
next_tasksr  Ú	parent_nsÚtask_statesÚtaskÚtask_nsÚwÚnull_writesÚtidræ   rç   r÷  rç  Útasks_with_writesr–  s                           r¾   Ú_prepare_state_snapshotÚPregel._prepare_state_snapshoty  s'  € ö Ü ØØØØØØ"ØØñ	ð 	ð 	× Ñ  ×!1Ñ!1Ô2à�~‰~×!Ñ! &¨"Ó-°Ñ1ˆØ�a‰xˆÜ4Ø�M‰MØ×Ñä˜$×+Ñ+Ô-@×AÑAð ×#Ò#àØ—<‘<ñ
Ñˆô (Ø×ÑØ× Ñ ×& BØ�J‰JØØØ�L‰LØØØØ—*‘*ô ˜d×/Ñ/Ô1D×EÑEð ×!Ò!ààñ!
ˆ
ô& ˜×+Ñ+Ó-Ó.ˆ	Ø—L‘L¤Ñ&×*Ñ*Ô+CÀRÓHˆ	ØACˆØ×%Ñ%Ö'ˆDØ�y‰y 	Ó)ÙàŸ™˜¤F 8¨D¯G©G¨9Ð5ˆGÞØ&˜K¬ x°¨yÐ9�Þô Ø# U§\¡\´$Ñ%7¸Ñ%DÜ0°'ðð�ð (.˜DŸG™GÓ$ô Ü/°Ø# U§\¡\´$Ñ%7¸Ñ%DÜ0°'ðð�ð (1·±Ñ';×'EÑ'EØ dð (Fð (�ŸG™GÓ$ñ3 (ð< !×/Ñ/×5°2Ð5ó
Ù5�a¸1¹ÄÑ9M‹EˆAˆaˆb‹EÑ5ñ
ð 
ˆ;õ 
ô Ø× Ñ ØÜ! "¤e¨[¸"Ó=Ð>ØØ×%Ñ%ôö   E×$8×$8Ø"×1Ô1‘	��Q˜Øœ¤	Ð*Ó*ÙØ˜jÓ(ÙØ˜3‘×&Ñ&×-Ñ-¨q°!¨fÖ5ñ 2ð %/×$5Ñ$5Ô$7ÓDÑ$7˜q¸1¿8½8ŸÑ$7ÑDÐDˆuÕDÜØ×$Ñ$ h°°t¸T×=RÑ=Rôô +Ø×ÑÓØ× Ñ ØØ×%Ñ%ó	
Ðô Ü˜(×$=Ñ$=Ó>ÜÑF *×"3Ñ"3Ô"5ÓFÓFÜ  §¡¨u¯~©~Ó>Ø�N‰NØ×Ñ˜TÑ"Ü  ×!4Ñ!4°e·n±nÓEØÜÑ!2ÔLÑ!2˜¿O¼O°q“1¹O‘1Ñ!2ÒLÓMó	
ð 		
ùò9
ùò" Eùó& Ms   É*Q=É=	Q=Ì?RÍRÑRc              ƒ  ó€	  #   • U(       d  [        0 SUS S S SSS9$ U R                  UR                  5        UR                  R	                  SS5      S-   nUS-   n[        U R                  UR                  [        U R                  [        5      (       a  U R                  OS UR                  S9I S h  v•N u  px[        UR                  UR                  =(       d    / U R                  UUUR                  UUSU R                  [        U R                  [        5      (       a  U R                  OS S S	9n	U R                  5        V
Vs0 s S h  v•N u  p«X«_M   N¤ N
 Os  snn
f nn
nUR                  [            R	                  ["        S
5      n0 nU	R%                  5        HÞ  nUR&                  U;  a  M  UR&                   [(         UR*                   3nU(       a  U [,         U 3nU(       d4  [         SUR                  [            S   ["        U00nXUR*                  '   Mƒ  [         [.        USUR                  [            S   ["        U00nXÏR&                     R1                  USS9I S h  v•N  XïR*                  '   Mà     UR                  =(       d    /  Vs/ sH  nUS   [2        :X  d  M  USS  PM     Os  snf sn=n(       a4  [5        UR                  U[7        S[8        U/ 5      /S U R:                  5        U(       aÅ  UR                  (       a´  UR                   HA  u  nnnU[<        [>        4;   a  M  UU	;  a  M!  U	U   R@                  RC                  UU45        MC     U	R%                  5        Vs/ sH  nUR@                  (       d  M  UPM     Os  snf sn=n(       a#  [5        UR                  UUS U R:                  5        [E        U	R%                  5       UR                  UU RF                  5      n[        [I        XpRF                  5      [K        S U	R%                  5        5       5      [M        UR                  UR                  5      UR                  UR                  S   [M        URN                  UR                  5      U[K        U VVs/ sH  oÿRP                   H  nUPM     M     Os  snnf snn5      5      $ 7f)Nr  rã  ré  rê  rh  rR  rë  Trí  rð  rñ  rò  r   c              3  ó\   #   • U H#  oR                   (       a  M  UR                  v •  M%     g 7fr»   rô  rö  s     r¾   rß   Ú2Pregel._aprepare_state_snapshot.<locals>.<genexpr>g  rù  rú  rû  ))rŸ   rà  rß  rï   rW  rk   rÏ   rË   rA  r$   rI  ri   rü  r3  rC  rr  r6   r9   r4  rÖ   rH   rþ  rI   r:   Ú
aget_staterJ   rg   re   rF   rL  rE   rG   rõ  rÄ   r†   rÁ  rt   rZ  r1   ræ  rè  )r½   rI  r   rÈ  r  ré  r  rÏ   r  r  rÌ  Úgr  r  r  r  r  r	  r
  r  ræ   rç   r÷  rç  r  r–  s                             r¾   Ú_aprepare_state_snapshotÚPregel._aprepare_state_snapshotô  sE  é € ö Ü ØØØØØØ"ØØñ	ð 	ð 	× Ñ  ×!1Ñ!1Ô2à�~‰~×!Ñ! &¨"Ó-°Ñ1ˆØ�a‰xˆÜ";Ø�M‰MØ×Ñä˜$×+Ñ+Ô-@×AÑAð ×#Ò#àØ—<‘<ñ#
÷ 
Ñˆô (Ø×ÑØ× Ñ ×& BØ�J‰JØØØ�L‰LØØØØ—*‘*ô ˜d×/Ñ/Ô1D×EÑEð ×!Ò!ààñ!
ˆ
ð& -1×,?Ñ,?Ô,A×BÔB¡D A�Q’Tñ9
ó8 CùÓBˆ	ÑBØ—L‘L¤Ñ&×*Ñ*Ô+CÀRÓHˆ	ØACˆØ×%Ñ%Ö'ˆDØ�y‰y 	Ó)ÙàŸ™˜¤F 8¨D¯G©G¨9Ð5ˆGÞØ&˜K¬ x°¨yÐ9�Þô Ø# U§\¡\´$Ñ%7¸Ñ%DÜ0°'ðð�ð (.˜DŸG™GÓ$ô Ü/°Ø# U§\¡\´$Ñ%7¸Ñ%DÜ0°'ðð�ð .7·y±yÑ-A×-LÑ-LØ dð .Mð .÷ (ð (�ŸG™GÓ$ñ3 (ð< !×/Ñ/×5°2Ð5ó
Ù5�a¸¸1¹ÄÑ9M‹EˆAˆaˆb‹EÒ5ùô
ð 
ˆ;õ 
ô Ø× Ñ ØÜ! "¤e¨[¸"Ó=Ð>ØØ×%Ñ%ôö   E×$8×$8Ø"×1Ô1‘	��Q˜Øœ¤	Ð*Ó*ÙØ˜jÓ(ÙØ˜3‘×&Ñ&×-Ñ-¨q°!¨fÖ5ñ 2ð %/×$5Ñ$5Ô$7ÓDÑ$7˜q¸1¿8½8ŸÒ$7ùÔDÐDˆuÕDÜØ×$Ñ$ h°°t¸T×=RÑ=Rôô +Ø×ÑÓØ× Ñ ØØ×%Ñ%ó	
Ðô Ü˜(×$=Ñ$=Ó>ÜÑF *×"3Ñ"3Ô"5ÓFÓFÜ  §¡¨u¯~©~Ó>Ø�N‰NØ×Ñ˜TÑ"Ü  ×!4Ñ!4°e·n±nÓEØÜÑ!2ÔLÑ!2˜¿O¼O°q“1¹O‘1Ò!2ùÖLÓMó	
ð 		
ùsˆ   ‚B/R>Â1EÂ2BR>ÅEÅEÅEÅEÅEÅR>ÅEÅEÅDR>É*I-É+,R>ÊJ5Ê+	J5Ê4B?R>Í3NÎNÎC=R>ÒR,Ò+R>rò  c               óÀ  • [        U5      [           R                  [        U R                  5      n[        U[        5      (       a  U R                  U5      nU(       d  [        S5      eU[           R                  [        S5      =n(       ad  [        U[           ;  aS  [        U5      nU R                  USS9 H%  u  pgUR                  [        U[        U05      US9s  $    [        SU S35      eU R                  (       a  [        U R                  U5      OUnU R                  SL a?  [!        ["        U[           [           5      n[        U[        [        [        U5      005      nU[           [$           n	[        U	["        5      (       d  [#        U	5      U[           [$        '   UR'                  U5      n
U R)                  UU
U(       a  UOS[*        U[           ;  S	9$ )
ú#Get the current state of the graph.úNo checkpointer setrð  TrÆ  rò  ú	Subgraph ú
 not foundN©rÈ  r  )r/   r6   rW  r:   rA  rË   r$   rb  rÃ   r9   r4   rj  rÿ  r3   rI  r0   r   rÌ   rD   Ú	get_tupler  r8   ©r½   rI  r  rA  Úcheckpoint_nsÚrecastÚ_ÚpregelÚnsrñ  r   s              r¾   rÿ  ÚPregel.get_statep  sº  € ô 4AÀÓ3HÌÑ3N×3RÑ3RÜ# T×%6Ñ%6ó4
ˆô �lÔ$7×8Ñ8Ø×=Ñ=¸lÓKˆLÞÜÐ2Ó3Ð3ð $¤D™\×-Ñ-Ô.FÈÓKÐKˆMÕKÜ%¨V´D©\Ó9ä)¨-Ó8ˆFà!×/Ñ/¸&È$Ð/ÓO‘	�Ø×'Ñ'Ü& vÔ0GÈÐ/VÓWØ'ð (ð ò ñ Pô ! 9¨V¨H°JÐ!?Ó@Ð@à7;·{·{”˜tŸ{™{¨FÔ3ÈˆØ×Ñ Ò$Ü”c˜6¤$™<Ô(@ÑAÓBˆBÜ"ØœÔ 8Ô:NÈrÓ:RÐSÐTóˆFð œ4‘LÔ!5Ñ6ˆ	Ü˜)¤S×)Ñ)Ü14°Y³ˆF”4‰LÔ-Ñ.à×&Ñ& vÓ.ˆØ×+Ñ+ØØÞ$-‘L°4Ü!9ÀÌÁÑ!Mð	 ,ð 
ð 	
rÁ   c             ƒ  ó  #   • [        U5      [           R                  [        U R                  5      n[        U[        5      (       a  U R                  U5      nU(       d  [        S5      eU[           R                  [        S5      =n(       aa  [        U[           ;  aP  [        U5      nU R                  USS9  Sh  v•N u  pgUR                  [        U[        U05      US9I Sh  v•N s  $ U R                  (       a  [        U R                  U5      OUnU R                  SL a?  [!        ["        U[           [           5      n[        U[        [        [        U5      005      nU[           [$           n	[        U	["        5      (       d  [#        U	5      U[           [$        '   UR'                  U5      I Sh  v•N n
U R)                  UU
U(       a  UOS[*        U[           ;  S	9I Sh  v•N $  GN0 GN	
 [        SU S35      e NK N7f)
r  r  rð  TrÆ  Nrò  r  r  r  )r/   r6   rW  r:   rA  rË   r$   rb  rÃ   r9   r4   rr  r  r3   rI  r0   r   rÌ   rD   Ú
aget_tupler  r8   r  s              r¾   r  ÚPregel.aget_stateœ  sè  é € ô 4AÀÓ3HÌÑ3N×3RÑ3RÜ# T×%6Ñ%6ó4
ˆô �lÔ$7×8Ñ8Ø×=Ñ=¸lÓKˆLÞÜÐ2Ó3Ð3ð $¤D™\×-Ñ-Ô.FÈÓKÐKˆMÕKÜ%¨V´D©\Ó9ä)¨-Ó8ˆFà#'×#6Ñ#6ÀÐQUÐ#6Ñ#V÷ A‘i�aØ#×.Ñ.Ü& vÔ0GÈÐ/VÓWØ'ð /ð ÷ ò ð 8<·{·{”˜tŸ{™{¨FÔ3ÈˆØ×Ñ Ò$Ü”c˜6¤$™<Ô(@ÑAÓBˆBÜ"ØœÔ 8Ô:NÈrÓ:RÐSÐTóˆFð œ4‘LÔ!5Ñ6ˆ	Ü˜)¤S×)Ñ)Ü14°Y³ˆF”4‰LÔ-Ñ.à"×-Ñ-¨fÓ5×5ˆØ×2Ñ2ØØÞ$-‘L°4Ü!9ÀÌÁÑ!Mð	 3ð 
÷ 
ð 	
ò'Aòð $Wô ! 9¨V¨H°JÐ!?Ó@Ð@ñ 6ñ
ùs[   ‚B9H	Â;G5Â?G/Ã G5Ã&H	Ã)G2Ã*CH	Æ9HÆ:0H	Ç*HÇ+H	Ç/G5Ç2H	Ç5H	ÈH	©ÚfilterÚbeforeÚlimitc             #  ó  #   • [        U5      nU[           R                  [        U R                  5      n[        U[        5      (       a  U R                  U5      nU(       d  [        S5      eU[           R                  [        S5      =n(       an  [        U[           ;  a]  [        U5      nU R                  USS9 H/  u  p‰U	R                  [        U[        U05      UUUS9 Sh  v•N     g   [        SU S35      e[        U R                  U[        [        U[         [#        U[           [            5      005      n[%        UR%                  XXBS	95       H!  n
U R'                  U
R                  U
5      v •  M#     g N–7f)
z*Get the history of the state of the graph.r  rð  TrÆ  r'  Nr  r  ©r)  r*  r(  )r/   r6   rW  r:   rA  rË   r$   rb  rÃ   r9   r4   rj  Úget_state_historyr3   r0   rI  rD   rÌ   rÍ   r  )r½   rI  r(  r)  r*  rA  r  r  r   r!  Úcheckpoint_tuples              r¾   r-  ÚPregel.get_state_historyÈ  s‡  é € ô ˜vÓ&ˆØ39¼$±<×3CÑ3CÜ# T×%6Ñ%6ó4
ˆô �lÔ$7×8Ñ8Ø×=Ñ=¸lÓKˆLÞÜÐ2Ó3Ð3ð $¤D™\×-Ñ-Ô.FÈÓKÐKˆMÕKÜ%¨V´D©\Ó9ä)¨-Ó8ˆFà!×/Ñ/¸&È$Ð/ÓO‘	�Ø!×3Ñ3Ü& vÔ0GÈÐ/VÓWØ!Ø!Øð	 4ð ÷ ð ñ ñ Pô ! 9¨V¨H°JÐ!?Ó@Ð@äØ�K‰KØäÜ,¨mÜ(¬#¨f´T©lÔ;OÑ.PÓ*Qððó	
ˆô !%Ø×Ñ˜f¸5ÐÐPö!
Ðð ×.Ñ.Ø ×'Ñ'Ð)9óô ò!
ñ+ùs   ‚C%F Ã'E>Ã(BF c              ór  #   • [        U5      n[        U5      [           R                  [        U R                  5      n[        U[        5      (       a  U R                  U5      nU(       d  [        S5      eU[           R                  [        S5      =n(       ai  [        U[           ;  aX  [        U5      nU R                  USS9  Sh  v•N u  p‰U	R                  [        U[        U05      UUUS9  Sh  v•N n
U
7v •  M  [        U R                  U[        [        U[         [#        U[           [            5      005      nUR%                  XXBS	9 Vs/ s Sh  v•N nUPM   N™ Nn
   g
 [        SU S35      e N
 Os  snf sn H+  nU R'                  UR                  U5      I Sh  v•N  7v •  M-     g7f)
z9Asynchronously get the history of the state of the graph.r  rð  TrÆ  Nr'  r  r  r,  )r/   r6   rW  r:   rA  rË   r$   rb  rÃ   r9   r4   rr  Úaget_state_historyr3   r0   rI  rD   rÌ   Úalistr  )r½   rI  r(  r)  r*  rA  r  r  r   r!  ÚstaterÞ   r.  s                r¾   r1  ÚPregel.aget_state_historyý  sÉ  é € ô ˜vÓ&ˆÜ3@ÀÓ3HÌÑ3N×3RÑ3RÜ# T×%6Ñ%6ó4
ˆô �lÔ$7×8Ñ8Ø×=Ñ=¸lÓKˆLÞÜÐ2Ó3Ð3ð $¤D™\×-Ñ-Ô.FÈÓKÐKˆMÕKÜ%¨V´D©\Ó9ä)¨-Ó8ˆFà#'×#6Ñ#6ÀÐQUÐ#6Ñ#V÷ 
A‘i�aØ#)×#<Ñ#<Ü& vÔ0GÈÐ/VÓWØ!Ø!Øð	 $=ñ $÷  ˜%ð  •Kô
 Ø�K‰KØäÜ,¨mÜ(¬#¨f´T©lÔ;OÑ.PÓ*Qððó	
ˆð (×-Ñ-Ø¨Uð .ñ ÷!
ó !
àó ñ1
Añ ð $ñ ð $Wô ! 9¨V¨H°JÐ!?Ó@Ð@ó!
ù÷ !
Ðð ×5Ñ5Ø ×'Ñ'Ð)9ó÷ ð õ ò!
ùs…   ‚CF7ÃE+Ã
E$ÃE+Ã%F7Ã3E(Ã7E&Ã8E(Ã;AF7ÅE?ÅE=ÅE;
ÅE=ÅE?Å$E+Å&E(Å(F7Å;E=Å=E?Å>+F7Æ)F,Æ*F7c                óü  ^ ^	^
• [        U5      [           R                  [        T R                  5      m	[        T	[        5      (       a  T R                  T	5      m	T	(       d  [        S5      e[        U5      S:X  a  [        S5      e[        S U 5       5      (       a  [        S5      eU[           R                  [        S5      =n(       af  [        U[           ;  aU  [        U5      nT R                  USS9 H'  u  pVUR                  [        U[        T	05      U5      s  $    [        S	U S
35      e      SU	U
U 4S jjm
[        U[         [#        U[           [            5      05      nU H  nT
" Xx5      nM     U$ )a  Apply updates to the graph state in bulk. Requires a checkpointer to be set.

Args:
    config: The config to apply the updates to.
    supersteps: A list of supersteps, each including a list of updates to apply sequentially to a graph state.

        Each update is a tuple of the form `(values, as_node, task_id)` where `task_id` is optional.

Raises:
    ValueError: If no checkpointer is set or no updates are provided.
    InvalidUpdateError: If an invalid update is provided.

Returns:
    RunnableConfig: The updated config.
r  r   úNo supersteps providedc              3  ó<   #   • U H  n[        U5      S :H  v •  M     g7f©r   N©rÐ  ©rÝ   Úus     r¾   rß   Ú+Pregel.bulk_update_state.<locals>.<genexpr>V  ó   é € Ð/¡J˜qŒs�1‹v˜Ž{¢Jùó   ‚úNo updates providedrð  TrÆ  r  r  c                óÄ  >• [        T1R                  U 5      nT/R                  U5      nUb  T1R                  UR                  5        U(       a  [        UR                  5      O	[        5       nU(       a  UR                  S   R                  5       O0 nU(       a  UR                  R                  SS5      OSn[        U[        U[           R                  [        S5      05      nU(       a  [        X#R                  [           5      n[        T1R                  UUb+  [        T1R                   ["        5      (       a  T1R                   OS Ub  UR                  OS S9u  p‰US   S S u  p«U
Gcç  U[$        :X  GaÜ  ['        U5      S:”  a  [)        S	5      eUGbF  [+        UUR,                  =(       d    / T1R.                  UU	UR                  US-   US
-   ST1R0                  T/S S9nUR,                  =(       d    /  Vs/ sH  nUS   [2        :X  d  M  USS  PM     sn=n(       a4  [5        UU[7        S[8        U/ 5      /T/R:                  T1R<                  5        UR,                  =(       d    /  H?  u  nnnU[>        [@        4;   a  M  Xü;  a  M   XÏ   RB                  RE                  UU45        MA     [5        UUURG                  5       T/R:                  T1R<                  5        T/RI                  U[K        XHU5      SUS-   U(       a  UR                  R                  S0 5      O0 S.[M        UUS   5      5      n[O        UU(       a  UR                  5      $ S 5      $ U[8        :X  Gab  ['        U5      S:”  a  [)        S5      e[Q        [S        T1RT                  U
5      5      =n(       Ga	  [5        UU[7        S[8        U/ 5      /T/R:                  T1R<                  5        U(       a!  UR                  R                  S5      b  US-   OSnT/RI                  U[K        XHU5      SUU(       a  UR                  R                  S0 5      O0 S.[M        UUS   5      5      nT/RW                  UU[Y        [[        []        US   5      [8        5      5      5        [O        UU(       a  UR                  5      $ S 5      $ [)        ST1RT                   35      eUS:X  Ga2  ['        U5      S:”  a  [)        S5      eUc  [)        S5      e[K        US U5      nT/RI                  UR^                  =(       d    [        UR                  [`        S 05      USUS-   UR                  R                  S0 5      S.0 5      n[        U
[b        5      (       Gao  ['        U
5      S:”  Ga_  [+        UUR,                  =(       d    / T1R.                  UU	UUS-   US-   ST1R0                  T/S S9n[e        [b        5      n[e        [b        5      nURG                  5        H+  nUURf                     RE                  URh                  5        M-     U
 Hu  n[        U[j        5      (       d  [)        SU S35      eUS S u  p«UU   nUU   n['        U5      nU['        U5      :  a  UU   OS nUU   RE                  [m        X«US95        Mw     T0" [O        UUR                  5      URG                  5        VVs/ sH  nU H  nUPM     M     snn5      $ [O        UUR                  5      $ [e        [P        5      nUbŽ  UR,                  b�  [+        UUR,                  T1R.                  UU	UR                  US-   US
-   ST1R0                  T/S S9nURG                  5        H+  n UU Rf                     RE                  U Rh                  5        M-     / n!['        U5      S:X  GaQ  US   u  p«nUc2  ['        T1R.                  5      S:X  a  [o        T1R.                  5      S   nOÓUcn  [q        S US   RG                  5        5       5      (       dF  [        T1RT                  [X        5      (       a&  T1RT                  T1R.                  ;   a  T1RT                  nObUc_  [s        U14S jUS   Ru                  5        5       5      n"U"(       a2  ['        U"5      S:X  a	  U"S   S   nOU"S   S   U"S    S   :w  a  U"S   S   nUc  [)        S!5      eUT1R.                  ;  a  [)        S"U S#35      eU!RE                  XºU45        OLU HF  u  p«nUc  [)        S$5      eUT1R.                  ;  a  [)        S"U S#35      eU!RE                  XºU45        MH     / n#/ n$U! GHW  u  pºn%T1R.                  U   Rv                  n&U&(       d  [)        S"U S%35      e[Q        5       n'[7        SUU'[@        /5      nUR                  U[Q        5       5      n(U%=(       d<    U((       a  U(Ry                  5       O$[Y        [[        []        US   5      [@        5      5      nU#RE                  U5        U$RE                  U5        ['        U&5      S:”  a  [{        U&6 OU&S   n)U)R}                  U
[        UT1Rf                  S&-   [€        U'R‚                  [„        U[†        [‰        [Š        [�        S / USS UUS-   5      UU	U5      0S'95        GMZ     [�        U#5      n*Ub[  [‘        U$U#5       HK  u  nnURB                   Vs/ sH  oÝS   [’        :w  d  M  UPM     n+nU+(       d  M8  T/RW                  UU+U5        MM     [5        UUU#T/R:                  T1R<                  5        [•        UU*US-   U(       a  UR                  R                  S0 5      O0 U(       a  UR                  OS US L S(9u  n,n-[K        UUUS-   U,(       a  U*OS U,(       a  T/R:                  OS U,S)9nT/RI                  UUU-[M        XTS   5      5      n[‘        U$U#5       HL  u  nnURB                   Vs/ sH  oÝS   [’        :X  d  M  UPM     sn=n.(       d  M9  T/RW                  UU.U5        MN     [O        UU(       a  UR                  5      $ S 5      $ s  snf s  snnf s  snf s  snf )*NrÜ  ré  rê  rð  rë  r   rR  rh  ú1Cannot apply multiple updates when clearing stateé   Trí  r  rí   Úparents©Úsourceré  rC  ú4Cannot apply multiple updates when updating as inputÚinputrþ  úReceived no input writes for Ú__copy__ú,Cannot copy checkpoint with multiple updatesú%Cannot copy a non-existent checkpointÚforkrÙ  úInvalid update item: ú when copying checkpoint©r4  Úas_nodeÚtask_idc              3  óR   #   • U H  nUR                  5        H  nUv •  M	     M      g 7fr»   )r4  )rÝ   Úvvrç   s      r¾   rß   ÚFPregel.bulk_update_state.<locals>.perform_superstep.<locals>.<genexpr>w  s*   é € ð 1áB˜ØŸY™Yž[˜õ á(ñ ÚBùs   ‚%'Úversions_seenc              3  ó~   >#   • U H3  u  pUTR                   ;   d  M  UR                  5        H  nX14v •  M
     M5     g 7fr»   ©r3  r4  ©rÝ   rÌ  Úseenrç   r½   s       €r¾   rß   rT  ‚  óC   øé € ð /á'J™G˜AØ §
¡
™?ó ð "&§¡¦˜Að �ñ "/ñ Ú'Jùó   ƒ=œ!=éþÿÿÿú!Ambiguous update, specify as_nodeúNode ú does not existú2as_node is required when applying multiple updatesú has no writersÚUpdateState©Úrun_namer�  ©ré  rC  Úsaved_metadataÚis_fresh_thread©Úupdated_channelsÚget_next_versionÚchannels_to_snapshot)Kr/   rI  r  rà  rß  rm   rp   r‚  rï   rW  r3   r9   r6   rl   rÏ   rË   rA  r$   r^   rÐ  rb   ri   rü  r3  rC  rJ   rg   re   rF   rj  rL  rE   rG   rõ  rÄ   r4  Úputrn   r~   r1   r   rs   r=  Ú
put_writesrÌ   r   r   ræ  r8   rÍ   r   rÖ   rþ  r   r    rZ  ÚanyÚsortedrè   Úflat_writersÚpopleftr   Úinvoker2   r@   rÎ   rC   r=   r   rh   rf   rq   rs  rK   ro   )2Úinput_configÚupdatesrI  r   rß  Úcheckpoint_previous_versionsré  Úcheckpoint_configrÏ   r  r4  rP  r  r	  r
  r  ræ   rç   Únext_configÚinput_writesÚ	next_stepÚnext_checkpointÚtasks_group_byÚuser_group_byr  ÚitemÚ
user_groupÚtasks_groupÚ
target_idxrQ  ÚlstÚnode_to_task_idsr÷  Úvalid_updatesÚlast_seen_by_nodeÚ	run_tasksÚrun_task_idsÚprovided_task_idr   rõ  Úprepared_task_idsÚrunri  Úchannel_writesrk  Úcheckpoint_metadataÚpush_writesrA  Úperform_superstepr½   s2                                                  €€€r¾   r�  Ú3Pregel.bulk_update_state.<locals>.perform_supersteph  sp  ø€ ô # 4§;¡;°Ó=ˆFØ ×*Ñ*¨6Ó2ˆEØÑ Ø×(Ñ(¨×)9Ñ)9Ô:æ5:” × 0Ñ 0Ô1Ô@PÓ@Rð ö @E�× Ñ Ð!3Ñ4×9Ñ9Ô;È"ð )ö 6;�5—>‘>×%Ñ% f¨bÔ1ÀˆDä 2Øä,¨f´T©l×.>Ñ.>Ü0°"ó/ðó!Ðö Ü$6°v¿|¹|ÌDÑ?QÓ$RÐ!Ü 8Ø—‘ØàÑ$Ü˜t×0Ñ0Ô2E×FÑFð ×'Ò'ð Ø',Ñ'8�u—|’|¸dñ!ÑˆHð & a™j¨¨!˜n‰OˆFð Š~ '¬S¤.Ü�w“< !Ó#Ü,ØKóð ð Ò$ä!3Ø"Ø×,Ñ,×2°ØŸ
™
Ø ØØŸ™Ø˜q™Ø˜q™Ø&*Ø"Ÿj™jØ%1Ø $ñ"�Jð" "'×!5Ñ!5×!;¸Ð!;ó'á!;˜AØ˜Q™4¤<Ñ/ó ˜˜!˜"›Ù!;ñ'ð �{õ ô
 %Ø&Ø$Ü-¨b´%¸ÀbÓIÐJØ(×9Ñ9Ø ×1Ñ1ôð &+×%9Ñ%9×%?¸RÒ%?™	˜˜Q Ø¤¬	Ð 2Ó2Ù$ØÓ0Ù$Ø"™×.Ñ.×5Ñ5°q¸!°fÖ=ñ &@ô !Ø"Ø Ø"×)Ñ)Ó+Ø$×5Ñ5Ø×-Ñ-ôð +×.Ñ.Ø%Ü% j¸DÓAà"*Ø $ q¡ÞHM 5§>¡>×#5Ñ#5°iÀÔ#DÐSUñô
 -Ø4Ø"Ð#5Ñ6óó�ô ,Ø¶5 §¡óð Ø>Bóð ð
 œ%ÔÜ�w“< !Ó#Ü,ØNóð ô $)¬°4×3FÑ3FÈÓ)OÓ#PÐP�<ÖPÜ Ø"Ø Ü)¨"¬e°\À2ÓFÐGØ$×5Ñ5Ø×-Ñ-ôö ! U§^¡^×%7Ñ%7¸Ó%?Ñ%Kð ˜qšàð ð
 #/×"2Ñ"2Ø)Ü)¨*À	ÓJà&-Ø$-æ$ð (-§~¡~×'9Ñ'9¸)ÀRÔ'Hà!#ñô 1Ø8Ø&Ð'9Ñ:óó#�Kð" !×+Ñ+Ø#Ø$ÜœE¤$ z°$Ñ'7Ó"8¼%Ó@ÓAôô 0Ø#¶u U§^¡^óð ØBFóð ô -Ø7¸×8KÑ8KÐ7LÐMóð ð
 ˜*Ô$Ü�w“< !Ó#Ü,ØFóð ð ‘=Ü,Ð-TÓUÐUä"3°JÀÀdÓ"K�ð +×.Ñ.Ø×'Ñ'÷ Ü)ØŸ™Ô'?ÀÐ&Fóð $à"(Ø $ q¡Ø#(§>¡>×#5Ñ#5°iÀÓ#Dñð
 ó�ô  ˜f¤d×+Ò+´°F³¸a´ä!3Ø'Ø×,Ñ,×2°ØŸ
™
Ø ØØ#Ø˜q™Ø˜q™Ø&*Ø"Ÿj™jØ%1Ø $ñ"�Jô &1´Ó%6�NÜBMÌdÓBS�Mà *× 1Ñ 1Ö 3˜Ø& t§y¡yÑ1×8Ñ8¸¿¹ÖAñ !4ó !'˜Ü)¨$´×9Ñ9Ü"4Ø"7¸°vÐ=UÐ Vó#ð ð +/¨r°¨(™˜à%2°7Ñ%;˜
Ø&4°WÑ&=˜ä%(¨£_˜
ð  *¬C°Ó,<Ó<ð (¨
Ò3à!%ð  ð & gÑ.×5Ñ5Ü'¨vÐPWÑXöñ% !'ñ, -Ü,¨[¸%¿.¹.ÓIØ)6×)=Ñ)=Ô)?ÔPÑ)? #ËCÀD›ÉC™Ñ)?ÒPóð ô
 ,¨K¸¿¹ÓHÐHô 7BÄ%Ó6HÐØÑ  U×%9Ñ%9Ñ%Eô 0ØØ×(Ñ(Ø—J‘JØØØ—L‘LØ˜1‘HØ˜1‘HØ"&ØŸ*™*Ø!-Ø ñ�
ð $×*Ñ*Ö,�AØ$ Q§V¡VÑ,×3Ñ3°A·D±DÖ9ñ -ð RTˆMÜ�7‹|˜qÔ Ø+2°1©:Ñ(� à‘?¤s¨4¯:©:£¸!Ó';Ü# D§J¡JÓ/°Ñ2‘GØ‘_¬Sñ 1à(¨Ñ9×@Ñ@ÔBó1÷ .ñ .ô # 4×#6Ñ#6¼×<Ñ<Ø ×/Ñ/°4·:±:Ó=à"&×"5Ñ"5˜øØ‘_Ü(.ô /à'1°/Ñ'B×'HÑ'HÔ'Jó/ó )Ð%ö )ÜÐ0Ó1°QÓ6Ø&7¸Ñ&:¸1Ñ&=™GØ.¨rÑ2°1Ñ5Ð9JÈ2Ñ9NÈqÑ9QÓQØ&7¸Ñ&;¸AÑ&>˜GØ‘?Ü,Ð-PÓQÐQØ $§*¡*Ó,Ü,¨u°W°I¸_Ð-MÓNÐNØ×$Ñ$ g°wÐ%?Õ@ã07Ñ,�F WØ‘Ü0ØPóð ð  d§j¡jÓ0Ü0°5¸¸	ÀÐ1QÓRÐRà!×(Ñ(¨'¸7Ð)CÖDñ 18ð 13ˆIØ&(ˆLä5BÑ1�Ð!1àŸ*™* WÑ-×:Ñ:�ÞÜ,¨u°W°I¸_Ð-MÓNÐNÜ16³�Ü'¨¨G°V¼i¸[ÓI�ð %5×$8Ñ$8¸Ä%Ã'Ó$JÐ!Ø*÷ æ(ð &×-Ñ-Ô/äœU¤4¨
°4Ñ(8Ó#9¼9ÓEÓFð ð
 × Ñ  Ô&Ø×#Ñ# GÔ,Ü47¸³LÀ1Ó4DÔ&¨Ñ0È'ÐRSÉ*�à—
‘
ØÜ ØØ!%§¡¨]Ñ!:ô ,¨V¯]©]Ü.°Ü+¬WÜ *Ü +Ø$(Ø$&Ø$+Ø$&Ø$(Ø$(Ø$(¨1¡Hó!"ð !)Ø 'Ø $ó.ð	&ñ÷ñ) 6Cô^  ?¸yÓIÐØÑ Ü%(¨°yÖ%A‘M�G˜TØ15·²Ó%M±¨AÀ!ÁÌÁ§a±�NÐ%Mß%�~Ø$×/Ñ/Ø-¨~¸wöñ &Bô ØØØØ×-Ñ-Ø×%Ñ%ôô <ØØ$Ø ™ÞAF˜EŸN™N×.Ñ.¨y¸"Ô=ÈBÞ5: 5§>¢>ÀØ$)¨T Mññ 6Ð Ð"5ô +ØØØ�q‘Þ5IÑ!1Ètæ'ð ".×!>Ò!>àØ%9ñ	ˆJð '×*Ñ*Ø!ØØ#Ü(Ø0Ð=OÑ2Póó	ˆKô "% \°9Ö!=‘�˜Ø.2¯kªkÓ"J©k¨¸q¹TÄT¹\§1©kÑ"JÐJ�;×JØ ×+Ñ+¨K¸ÀgÖNñ ">ô (¨Æu°U·^±^ÓWÐWÐRVÓWÐWùòu
'ùó\ Qùò@ &NùòR #Ks*   Ç6qÈ
	qÛqëqë*qï.qðq©rs  r   rt  zSequence[StateUpdate]r  r   )r/   r6   rW  r:   rA  rË   r$   rb  rÃ   rÐ  rn  r9   r4   rj  Úbulk_update_stater3   rD   rÌ   )r½   rI  Ú
superstepsr  r  r   r!  Úcurrent_configÚ	supersteprA  r�  s   `        @@r¾   r�  ÚPregel.bulk_update_state6  sŒ  ú€ ô* 4AÀÓ3HÌÑ3N×3RÑ3RÜ# T×%6Ñ%6ó4
ˆô �lÔ$7×8Ñ8Ø×=Ñ=¸lÓKˆLÞÜÐ2Ó3Ð3äˆz‹?˜aÓÜÐ5Ó6Ð6äÑ/¡JÓ/×/Ñ/ÜÐ2Ó3Ð3ð $¤D™\×-Ñ-Ô.FÈÓKÐKˆMÕKÜ%¨V´D©\Ó9ä)¨-Ó8ˆFà!×/Ñ/¸&È$Ð/ÓO‘	�Ø×/Ñ/Ü& vÔ0GÈÐ/VÓWØóò ñ Pô ! 9¨V¨H°JÐ!?Ó@Ð@ðW	XØ(ðW	XØ3HðW	Xà÷W	Xñ W	Xôr ,ØÔ)¬3¨v´d©|Ô<PÑ/QÓ+RÐSó
ˆó $ˆIÙ.¨~ÓIŠNñ $àÐrÁ   c              ƒ  ó:  ^ ^	^
#   • [        U5      [           R                  [        T R                  5      m
[        T
[        5      (       a  T R                  T
5      m
T
(       d  [        S5      e[        U5      S:X  a  [        S5      e[        S U 5       5      (       a  [        S5      eU[           R                  [        S5      =n(       ac  [        U[           ;  aR  [        U5      nT R                  USS9  S	h  v•N u  pVUR                  [        U[        T
05      U5      I S	h  v•N s  $       SU	U
U 4S jjm	[        U[         [#        U[           [            5      05      nU H  nT	" Xx5      I S	h  v•N nM     U$  N† N\
 [        S
U S35      e N7f)a#  Asynchronously apply updates to the graph state in bulk. Requires a checkpointer to be set.

Args:
    config: The config to apply the updates to.
    supersteps: A list of supersteps, each including a list of updates to apply sequentially to a graph state.

        Each update is a tuple of the form `(values, as_node, task_id)` where `task_id` is optional.

Raises:
    ValueError: If no checkpointer is set or no updates are provided.
    InvalidUpdateError: If an invalid update is provided.

Returns:
    RunnableConfig: The updated config.
r  r   r6  c              3  ó<   #   • U H  n[        U5      S :H  v •  M     g7fr8  r9  r:  s     r¾   rß   Ú,Pregel.abulk_update_state.<locals>.<genexpr>(  r=  r>  r?  rð  TrÆ  Nr  r  c              “  ó�  >#   • [        T1R                  U 5      nT0R                  U5      I S h  v•N nUb  T1R                  UR                  5        U(       a  [        UR                  5      O	[        5       nU(       a  UR                  S   R                  5       O0 nU(       a  UR                  R                  SS5      OSn[        U[        U[           R                  [        S5      05      nU(       a  [        X#R                  [           5      n[        T1R                  UUb+  [        T1R                   ["        5      (       a  T1R                   OS Ub  UR                  OS S9I S h  v•N u  p‰US   S S u  p«U
Gcî  U[$        :X  Gaã  ['        U5      S:”  a  [)        S	5      eUGbF  [+        UUR,                  =(       d    / T1R.                  UU	UR                  US-   US
-   ST1R0                  T0S S9nUR,                  =(       d    /  Vs/ sH  nUS   [2        :X  d  M  USS  PM     sn=n(       a4  [5        UU[7        S[8        U/ 5      /T0R:                  T1R<                  5        UR,                  =(       d    /  H?  u  nnnU[>        [@        4;   a  M  Xü;  a  M   XÏ   RB                  RE                  UU45        MA     [5        UUURG                  5       T0R:                  T1R<                  5        T0RI                  U[K        XHU5      SUS-   U(       a  UR                  R                  S0 5      O0 S.[M        XTS   5      5      I S h  v•N n[O        UU(       a  UR                  5      $ S 5      $ U[8        :X  Gar  ['        U5      S:”  a  [)        S5      e[Q        [S        T1RT                  U
5      5      =n(       Ga  [5        UU[7        S[8        U/ 5      /T0R:                  T1R<                  5        U(       a!  UR                  R                  S5      b  US-   OSnT0RI                  U[K        XHU5      SUU(       a  UR                  R                  S0 5      O0 S.[M        UUS   5      5      I S h  v•N nT0RW                  UU[Y        [[        []        US   5      [8        5      5      5      I S h  v•N   [O        UU(       a  UR                  5      $ S 5      $ [)        ST1RT                   35      eUS:X  GaO  ['        U5      S:”  a  [)        S5      eUc  [)        S5      e[K        US U5      nT0RI                  UR^                  =(       d    [        UR                  [`        S 05      USUS-   UR                  R                  S0 5      S.0 5      I S h  v•N n[        U
[b        5      (       Gaw  ['        U
5      S:”  Gag  [+        UUR,                  =(       d    / T1R.                  UU	UUS-   US-   ST1R0                  T0S S9n[e        [b        5      n[e        [b        5      nURG                  5        H+  nUURf                     RE                  URh                  5        M-     U
 Hu  n[        U[j        5      (       d  [)        SU S35      eUS S u  p«UU   nUU   n['        U5      nU['        U5      :  a  UU   OS nUU   RE                  [m        X«US95        Mw     T/" [O        UUR                  5      URG                  5        VVs/ sH  nU H  nUPM     M     snn5      I S h  v•N $ [O        UU(       a  UR                  5      $ S 5      $ [e        [P        5      nUbŽ  UR,                  b�  [+        UUR,                  T1R.                  UU	UR                  US-   US
-   ST1R0                  T0S S9nURG                  5        H+  n UU Rf                     RE                  U Rh                  5        M-     / n!['        U5      S:X  Ga0  US   u  p«nUc2  ['        T1R.                  5      S:X  a  [o        T1R.                  5      S   nO²UcM  U(       dF  [        T1RT                  [X        5      (       a&  T1RT                  T1R.                  ;   a  T1RT                  nObUc_  [q        U14S jUS   Rs                  5        5       5      n"U"(       a2  ['        U"5      S:X  a	  U"S   S   nOU"S   S   U"S   S   :w  a  U"S   S   nUc  [)        S 5      eUT1R.                  ;  a  [)        S!U S"35      eU!RE                  XºU45        OLU HF  u  p«nUc  [)        S#5      eUT1R.                  ;  a  [)        S!U S"35      eU!RE                  XºU45        MH     / n#/ n$U! GH_  u  pºn%T1R.                  U   Rt                  n&U&(       d  [)        S!U S$35      e[Q        5       n'[7        SUU'[@        /5      nUR                  U[Q        5       5      n(U%=(       d<    U((       a  U(Rw                  5       O$[Y        [[        []        US   5      [@        5      5      nU#RE                  U5        U$RE                  U5        ['        U&5      S:”  a  [y        U&6 OU&S   n)U)R{                  U
[}        UT1Rf                  S%-   [~        U'R€                  [‚        U[„        [‡        [ˆ        [‹        S / USS UUS-   5      UU	U5      0S&95      I S h  v•N   GMb     [�        U#5      n*Ubc  [�        U$U#5       HS  u  nnURB                   Vs/ sH  oÝS   [�        :w  d  M  UPM     n+nU+(       d  M8  T0RW                  UU+U5      I S h  v•N   MU     [5        UUU#T0R:                  T1R<                  5        [“        UU*US-   U(       a  UR                  R                  S0 5      O0 U(       a  UR                  OS US L S'9u  n,n-[K        UUUS-   U,(       a  U*OS U,(       a  T0R:                  OS U,S(9nT0RI                  UUU-[M        XTS   5      5      I S h  v•N n[�        U$U#5       HT  u  nnURB                   Vs/ sH  oÝS   [�        :X  d  M  UPM     sn=n.(       d  M9  T0RW                  UU.U5      I S h  v•N   MV     [O        UU(       a  UR                  5      $ S 5      $  GNd GN-s  snf  G	NZ GN6 GNû GNs  snnf  GN™ GNæs  snf  GN| N¶s  snf  N]7f))NrÜ  ré  rê  rð  rë  r   rR  rh  rA  rB  Trí  r  rí   rC  rD  rF  rG  rþ  rH  rI  rJ  rK  rL  rÙ  rM  rN  rO  c              3  ó~   >#   • U H3  u  pUTR                   ;   d  M  UR                  5        H  nX14v •  M
     M5     g 7fr»   rW  rX  s       €r¾   rß   ÚHPregel.abulk_update_state.<locals>.aperform_superstep.<locals>.<genexpr>N	  rZ  r[  rU  r\  r]  r^  r_  r`  ra  rb  rc  re  rh  )Jr/   rI  r%  rà  rß  rm   rp   r‚  rï   rW  r3   r9   r6   rk   rÏ   rË   rA  r$   r^   rÐ  rb   ri   rü  r3  rC  rJ   rg   re   rF   rj  rL  rE   rG   rõ  rÄ   r4  Úaputrn   r~   r1   r   rs   r=  Úaput_writesrÌ   r   r   ræ  r8   rÍ   r   rÖ   rþ  r   r    rZ  ro  rè   rp  rq  r   Úainvoker2   r@   rÎ   rC   r=   r   rh   rf   rq   rs  rK   ro   )2rs  rt  rI  r   rß  ru  ré  rv  rÏ   r  r4  rP  r  r	  r
  r  ræ   rç   rw  rx  ry  rz  r{  r|  r  r}  r~  r  r€  rQ  r�  r‚  r÷  rƒ  r„  r…  r†  r‡  r   rõ  rˆ  r‰  ri  rŠ  rk  r‹  rŒ  Úaperform_supersteprA  r½   s2                                                  €€€r¾   rž  Ú5Pregel.abulk_update_state.<locals>.aperform_superstep:  sÖ  øé € ô # 4§;¡;°Ó=ˆFØ&×1Ñ1°&Ó9×9ˆEØÑ Ø×(Ñ(¨×)9Ñ)9Ô:æ5:” × 0Ñ 0Ô1Ô@PÓ@Rð ö @E�× Ñ Ð!3Ñ4×9Ñ9Ô;È"ð )ö 6;�5—>‘>×%Ñ% f¨bÔ1ÀˆDä 2Øä,¨f´T©l×.>Ñ.>Ü0°"ó/ðó!Ðö Ü$6°v¿|¹|ÌDÑ?QÓ$RÐ!Ü&?Ø—‘ØàÑ$Ü˜t×0Ñ0Ô2E×FÑFð ×'Ò'ð Ø',Ñ'8�u—|’|¸dñ'÷ !ÑˆHð & a™j¨¨!˜n‰OˆFàŠ~ '¬S¤.Ü�w“< !Ó#Ü,ØKóð ð Ò$ä!3Ø"Ø×,Ñ,×2°ØŸ
™
Ø ØØŸ™Ø˜q™Ø˜q™Ø&*Ø"Ÿj™jØ%1Ø $ñ"�Jð" "'×!5Ñ!5×!;¸Ð!;ó'á!;˜AØ˜Q™4¤<Ñ/ó ˜˜!˜"›Ù!;ñ'ð �{õ ô
 %Ø&Ø$Ü-¨b´%¸ÀbÓIÐJØ(×9Ñ9Ø ×1Ñ1ôð &+×%9Ñ%9×%?¸RÒ%?™	˜˜Q Ø¤¬	Ð 2Ó2Ù$ØÓ0Ù$Ø"™×.Ñ.×5Ñ5°q¸!°fÖ=ñ &@ô !Ø"Ø Ø"×)Ñ)Ó+Ø$×5Ñ5Ø×-Ñ-ôð %1×$5Ñ$5Ø%Ü% j¸DÓAà"*Ø $ q¡ÞHM 5§>¡>×#5Ñ#5°iÀÔ#DÐSUñô
 -Ø4ÐASÑ6Tóó%÷ �ô ,Ø¶5 §¡óð Ø>Bóð ð
 œ%ÔÜ�w“< !Ó#Ü,ØNóð ô $)¬°4×3FÑ3FÈÓ)OÓ#PÐP�<ÖPÜ Ø"Ø Ü)¨"¬e°\À2ÓFÐGØ$×5Ñ5Ø×-Ñ-ôö ! U§^¡^×%7Ñ%7¸Ó%?Ñ%Kð ˜qšàð ð
 )5×(9Ñ(9Ø)Ü)¨*À	ÓJà&-Ø$-æ$ð (-§~¡~×'9Ñ'9¸)ÀRÔ'Hà!#ñô 1Ø8Ø&Ð'9Ñ:óó)÷ #�Kð" '×2Ñ2Ø#Ø$ÜœE¤$ z°$Ñ'7Ó"8¼%Ó@ÓAó÷ ð ô 0Ø#¶u U§^¡^óð ØBFóð ô -Ø7¸×8KÑ8KÐ7LÐMóð ð
 ˜*Ô$Ü�w“< !Ó#Ü,ØFóð ð ‘=Ü,Ð-TÓUÐUä"3°JÀÀdÓ"K�ð %1×$5Ñ$5Ø×'Ñ'÷ Ü)ØŸ™Ô'?ÀÐ&Fóð $à"(Ø $ q¡Ø#(§>¡>×#5Ñ#5°iÀÓ#Dñð
 ó%÷ �ô  ˜f¤d×+Ò+´°F³¸a´ä!3Ø'Ø×,Ñ,×2°ØŸ
™
Ø ØØ#Ø˜q™Ø˜q™Ø&*Ø"Ÿj™jØ%1Ø $ñ"�Jô &1´Ó%6�NÜBMÌdÓBS�Mà *× 1Ñ 1Ö 3˜Ø& t§y¡yÑ1×8Ñ8¸¿¹ÖAñ !4ó !'˜Ü)¨$´×9Ñ9Ü"4Ø"7¸°vÐ=UÐ Vó#ð ð +/¨r°¨(™˜Ø%2°7Ñ%;˜
Ø&4°WÑ&=˜ä%(¨£_˜
ð  *¬C°Ó,<Ó<ð (¨
Ò3à!%ð  ð & gÑ.×5Ñ5Ü'¨vÐPWÑXöñ# !'ñ* "4Ü,¨[¸%¿.¹.ÓIØ)6×)=Ñ)=Ô)?ÔPÑ)? #ËCÀD›ÉC™Ñ)?ÒPó"÷ ð ô
 ,Ø¶5 §¡óð Ø>Bóð ô 7BÄ%Ó6HÐØÑ  U×%9Ñ%9Ñ%Eô 0ØØ×(Ñ(Ø—J‘JØØØ—L‘LØ˜1‘HØ˜1‘HØ"&ØŸ*™*Ø!-Ø ñ�
ð $×*Ñ*Ö,�AØ$ Q§V¡VÑ,×3Ñ3°A·D±DÖ9ñ -ð RTˆMÜ�7‹|˜qÔ Ø+2°1©:Ñ(� à‘?¤s¨4¯:©:£¸!Ó';Ü# D§J¡JÓ/°Ñ2‘GØ‘_®Uä" 4×#6Ñ#6¼×<Ñ<Ø ×/Ñ/°4·:±:Ó=à"&×"5Ñ"5˜øØ‘_Ü(.ô /à'1°/Ñ'B×'HÑ'HÔ'Jó/ó )Ð%ö )ÜÐ0Ó1°QÓ6Ø&7¸Ñ&:¸1Ñ&=™GØ.¨rÑ2°1Ñ5Ð9JÈ2Ñ9NÈqÑ9QÓQØ&7¸Ñ&;¸AÑ&>˜GØ‘?Ü,Ð-PÓQÐQØ $§*¡*Ó,Ü,¨u°W°I¸_Ð-MÓNÐNØ×$Ñ$ g°wÐ%?Õ@ã07Ñ,�F WØ‘Ü0ØPóð ð  d§j¡jÓ0Ü0°5¸¸	ÀÐ1QÓRÐRà!×(Ñ(¨'¸7Ð)CÖDñ 18ð 13ˆIØ&(ˆLä5BÑ1�Ð!1àŸ*™* WÑ-×:Ñ:�ÞÜ,¨u°W°I¸_Ð-MÓNÐNÜ16³�Ü'¨¨G°V¼i¸[ÓI�ð %5×$8Ñ$8¸Ä%Ã'Ó$JÐ!Ø*÷ æ(ð &×-Ñ-Ô/äœU¤4¨
°4Ñ(8Ó#9¼9ÓEÓFð ð
 × Ñ  Ô&Ø×#Ñ# GÔ,Ü47¸³LÀ1Ó4DÔ&¨Ñ0È'ÐRSÉ*�à—k‘kØÜ ØØ!%§¡¨]Ñ!:ô ,¨V¯]©]Ü.°Ü+¬WÜ *Ü +Ø$(Ø$&Ø$+Ø$&Ø$(Ø$(Ø$(¨1¡Hó!"ð !)Ø 'Ø $ó.ð	&ñó÷ ó ñ) 6Cô^  ?¸yÓIÐØÑ Ü%(¨°yÖ%A‘M�G˜TØ15·²Ó%M±¨AÀ!ÁÌÁ§a±�NÐ%Mß%�~Ø*×6Ñ6Ø-¨~¸wó÷ ò ñ &Bô ØØØØ×-Ñ-Ø×%Ñ%ôô <ØØ$Ø ™ÞAF˜EŸN™N×.Ñ.¨y¸"Ô=ÈBÞ5: 5§>¢>ÀØ$)¨T Mññ 6Ð Ð"5ô +ØØØ�q‘Þ5IÑ!1Ètæ'ð ".×!>Ò!>àØ%9ñ	ˆJð !-× 1Ñ 1Ø!ØØ#Ü(Ø0Ð=OÑ2Póó	!÷ ˆKô "% \°9Ö!=‘�˜Ø.2¯kªkÓ"J©k¨¸q¹TÄT¹\§1©kÑ"JÐJ�;×JØ&×2Ñ2°;ÀÈWÓU×UÒUñ ">ô (¨Æu°U·^±^ÓWÐWÐRVÓWÐWòW :ò*!ùòB'ò8òL#ò"ò6ùó| QòòDùò< &Nòñ<ùò #KÙUùs  ƒ+s®r¯D9sÅ(rÅ)BsÈrÈ	rÈ%DsÍrÍD&sÑ*r Ñ+=sÒ(r#Ò)C sÖ	r&Ö
E-sÛ7r)ÜsÜr/ÜN5sër2ë7sìr5ìr5ìsì(sì>r:ì?Csðr=ð$sð+r?ð>r?ñsñsñ&sñ',sòsòsò sò#sò&sò)sò2sò5sò=sò?sr�  )r/   r6   rW  r:   rA  rË   r$   rb  rÃ   rÐ  rn  r9   r4   rr  Úabulk_update_stater3   rD   rÌ   )r½   rI  r‘  r  r  r   r!  r’  r“  rž  rA  s   `        @@r¾   r   ÚPregel.abulk_update_state  s±  úé € ô* 4AÀÓ3HÌÑ3N×3RÑ3RÜ# T×%6Ñ%6ó4
ˆô �lÔ$7×8Ñ8Ø×=Ñ=¸lÓKˆLÞÜÐ2Ó3Ð3äˆz‹?˜aÓÜÐ5Ó6Ð6äÑ/¡JÓ/×/Ñ/ÜÐ2Ó3Ð3ð $¤D™\×-Ñ-Ô.FÈÓKÐKˆMÕKÜ%¨V´D©\Ó9ä)¨-Ó8ˆFà#'×#6Ñ#6ÀÐQUÐ#6Ñ#V÷ A‘i�aØ#×6Ñ6Ü& vÔ0GÈÐ/VÓWØó÷ ò ðP	XØ(ðP	XØ3HðP	Xà÷P	Xñ P	Xôd ,ØÔ)¬3¨v´d©|Ô<PÑ/QÓ+RÐSó
ˆó $ˆIÙ#5°nÓ#P×PŠNñ $àÐñAñð $Wô ! 9¨V¨H°JÐ!?Ó@Ð@ñp QùsI   …C5FÃ:F	Ã>FÃ?F	Ä(FÄ*FÄ+AFÅ:FÅ;
FÆF	ÆFÆ	Fc                ó>   • U R                  U[        X#U5      //5      $ )zÂUpdate the state of the graph with the given values, as if they came from
node `as_node`. If `as_node` is not provided, it will be set to the last node
that updated the state, if not ambiguous.
)r�  r    ©r½   rI  r4  rP  rQ  s        r¾   Úupdate_stateÚPregel.update_stateÓ	  s$   € ð ×%Ñ% f´¸FÈWÓ0UÐ/VÐ.WÓXÐXrÁ   c              ƒ  óZ   #   • U R                  U[        X#U5      //5      I Sh  v•N $  N7f)zÑAsynchronously update the state of the graph with the given values, as if they came from
node `as_node`. If `as_node` is not provided, it will be set to the last node
that updated the state, if not ambiguous.
N)r   r    r£  s        r¾   Úaupdate_stateÚPregel.aupdate_stateà	  s6   é € ð ×,Ñ,Ø”k &°7Ó;Ð<Ð=ó
÷ 
ð 	
ñ 
ùs   ‚"+¤)¥+)Ú
durabilityc               ó`  • US   S:  a  [        S5      eUc  U R                  nO[        X@R                  5        U=(       d    U R                  nU=(       d    U R
                  n[        U[        5      (       a  U1nO[        U5      n[        U[        5      (       a  UR                  U5        OUR                  U5        U R                  SL a  S n	OU[        UR                  [        0 5      ;   a  U[           [           n	O&U R                  SL a  [        S5      eU R                  n	[        U	[         5      (       a  U R#                  U	5      n	U	(       a%  UR                  [        5      (       d  [        S5      e[$        UR                  [        0 5      ;   a  U[           [$           R&                  n
OU R&                  n
[(        UR                  [        0 5      ;   a  U[           [(           nOU R*                  nUc*  UR                  [        0 5      R                  [,        S5      nUUUUU	U
UU4$ )	NÚrecursion_limitrh  z"recursion_limit must be at least 1FTz1checkpointer=True cannot be used for root graphs.zoCheckpointer requires one or more of the following 'configurable' keys: thread_id, checkpoint_ns, checkpoint_idÚasync)rÃ   rÁ  r�   rÏ   r<  r;  rË   rÌ   r  Úaddrí   rA  r:   rW  r6   ÚRuntimeErrorr$   rb  r?   rC  r7   rE  r;   )r½   rI  r  Ú
print_modeÚoutput_keysÚinterrupt_beforeÚinterrupt_afterr©  Ústream_modesrA  rC  rE  s               r¾   Ú	_defaultsÚPregel._defaultsï	  sã  € ð( Ð#Ñ$ qÓ(ÜÐAÓBÐBØÑØ×3Ñ3‰Kä˜+§}¡}Ô5Ø+×J¨t×/JÑ/JÐØ)×G¨T×-GÑ-GˆÜ�k¤3×'Ñ'Ø'˜=‰Lä˜{Ó+ˆLÜ�j¤#×&Ñ&Ø×Ñ˜ZÕ(à×Ñ 
Ô+Ø×Ñ Ò%Ø7;‰LÜ$¨¯
©
´4¸Ó(<Ó<Ø!¤$™<Ô(?Ñ@‰LØ×Ñ $Ò&ÜÐRÓSÐSà×,Ñ,ˆLÜ�lÔ$7×8Ñ8Ø×=Ñ=¸lÓKˆLÞ §
¡
¬4× 0Ñ 0Üð@óð ô  §¡¬D°"Ó!5Ó5Ø&,¬T¡lÔ3EÑ&F×&LÑ&L‰Eà—J‘JˆEÜ˜vŸz™z¬$°Ó3Ó3Ø&,¬T¡lÔ3CÑ&D‰Eà—J‘JˆEØÑØŸ™¤D¨"Ó-×1Ñ1Ô2GÈÓQˆJàØØØØØØØð	
ð 		
rÁ   )
Úcontextr  r¯  r°  r±  r²  r©  Úcontrolr  r@  c               ó   • g r»   r  ©r½   rG  rI  r¶  r  r¯  r°  r±  r²  r©  r·  r  r@  Úversionré   s                  r¾   ÚstreamÚPregel.stream7
  s   € ð$ 14rÁ   .)r¶  r  r¯  r°  r±  r²  r©  r·  r  r@  rº  c               ó   • g r»   r  r¹  s                  r¾   r»  r¼  K
  s   € ð$ *-rÁ   Úv1c             +  óü  ^-^.^/^0#   • UR                  S5      =nb3  [        R                  " S[        SS9  U	b  [	        S5      eU(       a  SOSn	Uc/  Ub   [
        UR                  [        0 5      ;   a  S	OU R                  nU(       d  U R                  (       a  S
S	/n[        5       m/[        U R                  U5      nSn U R                  UUUUUUU	S9u  nnnnnnnn[        U5      nSU;   av  US:w  ap  UR                   Vs/ sH  n[        U[         5      (       a  M  UPM     snUl        UR"                   Vs/ sH  n[        U[         5      (       a  M  UPM     snUl        SUR$                  ;  a  UR'                  SS05        UR)                  SUUR                  SU R+                  5       5      UR                  S5      S9n[-        UUR.                  S9m-Uc  U	b  [        R                  " S5        U R0                  SL a7  [3        [4        U[           [6           5      n[9        U5      U[           [6        '   SU;   aÁ  [3        [4        S-  U[           R                  [6        5      5      n[;        US:H  =(       a    U[           R                  [<        5      5      nU(       a  [         O[>        nUR"                  RA                  U" T/RB                  UU(       a  [E        URG                  [H        5      5      OSS95        SU;   a€  [3        [4        S-  U[           R                  [6        5      5      nUR"                  RA                  [K        T/RB                  UU(       a  [E        URG                  [H        5      5      OSS95        SU;   a	  S=U/4S jjnO1[L        U[           ;   a  U[           [N           RP                  nOS=S jnU	b  UU[           [R        '   [U        U[           R                  [N        [V        5      5      n [Y        UU 5      n![[        []        U R^                  U5      UUSSU!U
=(       d    U R`                  =(       d
    [c        5       S9n"U Re                  U"5      n"U"U[           [N        '   US:X  a  U Rf                  OSn#US:X  a  U Rh                  OSn$S>U-4S jjn%[k        U40 S[m        T/RB                  U5      _SU_SU_S U_S!U_S"U Rn                  _S#U Rp                  _S$U_S%U Rr                  _S&U Rt                  _S'U_S(U_S)U_S*U_S+U Rv                  _S,U Rx                  _S-U Rz                  _S.U R|                  _S/[;        T-R                  5      _6 m.U%" T.5        [        U[           R                  [€        [‚        R„                  " T.R†                  5      5      [‚        R„                  " T.Rˆ                  5      U[           R                  [Š        5      U RŒ                  T.RŽ                  S09n&U(       a$  T.R�                  T.R                  [           [L        '   Sn'U R’                  (       d  U(       d  SU;   d  SU;   a;  Sm0T.R”                  R—                  T/R˜                  Rš                  5        S?U.U/U04S1 jjn'T.R�                  5       (       Ga&  T.RŸ                  5        H(  n(T.R¡                  U(R¢                  U(R¤                  SS29  M*     U&R�                  T.R¦                  R©                  5        V)s/ sH  n)U)R¤                  (       a  M  U)PM     sn)U Rª                  U'T.R¬                  S39 H5  n*[¯        UUUT/R                   [°        R²                  UU#U$5       Sh  v•N   M7     T.Rµ                  5         U%" T.5        US4:X  a  T.R¶                  R¹                  5         T.R�                  5       (       a  GM&  SSS5        U%" T.5        [¯        UUUT/R                   [°        R²                  UU#U$5       Sh  v•N   T.Rº                  S5:X  a*  [½        S6US7    S83[¾        RÀ                  S99n+[Ã        U+5      eT.Rº                  S::X  a@  T.R`                  c  [Å        S;5      e[Ç        T.R`                  RÈ                  =(       d    S<5      eURË                  T.RÌ                  5        gs  snf s  snf s  sn)f  GNP! , (       d  f       GN= f NÎ! [Î         a  n,Ub  URÑ                  U,5        e Sn,A,ff = f7f)@a  Stream graph steps for a single input.

Args:
    input: The input to the graph.
    config: The configuration to use for the run.
    context: The static context to use for the run.
        !!! version-added "Added in version 0.6.0"
    stream_mode: The mode to stream output, defaults to `self.stream_mode`.

        Options are:

        - `"values"`: Emit all values in the state after each step, including interrupts.
            When used with functional API, values are emitted once at the end of the workflow.
        - `"updates"`: Emit only the node or task names and updates returned by the nodes or tasks after each step.
            If multiple updates are made in the same step (e.g. multiple nodes are run) then those updates are emitted separately.
        - `"custom"`: Emit custom data from inside nodes or tasks using `StreamWriter`.
        - `"messages"`: Emit LLM messages token-by-token together with metadata for any LLM invocations inside nodes or tasks.
            - Will be emitted as 2-tuples `(LLM token, metadata)`.
        - `"checkpoints"`: Emit an event when a checkpoint is created, in the same format as returned by `get_state()`.
        - `"tasks"`: Emit events when tasks start and finish, including their results and errors.
        - `"debug"`: Emit debug events with as much information as possible for each step.

        You can pass a list as the `stream_mode` parameter to stream multiple modes at once.
        The streamed outputs will be tuples of `(mode, data)`.

        See [LangGraph streaming guide](https://docs.langchain.com/oss/python/langgraph/streaming) for more details.
    print_mode: Accepts the same values as `stream_mode`, but only prints the output to the console, for debugging purposes.

        Does not affect the output of the graph in any way.
    output_keys: The keys to stream, defaults to all non-context channels.
    interrupt_before: Nodes to interrupt before, defaults to all nodes in the graph.
    interrupt_after: Nodes to interrupt after, defaults to all nodes in the graph.
    durability: The durability mode for the graph execution, defaults to `"async"`.

        Options are:

        - `"sync"`: Changes are persisted synchronously before the next step starts.
        - `"async"`: Changes are persisted asynchronously while the next step executes.
        - `"exit"`: Changes are persisted only when the graph exits.
    control: Optional run control used to request cooperative drain.
    subgraphs: Whether to stream events from inside subgraphs, defaults to `False`.

        If `True`, the events will be emitted as tuples `(namespace, data)`,
        or `(namespace, mode, data)` if `stream_mode` is a list,
        where `namespace` is a tuple with the path to the node where a subgraph is invoked,
        e.g. `("parent_node:<task_id>", "child_node:<task_id>")`.

        See [LangGraph streaming guide](https://docs.langchain.com/oss/python/langgraph/streaming) for more details.

Yields:
    The output of each step in the graph. The output shape depends on the `stream_mode`.
Úcheckpoint_duringNúW`checkpoint_during` is deprecated and will be removed. Please use `durability` instead.rR  rS  úaCannot use both `checkpoint_during` and `durability` parameters. Please use `durability` instead.r¬  Úexitr4  rt  ©r  r¯  r°  r±  r²  r©  ÚmessagesÚv2Úls_integrationÚ	langgraphrd  Úrun_id©rÖ   rÉ  ©rÉ  ú;`durability` has no effect when no checkpointer is present.T©r  ÚtoolsÚcustomc                ó˜   >• TR                  [        [        5       [           [           R                  [        5      S S 5      SU 45        g ©Nrê  rÏ  )rl  rZ  r]   r6   r9   ÚsplitrI   )rÞ   r»  s    €r¾   Ústream_writerÚ$Pregel.stream.<locals>.stream_writer  sL   ø€ Ø—J‘Jä!Ü *£¬TÑ 2Ô3KÑ L× RÑ RÜ$*ó!"à"% 2ð!'óð
 %Øðõ
rÁ   c                ó   • g r»   r  ©rÞ   s    r¾   rÓ  rÔ  +  ó   € ØrÁ   ©r¶  rC  rÓ  ÚpreviousÚexecution_infoÚserver_infor·  c                ó  >• U R                  5       =nbr  [        U[        5      (       a$  TR                  [	        UTR
                  S95        O#TR                  [	        UTR
                  S95        U R                  5       =nb  Mq  g g )NrË  )Ú_pop_lifecycle_eventrË   rX   Ú	on_resumer   rÉ  Úon_interrupt©ÚloopÚeventÚgraph_callback_managers     €r¾   Úemit_graph_lifecycle_eventsÚ2Pregel.stream.<locals>.emit_graph_lifecycle_eventsH  s{   ø€ Ø $× 9Ñ 9Ó ;Ð;�uÑHÜ! %Ô)9×:Ñ:Ø.×8Ñ8Ü# EÐ2H×2OÑ2OÑPõð /×;Ñ;Ü# EÐ2H×2OÑ2OÑPôð !%× 9Ñ 9Ó ;Ð;�uÕHrÁ   r»  rI  rC  rE  rA  r3  r-  r°  Ú
input_keysÚstream_keysr±  r²  rï  r©  rL  Úmigrate_checkpointr  r  Úhas_graph_lifecycle_callbacks)Úsubmitrm  Únode_finishedrM  Úschedule_error_handlerc                 ór   >• Tb  TR                  5       (       a  T R                  TR                  5      mT$ T$ r»   )Údonerê  Úwait)rá  r»  Úwaiters   €€€r¾   Ú
get_waiterÚ!Pregel.stream.<locals>.get_waiter‡  s.   ø€ à!™>¨V¯[©[¯]©]Ø%)§[¡[°·±Ó%=˜FØ#)˜Mà#)˜MrÁ   ©Úcached©rû   rñ  Úschedule_taskÚsyncÚout_of_stepsúRecursion limit of r«  úr reached without hitting a stop condition. You can increase the limit by setting the `recursion_limit` config key.©ÚmessageÚ
error_codeÚdrainingú$Draining status requires run controlÚshutdown©rÞ   r   r  r  )rá  rv   r  r  )r  zconcurrent.futures.Future[None])irW  rX  rY  r©   rÃ   rC   r6   r  r@  rO   r/   rI  r´  r    ÚhandlersrË   rx   Úinheritable_handlersrï   Úadd_metadataÚon_chain_startr“  rZ   rÉ  rA  r   rÌ   r9   r4   r	  rB   rw   rÄ   rl  rZ  rÒ  rI   r}   rA   r?   rÓ  r;   Ú_coerce_parent_runtimerŠ   Ú_build_server_infor�   Ú_coerce_contextrG  r·  rŒ   ÚmergerÖ  r×  rv   r‰   r3  rÏ   r=  rÁ  rL  rà  r  r  r|   r>   ÚweakrefÚ
WeakMethodrê  rm  r<   rM  rì  r»  r5  ÚstackÚcallbackÚ_countÚreleaseÚtickÚmatch_cached_writesÚoutput_writesrþ  rõ  rç  r4  r?  Úaccept_pushÚ_outputÚqueueÚEmptyÚ
after_tickÚ_put_checkpoint_futÚresultÚstatusrc   r_   ÚGRAPH_RECURSION_LIMITra   r®  r`   Údrain_reasonÚon_chain_endÚoutputÚBaseExceptionÚon_chain_error)1r½   rG  rI  r¶  r  r¯  r°  r±  r²  r©  r·  r  r@  rº  ré   rÀ  Úrun_managerr³  Úinterrupt_before_Úinterrupt_after_rA  rC  rE  Údurability_Úcallback_managerÚhr"  Úns_Úuse_stream_messages_v2Úmessages_handler_clsÚns_toolsrÓ  Úparent_runtimerÛ  ÚruntimerÖ  r×  rä  Úrunnerrñ  r  r÷  r   ÚmsgÚerã  rá  r»  rð  s1                                                @@@@r¾   r»  r¼  _
  s‹  ûé € ðL "(§¡Ð,?Ó!@Ð@ÐÑMÜ�MŠMØiÜ4Øòð
 Ñ%Ü Øwóð ö %6™¸6ˆJàÑð
 Ñ%Ô*<ÀÇ
Á
Ì4ÐQSÓ@TÓ*Tñ à×%Ñ%ð ö
 �D—J—JØ# XÐ.ˆJä“ˆä˜tŸ{™{¨FÓ3ˆØˆðM	ð —‘ØØ'Ø%Ø'Ø!1Ø /Ø%ð ð ñ	ØØØ!Ø ØØØØô  ?¸vÓFÐØ˜\Ó)¨g¸«oð .×6Ò6ó-á6˜Ü% aÔ)@×A÷ Ù6ñ-Ð Ô)ð .×BÒBó9áB˜Ü% aÔ)@×A÷ ÙBñ9Ð Ô5ð
  Ð'7×'@Ñ'@Ó@Ø ×-Ñ-Ð/?ÀÐ.MÔNØ*×9Ñ9ØØØ—Z‘Z 
¨D¯M©M«OÓ<Ø—z‘z (Ó+ð	 :ð ˆKô &PØØ"×)Ñ)ñ&Ð"ð Ñ#¨
Ñ(>Ü—’ØQôð × Ñ  DÒ(Üœ#˜v¤d™|Ô,DÑEÓF�Ü9MÈbÓ9Q�”t‘Ô5Ñ6à˜\Ó)Üœ3 ™: v¬d¡|×'7Ñ'7Ô8PÓ'QÓR�Ü)-Ø˜t‘O×W¨¬t©×(8Ñ(8Ô9VÓ(Wó*Ð&ö
 .õ ,ä.ð %ð
 ×0Ñ0×7Ñ7Ù(ØŸ
™
Ø!Þ>A¤%¨¯	©	´&Ó(9Ô":Àtñôð ˜,Ó&Ü¤ d¡
¨F´4©L×,<Ñ,<Ô=UÓ,VÓW�Ø×0Ñ0×7Ñ7Ü)ØŸ
™
Ø!ÞCK¤%¨¯©´vÓ(>Ô"?ÐQUñôð ˜<Ó'÷ð ô # f¬T¡lÓ2Ø &¤t¡Ô-?Ñ @× NÑ N‘ôð Ñ%Ø6A�”t‘Ô2Ñ3ô 4Ø”t‘× Ñ Ô!3´_ÓEóˆNô -¨V°^ÓDˆKäÜ'¨×(;Ñ(;¸WÓEØØ+ØØ#Ø'Ø×I >×#9Ñ#9×I¼Z»\ñˆGð %×*Ñ*¨7Ó3ˆGØ/6ˆF”4‰LÔ+Ñ,ð 5<¸t³O˜T×0Ò0ÈˆNØ29¸T³/˜D×.Ò.ÀtˆM÷	ô  Øòä% f§j¡j°,Ô?ðñ ðñ ð	ñ
 ðñ *ðð —j’jðð —m’mðñ (ðð  ×.Ò.ðð !×5Ò5ðñ "3ðñ !1ðñ $ðñ 'ðð  "&×!6Ò!6ð!ð" $(×#;Ò#;ð#ð$ "×.Ò.ð%ð& "×.Ò.ð'ô( /3Ð3I×3RÑ3RÔ.Sñ)ð* Ù+¨DÔ1ä%Ø!¤$™<×+Ñ+Ü0´'×2DÒ2DÀTÇ[Á[Ó2Qóô  '×1Ò1°$·/±/ÓBØ"(¬¡,×"2Ñ"2Ô3KÓ"LØ+/×+FÑ+FØ+/×+FÑ+Fñ�ö Ø;?¿;¹;�D—K‘K¤Ñ%Ô&7Ñ8àSW�
à×%×%Þ Ø! \Ó1Ø <Ó/ð @D�Fð —J‘J×'Ñ'¨¯©×(=Ñ(=Ô>÷*ñ *ð —i‘i—k’kØ $× 8Ñ 8Ö :˜Ø×*Ñ*¨4¯7©7°D·K±KÈÐ*ÓMñ !;à#Ÿ[™[Ø$(§J¡J×$5Ñ$5Ô$7ÓHÑ$7˜q¸q¿x½xŸÑ$7ÑHØ $× 1Ñ 1Ø#-Ø&*×&6Ñ&6ð	 )ó ˜ô $+Ø'Ø&Ø%Ø"ŸJ™JÜ!ŸK™KØ#Ø*Ø)ó	$÷ 	ò 	ñð" —O‘OÔ%Ù/°Ô5à" fÓ,Ø×0Ñ0×7Ñ7Ô9ð1 —i‘i—k”k÷Cñt (¨Ô-äØØØØ—
‘
Ü—‘ØØØó	÷ 	ð 	ð �{‰{˜nÓ,Ü*à-¨fÐ5FÑ.GÐ-Hð IMð Mô  )×>Ñ>ñ�ô *¨#Ó.Ð.Ø—‘ 
Ó*Ø—<‘<Ñ'Ü&Ð'MÓNÐNÜ" 4§<¡<×#<Ñ#<×#JÀ
ÓKÐKà×$Ñ$ T§[¡[Õ1ùò[-ùò
9ùòn Iò	÷Wö úñx	øô6 ó 	ØÑ&Ø×*Ñ*¨1Ô-Øûð	üs¢   †B8c<Â?Ac Äb/Äb/Ä$c Ä:b4Åb4ÅPc Õ$F cÜb9
Üb9
Ü"AcÝ.b>Ý/Acß=c àcàB)c â.c<â/
c â9cã
cã	c ã
c9ãc4ã4c9ã9c<c               ó   • g r»   r  r¹  s                  r¾   ÚastreamÚPregel.astreamÏ  s   € ð$ 69rÁ   c               ó   • g r»   r  r¹  s                  r¾   r1  r2  ã  s   € ð$ /2rÁ   c              ó  ^2^3^4^5#   • UR                  S5      =nb3  [        R                  " S[        SS9  U	b  [	        S5      eU(       a  SOSn	Uc/  Ub   [
        UR                  [        0 5      ;   a  S	OU R                  nU(       d  U R                  (       a  S
S	/n[        5       m4[        R                  " 5       m2[        [        [        /S4   [        T2R                   T4R"                  5      5      n[%        U R&                  U5      nSn U R)                  UUUUUUU	S9u  nnnnnnnn[+        U5      nSU;   av  US:w  ap  UR,                   Vs/ sH  n[/        U[0        5      (       a  M  UPM     snUl        UR2                   Vs/ sH  n[/        U[0        5      (       a  M  UPM     snUl        SUR4                  ;  a  UR7                  SS05        UR9                  SUUR                  SU R;                  5       5      UR                  S5      S9I Sh  v•N n[=        UUR>                  S9m3[@        b  [C        S UR,                   5       S5      OSnUc  U	b  [        R                  " S5        U RD                  SL a7  [        [F        U[           [H           5      n[K        U5      U[           [H        '   SU;   a·  [        [F        S-  U[           R                  [H        5      5      n[M        US:H  =(       a    U[           R                  [N        5      5      nU(       a  [0        O[P        nUR2                  RS                  U" UUU(       a  [U        URW                  [X        5      5      OSS95        SU;   av  [        [F        S-  U[           R                  [H        5      5      n UR2                  RS                  [[        UUU (       a  [U        U RW                  [X        5      5      OSS95        SAU2U44S jjn!SU;   a
  SAU2U44S jjn!O1[\        U[           ;   a  U[           [^           R`                  n!OSAS jn!U	b  UU[           [b        '   [e        U[           R                  [^        [f        5      5      n"[i        UU"5      n#[k        [m        U Rn                  U5      UU!SSU#U
=(       d    U"Rp                  =(       d
    [s        5       S9n$U"Ru                  U$5      n$U$U[           [^        '   US:X  a  U Rv                  OSn%US:X  a  U Rx                  OSn&SBU34S jjn'[{        U40 S [}        T4R"                  U5      _S!U_S"U_S#U_S$U_S%U R~                  _S&U R€                  _S'U_S(U R‚                  _S)U R„                  _S*U_S+U_S,U_S-U_S.U R†                  _S/U Rˆ                  _S0U RŠ                  _S1U RŒ                  _S2[M        T3R,                  5      _6 ISh  v•N n(U'" U(5      I Sh  v•N   [�        U[           R                  [�        [’        R”                  " U(R–                  5      5      [’        R”                  " U(R˜                  5      UU[           R                  [š        5      U Rœ                  U(Rž                  S39n)U(       a$  [}        UU5      U(R&                  [           [\        '   Sn*Sn+U R                   (       d  U(       d  SU;   d  SU;   a  Sm5SCU2U4U54S4 jjn*SDU4U54S5 jjn+ U(R£                  5       (       aæ  U(R¥                  5       I Sh  v•N  H(  n,U(R§                  U,R¨                  U,Rª                  SS69  M*     U)R­                  U(R®                  R±                  5        V-s/ sH  n-U-Rª                  (       a  M  U-PM     sn-U R²                  U*U(R´                  S79  Sh  v•N n.[·        UUUT4R¸                  [        Rº                  UU%U&5       H  n/U/7v •  M
     MA  U+b  U+" 5       I Sh  v•N   SSS5      ISh  v•N   U'" W(5      I Sh  v•N   [·        UUUT4R¸                  [        Rº                  UU%U&5       H  n/U/7v •  M
     U(RÂ                  S9:X  a*  [Å        S:US;    S<3[Æ        RÈ                  S=9n0[Ë        U05      eU(RÂ                  S>:X  a@  U(Rp                  c  [Í        S?5      e[Ï        U(Rp                  RÐ                  =(       d    S@5      eURÓ                  U(RÔ                  5      I Sh  v•N   gs  snf s  snf  GNï GN/ GN" GNüs  sn-f  GNn
 U(R½                  5         U'" U(5      I Sh  v•N    US8:X  a-  [        [        R¾                  U(RÀ                  5      I Sh  v•N    U(R£                  5       (       a  GM‡  GN£ GN–! U+b  U+" 5       I Sh  v•N    f f = f GN¢! , ISh  v•N  (       d  f       GN¸= f GN° NÏ! [Ö         a7  n1Ub.  [        RØ                  " URÛ                  U15      5      I Sh  v•N    e Sn1A1ff = f7f)Ea  Asynchronously stream graph steps for a single input.

Args:
    input: The input to the graph.
    config: The configuration to use for the run.
    context: The static context to use for the run.
        !!! version-added "Added in version 0.6.0"
    stream_mode: The mode to stream output, defaults to `self.stream_mode`.

        Options are:

        - `"values"`: Emit all values in the state after each step, including interrupts.
            When used with functional API, values are emitted once at the end of the workflow.
        - `"updates"`: Emit only the node or task names and updates returned by the nodes or tasks after each step.
            If multiple updates are made in the same step (e.g. multiple nodes are run) then those updates are emitted separately.
        - `"custom"`: Emit custom data from inside nodes or tasks using `StreamWriter`.
        - `"messages"`: Emit LLM messages token-by-token together with metadata for any LLM invocations inside nodes or tasks.
            - Will be emitted as 2-tuples `(LLM token, metadata)`.
        - `"checkpoints"`: Emit an event when a checkpoint is created, in the same format as returned by `get_state()`.
        - `"tasks"`: Emit events when tasks start and finish, including their results and errors.
        - `"debug"`: Emit debug events with as much information as possible for each step.

        You can pass a list as the `stream_mode` parameter to stream multiple modes at once.
        The streamed outputs will be tuples of `(mode, data)`.

        See [LangGraph streaming guide](https://docs.langchain.com/oss/python/langgraph/streaming) for more details.
    print_mode: Accepts the same values as `stream_mode`, but only prints the output to the console, for debugging purposes.

        Does not affect the output of the graph in any way.
    output_keys: The keys to stream, defaults to all non-context channels.
    interrupt_before: Nodes to interrupt before, defaults to all nodes in the graph.
    interrupt_after: Nodes to interrupt after, defaults to all nodes in the graph.
    durability: The durability mode for the graph execution, defaults to `"async"`.

        Options are:

        - `"sync"`: Changes are persisted synchronously before the next step starts.
        - `"async"`: Changes are persisted asynchronously while the next step executes.
        - `"exit"`: Changes are persisted only when the graph exits.
    control: Optional run control used to request cooperative drain.
    subgraphs: Whether to stream events from inside subgraphs, defaults to `False`.

        If `True`, the events will be emitted as tuples `(namespace, data)`,
        or `(namespace, mode, data)` if `stream_mode` is a list,
        where `namespace` is a tuple with the path to the node where a subgraph is invoked,
        e.g. `("parent_node:<task_id>", "child_node:<task_id>")`.

        See [LangGraph streaming guide](https://docs.langchain.com/oss/python/langgraph/streaming) for more details.

Yields:
    The output of each step in the graph. The output shape depends on the `stream_mode`.
rÀ  NrÁ  rR  rS  rÂ  r¬  rÃ  r4  rt  rÄ  rÅ  rÆ  rÇ  rÈ  rd  rÉ  rÊ  rË  c              3  ó€   #   • U H5  n[        U[        5      (       d  M  [        U[        5      (       a  M1  S v •  M7     g7f)TN)rË   rª   rw   )rÝ   r&  s     r¾   rß   Ú!Pregel.astream.<locals>.<genexpr>’  s6   é € ð á!5˜AÜ% aÔ)B×Có ô !+¨1Ô.C× D÷ ™Ú!5ùs   ‚>ž>µ	>FrÌ  TrÍ  rÎ  c                ó®   >• TR                  TR                  [        [        5       [           [
           R                  [        5      S S 5      SU 45        g rÑ  ©Úcall_soon_threadsafeÚ
put_nowaitrZ  r]   r6   r9   rÒ  rI   ©rÞ   Úaioloopr»  s    €€r¾   rÓ  Ú%Pregel.astream.<locals>.stream_writerÅ  sT   ø€ Ø×,Ñ,Ø×%Ñ%äÜ&›L¬Ñ.Ô/GÑH×NÑNÌvÓVØ # ðóð
 !ØðõrÁ   rÏ  c                ó®   >• TR                  TR                  [        [        5       [           [
           R                  [        5      S S 5      SU 45        g rÑ  r8  r;  s    €€r¾   rÓ  r=  Õ  sW   ø€ Ø×0Ñ0Ø×)Ñ)ä!Ü *£¬TÑ 2Ô3KÑ L× RÑ RÜ$*ó!"à"% 2ð!'óð
 %ØðõrÁ   c                ó   • g r»   r  rÖ  s    r¾   rÓ  r=  æ  r×  rÁ   rØ  c           
   “  óÖ  >#   • U R                  5       =nbÍ  [        U[        5      (       aL  TR                  [        TR                  UR
                  UR                  UR                  S95      I S h  v•N   OVTR                  [        TR                  UR
                  UR                  UR                  UR                  S95      I S h  v•N   U R                  5       =nb  MÌ  g g  Nr N7f)N)rÉ  r  Úcheckpoint_idr  )rÉ  r  rA  r  rè  )rÝ  rË   rX   rÞ  rÉ  r  rA  r  rß  rW   rè  rà  s     €r¾   Úaemit_graph_lifecycle_eventsÚ4Pregel.astream.<locals>.aemit_graph_lifecycle_events  s×   øé € Ø $× 9Ñ 9Ó ;Ð;�uÑHÜ! %Ô)9×:Ñ:Ø4×>Ñ>Ü,Ø'=×'DÑ'DØ',§|¡|Ø.3×.AÑ.AØ.3×.AÑ.Añ	ó÷ ñ ð 5×AÑAÜ/Ø'=×'DÑ'DØ',§|¡|Ø.3×.AÑ.AØ.3×.AÑ.AØ+0×+;Ñ+;ñó÷ ð ð !%× 9Ñ 9Ó ;Ð;�uÕHññùs+   ƒA/C)Á2C%Á3AC)Ã	C'Ã
C)Ã#C)Ã'C)r»  rI  rC  rE  rA  r3  r-  r°  ræ  rç  r±  r²  rï  r©  rL  rè  r  r  ré  )rê  rm  Úuse_astreamrë  rM  Úaschedule_error_handlerc                 ó¨   >• Tb  TR                  5       (       a8  TR                  TR                  5       5      mSU4S jjn TR                  U 5        T$ )Nc                ó   >• TU L a  S mg g r»   r  )r÷  rð  s    €r¾   Ú_clearÚ2Pregel.astream.<locals>.get_waiter.<locals>._clearQ  s   ø€ à#)¨Q¢;Ø-1¡Fð $/rÁ   )r÷  úasyncio.Task[None]r  r  )rî  Úcreate_taskrï  Úadd_done_callback)rH  r<  r»  rð  s    €€€r¾   rñ  Ú"Pregel.astream.<locals>.get_waiterL  sB   ø€ à!™>¨V¯[©[¯]©]Ø%,×%8Ñ%8¸¿¹»Ó%G˜F÷2ð
 #×4Ñ4°VÔ<Ø%˜rÁ   c               “  ó¼  >#   • [         R                  " [        5         [        TS5      (       a  TR                  R                  5         SSS5        Tn SmU b^  U R                  5       (       dH  U R                  5         [         R                  " [        R                  5         U I Sh  v•N   SSS5        ggg! , (       d  f       Nt= f N ! , (       d  f       g= f7f)z?Wake pending waiter and/or cancel+await to avoid pending tasks.r  N)
Ú
contextlibÚsuppressÚ	ExceptionÚhasattrr  r  rî  Úcancelrt  ÚCancelledError)r÷  r»  rð  s    €€r¾   Ú_cleanup_waiterÚ'Pregel.astream.<locals>._cleanup_waiterY  sž   øé € ô (×0Ò0´Õ;Ü& v¨x×8Ñ8Ø &§¡× 5Ñ 5Ô 7÷ <ð #˜Ø!%˜Ø™=°·±·±ØŸH™HœJÜ!+×!4Ò!4´W×5KÑ5KÕ!LØ&'§ ÷ "MÐ!Lð 2:˜=÷ <Õ;úñ !(÷ "MÕ!LüsG   ƒCž,B8Á
ACÂ"CÂ(C	Â)CÂ-CÂ8
CÃCÃ	CÃ
CÃCró  rõ  r÷  rø  rù  r«  rú  rû  rþ  rÿ  r   r  )rá  ru   r  r  )r  rJ  r  )nrW  rX  rY  r©   rÃ   rC   r6   r  r@  rN   rt  Úget_running_loopr   r   rˆ   r   r9  r:  r/   rI  r´  r   r  rË   rx   r  rï   r  r  r“  rY   rÉ  rª   rä  rA  rÌ   r9   r4   r	  rB   rw   rÄ   rZ  rÒ  rI   r}   rA   r?   rÓ  r;   r  rŠ   r  r�   r  rG  r·  rŒ   r	  rÖ  r×  ru   r‰   r3  rÏ   r=  rÁ  rL  rà  r  r  r|   r>   r
  r  rê  rm  r<   rM  rE  r5  r  Úamatch_cached_writesr  rþ  rõ  Úatickrç  r4  r?  Úaaccept_pushr  Ú
get_nowaitÚ
QueueEmptyr  ÚFuturer  r  rc   r_   r  ra   r®  r`   r  r  r  r  Úshieldr   )6r½   rG  rI  r¶  r  r¯  r°  r±  r²  r©  r·  r  r@  rº  ré   rÀ  Ú
stream_putr!  r³  r"  r#  rA  rC  rE  r$  r%  r&  Ú	do_streamr"  r'  r(  r)  r*  rÓ  r+  rÛ  r,  rÖ  r×  rB  rá  r-  rñ  rU  r  r÷  r   Úor.  r/  r<  rã  r»  rð  s6                                                     @@@@r¾   r1  r2  ÷  s¶	  ûé € ðL "(§¡Ð,?Ó!@Ð@ÐÑMÜ�MŠMØiÜ4Øòð
 Ñ%Ü Øwóð ö %6™¸6ˆJàÑð
 Ñ%Ô*<ÀÇ
Á
Ì4ÐQSÓ@TÓ*Tñ à×%Ñ%ð ö
 �D—J—JØ# XÐ.ˆJä“ˆÜ×*Ò*Ó,ˆÜÜ”k�] DÐ(Ñ)Ü�G×0Ñ0°&×2CÑ2CÓDó
ˆ
ô
 ˜tŸ{™{¨FÓ3ˆØˆðQ	ð —‘ØØ'Ø%Ø'Ø!1Ø /Ø%ð ð ñ	ØØØ!Ø ØØØØô  EÀVÓLÐØ˜\Ó)¨g¸«oð .×6Ò6ó-á6˜Ü% aÔ)@×A÷ Ù6ñ-Ð Ô)ð .×BÒBó9áB˜Ü% aÔ)@×A÷ ÙBñ9Ð Ô5ð
  Ð'7×'@Ñ'@Ó@Ø ×-Ñ-Ð/?ÀÐ.MÔNØ 0× ?Ñ ?ØØØ—Z‘Z 
¨D¯M©M«OÓ<Ø—z‘z (Ó+ð	 !@ð !÷ ˆKô &QØØ"×)Ñ)ñ&Ð"ô -Ñ8ô ñà!,×!5Ò!5óð ôð ð ð Ñ#¨
Ñ(>Ü—’ØQôð × Ñ  DÒ(Üœ#˜v¤d™|Ô,DÑEÓF�Ü9MÈbÓ9Q�”t‘Ô5Ñ6à˜\Ó)äœ3 ™: v¬d¡|×'7Ñ'7Ô8PÓ'QÓR�Ü)-Ø˜t‘O×W¨¬t©×(8Ñ(8Ô9VÓ(Wó*Ð&ö
 .õ ,ä.ð %ð
 ×0Ñ0×7Ñ7Ù(Ø"Ø!Þ>A¤%¨¯	©	´&Ó(9Ô":Àtñôð ˜,Ó&Ü¤ d¡
¨F´4©L×,<Ñ,<Ô=UÓ,VÓW�Ø×0Ñ0×7Ñ7Ü)Ø"Ø!ÞCK¤%¨¯©´vÓ(>Ô"?ÐQUñô÷ð ð ˜<Ó'÷ñ ô # f¬T¡lÓ2Ø &¤t¡Ô-?Ñ @× NÑ N‘ôð Ñ%Ø6A�”t‘Ô2Ñ3ô 4Ø”t‘× Ñ Ô!3´_ÓEóˆNô -¨V°^ÓDˆKäÜ'¨×(;Ñ(;¸WÓEØØ+ØØ#Ø'Ø×I >×#9Ñ#9×I¼Z»\ñˆGð %×*Ñ*¨7Ó3ˆGØ/6ˆF”4‰LÔ+Ñ,ð 5<¸t³O˜T×0Ò0ÈˆNØ29¸T³/˜D×.Ò.ÀtˆM÷ô, 'Øòä% f×&7Ñ&7¸ÔFðñ ðñ ð	ñ
 ðñ *ðð —j’jðð —m’mðñ (ðð  ×.Ò.ðð !×5Ò5ðñ "3ðñ !1ðñ $ðñ 'ðð  "&×!6Ò!6ð!ð" $(×#;Ò#;ð#ð$ "×.Ò.ð%ð& "×.Ò.ð'ô( /3Ð3I×3RÑ3RÔ.S÷)ñ ð* Ù2°4Ó8×8Ð8ä%Ø!¤$™<×+Ñ+Ü0´'×2DÒ2DÀTÇ[Á[Ó2Qóô  '×1Ò1°$·/±/ÓBØ )Ø"(¬¡,×"2Ñ"2Ô3KÓ"LØ+/×+FÑ+FØ,0×,HÑ,Hñ	�ö Ü;IØ" Ló<�D—K‘K¤Ñ%Ô&7Ñ8ð GK�
ØHL�à×%×%Þ Ø! \Ó1Ø <Ó/ð 9=�F÷&ñ &÷(ð (ð&0ØŸ)™)Ÿ+™+Ø*.×*CÑ*CÓ*E×$EÒ$E˜DØ ×.Ñ.¨t¯w©w¸¿¹ÈDÐ.ÓQñ %Fà'-§|¡|Ø(,¯
©
×(9Ñ(9Ô(;ÓLÑ(; 1À1Ç8Å8ŸQÑ(;ÑLØ$(×$5Ñ$5Ø'1Ø*.×*;Ñ*;ð	 (4ñ (÷ ( !ô &-Ø +Ø *Ø )Ø &× 1Ñ 1Ü '× 2Ñ 2Ø 'Ø .Ø -ö	& ð '(¥ó	&ð$ 'Ñ2Ù-Ó/×/Ð/÷c÷ ñf /¨tÓ4×4Ð4ô ØØØØ×!Ñ!Ü×"Ñ"ØØØö	�ð •ñ	ð �{‰{˜nÓ,Ü*à-¨fÐ5FÑ.GÐ-Hð IMð Mô  )×>Ñ>ñ�ô *¨#Ó.Ð.Ø—‘ 
Ó*Ø—<‘<Ñ'Ü&Ð'MÓNÐNÜ" 4§<¡<×#<Ñ#<×#JÀ
ÓKÐKà×*Ñ*¨4¯;©;Ó7×7Ñ7ùòc	-ùò
9òòhò, 9ò~ %Fùò Mò(ð (ð$ Ÿ™Ô)Ù:¸4Ó@×@Ñ@à&¨&Ó0Ü"&¤w§~¡~°t×7OÑ7OÓ"P×PÑPð3 Ÿ)™)Ÿ+ž+ò: 0øð 'Ñ2Ù-Ó/×/Ò/ð 3ú÷a÷ ÷ ò úòf 5ñ< 8øÜó 	ØÑ&Ü—n’n [×%?Ñ%?ÀÓ%BÓC×CÑCØûð	üs†  †DhÄAg Åc;Å+c;Å1g Æd Æ#d Æ)A-g ÈdÈOg ×d×g ×f'×)d×*C?f'Û*(fÜdÜAfÝ*d
Þd
ÞfÞ$dÞ(dÞ)dÞ,9fß%f'ß2fß3f'ß7g àf$àg àgàC"g ã5gã6g ã:hã;g äg äf'äfäfädäfä5d8ä62få(e+å)fæf'æf!æf
æf!æ!f'æ$g æ'f?æ-f0æ.f?æ:	g çg ç
hç+hç<g?ç=hèhèhz4The v3 streaming protocol on Pregel is experimental.)rü  ©r±  r²  r·  Útransformersc               óD  • [        U R                  U5      n[        U R                  5      n	[        U5      n
[	        [
        [        [        [        /U	QU
QUSS9n[        U R                  " U[        U[        S05      4[        U5      SSUUUS.UD65      n[        XË5      $ )aÖ  Internal v3 sync streaming implementation. Public entry: stream_events(version='v3').

Extra keyword arguments are forwarded to the underlying ``stream(...)``
call. The dispatcher in ``stream_events`` rejects ``stream_mode`` and
``subgraphs`` since v3 owns them (``stream_mode`` is derived from the
transformer mux; ``subgraphs`` is always True so nested namespaces
flow through scoped muxes).

!!! warning

    The v3 streaming protocol is experimental and may change.
F©r.  r(  Úis_asyncTrÆ  ©r  r  rº  r±  r²  r·  )Ú_resolve_parent_nsrI  r0  rO  r�   r–   r”   r“   r•   Úiterr»  r3   rB   r$  r’   )r½   rG  rI  r±  r²  r·  rc  ré   r  Úcompiled_factoriesÚextra_factoriesr!  Ú
graph_iters                r¾   Ú_pregel_stream_v3ÚPregel._pregel_stream_v3°  sÌ   € ô0 ' t§{¡{°FÓ;ˆ	ÜDØ×$Ñ$ó
Ðô BÀ,ÓOˆÜä!Ü#Ü$Ü#ð	ð
 $ðð !ðð Øñ
ˆô Ø�KŠKØÜ" 6Ô,IÈ4Ð+PÓQð
ô 2°#Ó6ØØØ!1Ø /Øñ
ð ñ
ó
ˆ
ô ˜jÓ.Ð.rÁ   c          
   ‹  óV  #   • [        U R                  U5      n[        U R                  5      n	[        U5      n
[	        [
        [        [        [        /U	QU
QUSS9nU R                  " U[        U[        S05      4[        U5      SSUUUS.UD6R                  5       n[        XË5      $ 7f)aÚ  Internal v3 async streaming implementation. Public entry: astream_events(version='v3').

Extra keyword arguments are forwarded to the underlying ``astream(...)``
call. The dispatcher in ``astream_events`` rejects ``stream_mode`` and
``subgraphs`` since v3 owns them (``stream_mode`` is derived from the
transformer mux; ``subgraphs`` is always True so nested namespaces
flow through scoped muxes).

!!! warning

    The v3 streaming protocol is experimental and may change.
Tre  rÆ  rg  )rh  rI  r0  rO  r�   r–   r”   r“   r•   r1  r3   rB   r$  Ú	__aiter__r‘   )r½   rG  rI  r±  r²  r·  rc  ré   r  rj  rk  r!  Úgraph_aiters                r¾   Ú_apregel_stream_v3ÚPregel._apregel_stream_v3è  sÓ   é € ô0 ' t§{¡{°FÓ;ˆ	ÜDØ×$Ñ$ó
Ðô BÀ,ÓOˆÜä!Ü#Ü$Ü#ð	ð
 $ðð !ðð Øñ
ˆð —l’lØÜ˜vÔ(EÀtÐ'LÓMð

ô .¨cÓ2ØØØ-Ø+Øñ

ð ñ

÷ ‰)‹+ð 	ô # ;Ó4Ð4ùs   ‚B'B)rÆ  )rº  c               ó   • g r»   r  ©r½   rG  rI  rº  ré   s        r¾   Ústream_eventsÚPregel.stream_events  s   € ð !$rÁ   c               ó   • g r»   r  ©	r½   rG  rI  rº  r±  r²  r·  rc  ré   s	            r¾   rv  rw  (  s   € ð rÁ   )rº  r±  r²  r·  rc  c               ó~   >• US:X  a$  [        U5        U R                  " UU4UUUUS.UD6$ [        T	U ]  " X4SU0UD6$ )uJ	  Stream events from this graph.

For `version="v1"` / `"v2"`, yields `StreamEvent` dicts (see
`Runnable.stream_events`). For `version="v3"`, returns a
`GraphRunStream` whose typed projections the caller drives by
iterating â€” no background thread.

!!! warning

    The `version="v3"` API is experimental and may change.

Builds a `StreamMux` from the built-in transformers, this
graph's compile-time `stream_transformers`, and any additional
`transformers=` supplied at the call site. `run.output`,
`run.interrupted`, and `run.interrupts` work regardless of
which transformers are registered.

Note:
    Nesting v1 `stream(stream_mode="messages")` inside a node
    of a `stream_events(version="v3")` run is not fully
    supported. The outer v3 messages handler reroutes
    `BaseChatModel.invoke` through the v2 event protocol, so
    the inner v1 handler does not see `on_llm_new_token`
    chunks. The inner stream still yields a finalized message
    via `on_llm_end`. Use `stream_events(version="v3")` for the
    inner graph as well, or call `chat_model.stream(...)`
    explicitly, to get token-level streaming.

Args:
    input: Graph input.
    config: Optional runnable config.
    version: Streaming-event schema version. `"v3"` selects the
        content-block-centric streaming protocol.
    interrupt_before: Nodes to interrupt before, if any. Only
        used for `version="v3"`.
    interrupt_after: Nodes to interrupt after, if any. Only
        used for `version="v3"`.
    control: Optional run control used to request cooperative
        drain. Only used for `version="v3"`.
    transformers: Extra transformer classes or configured
        factories appended after compile-time
        `stream_transformers`. Factories are called as
        `factory(scope)` so they can propagate to subgraph
        scopes. Only used for `version="v3"`.
    **kwargs: For `version="v1"`/`"v2"`, forwarded to
        `Runnable.stream_events`. For `version="v3"`, forwarded
        to the underlying `stream(...)` call (e.g. `context`,
        `durability`, `output_keys`, `print_mode`, `debug`).
        `stream_mode` and `subgraphs` are not accepted under
        `version="v3"` and raise `TypeError` if supplied; v3
        owns them.

Returns:
    For `version="v3"`, a `GraphRunStream` the caller iterates
    to drive the run. Otherwise an `Iterator[StreamEvent]`.
Úv3rb  rº  )r  rm  r­  rv  ©
r½   rG  rI  rº  r±  r²  r·  rc  ré   r€  s
            €r¾   rv  rw  6  sg   ø€ ðH �d‹?Ü'¨Ô/Ø×)Ò)ØØðð "2Ø /ØØ)ñð ñð ô ‰wÒ$ UÑN¸GÐNÀvÑNÐNrÁ   c               ó   • g r»   r  ru  s        r¾   Úastream_eventsÚPregel.astream_events‡  s   € ð &)rÁ   c               ó   • g r»   r  ry  s	            r¾   r~  r  ‘  s   € ð *-rÁ   c               ó~   >• US:X  a$  [        U5        U R                  " UU4UUUUS.UD6$ [        T	U ]  " X4SU0UD6$ )u¬  Async variant of `stream_events`.

For `version="v3"`, returns an `AsyncGraphRunStream` whose
projections can be awaited concurrently; each subscribed cursor
drives the pump when its buffer is empty. The same nesting
limitation as the sync path applies â€” see `stream_events` for
details.

!!! warning

    The `version="v3"` API is experimental and may change.

See `stream_events` for full argument and return documentation.
r{  rb  rº  )r  rr  r­  r~  r|  s
            €r¾   r~  r  Ÿ  sf   ø€ ð4 �d‹?Ü'¨Ô/Ø×*Ò*ØØðð "2Ø /ØØ)ñð ñð ô ‰wÒ% eÑO¸WÐOÈÑOÐOrÁ   ©r¶  r  r¯  r°  r±  r²  r©  r·  c       	        ó   • g r»   r  ©r½   rG  rI  r¶  r  r¯  r°  r±  r²  r©  r·  rº  ré   s                r¾   rr  ÚPregel.invokeÆ  ó   € ð   #rÁ   )r¶  r¯  r°  r±  r²  r©  r·  c       	        ó   • g r»   r  r„  s                r¾   rr  r…  Ø  s   € ð  -0rÁ   ©	r¶  r  r¯  r°  r±  r²  r©  r·  rº  c       	        ó   • g r»   r  r„  s                r¾   rr  r…  ê  r†  rÁ   c       	        ó¾  • Ub  UOU R                   nSn/ n/ nUS:X  ax  U R                  " UU4UUS:X  a  SOUUUUUU	U
US.	UD6 HM  nUS:X  a3  US   nUR                  SS5      =n(       a  UR                  U5        M:  M<  UR	                  U5        MO     OöU R                  " UU4UUS:X  a  SS/OUUUUUU	U
S	.UD6 HË  nUS:X  a±  [        U5      S
:X  a!  [        [        [        [        4   U5      u  nnO/[        [        [        [        S4   [        [        4   U5      u  nnnUS:X  a@  [        U[        5      (       a+  UR                  [        5      =nb  UR                  U5        M®  US:X  a  UnM¸  Mº  UR	                  U5        MÍ     US:X  aK  US:X  a  [        U[        U5      S9$ U(       a)  [        U[        5      (       a  0 UE[        U0E$ [        U0$ U$ U$ )a)  Run the graph with a single input and config.

Args:
    input: The input data for the graph. It can be a dictionary or any other type.
    config: The configuration for the graph run.
    context: The static context to use for the run.
        !!! version-added "Added in version 0.6.0"
    stream_mode: The stream mode for the graph run.
    print_mode: Accepts the same values as `stream_mode`, but only prints the output to the console, for debugging purposes.

        Does not affect the output of the graph in any way.
    output_keys: The output keys to retrieve from the graph run.
    interrupt_before: The nodes to interrupt the graph run before.
    interrupt_after: The nodes to interrupt the graph run after.
    durability: The durability mode for the graph execution, defaults to `"async"`.

        Options are:

        - `"sync"`: Changes are persisted synchronously before the next step starts.
        - `"async"`: Changes are persisted asynchronously while the next step executes.
        - `"exit"`: Changes are persisted only when the graph exits.
    control: Optional run control used to request cooperative drain.
    version: The streaming format version. `"v1"` (default) returns the
        traditional format, `"v2"` returns `StreamPart` typed dicts when
        `stream_mode` is not `"values"`.
    **kwargs: Additional keyword arguments to pass to the graph run.

Returns:
    The output of the graph run. If `stream_mode` is `"values"`, it returns the latest output.
    If `stream_mode` is not `"values"`, it returns a list of output chunks.
NrÆ  r4  rˆ  Údatarè  r  rt  r‚  rR  .©rä   rè  )r7  r»  rW  rÎ   rÄ   rÐ  r   rZ  r¡   r   rÌ   rË   rý  rG   rœ   ©r½   rG  rI  r¶  r  r¯  r°  r±  r²  r©  r·  rº  ré   ÚlatestÚchunksrè  ÚchunkÚ
chunk_intsÚmodeÚpayloadr   Úintss                         r¾   rr  r…  ü  s0  € ð^ &1Ñ%<‘kÀ$×BVÑBVˆà'+ˆØ-/ˆØ&(ˆ
à�d‹?àŸšØØðð  Ø(3°xÓ(?™HÀ[Ø%Ø'Ø!1Ø /Ø%ØØñð ô�ð  (Ó*Ø" 6™]�FØ%*§Y¡Y¨|¸RÓ%@Ð@�zÕ@Ø"×)Ñ)¨*Ö5ñ Að —M‘M %Ö(ò'ð, ŸšØØðð  à-8¸HÓ-D�Y Ñ)È+à%Ø'Ø!1Ø /Ø%Øñð ô�ð  (Ó*Ü˜5“z Q“Ü(,¬U´:¼s°?Ñ-CÀUÓ(K™˜™gä+/Ü!¤%¬¨S¨¡/´:¼sÐ"BÑCÀUó,Ñ(˜˜4 ð  	Ó)Ü& w´×5Ñ5Ø%,§[¡[´Ó%;Ð;˜TÑHà"×)Ñ)¨$Ö/Ø Ó)Ø!(šñ *ð —M‘M %Ö(ñ?ðB ˜(Ó"Ø˜$‹Ü"¨¼EÀ*Ó<MÑNÐNÞô " &¬$×/Ñ/ð 6�vÐ5œy¨*Ñ5ðô $ ZÐ0ðð
 ˆMàˆMrÁ   c       	      ‹  ó   #   • g 7fr»   r  r„  s                r¾   r�  ÚPregel.ainvokew  ó
   é € ð   #ùó   ‚c       	      ‹  ó   #   • g 7fr»   r  r„  s                r¾   r�  r–  ‰  s
   é € ð  -0ùr˜  c       	      ‹  ó   #   • g 7fr»   r  r„  s                r¾   r�  r–  ›  r—  r˜  c       	      ‹  óä  #   • Ub  UOU R                   nSn/ n/ nUS:X  a{  U R                  " UU4UUS:X  a  SOUUUUUU	U
US.	UD6  Sh  v•N nUS:X  a3  US   nUR                  SS5      =n(       a  UR                  U5        M@  MB  UR	                  U5        MU  U R                  " UU4UUS:X  a  SS/OUUUUUU	U
S	.UD6  Sh  v•N nUS:X  a±  [        U5      S
:X  a!  [        [        [        [        4   U5      u  nnO/[        [        [        [        S4   [        [        4   U5      u  nnnUS:X  a@  [        U[        5      (       a+  UR                  [        5      =nb  UR                  U5        M´  US:X  a  UnM¾  MÀ  UR	                  U5        MÓ   GNK
 O NÓ
 US:X  aK  US:X  a  [        U[        U5      S9$ U(       a)  [        U[        5      (       a  0 UE[        U0E$ [        U0$ U$ U$ 7f)a8  Asynchronously run the graph with a single input and config.

Args:
    input: The input data for the graph. It can be a dictionary or any other type.
    config: The configuration for the graph run.
    context: The static context to use for the run.
        !!! version-added "Added in version 0.6.0"
    stream_mode: The stream mode for the graph run.
    print_mode: Accepts the same values as `stream_mode`, but only prints the output to the console, for debugging purposes.

        Does not affect the output of the graph in any way.
    output_keys: The output keys to retrieve from the graph run.
    interrupt_before: The nodes to interrupt the graph run before.
    interrupt_after: The nodes to interrupt the graph run after.
    durability: The durability mode for the graph execution, defaults to `"async"`.

        Options are:

        - `"sync"`: Changes are persisted synchronously before the next step starts.
        - `"async"`: Changes are persisted asynchronously while the next step executes.
        - `"exit"`: Changes are persisted only when the graph exits.
    control: Optional run control used to request cooperative drain.
    version: The streaming format version. `"v1"` (default) returns the
        traditional format, `"v2"` returns `StreamPart` typed dicts when
        `stream_mode` is not `"values"`.
    **kwargs: Additional keyword arguments to pass to the graph run.

Returns:
    The output of the graph run. If `stream_mode` is `"values"`, it returns the latest output.
    If `stream_mode` is not `"values"`, it returns a list of output chunks.
NrÆ  r4  rˆ  r‹  rè  r  rt  r‚  rR  .rŒ  )r7  r1  rW  rÎ   rÄ   rÐ  r   rZ  r¡   r   rÌ   rË   rý  rG   rœ   r�  s                         r¾   r�  r–  ­  sH  é € ð^ &1Ñ%<‘kÀ$×BVÑBVˆà'+ˆØ-/ˆØ&(ˆ
à�d‹?à#Ÿ|š|ØØð ð  Ø(3°xÓ(?™HÀ[Ø%Ø'Ø!1Ø /Ø%ØØñ ð ò ÷ )�eð  (Ó*Ø" 6™]�FØ%*§Y¡Y¨|¸RÓ%@Ð@�zÕ@Ø"×)Ñ)¨*Ö5ñ Að —M‘M %Ö(ð  $Ÿ|š|ØØð ð  à-8¸HÓ-D�Y Ñ)È+à%Ø'Ø!1Ø /Ø%Øñ ð ò ÷ )�eð  (Ó*Ü˜5“z Q“Ü(,¬U´:¼s°?Ñ-CÀUÓ(K™˜™gä+/Ü!¤%¬¨S¨¡/´:¼sÐ"BÑCÀUó,Ñ(˜˜4 ð  	Ó)Ü& w´×5Ñ5Ø%,§[¡[´Ó%;Ð;˜TÑHà"×)Ñ)¨$Ö/Ø Ó)Ø!(šñ *ð —M‘M %Ö(òk)ñ  ñ,)ð  ðB ˜(Ó"Ø˜$‹Ü"¨¼EÀ*Ó<MÑNÐNÞô " &¬$×/Ñ/ð 6�vÐ5œy¨*Ñ5ðô $ ZÐ0ðð
 ˆMàˆMùsQ   ‚AG0ÁFÁ
FÁFÁA4G0ÃFÃFÃFÃ
CG0ÆFÆG0ÆFÆAG0c                ó^  • U R                   (       d  [        S5      eU=(       d    U R                  R                  5       n/ nU HK  nX0R                  ;   d  M  UR	                  [
        [        U R                  U   5      =(       d    SU45        MM     U R                   R                  U5        g)z$Clear the cache for the given nodes.ú3No cache is set for this graph. Cannot clear cache.Ú__dynamic__N)rE  rÃ   r3  r¯  rÄ   r5   rj   Úclear©r½   r3  Ú
namespacesrØ   s       r¾   Úclear_cacheÚPregel.clear_cache(  s†   € à�z�zÜÐRÓSÐSØ×*˜Ÿ™Ÿ™Ó*ˆà,.ˆ
ÛˆDØ—z‘zÕ!Ø×!Ñ!ä'Ü# D§J¡J¨tÑ$4Ó5×F¸Øðöñ ð 	�
‰
×Ñ˜Õ$rÁ   c              ƒ  óz  #   • U R                   (       d  [        S5      eU=(       d    U R                  R                  5       n/ nU HK  nX0R                  ;   d  M  UR	                  [
        [        U R                  U   5      =(       d    SU45        MM     U R                   R                  U5      I Sh  v•N   g N7f)z3Asynchronously clear the cache for the given nodes.r�  rž  N)rE  rÃ   r3  r¯  rÄ   r5   rj   Úaclearr   s       r¾   Úaclear_cacheÚPregel.aclear_cache;  s�   é € à�z�zÜÐRÓSÐSØ×*˜Ÿ™Ÿ™Ó*ˆà,.ˆ
ÛˆDØ—z‘zÕ!Ø×!Ñ!ä'Ü# D§J¡J¨tÑ$4Ó5×F¸Øðöñ ð �j‰j×Ñ 
Ó+×+Ó+ùs   ‚AB;ÁAB;Â3B9Â4B;)r[  rE  r  rÏ   rA  rI  rG  r@  r=  r;  r<  rÖ   rM  r3  r7  r  r?  rC  r9  r5  r  rO  rL  )2r3  z#dict[str, PregelNode | NodeBuilder]rÏ   z0dict[str, BaseChannel | ManagedValueSpec] | NonerN  r	  r  r¡   r5  r	  r7  r6  r9  r8  r;  r:  r<  r:  r=  r6  r?  r>  r@  úbool | NonerA  r™   rC  rB  rE  rD  r  z#RetryPolicy | Sequence[RetryPolicy]r  r¹   rG  rF  rI  rH  rL  z"Mapping[str, Sequence[str]] | NonerM  zMapping[str, str] | NonerÖ   rÌ   rO  ú1Sequence[Callable[[tuple[str, ...]], Any]] | Noner]  úUnpack[DeprecatedKwargs]r  r  )rA  úBaseCheckpointSaver | Noner  r«  r»   )rI  rH  re  z
int | boolr  r!   )ré   r   r  r¸   )rí   údict[str, Any] | Noner  r*   )rI  rH  ré   r   r  r*   )r  r*   )r�  úSequence[str] | Noner  útype[BaseModel])r�  r­  r  r¸   )r  r¬  )r  r   )rI  rH  r  r®  )rI  rH  r  r¸   )r  zSequence[str])r  r6  )rÇ  ú
str | NonerÈ  r	  r  z$Iterator[tuple[str, PregelProtocol]])rÇ  r¯  rÈ  r	  r  z)AsyncIterator[tuple[str, PregelProtocol]])rß  r%   r  r  )NF)
rI  r   r   zCheckpointTuple | NonerÈ  r«  r  r	  r  rŸ   )rI  r   r  r	  r  rŸ   )
rI  r   r(  r¬  r)  rH  r*  ú
int | Noner  zIterator[StateSnapshot])
rI  r   r(  r¬  r)  rH  r*  r°  r  zAsyncIterator[StateSnapshot])rI  r   r‘  zSequence[Sequence[StateUpdate]]r  r   )NN)
rI  r   r4  zdict[str, Any] | Any | NonerP  r¯  rQ  r¯  r  r   )
rI  r   r4  údict[str, Any] | AnyrP  r¯  rQ  r¯  r  r   )rI  r   r  ú!StreamMode | Sequence[StreamMode]r¯  r²  r°  r8  r±  úAll | Sequence[str] | Noner²  r³  r©  úDurability | Noner  z¡tuple[set[StreamMode], str | Sequence[str], All | Sequence[str], All | Sequence[str], BaseCheckpointSaver | None, BaseStore | None, BaseCache | None, Durability])rG  úInputT | Command | NonerI  rH  r¶  úContextT | Noner  ú(StreamMode | Sequence[StreamMode] | Noner¯  r²  r°  r8  r±  r³  r²  r³  r©  r´  r·  úRunControl | Noner  r	  r@  r¨  rº  úLiteral['v2']ré   rª  r  z%Iterator[StreamPart[StateT, OutputT]])rG  rµ  rI  rH  r¶  r¶  r  r·  r¯  r²  r°  r8  r±  r³  r²  r³  r©  r´  r·  r¸  r  r	  r@  r¨  rº  úLiteral['v1']ré   rª  r  úIterator[dict[str, Any] | Any])rG  rµ  rI  rH  r¶  r¶  r  r·  r¯  r²  r°  r8  r±  r³  r²  r³  r©  r´  r·  r¸  r  r	  r@  r¨  rº  úLiteral['v1', 'v2']ré   rª  r  r»  )rG  rµ  rI  rH  r¶  r¶  r  r·  r¯  r²  r°  r8  r±  r³  r²  r³  r©  r´  r·  r¸  r  r	  r@  r¨  rº  r¹  ré   rª  r  z*AsyncIterator[StreamPart[StateT, OutputT]])rG  rµ  rI  rH  r¶  r¶  r  r·  r¯  r²  r°  r8  r±  r³  r²  r³  r©  r´  r·  r¸  r  r	  r@  r¨  rº  rº  ré   rª  r  ú#AsyncIterator[dict[str, Any] | Any])rG  rµ  rI  rH  r¶  r¶  r  r·  r¯  r²  r°  r8  r±  r³  r²  r³  r©  r´  r·  r¸  r  r	  r@  r¨  rº  r¼  ré   rª  r  r½  )rG  rµ  rI  rH  r±  r³  r²  r³  r·  r¸  rc  r©  ré   r   r  r’   )rG  rµ  rI  rH  r±  r³  r²  r³  r·  r¸  rc  r©  ré   r   r  r‘   )
rG  rµ  rI  rH  rº  r¼  ré   r   r  zIterator[StreamEvent])rG  rµ  rI  rH  rº  úLiteral['v3']r±  r³  r²  r³  r·  r¸  rc  r©  ré   r   r  r’   )rG  rµ  rI  rH  rº  úLiteral['v1', 'v2', 'v3']r±  r³  r²  r³  r·  r¸  rc  r©  ré   r   r  r   )
rG  rµ  rI  rH  rº  r¼  ré   r   r  zAsyncIterator[StreamEvent])rG  rµ  rI  rH  rº  r¾  r±  r³  r²  r³  r·  r¸  rc  r©  ré   r   r  zAwaitable[AsyncGraphRunStream])rG  rµ  rI  rH  rº  r¿  r±  r³  r²  r³  r·  r¸  rc  r©  ré   r   r  z+AsyncIterator[StreamEvent] | Awaitable[Any])rG  rµ  rI  rH  r¶  r¶  r  zLiteral['values']r¯  r²  r°  r8  r±  r³  r²  r³  r©  r´  r·  r¸  rº  r¹  ré   r   r  zGraphOutput[OutputT])rG  rµ  rI  rH  r¶  r¶  r  r¡   r¯  r²  r°  r8  r±  r³  r²  r³  r©  r´  r·  r¸  rº  r¹  ré   r   r  z!list[StreamPart[StateT, OutputT]])rG  rµ  rI  rH  r¶  r¶  r  r¡   r¯  r²  r°  r8  r±  r³  r²  r³  r©  r´  r·  r¸  rº  rº  ré   r   r  r±  )rG  rµ  rI  rH  r¶  r¶  r  r¡   r¯  r²  r°  r8  r±  r³  r²  r³  r©  r´  r·  r¸  rº  r¼  ré   r   r  r±  )r3  r­  r  r  )Er  r  r  r  Ú__doc__r  r  r5  r9  r?  rA  rC  rE  r  r  rG  rI  rÖ   r¿   rb  rk  ro  r{  r‚  r…  r\  r,   r˜  r¡  r¦  Úpropertyrª  r®  r´  r¸  r»  r¾  rÂ  rÁ  rj  rr  rÖ  r×  rà  r  r  rÿ  r  r-  r1  r�  r   r¤  r§  r´  r   r»  r1  r   rm  rr  rv  r~  rr  r�  r¢  r¦  r  Ú__classcell__)r€  s   @r¾   r¬   r¬   Â  s^  ø‡ ñyðv !Ó à7Ó7à&€K�Ó&Ø6à€L�$Óð0ð )Ó(à26€OÐ/Ó6ØOà.Ó.à/Ó/à'Ó'à!%€L�,Ó%ØBàƒKØ>à!%€L�,Ó%Ø;à"€EÐÓ"Ø/à"€EÐÓ"Ø0à*,€LÐ'Ó,ØOà'+€LÐ$Ó+ØSà,0€NÐ)Ó0ØZà$(€FÐ!Ó(à€Dˆ#Óà1Ó1Ø-Ó-ð #Ø"*Ø"à6:Ø57Ø68à%)Ø!Ø%)Ø"&Ø"&Ø<>Ø+/Ø04Ø(,Ø?CØ;?ØØQUñ3Nð 3ðNð Cð	Nð
 ðNð  ðNð ðNð -ðNð 4ðNð  3ðNð !4ðNð ,ðNð #ðNð ðNð #ðNð   ð!Nð"  ð#Nð$ :ð%Nð& )ð'Nð( .ð)Nð* &ð+Nð, =ð-Nð. !9ð/Nð0 ð1Nð2 Oð3Nð4 6ð5Nð6 
õ7Nð`XØ6ðXà	#ôXð /3ð
ØJOñ
Ø+ð
Ø=Gð
à	ö
ð: /3ð(
ØJOñ(
Ø+ð(
Ø=Gð(
à	ö(
ôT
ö'ö

ôñ" ØfØñð @Dö Oó	ðOñ, ØVØñð
 26ñ*Ø.ð*à	ô*ó	ð*ôð ó*ó ð*÷ñ ð /3ð*Ø+ð*à	õ*ð ó)ó ð)ð /3ðØ+ðà	÷ð ð" /3ð*Ø+ð*à	õ*ð ó
ó ð
ð ó
ó ð
ð *.¸uñ%Ø&ð%Ø8<ð%à	-õ%ðP *.¸uñØ&ðØ8<ðà	2õð$ 37€NÐ/Ó6Ø15€MÐ.Ó5ôð /3Ø%*ðy
àðy
ð &ðy
ð ,ð	y
ð
 #ðy
ð 
õy
ð~ /3Ø%*ðz
àðz
ð &ðz
ð ,ð	z
ð
 #ðz
ð 
õz
ðz <Añ*
Ø$ð*
Ø48ð*
à	õ*
ðZ <Añ*
Ø$ð*
Ø48ð*
à	õ*
ð` )-Ø(,Ø ñ3àð3ð &ð	3ð
 &ð3ð ð3ð 
!õ3ðr )-Ø(,Ø ñ7àð7ð &ð	7ð
 &ð7ð ð7ð 
&õ7ðrPàðPð 4ðPð 
ô	PðdIàðIð 4ðIð 
ô	Ið^ #Ø"ðYàðYð ,ðYð ð	Yð
 ðYð 
õYð" #Ø"ð
àð
ð %ð
ð ð	
ð
 ð
ð 
õ
ð0 )-ñF
àðF
ð 7ð	F
ð
 6ðF
ð 0ðF
ð 5ðF
ð 4ðF
ð &ðF
ð	
õF
ðP ð )-ð4ð
 $(Ø@DØ8:Ø26Ø7;Ø6:Ø(,Ø%)ØØ!ñ4à&ð4ð &ð4ð
 !ð4ð >ð4ð 6ð4ð 0ð4ð 5ð4ð 4ð4ð &ð4ð #ð4ð ð4ð ð4ð ð4ð  +ð!4ð" 
/õ#4ó ð4ð& ð )-ð-ð
 $(Ø@DØ8:Ø26Ø7;Ø6:Ø(,Ø%)ØØ!Ø!$ñ-à&ð-ð &ð-ð
 !ð-ð >ð-ð 6ð-ð 0ð-ð 5ð-ð 4ð-ð &ð-ð #ð-ð ð-ð ð-ð ð-ð  +ð!-ð" 
(õ#-ó ð-ð, )-ðnð
 $(Ø@DØ8:Ø26Ø7;Ø6:Ø(,Ø%)ØØ!Ø'+ñnà&ðnð &ðnð
 !ðnð >ðnð 6ðnð 0ðnð 5ðnð 4ðnð &ðnð #ðnð ðnð ðnð %ðnð  +ð!nð" 
(ö#nð` ð )-ð9ð
 $(Ø@DØ8:Ø26Ø7;Ø6:Ø(,Ø%)ØØ!ñ9à&ð9ð &ð9ð
 !ð9ð >ð9ð 6ð9ð 0ð9ð 5ð9ð 4ð9ð &ð9ð #ð9ð ð9ð ð9ð ð9ð  +ð!9ð" 
4õ#9ó ð9ð& ð )-ð2ð
 $(Ø@DØ8:Ø26Ø7;Ø6:Ø(,Ø%)ØØ!Ø!$ñ2à&ð2ð &ð2ð
 !ð2ð >ð2ð 6ð2ð 0ð2ð 5ð2ð 4ð2ð &ð2ð #ð2ð ð2ð ð2ð ð2ð  +ð!2ð" 
-õ#2ó ð2ð, )-ðwð
 $(Ø@DØ8:Ø26Ø7;Ø6:Ø(,Ø%)ØØ!Ø'+ñwà&ðwð &ðwð
 !ðwð >ðwð 6ðwð 0ðwð 5ðwð 4ðwð &ðwð #ðwð ðwð ðwð %ðwð  +ð!wð" 
-ö#wñr 
ÐHÑIð )-ð5/ð
 8<Ø6:Ø%)ØJNñ5/à&ð5/ð &ð5/ð
 5ð5/ð 4ð5/ð #ð5/ð Hð5/ð ð5/ð 
õ5/ó Jð5/ñn 
ÐHÑIð )-ð35ð
 8<Ø6:Ø%)ØJNñ35à&ð35ð &ð35ð
 5ð35ð 4ð35ð #ð35ð Hð35ð ð35ð 
õ35ó Jð35ðj ð )-ð$ð
 (,ñ$à&ð$ð &ð$ð
 %ð$ð ð$ð 
õ$ó ð$ð ð )-ðð 8<Ø6:Ø%)ØJNñà&ðð &ðð
 ðð 5ðð 4ðð #ðð Hðð ðð 
õó ðð  )-ðOOð
 .2Ø7;Ø6:Ø%)ØJNñOOà&ðOOð &ðOOð
 +ðOOð 5ðOOð 4ðOOð #ðOOð HðOOð ðOOð 
÷OOñ OOðb ð )-ð)ð
 (,ñ)à&ð)ð &ð)ð
 %ð)ð ð)ð 
$õ)ó ð)ð ð )-ð-ð 8<Ø6:Ø%)ØJNñ-à&ð-ð &ð-ð
 ð-ð 5ð-ð 4ð-ð #ð-ð Hð-ð ð-ð 
(õ-ó ð-ð  )-ð%Pð
 .2Ø7;Ø6:Ø%)ØJNñ%Pà&ð%Pð &ð%Pð
 +ð%Pð 5ð%Pð 4ð%Pð #ð%Pð Hð%Pð ð%Pð 
5÷%Pñ %PðN ð )-ð#ð
 $(Ø),Ø8:Ø26Ø7;Ø6:Ø(,Ø%)ñ#à&ð#ð &ð#ð
 !ð#ð 'ð#ð 6ð#ð 0ð#ð 5ð#ð 4ð#ð &ð#ð #ð#ð ð#ð ð#ð 
õ#ó ð#ð" ð )-ð0ð
 $(à8:Ø26Ø7;Ø6:Ø(,Ø%)ñ0à&ð0ð &ð0ð
 !ð0ð  ð0ð 6ð0ð 0ð0ð 5ð0ð 4ð0ð &ð0ð #ð0ð ð0ð ð0ð 
+õ0ó ð0ð" ð )-ð#ð
 $(Ø"*Ø8:Ø26Ø7;Ø6:Ø(,Ø%)Ø!$ñ#à&ð#ð &ð#ð
 !ð#ð  ð#ð 6ð#ð 0ð#ð 5ð#ð 4ð#ð &ð#ð #ð#ð ð#ð ð#ð 
õ#ó ð#ð( )-ðyð
 $(Ø"*Ø8:Ø26Ø7;Ø6:Ø(,Ø%)Ø'+ñyà&ðyð &ðyð
 !ðyð  ðyð 6ðyð 0ðyð 5ðyð 4ðyð &ðyð #ðyð %ðyð ðyð 
öyðv ð )-ð#ð
 $(Ø),Ø8:Ø26Ø7;Ø6:Ø(,Ø%)ñ#à&ð#ð &ð#ð
 !ð#ð 'ð#ð 6ð#ð 0ð#ð 5ð#ð 4ð#ð &ð#ð #ð#ð ð#ð ð#ð 
õ#ó ð#ð" ð )-ð0ð
 $(à8:Ø26Ø7;Ø6:Ø(,Ø%)ñ0à&ð0ð &ð0ð
 !ð0ð  ð0ð 6ð0ð 0ð0ð 5ð0ð 4ð0ð &ð0ð #ð0ð ð0ð ð0ð 
+õ0ó ð0ð" ð )-ð#ð
 $(Ø"*Ø8:Ø26Ø7;Ø6:Ø(,Ø%)Ø!$ñ#à&ð#ð &ð#ð
 !ð#ð  ð#ð 6ð#ð 0ð#ð 5ð#ð 4ð#ð &ð#ð #ð#ð ð#ð ð#ð 
õ#ó ð#ð( )-ðyð
 $(Ø"*Ø8:Ø26Ø7;Ø6:Ø(,Ø%)Ø'+ñyà&ðyð &ðyð
 !ðyð  ðyð 6ðyð 0ðyð 5ðyð 4ðyð &ðyð #ðyð %ðyð ðyð 
öyöv%÷&,ô ,rÁ   r¬   c                ó´   • [        [        5      nU R                  5        H+  u  p#UR                   H  nX   R	                  U5        M     M-     [        U5      $ )z0Index from a trigger to nodes that depend on it.)r   rÍ   rè   rÿ   rÄ   rý  )r3  rL  rÖ   rØ   Útriggers        r¾   rˆ  rˆ  O  sL   € ä4?ÄÓ4EÐØ—k‘k–m‰
ˆØ—}”}ˆGØÑ%×,Ñ,¨TÖ2ó %ñ $ô Ð Ó!Ð!rÁ   c           
   #  óâ  #   •   U" 5       u  p‰n
X‘;   a€  U(       aG  U(       a@  [        SR                  [        SU	 S35      [        SU S3SS9[	        U
5      45      5        O2[        SR                  [        SU	 S35      [	        U
5      45      5        X�;   aÇ  US:X  ar  U	S:X  aD  S	n[        U
[        5      (       a%  U
R                  [        S	5      nU(       a  U" U
5      n
X˜X«S
.v •  OwU	S;   a  U(       a  [        X§5        X˜U
S.v •  OWX˜U
S.v •  OOU(       a  [        U [        5      (       a  X‰U
4v •  O,[        U [        5      (       a  Xš4v •  OU(       a  XŠ4v •  OU
v •  GM_  ! U a     g f = f7f)NÚ Ú[Ú]z[graph=Úyellow)ÚcolorrÆ  r4  r  )r,  r"  r‹  rè  )Úcheckpointsr@  )r,  r"  r‹  )Úprintr  r„   r…   ry  rË   rý  rÝ  rG   Ú_coerce_checkpoint_valuesrÍ   )r  r¯  Ústream_subgraphsÚgetterÚ	empty_excrº  Úoutput_mapperÚstate_mapperr"  r’  r“  r”  s               r¾   r  r  X  so  é € ð ð	Ù &£ÑˆB�gð ÓÞ¦BÜØ—H‘Hä+¨a°¨v°Q¨KÓ8Ü,¨w°r°d¸!¨_ÀHÑMÜ  ›Mðóõô Ø—H‘Hä+¨a°¨v°Q¨KÓ8Ü  ›Mðóôð ÓØ˜$‹Ø˜8Ó#à24�DÜ! '¬4×0Ñ0Ø&Ÿ{™{¬9°bÓ9˜Þ(Ù&3°GÓ&<˜GØ#'¸7ÑWÓWØÐ5Ó5æ#Ü1°'ÔHØ#'¸7ÑCÓCà#'¸7ÑCÓCÞ!¤j°¼d×&CÑ&CØ Ð)Ó)Ü˜K¬×.Ñ.Ø�oÓ%Þ!Ø�mÓ#à’òc øð ó 	Ùð	üs(   ‚E/…
E# �EE/Å#E,Å)E/Å+E,Å,E/c                ó
  • Sn[        U [        5      (       a�  U R                  S5      S:X  ax  [        U R                  S5      [        5      (       aT  [        U S   R                  S5      [        5      (       a-  X S   R                  SS5      ;  a  U" U S   S   5      U S   S'   g[        U [        5      (       aJ  [        U R                  S5      [        5      (       a%  X R                  SS5      ;  a  U" U S   5      U S'   gggg)	zÊCoerce `values` dicts inside checkpoint or debug payloads in-place.

Skips the initial checkpoint (where next contains ``__start__``) because
not all channels are populated yet and coercion would fail.
Ú	__start__r,  rß  r“  r4  rä  r  N)rË   rý  rW  )r“  râ   Ú_STARTs      r¾   rÍ  rÍ  –  së   € ð €Fô 	�7œD×!Ñ!Ø�K‰K˜Ó <Ó/Ü�w—{‘{ 9Ó-¬t×4Ñ4Ü�w˜yÑ)×-Ñ-¨hÓ7¼×>Ñ>Ø )Ñ,×0Ñ0°¸Ó<Ó<á'-¨g°iÑ.@ÀÑ.JÓ'Kˆ�	Ñ˜8Ò$ô 	�7œD×!Ñ!Ü�w—{‘{ 8Ó,¬d×3Ñ3ØŸ+™+ f¨bÓ1Ó1á" 7¨8Ñ#4Ó5ˆ�Òð 2ð 4ð 	"rÁ   c                ó¶   • [        X5      nUR                  [        0 5      R                  [        5      nU(       d  g[	        UR                  [        5      5      $ )a~  Return the checkpoint namespace the caller is running under.

`stream_events(version="v3")` uses this to scope its native projections
(`ValuesTransformer`, `MessagesTransformer`) to events emitted at
the run's own level. A root call resolves to `()`; a call made
from inside a node carries the outer graph's task namespace so the
projection still matches its own root-level events.
r  )r/   rW  r6   r9   rZ  rÒ  rI   )Úgraph_configÚcall_configÚmergedr"  s       r¾   rh  rh  ¯  sD   € ô ˜<Ó5€FØ	�‰”D˜"Ó	×	!Ñ	!Ô":Ó	;€BÞØÜ�—‘œ&Ó!Ó"Ð"rÁ   c                óX   • [        U [        5      (       a  U $ [        [        U SS5      S9$ )aƒ  Normalize the value stored under `CONFIG_KEY_RUNTIME` into a `Runtime`.

During a graph run this is always a `Runtime` the framework created and
published for child tasks to inherit. Layers outside the run (for example a
server's graph-factory path) may instead seed an object that only carries
`context`/`store`. Adopt its `context` so context set at the graph level
plumbs through (`merge` lets the run's own `context` take precedence when
one is provided). `store` is resolved separately (passed to the graph
directly), so it is not read off here. `merge` then combines this with the
run's own runtime, including the framework's `control`.
r¶  N)r¶  )rË   r�   r   rã   s    r¾   r  r  Á  s*   € ô �%œ×!Ñ!ØˆÜœ7 5¨)°TÓ:Ñ;Ð;rÁ   c                ó’  • U R                  [        5      =(       d    0 nUR                  S5      nUR                  S5      nUR                  S5      nSnUb6  [        U[        5      (       d  [	        US5      (       a  [        [        U5      nUc  Uc  Ub2  [        U(       a  [        U5      OSU(       a  [        U5      US9$ SUS9$ g)z±Build ServerInfo from config configurable.

The server puts assistant_id/graph_id in config configurable and the
authenticated user dict in configurable["langgraph_auth_user"].
Úassistant_idÚgraph_idÚlanggraph_auth_userNÚidentityrð  )rÜ  rÝ  Úuser)rW  r6   rË   r‹   rR  r   rŽ   rÌ   )rI  r+  r�  rÜ  rÝ  Úauth_user_datarà  s          r¾   r  r  Ò  sÄ   € ð —:‘:œdÓ#×) r€LØ×#Ñ# NÓ3€LØ×Ñ 
Ó+€Hð "×%Ñ%Ð&;Ó<€NØ €DØÑ!Ü�n¤h×/Ñ/´7¸>È:×3VÑ3VÜœ .Ó1ˆDàÑ 8Ñ#7¸4Ñ;KÜÞ.:œ˜\Ô*ÀÞ&.”S˜“]Øñ
ð 	
à46Øñ
ð 	
ð
 rÁ   c                óÀ   • Uc  gU c  U$ [        U [        5      =(       d    [        U 5      n[        U[        5      (       a  U(       a  U " S0 UD6$ [        [        U5      $ )aw  Coerce context input to the appropriate schema type.

If context is a dict and context_schema is a dataclass or pydantic model, we coerce.
Else, we return the context as-is.

Args:
    context_schema: The schema type to coerce to (BaseModel, dataclass, or TypedDict)
    context: The context value to coerce

Returns:
    The coerced context value or None if context is None
Nr  )r¤  r(   r   rË   rý  r   r¥   )rG  r¶  Úschema_is_classs      r¾   r  r  ñ  s_   € ð �ØàÑØˆä  ´Ó;÷ ¼|Øó@€Oô �'œ4× Ñ ¦_ÙÑ( Ñ(Ð(ä”˜'Ó"Ð"rÁ   )ré   r¸   r  r  )r!  r   r  zlist[StreamMode])r-  r©  r  z&list[Callable[[tuple[str, ...]], Any]])r3  r2  r  rK  )r¾  NN)r  r²  r¯  r²  rÎ  r	  rÏ  z.Callable[[], tuple[tuple[str, ...], str, Any]]rÐ  ztype[Exception]rº  r¼  rÑ  rÕ  rÒ  rÕ  r  r	   )r“  r   râ   zCallable[[Any], Any]r  r  )r×  rH  rØ  rH  r  r  )rä   r   r  úRuntime[Any])rI  r   r+  rä  r  zServerInfo | None)rG  rF  r¶  r   r  r¶  )ýÚ
__future__r   rt  Ú
concurrentÚconcurrent.futuresrO  r  rX  r
  Úcollectionsr   r   Úcollections.abcr   r   r   r	   r
   r   Údataclassesr   r   Údatetimer   Ú	functoolsr   Úinspectr   Útypingr   r   r   r   r   r   Úuuidr   r   Úlangchain_core._apir   Úlangchain_core.globalsr   Úlangchain_core.runnablesr   Úlangchain_core.runnables.baser   r   Úlangchain_core.runnables.configr   r   r    Úlangchain_core.runnables.graphr!   Úlangchain_core.runnables.schemar"   Úlanggraph.cache.baser#   Úlanggraph.checkpoint.baser$   r%   r&   Úlanggraph.store.baser'   Úpydanticr(   r)   Útyping_extensionsr*   r+   r,   r-   Úlanggraph._internalr.   Úlanggraph._internal._configr/   r0   r1   r2   r3   r4   Úlanggraph._internal._constantsr5   r6   r7   r8   r9   r:   r;   r<   r=   r>   r?   r@   rA   rB   rC   rD   rE   rF   rG   rH   rI   rJ   rK   rL   Úlanggraph._internal._pydanticrM   Úlanggraph._internal._queuerN   rO   Úlanggraph._internal._runnablerP   rQ   rR   rS   Úlanggraph._internal._timeoutrT   Úlanggraph._internal._typingrU   rV   Úlanggraph.callbacksrW   rX   rY   rZ   Úlanggraph.channels.baser[   Úlanggraph.channels.topicr\   Úlanggraph.configr]   Úlanggraph.constantsr^   Úlanggraph.errorsr_   r`   ra   rb   rc   Úlanggraph.managed.baserd   Úlanggraph.pregel._algore   rf   rg   rh   ri   Úlanggraph.pregel._callrj   Úlanggraph.pregel._checkpointrk   rl   rm   rn   ro   rp   rq   Úlanggraph.pregel._drawrr   Úlanggraph.pregel._iors   rt   Úlanggraph.pregel._loopru   rv   Úlanggraph.pregel._messagesrw   rx   Úlanggraph.pregel._readry   rz   Úlanggraph.pregel._retryr{   Úlanggraph.pregel._runnerr|   Úlanggraph.pregel._toolsr}   Úlanggraph.pregel._utilsr~   r   Úlanggraph.pregel._validater€   r�   Úlanggraph.pregel._writer‚   rƒ   Úlanggraph.pregel.debugr„   r…   r†   Úlanggraph.pregel.protocolr‡   rˆ   r‰   Úlanggraph.runtimerŠ   r‹   rŒ   r�   rŽ   Úlanggraph.stream._muxr�   Úlanggraph.stream._typesr�   Úlanggraph.stream.run_streamr‘   r’   Úlanggraph.stream.transformersr“   r”   r•   r–   Úlanggraph.typesr—   r˜   r™   rš   r›   rœ   r�   rž   rŸ   r    r¡   r¢   r£   r¤   Úlanggraph.typingr¥   r¦   r§   r¨   Úlanggraph.warningsr©   Ú!langchain_core.tracers._streamingrª   ÚImportErrorÚ__all__r
  r«   r  r  r  r$  r0  r¬   rˆ  r  rÍ  rh  r  r  r  r  rÁ   r¾   Ú<module>r&     s  ðÞ "ã Û Û Û Û Û Û ß *÷÷ ÷ .Ý Ý Ý ÷÷ ÷ å $Ý ,õ÷ 8÷ñ õ
 1Ý 7Ý *÷ñ õ
 +ß +ß DÓ Då &÷÷ ÷÷ ÷ ÷ ÷ ÷ ó õ4 7÷÷ó õ ?ß A÷ó õ 0Ý *Ý 'Ý #÷õ õ 4÷õ õ .÷÷ ñ õ .ß 9÷÷÷ =Ý /Ý 1Ý 9÷÷ Eß Cß TÑ Tß QÑ Q÷õ õ ,Ý 5ß K÷ó ÷÷ ÷ ÷ ÷  ?Ó >Ý :ð%ÝKð $€à˜�w �Ñ'¨#Ñ-€÷j
ñ j
ðd )EÐ �oÓ Dô
ôð&Ø<ðà+ôôBJ:,Ø�6˜8 V¨WÐ4Ñ5ØˆF�H˜f gÐ-Ñ.ôJ:,ôZt"ð $(Ø15Ø04ð;Ø2ð;à1ð;ð ð;ð ;ð	;ð
 ð;ð !ð;ð /ð;ð .ð;ð õ;ô|6ð2#Ø'ð#Ø6Kð#àô#ô$<ð"ØðØ,8ðàôð>#Ø)ð#Ø47ð#àõ#øðWA ó %Ø $Òð%ús   ÉK: Ë:LÌL