+
    iHàjð_  ã                  óR  € R t ^ RIHt ^ RIHt ^ RIt^ RIt^ RIt^ RIt^ RI	H
t
HtHt ^ RIHt ^ RIHtHtHt ^ RIHt ^ RIHtHtHtHtHtHtHtHtHtHtH t H!t! ]PD                  ! R	4      t#] ! R
 R4      4       t$RR/R R llt%R R lt&] ! R R4      4       t'RRRR/R R llt(R# )uÿ  API-call exception handler for the conversation turn's retry loop: pre-/post-classification
recovery, interpreter-shutdown abandon, classified-error routing, overflow recovery, the
non-retryable client-error exit, max-retries exhaustion (primary transport recovery â†’
fallback â†’ terminal result) and the interruptible backoff. Nothing here imports
``agent.conversation_loop`` at module level (cycle) â€” loop-internal helpers resolve lazily so
``patch("agent.conversation_loop.X")`` sites keep intercepting.
)Úannotations)Ú	dataclassN)ÚAnyÚDictÚOptional)Úis_provider_stream_parse_error)ÚRETRYABLE_CLIENT_REASONSÚFailoverReasonÚclassify_api_error)Úrecover_from_overflow)Ú_NONRETRYABLE_LABELSÚabort_turn_on_interruptÚcompute_error_backoffÚfree_tier_cooldown_ends_turnÚinterruptible_backoff_sleepÚlog_api_error_attemptÚmax_retries_exhausted_resultÚ nonretryable_client_error_resultÚrecover_after_classificationÚrecover_before_classificationÚroute_classified_errorÚsettle_delivered_partialzagent.conversation_loopc                  óŽ   € ] tR t^t$ RtR]R&   R]R&   R]R&   R]R&   R]R&   R]R	&   R]R
&   R]R&   R]R&   R]R&   RtR]R&   RtR# )ÚApiErrorVerdictu‰  ``action``: ``"continue"`` (retry the API call), ``"break"`` (leave the retry loop:
fallback armed / redirect pending) or ``"return"`` (``result`` is the turn's result dict);
``"fallthrough"`` never happens â€” the handler always ends in an exit. The other fields
are the retry-loop locals the handler rebinds; ``_provider_overflow_recovery_pending`` is
merge-only (caller sets True when set).ÚstrÚactionr   Úthinking_spinnerÚmessagesÚactive_system_promptÚconversation_historyÚapprox_tokensÚretry_countÚmax_retriesÚcompression_attemptsÚ#_provider_overflow_recovery_pendingNúOptional[dict[str, Any]]Úresult© ©Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__Ú__annotations__r&   Ú__static_attributes__r'   ó    Ú9/home/ubuntu/.hermes/hermes-agent/agent/turn_api_error.pyr   r      sN   ‡ ñ/ð ƒKØÓØƒMØÓØÓØÓØÓØÓØÓØ),Ó,Ø'+€FÐ$×+r0   r   Úcurrent_turn_user_idxc          ,     óp   € V ^8„  d   QhRRRRRRRRRRRRRRR	RR
RRRRRRRRRRRRRRRRRRRRRRRRRRR/# )é   Úagentr   Ú	api_errorÚ_retryr   r   Úapi_messagesÚ
api_kwargsÚsystem_messager   r   r    r!   r"   r#   Úmax_compression_attemptsÚapi_call_countÚapi_request_idÚapi_start_timeÚeffective_task_idÚturn_idr2   Úreturnr   r'   )Úformats   "r1   Ú__annotate__rC   4   sø   € ÷ v,ñ v,Øðv,Ø!ðv,Ø+.ðv,ØBEðv,ØQTðv,àðv,à#&ðv,à8;ðv,àSVðv,ð ðv,ð /2ðv,ð ADðv,ð SVðv,ð ð	v,ð :=ð	v,ð ORð	v,ð
 ðv,ð
 *-ðv,ð
 BEðv,ð
 PSðv,ð ðv,ð ñv,r0   c               óÄ  aaaa	a
aaaa.€ Ro.RNR V.VV
VV	VVVV3	R lllpS'       d   SP                  R4       RoV P                  '       d   V P                  R4       \        WSWVSR7      w  poV'       d	   V! R4      # \        VRR4      pV P	                  V4      pVRO9   dH   \        V R	R4      R
8X  d6    ^ RIHp \        VRR4      pV! V4      '       d   V P                  VRR7       ^ RIHp V! V4      '       d=   \        P                  RV P                  Wñ4       RpV! RRVRSRVRRRRRVRRRR/4      # \        V RR4      pV'       d   \        VRR 4      MR p\        T\        V R	R4      ;'       g    R\        V R!R4      ;'       g    RS
TV'       d   \!        V4      M^ \#        \        V R"R4      ;'       g    R4      \        V R#R4      R$7      p\        P                  R%VP$                  P&                  VP(                  VP*                  VP,                  VP.                  VP0                  4       V P3                  VVVVVV\5        V4      P6                  \#        V4      VSSVP*                  VP$                  P&                  R&7       \9        WVVVVSVR'7      w  pp V'       d	   V! R4      # S^,          o\:        P:                  ! 4       V,
          p!V P=                  R(S R)S R*24       \?        WSSVV!VS
\A        VP*                  4      R+7	      w  p"p#p$p%p&V PB                  '       d_   V PE                  RR,7      '       d   RVn#        V! R-4      # V! R\I        V SS	VR.R/V" R0V PK                  \#        V4      4       R12R27      4      # \M        WVV3/ R3V#bR4VbR5V bR"V%bR!V&bRSbR6VbR7VbR8SbR9S	bR:SbR;SbR<SbR=VbR>VbR?Vb p'V'P(                  pV'PN                  oV'PP                  oV'PR                  o	V'PT                  oV'PV                  oV'PX                  oV'PZ                  p(V'P\                  p)V'P^                  p*V'P`                  '       d   Ro.V'Pb                  R@8w  d   V! V'Pb                  V'Pd                  4      # \g        WVVVV#V)SWWSS	S
SWïVRA7      p+V+PN                  oV+PP                  oV+PR                  o	V+Ph                  o
V+PX                  oV+Pj                  p,V+P`                  '       d   Ro.V+Pb                  R@8w  d   V! V+Pb                  V+Pd                  4      # \m        V 3/ RBVbRCVbRDVbRVbR3V#bR4VbREV,bRFV(bRGV*bRHV$bRIV%bRJV&bRSbR6VbRKVbR8SbR9S	bRLS
bR:SbR;SbR<SbR>VbRMVb p-V-PP                  oV-PT                  oV-PX                  oV! V-Pb                  V-Pd                  4      #   \         d    \        P                  RTRR7        ELói ; i)PzñRecover from ``api_error`` in the original order. Every fallback activation must leave
the retry loop with ``restart_with_rebuilt_messages`` armed (``"break"``) so the pre-API
preflight re-runs against the fallback's context window (#84733).FNc               ó$   € V ^8„  d   QhRRRRRR/# )r4   r   r   r&   r%   rA   r   r'   )rB   s   "r1   rC   Ú&handle_api_error.<locals>.__annotate__A   s"   € ÷ 
ñ 
˜ð 
Ð&>ð 
È/ñ 
r0   c                ó0   <	€ \        V S
SSSSS	SSSVR 7      # ))r   r   r   r   r   r    r!   r"   r#   r$   r&   )r   )r   r&   r$   r   r    r#   r   r"   r   r!   r   s   &&€€€€€€€€€r1   Ú_verdictÚ"handle_api_error.<locals>._verdictA   s.   ø€ ÜØÐ,<ÀxØ!5ÐL`Ø'°[ÈkØ!5Ø0SÐ\bô
ð 	
r0   Ú )r   r8   r9   r   ÚcontinueÚstatus_codeÚproviderÚnous)Úresponse_is_usage_windowÚresponseT)Úrefusedu3   credits â–¸ header capture on %s failed (fail-open))Úexc_info)Úinterpreter_shutting_downuK   %sInterpreter is shutting down â€” abandoning turn during API call #%d (%s)zSTurn abandoned: the process was shutting down before the model call could complete.rA   Úfinal_responser   Ú	api_callsÚ	completedÚfailedÚerrorÚfailure_reasonÚinterpreter_shutdownÚfailure_retryableÚcontext_compressorÚcontext_lengthi@ ÚmodelÚbase_urlÚapi_key)rM   r^   r    r]   Únum_messagesr_   r`   zTError classified: reason=%s status=%s retryable=%s compress=%s rotate=%s fallback=%s)Útask_idr@   r=   r<   r>   r9   Ú
error_typeÚerror_messagerL   r!   r"   Ú	retryableÚreason)rL   Úerror_contextr   r8   zAPI error recovery (attempt Ú/Ú))r!   r"   rL   Úelapsed_timer8   r    re   )Úpreserve_redirectÚbreakz;Interrupt detected during error handling, aborting retries.z+Operation interrupted: handling API error (z: ú).)Úabort_messageÚinterrupt_textÚ	error_msgrg   Úrecovered_with_poolr8   r:   r   r   r!   r"   r#   r;   r<   r?   Úfallthrough)rL   rp   Úwrapped_output_cap_budgetr   r8   r:   r   r   r    r#   r;   r<   r?   r6   Ú
classifiedr7   Úis_context_length_errorÚis_rate_limitedÚ_is_zai_coding_overloadÚ	_providerÚ_baseÚ_modelr9   r    r2   ©N)i’  i“  )7ÚstopÚthinking_callbackr   ÚgetattrÚ_extract_api_error_contextÚagent.credits_trackerrO   Ú_capture_creditsÚ	ExceptionÚloggerÚdebugÚtools.interpreter_shutdownrS   ÚwarningÚ
log_prefixr
   Úlenr   rf   ÚvaluerL   re   Úshould_compressÚshould_rotate_credentialÚshould_fallbackÚ_invoke_api_request_error_hookÚtyper)   r   ÚtimeÚ_touch_activityr   ÚboolÚ_interrupt_requestedÚclear_interruptÚ restart_with_redirected_messagesr   Ú_clean_error_messager   r   r   r   r!   r"   r#   rv   rs   Úis_zai_coding_overloadÚ"provider_overflow_recovery_pendingr   r&   r   r    ru   Úsettle_unrecovered_error)/r5   r6   r7   r   r   r8   r9   r:   r   r   r    r!   r"   r#   r;   r<   r=   r>   r?   r@   r2   rH   Ú
_recoveredrL   rg   rO   rP   rS   Ú_shutdown_summaryÚ_compressorÚ_ctx_lenrt   rq   rj   rc   rp   rx   ry   rz   Ú_cerv   Ú_wrapped_output_cap_budgetrw   Ú_ovru   Ú_uer$   s/   &$$dd$$$dddddd$$$$$$$                         @r1   Úhandle_api_errorr¡   4   s	  ÿø€ ð +0Ð'÷
÷ 
ò 
÷ Ø×Ñ˜bÔ!ØÐØ××ÐØ×Ñ Ô#ä'DØ 8¸,Ø1ô(Ñ$€JÐ$÷ Ù˜
Ó#Ð#ä˜) ]°DÓ9€KØ×4Ñ4°YÓ?€Mð �jÔ ¤W¨U°JÀÓ%CÀvÔ%Mð	lÝFÜ˜y¨*°dÓ;ˆHÙ'¨×1Ò1Ø×&Ñ& x¸Ð&Ô>õ Eá  ×+Ò+Ü�‰ð'à×Ñ˜nô	
ð
 rÐÙ˜ØÐ/°¸XÀ{ÐTbØ˜ ¨$°Ð9JØÐ4Ð6IÈ5ð#
ó ð 	ô ˜%Ð!5°tÓ<€KßALŒw�{Ð$4°fÔ=ÐRX€HÜ#ØœG E¨:°rÓ:×@Ð@¸bÜ�e˜W bÓ)×/Ð/¨R¸}ØÇ<¬c°,Ô.?ÐUVÜ”W˜U J°Ó3×9Ð9°rÓ:Ü˜˜y¨$Ó/ô€Jô ‡L�LØ^Ø×Ñ×Ñ ×!7Ñ!7Ø×Ñ˜j×8Ñ8Ø×+Ñ+¨Z×-GÑ-Gô	ð 
×(Ñ(Ø!¨7À>Ø%°nÐQ[Ü˜	“?×+Ñ+¼3¸y»>ÐWbØ¨[ÀJ×DXÑDXØ× Ñ ×&Ñ&ð )ô ô 'CØ˜* f¸+ÐUbØ¨ô'Ñ#€JÐ#÷ Ù˜
Ó#Ð#à�1Õ€KÜ—9’9“; Õ/€Lð 
×ÑÐ8¸¸ÀQÀ{ÀmÐSTÐUÔVä6KØ k¸{ÐXcØ!°ÈMÜ�z×+Ñ+Ó,ô7Ñ3€J�	˜9 e¨Vð ×!×!Ð!ð × Ñ °4Ð ×8Ò8Ø6:ˆFÔ3Ù˜GÓ$Ð$Ù˜Ô"9Ø�8Ð1°>ØWØHÈÈÐTVÐW\×WqÑWqÔruÐvó  sAó  XBð  WCð  CEð  Fô#
ó ð 	ô !Ø˜* fòÙ8AðÙQ^ðá/ðá:?ðáGMðáX`ðñ "ðñ 3Aðñ 2ð	ñ I]ð	ñ
  ðñ
 .9ðñ
 Pdðñ ":ðñ KYðñ ,ð€Cð —/‘/€KØ�|‰|€HØ×3Ñ3ÐØ×3Ñ3ÐØ—/‘/€KØ—/‘/€KØ×3Ñ3ÐØ×)Ñ)€OØ!$×!>Ñ!>ÐØ!×8Ñ8ÐØ
×-×-Ð-Ø.2Ð+Ø
‡z�z�]Ô"Ù˜Ÿ
™
 C§J¡JÓ/Ð/ä
Ø˜* f¸+ÐQZØ"<ÀxØ!Ø1ÐH\Ø#Ð:NØ!9Ø+ô€Cð �|‰|€HØ×3Ñ3ÐØ×3Ñ3ÐØ×%Ñ%€MØ×3Ñ3ÐØ!×9Ñ9ÐØ
×-×-Ð-Ø.2Ð+Ø
‡z�z�]Ô"Ù˜Ÿ
™
 C§J¡JÓ/Ð/ä
"Øò
Ù"ð
Ù/9ð
ÙBHð
ÙVað
áð
á+8ð
ñ !8ð
ñ (ð	
ñ BYð	
ñ
 ð
ñ
 $)ð
ñ
 28ð
ñ
 CKð
ñ "ð
ñ /9ð
ñ Pdð
ñ 2ð
ñ BOð
ñ  ð
ñ .9ð
ñ Pdð
ñ &ð
ñ >Sð
€Cð ×3Ñ3ÐØ—/‘/€KØ×3Ñ3ÐÙ�C—J‘J §
¡
Ó+Ð+øôI ô 	lÜ�L‰LÐNÐP[ÐfjˆL×kð	lús   Â74V8 Ö8#W×Wc               ó    € V ^8„  d   QhRRRR/# )r4   r6   r   rA   r‘   r'   )rB   s   "r1   rC   rC   í   s   € ÷ fñ f¨#ð f°$ñ fr0   c                ób  € \        V \        \        34      '       g   R# \        V \        \        P
                  \        P                  34      '       d   R# \        V 4      P                  4       p\        V 4      '       d   R# \        V \        4      ;'       d    RV9   ;'       d    RV9   '       * # )uµ  ValueError/TypeError are local bugs, except: UnicodeEncodeError (surrogate recovery
path), json.JSONDecodeError / provider stream-parse ValueErrors (transient provider/network failure, must retry),
ssl.SSLError (inherits OSError *and* ValueError â€” a TLS failure is not a local bug)
and "NoneType is not iterable" TypeErrors (upstream shape mismatches, e.g. Codex
response.completed.output=null â€” retryable so the fallback path runs).FÚnonetypeznot iterable)Ú
isinstanceÚ
ValueErrorÚ	TypeErrorÚUnicodeEncodeErrorÚjsonÚJSONDecodeErrorÚsslÚSSLErrorr   Úlowerr   )r6   Ú_texts   & r1   Ú_is_local_validation_errorr¯   í   s†   € ô �i¤*¬iÐ!8×9Ò9ÙÜ�)Ô0´$×2FÑ2FÌÏÉÐU×VÒVÙÜ�	‹N× Ñ Ó"€EÜ% i×0Ò0ÙÜ˜9¤iÓ0×dÐd°ZÀ5Ñ5H×dÐdÈ^Ð_dÑMdÔeÐer0   c                  óR   € ] tR t^ýt$ RtR]R&   R]R&   R]R&   R]R&   RtR	]R
&   RtR# )ÚUnrecoveredErrorVerdictzÝ``action``: ``"continue"`` (retry), ``"break"`` (fallback armed / redirect pending) or
``"return"`` (``result`` is the terminal result dict). Rebinds ``active_system_prompt``,
``retry_count`` and ``compression_attempts``.r   r   r   r   r!   r#   Nr%   r&   r'   r(   r'   r0   r1   r±   r±   ý   s+   ‡ ñ5ð ƒKØÓØÓØÓØ'+€FÐ$×+r0   r±   rg   c          2     ó|   € V ^8„  d   QhRRRRRRRRRRRRRRR	RR
RRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRR/# )r4   r5   r   r6   rt   r7   rL   rp   ru   rv   rw   rx   ry   rz   r   r8   r9   r   r   r    r!   r"   r#   r<   rg   r2   rA   r±   r'   )rB   s   "r1   rC   rC   
  s  € ÷ m#ñ m#Øðm#Ø!ðm#Ø/2ðm#Ø<?ðm#ØNQðm#Ø^aðm#à ðm#à36ðm#àQTðm#ð ðm#ð ðm#ð ),ðm#ð 8;ðm#ð KNðm#ð \_ðm#ð ð	m#ð 69ð	m#ð JMð	m#ð \_ð	m#ð
 ðm#ð
 -0ðm#ð
 BEðm#ð
 VYðm#ð ðm#ð ñm#r0   c               ó¼	  aaa€ ^ RI HpHpHp R(R VVV3R lllp\	        V4      pVP
                  \        P                  8H  ;'       d    \        \        VRR4      4      pVP
                  \        P                  8H  ;'       d    \        \        VRR4      4      pT;'       gc    T;'       gY    T;'       gO    VP                  '       * ;'       d=    VP                  '       *  ;'       d#    VP
                  \        9  ;'       d    V'       * pV'       Ed¿   ^ RIHp  V ! W4       V! V 4      '       dx   VP                   '       gf   T! T\#        \        VR	R
4      ;'       g    T4      4      '       d9   RVn        V P%                  4       '       d   V P'                  R4       ^ oV! R4      # T;'       d    VP
                  \        P(                  8H  p!VP*                  '       g   V!'       g   V'       g	   V'       d³   V P-                  4       '       d;   \.        P0                  ! VP
                  RV R24      p"V P3                  RV" R24       \5        V\6        4      '       d   VP1                  R4      MRp#V P9                  VP
                  V#R7      '       d   V! WSV4      o^ ;ooV! R4      # \;        WV4      p$V! R\=        WW$VWÜVVVV	W«V$R7      4      # \?        SV4      p%V'       d=   SV8  d6   \A        WV
4      '       d$   \B        PE                  RV PF                  S4       VoSV8¼  EdQ   VPH                  '       gA   V PK                  VSVR7      '       d'   RVn$        ^ oRVn&        ^ V n'        RV n(        V! R4      # V P-                  4       '       d   V P3                  RV R24       \5        V\6        4      '       d   VP1                  R4      MRp#V P9                  VP
                  V#R7      '       d   V! WSV4      o^ ;ooV! R4      # ^ RI)H*p& V&! WW#VVVR7      p'V'e0   V'R,          R8X  d   ^ oV! V'R,          V'P1                  R4      4      # \;        WV4      p$V! R\W        WVV%VW^VVVVVV	W«V$R7      4      # \Y        WSVWxW«R 7      p(\[        V V(W<VVR!R"S R#V R$2R%S R#V R2R&7	      p)V)e
   V! RV)4      # VP\                  '       d	   V! R4      # V! R'4      # ))a“  Decide the fate of an API error that every recovery chain declined: local validation /
non-retryable client errors (Copilot stale-credential self-heal first, then fallback, then a
terminal result), max-retries exhaustion (primary transport recovery -> fallback -> terminal
result), else the interruptible error backoff. ``FailoverReason.billing`` (402) is deliberately
treated as non-retryable (#31273).)Ú_arm_fallback_restartÚ_is_copilot_providerÚ"_is_stale_copilot_credential_errorNc               ó$   € V ^8„  d   QhRRRRRR/# )r4   r   r   r&   r%   rA   r±   r'   )rB   s   "r1   rC   Ú.settle_unrecovered_error.<locals>.__annotate__  s#   € ÷ 
ñ 
˜ð 
Ð&>ð 
ÐJañ 
r0   c                ó$   <€ \        V SSSVR 7      # ))r   r   r!   r#   r&   )r±   )r   r&   r   r#   r!   s   &&€€€r1   rH   Ú*settle_unrecovered_error.<locals>._verdict  s   ø€ Ü&ØÐ0DÐR]Ø!5¸fô
ð 	
r0   Úimage_shrink_retry_attemptedFÚ#reasoning_mandatory_retry_attempted)Ú _mark_entitlement_rejected_modelÚmessagerJ   TuW   ðŸ”� Copilot credential re-exchanged after model_not_available 400. Retrying request...rK   zNon-retryable error (HTTP ri   u   âš ï¸� u    â€” trying fallback...Úreset_at)rf   r¿   rl   rA   )rL   r9   r8   r   r   r<   r    rM   r_   r^   Ú	delivereduS   %sFree-tier cooldown outlasts the attended wait â€” ending retries after attempt %s)r!   r"   u   âš ï¸� Max retries (u"   ) exhausted â€” trying fallback...)Úauto_recover_after_exhaustion)r   r   r<   r   r&   )Úattemptsrv   rp   r9   r8   r   r   r<   r    rM   r_   r^   rÀ   )r!   r"   rv   r–   r_   r^   z/Interrupt detected during retry wait, aborting.z<Operation interrupted: retrying API call after error (retry rh   rm   zerror retry backoff ()r   r   r<   rn   ro   Úactivity_labelrr   r{   )/Úagent.conversation_loopr´   rµ   r¶   r¯   rf   r	   Úimage_too_larger‘   r~   Úreasoning_mandatoryre   rŠ   r   Úagent.fallback_cooldownr½   Ú"copilot_stale_cred_retry_attemptedr   Ú%_try_recover_stale_copilot_credentialÚ_buffer_vprintÚunknownrŒ   Ú_has_pending_fallbackr   ÚgetÚ_buffer_diagnostic_statusr¥   ÚdictÚ_try_activate_fallbackr   r   Úminr   rƒ   Úinfor‡   Úprimary_recovery_attemptedÚ_try_recover_primary_transportÚhas_retried_429Ú_fallback_indexÚ_fallback_activatedÚagent.turn_recovery_autorecoverrÁ   r   r   r   r”   )*r5   r6   rt   r7   rL   rp   ru   rv   rw   rx   ry   rz   r   r8   r9   r   r   r    r!   r"   r#   r<   rg   r2   r´   rµ   r¶   rH   Úis_local_validation_errorÚshrink_spentÚreasoning_spentÚis_client_errorr½   Ú_unclassified_localÚ_labelr¿   Ú
_deliveredÚattempts_maderÁ   Ú_ladderÚ	wait_timeÚ_interrupteds*   &$$$$$$$$$$$$$$d$$d$d$$$                  r1   r˜   r˜   
  s>  ú€ ÷ñ ÷
ô 
ô !;¸9Ó EÐð ×$Ñ$¬×(FÑ(FÑF÷ ð Ì4Ü�Ð6¸Ó>óL€Lð !×'Ñ'¬>×+MÑ+MÑM÷ ð ÔRVÜ�Ð=¸uÓEóS€Oð 	"÷ 	
ð 	
Ø÷	
ð 	
à÷	
ð 	
ð ×$Ñ$Ô$÷	&ð
BØ×.Ñ.Ô.ðB÷	&ð
Bà×!Ñ!Ô)AÑA÷	&ð 	&ð &Ô
%ð ÷ €õ 	MÙ(¨Ô:ñ
 ! ×'Ò'Ø×=×=Ð=Ù2ØœS¤¨°I¸rÓ!B×!OÐ!OÀiÓP÷ò ð 9=ˆFÔ5Ø×:Ñ:×<Ò<Ø×$Ñ$ðCôð  �Ù 
Ó+Ð+ð
 8×gÐg¸J×<MÑ<MÔQ_×QgÑQgÑ<gÐØ×%×%Ð%×)<Ç×P_ð ×*Ñ*×,Ò,Ü-×1Ò1°*×2CÑ2CÐGaÐbmÐanÐnoÐEpÓq�Ø×/Ñ/°'¸&¸ÐAXÐ0YÔZÜ8BÀ=ÔRV×8WÒ8W�}×(Ñ(¨Ô4Ð]aˆHØ×+Ñ+°:×3DÑ3DÈxÐ+×XÒXñ (=¸UÐRfÐhnÓ'oÐ$Ø56Ð6�Ð2Ù Ó(Ð(ä-¨eÐ?TÓUˆ
Ù˜Ô"BØ˜jÈjØ%ÐOcØ)¸ÐQZØ°Jô	#
ó ð 	ô ˜ [Ó1€Mß˜;¨Ô4Ô9UÐV[Ðhm×9nÒ9nÜ�‰ÐiØ×$Ñ$ kô	3à!ˆØ�kÕ!ð ×0×0Ð0°U×5YÑ5YØ ;¸Kð 6Z÷ 6
ò 6
ð 15ˆFÔ-ØˆKð &+ˆFÔ"Ø$%ˆEÔ!Ø(-ˆEÔ%Ù˜JÓ'Ð'Ø×&Ñ&×(Ò(Ø×+Ñ+Ð.BÀ;À-ÐOqÐ,rÔsÜ4>¸}Ìd×4SÒ4S�=×$Ñ$ ZÔ0ÐY]ˆØ×'Ñ'¨z×/@Ñ/@È8Ð'×TÒTñ $9¸ÐNbÐdjÓ#kÐ Ø12Ð2ˆKÐ.Ù˜GÓ$Ð$õ 	RÙ/Ø˜j¸8Ø!5Ànô
ˆð ÒØ�xÕ  JÔ.Ø�Ù˜G HÕ-¨w¯{©{¸8Ó/DÓEÐEÜ-¨eÐ?TÓUˆ
Ù˜Ô">Ø˜j°=ÐRaØÀ\ØÐ4HØ)¸ÐQZØ°Jô#
ó ð 	ô &Ø k¸{Ø'Øô€Iô /Øˆy˜&ÐJ^Ø%ØGØUÐVaÐUbÐbcÐdoÐcpÐprÐsØ.¨{¨m¸1¸[¸MÈÐKô€Lð ÒÙ˜ ,Ó/Ð/Ø×.×.Ð.ñ ˜Ó Ð Ù�MÓ"Ð"r0   ))r-   Ú
__future__r   Údataclassesr   r©   Úloggingr«   r�   Útypingr   r   r   Úagent.api_error_summaryr   Úagent.error_classifierr   r	   r
   Úagent.turn_overflowr   Úagent.turn_recoveryr   r   r   r   r   r   r   r   r   r   r   r   Ú	getLoggerrƒ   r   r¡   r¯   r±   r˜   r'   r0   r1   Ú<module>rí      sÅ   ðñõ #å !Û Û Û 
Û ß &Ñ &å Bß _Ñ _Ý 5÷÷ ÷ ó ð 
×	Ò	Ð4Ó	5€ð ÷,ð ,ó ð,ð(v,ð "&÷v,õrfð  ÷	,ð 	,ó ð	,ðm#ð
 \`ðm#ð "&÷m#ñ m#r0   