Ë
    uPêjA¶ ã                   ó¾  — d dl Z d dlZd dlZd dlZd dlmZmZmZmZm	Z	 d dl
mZ d dlmZ d dlmZmZ d dlmZmZmZmZmZmZmZmZmZmZ d dlmZmZmZm Z  d dl!Z!d dl"m#Z# d d	l$m%Z% d dl&Z&d dl'Z&d dl(Z&d dl)Z&d d
l*m+Z+m,Z, d dl-m.Z. d dl/m0Z0 d dl1m2Z2m3Z3 d dl4m5Z5 d dl6m7Z7m8Z8 d dl9m:Z: d dl;m<Z<m=Z= d dl>m?Z? d dl@mAZA d dlBmCZC d dlDmEZE d dlFmGZGmHZH d dlImJZJ d dlKmLZL d dlMmNZN d dlOmPZP d dlQmRZR d dlSmTZTmUZU d dlVmWZW d dlXmYZY d dlZm[Z[ d d l\m]Z]m^Z^ d d!l_m`Z` d d"lambZb d d#lcmdZd d d$lemfZf d d%lgmhZhmiZi d d&ljmkZk d d'llmmZm d d(lnmoZompZp d d)lqmrZr d d*lsmtZt d d+lumvZvmwZwmxZxmyZy d d,lzm{Z{m|Z|m}Z}m~Z~mZm€Z€ d d-l�m‚Z‚mƒZƒm„Z„m…Z… d d.l†m‡Z‡mˆZˆ d d/l‰mŠZŠm‹Z‹mŒZŒ d d0l�mŽZŽ d d1l�m�Z�m‘Z‘m’Z’ d d2l“m”Z”m•Z•m–Z–m—Z—m˜Z˜m™Z™mšZšm›Z› d d3lœm�Z� d d4lžmŸZŸ d d5l m¡Z¡ d d6l¢m£Z£ d d7l)m¤Z¤m¥Z¥m¦Z¦m§Z§m¨Z¨ d d8l©mªZªm«Z«m¬Z¬m­Z­m®Z®m¯Z¯m°Z° d d9l±m²Z²m³Z³m´Z´mµZµ d d:l¶m·Z· d d;l¸m¹Z¹mºZºm»Z»m¼Z¼m½Z½ d<e¾dz  d=e£d>e¿fd?„ZÀd@dAlÁmÂZÂ erEd dlÃZÃd dBlÄmÅZÅ d dClÆmÇZÇ d dDlÈmÉZÉ d dElÊmËZÌ d dFlÍmÎZÎ d dGlÏmÐZÐ d dHlÑmÒZÒ d dIlÓmÔZÔmÕZÕmÖZÖm×Z×mØZØmÙZÙmÚZÚmÛZÛ eÌZÜneZÜ edJ«      ZÝ G dK„ dLedM¬N«      ZÞ G dO„ dPedM¬N«      ZßdQe¾d=e£dReÜdSe!�jÀ                  d>eáe¾eâf   f
dT„Zã ed¬U«      d>eäe¾   fdV„«       ZådReÜd>eædW   fdX„ZçdReÜd>e¿fdY„Zèd>eée}dZf   fd[„Zê G d\„ d]«      Zëy)^é    N)ÚAsyncIteratorÚ	CoroutineÚIteratorÚMappingÚSequence)Úasynccontextmanager)Ú	lru_cache)ÚMappingProxyTypeÚ
ModuleType)
ÚTYPE_CHECKINGÚAnyÚFinalÚLiteralÚOptionalÚ	TypedDictÚTypeVarÚUnionÚcastÚget_type_hints)Úparse_qsÚ	urlencodeÚurlparseÚ
urlunparse)ÚFileContent)ÚFileDeleted)Ú_redact_stringÚverbose_logger)Ú!update_headers_with_filtered_beta)Ú)REALTIME_WEBSOCKET_MAX_MESSAGE_SIZE_BYTES)ÚDEFAULT_MAX_AGENTIC_LOOPSÚvalidated_max_agentic_loops)Úrun_async_function)ÚSUBTITLE_RESPONSE_FORMATSÚsynthesize_subtitle_document)Úserialize_multipart_form_fields)Úrealtime_error_eventÚwebsocket_close_reason)ÚRealTimeStreaming)Úencode_url_path_segment)ÚBaseAnthropicMessagesConfig)ÚBaseAudioTranscriptionConfig)ÚBaseModelResponseIteratorÚMockResponseIterator)ÚBaseBatchesConfig)Ú
BaseConfig)ÚBaseContainerConfig)ÚBaseEmbeddingConfig)ÚBaseEvalsAPIConfig)ÚBaseFilesConfigÚBaseFileUploadStream)Ú$BaseGoogleGenAIGenerateContentConfig)ÚBaseImageEditConfig)ÚBaseImageGenerationConfig)ÚBaseOCRConfigÚOCRResponse)ÚBaseRealtimeHTTPConfig)ÚBaseRealtimeConfig)ÚBaseRerankConfig)ÚBaseResponsesAPIConfig)ÚBaseSearchConfigÚSearchResponse)ÚBaseSkillsAPIConfig)ÚBaseTextToSpeechConfig)ÚBaseDirectVectorStoreConfigÚBaseVectorStoreConfig)ÚBaseVectorStoreFilesConfig)ÚBaseVideoConfig)ÚAsyncHTTPHandlerÚHTTPHandlerÚ_get_httpx_clientÚget_async_httpx_client)Ú!BaseResponsesAPIStreamingIteratorÚ!MockResponsesAPIStreamingIteratorÚProjectQuotaCallbackÚResponsesAPIStreamingIteratorÚResponsesWebSocketStreamingÚ!SyncResponsesAPIStreamingIterator)ÚContainerFileListResponseÚContainerListResponseÚContainerObjectÚDeleteContainerResult)ÚStreamingMediaUploadConfigÚTwoStepFileUploadConfig)ÚAgenticLoopPlanÚAgenticLoopRequestPatchÚAgenticLoopSafetyError©ÚAnthropicMessagesResponse)ÚDeleteSkillResponseÚListSkillsResponseÚSkill)ÚCreateBatchRequestÚCreateFileRequestÚFileContentRequestÚHttpxBinaryResponseContentÚOpenAIFileObjectÚResponseInputParamÚ!ResponsesAPIOptionalRequestParamsÚResponsesAPIResponse)ÚRealtimeQueryParams)ÚRerankResponse)ÚDeleteResponseResult)ÚGenericLiteLLMParams)Ú	CallTypesÚEmbeddingResponseÚ	FileTypesÚLiteLLMBatchÚTranscriptionResponse)ÚVectorStoreFileContentResponseÚVectorStoreFileCreateRequestÚVectorStoreFileDeleteResponseÚVectorStoreFileListQueryParamsÚVectorStoreFileListResponseÚVectorStoreFileObjectÚVectorStoreFileUpdateRequest)Ú&VectorStoreCreateOptionalRequestParamsÚVectorStoreCreateResponseÚ&VectorStoreSearchOptionalRequestParamsÚVectorStoreSearchResponse)ÚVideoObject)ÚCustomStreamWrapperÚImageResponseÚModelResponseÚProviderConfigManagerÚasync_pre_call_deployment_hookÚcustom_llm_providerÚlitellm_paramsÚreturnc                 ó6   — | dk(  xr |j                  d«      du S )NÚopenaiÚrustT©Úget)r€   r�   s     úo/home/oem/CyberBrain26-unified/.venv/lib/python3.12/site-packages/litellm/llms/custom_httpx/llm_http_handler.pyÚ!_rust_responses_websocket_enabledr‰   ž   s$   € ð  (Ñ*ÒQ¨~×/AÑ/AÀ&Ó/IÈTÐ/QÐQó    é   )Úget_shared_realtime_ssl_context)ÚClientSession©ÚClientConnection©ÚCustomLogger)ÚLogging©Ú#FakeAnthropicMessagesStreamIterator)Ú"AnthropicMessagesStreamingResponse)ÚBasePassthroughConfig)ÚCancelEvalResponseÚCancelRunResponseÚDeleteEvalResponseÚEvalÚListEvalsResponseÚListRunsResponseÚRunÚRunDeleteResponseÚ
_ResponseTc                   ój   — e Zd ZU eed<   eeef   ed<   eej                  z  dz  ed<   eee	f   ed<   y)Ú_DeleteRequestKwargsÚurlÚheadersNÚtimeoutÚjson)
Ú__name__Ú
__module__Ú__qualname__ÚstrÚ__annotations__ÚdictÚfloatÚhttpxÚTimeoutÚobject© rŠ   rˆ   r¡   r¡   Ç   s8   … Ø	ƒHØ�#�s�(‰^ÓØ�U—]‘]Ñ" TÑ)Ó)Ø
ˆs�Fˆ{Ñ
ÔrŠ   r¡   F)Útotalc                   ób   — e Zd ZU eeef   ed<   ee   ee   z  ed<   e	e
j                  z  ed<   y)Ú_MediaUploadKwargsr£   Úcontentr¤   N)r¦   r§   r¨   r«   r©   rª   r   Úbytesr   r¬   r­   r®   r°   rŠ   rˆ   r³   r³   Î   s3   … Ø�#�s�(‰^ÓØ�e‰_˜}¨UÑ3Ñ3Ó3Ø�U—]‘]Ñ"Ô"rŠ   r³   Úapi_baseÚlogging_objÚresponse_headersc                 óæ   — ddl m} t        t        |dd«      xs i «      }|j	                  d«      xs |j                  «       xs d}t        |t        «      r|n
t        |«      }|| dd ||«      dœS )z\Pre-stream metadata for proxy response headers (mirrors CustomStreamWrapper._hidden_params).r   )Úprocess_response_headersÚ
model_infoNÚidÚ )Úmodel_idr¶   Ú	cache_keyÚresponse_costÚadditional_headers)Ú'litellm.litellm_core_utils.core_helpersrº   r«   Úgetattrr‡   Úget_router_model_idÚ
isinstancer©   )r¶   r�   r·   r¸   rº   Ú_model_infoÚ_raw_idÚ	_model_ids           rˆ   Ú%_google_genai_streaming_hidden_paramsrÉ   Ô   sw   € õ Qä/3´G¸NÈLÐZ^Ó4_Ò4eÐceÓ/f€KØ —_‘_ TÓ*ÒU¨k×.MÑ.MÓ.OÒUÐSU€GÜ",¨W´cÔ":‘wÄÀGÃ€IàØØØÙ6Ð7GÓHñð rŠ   )Úmaxsizec                  óN   — t        t        t        «      j                  «       «      S ©N)Ú	frozensetr   rd   Úkeysr°   rŠ   rˆ   Ú+_responses_api_optional_request_param_namesrÏ   ê   s   € ä”^Ô$EÓF×KÑKÓMÓNÐNrŠ   r‘   c                 ó@  — ddl m} ddlm} t	        | dd «      }t        t        j                  «      }t        |t
        t        f«      r|j                  |«       g }|D ]=  }t        |t        «      r ||«      }|€Œ|}t        ||«      sŒ-|j                  |«       Œ? |S )Nr   r�   )Ú"get_custom_logger_compatible_classÚdynamic_success_callbacks)Ú"litellm.integrations.custom_loggerr‘   Ú*litellm.litellm_core_utils.litellm_loggingrÑ   rÃ   ÚlistÚlitellmÚ	callbacksrÅ   ÚtupleÚextendr©   Úappend)r·   r‘   rÑ   rÒ   r×   Úcustom_loggersÚcbÚresolveds           rˆ   Ú_custom_logger_callbacksrÞ   ï   s¡   € Ý?õô (/¨{Ð<WÐY]Ó'^ÐÜœG×-Ñ-Ó.€IÜÐ+¬d´E¨]Ô;Ø×ÑÐ2Ô3à02€NØò &ˆÜ�bœ#ÔÙ9¸"Ó=ˆHØÐØØˆBÜ�b˜,Õ'Ø×!Ñ! "Õ%ð&ð ÐrŠ   c                 ó¬   — ddl m} |j                  }t        | «      D ]4  }t	        t        |«      d|«      }t	        |d|«      t	        |d|«      usŒ4 y y)Nr   r�   r   Ú__func__TF)rÓ   r‘   r   rÞ   rÃ   Útype©r·   r‘   Ú	base_funcrÜ   Úcb_funcs        rˆ   Ú_has_pre_call_deployment_hookrå     sZ   € Ý?à#×BÑB€IÜ& {Ó3ò ˆÜœ$˜r›(Ð$DÀiÓPˆÜ�7˜J¨Ó0¼À	È:ÐW`Ó8aÒaÙðð rŠ   .c                  óp   — ddl } t        t        t           | j                  «      }t        d„ |D «       «      S )ay  Duck-type discover proxy hooks exposing per-frame project ITPM/OTPM
    enforcement, so the Responses WebSocket loop can charge every
    ``response.create`` frame, not just the connection's first one.

    Uses duck-typing on ``litellm.callbacks`` (rather than importing the
    proxy hook directly) to avoid a layering violation (SDK importing from
    the proxy layer).
    r   Nc              3   óh   K  — | ]*  }t        t        |d d«      «      rt        t        |«      –— Œ, y­w)Ú(enforce_project_io_token_quota_for_frameN)ÚcallablerÃ   r   rL   )Ú.0Úcallbacks     rˆ   ú	<genexpr>z6_collect_ws_project_quota_callbacks.<locals>.<genexpr>  s3   è ø€ ò àÜ”G˜HÐ&PÐRVÓWÔXô 	Ô! 8×,ñùó   ‚02)rÖ   r   r   r¯   r×   rØ   )Ú_litellmr×   s     rˆ   Ú#_collect_ws_project_quota_callbacksrï     s=   € ó äÜ”Ñ˜(×,Ñ,ó€Iô ñ à!ôó ð rŠ   c            '       ó8]  — e Zd Z	 	 �d|dedededededeej                  z  d	ed
e
dededz  dej                  fd„Z	 	 �d|dedededededeej                  z  d	ed
e
dededz  dej                  fd„Z	 	 	 	 	 �d}dedededededeej                  z  deded
e
deded	edddedz  dedz  dededz  ded   f$d„Z	 	 	 	 	 	 	 �d~dedededz  dededdd
e
dedeej                  z  d	edededz  dededz  deeef   dz  deez  dz  dedz  ded   f$d „Z	 	 	 �ddedededededz  d!edededed	edeej                  z  dededz  dedeeef   fd"„Z	 	 	 	 �d€dededededededeej                  z  d
e
ded	ededededz  dedz  dedz  fd#„Z	 	 	 	 �d€dededededededed
e
deej                  z  d	ededededz  dedz  dedz  deeej6                  f   f d$„Zdeeef   dededeeef   fd%„Z	 	 	 	 �d�ded&ededed
e
dedz  ded	edededz  deez  dz  d'edz  deeef   dz  defd(„Z	 	 	 	 �d‚d)ededededede ded
e
ded	ededz  deej                  z  dz  deez  dz  d*edz  defd+„Z!	 	 	 	 	 	 �dƒdeded
e
de"d,edeej                  z  dz  de#d-edeeef   dz  dedz  dedz  deez  dz  d	eeef   dz  de#fd.„Z$	 	 	 �d„ded)edede"d
e
de#dedededz  deej                  z  dz  deez  dz  de#fd/„Z%ded0e&ded	ed
e
dedz  dedz  deeef   dz  de'deeeeez  dz  edz  f   fd1„Z(de'ded2ej                  de)d
e
dededz  de)fd3„Z*	 	 	 	 	 �d…ded0e&ded	ede)ded4e+d
e
dedz  dedz  dedeez  dz  d5edeeef   dz  de'dz  ded   de)e,eee)f   z  f"d6„Z-	 	 	 	 �d‚ded0e&ded	ede)ded4e+d
e
dedz  dedz  dedeez  dz  deeef   dz  de'dz  ded   de)f d7„Z.ded8eeef   ded
e
dedz  dedz  deeef   dz  de/d	edeeeef   eeeef   df   fd9„Z0ded8eeef   ded
e
dedz  dedz  deeef   dz  de/d	edeeeef   eeeef   df   fd:„Z1de/ded2ej                  d
e
de2eef   de3fd;„Z4	 	 	 	 	 �d…ded8eeef   dedeej                  z  d
e
dedz  dedz  dedeez  dz  d<edeeef   dz  de/dz  d	edz  de3e,eee3f   z  fd=„Z5	 	 	 	 �d‚ded8eeef   dedeej                  z  d
e
dedz  dedz  dedeez  dz  deeef   dz  de/dz  d	edz  de3fd>„Z6	 	 	 	 �d†d?eee   z  dedeej                  z  d
e
dedz  dedz  dedeez  dz  d@edeeef   dz  de7dz  de8e,eee8f   z  fdA„Z9	 	 	 �d„d?eee   z  dedeej                  z  d
e
dedz  dedz  dedeez  dz  deeef   dz  de7dz  de8fdB„Z:	 �d‡dedCededeez  dz  dDeded
e
de;d	e<dedz  dedeej                  z  dz  dej                  fdE„Z=e>d	e<dededeej                  z  dz  fdF„«       Z?	 	 	 	 	 	 �dˆdedee   dGe;dHeded	e<d
e
dedz  dIeeef   dz  dedz  dedz  dedz  dJeeef   dz  de@eAz  fdK„ZBdLe@dedee   dGe;dHed
e
dededz  dJede@eAz  fdM„ZCe>defdN„«       ZDe>ded	e<dOedededz  dedz  dedDedeej                  z  dz  de@dz  fdP„«       ZEe>dQe@ddRfdS„«       ZF	 	 	 	 	 �d‰dedee   dGe;dHeded-ed	e<d
e
deez  dz  dedz  dedz  dedz  dJeeef   dz  de@e,eee@eAz  f   z  fdT„ZGded&eeHz  dedUeeef   d	e<d
e
deeeeHz  eeeef   e<f   fdV„ZI	 	 	 	 	 	 	 	 �dŠded&eeHz  dWeJdUeeef   ded	e<d
e
dIeeef   dz  dXe2eef   dz  deej                  z  dz  deez  dz  d-ededYeeef   dz  ded   deKeLz  e,eeeKeLz  f   z  f dZ„ZM	 	 	 	 	 	 	 �d‹ded&eeHz  dWeJdUeded	e<d
e
dIeeef   dz  dXe2eef   dz  deej                  z  dz  deez  dz  dedYeeef   dz  ded   deKeLz  fd[„ZN	 	 	 	 	 	 �dˆd\edWeJd	e<d
e
dedz  dIeeef   dz  dXeeef   dz  deej                  z  dz  deez  dz  d-eded   deOfd]„ZP	 	 	 	 	 	 �dˆd\edWeJd	e<d
e
dedz  dIeeef   dz  dXeeef   dz  deej                  z  dz  deez  dz  d-eded   deOe,eeeOf   z  fd^„ZQ	 	 	 	 	 	 	 �dŒd\edWeJd	e<d
e
dedz  dIeeef   dz  dXeeef   dz  deej                  z  dz  deez  dz  d-eded   deKe,eeeKf   z  fd_„ZR	 	 	 	 	 	 �d�d\edWeJd	e<d
e
dedz  dIeeef   dz  dXeeef   dz  deej                  z  dz  deez  dz  ded   deKfd`„ZS	 	 	 	 	 	 	 	 	 	 	 �dŽd\edWeJd	e<d
e
dedz  daedz  dbedz  dcee   dz  dde+deeTdf   dIeeef   dz  deej                  z  dz  deez  dz  d-eded   dee,eeef   z  f dg„ZU	 	 	 	 	 	 	 	 	 	 �d�d\edWeJd	e<d
e
dedz  daedz  dbedz  dcee   dz  dde+deeTdf   dIeeef   dz  deej                  z  dz  deez  dz  ded   defdh„ZV	 �d�d2ej                  diedjedeedz  edz  f   fdk„ZW	 	 	 �d‘dleXd	edeYdededz  dedz  d
e
d-edeez  dz  deej                  z  dz  deZe,eeeZf   z  fdm„Z[	 	 �d’dne\eeedof   d	edeYdeded
e
deez  dz  deej                  z  dz  fdp„Z]dqZ^e>dre_e   dse+de_e   fdt„«       Z`duej                  ddfdv„Zadedwedxeeef   dyebdzedeej                  z  dz  dej                  fd{„Zcdedwedxeeef   dyebdzedeej                  z  dz  dej                  fd|„Zd	 	 	 	 �d€d}d~d	edddededz  dedz  d
d€d-ede\d�   dz  deej                  z  dz  dedz  de\d‚e,eed‚f   f   fdƒ„Ze	 	 	 	 �d€d„ed	edddededz  dedz  d
d€d-ede\d�   dz  deej                  z  dz  dedz  de\d‚e,eed‚f   f   fd…„Zf	 	 	 	 �d‚dneez  ez  d	edddeded
d€de\d�   dz  deej                  z  dz  d}ed~   dedz  fd†„Zg	 	 	 	 �d‚dneez  ez  d	edddededz  d
d€de\d�   dz  deej                  z  dz  d„edz  dedz  fd‡„Zh	 	 	 	 	 	 �dˆd\edWeJd	e<d
e
dedz  dIeeef   dz  dXeeef   dz  deej                  z  dz  deez  dz  d-eded   deKe,eeeKf   z  fdˆ„Zi	 	 	 	 	 	 �dˆd\edWeJd	e<d
e
dedz  dIeeef   dz  dXeeef   dz  deej                  z  dz  deez  dz  d-eded   deKfd‰„Zj	 	 	 	 	 	 �dˆded&e\edŠf   dWeJdUed	e<d
e
dedz  dIeeef   dz  dXeeef   dz  deej                  z  dz  deez  dz  d-eded   deKe,eeeKf   z  fd‹„Zk	 	 	 	 	 	 �dˆded&e\edŠf   dWeJdUed	e<d
e
dedz  dIeeef   dz  dXeeef   dz  deej                  z  dz  deez  dz  d-eded   deKfdŒ„Zl	 	 	 �d‘d�edeYd	eded
e
d-edeez  dz  deej                  z  dz  deZe,eeeZf   z  fdŽ„Zm	 	 �d’d�edeYd	eded
e
deez  dz  deej                  z  dz  deZfd�„Zn	 	 	 �d‘d�edeYd	eded
e
d-edeez  dz  deej                  z  dz  de\d�e,eed�f   f   fd‘„Zo	 	 �d’d�edeYd	eded
e
deez  dz  deej                  z  dz  dd�fd’„Zp	 	 	 �d‘d“edz  deYd	eded
e
d-edeez  dz  deej                  z  dz  deeZ   e,eeeeZ   f   z  fd”„Zq	 	 �d’d“edz  deYd	eded
e
deez  dz  deej                  z  dz  deeZ   fd•„Zr	 	 	 �d‘d–d—deYd	eded
e
d-edeez  dz  deej                  z  dz  de\d˜e,eed˜f   f   fd™„Zs	 	 �d’d–d—deYd	eded
e
deez  dz  deej                  z  dz  dd˜fdš„Ztdedededeeef   fd›„Zue>dJedee+e+ee   f   fdœ„«       Zve>d
e
defd�„«       Zwe>d
e
džedexe   fdŸ„«       Zye>d ed¡ee   d¢e+d£e+dedefd¤„«       Zze>džedefd¥„«       Z{e>d edeexe   exe   f   fd¦„«       Z|e>d§ed¨exe   d©exe   defdª„«       Z}e>ded«edefd¬„«       Z~e>d2ed edefd­„«       Z	 	 �d|d®e€dedee   dHed
d€dJed¢e+d£e+d¡ee   d¯eded°ed±   de@eAe   z  fd²„Z�	 �d‡d®e€dedUed
d€dJed¢e+d£e+d¡ee   d¯ed°ed±   deKeLz  fd³„Z‚e>d°d±d®e€dJed
d€deddfd´„«       ZƒdµeKdedWeJd
d€dede„fd¶„Z…d®e€dedee   dedJeded¢e+d£e+d¡ee   d¯edefd·„Z†d2e‡d
ed€   d«ede\e‡d¸f   fd¹„Zˆ	 �d“d2ededee   dGdºdHed
d€dededJed«ededz  fd»„Z‰d2ededee   ded
d€dededJededz  fd¼„ZŠd½e‹de\ee"eJeŒe�eŽe�e�e;e‘e/e’e7e“e”d¾d¿e•f   fdÀ„Z–e>dwedÁe—dz  defdÂ„«       Z˜e>dÃdÄdÅœdÆe™dwededÇeez  eš�j6                  z  dÈedÉe+ddÊfdË„«       Zœ	 	 	 	 	 	 	 �d”dedÌed
e
de�dededz  dedz  dedz  dedz  dÍedz  dYeeef   dz  dÁe—dz  fdÎ„Zž	 	 	 	 	 �d•deded)eeef   d
e
deej                  z  deŸdz  dedz  dIeeef   dz  deez  dz  dÏedz  dej                  fdÐ„Z 	 	 	 	 	 �d•deded)eeef   d
e
deej                  z  deŸdz  dedz  dIeeef   dz  deez  dz  dÏedz  dej                  fdÑ„Z¡	 	 	 	 	 �d•dÒeTdÓ   deded)eeef   d
e
deej                  z  dedz  dedz  dIeeef   dz  deez  dz  dÏedz  dej                  fdÔ„Z¢	 	 	 	 	 	 �d�dedÕedÖed
e
deej                  z  dedz  dedz  d×eeef   dz  dIeeef   dz  deez  dz  dÏedz  dej                  fdØ„Z£	 	 	 	 	 	 	 �d”dedÌed
e
dWeJdz  dedz  dedz  dedz  dÍedz  dYeeef   dz  dedz  dÙedz  dJefdÚ„Z¤	 	 	 	 	 	 �d–dedÛedÜedz  dÝeŒdÞeded	e<d
e
deej                  z  dIeeef   dz  dXeeef   dz  deez  dz  d-ededYeeef   dz  de¥e,eee¥f   z  f dß„Z¦	 	 	 	 	 �d‰dedÛe&dÜedz  dÝeŒdÞeded	e<d
e
deej                  z  dIeeef   dz  dXeeef   dz  deez  dz  dedYeeef   dz  de¥fdà„Z§	 	 	 	 	 	 	 �d—dedÜedáe�dâeded	ed
e
deej                  z  dIeeef   dz  dXeeef   dz  deez  dz  d-ededYeeef   dz  dedz  de¥e,eee¥f   z  f dã„Z¨	 	 	 	 	 	 �d˜dedÜedáe�dâeded	ed
e
deej                  z  dIeeef   dz  dXeeef   dz  deez  dz  dedYeeef   dz  dedz  de¥fdä„Z©	 	 	 	 	 	 	 �d—dedÜedåe’dæeded	e<d
e
deej                  z  dIeeef   dz  dXeeef   dz  deez  dz  d-ededYeeef   dz  dedz  deªe,eeeªf   z  f dç„Z«	 	 	 	 	 	 �d˜dedÜedådèdæeded	e<d
e
deej                  z  dIeeef   dz  dXeeef   dz  deez  dz  dedYeeef   dz  dedz  deªfdé„Z¬	 	 	 	 	 �d‰dêedëe’ded	e<d
e
deej                  z  dIeeef   dz  dedz  deez  dz  d-edìedz  dee,eeef   z  fdí„Z­	 	 	 	 �d‚dêedëe’ded	e<d
e
deej                  z  dIeeef   dz  dedz  deez  dz  dìedz  defdî„Z®	 	 	 	 	 	 �d˜dêedÜedïe’dedIeeef   dz  dXeeef   dz  dedz  d-ededz  fdð„Z¯	 	 	 	 	 �d•dêedÜedïe’dedIeeef   dz  dXeeef   dz  dedz  dedz  fdñ„Z°	 	 	 	 	 �d}dòedóedôe’dedIeeef   dz  dedz  d-ededz  fdõ„Z±	 	 	 	 �d‚dòedóedôe’dedIeeef   dz  dedz  dedz  fdö„Z²	 	 	 	 	 �d}d÷edôe’dedIeeef   dz  dedz  d-ededz  fdø„Z³	 	 	 	 �d‚d÷edôe’dedIeeef   dz  dedz  dedz  fdù„Z´	 	 	 	 	 	 	 �d‹dÜedêedôe’dedúeµdz  dIeeef   dz  dXeeef   dz  dedz  d-ededz  fdû„Z¶	 	 	 	 	 	 �d�dÜedêedôe’dedúeµdz  dIeeef   dz  dXeeef   dz  dedz  dedz  fdü„Z·	 	 	 	 	 	 �d˜dÜedêedýedôe’dedIeeef   dz  dXeeef   dz  dedz  d-ededz  fdþ„Z¸	 	 	 	 	 �d•dÜedêedýedôe’dedIeeef   dz  dXeeef   dz  dedz  dedz  fdÿ„Z¹	 	 	 	 	 	 �d˜daedz  dde+dz  deedz  dedIeeef   dz  �d eeef   dz  dedz  d-ededz  f�d„Zº	 	 	 	 	 �d•daedz  dde+dz  deedz  �de’dedIeeef   dz  �d eeef   dz  dedz  dedz  f�d„Z»	 	 	 	 �d‚dêe�de’dedIeeef   dz  dedz  dedz  f�d„Z¼	 	 	 	 	 	 �d˜dêe�de’dedIeeef   dz  dXeeef   dz  dedz  d-ededz  f�d„Z½	 	 	 	 	 �d•dêe�de’dedIeeef   dz  dXeeef   dz  dedz  dedz  f�d„Z¾	 	 	 	 �d™dòe�d	e�d
d¿d	e<d
d€dIeeef   dz  deej                  z  d-edeez  dz  de\�de,ee�df   f   f�d„Z¿	 	 	 �dšdòe�d	e�d
d¿d	e<d
d€dIeeef   dz  deej                  z  deez  dz  d�df�d„ZÀ	 	 	 	 	 	 	 	 �d›�d
d¿d	e<d
d€daedz  dde+dz  deedz  dIeeef   dz  �d eeef   dz  deej                  z  d-edeez  dz  de\�de,ee�df   f   f�d„ZÁ	 	 	 	 	 	 	 �dœ�d
d¿d	e<d
d€daedz  dde+dz  deedz  dIeeef   dz  �d eeef   dz  deej                  z  deez  dz  d�df�d„ZÂ	 	 	 	 	 �d��de�d
d¿d	e<d
d€dIeeef   dz  �d eeef   dz  deej                  z  d-edeez  dz  de\�de,ee�df   f   f�d„ZÃ	 	 	 	 �dž�de�d
d¿d	e<d
d€dIeeef   dz  �d eeef   dz  deej                  z  deez  dz  d�df�d„ZÄ	 	 	 	 	 �d��de�d
d¿d	e<d
d€dIeeef   dz  �d eeef   dz  deej                  z  d-edeez  dz  de\�de,ee�df   f   f�d„ZÅ	 	 	 	 �dž�de�d
d¿d	e<d
d€dIeeef   dz  �d eeef   dz  deej                  z  deez  dz  d�df�d„ZÆ	 	 	 	 	 	 	 	 �d›�de�d
d¿d	e<d
d€daedz  dde+dz  deedz  dIeeef   dz  �d eeef   dz  deej                  z  d-edeez  dz  de\�de,ee�df   f   f�d„ZÇ	 	 	 	 	 	 	 �dœ�de�d
d¿d	e<d
d€daedz  dde+dz  deedz  dIeeef   dz  �d eeef   dz  deej                  z  deez  dz  d�df�d„ZÈ	 	 	 	 �d™�ded�e�d
d¿d	e<d
d€dIeeef   dz  deej                  z  d-edeez  dz  dee,eeef   z  f�d„ZÉ	 	 	 �dš�ded�e�d
d¿d	e<d
d€dIeeef   dz  deej                  z  deez  dz  def�d„ZÊe>d
e
de�ded?eeËe   z  ddf
�d„«       ZÌ	 	 	 	 	 �dŸ�ded?eee   z  �deÍ�deŽded	e<d
e
dIeeef   dz  dXeeef   dz  deej                  z  dz  deez  dz  d-edeÎf�d „ZÏ	 	 	 	 	 �dŸ�ded?eee   z  �deÍ�deŽded	e<d
e
dIeeef   dz  dXeeef   dz  deej                  z  dz  deez  dz  d-edeÎe,eeeÎf   z  f�d!„ZÐ	 	 	 	 	 �dŸ�d"eÑ�deŽded	e<d
e
dIeeef   dz  dXeeef   dz  deej                  z  dz  deez  dz  d-edeÒf�d#„ZÓ	 	 	 	 	 �dŸ�d"eÑ�deŽded	e<d
e
dIeeef   dz  dXeeef   dz  deej                  z  dz  deez  dz  d-edeÒe,eeeÒf   z  f�d$„ZÔ	 	 	 	 �d‚�de�deŽded	e<d
e
dIeeef   dz  dXeeef   dz  deej                  z  dz  deez  dz  deÒf�d%„ZÕ	 	 	 	 	 �dŸ�de�deŽded	e<d
e
dIeeef   dz  dXeeef   dz  deej                  z  dz  deez  dz  d-edeÒe,eeeÒf   z  f�d&„ZÖ	 	 	 	 �d‚daedz  dbedz  dde+dz  deedz  �deŽded	e<d
e
dIeeef   dz  dXeeef   dz  deej                  z  dz  deez  dz  f�d'„Z×	 	 	 	 	 �dŸdaedz  dbedz  dde+dz  deedz  �deŽded	e<d
e
dIeeef   dz  dXeeef   dz  deej                  z  dz  deez  dz  d-ef�d(„ZØ	 	 	 	 �d‚�de�d)eÑ�deŽded	e<d
e
dIeeef   dz  dXeeef   dz  deej                  z  dz  deez  dz  deÒf�d*„ZÙ	 	 	 	 	 �dŸ�de�d)eÑ�deŽded	e<d
e
dIeeef   dz  dXeeef   dz  deej                  z  dz  deez  dz  d-edeÒe,eeeÒf   z  f�d+„ZÚ	 	 	 	 �d‚�de�deŽded	e<d
e
dIeeef   dz  dXeeef   dz  deej                  z  dz  deez  dz  f�d,„ZÛ	 	 	 	 	 �dŸ�de�deŽded	e<d
e
dIeeef   dz  dXeeef   dz  deej                  z  dz  deez  dz  d-ef�d-„ZÜdddd�d.œ�de�d/eÝ�d0e�ded	e<d
e
dIeeef   dz  dXeeef   dz  deej                  z  dz  deez  dz  deÞf�d1„Zßddddd�d2œ�de�d/eÝ�d0e�ded	e<d
e
dIeeef   dz  dXeeef   dz  deej                  z  dz  deez  dz  d-edeÞe,eeeÞf   z  f�d3„Zàdddd�d4œ�dedÁeá�d0e�ded	e<d
e
dIeeef   dz  �d eeef   dz  deej                  z  dz  deez  dz  deâf�d5„Zãddddd�d6œ�dedÁeá�d0e�ded	e<d
e
dIeeef   dz  �d eeef   dz  deej                  z  dz  deez  dz  d-edeâe,eeeâf   z  f�d7„Zäddd�d8œ�ded�e�d0e�ded	e<d
e
dIeeef   dz  deej                  z  dz  deez  dz  deÞf�d9„Zådddd�d:œ�ded�e�d0e�ded	e<d
e
dIeeef   dz  deej                  z  dz  deez  dz  d-edeÞe,eeeÞf   z  f�d;„Zæddd�d8œ�ded�e�d0e�ded	e<d
e
dIeeef   dz  deej                  z  dz  deez  dz  deçf�d<„Zèdddd�d:œ�ded�e�d0e�ded	e<d
e
dIeeef   dz  deej                  z  dz  deez  dz  d-edeçe,eeeçf   z  f�d=„Zédddd�d.œ�ded�e�d>eê�d0e�ded	e<d
e
dIeeef   dz  dXeeef   dz  deej                  z  dz  deez  dz  deÞf�d?„Zëddddd�d2œ�ded�e�d>eê�d0e�ded	e<d
e
dIeeef   dz  dXeeef   dz  deej                  z  dz  deez  dz  d-edeÞe,eeeÞf   z  f�d@„Zìddd�d8œ�ded�e�d0e�ded	e<d
e
dIeeef   dz  deej                  z  dz  deez  dz  deíf�dA„Zîdddd�d:œ�ded�e�d0e�ded	e<d
e
dIeeef   dz  deej                  z  dz  deez  dz  d-edeíe,eeeíf   z  f�dB„Zï	 	 	 	 	 	 	 	 �d de�dCe�dDe��dEedžeded	e<d
e
dIeeef   dz  dXeeef   dz  deej                  z  dz  d-edeez  dz  dedYeeef   dz  �dFedz  def"�dG„Zð	 	 	 	 	 	 	 �d‹de�dCe�dDe��dEedžeded	e<d
e
dIeeef   dz  dXeeef   dz  deej                  z  dz  dedz  dedYeeef   dz  �dFedz  def �dH„Zñ	 	 	 �d¡ded&e�dIedz  �dJe“�dKeded	ed
e
deej                  z  dIeeef   dz  deez  dz  d-ede\d˜e,eed˜f   f   f�dL„Zò	 	 �d’ded&e�dIedz  �dJe“�dKeded	ed
e
deej                  z  dIeeef   dz  deez  dz  dd˜f�dM„ZódDededeedz  edz  f   f�dN„Zô	 	 	 	 	 �d‰dwedDe�dO�dPded	e<d
e
dIeeef   dz  deej                  z  dz  deez  dz  d-eded   de\�dQe,ee�dQf   f   f�dR„Zõ	 	 	 	 �d‚dwedDe�dO�dPded	e<d
e
dIeeef   dz  deej                  z  dz  deez  dz  ded   d�dQf�dS„Zö	 	 	 	 	 �d‰dwedÁe�dO�dPded	e<d
e
dIeeef   dz  deej                  z  dz  deez  dz  d-eded   de\�dTe,ee�dTf   f   f�dU„Z÷	 	 	 	 �d‚dwedÁe�dO�dPded	e<d
e
dIeeef   dz  deej                  z  dz  deez  dz  ded   d�dTf�dV„Zø	 	 	 	 	 �d‰dwe�dO�dPded	e<d
e
dIeeef   dz  deej                  z  dz  deez  dz  d-eded   de\�dQe,ee�dQf   f   f�dW„Zù	 	 	 	 �d‚dwe�dO�dPded	e<d
e
dIeeef   dz  deej                  z  dz  deez  dz  ded   d�dQf�dX„Zú	 	 	 	 	 �d‰dwe�dO�dPded	e<d
e
dIeeef   dz  deej                  z  dz  deez  dz  d-eded   de\�dYe,ee�dYf   f   f�dZ„Zû	 	 	 	 �d‚dwe�dO�dPded	e<d
e
dIeeef   dz  deej                  z  dz  deez  dz  ded   d�dYf�d[„Zü	 	 	 	 	 �d‰dwedDe�d\�d]ded	e<d
e
dIeeef   dz  deej                  z  dz  deez  dz  d-eded   de\�d^e,ee�d^f   f   f�d_„Zý	 	 	 	 �d‚dwedDe�d\�d]ded	e<d
e
dIeeef   dz  deej                  z  dz  deez  dz  ded   d�d^f�d`„Zþ	 	 	 	 	 �d‰dwedÁe�d\�d]ded	e<d
e
dIeeef   dz  deej                  z  dz  deez  dz  d-eded   de\�dae,ee�daf   f   f�db„Zÿ	 	 	 	 �d‚dwedÁe�d\�d]ded	e<d
e
dIeeef   dz  deej                  z  dz  deez  dz  ded   d�daf�dc„�Z 	 	 	 	 	 �d‰dwe�d\�d]ded	e<d
e
dIeeef   dz  deej                  z  dz  deez  dz  d-eded   de\�d^e,ee�d^f   f   f�dd„�Z	 	 	 	 �d‚dwe�d\�d]ded	e<d
e
dIeeef   dz  deej                  z  dz  deez  dz  ded   d�d^f�de„�Z	 	 	 	 	 �d‰dwedDe�d\�d]ded	e<d
e
dIeeef   dz  deej                  z  dz  deez  dz  d-eded   de\�d^e,ee�d^f   f   f�df„�Z	 	 	 	 �d‚dwedDe�d\�d]ded	e<d
e
dIeeef   dz  deej                  z  dz  deez  dz  ded   d�d^f�dg„�Z	 	 	 	 	 �d‰dwe�d\�d]ded	e<d
e
dIeeef   dz  deej                  z  dz  deez  dz  d-eded   de\�dhe,ee�dhf   f   f�di„�Z	 	 	 	 �d‚dwe�d\�d]ded	e<d
e
dIeeef   dz  deej                  z  dz  deez  dz  ded   d�dhf�dj„�Z	 	 	 	 	 �d‰dwe�d\�d]ded	e<d
e
dIeeef   dz  deej                  z  dz  deez  dz  d-eded   de\�dke,ee�dkf   f   f�dl„�Z	 	 	 	 �d‚dwe�d\�d]ded	e<d
e
dIeeef   dz  deej                  z  dz  deez  dz  ded   d�dkf�dm„�Z	 	 	 	 	 �d‰dwedDe�d\�d]ded	e<d
e
dIeeef   dz  deej                  z  dz  deez  dz  d-eded   de\�dne,ee�dnf   f   f�do„�Z		 	 	 	 �d‚dwedDe�d\�d]ded	e<d
e
dIeeef   dz  deej                  z  dz  deez  dz  ded   d�dnf�dp„�Z
	 	 	 	 	 �d‰dwedÁe�d\�d]ded	e<d
e
dIeeef   dz  deej                  z  dz  deez  dz  d-eded   de\�dqe,ee�dqf   f   f�dr„�Z	 	 	 	 �d‚dwedÁe�d\�d]ded	e<d
e
dIeeef   dz  deej                  z  dz  deez  dz  ded   d�dqf�ds„�Z	 	 	 	 	 �d‰dwe�d\�d]ded	e<d
e
dIeeef   dz  deej                  z  dz  deez  dz  d-eded   de\�dne,ee�dnf   f   f�dt„�Z	 	 	 	 �d‚dwe�d\�d]ded	e<d
e
dIeeef   dz  deej                  z  dz  deez  dz  ded   d�dnf�du„�Z	 	 	 	 	 �d‰dwe�d\�d]ded	e<d
e
dIeeef   dz  deej                  z  dz  deez  dz  d-eded   de\�dve,ee�dvf   f   f�dw„�Z	 	 	 	 �d‚dwe�d\�d]ded	e<d
e
dIeeef   dz  deej                  z  dz  deez  dz  ded   d�dvf�dx„�Z	 	 	 	 	 �d‰dwe�d\�d]ded	e<d
e
dIeeef   dz  deej                  z  dz  deez  dz  d-eded   de\�dye,ee�dyf   f   f�dz„�Z	 	 	 	 �d‚dwe�d\�d]ded	e<d
e
dIeeef   dz  deej                  z  dz  deez  dz  ded   d�dyf�d{„�Zy(¢  ÚBaseLLMHTTPHandlerFNÚasync_httpx_clientÚprovider_configr¶   r£   Údatar¤   r�   r·   ÚstreamÚsigned_json_bodyr‚   c           	   ƒ   ó  K  — |j                   }d}t        t        |d«      «      D ]:  }	 |j                  |||
�|
nt	        j
                  |«      ||	|¬«      ƒ d{  –—† } n |€|j                  ddi ¬	«      ‚|S 7 Œ# t        j                  $ rO}|dz   |k(  }|j                  ||¬«      }|r|s|j                  ||¬«      }Y d}~Œ¡| j                  ||¬«      ‚d}~wt        $ r}| j                  ||¬«      ‚d}~ww xY w­w)
zbCommon implementation across stream + non-stream calls. Meant to ensure consistent error-handling.Nr‹   ©r¢   r£   rô   r¤   rõ   r·   ©Úer�   ©rú   Úrequest_data©rú   ró   úNo response from the APIé¦  ©Úerror_messageÚstatus_coder£   ©Ú'max_retry_on_unprocessable_entity_errorÚrangeÚmaxÚpostr¥   Údumpsr­   ÚHTTPStatusErrorÚ9should_retry_llm_api_inside_llm_translation_on_http_errorÚ/transform_request_on_unprocessable_entity_errorÚ_handle_errorÚ	ExceptionÚget_error_class)Úselfrò   ró   r¶   r£   rô   r¤   r�   r·   rõ   rö   r  ÚresponseÚirú   Úhit_max_retryÚshould_retrys                    rˆ   Ú_make_common_async_callz*BaseLLMHTTPHandler._make_common_async_call'  sQ  è ø€ ð :I×9pÑ9pÐ/à*.ˆÜ”sÐBÀAÓFÓGò 	ˆAðOØ!3×!8Ñ!8Ø Ø#Ø.>Ð.JÑ*ÔPT×PZÑPZÐ[_ÓP`Ø#Ø!Ø +ð "9ó "÷ �ñ( ð-	ð0 ÐØ!×1Ñ1Ø8ØØð 2ó ð ð ˆð;ùô ×(Ñ(ò 	SØ ! A¡Ð)PÑ P�Ø.×hÑhØ¨ð  ió  �ñ  ©Ø*×ZÑZÐ]^ÐmqÐZÓr�DÜà×,Ñ,¨qÀ/Ð,ÓRÐRûÜò OØ×(Ñ(¨1¸oÐ(ÓNÐNûðOüsR   ‚'Dª1A=ÁA;ÁA=Á DÁ;A=Á=C>Â2CÃDÃCÃC>Ã&C9Ã9C>Ã>DÚsync_httpx_clientc           	      óê  — |j                   }d }t        t        |d«      «      D ]2  }	 |j                  |||
�|
nt	        j
                  |«      ||	|¬«      } n |€|j                  ddi ¬«      ‚|S # t        j                  $ rO}|dz   |k(  }|j                  ||¬«      }|r|s|j                  ||¬«      }Y d }~Œ—| j                  ||¬«      ‚d }~wt        $ r}| j                  ||¬«      ‚d }~ww xY w)	Nr‹   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  s                    rˆ   Ú_make_common_sync_callz)BaseLLMHTTPHandler._make_common_sync_callY  sD  € ð :I×9pÑ9pÐ/à*.ˆä”sÐBÀAÓFÓGò 	ˆAðOØ,×1Ñ1Ø Ø#Ø.>Ð.JÑ*ÔPT×PZÑPZÐ[_ÓP`Ø#Ø!Ø +ð 2ó �ñ( ð-	ð0 ÐØ!×1Ñ1Ø8ØØð 2ó ð ð ˆøô+ ×(Ñ(ò 	SØ ! A¡Ð)PÑ P�Ø.×hÑhØ¨ð  ió  �ñ  ©Ø*×ZÑZÐ]^ÐmqÐZÓr�DÜà×,Ñ,¨qÀ/Ð,ÓRÐRûÜò OØ×(Ñ(¨1¸oÐ(ÓNÐNûðOús)   ¨.A1Á1C2Â2CÂ;CÃC2ÃC-Ã-C2r€   ÚmodelÚmodel_responseÚmessagesÚoptional_paramsÚencodingztiktoken.Encoding | NoneÚapi_keyÚclientÚ	json_modeÚshared_sessionr�   c              ƒ   ó”  K  — |€Wt        j                  d|rt        |«      nd «       t        t	        j
                  |«      d|j                  dd «      i|¬«      }n|}| j                  |||||||d|	|¬«
      ƒ d {  –—† }|j                  ||||	|||
||||¬«      }| j                  |||
||	d||¬«      ƒ d {  –—† }|�|S |S 7 ŒG7 Œ­w)Nz,Creating HTTP client with shared_session: %sÚ
ssl_verify©Úllm_providerÚparamsr   F)
rò   ró   r¶   r£   rô   r¤   r�   rõ   r·   rö   ©r  Úraw_responser  r·   r  rü   r  r  r�   r  r  )r  r  r  r  r·   rõ   r€   Úkwargs)
r   Údebugr¼   rI   rÖ   ÚLlmProvidersr‡   r  Útransform_responseÚ#_call_agentic_chat_completion_hooks)r  r€   ró   r¶   r£   rô   r¤   r  r  r·   r  r  r�   r  r  r  r  rö   r   rò   r  Úinitial_responseÚfinal_responses                          rˆ   Úasync_completionz#BaseLLMHTTPHandler.async_completion‹  s-  è ø€ ð* ˆ>Ü× Ñ Ø>ÑVdÄÀ>Ô@RÐjnôô "8Ü$×1Ñ1Ð2EÓFØ$ n×&8Ñ&8¸ÀtÓ&LÐMØ-ô"Ñð "(Ðà $× <Ñ <Ø1Ø+ØØØØØ)ØØ#Ø-ð !=ó !
÷ 
ˆð #2×"DÑ"DØØ!Ø)Ø#ØØØØ+Ø)ØØð #Eó #
Ðð '+×&NÑ&NØ%ØØØ+Ø#ØØ 3Ø!ð 'Oó 	'
÷ 	!
ˆð "0Ð!;ˆ~ÐQÐAQÐQðM
øð6	!
ús$   ‚A:CÁ<CÁ=<CÂ9CÂ:CÃCÚacompletionÚfake_streamc                 ó`  — |j                  dd«      }|j                  dd «      }|xs* t        j                  |t        j                  |«      ¬«      }|€t        d|› d|› �«      ‚|xs( |j                  dd«      xs |j                  |||¬«      }|j                  ||xs i |||||
¬	«      }|j                  ||||||
¬
«      }|j                  ||||
|¬«      }|�i |¥|¥}|j                  ||||||||¬«      \  }}|j                  |||||dœ¬«       |
j                  dd«      rd|j                  d<   |du rƒ|du rH| j                  |||¬«      }| j                  |||||||	||||�t!        |t"        «      r|nd |
|||¬«      S | j%                  ||||||	|||||||
||�t!        |t"        «      r|nd |||¬«      S |du r„| j                  |||¬«      }|j&                  du r|j)                  ||||||||||¬«
      S | j+                  ||||||||||	||�t!        |t,        «      r|nd |
||¬«      \  }}t/        |||||¬«      S |�t!        |t,        «      st1        d|
j                  dd «      i¬«      }n|}| j3                  |||||||	|
|¬«	      }|j5                  |||||||||
||¬«      S )Nr  FÚ
extra_body©r  Úproviderz%Provider config not found for model: ú and provider: r1  )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õ   r1  r  ©Úcomplete_input_dictr¶   r£   ©Úinputr  Úadditional_argsÚ(_websearch_interception_converted_streamTÚ'websearch_interception_converted_stream)rô   ró   r1  )r  r  r¶   r£   r€   ró   r¤   r·   rô   r1  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ö   Úoriginal_datar  r  r·   r¤   r1  r  r�   r  r  ©Úcompletion_streamr  r€   r·   Ú_response_headersr"  ©r%  )	r  ró   r¶   r£   rô   rö   r¤   r�   r·   r&  )Úpopr~   Úget_provider_chat_configrÖ   r*  Ú
ValueErrorÚshould_fake_streamÚvalidate_environmentÚget_complete_urlÚtransform_requestÚsign_requestÚpre_callr‡   Úmodel_call_detailsÚ!_add_stream_param_to_request_bodyÚacompletion_stream_functionrÅ   rF   r/  Úhas_custom_stream_wrapperÚget_sync_custom_stream_wrapperÚmake_sync_callrG   r{   rH   r  r+  )r  r  r  r¶   r€   r  r  r·   r  r¤   r�   r0  rõ   r1  r  r£   r  ró   r   r  r3  rô   rö   rA  r  r  s                             rˆ   Ú
completionzBaseLLMHTTPHandler.completionÔ  s;  € ð* "1×!4Ñ!4°[À%Ó!Hˆ	Ø)8×)<Ñ)<¸\È4Ó)Pˆ
à)ò 
Ô-B×-[Ñ-[Ø¤'×"6Ñ"6Ð7JÓ"Kô.
ˆð Ð"ÜÐDÀUÀGÈ?Ð[nÐZoÐpÓqÐqð ò wØ×"Ñ" =°%Ó8òwà×1Ñ1¸ÐSfÐouÐ1Óvð 	ð "×6Ñ6ØØ’M˜rØØØ+ØØ)ð 7ó 
ˆð #×3Ñ3ØØØØ+ØØ)ð 4ó 
ˆð #2×"CÑ"CØØØ+Ø)Øð #Dó #
ˆð Ð!Ø)�dÐ)˜jÐ)ˆDà$3×$@Ñ$@ØØ+ØØØØØ#Øð %Aó 	%
Ñ!ˆÐ!ð 	×ÑØØà'+Ø$Ø"ñð 	ô 	
ð ×ÑÐHÈ%ÔPØX\ˆK×*Ñ*Ð+TÑUà˜$ÑØ˜‰~Ø×=Ñ=ØØ$3Ø +ð >ó �ð
 ×7Ñ7ØØ%Ø%Ø#Ø(;Ø$3Ø#Ø +ØØ +Ø&,Ð&8¼ZÈÔP`Ô=a™FÐgkØ#1Ø'Ø$3Ø%5ð 8ó ð ð& ×,Ñ,Ø(;Ø$3Ø%Ø#ØØ#ØØ#1Ø +Ø#Ø%Ø$3Ø#1Ø%Ø&,Ð&8¼ZÈÔP`Ô=a™FÐgkØ'Ø%5Ø#1ð% -ó ð ð* �T‰>Ø×9Ñ9ØØ /Ø'ð :ó ˆDð
 ×8Ñ8¸DÑ@Ø&×EÑEØØ(;Ø +Ø%Ø#ØØ%5Ø%Ø!Ø'ð Fó ð ð *.×)<Ñ)<Ø /Ø!ØØØ!1Ø"ØØ!Ø'ØØ'Ø"(Ð"4¼ÀFÌKÔ9X™Ð^bØ-Ø#Ø /ð *=ó *Ñ&Ð˜wô" 'Ø"3ØØ$7Ø'Ø")ôð ð ˆ>¤¨F´KÔ!@Ü 1Ø$ n×&8Ñ&8¸ÀtÓ&LÐMô!Ñð !'Ðà×5Ñ5Ø/Ø+ØØØØ-ØØ)Ø#ð 6ó 

ˆð ×1Ñ1ØØ!Ø)Ø#ØØØØ+Ø)ØØð 2ó 
ð 	
rŠ   r?  c                 óÊ  — |�t        |t        «      st        d|j                  dd «      i«      }n|}d}|du rd}| j	                  ||||||||||	¬«
      }|du r;|j                  ||t        j                  «       |	|||
|d |¬«
      }t        ||¬«      }n"|j                  |j                  «       d|¬«      }|	j                  |dd	d
|i¬«       |t        |j                  «      fS )Nr"  TF)
r  ró   r¶   r£   rô   rö   r¤   r�   rõ   r·   ©
r  r'  r  r·   rü   r  r  r�   r  r  ©r  r  )Ústreaming_responseÚsync_streamr  r½   úfirst stream response receivedr9  ©r;  r  Úoriginal_responser<  )rÅ   rG   rH   r‡   r  r+  rÖ   r}   r-   Úget_model_response_iteratorÚ
iter_linesÚ	post_callr«   r£   )r  ró   r¶   r£   rô   rö   r?  r  r  r·   r  r�   r¤   r1  r  r  r  rõ   r  r  rA  s                        rˆ   rR  z!BaseLLMHTTPHandler.make_sync_call­  s?  € ð$ ˆ>¤¨F´KÔ!@Ü 1à  .×"4Ñ"4°\À4Ó"Hðó!Ñð !'ÐØˆØ˜$ÑØˆFà×5Ñ5Ø/Ø+ØØØØ-ØØ)ØØ#ð 6ó 
ˆð ˜$ÑØ3B×3UÑ3UØØ%Ü&×4Ñ4Ó6Ø'Ø*Ø!Ø /Ø-ØØ#ð 4Vó 4ˆNô )=ÈNÐfoÔ(pÑà /× KÑ KØ#+×#6Ñ#6Ó#8Ø Ø#ð !Ló !Ðð 	×ÑØØØ>Ø2°DÐ9ð	 	ô 	
ð !¤$ x×'7Ñ'7Ó"8Ð8Ð8rŠ   c              ƒ   óî   K  — |j                   du r#|j                  ||||||	||||¬«
      ƒ d {  –—† S | j                  ||||||	||||||
|||¬«      ƒ d {  –—† \  }}t        |||||¬«      }|S 7 ŒA7 Œ­w)NT)
r  r€   r·   r¶   r£   rô   r  r  r  rö   )r  r€   ró   r¶   r£   rô   r  r·   r¤   r1  r  r�   r  r  rö   r@  )rP  Úget_async_custom_stream_wrapperÚmake_async_call_stream_helperr{   )r  r  r  r¶   r€   r£   ró   r¤   r·   rô   r�   r  r1  r  r  rö   rA  rB  Ústreamwrappers                      rˆ   rO  z.BaseLLMHTTPHandler.acompletion_stream_functionø  sÒ   è ø€ ð$ ×4Ñ4¸Ñ<Ø(×HÑHØØ$7Ø'Ø!ØØØ!ØØ#Ø!1ð Ió ÷ ð ð 6:×5WÑ5WØØ 3Ø+ØØØØØ#ØØ#ØØ)Ø+ØØ-ð 6Xó 6
÷ 0
Ñ,ÐÐ,ô"  3Ø/ØØ 3Ø#Ø/ô 
ˆð ÐðKøð0
ús!   ‚-A5¯A1°'A5ÁA3ÁA5Á3A5c              ƒ   ó
  K  — |€3t        t        j                  |«      d|
j                  dd«      i¬«      }n|}d}|du rd}| j	                  |||||||	|
||¬«
      ƒ d{  –—† }|du r;|j                  ||t        j                  «       |||||
d|¬«
      }t        ||¬«      }n8|j                  |j                  «       d¬	«      }t        |t        «      r||_        |j                  |d
dd|i¬«       ||j                  fS 7 Œ ­w)zm
        Helper function for making an async call with stream.

        Handles fake stream as well.
        Nr"  ©r$  r%  TF)
rò   ró   r¶   r£   rô   rö   r¤   r�   rõ   r·   rU  rV  )rW  rX  r½   rY  r9  rZ  )rI   rÖ   r*  r‡   r  r+  r}   r-   r\  Úaiter_linesrÅ   r,   Úhttp_responser^  r£   )r  r  r€   ró   r¶   r£   rô   r  r·   r¤   r�   r  r1  r  r  rö   rò   rõ   r  r  rA  s                        rˆ   ra  z0BaseLLMHTTPHandler.make_async_call_stream_helper2  s^  è ø€ ð. ˆ>Ü!7Ü$×1Ñ1Ð2EÓFØ$ n×&8Ñ&8¸ÀtÓ&LÐMô"Ñð
 "(ÐØˆØ˜$ÑØˆFà $× <Ñ <Ø1Ø+ØØØØ-ØØ)ØØ#ð !=ó !
÷ 
ˆð ˜$ÑØ3B×3UÑ3UØØ%Ü&×4Ñ4Ó6Ø'Ø!Ø!Ø /Ø-ØØ#ð 4Vó 4ˆNô )=ÈNÐfoÔ(pÑà /× KÑ KØ#+×#7Ñ#7Ó#9Àuð !Ló !Ðô Ð+Ô-FÔGØ2:Ð!Ô/à×ÑØØØ>Ø2°DÐ9ð	 	ô 	
ð ! (×"2Ñ"2Ð2Ð2ðU
ús   ‚ADÁ DÁ!B!Dc                 ó|   — |du r$|j                  «       }|j                  dd«       |S |j                  du rd|d<   |S )z±
        Some providers like Bedrock invoke do not support the stream parameter in the request body, we only pass `stream` in the request body the provider supports it.
        Trõ   N)ÚcopyrD  Ú%supports_stream_param_in_request_body)r  rô   ró   r1  Únew_datas        rˆ   rN  z4BaseLLMHTTPHandler._add_stream_param_to_request_body€  sF   € ð ˜$Ñà"Ÿi™i›kˆHØ�L‰L˜ 4Ô(ØˆOØ×@Ñ@ÀDÑHØ!ˆD�‰NØˆrŠ   r;  Ú
aembeddingc                 óZ  — t        j                  |t        j                  |«      ¬«      }|€t	        d|› d�«      ‚|j                  dd «      }|j                  |
|xs i |g ||¬«      }|j                  ||
|||¬«      }|j                  ||||¬«      }|r|j                  |«       |j                  |||||
|¬«      \  }}|j                  ||
|||d	œ¬
«       |du r| j                  |||||||	||
|||||¬«      S |�t        |t        «      st        d|j!                  dd «      i¬«      }n|}	 |�|j#                  ||||¬«      }n(|j#                  ||t%        j&                  |«      |¬«      }|j-                  |||	||
|||¬«      S # t(        $ r}| j+                  ||¬«      ‚d }~ww xY w)Nr4  ú	Provider z does not support embeddingr3  ©r  r£   r  r  r  r�   ©r¶   r  r  r  r�   )r  r;  r  r£   ©r£   r  rü   r¶   r  r  r8  r:  T)rü   r¶   r£   r  r€   ró   r  r·   r  r¤   r  r  r�   Úsigned_bodyr"  rC  ©r¢   r£   rô   r¤   rý   ©r  r'  r  r·   r  rü   r  r�   )r~   Úget_provider_embedding_configrÖ   r*  rF  rD  rH  rI  Útransform_embedding_requestÚupdaterK  rL  rk  rÅ   rG   rH   r‡   r  r¥   r  r  r  Útransform_embedding_response)r  r  r;  r¤   r€   r·   r¶   r  r�   r  r  r  rk  r£   ró   Úembedding_extra_bodyrô   rq  r  r  rú   s                        rˆ   Ú	embeddingzBaseLLMHTTPHandler.embedding“  sp  € ô  "7×!TÑ!TØ¤'×"6Ñ"6Ð7JÓ"Kô"
ˆð Ð"Ü˜yÐ)<Ð(=Ð=XÐYÓZÐZØCR×CVÑCVÐWcÐeiÓCjÐà!×6Ñ6ØØ’M˜rØØØ+Ø)ð 7ó 
ˆð #×3Ñ3ØØØØ+Ø)ð 4ó 
ˆð &×AÑAØØØ+Øð	 Bó 
ˆñ  Ø�K‰KÐ,Ô-ð
  /×;Ñ;ØØ+ØØØØð  <ó  
Ñˆ�ð 	×ÑØØà'+Ø$Ø"ñð 	ô 	
ð ˜ÑØ—?‘?Ø!Ø!ØØØ$7Ø /Ø-Ø'ØØØØ /Ø-Ø'ð #ó ð ð" ˆ>¤¨F´KÔ!@Ü 1¸,È×HZÑHZÐ[gÐimÓHnÐ9oÔ pÑà &Ðð	ØÐ&Ø,×1Ñ1Ø Ø#Ø$Ø#ð	 2ó ‘ð -×1Ñ1Ø Ø#ÜŸ™ DÓ)Ø#ð	 2ó �ð ×;Ñ;ØØ!Ø)Ø#ØØØ+Ø)ð <ó 	
ð 		
øô ò 	Ø×$Ñ$ØØ /ð %ó ð ûð	ús   Ä0A F	 Æ		F*ÆF%Æ%F*rü   rq  c           
   ƒ   ó–  K  — |�t        |t        «      s3t        t        j                  |«      d|
j                  dd «      i¬«      }n|}	 |�|j                  ||||¬«      ƒ d {  –—† }n|j                  ||||¬«      ƒ d {  –—† }|j                  |||||||	|
¬«      S 7 Œ;7 Œ# t        $ r}| j                  ||¬«      ‚d }~ww xY w­w)Nr"  rd  rr  ©r¢   r£   r¥   r¤   rý   rs  )
rÅ   rF   rI   rÖ   r*  r‡   r  r  r  rw  )r  rü   r¶   r£   r  r€   ró   r  r·   r  r�   r  r¤   r  rq  rò   r  rú   s                     rˆ   rk  zBaseLLMHTTPHandler.aembedding  s  è ø€ ð" ˆ>¤¨FÔ4DÔ!EÜ!7Ü$×1Ñ1Ð2EÓFØ$ n×&8Ñ&8¸ÀtÓ&LÐMô"Ñð
 "(Ðð	KØÐ&Ø!3×!8Ñ!8Ø Ø#Ø$Ø#ð	 "9ó "÷ ‘ð "4×!8Ñ!8Ø Ø#Ø%Ø#ð	 "9ó "÷ �ð ×;Ñ;ØØ!Ø)Ø#ØØ%Ø+Ø)ð <ó 	
ð 		
ð!øðùô ò 	KØ×$Ñ$ q¸/Ð$ÓJÐJûð	KüsN   ‚AC	ÁB% Á%B!Á&B% ÂB#ÂB% ÂC	Â!B% Â#B% Â%	CÂ.CÃCÃC	Úoptional_rerank_paramsÚ	_is_asyncc                 ó  — |j                  |
|	xs i |||¬«      }	|j                  |||¬«      }|j                  |||	|¬«      }|j                  |j	                  dd«      |
|||	dœ¬«       |du r| j                  ||||||||	|
||¬	«      S |�t        |t        «      st        «       }n|}	 |j                  ||	t        j                  |«      |¬
«      }|j                  |||||
|¬«      S # t        $ r}| j                  ||¬«      ‚d }~ww xY w)N)r  r£   r  r  r�   )r¶   r  r  )r  r|  r£   r�   Úqueryr½   r8  r:  T)r  rü   r€   ró   r·   r  r¶   r£   r  r¤   r  rr  rý   ©r  r'  r  r·   r  rü   )rH  rI  Útransform_rerank_requestrL  r‡   ÚarerankrÅ   rG   rH   r  r¥   r  r  r  Útransform_rerank_response)r  r  r€   r·   ró   r|  r¤   r  r}  r£   r  r¶   r  r�   rô   r  r  rú   s                     rˆ   ÚrerankzBaseLLMHTTPHandler.rerankH  s�  € ð" "×6Ñ6ØØ’M˜rØØ2Ø)ð 7ó 
ˆð #×3Ñ3ØØØ2ð 4ó 
ˆð &×>Ñ>ØØ#9ØØ)ð	 ?ó 
ˆð 	×ÑØ(×,Ñ,¨W°bÓ9Øà'+Ø$Ø"ñð 	ô 	
ð ˜ÑØ—<‘<ØØ!Ø$7Ø /Ø'Ø-Ø!ØØØØð  ó ð ð ˆ>¤¨F´KÔ!@Ü 1Ó 3Ñà &Ðð	Ø/×4Ñ4ØØÜ—Z‘Z Ó%Øð	 5ó ˆHð ×8Ñ8ØØ!Ø)Ø#ØØð 9ó 
ð 	
øô ò 	Ø×$Ñ$ØØ /ð %ó ð ûð	ús   Â,(C+ Ã+	DÃ4DÄDc              ƒ   óP  K  — |�t        |t        «      s t        t        j                  |«      ¬«      }n|}	 |j                  ||t        j                  |«      |
|¬«      ƒ d {  –—† }|j                  |||||	|¬«      S 7 Œ# t        $ r}| j                  ||¬«      ‚d }~ww xY w­w)N©r$  )r¢   r£   rô   r¤   r·   rý   r€  )rÅ   rF   rI   rÖ   r*  r  r¥   r  r  r  rƒ  )r  r  rü   r€   ró   r·   r  r¶   r£   r  r¤   r  rò   r  rú   s                  rˆ   r‚  zBaseLLMHTTPHandler.arerank£  sÆ   è ø€ ð ˆ>¤¨FÔ4DÔ!EÜ!7ÄW×EYÑEYÐZmÓEnÔ!oÑà!'Ðð		KØ$6×$;Ñ$;ØØÜ—Z‘Z Ó-ØØ'ð %<ó %÷ ˆHð ×8Ñ8ØØ!Ø)Ø#ØØ%ð 9ó 
ð 	
ðùô ò 	KØ×$Ñ$ q¸/Ð$ÓJÐJûð	Küs:   ‚5B&¸,B Á$B Á%B Á)B&Â B Â	B#ÂBÂB#Â#B&Ú
audio_filec
                 óÂ  — ddl m}
 |	j                  ||xs i |g ||¬«      }|	j                  |||||¬«      }|	j	                  ||||¬«      }t        ||
«      s#t        d|	j                  j                  › d�«      ‚|j                  }|j                  }|j                  �|j                  |d<   |j                  |j                  d	d
«      ||xs i ||dœ¬«       ||||fS )z€
        Shared logic for preparing audio transcription requests.
        Returns: (headers, complete_url, data, files)
        r   )ÚAudioTranscriptionRequestDatarn  ro  )r  r‡  r  r�   rm  z* must return AudioTranscriptionRequestDataúContent-Typer  r½   r8  r:  )Ú8litellm.llms.base_llm.audio_transcription.transformationr‰  rH  rI  Ú%transform_audio_transcription_requestrÅ   rF  Ú	__class__r¦   rô   ÚfilesÚcontent_typerL  r‡   )r  r  r‡  r  r�   r·   r  r¶   r£   ró   r‰  Úcomplete_urlÚtransformed_resultrô   rŽ  s                  rˆ   Ú$_prepare_audio_transcription_requestz7BaseLLMHTTPHandler._prepare_audio_transcription_requestÉ  s,  € õ"	
ð "×6Ñ6ØØ’M˜rØØØ+Ø)ð 7ó 
ˆð .×>Ñ>ØØØØ+Ø)ð ?ó 
ˆð %4×$YÑ$YØØ!Ø+Ø)ð	 %Zó %
Ðô Ð,Ð.KÔLÜ˜y¨×)BÑ)B×)KÑ)KÐ(LÐLvÐwÓxÐxà(×-Ñ-ˆØ)×/Ñ/ˆØ×*Ñ*Ð6Ø&8×&EÑ&EˆG�NÑ#ð 	×ÑØ!×%Ñ% g¨rÓ2Øà'+¢z¨rØ(Ø"ñð 	ô 	
ð ˜ d¨EÐ1Ð1rŠ   r  c                 ó  — |j                  |¬«      }|j                  s|S |j                  d«      }	t        |	t        «      r|	t
        vr|S t        |j                  d«      |	¬«      }
|
�|
|_        d|v rt        |d«       |S )z<Shared logic for transforming audio transcription responses.)r'  Úresponse_formatÚwords)r•  r”  )	Ú&transform_audio_transcription_responseÚsupports_subtitle_synthesisr‡   rÅ   r©   r#   r$   ÚtextÚdelattr)r  ró   r  r  r  r·   r  r  ÚtransformedÚrequested_formatÚdocuments              rˆ   Ú'_transform_audio_transcription_responsez:BaseLLMHTTPHandler._transform_audio_transcription_response  s›   € ð -×SÑSØ!ð Tó 
ˆð ×:Ò:ØÐØ"1×"5Ñ"5Ð6GÓ"HÐÜÐ*¬CÔ0Ð4DÔLeÑ4eØÐÜ6Ø—/‘/ 'Ó*Ø,ô
ˆð ÐØ'ˆKÔØ�kÑ!Ü�K Ô)ØÐrŠ   Úmax_retriesÚatranscriptionc                 óÂ  — |€t        d|› d|› �«      ‚|du r | j                  |||||||||	|
|||||¬«      S | j                  ||||||	|
||¬«	      \  }}}}|�t        |t        «      s
t        «       }|€t        |t        «      r|nd }	 |j                  |||€|nd |||¬«      }| j                  |||||||	¬«      S # t        $ r}| j                  ||¬«      ‚d }~ww xY w)	Nú$No provider config found for model: r6  T)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  )rF  Úasync_audio_transcriptionsr’  rÅ   rG   rH   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Ž  Ú	json_datar  rú   s                          rˆ   Úaudio_transcriptionsz'BaseLLMHTTPHandler.audio_transcriptions*  sk  € ð& Ð"ÜÐCÀEÀ7È/ÐZmÐYnÐoÓpÐpà˜TÑ!Ø×2Ñ2ØØ%Ø /Ø-Ø-ØØ'Ø'ØØ!Ø$7ØØØ /Ø-ð 3ó ð ð0 ×5Ñ5ØØ!Ø+Ø)Ø#ØØØØ+ð 6ó 

ñ	
ØØØØð ˆ>¤¨F´KÔ!@Ü&Ó(ˆFà#( =´ZÀÄdÔ5K™4ÐQUˆ	ð
	KØ$Ÿk™kØ ØØ&Ð.‘T°DØØØð *ó ˆHð ×;Ñ;Ø+ØØØ)Ø#Ø+Øð <ó 
ð 	
øô ò 	KØ×$Ñ$ q¸/Ð$ÓJÐJûð	Kús   Â
B= Â=	CÃCÃCc              ƒ   óî  K  — |€t        d|› d|› �«      ‚| j                  ||||||	|
||¬«	      \  }}}}|�t        |t        «      s4t	        t        j                  |«      d|j                  dd «      i|¬«      }n|}|€t        |t        «      r|nd }	 |j                  |||€|nd |||¬«      ƒ d {  –—† }| j                  |||||||	¬«      S 7 Œ# t        $ r}| j                  ||¬«      ‚d }~ww xY w­w)	Nr¡  r6  r¢  r"  r#  r£  rý   r¤  )rF  r’  rÅ   rF   rI   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ú   s                          rˆ   r¥  z-BaseLLMHTTPHandler.async_audio_transcriptions€  s`  è ø€ ð$ Ð"ÜÐCÀEÀ7È/ÐZmÐYnÐoÓpÐpð ×5Ñ5ØØ!Ø+Ø)Ø#ØØØØ+ð 6ó 

ñ	
ØØØØð ˆ>¤¨FÔ4DÔ!EÜ!7Ü$×1Ñ1Ð2EÓFØ$ n×&8Ñ&8¸ÀtÓ&LÐMØ-ô"Ñð "(Ðà#( =´ZÀÄdÔ5K™4ÐQUˆ	ð
	KØ$6×$;Ñ$;Ø ØØ&Ð.‘T°DØØØð %<ó %÷ ˆHð ×;Ñ;Ø+ØØØ)Ø#Ø+Øð <ó 
ð 	
ðùô ò 	KØ×$Ñ$ q¸/Ð$ÓJÐJûð	Küs<   ‚BC5ÂC Â2CÂ3C Â7C5ÃC Ã	C2ÃC-Ã-C2Ã2C5rœ  c
                 óÂ  — ddl m}
 |j                  |||xs i ||	¬«      }|j                  ||||	¬«      }|j	                  ||||||¬«      }t        ||
«      s#t        d|j                  j                  › d�«      ‚t        |j                  t        «      s!t        dt        |j                  «      › �«      ‚|j                  }|j                  d	||||d
œ¬«       |||dfS )zp
        Shared logic for preparing OCR requests.
        Returns: (headers, complete_url, data, files)
        r   ©ÚOCRRequestData©r  r¶   r£   r  r�   ©r¶   r  r  r�   ©r  rœ  r  r£   r  r¶   rm  ú must return OCRRequestDataú(Expected dict data for OCR request, got úOCR document processingr8  r:  N)Ú(litellm.llms.base_llm.ocr.transformationr«  rH  rI  Útransform_ocr_requestrÅ   rF  r�  r¦   rô   r«   rá   rL  ©r  r  rœ  r  r·   r  r¶   r£   ró   r�   r«  r�  r‘  rô   s                 rˆ   Ú_prepare_ocr_requestz'BaseLLMHTTPHandler._prepare_ocr_requestÈ  s%  € õ  	Là!×6Ñ6ØØØ’M˜rØØ)ð 7ó 
ˆð .×>Ñ>ØØØ+Ø)ð	 ?ó 
ˆð %4×$IÑ$IØØØ+ØØØð %Jó %
Ðô Ð,¨nÔ=Ü˜y¨×)BÑ)B×)KÑ)KÐ(LÐLgÐhÓiÐiô Ð,×1Ñ1´4Ô8ÜÐGÌÐM_×MdÑMdÓHeÐGfÐgÓhÐhà(×-Ñ-ˆð 	×ÑØ+Øà'+Ø(Ø"ñð 	ô 	
ð ˜ d¨DÐ0Ð0rŠ   c
              ƒ   óÞ  K  — ddl m}
 |j                  |||xs i ||	¬«      }|j                  ||||	¬«      }|j	                  ||||||¬«      ƒ d{  –—† }t        ||
«      s#t        d|j                  j                  › d�«      ‚t        |j                  t        «      s!t        d	t        |j                  «      › �«      ‚|j                  }|j                  d
||||dœ¬«       |||dfS 7 Œ˜­w)z—
        Async version of _prepare_ocr_request for providers that need async transforms.
        Returns: (headers, complete_url, data, files)
        r   rª  r¬  r­  r®  Nrm  r¯  r°  r±  r8  r:  )r²  r«  rH  rI  Úasync_transform_ocr_requestrÅ   rF  r�  r¦   rô   r«   rá   rL  r´  s                 rˆ   Ú_async_prepare_ocr_requestz-BaseLLMHTTPHandler._async_prepare_ocr_request
  s3  è ø€ õ  	Là!×6Ñ6ØØØ’M˜rØØ)ð 7ó 
ˆð .×>Ñ>ØØØ+Ø)ð	 ?ó 
ˆð +:×*UÑ*UØØØ+ØØØð +Vó +
÷ %
Ðô Ð,¨nÔ=Ü˜y¨×)BÑ)B×)KÑ)KÐ(LÐLgÐhÓiÐiô Ð,×1Ñ1´4Ô8ÜÐGÌÐM_×MdÑMdÓHeÐGfÐgÓhÐhà(×-Ñ-ˆð 	×ÑØ+Øà'+Ø(Ø"ñð 	ô 	
ð ˜ d¨DÐ0Ð0ð=%
ús   ‚AC-ÁC+ÁBC-c                 ó,   — |j                  ||||¬«      S )z,Shared logic for transforming OCR responses.©r  r'  r·   r  )Útransform_ocr_response)r  ró   r  r  r·   r  s         rˆ   Ú_transform_ocr_responsez*BaseLLMHTTPHandler._transform_ocr_responseL  s(   € ð ×5Ñ5ØØ!Ø#Ø+ð	 6ó 
ð 	
rŠ   Úaocrc                 óˆ  — |€t        d|› d|› �«      ‚|€i }|
du r| j                  |||||||||	|||¬«      S | j                  |||||||||¬«	      \  }}}}|	�t        |	t        «      s
t        «       }		 |	j                  ||||¬«      }| j                  |||||¬	«      S # t        $ r}| j                  ||¬«      ‚d}~ww xY w)
z#
        Sync OCR handler.
        Nr¡  r6  T)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  )
rF  Ú	async_ocrrµ  rÅ   rG   rH   r  r  r  r¼  )r  r  rœ  r  r¤   r·   r  r¶   r€   r  r½  r£   ró   r�   r�  rô   rŽ  r  rú   s                      rˆ   ÚocrzBaseLLMHTTPHandler.ocr\  s=  € ð& Ð"ÜÐCÀEÀ7È/ÐZmÐYnÐoÓpÐpàÐ!ØˆNà�4‰<Ø—>‘>ØØ!Ø /ØØ'ØØ!Ø$7ØØØ /Ø-ð "ó ð ð  .2×-FÑ-FØØØ+Ø#ØØØØ+Ø)ð .Gó 
.
Ñ*ˆ�˜t Uð ˆ>¤¨F´KÔ!@Ü&Ó(ˆFð		Kà$Ÿk™kØ ØØØð	 *ó ˆHð ×+Ñ+Ø+ØØØ#Ø+ð ,ó 
ð 	
øô ò 	KØ×$Ñ$ q¸/Ð$ÓJÐJûð	Kús   Á5B  Â 	CÂ)B<Â<Cc              ƒ   ó¸  K  — |€t        d|› d|› �«      ‚|€i }| j                  |||||||
||¬«	      ƒ d{  –—† \  }
}}}|	�t        |	t        «      s t	        t        j                  |«      ¬«      }n|	}	 |j                  ||
||¬«      ƒ d{  –—† }|j                  ||||¬«      ƒ d{  –—† S 7 Œx7 Œ## t        $ r}| j                  ||¬«      ‚d}~ww xY w7 Œ,­w)	z$
        Async OCR handler.
        Nr¡  r6  r¿  r†  r{  rý   rº  )rF  r¸  rÅ   rF   rI   rÖ   r*  r  r  r  Úasync_transform_ocr_response)r  r  rœ  r  r¤   r·   r  r¶   r€   r  r£   ró   r�   r�  rô   rŽ  rò   r  rú   s                      rˆ   rÀ  zBaseLLMHTTPHandler.async_ocr¨  s:  è ø€ ð$ Ð"ÜÐCÀEÀ7È/ÐZmÐYnÐoÓpÐpàÐ!ØˆNð 48×3RÑ3RØØØ+Ø#ØØØØ+Ø)ð 4Só 
4
÷ 
.
Ñ*ˆ�˜t Uð ˆ>¤¨FÔ4DÔ!EÜ!7Ü$×1Ñ1Ð2EÓFô"Ñð "(Ðð		Kà$6×$;Ñ$;Ø ØØØð	 %<ó %÷ ˆHð %×AÑAØØ!Ø#Ø+ð	 Bó 
÷ 
ð 	
ð?
.
øð*ùô ò 	KØ×$Ñ$ q¸/Ð$ÓJÐJûð	Kúð
úsQ   ‚5C·B0¸=CÁ6B4 ÂB2ÂB4 ÂCÂ+CÂ,CÂ2B4 Â4	CÂ=CÃCÃCr  Úasearchc                 ó¨  — |€t        d|› �«      ‚|	du r| j                  |||||||||
|¬«
      S |j                  |||
xs i ¬«      }
|j                  ||¬«      }|j	                  ||||¬«      }|j                  |
||||¬«      \  }}|j                  t        |t        «      r|n
t        |«      ||||
d	œ¬
«       |�t        |t        «      s
t        «       }|j                  «       }	 |dk(  r|j                  ||¬«      }n|j                  ||||€|nd|¬«      }|j!                  |||¬«      S # t        $ r}| j                  ||¬«      ‚d}~ww xY w)z&
        Sync Search handler.
        Nú'No provider config found for provider: T)
r  r  r¤   r·   r  r¶   r€   r  r£   ró   ©r  r¶   r£   )r  r  ©r¶   r  rô   r  ©r£   r  rü   r¶   r  r8  r:  ÚGET©r¢   r£   ©r¢   r£   rô   r¥   r¤   rý   ©r'  r·   r  )rF  Úasync_searchrH  Útransform_search_requestrI  rK  rL  rÅ   r©   rG   rH   Úget_http_methodr‡   r  r  r  Útransform_search_response)r  r  r  r¤   r·   r  r¶   r€   r  rÄ  r£   ró   rô   r�  Úsigned_headersrö   Úhttp_methodr  rú   s                      rˆ   ÚsearchzBaseLLMHTTPHandler.searchç  sî  € ð" Ð"ÜÐFÐGZÐF[Ð\Ó]Ð]à�d‰?Ø×$Ñ$ØØ /ØØ'ØØ!Ø$7ØØØ /ð %ó ð ð "×6Ñ6ØØØ’M˜rð 7ó 
ˆð &×>Ñ>ØØ+ð ?ó 
ˆð .×>Ñ>ØØ+ØØð	 ?ó 
ˆð ,;×+GÑ+GØØ+ØØ!Øð ,Hó ,
Ñ(ˆÐ(ð 	×ÑÜ% e¬SÔ1‘%´s¸5³zØà'+Ø(Ø"ñð 	ô 	
ð ˆ>¤¨F´KÔ!@Ü&Ó(ˆFð -×<Ñ<Ó>ˆð	KØ˜eÒ#ð "Ÿ:™:Ø$Ø*ð &ó ‘ð "Ÿ;™;Ø$Ø*Ø)Ø!1Ð!9™¸tØ#ð 'ó �ð ×8Ñ8Ø!Ø#Ø+ð 9ó 
ð 	
øô ò 	KØ×$Ñ$ q¸/Ð$ÓJÐJûð	Kús   Ã)3D0 Ä0	EÄ9EÅEc              ƒ   óî  K  — |
€t        d|› �«      ‚|
j                  |||	xs i ¬«      }	|
j                  |||||	xs i ¬«      }|
j                  ||||¬«      }|
j	                  |	||||¬«      \  }}|j                  t        |t        «      r|n
t        |«      ||||	dœ¬«       |�t        |t        «      sd	d
l	m
} t        |j                  ¬«      }n|}|
j                  «       j                  «       }	 |dk(  r|j                  ||¬«      ƒ d{  –—† }n"|j!                  ||||€|nd|¬«      ƒ d{  –—† }|
j'                  |||¬«      S 7 Œ;7 Œ# t"        $ r}| j%                  ||
¬«      ‚d}~ww xY w­w)z'
        Async Search handler.
        NrÆ  rÇ  )r  r  r  r¶   r£   rÈ  rÉ  r8  r:  r   )ÚhttpxSpecialProviderr†  rÊ  rË  rÌ  rý   rÍ  )rF  rH  rÏ  rI  rK  rL  rÅ   r©   rF   Úlitellm.types.llms.custom_httprÖ  rI   ÚSearchrÐ  Úupperr‡   r  r  r  rÑ  )r  r  r  r¤   r·   r  r¶   r€   r  r£   ró   rô   r�  rÒ  rö   rÖ  rò   rÓ  r  rú   s                       rˆ   rÎ  zBaseLLMHTTPHandler.async_searchQ  s÷  è ø€ ð  Ð"ÜÐFÐGZÐF[Ð\Ó]Ð]ð "×6Ñ6ØØØ’M˜rð 7ó 
ˆð &×>Ñ>ØØ+ØØØ’M˜rð ?ó 
ˆð .×>Ñ>ØØ+ØØð	 ?ó 
ˆð ,;×+GÑ+GØØ+ØØ!Øð ,Hó ,
Ñ(ˆÐ(ð 	×ÑÜ% e¬SÔ1‘%´s¸5³zØà'+Ø(Ø"ñð 	ô 	
ð ˆ>¤¨FÔ4DÔ!EåKä!7ÐEY×E`ÑE`Ô!aÑà!'Ðð -×<Ñ<Ó>×DÑDÓFˆð	KØ˜eÒ#ð "4×!7Ñ!7Ø$Ø*ð "8ó "÷ ‘ð "4×!8Ñ!8Ø$Ø*Ø)Ø!1Ð!9™¸tØ#ð "9ó "÷ �ð ×8Ñ8Ø!Ø#Ø+ð 9ó 
ð 	
ð!øðùô ò 	KØ×$Ñ$ q¸/Ð$ÓJÐJûð	KüsN   ‚C3E5Ã6E ÄEÄ"E Ä4EÄ5E Ä9E5ÅE ÅE Å	E2ÅE-Å-E2Å2E5Úrequest_urlÚrequest_bodyc              ƒ   óâ  K  — t        |j                  d«      }t        |	«      }t        |	«      }t        |«      D ]P  }	 |j	                  |||xs t        j                  |«      |xs d||¬«      ƒ d {  –—† }|j                  «        |c S  t'        d
«      ‚7 Œ$# t        j                  $ r }|dz   |k(  }|j                  ||¬«      }|rk|sit        j                  d|dz   |«       |j                  ||¬«       |j                  |||||
|d|¬«      \  }}|j                  j!                  |«       Y d }~Œû| j#                  ||¬	«      ‚d }~wt$        $ r}| j#                  ||¬	«      ‚d }~ww xY w­w)Nr‹   F)r¢   r£   rô   rõ   r·   r¤   rù   zkAnthropic /v1/messages: invalid thinking signature; stripping thinking blocks and retrying (attempt %s/%s).é   rû   r7  rý   zEunreachable: anthropic messages HTTP retry loop exited without return)r  Ú*max_retry_on_anthropic_messages_http_errorr«   r  r  r¥   r  Úraise_for_statusr­   r	  Ú-should_retry_anthropic_messages_on_http_errorr   r)  Ú2transform_anthropic_messages_request_on_http_errorrK  rM  rv  r  r  ÚRuntimeError)r  rò   rÚ  r£   rö   rÛ  rõ   r·   ró   r�   r  r  r¤   Úmax_attemptsÚlitellm_params_dictÚoptional_params_dictÚattempt_idxr  rú   Úhit_max_attemptr  s                        rˆ   Ú4_async_post_anthropic_messages_with_http_error_retryzGBaseLLMHTTPHandler._async_post_anthropic_messages_with_http_error_retry´  sµ  è ø€ ô" " /×"\Ñ"\Ð^_Ó`ˆÜ%)¨.Ó%9ÐÜ&*¨>Ó&:ÐÜ  Ó.ò '	OˆKð&OØ!3×!8Ñ!8Ø#Ø#Ø)ÒE¬T¯Z©Z¸Ó-EØ!š? UØ +Ø#ð "9ó "÷ �ð ×)Ñ)Ô+Ø’ð'	OôR ÐbÓcÐcðOùô ×(Ñ(ò OØ"-°¡/°\Ñ"A�Ø.×\Ñ\ØÐ(;ð  ]ó  �ñ  ©Ü"×(Ñ(ðRà# a™Ø$ô	ð $×VÑVÐYZÐiuÐVÔvØ0?×0LÑ0LØ 'Ø(<Ø%1Ø!,Ø 'Ø%Ø$)Ø#ð 1Mó 	1Ñ-�GÐ-ð  ×2Ñ2×9Ñ9¸,ÔGÜØ×(Ñ(¨1¸oÐ(ÓNÐNûÜò OØ×(Ñ(¨1¸oÐ(ÓNÐNûðOüsS   ‚;E/¾5BÁ3BÁ4BÂ	E/ÂBÂE,Â-BEÄ0E/Ä5EÅE,ÅE'Å'E,Å,E/c                 óè   — ddl m} ddlm} ddlm} |r| j                  d«      nd }|�|n| j                  d«      }| j                  d«      } |«       }	|€|€|	€y |j                  |d|i||	|¬«      S )	Nr   )ÚCompletionTimeout)Úget_configured_request_timeout)Úsupports_httpx_timeoutÚstream_timeoutr¤   Úrequest_timeout)Úglobal_timeoutrì  )Ú-litellm.litellm_core_utils.completion_timeoutrê  Ú3litellm.litellm_core_utils.request_timeout_resolverrë  Úlitellm.utilsrì  r‡   Úresolve)
r�   rõ   r€   rê  rë  rì  rí  Úmodel_timeoutrî  rï  s
             rˆ   Ú#_resolve_anthropic_messages_timeoutz6BaseLLMHTTPHandler._resolve_anthropic_messages_timeoutó  s™   € õ 	Tõ	
õ 	9áHN × 2Ñ 2Ð3CÔ DÐTXˆØ1?Ð1K™~ÐQ_×QcÑQcÐdmÓQnˆØ!/×!3Ñ!3Ð4EÓ!FˆÙ >Ó @ˆØÐ  _Ð%<ÀÐAWØØ ×(Ñ(ØØ Ð0ØØ)Ø#9ð )ó 
ð 	
rŠ   Ú"anthropic_messages_provider_configÚ*anthropic_messages_optional_request_paramsÚextra_headersr(  c              ƒ   ó	  K  — ddl m} |�t        |t        «      s%t	        t
        j                  j                  ¬«      }n|}|xs i }t        t
        j                  j                  j                  t        t
        j                  j                  j                     z  d z  |j                  dd «      «      }|j                  ||¬«      }|j                  dd «      }|j                  dd «      }i }|r|j                  |«       |r|j                  |«       |r|j                  |«       |j!                  |xs i |||t#        |«      |
|¬«      \  }}|j%                  «       rt'        ||¬	«      }dd
lm} |j-                  t/        t#        |«      «      «      }|rt/        d|i«      n
t/        i «      }|j1                  ||t#        |«      d i |j                  d«      dœ|¥|¥|¬«       |j                  d«      xs g }|rddlm} |D ]  } |||«      }Œ |j7                  |||||¬«      }||_        |j:                  j                  |«       |j=                  ||
|t#        |«      t#        |«      |¬«      }|j?                  |t#        |«      |||
|d|¬«      \  }}tA        jB                  |«      }|jE                  d|dœgd|tG        |«      |dœ¬«       | jI                  ||| jK                  |«      ||
|||| jM                  ||xs d|¬«      ¬«	      ƒ d {  –—† } | �5|r| jO                  | «      S | jQ                  | |||||||
|¬«	      ƒ d {  –—† S | jS                  ||||�|n|||xs d||||
|| jM                  ||xs d|¬«      ¬«      ƒ d {  –—† }!|!|j:                  d<   |r¢ddl*m+}"m,}# |j[                  ||!||¬ «      }$ |#|!j\                  «      }%| jK                  |«      s
 |"|$|%¬!«      S dd"l/m0}& | jc                  ||j                  d#«      ¬$«      }' |&|$| |||||||
ri |¥d%|
i¥n|te        |'«      |'¬&«      }( |"|(|%¬!«      S |jg                  ||!|¬'«      }(| jQ                  |(|||||||
|¬«	      ƒ d {  –—† S 7 �Œh7 �Œ47 Œó7 Œ­w)(Nr   )ÚProviderSpecificHeaderUtilsr†  Úprovider_specific_header)rû  r€   r£   rø  )r£   r  r  r  r�   r  r¶   )r£   r5  )Ú
VertexBaseÚvertex_locationr»   )Úpreset_cache_keyÚstream_responser»   )r(  r  r  r�   r€   Úadditional_drop_params)Údelete_nested_value)r  r  r÷  r�   r£   )r¶   r  r  r  r�   rõ   Fr7  Úuser©Úroler´   r½   r8  r:  )r�   rõ   r€   )	r€   r�   Úhas_agentic_hookr  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¤   Úhttpx_response)r•   Ú'anthropic_messages_stream_hidden_params)r  r  rÛ  Úlitellm_logging_obj©rA  Úhidden_params)Ú!AgenticAnthropicStreamingIteratorÚtools)r·   r  r  )rA  Úhttp_handlerr  r  rö  r÷  r·   r€   r(  Ú	hold_backÚserver_fulfilled_tool_names©r  r'  r·   )4Ú8litellm.litellm_core_utils.get_provider_specific_headersrú  rÅ   rF   rI   rÖ   r*  Ú	ANTHROPICr   ÚtypesÚutilsÚProviderSpecificHeaderr   r‡   Úget_provider_specific_headersrv  Ú'validate_anthropic_messages_environmentr«   Ú$should_filter_anthropic_beta_headersr   Ú&litellm.llms.vertex_ai.vertex_llm_baserü  Úexplicit_vertex_ai_locationr
   Úupdate_from_kwargsÚ0litellm.litellm_core_utils.dot_notation_indexingr  Ú$transform_anthropic_messages_requestrõ   rM  rI  rK  r¥   r  rL  r©   Ú_maybe_rust_anthropic_messagesÚ_has_agentic_completion_hookrõ  Ú$_rust_anthropic_messages_fake_streamÚ%_finalize_anthropic_messages_responserè  ÚLlitellm.llms.anthropic.experimental_pass_through.messages.streaming_iteratorr•   r  Ú%get_async_streaming_response_iteratorr£   ÚTlitellm.llms.anthropic.experimental_pass_through.messages.agentic_streaming_iteratorr  Ú"_server_fulfilled_tools_in_requestÚboolÚ%transform_anthropic_messages_response))r  r  r  rö  r÷  r€   r�   r·   r  rø  r  r¶   rõ   r(  rú  rò   rû  Úprovider_specific_headersÚforwarded_headersÚextra_headers_from_kwargsÚmerged_headersr£   rü  Úexplicit_vertex_locationÚvertex_location_paramsr   r  ÚpathrÛ  rÚ  rö   Úrequest_body_jsonÚrust_messages_responser  r•   r  rA  Ústream_hidden_paramsr  Úheld_back_tool_namesr-  s)                                            rˆ   Ú async_anthropic_messages_handlerz3BaseLLMHTTPHandler.async_anthropic_messages_handler  sä  è ø€ õ 	
ð ˆ>¤¨FÔ4DÔ!EÜ!7ÄW×EYÑEY×EcÑEcÔ!dÑà!'Ðð ’˜2ˆÜ*.Ü�M‰M×Ñ×6Ñ6¼Ä'Ç-Á-×BUÑBU×BlÑBlÑ9mÑmÐptÑtØ�J‰JÐ1°4Ó8ó+
Ð ð ,G×+dÑ+dØ%=Ø 3ð ,eó ,
Ð!ð $*§:¡:¨i¸Ó#>Ðà+1¯:©:°oÀtÓ+LÐ!à "ˆÙØ×!Ñ!Ð"3Ô4Ù$Ø×!Ñ!Ð";Ô<Ù$Ø×!Ñ!Ð";Ô<ð /×VÑVØ"Ò( bØØØFÜ Ó/ØØð Wó 
ñ	
ØØð .×RÑRÔTÜ7ÀÐReÔfˆGåEà*4×*PÑ*PÔQaÔbfÐguÓbvÓQwÓ*xÐ ñ (ô Ð/Ð1IÐJÔKä! "Ó%ð 	ð
 	×&Ñ&ØØÜ Ð!KÓLà$(Ø#%Ø$Ÿj™j¨Ó6ñð )ð	ð
 =ðð !4ð 	'ô 	
ð 4B×3EÑ3EÐF^Ó3_Ò3eÐceÐÙ!Ý\à.ò �Ù=PØ>Àó>Ñ:ðð A×eÑeØØØ7aØ)Øð fó 
ˆð $ˆÔØ×&Ñ&×-Ñ-¨lÔ;ð @×PÑPØØØÜ Øóô   Ó/Øð Qó 	
ˆð %G×$SÑ$SØÜ  Ó0Ø%Ø ØØØØð %Tó 	%
Ñ!ˆÐ!ô& $(§:¡:¨lÓ#;Ðà×ÑØ"Ð/@ÑAÐBØà'3Ü Ó,Ø"ñð 	ô 	
ð /3×.QÑ.QØ 3Ø)Ø!×>Ñ>¸{ÓKØØØØØ%Ø×<Ñ<Ø-Ø’ Ø$7ð =ó ð /Ró /
÷ )
Ðð "Ð-ÙØ×@Ñ@ÐAWÓXÐXØ×CÑCØ!7ØØ!Ø3UØ;eØ'Ø$7ØØð Dó 
÷ 
ð 
ð !%× YÑ YØ1Ø#ØØ2BÐ2NÑ.ÐTeØ%Ø’?˜UØ#Ø>Ø)ØØØ×<Ñ<Ø-Ø’ Ø$7ð =ó ð !Zó !
÷ 
ˆð( <Dˆ×&Ñ&Ð'7Ñ8ñ ÷ð
 (J×'oÑ'oØØ'Ø)Ø$/ð	 (pó (Ðñ +RÐRZ×RbÑRbÓ*cÐ à×4Ñ4°[ÔAñ :Ø&7Ø"6ôð õ
ð +/×*QÑ*QØ'Ø@×DÑDÀWÓMð +Ró +Ð ñ  AØ"3Ø!ØØ!Ø3UØ;eØ'Ø$7Ù9@Ð5˜&Ð5 )¨WÒ5ÀfÜÐ3Ó4Ø,@ô Ðñ 6Ø"2Ø2ôð ð
  B×gÑgØØ%Ø'ð  hó  Ðð ×?Ñ?Ø-ØØØ/QØ7aØ#Ø 3ØØð @ó 

÷ 

ð 
	
ð])
ùð$
ùð
øð`

úsJ   ‚LRÌQ<Ì6RÍQ?ÍARÎRÎC(RÑ7RÑ8RÑ?RÒRÒRr-  c       	      ƒ   ó¤   K  — |ri |	¥d|i¥n|	}
| j                  ||||||d||
¬«	      ƒ d {  –—† }| j                  |�||d«      S ||d«      S 7 Œ!­w)Nr  F)	r  r  r  rö  r÷  r·   rõ   r€   r(  Úanthropic_messages)Ú_call_agentic_completion_hooksÚ_maybe_wrap_in_fake_stream)r  r-  r  r  rö  r÷  r·   r€   r  r(  Úkwargs_for_agenticr.  s               rˆ   r!  z8BaseLLMHTTPHandler._finalize_anthropic_messages_response	  s“   è ø€ ñ  GNÐ$B vÐ$B¨y¸'Ò$BÐSYÐà&*×&IÑ&IØ%ØØØ/QØ7aØ#ØØ 3Ø%ð 'Jó 
'
÷ 
!
ˆð ×.Ñ.Ø,Ð8ˆNØØ ó
ð 	
Ø>NØØ ó
ð 	
ð
!
ús   ‚*A¬A­"Ac                  ój   — t        j                  dd«      j                  «       j                  «       dv S )NÚLITELLM_RUSTr½   >   Ú1ÚonÚyesÚtrue)ÚosÚgetenvÚstripÚlowerr°   rŠ   rˆ   Ú_rust_env_enabledz$BaseLLMHTTPHandler._rust_env_enabled>	  s+   € ä�y‰y˜¨Ó,×2Ñ2Ó4×:Ñ:Ó<Ð@ZÐZÐZrŠ   r  c        	   	   ƒ   óæ  K  — | dvry |j                  d«      durt        j                  «       sy |ry ddlm}	 |j                  «       D �
�ci c]  \  }
}|
dk7  sŒ|
|“Œ }}
}	 |	j                  ||||| ||¬«      ƒ d {  –—† }|€y t        t        t        |«      «      }d	d
dii|d<   |S c c}}
w 7 Œ1# t        $ r3}t        j                  dt        |«      j                  «       Y d }~y d }~ww xY w­w)N)Úazure_aiÚ	anthropicr…   Tr   ©r  rõ   )r  Úbodyr  r¶   r€   rø  r¤   zERust Anthropic messages bridge raised %s; falling back to Python pathrÁ   úx-litellm-rustr>  Ú_hidden_params)r‡   rñ   rC  Úlitellm.rust_bridger  ÚitemsÚ	amessagesr  r   r)  rá   r¦   r   rZ   r«   )r€   r�   r  r  r  r¶   r£   rÛ  r¤   Úrust_messages_bridgeÚkeyÚvalueÚupstream_bodyÚrust_responseÚ
rust_errorÚresponse_objs                   rˆ   r  z1BaseLLMHTTPHandler._maybe_rust_anthropic_messagesB	  s  è ø€ ð Ð&?Ñ?ØØ×Ñ˜fÓ%¨TÑ1Ô:L×:^Ñ:^Ô:`ØÙØåHà=I×=OÑ=OÓ=Q×e©z¨s°EÐUXÐ\dÓUd  U¡
ÐeˆÑeð	Ø)=×)GÑ)GØØ"ØØ!Ø$7Ø%Øð *Hó *÷ $ˆMð Ð Øä"Ô#<¼dÀ=Ó>QÓRˆØ*>ÐAQÐSYÐ@ZÐ)[ˆÐ%Ñ&ØÐùó-  fð$ùô ò 	Ü× Ñ ØWÜ�ZÓ ×)Ñ)ôô ûð	üsT   ‚A
C1ÁB*ÁB*ÁC1Á#B2 Á>B0Á?B2 Â-C1Â0B2 Â2	C.Â;)C)Ã$C1Ã)C.Ã.C1rR  r•   c                 ó„   — ddl m} ddlm}m} t        t        t            || ¬«      «      } |ddi¬«      } |||¬«      S )	Nr   r“   )Ú#AnthropicMessagesStreamHiddenParamsr•   ©r  rI  r>  )rÁ   r	  )ÚNlitellm.llms.anthropic.experimental_pass_through.messages.fake_stream_iteratorr”   r"  rV  r•   r   r   rµ   )rR  r”   rV  r•   rA  r
  s         rˆ   r   z7BaseLLMHTTPHandler._rust_anthropic_messages_fake_streamp	  sK   € õ	
÷	
ô
 !¤¬uÑ!5Ñ7ZÐdqÔ7rÓsÐÙBÐWgÐioÐVpÔqˆÙ1Ø/Ø'ô
ð 	
rŠ   c                 óz   — |r/| j                  ||||t        |	t        «      r|	nd||||
|||¬«      S t        d«      ‚)z9
        LLM HTTP Handler for Anthropic Messages
        N)r  r  rö  r÷  r  r€   r�   r·   r  r¶   rõ   r(  z<anthropic_messages_handler is not implemented for sync calls)r3  rÅ   rF   rF  )r  r  r  rö  r÷  r€   r}  r�   r·   r  r  r¶   rõ   r(  s                 rˆ   Úanthropic_messages_handlerz-BaseLLMHTTPHandler.anthropic_messages_handlerƒ	  s]   € ñ& à×8Ñ8ØØ!Ø3UØ;eÜ!+¨FÔ4DÔ!E‘vÈ4Ø$7Ø-Ø'ØØ!ØØð 9ó ð ô ÐWÓXÐXrŠ   Ú$response_api_optional_request_paramsc                óR  — t        |«      s|||||fS t        t        i t        |«      ¥|¥|||dœ¥t        j
                  j                  «      }|€|||||fS t        «       }i |¥|j                  «       D �	�
ci c]  \  }	}
|	|v sŒ|	|
“Œ c}
}	¥}t        di i t        |«      ¥|j                  «       D �	�
ci c]  \  }	}
|	|vr|	dvr|	|
“Œ c}
}	¥¤Ž}d|v rt        |d   «      n|t        t        t        z  d|v r|d   n|«      d|v rt        |d   «      ||fS |||fS c c}
}	w c c}
}	w )N)r  r;  r€   >   r;  r  r€   r  r;  r€   r°   )rå   r"   r   r«   rj   Ú	responsesrP  rÏ   rL  ri   r©   r   rc   )r  r  r;  r€   r[  r�   r·   Úmodified_kwargsÚoptional_param_namesrO  rP  Úupdated_response_paramsÚupdated_litellm_paramss                rˆ   Ú,_run_sync_responses_pre_call_deployment_hookz?BaseLLMHTTPHandler._run_sync_responses_pre_call_deployment_hook¨	  sÁ  € ô  -¨[Ô9àØØ#Ø4Øðð ô "4Ü*ðÜ�~Ó&ðà6ðð ØØ':òô ×Ñ×%Ñ%ó
"
ˆð Ð"àØØ#Ø4Øðð ô 'RÓ&SÐð*
Ø2ð*
à,;×,AÑ,AÓ,C×c™j˜c 5ÀsÐNbÒGbˆs�E‰zÓcð*
Ðô )=ñ 	)
ðÜ�~Ó&ðð '6×&;Ñ&;Ó&=÷á"˜˜UØÐ"6Ñ6¸3ÐFoÑ;oð ˜‘Jóðñ	)
Ðð .5¸Ñ-GŒC� Ñ(Ô)ÈUÜÜÔ(Ñ(Ø,3°Ñ,F� Ò(ÈEóð )¨OÑ;ô �OÐ$9Ñ:Ó;ð $Ø"ð
ð 	
ð )à#Ø"ð
ð 	
ùó dùó
s   Á8DÂDÂ5D#Úresponses_api_provider_configr3  Úlitellm_metadatac                 óª  — |r1| j                  |||||||||	|
t        |t        «      r|nd|||¬«      S | j                  ||||||¬«      \  }}}}}|�t        |t        «      st        d|j                  dd«      i¬«      }n|}|j                  |j                  di «      xs i ||¬«      }|r|j                  |«       |j                  dd	«      }|j                  |j                  t        |«      ¬
«      }|j                  |||||¬«      }t        j                  |«      }|	r|j                  |	«       t        |xs |j                  d«      «      }d|i}	 |j                  |«       t        |«      |d<   t        |«      }|r|du r| j#                  |||¬«      \  }}|j%                  |t        |«      |||j&                  |||¬«      \  }}|�d|ind|i}|j)                  |d|||dœ¬«       	 |rŽ |j*                  d!|||
xs t-        |j                  dd«      «      |dœ|¤Ž}|du r+t/        |||||||t0        j2                  j4                  ¬«      S t7        |||||||t0        j2                  j4                  ¬«      S  |j*                  d!|||
xs t-        |j                  dd«      «      dœ|¤Ž}	 |j;                  |||¬«      }| j=                  |«      rEt?        | j@                  ||t        |tB        «      r|nd|dœg|||d	|t        |«      d¬ «      }|�|S |S |S # t         $ r Y �ŒÄw xY w# t         $ r}| j9                  ||¬«      ‚d}~ww xY w)"a„  
        Handles responses API requests.
        When _is_async=True, returns a coroutine instead of making the call directly.

        Keeps the pre-transform request context for streaming so post-call hooks/metadata
        (added for Responses API parity with chat) receive the original params instead of
        the provider-shaped body that caused them to be skipped before.
        N)r  r;  rc  r[  r€   r�   r·   rø  r3  r¤   r  r1  rd  r   )r  r;  r€   r[  r�   r·   r"  rC  rø  ©r£   r  r�   rõ   F©r¶   r�   ©r  r;  r[  r�   r£   r;  r�   T©rõ   rô   r1  ©r£   r  rü   r¶   r  r  rõ   r1  rô   r¥   r½   r8  r:  r¤   r   ©r¢   r£   r¤   rõ   ©r  r  r·   rc  rd  r€   rü   Ú	call_type©r¢   r£   r¤   rý   r  r  r  r]  ©
r  r  r  rö  r÷  r·   rõ   r€   r(  Úapi_surfacer°   )"Úasync_response_api_handlerrÅ   rF   rb  rG   rH   r‡   rH  rv  rI  r¶   r«   Útransform_responses_api_requestr=   Ú$normalize_responses_api_request_dictr&  r  Ú_prepare_fake_stream_requestrK  r  rL  r  r¬   rK   rj   r]  rP  rO   r  Útransform_response_api_responser  r"   r6  rÕ   )r  r  r;  rc  r[  r€   r�   r·   rø  r3  r¤   r  r}  r1  rd  r   r  r£   rõ   r¶   rô   Úrequest_contextÚis_stream_requestrq  Úbody_kwargsr  rú   r-  r.  s                                rˆ   Úresponse_api_handlerz'BaseLLMHTTPHandler.response_api_handleró	  sp  € ñ> à×2Ñ2ØØØ.KØ5YØ$7Ø-Ø'Ø+Ø%ØÜ!+¨FÔ4DÔ!E‘vÈ4Ø'Ø!1Ø-ð 3ó ð ð. ×=Ñ=ØØØ 3Ø1UØ)Ø#ð >ó 
ñ	
ØØØØ0Øð ˆ>¤¨F´KÔ!@Ü 1¸,È×HZÑHZÐ[gÐimÓHnÐ9oÔ pÑà &Ðà/×DÑDØ8×<Ñ<¸_ÈbÓQÒWÐUWØØ)ð Eó 
ˆñ Ø�N‰N˜=Ô)ð 6×9Ñ9¸(ÀEÓJˆà7×HÑHØ#×,Ñ,Ü Ó/ð Ió 
ˆð
 -×LÑLØØØ1UØ)Øð Mó 
ˆô &×JÑJÈ4ÓPˆáØ�K‰K˜
Ô#Ü�fÒ2 §¡¨Ó 2Ó3ˆð
 6=¸eÐ4Dˆð	Ø×"Ñ"Ð#GÔHô
 -1°Ó,@ˆÐ(Ñ)ä#'¨£<ÐÙ °Ñ!4Ø×<Ñ<ØØØ'ð =ó ‰LˆF�Dð  =×IÑIØÜ  Ó0ØØØ"×*Ñ*ØØØ#ð  Jó 	 
Ñˆ�ð GRÐF]¨f°kÑ-BÐdjÐlpÐcqˆð 	×ÑØØà'+Ø$Ø"ñð 	ô 	
ð*	Ù Ø1Ð,×1Ñ1ð Ø Ø#Ø#Òd¤uÐ-Q×-UÑ-UÐV_ÐabÓ-cÓ'dØ!ñ	ð
 "ñ�ð  $Ñ&Ü<Ø!)Ø#Ø$/Ø6SØ)9Ø,?Ø%4Ü"+×"5Ñ"5×";Ñ";ô	ð 	ô 9Ø%ØØ +Ø2OØ%5Ø(;Ø!0Ü'×1Ñ1×7Ñ7ô	ð 	ð 2Ð,×1Ñ1ð Ø Ø#Ø#Òd¤uÐ-Q×-UÑ-UÐV_ÐabÓ-cÓ'dñð "ñ	‘ð #@×"_Ñ"_ØØ!Ø#ð #`ó #
Ðð ×,Ñ,¨[Ô9Ü$6Ø×3Ñ3Ø)ØÜ#-¨e´TÔ#:™%È&Ð]bÑAcÐ@dØ3PØ;_Ø'ØØ$7Ü˜NÓ+Ø'ô%ˆNð &4Ð%?�>ÐUÐEUÐUàÐøôU ò 	Úð	ûô\ ò 	Ø×$Ñ$ØØ =ð %ó ð ûð	ús7   ÅL! Ç1A$L1 É*L1 Ê3L1 Ì!	L.Ì-L.Ì1	MÌ:MÍMc              ƒ   ó.  K  — |�t        |t        «      sWt        j                  d|rt	        |«      nd«       t        t        j                  |«      d|j                  dd«      i|¬«      }n|}|j                  |j                  di «      xs i ||¬«      }|r|j                  |«       |j                  dd«      }|j                  |j                  t        |«      ¬	«      }|j                  |||||¬
«      }t        j                   |«      }|	r|j                  |	«       t#        |xs |j                  d«      «      }d|i}	 |j                  |«       t        |«      |d<   t#        |«      }|r|du r| j'                  |||¬«      \  }}|j)                  |t        |«      |||j*                  |||¬«      \  }}|�d|ind|i}|j-                  |d|||dœ¬«       	 |r– |j.                  d$|||
xs t1        |j                  dd«      «      |dœ|¤Žƒ d{  –—† }|du r+t3        |||||||t4        j6                  j8                  ¬«      S t;        |||||||t4        j6                  j8                  ¬«      S  |j.                  d$|||
xs t1        |j                  dd«      «      dœ|¤Žƒ d{  –—† }	 |j?                  |||¬«      }| jA                  ||t        |tB        «      r|nd|dœg|||d|t        |«      d¬«
      ƒ d{  –—† }|�|n|}|j                  d «      xs |j                  d!«      }|r'|j                  d"«      s| jE                  |||||¬#«      S |S # t$        $ r Y �Œw xY w7 �ŒV7 ŒÃ# t$        $ r}| j=                  ||¬«      ‚d}~ww xY w7 Œ’­w)%ún
        Async version of the responses API handler.
        Uses async HTTP client to make requests.
        Nz>Creating HTTP client for responses API with shared_session: %sr"  r#  rø  rf  rõ   Frg  rh  r;  r�   Tri  rj  rô   r¥   r½   r8  r:  r¤   r   rk  rl  rn  rý   r  r  r  r]  ro  Ú/_code_interpreter_interception_converted_streamr=  Ú_agentic_loop_depth)Úresultr  rc  r·   r€   r°   )#rÅ   rF   r   r)  r¼   rI   rÖ   r*  r‡   rH  rv  rI  r¶   r«   rr  r=   rs  r&  r  rt  rK  r  rL  r  r¬   rK   rj   r]  rP  rM   r  ru  r6  rÕ   Ú'_wrap_responses_response_as_fake_stream)r  r  r;  rc  r[  r€   r�   r·   rø  r3  r¤   r  r1  rd  r   rò   r£   rõ   r¶   rô   rv  rw  rq  rx  r  rú   r-  r.  r~  Úinterception_converted_streams                                 rˆ   rq  z-BaseLLMHTTPHandler.async_response_api_handlerÉ
  s”  è ø€ ð* ˆ>¤¨FÔ4DÔ!EÜ× Ñ ØPÙ&4”�>Ô"¸$ôô "8Ü$×1Ñ1Ð2EÓFØ$ n×&8Ñ&8¸ÀtÓ&LÐMØ-ô"Ñð "(Ðà/×DÑDØ8×<Ñ<¸_ÈbÓQÒWÐUWØØ)ð Eó 
ˆñ Ø�N‰N˜=Ô)ð 6×9Ñ9¸(ÀEÓJˆà7×HÑHØ#×,Ñ,Ü Ó/ð Ió 
ˆð
 -×LÑLØØØ1UØ)Øð Mó 
ˆô &×JÑJÈ4ÓPˆáØ�K‰K˜
Ô#Ü�fÒ2 §¡¨Ó 2Ó3ˆð
 6=¸eÐ4Dˆð	Ø×"Ñ"Ð#GÔHô
 -1°Ó,@ˆÐ(Ñ)ä#'¨£<ÐÙ °Ñ!4Ø×<Ñ<ØØØ'ð =ó ‰LˆF�Dð  =×IÑIØÜ  Ó0ØØØ"×*Ñ*ØØØ#ð  Jó 	 
Ñˆ�ð GRÐF]¨f°kÑ-BÐdjÐlpÐcqˆð 	×ÑØØà'+Ø$Ø"ñð 	ô 	
ð-	Ù Ø!8Ð!3×!8Ñ!8ð "Ø Ø#Ø#Òd¤uÐ-Q×-UÑ-UÐV_ÐabÓ-cÓ'dØ!ñ	"ð
 "ñ"÷ �ð  $Ñ&Ü<Ø!)Ø#Ø$/Ø6SØ)9Ø,?Ø%4Ü"+×"5Ñ"5×";Ñ";ô	ð 	ô 5Ø%ØØ +Ø2OØ%5Ø(;Ø!0Ü'×1Ñ1×7Ñ7ô	ð 	ð "9Ð!3×!8Ñ!8ð "Ø Ø#Ø#Òd¤uÐ-Q×-UÑ-UÐV_ÐabÓ-cÓ'dñ"ð "ñ	"÷ ‘ð #@×"_Ñ"_ØØ!Ø#ð #`ó #
Ðð '+×&IÑ&IØ%ØÜ)¨%´Ô6‘eÀfÐY^Ñ=_Ð<`Ø/LØ7[Ø#ØØ 3Ü˜Ó'Ø#ð 'Jó '
÷ !
ˆð +9Ð*D™ÐJZˆØ/=×/AÑ/AØ=ó0
ò 0Là×ÑÐ JÓKð 	&ñ )°×1CÑ1CÐDYÔ1ZØ×?Ñ?ØØØ.KØ'Ø$7ð @ó ð ð ˆøôg ò 	Úð	úðNùð@ùô ò 	Ø×$Ñ$ØØ =ð %ó ð ûð	úð!
ús™   ‚D?NÅM ÅBNÇ9M/ ÈM*È2M/ ÉNÉ*M/ É2NÉ36M/ Ê)M-Ê*M/ Ê.ANÌ NÌANÍ	M'Í#NÍ&M'Í'NÍ*M/ Í-M/ Í/	NÍ8NÎNÎNÚresponse_idc              ƒ   óÐ  K  — |	�t        |	t        «      sWt        j                  d|rt	        |«      nd«       t        t        j                  |«      d|j                  dd«      i|¬«      }n|	}|j                  |xs i d|¬«      }|r|j                  |«       |j                  |j                  t        |«      ¬«      }|j                  ||||¬«      \  }}|j                  d	d
«       |j!                  t"        d|||dœ¬«       |||dœ}|r||d<   	  |j$                  di |¤Žƒ d{  –—† }|j+                  ||¬«      S 7 Œ# t&        $ r}| j)                  ||¬«      ‚d}~ww xY w­w)zt
        Async version of the delete response API handler.
        Uses async HTTP client to make requests.
        Nz@Creating HTTP client for delete_response with shared_session: %sr"  r#  ÚNonerf  rg  ©r�  r¶   r�   r£   rŠ  úapplication/jsonr½   r8  r:  rn  r¥   rý   ©r'  r·   r°   )rÅ   rF   r   r)  r¼   rI   rÖ   r*  r‡   rH  rv  rI  r¶   r«   Ú%transform_delete_response_api_requestÚ
setdefaultrL  r;  Údeleter  r  Ú&transform_delete_response_api_response)r  r�  rc  r�   r·   r€   rø  r3  r¤   r  r}  r   rò   r£   r¶   r¢   rô   Údelete_kwargsr  rú   s                       rˆ   Ú!async_delete_response_api_handlerz4BaseLLMHTTPHandler.async_delete_response_api_handler„  sÁ  è ø€ ð$ ˆ>¤¨FÔ4DÔ!EÜ× Ñ ØRÙ&4”�>Ô"¸$ôô "8Ü$×1Ñ1Ð2EÓFØ$ n×&8Ñ&8¸ÀtÓ&LÐMØ-ô"Ñð "(Ðà6×KÑKØ!Ò' R¨vÀnð Ló 
ˆñ Ø�N‰N˜=Ô)à7×HÑHØ#×,Ñ,Ü Ó/ð Ió 
ˆð
 2×WÑWØ#ØØ)Øð	 Xó 
‰	ˆˆTð 	×Ñ˜>Ð+=Ô>ð 	×ÑÜØà'+Ø$Ø"ñð 	ô 	
ð ØØñ6
ˆñ
 Ø$(ˆM˜&Ñ!ð	Ø$=Ð$6×$=Ñ$=Ñ$NÀÑ$N×NˆHð -×SÑSØ!Ø#ð Tó 
ð 	
ð Oùäò 	Ø×$Ñ$ØØ =ð %ó ð ûð	üs<   ‚DE&ÄE Ä(E Ä)E Ä-E&Å E Å	E#ÅEÅE#Å#E&c                 ó~  — |
r| j                  |||||||||	|¬«
      S |	�t        |	t        «      st        d|j	                  dd«      i¬«      }n|	}|j                  |xs i d|¬«      }|r|j                  |«       |j                  |j                  t        |«      ¬«      }|j                  ||||¬«      \  }}|j                  d	d
«       |j                  t        d|||dœ¬«       |||dœ}|r||d<   	  |j                  di |¤Ž}|j#                  ||¬«      S # t        $ r}| j!                  ||¬«      ‚d}~ww xY w)r{  ©
r�  rc  r�   r·   r€   rø  r3  r¤   r  r   Nr"  rC  rƒ  rf  rg  r„  rŠ  r…  r½   r8  r:  rn  r¥   rý   r†  r°   )rŒ  rÅ   rG   rH   r‡   rH  rv  rI  r¶   r«   r‡  rˆ  rL  r;  r‰  r  r  rŠ  )r  r�  rc  r�   r·   r€   rø  r3  r¤   r  r}  r   r  r£   r¶   r¢   rô   r‹  r  rú   s                       rˆ   Údelete_response_api_handlerz.BaseLLMHTTPHandler.delete_response_api_handlerÙ  s½  € ñ$ Ø×9Ñ9Ø'Ø.KØ-Ø'Ø$7Ø+Ø%ØØØ-ð :ó ð ð ˆ>¤¨F´KÔ!@Ü 1¸,È×HZÑHZÐ[gÐimÓHnÐ9oÔ pÑà &Ðà6×KÑKØ!Ò' R¨vÀnð Ló 
ˆñ Ø�N‰N˜=Ô)à7×HÑHØ#×,Ñ,Ü Ó/ð Ió 
ˆð
 2×WÑWØ#ØØ)Øð	 Xó 
‰	ˆˆTð 	×Ñ˜>Ð+=Ô>ð 	×ÑÜØà'+Ø$Ø"ñð 	ô 	
ð ØØñ6
ˆñ
 Ø$(ˆM˜&Ñ!ð	Ø6Ð/×6Ñ6ÑG¸ÑGˆHð -×SÑSØ!Ø#ð Tó 
ð 	
øô ò 	Ø×$Ñ$ØØ =ð %ó ð ûð	ús   Ã6D Ä	D<Ä$D7Ä7D<c                 ó\  — |
r| j                  |||||||||	|¬«
      S |	�t        |	t        «      st        d|j	                  dd«      i¬«      }n|	}|j                  |xs i d|¬«      }|r|j                  |«       |j                  |j                  t        |«      ¬«      }|j                  ||||¬«      \  }}|j                  d	d	|||d
œ¬«       	 |j	                  |||¬«      }|j                  «        |j                  ||¬«      S # t        $ r}| j                  ||¬«      ‚d}~ww xY w)zq
        Get a response by ID
        Uses GET /v1/responses/{response_id} endpoint in the responses API
        rŽ  Nr"  rC  rƒ  rf  rg  r„  r½   r8  r:  ©r¢   r£   r%  rý   r†  )Úasync_get_responsesrÅ   rG   rH   r‡   rH  rv  rI  r¶   r«   Ú"transform_get_response_api_requestrL  rß  r  r  Ú#transform_get_response_api_response©r  r�  rc  r�   r·   r€   rø  r3  r¤   r  r}  r   r  r£   r¶   r¢   rô   r  rú   s                      rˆ   Úget_responsesz BaseLLMHTTPHandler.get_responses3  s—  € ñ$ Ø×+Ñ+Ø'Ø.KØ-Ø'Ø$7Ø+Ø%ØØØ-ð ,ó ð ð ˆ>¤¨F´KÔ!@Ü 1¸,È×HZÑHZÐ[gÐimÓHnÐ9oÔ pÑà &Ðà6×KÑKØ!Ò' R¨vÀnð Ló 
ˆñ Ø�N‰N˜=Ô)à7×HÑHØ#×,Ñ,Ü Ó/ð Ió 
ˆð
 2×TÑTØ#ØØ)Øð	 Uó 
‰	ˆˆTð 	×ÑØØà'+Ø$Ø"ñð 	ô 	
ð	Ø/×3Ñ3¸ÀWÐUYÐ3ÓZˆHØ×%Ñ%Ô'ð -×PÑPØ!Ø#ð Qó 
ð 	
øô ò 	Ø×$Ñ$ØØ =ð %ó ð ûð	ús   Ã$D
 Ä
	D+ÄD&Ä&D+c              ƒ   óÚ  K  — |	�t        |	t        «      sWt        j                  d|
rt	        |
«      nd«       t        t        j                  |«      d|j                  dd«      i|
¬«      }n|	}|j                  |xs i d|¬«      }|r|j                  |«       |j                  |j                  t        |«      ¬«      }|j                  ||||¬«      \  }}|j                  d	d	|||d
œ¬«       	 |j                  |||¬«      ƒ d{  –—† }|j!                  «        |j'                  ||¬«      S 7 Œ'# t"        $ r.}t        j                  d|«       | j%                  ||¬«      ‚d}~ww xY w­w)z0
        Async version of get_responses
        Nz>Creating HTTP client for get_responses with shared_session: %sr"  r#  rƒ  rf  rg  r„  r½   r8  r:  r‘  zError retrieving response: %srý   r†  )rÅ   rF   r   r)  r¼   rI   rÖ   r*  r‡   rH  rv  rI  r¶   r«   r“  rL  rß  r  r  r”  )r  r�  rc  r�   r·   r€   rø  r3  r¤   r  r   rò   r£   r¶   r¢   rô   r  rú   s                     rˆ   r’  z&BaseLLMHTTPHandler.async_get_responses„  s¬  è ø€ ð  ˆ>¤¨FÔ4DÔ!EÜ× Ñ ØPÙ&4”�>Ô"¸$ôô "8Ü$×1Ñ1Ð2EÓFØ$ n×&8Ñ&8¸ÀtÓ&LÐMØ-ô"Ñð "(Ðà6×KÑKØ!Ò' R¨vÀnð Ló 
ˆñ Ø�N‰N˜=Ô)à7×HÑHØ#×,Ñ,Ü Ó/ð Ió 
ˆð
 2×TÑTØ#ØØ)Øð	 Uó 
‰	ˆˆTð 	×ÑØØà'+Ø$Ø"ñð 	ô 	
ð	Ø$6×$:Ñ$:¸sÈGÐ\`Ð$:Ó$a×aˆHØ×%Ñ%Ô'ð -×PÑPØ!Ø#ð Qó 
ð 	
ð bùäò 	Ü× Ñ Ð!@À!ÔDØ×$Ñ$ØØ =ð %ó ð ûð	üs<   ‚C-E+Ã0D1 ÄD/ÄD1 ÄE+Ä/D1 Ä1	E(Ä:)E#Å#E(Å(E+ÚafterÚbeforeÚincludeÚlimitÚorder)ÚascÚdescc                 ón  — |r| j                  |||||||||	|
||||¬«      S |�t        |t        «      st        d|j	                  dd «      i¬«      }n|}|j                  |xs i d|¬«      }|r|j                  |«       |j                  |j                  t        |«      ¬«      }|j                  ||||||||	|
¬«	      \  }}|j                  dd|||d	œ¬
«       	 |j	                  |||¬«      }|j                  «        |j                  ||¬«      S # t        $ r}| j                  ||¬«      ‚d }~ww xY w)N)r�  rc  r�   r·   r€   r˜  r™  rš  r›  rœ  rø  r¤   r  r   r"  rC  rƒ  rf  rg  ©	r�  r¶   r�   r£   r˜  r™  rš  r›  rœ  r½   r8  r:  r‘  rý   r†  )Ú async_list_responses_input_itemsrÅ   rG   rH   r‡   rH  rv  rI  r¶   r«   Ú"transform_list_input_items_requestrL  rß  r  r  Ú#transform_list_input_items_response)r  r�  rc  r�   r·   r€   r˜  r™  rš  r›  rœ  rø  r¤   r  r}  r   r  r£   r¶   r¢   r%  r  rú   s                          rˆ   Úlist_responses_input_itemsz-BaseLLMHTTPHandler.list_responses_input_itemsÑ  s®  € ñ$ Ø×8Ñ8Ø'Ø.KØ-Ø'Ø$7ØØØØØØ+ØØØ-ð 9ó ð ð" ˆ>¤¨F´KÔ!@Ü 1¸,È×HZÑHZÐ[gÐimÓHnÐ9oÔ pÑà &Ðà6×KÑKØ!Ò' R¨vÀnð Ló 
ˆñ Ø�N‰N˜=Ô)à7×HÑHØ#×,Ñ,Ü Ó/ð Ió 
ˆð
 4×VÑVØ#ØØ)ØØØØØØð Wó 

‰ˆˆVð 	×ÑØØà'-Ø$Ø"ñð 	ô 	
ð	YØ/×3Ñ3¸ÀWÐU[Ð3Ó\ˆHØ×%Ñ%Ô'ð -×PÑPØ!Ø#ð Qó 
ð 	
øô ò 	YØ×$Ñ$ qÐ:WÐ$ÓXÐXûð	Yús   Ã$D Ä	D4ÄD/Ä/D4c              ƒ   ó¸  K  — |�t        |t        «      sWt        j                  d|rt	        |«      nd «       t        t        j                  |«      d|j                  dd «      i|¬«      }n|}|j                  |xs i d|¬«      }|r|j                  |«       |j                  |j                  t        |«      ¬«      }|j                  ||||||||	|
¬«	      \  }}|j                  dd|||d	œ¬
«       	 |j                  |||¬«      ƒ d {  –—† }|j!                  «        |j'                  ||¬«      S 7 Œ'# t"        $ r}| j%                  ||¬«      ‚d }~ww xY w­w)NzACreating HTTP client for list_input_items with shared_session: %sr"  r#  rƒ  rf  rg  r   r½   r8  r:  r‘  rý   r†  )rÅ   rF   r   r)  r¼   rI   rÖ   r*  r‡   rH  rv  rI  r¶   r«   r¢  rL  rß  r  r  r£  )r  r�  rc  r�   r·   r€   r˜  r™  rš  r›  rœ  rø  r¤   r  r   rò   r£   r¶   r¢   r%  r  rú   s                         rˆ   r¡  z3BaseLLMHTTPHandler.async_list_responses_input_items'  s¦  è ø€ ð" ˆ>¤¨FÔ4DÔ!EÜ× Ñ ØSÙ&4”�>Ô"¸$ôô "8Ü$×1Ñ1Ð2EÓFØ$ n×&8Ñ&8¸ÀtÓ&LÐMØ-ô"Ñð "(Ðà6×KÑKØ!Ò' R¨vÀnð Ló 
ˆñ Ø�N‰N˜=Ô)à7×HÑHØ#×,Ñ,Ü Ó/ð Ió 
ˆð
 4×VÑVØ#ØØ)ØØØØØØð Wó 

‰ˆˆVð 	×ÑØØà'-Ø$Ø"ñð 	ô 	
ð	YØ$6×$:Ñ$:¸sÈGÐ\bÐ$:Ó$c×cˆHØ×%Ñ%Ô'ð -×PÑPØ!Ø#ð Qó 
ð 	
ð dùäò 	YØ×$Ñ$ qÐ:WÐ$ÓXÐXûð	Yüs<   ‚C2EÃ5D6 ÄD4ÄD6 Ä!EÄ4D6 Ä6	EÄ?EÅEÅEÚupload_url_locationÚupload_url_keyc                 ó¾   — |dk(  r|j                   j                  d«      }|dfS 	 |j                  «       }|j                  |«      }||r|fS dfS # t        $ r Y yw xY w)a  
        Extract upload URL from initial file creation response.

        Args:
            response: HTTP response from initial file creation request
            upload_url_location: Where to find URL ('headers' or 'body')
            upload_url_key: Key name for URL in response body (default: 'upload_url')

        Returns:
            Tuple of (upload_url, response_data)
            - upload_url: The extracted upload URL, or None if not found
            - response_data: Parsed response body (for 'body' location), or None
        r£   zX-Goog-Upload-URLN©NN)r£   r‡   r¥   r  )r  r  r¦  r§  Ú
upload_urlÚresponse_datas         rˆ   Ú!_extract_upload_url_from_responsez4BaseLLMHTTPHandler._extract_upload_url_from_responser  su   € ð&  )Ò+à!×)Ñ)×-Ñ-Ð.AÓBˆJØ˜tÐ#Ð#ð"Ø'/§}¡}£�Ø*×.Ñ.¨~Ó>�
Ø!±J =ÐHÐHÀDÐHÐHøÜò "Ù!ð"ús   ¦&A ÁA Á	AÁAÚcreate_file_datac           
      óL  — |j                  ||dg i |¬«      }|j                  ||di ||¬«      }|€t        d«      ‚|j                  d||i ¬«      }|r| j	                  |||||||	|
¬«      S |	�t        |	t        «      st        «       }n|	}t        |t        «      rÏd|v rË	 |j                  |i |¥|d   d	   ¥t        j                  |d   d
   «      |
¬«      }| j                  ||j                  dd	«      |j                  dd«      ¬«      \  }}|st        d«      ‚|d   j                  dd«      j                  «       } t        ||«      ||d   d	   |d   d
   |
¬«      }|r||d<   �nµt        |t        «      rWd|v rSd|vrOt%        t        t&        t(        f   |«      } t        ||d   j                  «       «      |d   |d	   |d
   |
¬«      }�nNt        |t        «      rTd|v rPt%        t*        |d   «      }	 | j-                  |||t%        t.        |d   «      |j                  d«      xs d|
¬«      }nêt        |t&        «      st        |t4        «      rlt        |t4        «      r|j7                  d«      }|j8                  j;                  «       }|dk(  r|j=                  ||||
¬«      }nt|j                  ||||
¬«      }n^t        |t        «      r7d|v r3t%        t        t&        t(        f   |«      }|j                  ||||
¬ «      }nt        d!t?        |«      › �«      ‚t        |«      }d|vr||d<   |jA                  d|||¬"«      S # t         $ r}| j#                  ||¬«      ‚d}~ww xY w# t         $ r.}t1        j2                  d|«       | j#                  ||¬«      ‚d}~ww xY w)#úG
        Creates a file using Gemini's two-step upload process
        r½   rn  ©r¶   r  r  r  r�   rô   Nz$api_base is required for create_file)r  r­  r�   r  )Útransformed_requestr�   ró   r£   r¶   r·   r  r¤   Úinitial_requestr£   rô   rr  r¦  r§  rª  ©r  r¦  r§  ú-Failed to get upload URL from initial requestÚupload_requestÚmethodÚPOSTÚinitial_file_responserý   r¢   Ústreaming_media_uploadÚbody_streamr�  úapplication/octet-stream©r  r¢   Úbase_headersrº  r�  r¤   úError creating file: %súutf-8ÚPUTÚfile©r¢   r£   rŽ  r¤   ú&Unsupported transformed_request type: ©r  r'  r·   r�   )!rH  Úget_complete_file_urlrF  Útransform_create_file_requestÚasync_create_filerÅ   rG   rH   r«   r  r¥   r  r¬  r‡   rB  rÃ   r  r  r   r©   r   rT   Ú_upload_mediar4   r   Ú	exceptionrµ   ÚdecodeÚfile_upload_http_methodrÙ  Úputrá   Útransform_create_file_response)r  r­  r�   ró   r£   r¶   r  r·   r}  r  r¤   r±  r  r-  rª  Úinitial_response_dataÚupload_methodÚupload_responserú   Úpresigned_requestÚ	media_cfgrÓ  Úfile_requestÚlitellm_params_with_urls                           rˆ   Úcreate_filezBaseLLMHTTPHandler.create_file’  s¬  € ð" "×6Ñ6ØØØØØØ)ð 7ó 
ˆð #×8Ñ8ØØØØØ)Ø!ð 9ó 
ˆð ÐÜÐCÓDÐDð .×KÑKØØ-Ø)Øð	 Ló 
Ðñ Ø×)Ñ)Ø$7Ø-Ø /ØØ!Ø'ØØð *ó 	ð 	ð ˆ>¤¨F´KÔ!@Ü 1Ó 3Ñà &ÐäÐ)¬4Ô0Ð5FÐJ]Ñ5]ð)à*;×*@Ñ*@Ø ðØ!ðà-Ð.?Ñ@ÀÑKðô Ÿ™Ð$7Ð8IÑ$JÈ6Ñ$RÓSØ#ð +Aó +Ð ð ×:Ñ:Ø-Ø(;×(?Ñ(?Ð@UÐW`Ó(aØ#6×#:Ñ#:Ð;KÈ\Ó#Zð ;ó ñØØ)ñ "Ü$Ð%TÓUÐUð (;Ð;KÑ'L×'PÑ'PÐQYÐ[aÓ'b×'hÑ'hÓ'j�Ø"K¤'Ð*;¸]Ó"KØ"Ø/Ð0@ÑAÀ)ÑLØ,Ð-=Ñ>¸vÑFØ#ô	#�ñ )Ø>S�NÐ#:Ñ;ùô Ð*¬DÔ1ØÐ/Ñ/Ø!Ð)<Ñ<ô (,¬D´´c°©NÐ<OÓ'PÐØ]œgÐ&7Ð9JÈ8Ñ9T×9ZÑ9ZÓ9\Ó]Ø% eÑ,Ø)¨)Ñ4Ø& vÑ.Øô	ŠOô Ð+¬TÔ2Ð7OÐSfÑ7fÜ#Ô$>Ð@SÐTlÑ@mÓnˆIðOØ"&×"4Ñ"4Ø,Ø Ø!(Ü $Ô%9¸9À]Ñ;SÓ TØ!*§¡¨~Ó!>Ò!\ÐB\Ø#ð #5ó #‘ô Ð+¬SÔ1´ZÐ@SÔUZÔ5[ô Ð-¬uÔ5Ø&9×&@Ñ&@ÀÓ&IÐ#ð "1×!HÑ!H×!NÑ!NÓ!PˆKØ˜eÒ#Ø"3×"7Ñ"7Ø Ø#Ø,Ø#ð	 #8ó #‘ð #4×"8Ñ"8Ø Ø#Ø,Ø#ð	 #9ó #‘ô Ð+¬TÔ2°vÐATÑ7Tô #'¤t¬C´¨H¡~Ð7JÓ"KˆLØ/×4Ñ4ØØØ"Øð	 5ó ‰Oô ÐEÄdÐK^ÓF_ÐE`ÐaÓbÐbô
 *.¨nÓ)=ÐØ˜~Ñ-Ø4<Ð# LÑ1à×=Ñ=ØØ(Ø#Ø2ð	 >ó 
ð 	
øôW ò Ø×(Ñ(ØØ$3ð )ó ð ûðûô< ò OÜ×(Ñ(Ð)BÀAÔFØ×(Ñ(¨1¸oÐ(ÓNÐNûðOús1   Â CM Ç9;M, Í	M)ÍM$Í$M)Í,	N#Í5)NÎN#r±  rU   c	           
   ƒ   ó  K  — |�t        |t        «      st        |j                  ¬«      }	n|}	|j	                  ddt        |t
        «      rd|v rdn|||dœ¬«       t        |t
        «      rßd|v rÛ	 |	j                  |i |¥|d   d	   ¥t        j                  |d   d
   «      |¬«      ƒ d{  –—† }
| j                  |
|j                  dd	«      |j                  dd«      ¬«      \  }}|st        d«      ‚|d   j                  dd«      j                  «       } t        |	|«      ||d   d	   |d   d
   |¬«      ƒ d{  –—† }|r||d<   �nŸt        |t
        «      r_d|v r[d|vrWt%        t
        t&        t(        f   |«      } t        |	|d   j                  «       «      |d   |d	   |d
   |¬«      ƒ d{  –—† }�n0t        |t
        «      r\d|v rXt%        t*        |d   «      }	 | j-                  |	||t%        t.        |d   «      |j                  d«      xs d|¬«      ƒ d{  –—† }nÄt        |t&        «      st        |t0        «      r[|j2                  j5                  «       }|dk(  r|	j7                  ||||¬«      ƒ d{  –—† }ng|	j                  ||||¬«      ƒ d{  –—† }nIt        |t
        «      r"d|v r|	j                  ||||¬«      ƒ d{  –—† }nt        dt9        |«      › �«      ‚|j;                  d|||¬ «      S 7 �ŒS7 �ŒÅ# t        $ r.}t        j                   d|«       | j#                  ||¬«      ‚d}~ww xY w7 �ŒŒ7 �Œ"# t        $ r.}t        j                   d|«       | j#                  ||¬«      ‚d}~ww xY w7 �Œ7 Œæ7 Œ¶­w)!r¯  Nr†  r½   r¹  z<streaming media upload>r8  r:  r²  r£   rô   rr  r¦  r§  rª  r³  r´  rµ  r¶  r·  r¸  r¾  rý   r¢   rº  r�  r»  r¼  rÀ  rÁ  rÂ  rÃ  rÄ  )rÅ   rF   rI   r€   rL  r«   r  r¥   r  r¬  r‡   rF  rB  rÃ   r  r   rÉ  r  r   r©   r   rT   Ú_aupload_mediar4   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Ó  s                      rˆ   rÇ  z$BaseLLMHTTPHandler.async_create_fileJ  sJ  è ø€ ð ˆ>¤¨FÔ4DÔ!EÜ!7À_×EhÑEhÔ!iÑà!'Ðð
 	×ÑØØô "Ð"5´tÔ<ÐAYÐ]pÑApñ /à,à$Ø"ñð 	ô 	
ô" Ð)¬4Ô0Ð5FÐJ]Ñ5]ð*à0B×0GÑ0GØ ðØ!ðà-Ð.?Ñ@ÀÑKðô Ÿ™Ð$7Ð8IÑ$JÈ6Ñ$RÓSØ#ð 1Hó 1÷ +Ð ð ×:Ñ:Ø-Ø(;×(?Ñ(?Ð@UÐW`Ó(aØ#6×#:Ñ#:Ð;KÈ\Ó#Zð ;ó ñØØ)ñ "Ü$Ð%TÓUÐUð (;Ð;KÑ'L×'PÑ'PÐQYÐ[aÓ'b×'hÑ'hÓ'j�Ø(R¬Ð0BÀMÓ(RØ"Ø/Ð0@ÑAÀ)ÑLØ,Ð-=Ñ>¸vÑFØ#ô	)÷ #�ñ )Ø>S�NÐ#:Ñ;ùô Ð*¬DÔ1ØÐ/Ñ/Ø!Ð)<Ñ<ô (,¬D´´c°©NÐ<OÓ'PÐØ$d¤GÐ,>Ð@QÐRZÑ@[×@aÑ@aÓ@cÓ$dØ% eÑ,Ø)¨)Ñ4Ø& vÑ.Øô	%÷ ŠOô Ð+¬TÔ2Ð7OÐSfÑ7fÜ#Ô$>Ð@SÐTlÑ@mÓnˆIðOØ(,×(;Ñ(;Ø-Ø Ø!(Ü $Ô%9¸9À]Ñ;SÓ TØ!*§¡¨~Ó!>Ò!\ÐB\Ø#ð )<ó )÷ #‘ô Ð+¬SÔ1´ZÐ@SÔUZÔ5[ð
 "1×!HÑ!H×!NÑ!NÓ!PˆKØ˜eÒ#Ø(:×(>Ñ(>Ø Ø#Ø,Ø#ð	 )?ó )÷ #‘ð );×(?Ñ(?Ø Ø#Ø,Ø#ð	 )@ó )÷ #‘ô Ð+¬TÔ2°vÐATÑ7Tð %7×$;Ñ$;ØØØ)Øð	 %<ó %÷ ‰Oô ÐEÄdÐK^ÓF_ÐE`ÐaÓbÐbà×=Ñ=ØØ(Ø#Ø)ð	 >ó 
ð 	
ðK+ùð2#úô ò Ü×(Ñ(Ð)BÀAÔFØ×(Ñ(ØØ$3ð )ó ð ûðúðùð#úô ò OÜ×(Ñ(Ð)BÀAÔFØ×(Ñ(¨1¸oÐ(ÓNÐNûðOúð#ùð#øðúsÃ   ‚A.NÁ1;L Â,K?Â-BL Ä=LÄ>L Å	A*NÆ3L?Æ4-NÇ">M È MÈ!M È%ANÉ=M?É>NÊNÊ1NËNË1NË?L ÌL Ì	L<Ì)L7Ì7L<Ì<NÍM Í	M<Í)M7Í7M<Í<NÎNÎNi  @ Ú	byte_iterÚ
block_sizec              #   óÖ   K  — t        «       }| D ]F  }|j                  |«       t        |«      |k\  sŒ#t        |d | «      –— |d |…= t        |«      |k\  rŒ$ŒH |rt        |«      –— y y ­wrÌ   )Ú	bytearrayrÙ   Úlenrµ   )rØ  rÙ  ÚbufÚpieces       rˆ   Ú_iter_in_blocksz"BaseLLMHTTPHandler._iter_in_blocksç  st   è ø€ ä“[ˆØò 	%ˆEØ�J‰J�uÔÜ�c“(˜jÓ(Ü˜C  Ð,Ó-Ò-Ø˜˜˜Ð$ô �c“(˜jÔ(ð	%ñ
 Ü˜“*Óð ùs   ‚/A)²#A)ÁA)Úrespc                 óp   — |j                   dvr(|j                  «        t        d|j                   › �«      ‚y )N)éÈ   éÉ   z media upload: unexpected status )r  rß  rF  )r  rà  s     rˆ   Ú_check_media_upload_responsez/BaseLLMHTTPHandler._check_media_upload_responseò  s;   € Ø×Ñ :Ñ-Ø×!Ñ!Ô#ÜÐ?À×@PÑ@PÐ?QÐRÓSÐSð .rŠ   r¢   r½  rº  r�  c                óÚ   — i |¥d|i¥}|| j                  |j                  «       | j                  «      dœ}|�||d<    |j                  j                  |fi |¤Ž}	| j                  |	«       |	S )NrŠ  ©r£   r´   r¤   )rß  Ú
iter_bytesÚ_MEDIA_UPLOAD_BLOCK_SIZEr  r  rä  )
r  r  r¢   r½  rº  r�  r¤   r£   r(  rà  s
             rˆ   rÈ  z BaseLLMHTTPHandler._upload_media÷  s   € ð H˜LÐG¨.¸,ÑGˆàØ×+Ñ+¨K×,BÑ,BÓ,DÀd×FcÑFcÓdñ-
ˆð ÐØ 'ˆF�9ÑØ(�f—m‘m×(Ñ(¨Ñ7°Ñ7ˆØ×)Ñ)¨$Ô/ØˆrŠ   c             ƒ   óŠ  ‡‡K  — i |¥d|i¥}t        | j                  |j                  «       | j                  «      «      Št	        «       Šdt
        t           fˆˆfd„}| |«       dœ}	|�||	d<    |j                  j                  |fi |	¤Žƒ d{  –—† }
|
j                  «       ƒ d{  –—†  | j                  |
«       |
S 7 Œ/7 Œ­w)a°  Stream the transformed body straight to a single media upload. Each
        block is produced on a worker thread (the transform never runs on the
        event loop) and sent with chunked transfer-encoding, so the body is
        neither buffered in memory nor staged to disk, and the upload is one
        continuous request rather than the many sequential round-trips of the
        resumable path that overran client/LB timeouts.rŠ  r‚   c                 óŠ   •K  — 	 t        j                  t        ‰‰«      ƒ d {  –—† } | ‰u ry t        t        | «      ­–— Œ<7 Œ­wrÌ   )ÚasyncioÚ	to_threadÚnextr   rµ   )ÚblockÚ
block_iterÚdones    €€rˆ   Ú_abodyz1BaseLLMHTTPHandler._aupload_media.<locals>._abody   s@   øè ø€ ØÜ%×/Ñ/´°jÀ$ÓG×G�Ø˜D‘=ØÜœ5 %Ó(Ó(ð	 ØGús   ƒ A£A¤Aræ  Nr¤   )Úiterrß  rç  rè  r¯   r   rµ   r  r  Úareadrä  )r  r  r¢   r½  rº  r�  r¤   r£   rñ  r(  rà  rï  rð  s              @@rˆ   r×  z!BaseLLMHTTPHandler._aupload_media  sÂ   ùè ø€ ð  H˜LÐG¨.¸,ÑGˆÜ  ×!5Ñ!5°k×6LÑ6LÓ6NÐPT×PmÑPmÓ!nÓoˆ
Ü“hˆð	)œm¬EÑ2ö 	)ð 9@ÉFËHÑ,UˆØÐØ 'ˆF�9ÑØ.˜FŸM™M×.Ñ.¨sÑ=°fÑ=×=ˆØ�j‰j‹l×ÐØ×)Ñ)¨$Ô/Øˆð >øØús$   „BCÂB?ÂCÂ'CÂ(CÃCÚcreate_batch_datar^   r.   ÚLiteLLMLoggingObj)rG   rF   rm   c                 óî  — |€t        d«      ‚|j                  |||g i |¬«      }|j                  |||i ||¬«      }|€t        d«      ‚|j                  |||i ¬«      }|r| j	                  |||||||	|
|¬«	      S |	�t        |	t        «      st        «       }n|	}	 t        |t        «      r5d|v r1 t        ||d   j                  «       «      |d	   |d
   |d   |
¬«      }nAt        |t        «      r|j                  |i |¥ddi¥||
¬«      }n|j                  ||||
¬«      }i |¥d|i¥}|j!                  ||||¬«      S # t        $ r.}t        j                  d|«       | j                  ||¬«      ‚d}~ww xY w)zP
        Creates a batch using provider-specific batch creation process
        Nz"model is required for create_batchrn  r°  z%api_base is required for create_batch)r  rô  r�   r  )	r±  r�   ró   r£   r¶   r·   r  r¤   rô  r¶  r¢   r£   rô   rr  rŠ  r…  r{  úError creating batch: %srý   Úoriginal_batch_requestrÄ  )rF  rH  Úget_complete_batch_urlÚtransform_create_batch_requestÚasync_create_batchrÅ   rG   rH   r«   rÃ   rB  r  r  r   rÉ  r  Útransform_create_batch_response)r  rô  r�   ró   r£   r¶   r  r·   r}  r  r¤   r  r±  r  Úbatch_responserú   Úlitellm_params_with_requests                    rˆ   Úcreate_batchzBaseLLMHTTPHandler.create_batch/  s,  € ð$ ˆ=ÜÐAÓBÐBà!×6Ñ6ØØØØØØ)ð 7ó 
ˆð #×9Ñ9ØØØØØ)Ø"ð :ó 
ˆð ÐÜÐDÓEÐEð &5×%SÑ%SØØ/Ø)Øð	 &Tó &
Ðñ Ø×*Ñ*Ø$7Ø-Ø /ØØ!Ø'ØØØ"3ð +ó 
ð 
ð ˆ>¤¨F´KÔ!@Ü 1Ó 3Ñà &Ðð	ÜÐ-¬tÔ4¸ÐEXÑ9Xà!b¤Ð):Ð<OÐPXÑ<Y×<_Ñ<_Ó<aÓ!bØ+¨EÑ2Ø/°	Ñ:Ø,¨VÑ4Ø#ô	"‘ô Ð/´Ô6à!2×!7Ñ!7Ø ØK˜wÐK¨Ð8JÑKØ,Ø#ð	 "8ó "‘ð "3×!7Ñ!7Ø Ø#Ø,Ø#ð	 "8ó "�ð.
Øð.
à$Ð&7ñ.
Ð#ð
 ×>Ñ>ØØ'Ø#Ø6ð	 ?ó 
ð 	
øô ò 	Ü×$Ñ$Ð%?ÀÔCØ×$Ñ$ØØ /ð %ó ð ûð	ús   ÂBD= Ä=	E4Å)E/Å/E4Úbatch_idc                 ó¢  — |j                  |||¬«      }|r| j                  |||||||	|
||¬«
      S |	�t        |	t        «      st	        «       }n|	}	 t        |t
        «      rSd|v rO|d   j                  «       }|d   |d   dœ}|dk7  r|j                  d	«      �|d	   |d	<    t        ||«      di |¤Ž}nMt        |t
        «      r|r|j                  |i |¥d
di¥|¬«      }n |st        d«      ‚|j                  ||¬«      }|j                  ||||¬«      S # t        $ r.}t        j                  d|«       | j                  ||¬«      ‚d}~ww xY w)zI
        Retrieve a batch using provider-specific configuration.
        )r   r  r�   )
r±  r�   ró   r£   r¶   r·   r  r¤   r   r  Nr¶  r¢   r£   rË  r‡   rô   rŠ  r…  r‘  ú0api_base is required for non-pre-signed requestsúError retrieving batch: %srý   rÄ  r°   )Ú transform_retrieve_batch_requestÚasync_retrieve_batchrÅ   rG   rH   r«   rB  r‡   rÃ   rF  r  r   rÉ  r  Ú!transform_retrieve_batch_response)r  r   r�   ró   r£   r¶   r  r·   r}  r  r¤   r  r±  r  r¶  Úrequest_kwargsrý  rú   s                     rˆ   Úretrieve_batchz!BaseLLMHTTPHandler.retrieve_batchŸ  sÌ  € ð$ &5×%UÑ%UØØ*Ø)ð &Vó &
Ðñ Ø×,Ñ,Ø$7Ø-Ø /ØØ!Ø'ØØØ!Øð -ó ð ð ˆ>¤¨F´KÔ!@Ü 1Ó 3Ñà &Ðð"	ÜÐ-¬tÔ4¸ÐEXÑ9Xà 3°HÑ =× CÑ CÓ E�à.¨uÑ5Ø2°9Ñ=ñ)�ð ˜U’?Ð':×'>Ñ'>¸vÓ'FÐ'RØ-@ÀÑ-H�N 6Ñ*à!C¤Ð):¸FÓ!CÑ!UÀnÑ!U‘ÜÐ/´Ô6¹8à!2×!6Ñ!6Ø ØK˜wÐK¨Ð8JÑKØ.ð "7ó "‘ñ  Ü$Ð%WÓXÐXØ!2×!6Ñ!6Ø Ø#ð "7ó "�ð ×@Ñ@ØØ'Ø#Ø)ð	 Aó 
ð 	
øô ò 	Ü×$Ñ$Ð%AÀ1ÔEØ×$Ñ$ØØ /ð %ó ð ûð	ús   ÁB0D Ä	EÄ )E	Å	Ec              ƒ   ó�  K  — |�t        |t        «      st        |j                  ¬«      }n|}|j	                  dd|||dœ¬«       	 t        |t
        «      r=d|v r9 t        ||d   j                  «       «      |d   |d   |d	   |¬
«      ƒ d{  –—† }nQt        |t
        «      r$|j                  |i |¥ddi¥||¬«      ƒ d{  –—† }n|j                  ||||¬
«      ƒ d{  –—† }i |¥d|	xs i i¥}|j                  |
|||¬«      S 7 Œw7 ŒE7 Œ)# t        $ r.}t        j                  d|«       | j                  ||¬«      ‚d}~ww xY w­w)z/
        Async version of create_batch
        Nr†  r½   r8  r:  r¶  r¢   r£   rô   rr  rŠ  r…  r{  r÷  rý   rø  rÄ  )rÅ   rF   rI   r€   rL  r«   rÃ   rB  r  r  r   rÉ  r  rü  )r  r±  r�   ró   r£   r¶   r·   r  r¤   rô  r  rò   rý  rú   rþ  s                  rˆ   rû  z%BaseLLMHTTPHandler.async_create_batchõ  s³  è ø€ ð  ˆ>¤¨FÔ4DÔ!EÜ!7À_×EhÑEhÔ!iÑà!'Ðð
 	×ÑØØà':Ø$Ø"ñð 	ô 	
ð	ÜÐ-¬tÔ4¸ÐEXÑ9Xà'i¤wÐ/AÐCVÐW_ÑC`×CfÑCfÓChÓ'iØ+¨EÑ2Ø/°	Ñ:Ø,¨VÑ4Ø#ô	(÷ "‘ô Ð/´Ô6à'9×'>Ñ'>Ø ØK˜wÐK¨Ð8JÑKØ,Ø#ð	 (?ó (÷ "‘ð (:×'>Ñ'>Ø Ø#Ø,Ø#ð	 (?ó (÷ "�ð.
Øð.
à$Ð&7Ò&=¸2ñ.
Ð#ð
 ×>Ñ>ØØ'Ø#Ø6ð	 ?ó 
ð 	
ðG"øð"øð"ùô ò 	Ü×$Ñ$Ð%?ÀÔCØ×$Ñ$ØØ /ð %ó ð ûð	üsa   ‚AEÁAD ÂDÂ3D ÃDÃD Ã D
Ã!D Ã%!EÄD ÄD Ä
D Ä	EÄ)D>Ä>EÅEc           	   ƒ   óÎ  K  — |�t        |t        «      st        |j                  ¬«      }n|}|j	                  dd||||	dœ¬«       	 t        |t
        «      r[d|v rW|d   j                  «       }|d   |d   d	œ}|d
k7  r|j                  d«      �|d   |d<    t        ||«      di |¤Žƒ d{  –—† }n]t        |t
        «      r%|r#|j                  |i |¥ddi¥|¬«      ƒ d{  –—† }n(|st        d«      ‚|j                  ||¬	«      ƒ d{  –—† }|j                  |
|||¬«      S 7 Œw7 ŒD7 Œ# t        $ r.}t        j                  d|«       | j                  ||¬«      ‚d}~ww xY w­w)z1
        Async version of retrieve_batch
        Nr†  r½   )r9  r¶   r£   r   r:  r¶  r¢   r£   rË  r‡   rô   rŠ  r…  r‘  r  r  rý   rÄ  r°   )rÅ   rF   rI   r€   rL  r«   rB  r‡   rÃ   rF  r  r   rÉ  r  r  )r  r±  r�   ró   r£   r¶   r·   r  r¤   r   r  rò   r¶  r  rý  rú   s                   rˆ   r  z'BaseLLMHTTPHandler.async_retrieve_batchD  sÆ  è ø€ ð  ˆ>¤¨FÔ4DÔ!EÜ!7À_×EhÑEhÔ!iÑà!'Ðð
 	×ÑØØà':Ø$Ø"Ø$ñ	ð 	ô 		
ð"	ÜÐ-¬tÔ4¸ÐEXÑ9Xà 3°HÑ =× CÑ CÓ E�à.¨uÑ5Ø2°9Ñ=ñ)�ð ˜U’?Ð':×'>Ñ'>¸vÓ'FÐ'RØ-@ÀÑ-H�N 6Ñ*à'J¤wÐ/AÀ6Ó'JÑ'\È^Ñ'\×!\‘ÜÐ/´Ô6¹8à'9×'=Ñ'=Ø ØK˜wÐK¨Ð8JÑKØ.ð (>ó (÷ "‘ñ  Ü$Ð%WÓXÐXØ'9×'=Ñ'=Ø Ø#ð (>ó (÷ "�ð ×@Ñ@ØØ'Ø#Ø)ð	 Aó 
ð 	
ð/ "]øð"øð"ùô ò 	Ü×$Ñ$Ð%AÀ1ÔEØ×$Ñ$ØØ /ð %ó ð ûð	üsa   ‚AE%ÁA%D+ Â-D%Â.4D+ Ã"D'Ã#(D+ ÄD)ÄD+ ÄE%Ä%D+ Ä'D+ Ä)D+ Ä+	E"Ä4)EÅE"Å"E%c                 ó>  — |
r| j                  |||||||||	|¬«
      S |	�t        |	t        «      st        d|j	                  dd«      i¬«      }n|	}|j                  |xs i d|¬«      }|r|j                  |«       |j                  |j                  t        |«      ¬«      }|j                  ||||¬«      \  }}|j                  |d	|||d
œ¬«       	 |j                  ||||¬«      }|j                  ||¬«      S # t        $ r}| j                  ||¬«      ‚d}~ww xY w)r{  rŽ  Nr"  rC  rƒ  rf  rg  r„  r½   r8  r:  r{  rý   r†  )Ú!async_cancel_response_api_handlerrÅ   rG   rH   r‡   rH  rv  rI  r¶   r«   Ú%transform_cancel_response_api_requestrL  r  r  r  Ú&transform_cancel_response_api_responser•  s                      rˆ   Úcancel_response_api_handlerz.BaseLLMHTTPHandler.cancel_response_api_handler’  sŽ  € ñ$ Ø×9Ñ9Ø'Ø.KØ-Ø'Ø$7Ø+Ø%ØØØ-ð :ó ð ð ˆ>¤¨F´KÔ!@Ü 1¸,È×HZÑHZÐ[gÐimÓHnÐ9oÔ pÑà &Ðà6×KÑKØ!Ò' R¨vÀnð Ló 
ˆñ Ø�N‰N˜=Ô)à7×HÑHØ#×,Ñ,Ü Ó/ð Ió 
ˆð
 2×WÑWØ#ØØ)Øð	 Xó 
‰	ˆˆTð 	×ÑØØà'+ØØ"ñð 	ô 	
ð	Ø/×4Ñ4¸ÀgÐTXÐbiÐ4ÓjˆHð -×SÑSØ!Ø#ð Tó 
ð 	
øô ò 	Ø×$Ñ$ØØ =ð %ó ð ûð	ús   ÃC; Ã;	DÄDÄDc              ƒ   ó�  K  — |	�t        |	t        «      sWt        j                  d|rt	        |«      nd«       t        t        j                  |«      d|j                  dd«      i|¬«      }n|	}|j                  |xs i d|¬«      }|r|j                  |«       |j                  |j                  t        |«      ¬«      }|j                  ||||¬«      \  }}|j                  |d	|||d
œ¬«       	 |j!                  ||||¬«      ƒ d{  –—† }|j'                  ||¬«      S 7 Œ# t"        $ r}| j%                  ||¬«      ‚d}~ww xY w­w)zt
        Async version of the cancel response API handler.
        Uses async HTTP client to make requests.
        Nz@Creating HTTP client for cancel_response with shared_session: %sr"  r#  rƒ  rf  rg  r„  r½   r8  r:  r{  rý   r†  )rÅ   rF   r   r)  r¼   rI   rÖ   r*  r‡   rH  rv  rI  r¶   r«   r  rL  r  r  r  r  )r  r�  rc  r�   r·   r€   rø  r3  r¤   r  r}  r   rò   r£   r¶   r¢   rô   r  rú   s                      rˆ   r  z4BaseLLMHTTPHandler.async_cancel_response_api_handlerâ  s’  è ø€ ð$ ˆ>¤¨FÔ4DÔ!EÜ× Ñ ØRÙ&4”�>Ô"¸$ôô "8Ü$×1Ñ1Ð2EÓFØ$ n×&8Ñ&8¸ÀtÓ&LÐMØ-ô"Ñð "(Ðà6×KÑKØ!Ò' R¨vÀnð Ló 
ˆñ Ø�N‰N˜=Ô)à7×HÑHØ#×,Ñ,Ü Ó/ð Ió 
ˆð
 2×WÑWØ#ØØ)Øð	 Xó 
‰	ˆˆTð 	×ÑØØà'+ØØ"ñð 	ô 	
ð	Ø$6×$;Ñ$;ÀÈWÐ[_ÐipÐ$;Ó$q×qˆHð -×SÑSØ!Ø#ð Tó 
ð 	
ð rùäò 	Ø×$Ñ$ØØ =ð %ó ð ûð	üs<   ‚C-EÃ0D" ÄD Ä	D" ÄEÄ D" Ä"	EÄ+D>Ä>EÅErc   c                 óà  — |r| j                  |||||||||	|
||¬«      S |�t        |t        «      st        d|j	                  dd«      i¬«      }n|}|j                  |xs i ||¬«      }|r|j                  |«       |j                  |j                  t        |«      ¬«      }|j                  ||||||¬«      \  }}t        j                  |«      }|j                  |t        |«      |||j                  |¬«      \  }}|�d	|ind
|i}|j                  |d|||dœ¬«       	  |j                   d|||
dœ|¤Ž}|j'                  ||¬«      S # t"        $ r}| j%                  ||¬«      ‚d}~ww xY w)z8
        Handler for the compact responses API.
        )r  r;  rc  r[  r�   r·   r€   rø  r3  r¤   r  r   Nr"  rC  rf  rg  ©r  r;  r[  r¶   r�   r£   rp  rô   r¥   r½   r8  r:  rn  rý   r†  r°   )Ú"async_compact_response_api_handlerrÅ   rG   rH   r‡   rH  rv  rI  r¶   r«   Ú&transform_compact_response_api_requestr=   rs  rK  r  rL  r  r  r  Ú'transform_compact_response_api_response)r  r  r;  rc  r[  r�   r·   r€   rø  r3  r¤   r  r}  r   r  r£   r¶   r¢   rô   rq  rx  r  rú   s                          rˆ   Úcompact_response_api_handlerz/BaseLLMHTTPHandler.compact_response_api_handler-  s  € ñ& Ø×:Ñ:ØØØ.KØ5YØ-Ø'Ø$7Ø+Ø%ØØØ-ð ;ó ð ð ˆ>¤¨F´KÔ!@Ü 1¸,È×HZÑHZÐ[gÐimÓHnÐ9oÔ pÑà &Ðà/×DÑDØ!Ò' R¨uÀ^ð Eó 
ˆñ Ø�N‰N˜=Ô)à7×HÑHØ#×,Ñ,Ü Ó/ð Ió 
ˆð *×PÑPØØØ1UØØ)Øð Qó 
ñ	
ØØô &×JÑJÈ4ÓPˆà<×IÑIØÜ  Ó0ØØØ"×*Ñ*Øð  Jó  
Ñˆ�ð GRÐF]¨f°kÑ-BÐdjÐlpÐcqˆð 	×ÑØØà'+ØØ"ñð 	ô 	
ð	Ø4Ð/×4Ñ4Ðn¸ÀgÐW^ÑnÐbmÑnˆHð -×TÑTØ!Ø#ð Uó 
ð 	
øô ò 	Ø×$Ñ$ØØ =ð %ó ð ûð	ús   Ä#E Å	E-ÅE(Å(E-c              ƒ   ó.  K  — |�t        |t        «      sWt        j                  d|rt	        |«      nd«       t        t        j                  |«      d|j                  dd«      i|¬«      }n|}|j                  |xs i ||¬«      }|r|j                  |«       |j                  |j                  t        |«      ¬«      }|j                  ||||||¬«      \  }}t        j                   |«      }|j#                  |t        |«      |||j$                  |¬«      \  }}|�d	|ind
|i}|j'                  |d|||dœ¬«       	  |j(                  d|||
dœ|¤Žƒ d{  –—† }|j/                  ||¬«      S 7 Œ# t*        $ r}| j-                  ||¬«      ‚d}~ww xY w­w)zD
        Async version of the compact response API handler.
        NzACreating HTTP client for compact_response with shared_session: %sr"  r#  rf  rg  r  rp  rô   r¥   r½   r8  r:  rn  rý   r†  r°   )rÅ   rF   r   r)  r¼   rI   rÖ   r*  r‡   rH  rv  rI  r¶   r«   r  r=   rs  rK  r  rL  r  r  r  r  )r  r  r;  rc  r[  r�   r·   r€   rø  r3  r¤   r  r}  r   rò   r£   r¶   r¢   rô   rq  rx  r  rú   s                          rˆ   r  z5BaseLLMHTTPHandler.async_compact_response_api_handler�  s	  è ø€ ð& ˆ>¤¨FÔ4DÔ!EÜ× Ñ ØSÙ&4”�>Ô"¸$ôô "8Ü$×1Ñ1Ð2EÓFØ$ n×&8Ñ&8¸ÀtÓ&LÐMØ-ô"Ñð "(Ðà/×DÑDØ!Ò' R¨uÀ^ð Eó 
ˆñ Ø�N‰N˜=Ô)à7×HÑHØ#×,Ñ,Ü Ó/ð Ió 
ˆð *×PÑPØØØ1UØØ)Øð Qó 
ñ	
ØØô &×JÑJÈ4ÓPˆà<×IÑIØÜ  Ó0ØØØ"×*Ñ*Øð  Jó  
Ñˆ�ð GRÐF]¨f°kÑ-BÐdjÐlpÐcqˆð 	×ÑØØà'+ØØ"ñð 	ô 	
ð	Ø$;Ð$6×$;Ñ$;Ð$uÀÈWÐ^eÑ$uÐitÑ$u×uˆHð -×TÑTØ!Ø#ð Uó 
ð 	
ð vùäò 	Ø×$Ñ$ØØ =ð %ó ð ûð	üs<   ‚D;FÄ>E1 ÅE/ÅE1 ÅFÅ/E1 Å1	FÅ:FÆFÆFÚfile_idc	           	      ó¸  — |r| j                  |||||||¬«      S |�t        |t        «      st        «       }	n|}	|j	                  |i |¬«      \  }
}|j                  |j                  d«      |dg i |¬«      }|j                  dd|
||dœ¬«       	 |	j                  |
||¬	«      }|j                  |||¬«      S # t        $ r}| j                  ||¬
«      ‚d}~ww xY w)z.
        Retrieve file metadata by ID
        ©r  ró   r�   r£   r·   r  r¤   N©r  r  r�   r  r½   rn  ©r¶   r£   r  r:  r‘  rý   ©r'  r·   r�   )Úasync_retrieve_filerÅ   rG   rH   Útransform_retrieve_file_requestrH  r‡   rL  r  r  Ú transform_retrieve_file_response©r  r  ró   r�   r£   r·   r}  r  r¤   r  r¢   r%  r  rú   s                 rˆ   Úretrieve_filez BaseLLMHTTPHandler.retrieve_fileì  sA  € ñ Ø×+Ñ+ØØ /Ø-ØØ'ØØð ,ó ð ð ˆ>¤¨F´KÔ!@Ü 1Ó 3Ñà &Ðð &×EÑEØØØ)ð Fó 
‰ˆˆVð "×6Ñ6Ø"×&Ñ& yÓ1ØØØØØ)ð 7ó 
ˆð 	×ÑØØàØ"Ø"ñð 	ô 	
ð	KØ/×3Ñ3¸ÀWÐU[Ð3Ó\ˆHð ×?Ñ?Ø!Ø#Ø)ð @ó 
ð 	
øô ò 	KØ×$Ñ$ q¸/Ð$ÓJÐJûð	Kúó   ÂB8 Â8	CÃCÃCc              ƒ   ó¸  K  — |�t        |t        «      st        |j                  ¬«      }n|}|j	                  |i |¬«      \  }	}
|j                  |j                  d«      |dg i |¬«      }|j                  dd|	||dœ¬«       	 |j                  |	||
¬	«      ƒ d{  –—† }|j                  |||¬«      S 7 Œ# t        $ r}| j                  ||¬
«      ‚d}~ww xY w­w)z4
        Async retrieve file metadata by ID
        Nr†  r  r  r½   rn  r  r:  r‘  rý   r  )rÅ   rF   rI   r€   r  rH  r‡   rL  r  r  r   ©r  r  ró   r�   r£   r·   r  r¤   rò   r¢   r%  r  rú   s                rˆ   r  z&BaseLLMHTTPHandler.async_retrieve_file0  s"  è ø€ ð ˆ>¤¨FÔ4DÔ!EÜ!7À_×EhÑEhÔ!iÑà!'Ðð &×EÑEØØØ)ð Fó 
‰ˆˆVð "×6Ñ6Ø"×&Ñ& yÓ1ØØØØØ)ð 7ó 
ˆð 	×ÑØØàØ"Ø"ñð 	ô 	
ð	KØ$6×$:Ñ$:¸sÈGÐ\bÐ$:Ó$c×cˆHð ×?Ñ?Ø!Ø#Ø)ð @ó 
ð 	
ð	 dùÜò 	KØ×$Ñ$ q¸/Ð$ÓJÐJûð	Küó<   ‚BCÂB6 ÂB4ÂB6 Â CÂ4B6 Â6	CÂ?CÃCÃCr   c	           	      ó¸  — |r| j                  |||||||¬«      S |�t        |t        «      st        «       }	n|}	|j	                  |i |¬«      \  }
}|j                  |j                  d«      |dg i |¬«      }|j                  dd|
||dœ¬«       	 |	j                  |
||¬	«      }|j                  |||¬«      S # t        $ r}| j                  ||¬
«      ‚d}~ww xY w)z%
        Delete a file by ID
        r  Nr  r  r½   rn  r  r:  r‘  rý   r  )Úasync_delete_filerÅ   rG   rH   Útransform_delete_file_requestrH  r‡   rL  r‰  r  r  Útransform_delete_file_responser!  s                 rˆ   Údelete_filezBaseLLMHTTPHandler.delete_fileh  s@  € ñ Ø×)Ñ)ØØ /Ø-ØØ'ØØð *ó ð ð ˆ>¤¨F´KÔ!@Ü 1Ó 3Ñà &Ðð &×CÑCØØØ)ð Dó 
‰ˆˆVð "×6Ñ6Ø"×&Ñ& yÓ1ØØØØØ)ð 7ó 
ˆð 	×ÑØØàØ"Ø"ñð 	ô 	
ð	KØ/×6Ñ6¸3ÈÐX^Ð6Ó_ˆHð ×=Ñ=Ø!Ø#Ø)ð >ó 
ð 	
øô ò 	KØ×$Ñ$ q¸/Ð$ÓJÐJûð	Kúr#  c              ƒ   óº  K  — |�t        |t        «      st        |j                  ¬«      }n|}|j	                  |i |¬«      \  }	}
|j                  |j                  d«      |dg i |¬«      }|j                  dd|	||dœ¬«       	 |j                  |	||
|¬	«      ƒ d{  –—† }|j                  |||¬«      S 7 Œ# t        $ r}| j                  ||¬
«      ‚d}~ww xY w­w)z+
        Async delete a file by ID
        Nr†  r  r  r½   rn  r  r:  ©r¢   r£   r%  r¤   rý   r  )rÅ   rF   rI   r€   r)  rH  r‡   rL  r‰  r  r  r*  r%  s                rˆ   r(  z$BaseLLMHTTPHandler.async_delete_file¬  s$  è ø€ ð ˆ>¤¨FÔ4DÔ!EÜ!7À_×EhÑEhÔ!iÑà!'Ðð &×CÑCØØØ)ð Dó 
‰ˆˆVð "×6Ñ6Ø"×&Ñ& yÓ1ØØØØØ)ð 7ó 
ˆð 	×ÑØØàØ"Ø"ñð 	ô 	
ð	KØ$6×$=Ñ$=À#ÈwÐ_eÐovÐ$=Ó$w×wˆHð ×=Ñ=Ø!Ø#Ø)ð >ó 
ð 	
ð	 xùÜò 	KØ×$Ñ$ q¸/Ð$ÓJÐJûð	Küs<   ‚BCÂB7 ÂB5ÂB7 Â!CÂ5B7 Â7	CÃ CÃCÃCÚpurposec	           	      ó¸  — |r| j                  |||||||¬«      S |�t        |t        «      st        «       }	n|}	|j	                  |i |¬«      \  }
}|j                  |j                  d«      |dg i |¬«      }|j                  dd|
||dœ¬«       	 |	j                  |
||¬	«      }|j                  |||¬«      S # t        $ r}| j                  ||¬
«      ‚d}~ww xY w)z 
        List all files
        )r.  ró   r�   r£   r·   r  r¤   N©r.  r  r�   r  r½   rn  ©r¶   r£   r.  r:  r‘  rý   r  )Úasync_list_filesrÅ   rG   rH   Útransform_list_files_requestrH  r‡   rL  r  r  Útransform_list_files_response)r  r.  ró   r�   r£   r·   r}  r  r¤   r  r¢   r%  r  rú   s                 rˆ   Ú
list_fileszBaseLLMHTTPHandler.list_filesä  s@  € ñ Ø×(Ñ(ØØ /Ø-ØØ'ØØð )ó ð ð ˆ>¤¨F´KÔ!@Ü 1Ó 3Ñà &Ðð &×BÑBØØØ)ð Có 
‰ˆˆVð "×6Ñ6Ø"×&Ñ& yÓ1ØØØØØ)ð 7ó 
ˆð 	×ÑØØàØ"Ø"ñð 	ô 	
ð	KØ/×3Ñ3¸ÀWÐU[Ð3Ó\ˆHð ×<Ñ<Ø!Ø#Ø)ð =ó 
ð 	
øô ò 	KØ×$Ñ$ q¸/Ð$ÓJÐJûð	Kúr#  c              ƒ   ó¸  K  — |�t        |t        «      st        |j                  ¬«      }n|}|j	                  |i |¬«      \  }	}
|j                  |j                  d«      |dg i |¬«      }|j                  dd|	||dœ¬«       	 |j                  |	||
¬	«      ƒ d{  –—† }|j                  |||¬«      S 7 Œ# t        $ r}| j                  ||¬
«      ‚d}~ww xY w­w)z&
        Async list all files
        Nr†  r0  r  r½   rn  r1  r:  r‘  rý   r  )rÅ   rF   rI   r€   r3  rH  r‡   rL  r  r  r4  )r  r.  ró   r�   r£   r·   r  r¤   rò   r¢   r%  r  rú   s                rˆ   r2  z#BaseLLMHTTPHandler.async_list_files(  s!  è ø€ ð ˆ>¤¨FÔ4DÔ!EÜ!7À_×EhÑEhÔ!iÑà!'Ðð &×BÑBØØØ)ð Có 
‰ˆˆVð "×6Ñ6Ø"×&Ñ& yÓ1ØØØØØ)ð 7ó 
ˆð 	×ÑØØàØ"Ø"ñð 	ô 	
ð	KØ$6×$:Ñ$:¸sÈGÐ\bÐ$:Ó$c×cˆHð ×<Ñ<Ø!Ø#Ø)ð =ó 
ð 	
ð	 dùÜò 	KØ×$Ñ$ q¸/Ð$ÓJÐJûð	Kür&  Úfile_content_requestr`   ra   c	           	      óX  — |r| j                  |||||||¬«      S |�t        |t        «      st        «       }	n|}	|j	                  |i |¬«      \  }
}|j                  |j                  d«      |dg i |¬«      }|j                  dd|
||j                  d«      dœ¬	«       	 |	j                  |
||¬
«      }|j                  dk\  r2|j                  |j                  |j                  |j                  ¬«      ‚|j                  |||¬«      S # t        $ r}| j                  ||¬«      ‚d}~ww xY w)z-
        Retrieve file content by ID
        )r7  ró   r�   r£   r·   r  r¤   N©r7  r  r�   r  r½   rn  r  r  r:  r‘  rý   é�  r   r  )Úasync_retrieve_file_contentrÅ   rG   rH   Útransform_file_content_requestrH  r‡   rL  r  r  r  r  r˜  r£   Útransform_file_content_response)r  r7  ró   r�   r£   r·   r}  r  r¤   r  r¢   r%  r  rú   s                 rˆ   Úretrieve_file_contentz(BaseLLMHTTPHandler.retrieve_file_content`  sŒ  € ñ Ø×3Ñ3Ø%9Ø /Ø-ØØ'ØØð 4ó ð ð ˆ>¤¨F´KÔ!@Ü 1Ó 3Ñà &Ðð &×DÑDØ!5ØØ)ð Eó 
‰ˆˆVð "×6Ñ6Ø"×&Ñ& yÓ1ØØØØØ)ð 7ó 
ˆð 	×ÑØØàØ"Ø/×3Ñ3°IÓ>ñð 	ô 	
ð	KØ/×3Ñ3¸ÀWÐU[Ð3Ó\ˆHð ×Ñ 3Ò&Ø!×1Ñ1Ø&Ÿm™mØ$×0Ñ0Ø ×(Ñ(ð 2ó ð ð ×>Ñ>Ø!Ø#Ø)ð ?ó 
ð 	
øô ò 	KØ×$Ñ$ q¸/Ð$ÓJÐJûð	Kús   ÂD Ä	D)ÄD$Ä$D)c           	   ƒ   óX  K  — |�t        |t        «      st        |j                  ¬«      }n|}|j	                  |i |¬«      \  }	}
|j                  |j                  d«      |dg i |¬«      }|j                  dd|	||j                  d«      dœ¬	«       	 |j                  |	||
¬
«      ƒ d{  –—† }|j                  dk\  r2|j                  |j                  |j                  |j                  ¬«      ‚|j                  |||¬«      S 7 ŒY# t        $ r}| j                  ||¬«      ‚d}~ww xY w­w)z3
        Async retrieve file content by ID
        Nr†  r9  r  r½   rn  r  r  r:  r‘  rý   r:  r   r  )rÅ   rF   rI   r€   r<  rH  r‡   rL  r  r  r  r  r˜  r£   r=  )r  r7  ró   r�   r£   r·   r  r¤   rò   r¢   r%  r  rú   s                rˆ   r;  z.BaseLLMHTTPHandler.async_retrieve_file_content«  sm  è ø€ ð ˆ>¤¨FÔ4DÔ!EÜ!7À_×EhÑEhÔ!iÑà!'Ðð &×DÑDØ!5ØØ)ð Eó 
‰ˆˆVð "×6Ñ6Ø"×&Ñ& yÓ1ØØØØØ)ð 7ó 
ˆð 	×ÑØØàØ"Ø/×3Ñ3°IÓ>ñð 	ô 	
ð	KØ$6×$:Ñ$:¸sÈGÐ\bÐ$:Ó$c×cˆHð ×Ñ 3Ò&Ø!×1Ñ1Ø&Ÿm™mØ$×0Ñ0Ø ×(Ñ(ð 2ó ð ð ×>Ñ>Ø!Ø#Ø)ð ?ó 
ð 	
ð dùÜò 	KØ×$Ñ$ q¸/Ð$ÓJÐJûð	Küs=   ‚BD*ÂD Â*DÂ+D Â/AD*ÄD Ä	D'ÄD"Ä"D'Ä'D*c                 óB   — |du rd}|j                  dd«       ||fS ||fS )zI
        Handles preparing a request when `fake_stream` is True.
        TFrõ   N)rD  )r  rõ   rô   r1  s       rˆ   rt  z/BaseLLMHTTPHandler._prepare_fake_stream_requestê  s3   € ð ˜$ÑØˆFØ�H‰H�X˜tÔ$Ø˜4�<ÐØ�tˆ|ÐrŠ   c                 óÔ   — t        | j                  dd«      xs d«      }t        | j                  d«      d¬«      }|€t        n|}t	        | j                  dg «      xs g «      }|||fS )Nr}  r   Úmax_agentic_loopsz litellm_params.max_agentic_loops)ÚfieldÚ_agentic_loop_fingerprints)Úintr‡   r!   r    rÕ   )r(  ÚdepthÚ
configuredÚ	max_loopsÚfingerprintss        rˆ   Ú_get_agentic_loop_settingsz-BaseLLMHTTPHandler._get_agentic_loop_settingsù  sq   € ä˜6Ÿ:™:Ð&;¸QÓ?ÒDÀ1ÓEˆÜ7Ø�J‰JÐ*Ó+Ð3Uô
ˆ
ð 9CÐ8JÕ4ÐPZˆ	Ü" 6§:¡:Ð.JÈBÓ#OÒ#UÐSUÓVˆØ�i Ð-Ð-rŠ   c                 ó¬   — ddl m} |j                  }t        | «      D ]4  }t	        t        |«      d|«      }t	        |d|«      t	        |d|«      usŒ4 y y)aä  
        True if any registered callback actually overrides
        ``async_should_run_agentic_loop`` (the gate every agentic hook goes
        through). The base ``CustomLogger`` implementation returns
        ``(False, {})``, so when nothing overrides it the agentic
        post-processing is a guaranteed no-op and the streaming wrapper that
        buffers + rebuilds the whole response from SSE just to call it can be
        skipped entirely.

        Function-identity comparison (not a leaf ``__dict__`` check) so an
        override inherited through any intermediate class is still detected --
        a false negative here would silently disable agentic features.

        String entries in ``litellm.callbacks`` (e.g. ``"datadog"``) are
        resolved to their ``CustomLogger`` instance via
        ``get_custom_logger_compatible_class`` -- same pattern as
        ``ProxyLogging._callback_capabilities`` -- so a string-registered
        agentic callback is detected too.
        r   r�   Úasync_should_run_agentic_looprà   TF)rÓ   r‘   rL  rÞ   rÃ   rá   râ   s        rˆ   r  z/BaseLLMHTTPHandler._has_agentic_completion_hook  s]   € õ* 	Dà'×EÑEˆ	Ü*¨;Ó7ò 	ˆBÜœd 2›hÐ(GÈÓSˆGÜ�w 
¨GÓ4¼GÀIÈzÐ[dÓ<eÒeÙð	ð rŠ   r  c                 ó†   ‡‡— t        ‰t        «      r‰s
t        «       S ddlmŠ t        ˆˆfd„t        | «      D «       «      S )zaThe request's tools that a registered callback fulfills server-side (e.g. ``headroom_retrieve``).r   )Úhas_tool_with_namec              3   óh   •K  — | ])  }t        |d t        «       «      D ]  } ‰‰|«      r|–— Œ Œ+ y­w)r  N)rÃ   rÍ   )rê   rÜ   ÚnamerN  r  s      €€rˆ   rì   zHBaseLLMHTTPHandler._server_fulfilled_tools_in_request.<locals>.<genexpr>(  sD   øè ø€ ò 
àÜ Ð$AÄ9Ã;ÓOò
ð Ù! %¨Ô.ô ð
Øñ
ùs   ƒ/2)rÅ   rÕ   rÍ   Ú3litellm.litellm_core_utils.prompt_templates.factoryrN  rÞ   )r·   r  rN  s    `@rˆ   r%  z5BaseLLMHTTPHandler._server_fulfilled_tools_in_request!  s;   ù€ ô ˜%¤Ô&©eÜ“;ÐÝZäô 
ä.¨{Ó;ô
ó 
ð 	
rŠ   Ú
tool_callsrI  rF  rH  c                 óz   — t         j                  | «      }||v rt        d«      ‚||k\  rt        d|› d|› �«      ‚|S )u­  
        Evaluate agentic-loop safety guards (fingerprint cycle / max depth).

        Raises AgenticLoopSafetyError on abort.  Returns the current fingerprint
        on success.

        These checks must not be swallowed by the per-callback ``except Exception``
        block that wraps callback dispatch â€” they are bounded-loop / cycle-break
        safety rails and must abort the agentic dispatch when they trip.
        zDAgentic loop detected repeated tool-call fingerprint; aborting rerunzExceeded max_agentic_loops=z for model=)rñ   Ú_fingerprint_agentic_toolsrX   )rR  rI  rF  rH  r  Úfingerprints         rˆ   Ú_check_agentic_loop_safetyz-BaseLLMHTTPHandler._check_agentic_loop_safety/  sR   € ô$ 0×JÑJÈ:ÓVˆØ˜,Ñ&Ü(Ð)oÓpÐpØ�IÒÜ(Ð+FÀyÀkÐQ\Ð]bÐ\cÐ)dÓeÐeØÐrŠ   c                 óp   — 	 t        j                  | dt        ¬«      S # t        $ r t        | «      cY S w xY w)NT)Ú	sort_keysÚdefault)r¥   r  r©   r  )r  s    rˆ   rT  z-BaseLLMHTTPHandler._fingerprint_agentic_toolsH  s3   € ð	Ü—:‘:˜e¨t¼SÔAÐAøÜò 	Ü�u“:Òð	ús   ‚ ž5´5c                 ó  — t        | t        «      r| j                  d«      n| }t        |t        «      st	        «       t	        «       fS d„ |D «       }t        d„ |D «       «      }t	        d„ |D «       «      }t	        d„ |D «       «      }||fS )a8  
        Collect the ids and names of the tool calls a safety rail just refused.

        Callbacks hand back either a bare list of tool calls or a dict wrapping
        that list under ``tool_calls``, and both the anthropic and responses
        shapes carry an ``id`` (or ``call_id``) plus a ``name``.
        rR  c              3   óB   K  — | ]  }t        |t        «      sŒ|–— Œ y ­wrÌ   )rÅ   r«   ©rê   Úcalls     rˆ   rì   zGBaseLLMHTTPHandler._refused_agentic_tool_identifiers.<locals>.<genexpr>[  s   è ø€ ÒN d´zÀ$ÌÕ7MœTÑNùs   ‚˜c              3   ó€   K  — | ]6  }|j                  d «      |j                  d«      |j                  d«      f–— Œ8 y­w)r¼   Úcall_idrP  Nr†   r\  s     rˆ   rì   zGBaseLLMHTTPHandler._refused_agentic_tool_identifiers.<locals>.<genexpr>\  s2   è ø€ ÒmÐZ^˜tŸx™x¨›~¨t¯x©x¸	Ó/BÀDÇHÁHÈVÓDTÔUÑmùs   ‚<>c              3   ó\   K  — | ]$  \  }}}||fD ]  }t        |t        «      sŒ|–— Œ Œ& y ­wrÌ   ©rÅ   r©   )rê   r_  Ú	caller_idÚ_rP  s        rˆ   rì   zGBaseLLMHTTPHandler._refused_agentic_tool_identifiers.<locals>.<genexpr>]  s>   è ø€ ò 
Ù+�g˜y¨!ÀGÈYÐCWò
Ø:?Ô[eÐfkÔmpÕ[qŒEð
Øñ
ùs   ‚ ,£	,c              3   óJ   K  — | ]  \  }}}t        |t        «      sŒ|–— Œ y ­wrÌ   ra  )rê   rc  rP  s      rˆ   rì   zGBaseLLMHTTPHandler._refused_agentic_tool_identifiers.<locals>.<genexpr>`  s    è ø€ Ò X©*¨!¨Q°Ä*ÈTÔSVÕBW¤Ñ Xùs   ‚#œ#)rÅ   r«   r‡   rÕ   rÍ   rØ   )rR  ÚcallsÚ
dict_callsÚfieldsÚidsÚnamess         rˆ   Ú!_refused_agentic_tool_identifiersz4BaseLLMHTTPHandler._refused_agentic_tool_identifiersO  s†   € ô 8BÀ*ÌdÔ7S�z—~‘~ lÔ3ÐYcˆÜ˜%¤Ô&Ü“;¤	£Ð+Ð+ÙN¨eÔNˆ
ÜÑmÐblÔmÓmˆÜñ 
Ø/5ô
ó 
ˆô !Ñ X¸Ô XÓXˆØ�EˆzÐrŠ   rî  Úrefused_idsÚrefused_namesc                 óÀ   — t        | t        «      r| j                  d«      dk7  ry| j                  d«      }t        |t        «      r|r||v S | j                  d«      |v S )ar  
        Whether this response block belongs to a tool call the rail refused.

        An id settles it on its own, so a block carrying one is matched on the id
        alone and a client's own tool call survives even where it happens to
        share a name with a refused one. The name is only consulted for tool call
        shapes that arrive without an id.
        rá   Útool_useFr¼   rP  )rÅ   r«   r‡   r©   )rî  rk  rl  Úblock_ids       rˆ   Ú_is_refused_tool_use_blockz-BaseLLMHTTPHandler._is_refused_tool_use_blockc  sY   € ô ˜%¤Ô&¨%¯)©)°FÓ*;¸zÒ*IØØŸ)™) D›/ˆÜ�h¤Ô$©Ø˜{Ð*Ð*Ø�y‰y˜Ó  MÐ1Ð1rŠ   rp  c                 ó   — |  xr |dk(  S )a)  
        Whether a refused rerun can still be answered with a finalized turn.

        Only the anthropic messages surface can. The responses surface carries a
        pydantic model the finalizer does not rewrite, so it keeps raising, which
        is what every surface did before this path learned to end the turn.

        The messages and responses call sites pass ``stream=False``, because
        interception converts an intercepted stream to non-streaming before the
        loop runs and rebuilds the SSE stream from the finalized turn
        afterwards. ``AgenticStreamingIterator`` passes ``stream=True``, and
        that path keeps raising: its events are already on the wire, so a
        finalized turn would reach the client as a second message rather than
        as a replacement.
        r5  r°   )rõ   rp  s     rˆ   Ú(_can_replace_turn_with_terminal_responsez;BaseLLMHTTPHandler._can_replace_turn_with_terminal_responset  s   € ð" ˆzÒA˜kÐ-AÑAÐArŠ   c                 ól  — t        | t        «      s| S t        j                  |«      \  }}t        | «      }|j	                  d«      }t        |t
        «      rX|D �cg c]  }t        j                  |||«      s|‘Œ }}||d<   t        d„ |D «       «      }|s|j	                  d«      dk(  rd|d<   |S c c}w )a—  
        Turn the response into a terminal turn after a safety rail refused the rerun.

        The refused tool calls target tools LiteLLM injected on the client's
        behalf, so a client that never declared them cannot send back a matching
        ``tool_result``. Their blocks are dropped and a ``tool_use`` stop reason
        is closed out as ``end_turn``, which is what a provider-native web search
        turn returns once it stops calling tools.

        A ``tool_use`` block the client itself declared is left alone, and while
        one is still in the response the stop reason stays ``tool_use`` so the
        client knows to answer it.
        r´   c              3   óh   K  — | ]*  }t        |t        «      xr |j                  d «      dk(  –— Œ, y­w)rá   rn  N)rÅ   r«   r‡   )rê   rî  s     rˆ   rì   zHBaseLLMHTTPHandler._finalize_refused_agentic_response.<locals>.<genexpr>£  s2   è ø€ ò 1ØPU”
˜5¤$Ó'ÒK¨E¯I©I°fÓ,=ÀÑ,KÓKñ1ùrí   Ústop_reasonrn  Úend_turn)rÅ   r«   rñ   rj  r‡   rÕ   rp  Úany)	r  rR  rk  rl  Ú	finalizedr´   rî  Úkept_blocksÚclient_tool_use_remainss	            rˆ   Ú"_finalize_refused_agentic_responsez5BaseLLMHTTPHandler._finalize_refused_agentic_response‡  sÊ   € ô ˜(¤DÔ)ØˆOä%7×%YÑ%YÐZdÓ%eÑ"ˆ�]Ü ›>ˆ	Ø"Ÿ™ yÓ1ˆÜ�gœtÔ$ð %ö"àÜ)×DÑDÀUÈKÐYfÔgò ð"ˆKð "ð
 $/ˆI�iÑ Ü-0ñ 1ØYdô1ó .Ð#ñ +¨y¯}©}¸]Ó/KÈzÒ/YØ+5�	˜-Ñ(ØÐùò"s   Á B1ÚplanrU  rë   r‘   c           	   ƒ   óž  K  — ddl m} |j                  xs
 t        «       }|j                  €t	        d«      ‚|}|�<|j
                  j                  di «      }t        t        |j                  d|«      «      }t        |«      }|j                  |j                  «       |j                  �|j                  |d<   |j                  }|€$t        t        d z  |j                  dd «      «      }n|j                  dd «       |€ t        t        |j                  dd«      «      }d	h}|j!                  «       D ��ci c]2  \  }}|j#                  d
«      s|j#                  d«      s||vr||vr||“Œ4 }}}|j                  |j$                  «       |dz   |d<   ||d<   |	|
gz   |d<    |j&                  di ||j                  |j(                  xs ||dœ|¥|¥¤Žƒ d {  –—† }|�	 |j+                  |||¬«      ƒ d {  –—† }|S |S c c}}w 7 Œ-7 Œ# t,        $ r9}t/        |dd«      }t1        j2                  d||t        |«      «       Y d }~|S d }~ww xY w­w)Nr   rG  ú*Agentic loop plan missing patched messagesÚagentic_loop_paramsr  r  Ú
max_tokensi   r  Ú_websearch_interceptionÚ_compression_interceptionr‹   r}  rB  rD  )r€  r  r  rõ   ©r  r|  r(  Úlitellm_call_idÚunknownúfLiteLLM.AgenticHookError: Exception in async_post_agentic_loop_response_hook [call_id=%s model=%s]: %sr°   )Úlitellm.anthropic_interfacer  Úrequest_patchrW   rF  rM  r‡   r   r©   r«   rv  r  r  r€  rE  rD  rL  Ú
startswithr(  Úacreater  Ú%async_post_agentic_loop_response_hookr  rÃ   r   rÉ  )r  r|  r  r  r÷  r·   r(  rF  rH  rI  rU  rõ   rë   r5  ÚpatchÚfull_model_nameÚagentic_paramsr  r€  Úinternal_keysÚkÚvÚkwargs_for_followupr  rú   Ú_call_ids                             rˆ   Ú_execute_anthropic_agentic_planz2BaseLLMHTTPHandler._execute_anthropic_agentic_planª  s”  è ø€ õ 	Oà×)Ñ)ÒFÔ-DÓ-FˆØ�>‰>Ð!ÜÐIÓJÐJàˆØÐ"Ø:E×:XÑ:X×:\Ñ:\Ð]rÐtvÓ:wˆNÜ"¤3¨×(:Ñ(:¸7ÀEÓ(JÓKˆOä!%Ð&PÓ!QˆØ×Ñ˜u×4Ñ4Ô5Ø�;‰;Ð"Ø',§{¡{ˆO˜GÑ$à×%Ñ%ˆ
ØÐÜœc D™j¨/×*=Ñ*=¸lÈDÓ*QÓR‰Jà×Ñ ¨dÔ3ØÐÜœc 6§:¡:¨l¸DÓ#AÓBˆJà 5Ð6ˆð Ÿ™›÷&
á��1Ø—<‘<Ð 9Ô:Ø—L‘LÐ!<Ô=Ø˜Ñ&Ø˜Ñ(ð ˆq‰Dð&
Ðñ &
ð 	×"Ñ" 5§<¡<Ô0Ø5:¸Q±YÐÐ1Ñ2Ø3<ÐÐ/Ñ0Ø<HÈKÈ=Ñ<XÐÐ8Ñ9àLfÐL^×LfÑLfñ 	M
à(Ø!ŸN™NØŸ™Ò7¨Ø ñ	ð
 "ðð &ðñ	M
÷ 	G
ˆð ÐðØ!)×!OÑ!OØ%¨D¸ð "Pó "÷ �ð ˆˆxˆùóO&
ð	G
øðùô ò Ü")¨+Ð7HÈ)Ó"T�Ü×(Ñ(ðVàØÜ˜“F÷ð ð ˆûðüs[   ‚D3IÄ57G>Å,A*IÇHÇIÇH Ç5HÇ6H Ç:IÈH È	I
È.IÈ?IÉI
É
Ic           	   ƒ   óD  K  — |j                   xs
 t        «       }|j                  €t        d«      ‚t	        |«      }|j                  |j                  «       |j                  �|j                  |d<   |j                  «       D ��ci c]  \  }}|dk7  r|dk7  r||“Œ }}}dh}|j                  «       D ��ci c]7  \  }}|j                  d«      s!|j                  d«      s|dk7  r||vr||vr||“Œ9 }}}|j                  |j                  «       |dz   |d	<   ||d
<   ||	gz   |d<   	 t        j                  d|j                  xs ||j                  dœ|¤|¤Žƒ d {  –—† }|
�	 |
j                  |||¬«      ƒ d {  –—† }||
�| j)                  |
||||¬«      ƒ d {  –—†  S S c c}}w c c}}w 7 ŒR7 Œ5# t        $ r8}t!        |dd«      }t#        j$                  d||t'        |«      «       Y d }~Œod }~ww xY w7 ŒZ# |
� | j)                  |
||||¬«      ƒ d {  –—†7   w w xY w­w)Nz1Agentic loop plan missing patched responses inputr  rõ   r|  r  r�  r‚  r‹   r}  rB  rD  )r  r;  rƒ  r„  r…  r†  )rë   r|  r(  r·   r  r°   )rˆ  rW   r  rF  r«   rv  r  r  rL  r‰  r(  rÖ   Ú
aresponsesr  r‹  r  rÃ   r   rÉ  r©   Ú_run_agentic_loop_cleanup)r  r|  r  r[  r·   r(  rF  rH  rI  rU  rë   rŒ  r  r�  r‘  r�  r’  r  rú   r“  s                       rˆ   Ú_execute_responses_agentic_planz2BaseLLMHTTPHandler._execute_responses_agentic_planû  s©  è ø€ ð ×)Ñ)ÒFÔ-DÓ-FˆØ�>‰>Ð!ÜÐPÓQÐQäÐCÓDˆØ×Ñ˜u×4Ñ4Ô5Ø�;‰;Ð"Ø',§{¡{ˆO˜GÑ$ð (×-Ñ-Ó/÷
á��1Ø�HŠ} Ð&WÒ!Wð ˆq‰Dð
ˆñ 
ð !6Ð6ˆð Ÿ™›÷&
á��1Ø—<‘<Ð 9Ô:Ø—L‘LÐ!<Ô=ØÐFÒFØ˜Ñ&Ø˜Ñ(ð ˆq‰Dð&
Ðñ &
ð 	×"Ñ" 5§<¡<Ô0Ø5:¸Q±YÐÐ1Ñ2Ø3<ÐÐ/Ñ0Ø<HÈKÈ=Ñ<XÐÐ8Ñ9ð 	ÜW^×WiÑWið XØ—k‘kÒ* UØ—n‘nñXð "ðXð &ñ	X÷ RˆHð Ð#ðØ%-×%SÑ%SØ!)°¸Vð &Tó &÷  �Hð àÐ#Ø×4Ñ4Ø%ØØ!Ø +Øð 5ó ÷ ñ ð $ùó]
ùó&
ðRøð ùô !ò Ü&-¨kÐ;LÈiÓ&X�HÜ"×,Ñ,ðZà ØÜ˜A›÷ñ ûðúðùð Ð#Ø×4Ñ4Ø%ØØ!Ø +Øð 5ó ÷ ò ð $üs¢   ‚BH ÂF#ÂH Â6<F)Ã24H Ä'5G9 ÅF/ÅG9 Å$F3 Å;F1Å<F3 Æ G9 ÆH ÆG7ÆH Æ/G9 Æ1F3 Æ3	G4Æ<.G/Ç*G9 Ç/G4Ç4G9 Ç7H Ç9HÈHÈHÈH c           	   ƒ   óÐ   K  — 	 | j                  ||¬«      ƒ d {  –—†  y 7 Œ# t        $ r8}t        |dd«      }t        j                  d||t        |«      «       Y d }~y d }~ww xY w­w)N)r|  r(  r„  r…  z`LiteLLM.AgenticHookError: Exception in async_agentic_loop_cleanup_hook [call_id=%s model=%s]: %s)Úasync_agentic_loop_cleanup_hookr  rÃ   r   rÉ  r©   )rë   r|  r(  r·   r  rú   r“  s          rˆ   r—  z,BaseLLMHTTPHandler._run_agentic_loop_cleanupG  se   è ø€ ð		Ø×:Ñ:ÀÈVÐ:ÓT×TÒTùÜò 	Ü% kÐ3DÀiÓPˆHÜ×$Ñ$ØrØØÜ�A“÷	ñ ûð	üs6   ‚A&„" š ›" ŸA& " ¢	A#«.AÁA&ÁA#Á#A&r~  c                 ó”   — ddl }ddlm} t        |d«      r|j	                  «       n|} |j
                  d|¬«      }	 ||	||||¬«      S )zê
        Wrap a completed responses result as a synthetic stream.

        Used when an interceptor forced stream=False to run the agentic loop on
        the non-streaming path, but the caller originally asked for streaming.
        r   N)rK   Ú
model_dumprâ  )r  r¥   )r  r  rc  r·   r€   )r­   Ú$litellm.responses.streaming_iteratorrK   Úhasattrrœ  ÚResponse)
r  r~  r  rc  r·   r€   r­   rK   Úpayloadr'  s
             rˆ   r  z:BaseLLMHTTPHandler._wrap_responses_response_as_fake_streamZ  sV   € ó 	õ	
ô 18¸ÀÔ0M˜×*Ñ*Ô,ÐSYˆØ,˜eŸn™n¸À7ÔKˆÙ0Ø!ØØ*GØ#Ø 3ô
ð 	
rŠ   c              ƒ   ó„  K  — |j                   xs
 t        «       }|j                  €t        d«      ‚|j                  xs |}d|vr|› d|› �}t        |«      }|j                  |j                  «       |j                  �|j                  |d<   h d£}|j                  «       D ��ci c].  \  }}|j                  d«      s|j                  d«      s||vr||“Œ0 }}}|j                  |j                  «       |dz   |d<   ||d	<   |	|
gz   |d
<   t        j                  d||j                  dœ|¤|¤Žƒ d {  –—† S c c}}w 7 Œ
­w)Nr~  ú/r  >   r0  Úmodel_alias_maprÿ  Úcustom_prompt_dictr€   r  r�  r�  r‚  r‹   r}  rB  rD  )r  r  r°   )rˆ  rW   r  rF  r  r«   rv  r  r  rL  r‰  r(  rÖ   r0  )r  r|  r  r  r  r(  r€   rF  rH  rI  rU  rŒ  r�  Úoptional_params_for_followupÚinternal_paramsr�  r‘  r’  s                     rˆ   Ú%_execute_chat_completion_agentic_planz8BaseLLMHTTPHandler._execute_chat_completion_agentic_planx  sq  è ø€ ð ×)Ñ)ÒFÔ-DÓ-FˆØ�>‰>Ð!ÜÐIÓJÐJàŸ+™+Ò.¨ˆØ�oÑ%Ø!4Ð 5°Q°Ð6GÐHˆOä.2°?Ó.CÐ$Ø$×+Ñ+¨E×,AÑ,AÔBØ�;‰;Ð"Ø49·K±KÐ(¨Ñ1ò"
ˆð Ÿ™›÷&
á��1Ø—<‘<Ð 9Ô:Ø—L‘LÐ!<Ô=Ø˜Ñ(ð	 ˆq‰Dð&
Ðñ &
ð 	×"Ñ" 5§<¡<Ô0Ø5:¸Q±YÐÐ1Ñ2Ø3<ÐÐ/Ñ0Ø<HÈKÈ=Ñ<XÐÐ8Ñ9ä×(Ñ(ð 
Ø!Ø—^‘^ñ
ð +ð
ð "ñ	
÷ 
ð 	
ùó&
ð
ús   ‚B#E Â%3D8ÃAE Ä3D>Ä4E r”   c                 óì   — |dk7  r|S |�|j                   j                  dd«      nd}|rJt        |t        «      r:ddlm} ddlm} ddlm	} ddl
m}  |j                  d	«        | |||«      ¬
«      S |S )aã  
        If the original request was streaming but converted to non-streaming for
        WebSearch interception, wrap the dict response in a FakeAnthropicMessagesStreamIterator.

        The converted-stream flag is only ever set by anthropic-messages websearch
        interception, and the wrapper rebuilds an Anthropic SSE stream, so wrapping
        is gated on ``api_surface == "anthropic_messages"`` to leave other surfaces
        (e.g. the responses API) untouched.
        r5  r>  Fr   )r   ©r   r“   rY   z_WebSearchInterception: Agentic loop completed, converting non-streaming response to fake streamrW  )rM  r‡   rÅ   r«   Útypingr   Úlitellm._loggingr   rX  r”   Ú8litellm.types.llms.anthropic_messages.anthropic_responserZ   r)  )	r  r  r·   rp  Úwebsearch_converted_streamr   r   r”   rZ   s	            rˆ   r7  z-BaseLLMHTTPHandler._maybe_wrap_in_fake_stream®  sŠ   € ð Ð.Ò.ØˆOð Ð&ð ×*Ñ*×.Ñ.Ð/XÐZ_Ô`àð 	#ñ
 &¬*°X¼tÔ*DÝ#å7õõð !ˆN× Ñ Øqôñ 7ÁÐE^Ð`hÓ@iÔjÐjØˆrŠ   r*   c              ƒ   ó²  K  — ddl m} ddlm} t        j
                  |j                  xs g z   }|j                  dg «      }| j                  |	¬«      \  }}}i |	¥d|
i¥}|D �]Ñ  }t        ||«      sŒd}d}	 |j                  |||||||¬	«      ƒ d{  –—† \  }}|sŒ<	 | j                  |||||¬«      }	 |j+                  «       }||d<   |j,                  j.                  |j.                  u}|s7|j1                  |||||||||¬«	      ƒ d{  –—† }| j'                  |||
«      c S |j/                  |||||||||¬«	      ƒ d{  –—† }|j2                  �| j'                  |j2                  ||
«      c S |j4                  rG |j6                  d|j,                  j8                  |j:                  «       | j'                  |||
«      c S |j<                  s�Œr|
dk(  r%| j?                  ||||||||||¬«
      ƒ d{  –—† c S | j'                  | jA                  ||||||||||||¬«      ƒ d{  –—† ||
«      c S  | j'                  |||
«      }||ur|S y7 �Œ¾# t        $ r3} |j                  d
|j                  |t        |«      «       Y d}~�Œ)d}~ww xY w# t         $ rk}| j#                  ||
«      s‚  |j$                  d|j                  |t        |«      «       | j'                  | j)                  ||¬«      ||
«      cY d}~c S d}~ww xY w7 �Œþ7 �ŒÊ7 �Œ7 Œé# t        $ r6}tC        |dd«      } |j                  d||t        |«      «       Y d}~�Œíd}~ww xY w­w)a?  
        Call agentic completion hooks for all custom loggers (Anthropic Messages API).

        1. Call async_should_run_agentic_loop to check if agentic loop is needed
        2. If yes, call async_run_agentic_loop to execute the loop

        Returns the response from agentic loop, or None if no hook runs.
        r   r©  r�   r  ©r(  Ú_agentic_loop_api_surfaceFN©r  r  r  r  rõ   r€   r(  z^LiteLLM.AgenticHookError: Exception in async_should_run_agentic_loop [call_id=%s model=%s]: %s©rR  rI  rF  rH  r  zALiteLLM.AgenticLoopRefused: ending turn [call_id=%s model=%s]: %s)r  rR  r€   )	r  r  r  r  rö  r÷  r·   rõ   r(  z0Agentic loop terminated by callback=%s reason=%sr]  )
r|  r  r[  r·   r(  rF  rH  rI  rU  rë   )r|  r  r  r÷  r·   r(  rF  rH  rI  rU  rõ   rë   r„  r…  zYLiteLLM.AgenticHookError: Exception in agentic completion hooks [call_id=%s model=%s]: %s)"r«  r   rÓ   r‘   rÖ   r×   rÒ   r‡   rJ  rÅ   rL  r  rÉ  r„  r©   rV  rX   rr  Úwarningr7  r{  rh  r�  Úasync_build_agentic_loop_planÚasync_run_agentic_loopÚresponse_overrideÚ	terminater)  r¦   ru  Úrun_agentic_loopr˜  r”  rÃ   )r  r  r  r  rö  r÷  r·   rõ   r€   r(  rp  r   r‘   r×   r  rF  rH  rI  Úhook_kwargsrë   Ú
should_runrR  rú   rU  Úkwargs_with_providerÚbuild_plan_overriddenÚagentic_resultr|  r“  r~  s                                 rˆ   r6  z1BaseLLMHTTPHandler._call_agentic_completion_hooksÕ  s)  è ø€ õ* 	4ÝCä"×,Ñ,°×0UÑ0UÒ0[ÐY[Ñ\ˆ	ØA×EÑEÀgÈrÓRˆØ)-×)HÑ)HÐPVÐ)HÓ)WÑ&ˆˆy˜,àQ ÐQÐ(CÀ[ÑQˆà!ó N	ˆHÜ˜h¨Ô5Øà$ˆJØ!%ˆJðð #×@Ñ@Ø%ØØ%ØØ!Ø(;Ø&ð Aó ÷ ñØØñ& ØðØ"×=Ñ=Ø)Ø!-ØØ'Øð >ó �ð,SØ'2×'7Ñ'7Ó'9Ð$Ø>QÐ$Ð%:Ñ;à×&Ñ&×DÑDÈL×LvÑLvÐvð &ñ -Ø3;×3RÑ3RØ(Ø#Ø!)Ø!)Ø;]ØCmØ$/Ø%Ø3ð 4Só 
4÷ 
.�Nð  ×:Ñ:¸>È;ÐXcÓdÒdà%×CÑCØ$ØØ%Ø%Ø7YØ?iØ +Ø!Ø/ð Dó 
÷ 
�ð ×)Ñ)Ð5Ø×:Ñ:¸4×;QÑ;QÐS^Ð`kÓlÒlØ—>’>Ø(�N×(Ñ(ØJØ ×*Ñ*×3Ñ3Ø×(Ñ(ôð
  ×:Ñ:¸8À[ÐR]Ó^Ò^Ø×,Ò,Ùà +Ò-Ø!%×!EÑ!EØ!Ø#Ø=gØ$/Ø3Ø#Ø"+Ø%1Ø$/Ø!)ð "Fó "÷ ò ð ×6Ñ6Ø×>Ñ>Ø!Ø#Ø!)ØCmØ$/Ø3Ø#Ø"+Ø%1Ø$/Ø%Ø!)ð ?ó ÷ ð  Øó!ò ðkN	ðj ×7Ñ7¸À+È{Ó[ˆØ˜Ñ!ØˆMàðYúô ò Ø(�×(Ñ(ØtØ×/Ñ/ØÜ˜“Fô	õ ûðûô, *ò Ø×DÑDÀVÈ[ÔYØØ&�×&Ñ&ØWØ×/Ñ/ØÜ˜“Fô	ð ×6Ñ6Ø×;Ñ;ÀXÐZdÐ;ÓeØØó÷ ûðúð,
.ùð
ùð2ùðùô" ò Ü" ;Ð0AÀ9ÓM�Ø(�×(Ñ(ØoØØÜ˜“F÷	ò ûðüs  ‚A5MÁ8IÂIÂIÂMÂJÂ6ALÄL
ÄLÄ#MÄ&LÅLÅ,LÅ0MÅ3ALÇMÇLÇMÇ#LÇ7LÇ8LÇ;MÇ>+LÈ)L
È*	LÈ3MÉIÉ	JÉ(JÊMÊJÊMÊ	LÊALË:LË;MÌLÌMÌ
LÌLÌLÌLÌ	MÌ+MÍ	MÍMÍMc	              ƒ   ó  K  — ddl m}	 ddlm}
 t        j
                  |j                  xs g z   }|j                  dg «      }| j                  |¬«      \  }}}|D �]m  }t        ||
«      sŒt        |d«      sŒd}d}	 |j                  |||||||¬	«      ƒ d{  –—† \  }}|sŒI| j                  |||||¬«      }	 |r|j!                  «       ni }||d<   |j"                  j$                  |
j$                  u}|s#|j'                  ||||||||¬«      ƒ d{  –—† c S |j%                  ||||||||¬«      ƒ d{  –—† }|j(                  �|j(                  c S |j*                  r6 |	j,                  d|j"                  j.                  |j0                  «       |c S |j2                  s�ŒK| j5                  ||||||||||¬«
      ƒ d{  –—† c S  |�|j6                  j                  dd«      nd}|r4ddl m}	 ddlm}  |	j,                  d«       t        |d«      r
 ||«      }|S y7 �ŒŠ# t        $ r'} |	j                  d
t        |«      «       Y d}~�Œöd}~ww xY w7 �ŒE7 �Œ%7 Œš# t        $ r} |	j                  d|«       Y d}~�Œ(d}~ww xY w­w)ab  
        Call agentic chat completion hooks for all custom loggers (Chat Completions API).

        1. Call async_should_run_chat_completion_agentic_loop to check if agentic loop is needed
        2. If yes, call async_run_chat_completion_agentic_loop to execute the loop

        Returns the response from agentic loop, or None if no hook runs.
        r   r©  r�   r  r¯  Ú-async_should_run_chat_completion_agentic_loopFNr±  zXLiteLLM.AgenticHookError: Exception in async_should_run_chat_completion_agentic_loop: %sr²  r€   )r  r  r  r  r  r·   rõ   r(  z5Agentic chat loop terminated by callback=%s reason=%s)
r|  r  r  r  r(  r€   rF  rH  rI  rU  zHLiteLLM.AgenticHookError: Exception in chat completion agentic hooks: %sr>  )Ú#convert_model_response_to_streamingzaWebSearchInterception: No tool call made, converting non-streaming chat completion to fake streamÚchoices)r«  r   rÓ   r‘   rÖ   r×   rÒ   r‡   rJ  rÅ   rž  r¿  r  rÉ  r©   rV  rh  r�  Ú-async_build_chat_completion_agentic_loop_planÚ&async_run_chat_completion_agentic_loopr¶  r·  r)  r¦   ru  r¸  r§  rM  Ú)litellm.llms.base_llm.base_model_iteratorrÀ  )r  r  r  r  r  r·   rõ   r€   r(  r   r‘   r×   r  rF  rH  rI  rë   rº  rR  rú   rU  r»  r¼  r|  r­  rÀ  r1  s                              rˆ   r,  z6BaseLLMHTTPHandler._call_agentic_chat_completion_hooksŽ  s,  è ø€ õ& 	4ÝCä"×,Ñ,°×0UÑ0UÒ0[ÐY[Ñ\ˆ	Ø&×*Ñ*¨7°BÓ7ˆØ)-×)HÑ)HÐPVÐ)HÓ)WÑ&ˆˆy˜,à!ó `	xˆHÜ˜h¨Ô5ØÜ˜8Ð%TÔUØà$ˆJØ!%ˆJðð #×PÑPØ%ØØ%ØØ!Ø(;Ø!ð Qó ÷ ñØØñ" Øð ×9Ñ9Ø%Ø)ØØ#Øð :ó ˆKð7xÙ8> v§{¡{¤}ÀBÐ$Ø>QÐ$Ð%:Ñ;à×&Ñ&×TÑTØ'×UÑUðVð &ñ -Ø!)×!PÑ!PØ(Ø#Ø!)Ø!)Ø(7Ø$/Ø%Ø3ð "Qó 	"÷ 	ò 	ð &×SÑSØ$ØØ%Ø%Ø$3Ø +Ø!Ø/ð Tó 	÷ 	�ð ×)Ñ)Ð5Ø×1Ñ1Ò1Ø—>’>Ø(�N×(Ñ(ØOØ ×*Ñ*×3Ñ3Ø×(Ñ(ôð
 $’OØ×,Ò,Ùà!×GÑGØØØ%Ø$3Ø/Ø(;ØØ'Ø!-Ø +ð Hó ÷ ò ðg`	xðR Ð&ð ×*Ñ*×.Ñ.Ð/XÐZ_Ô`àð 	#ñ &Ý7õð !ˆN× Ñ Øsôô
 �x Ô+á%HÈÓ%R�Ø"Ð"àðcúô ò Ø(�×(Ñ(ØnÜ˜“Fôõ ûðúð8	ùð	ùð.ùô ò xØ(�×(Ñ(Ð)sÐuv×wÒwûðxüsÔ   ‚A:J
Á=H%ÂH"ÂH%Â J
Â:AI ÄIÄI ÄJ
ÄI Ä6IÄ7I ÅJ
Å?I ÆJ
ÆI Æ#J
Æ%I ÇIÇI ÇAJ
È"H%È%	IÈ.IÉ
J
ÉIÉJ
ÉI ÉI ÉI É 	JÉ)JÉ<J
ÊJÊJ
rú   r–   r0   c           	      ó~  — t        |t        j                  «      r|j                  j                  nt        |dd «      }t        |t        «      r|nd}t        |dd «      }t        |t        j                  «      r|j                  j                  }nt        |dt        |«      «      }t        |dd «      }|€|rt        |dd «      }|rt        |d«      rt        |d|«      }|rt        |«      }ni }|€!ddlm}  ||||t        |t        «       ¬«      ‚|j                  |||¬	«      }	t        |t        «      sd
|	_        |	‚)Nr  iô  r£   r˜  r  r   )ÚBaseLLMException)r  Úmessager£   Ústatus_code_is_synthesizedr   T)rÅ   r­   r	  r  r  rÃ   rE  r˜  r©   rž  r«   Ú)litellm.llms.base_llm.chat.transformationrÆ  r  rÈ  )
r  rú   ró   Úreceived_status_coder  Úerror_headersÚ
error_textÚerror_responserÆ  Úprovider_errors
             rˆ   r  z BaseLLMHTTPHandler._handle_error'  s@  € ô2 '1°´E×4IÑ4IÔ&JˆA�J‰J×"Ò"ÔPWÐXYÐ[hÐjnÓPoð 	ô /9Ð9MÌsÔ.SÑ*ÐY\ˆÜ  9¨dÓ3ˆÜ�aœ×.Ñ.Ô/ØŸ™Ÿ™‰Jä   F¬C°«FÓ3ˆJÜ '¨¨:°tÓ <ˆØÐ ¡^Ü# N°I¸tÓDˆMÙœg n°fÔ=Ü  °¸ÓDˆJÙÜ  Ó/‰MàˆMàÐ"ÝRá"Ø'Ø"Ø%Ü/9Ð:NÔPSÓ/TÐ+Tô	ð ð !0× ?Ñ ?Ø$Ø#Ø!ð !@ó !
ˆô
 Ð.´Ô4Ø8<ˆNÔ5ØÐrŠ   Úquery_paramsc                 óH  — |s| S ddl m}m}m}m}  || «      }t         ||j                  «      «      }|j                  «       D ��	ci c]  \  }}	||vsŒ||	“Œ }
}}	|
s| S |j                  |j                  rdndz    ||
«      z   } ||j                  |¬«      «      S c c}	}w )zEAppend query_params to url, skipping keys already present in the URL.r   )Ú	parse_qslr   r   r   ú&r½   ©r  )	Úurllib.parserÑ  r   r   r   r«   r  rL  Ú_replace)r¢   rÏ  rÑ  r   r   r   ÚparsedÚexistingr�  r‘  ÚextrasÚ	new_querys               rˆ   Ú_append_query_paramsz'BaseLLMHTTPHandler._append_query_paramse  sž   € ñ ØˆJßKÓKá  ›ˆÜ™y¨¯©Ó6Ó7ˆØ*6×*<Ñ*<Ó*>×T¡$ ! QÀ!È8ÒBS˜˜A™ÐTˆÑTÙØˆJØ!Ÿ<™<°&·,²,©3ÀBÑGÉ)ÐTZÓJ[Ñ[ˆ	Ù˜&Ÿ/™/°	˜/Ó:Ó;Ð;ùó	 Us   ÁBÁBg       @é   )Úopen_timeoutrã  Úwebsockets_moduleÚssl_contextrÜ  rã  r�   c          	   ƒ   ór  K  — t        d„ t        | j                  dd«      t        | j                  dd«      fD «       «      }d}t        |«      D ]&  }	 | j	                  ||t
        ||¬«      ƒ d{  –—† c S  |€J ‚|‚7 Œ# |$ r ‚ t        t        | j                  j                  f$ r}	|	}Y d}	~	Œad}	~	ww xY w­w)aT  Open the backend realtime websocket, retrying a hung open handshake.

        The upstream Live handshake (e.g. Gemini Live) intermittently hangs on
        open; waiting longer never recovers a hung attempt, but a fresh attempt
        almost always connects in ~1s. So bound each attempt with ``open_timeout``
        and retry, instead of surfacing one slow handshake to the caller as a
        fatal 1011. A bounded attempt that timed out already spaced out the
        retry, so no extra backoff is needed. Deterministic rejections (auth /
        handshake status) are not retried.
        c              3   ó$   K  — | ]  }|�|–— Œ
 y ­wrÌ   r°   )rê   Úexcs     rˆ   rì   z?BaseLLMHTTPHandler._open_realtime_backend_ws.<locals>.<genexpr>‹  s   è ø€ ò ,
àð ˆô ñ,
ùs   ‚ÚInvalidStatusNÚInvalidStatusCode)rÁ   Úmax_sizeÚsslrÜ  )	rØ   rÃ   Ú
exceptionsr  Úconnectr   ÚTimeoutErrorÚOSErrorÚWebSocketException)
rÝ  r¢   r£   rÞ  rÜ  rã  Údeterministic_errorsÚlast_excrc  rú   s
             rˆ   Ú_open_realtime_backend_wsz,BaseLLMHTTPHandler._open_realtime_backend_wst  sé   è ø€ ô. ',ñ ,
ô Ð)×4Ñ4°oÀtÓLÜÐ)×4Ñ4Ð6IÈ4ÓPðô,
ó '
Ðð *.ˆÜ�|Ó$ò 	ˆAðØ.×6Ñ6ØØ'.ÜFØ#Ø!-ð 7ó ÷ ò ð	ð" Ð#Ð#Ð#Øˆð!ùð (ò ØäÜØ!×,Ñ,×?Ñ?ðò ð
 •ûðüsB   ‚AB7ÁA?Á/A=Á0A?Á3
B7Á=A?Á?)B4Â(B/Â*B7Â/B4Â4B7Ú	websocketÚuser_api_key_dictc              ƒ   ó  K  — dd l }|j                  |||«      }|j                  |||¬«      }	 t        «       }|j	                  d«      rC|du r?t        j                  t
        j                  «      }d|_        t
        j                  |_
        | j                  ||||«      ƒ d {  –—† }|4 ƒd {  –—†  i }|r||d<   t        ||||||
||xs i j                  d«      dk(  r|nd ¬«      }d }|j                  «       rD|j                  |«      }|r1|j!                  |«      }|j#                  |«      ƒ d {  –—†  ||_        |j                  «       s{|j%                  ||j&                  d ¬	«      }|�[t)        j*                  |«      }|j-                  |«       |j/                  |«      ƒ d {  –—†  d
|_        t3        j4                  d«       |j7                  «       ƒ d {  –—†  d d d «      ƒd {  –—†  y 7 �ŒP7 �ŒH7 ŒÅ7 ŒQ7 Œ7 Œ# 1 ƒd {  –—†7  sw Y   y xY w# |j8                  j:                  $ rX}t3        j<                  d|«       |j?                  |j@                  tC        tE        |«      «      ¬«      ƒ d {  –—†7   Y d }~y d }~wtF        $ rø}t3        j<                  d|«       tC        tE        |«      «      }	 |j/                  tI        |d¬«      «      ƒ d {  –—†7   n$# tF        $ r t3        j4                  d«       Y nw xY w	 |j?                  dtK        tC        d|› �«      d¬«      ¬«      ƒ d {  –—†7   nD# tL        $ r3}dtE        |«      v sdtE        |«      v rntG        d|› �«      ‚Y d }~nd }~ww xY wY d }~y Y d }~y d }~ww xY w­w)Nr   ©r£   r  r  úwss://Frd  ÚintentÚtranscription)rï  rü   Úforce_transcription_model)r  Úlogging_session_idÚsession_configuration_requestTz>Sent synthetic session.created to client to unblock connectionzError connecting to backend: %s©ÚcodeÚreasonÚserver_error)Ú
error_typez=Could not send realtime error event to client; closing anywayéó  úInternal server error: zInternal server error)Úfallbackúalready completedúwebsocket.closeú*Unexpected error while closing WebSocket: )'Ú
websocketsrI  rH  rŒ   r‰  rå  Ú
SSLContextÚPROTOCOL_TLS_CLIENTÚcheck_hostnameÚ	CERT_NONEÚverify_moderí  r(   r‡   Úrequires_session_configurationr÷  Ú-_maybe_inject_guardrail_auto_response_disableÚsendÚtransform_session_created_eventÚlitellm_trace_idr¥   r  Ústore_messageÚ	send_textÚ_session_created_sent_to_clientr   r)  Úbidirectional_forwardræ  rã  rÉ  Úcloser  r   r©   r  r&   r'   râ  )r  r  rî  r·   ró   r£   r¶   r  r  r¤   rï  rd  rÏ  r  r¢   rÞ  Ú
backend_wsÚ_request_dataÚrealtime_streamingÚ_session_configÚsynthetic_sessionÚsynthetic_session_strrú   Úredacted_errorÚclose_errors                            rˆ   Úasync_realtimez!BaseLLMHTTPHandler.async_realtime¨  s�  è ø€ ó 	à$×5Ñ5°hÀÀwÓOˆØ!×6Ñ6ØØØð 7ó 
ˆðV	`Ü9Ó;ˆKØ�~‰~˜hÔ'¨K¸5Ñ,@ä!Ÿn™n¬S×-DÑ-DÓE�Ø-2�Ô*Ü*-¯-©-�Ô'Ø&*×&DÑ&DÀZÐQTÐV]Ð_jÓ&k× kˆJØ!÷ 4Añ 4AØ:<�Ù#Ø8H�MÐ"4Ñ5Ü,=ØØØØ#ØØ&7Ø!.à".Ò"4°"×!9Ñ!9¸(Ó!CÀÒ!V™Ð\`ô-Ð"ð& /3�Ø"×AÑAÔCØ&5×&SÑ&SÐTYÓ&Z�OÙ&Ø*<×*jÑ*jØ+ó+˜ð )Ÿo™o¨oÓ>×>Ð>ØKZÐ*ÔHð '×EÑEÔGØ/>×/^Ñ/^Ø#Ø+6×+GÑ+GØ6:ð 0_ó 0Ð%ð
 )Ð4Ü7;·z±zÐBSÓ7TÐ-ð
 +×8Ñ8Ð9NÔOØ'×1Ñ1Ð2GÓH×HÐHØMQÐ*ÔJÜ&×,Ñ,Ð-mÔnà(×>Ñ>Ó@×@Ð@÷i4A÷ 4Að 4Að !lùð4Aùð< ?øð$ Iøð Aøði4Aø÷ 4A÷ 4Añ 4Aûðl ×$Ñ$×6Ñ6ò 	UÜ×$Ñ$Ð%FÈÔJØ—/‘/ q§}¡}¼^ÌCÐPQËFÓ=S�/ÓT×TÖTûÜò 	`Ü×$Ñ$Ð%FÈÔJÜ$2´3°q³6Ó$:ˆNðfØ×)Ñ)Ô*>¸~ÐZhÔ*iÓj×jÒjøÜò fÜ×$Ñ$Ð%dÖeðfúð`Ø—o‘oØÜ1Ü&Ð)@ÀÀÐ'DÓEØ!8ôð &ó ÷ ò øô  ò `Ø&¬#¨kÓ*:Ñ:Ð>OÔSVÐWbÓScÑ>càô $Ð&PÐQ\ÐP]Ð$^Ó_Ð_ô ûð`úô ôûð	`üsR  ‚,N
¯A5H Â$G4Â%
H Â/G7Â0H Â3BHÄ4G:Ä5A5HÆ*G<Æ+3HÇG>ÇHÇ#H Ç.H Ç/H Ç3N
Ç4H Ç7H Ç:HÇ<HÇ>HÈ H ÈHÈHÈ	HÈH ÈN
ÈH ÈNÈ0AJÉ8I;É9JÉ>N
ÊNÊ*NÊ:K ËKËK ËNË LË>NÌ LÌNÌ-L9Ì2L5Ì3L9Ì8NÌ9	M5Í)M0Í+NÍ0M5Í5NÍ8
N
ÎNÎN
Úapi_versionc              ƒ   óV   K  — | j                  d|||||||||	|
¬«      ƒ d{  –—† S 7 Œ­w)zô
        Forward POST /v1/realtime/client_secrets to upstream provider.

        Uses provider_config (BaseRealtimeHTTPConfig) for URL construction and
        header auth when available; falls back to the legacy OpenAI-style defaults.
        Úclient_secrets©Úendpointr¶   r  rü   r·   r¤   ró   r  rø  r  r  N©Ú_async_realtime_session_post©r  r¶   r  rü   r·   r¤   ró   r  rø  r  r  s              rˆ   Ú$async_realtime_client_secret_handlerz7BaseLLMHTTPHandler.async_realtime_client_secret_handler  sK   è ø€ ð& ×6Ñ6Ø%ØØØ%Ø#ØØ+ØØ'ØØ#ð 7ó 
÷ 
ð 	
ð 
úó   ‚ )¢'£)c              ƒ   óV   K  — | j                  d|||||||||	|
¬«      ƒ d{  –—† S 7 Œ­w)zFForward POST /v1/realtime/transcription_sessions to upstream provider.Útranscription_sessionsr  Nr!  r#  s              rˆ   Ú,async_realtime_transcription_session_handlerz?BaseLLMHTTPHandler.async_realtime_transcription_session_handler9  sK   è ø€ ð ×6Ñ6Ø-ØØØ%Ø#ØØ+ØØ'ØØ#ð 7ó 
÷ 
ð 	
ð 
úr%  r   )r  r'  c              ƒ   ó>  K  — |
�t        |
t        «      s%t        t        j                  j
                  ¬«      }n|
}|�O|dk(  r|j                  ||xs d|¬«      }n|j                  ||xs d|¬«      }|j                  i |xs d|¬«      }n|j                  d«      › d|› �}d	|› �d
dœ}|	r|j                  |	«       |j                  |d|||dœ¬«       	 |j                  ||||¬«      ƒ d{  –—† S 7 Œ# t        $ r}|�| j                  ||¬«      ‚‚ d}~ww xY w­w)a#  
        Shared POST flow for the realtime HTTP session endpoints
        (client_secrets and transcription_sessions).

        Uses provider_config (BaseRealtimeHTTPConfig) for URL construction and
        header auth when available; falls back to the legacy OpenAI-style defaults.
        Nr†  r'  r½   ©r¶   r  r  rñ  r¢  z/v1/realtime/úBearer r…  )ÚAuthorizationrŠ  r8  r:  r{  rý   )rÅ   rF   rI   rÖ   r*  ÚOPENAIÚget_transcription_session_urlrI  rH  Úrstriprv  rL  r  r  r  )r  r   r¶   r  rü   r·   r¤   ró   r  rø  r  r  rò   r¢   r£   rú   s                   rˆ   r"  z/BaseLLMHTTPHandler._async_realtime_session_postU  s€  è ø€ ð* ˆ>¤¨FÔ4DÔ!EÜ!7Ü$×1Ñ1×8Ñ8ô"Ñð "(ÐàÐ&ØÐ3Ò3Ø%×CÑCØ%¨Uª[°bÀkð Dó ‘ð &×6Ñ6ÀÐPUÒP[ÐY[ÐitÐ6Óu�Ø)8×)MÑ)MØ %¢+¨2°wð *Nó *‰Gð —_‘_ SÓ)Ð*¨-¸°zÐBˆCà#*¨7¨)Ð!4Ø 2ñˆGñ
 Ø�N‰N˜=Ô)à×ÑØØà'3ØØ"ñð 	ô 	
ð	Ø+×0Ñ0ØØØ!Øð	 1ó ÷ ð ð ùô ò 	ØÐ*Ø×(Ñ(ØØ$3ð )ó ð ð ûð	üs<   ‚CDÃC6 Ã/C4Ã0C6 Ã3DÃ4C6 Ã6	DÃ?DÄDÄDÚopenai_ephemeral_keyÚsdp_bodyÚsession_configc              ƒ   ó¦  K  — |
�t        |
t        «      s%t        t        j                  j
                  ¬«      }n|
}|�+|j                  ||xs d|¬«      }|j                  |¬«      }n|j                  d«      › d�}dd	|› �i}|	r|j                  |	«       |xs i }d
|vrd|d
<   d|vr|r||d<   t        |t        «      r|j                  d«      n|}d|dfdt        j                  |«      dfdœ}|j                  dd|||dœ¬«       	 |j                  ||||¬«      ƒ d{  –—† S 7 Œ# t         $ r}|�| j#                  ||¬«      ‚‚ d}~ww xY w­w)a´  
        Forward POST /v1/realtime/calls (SDP exchange) to upstream provider.

        Uses provider_config (BaseRealtimeHTTPConfig) for URL construction and
        header auth when available; falls back to the legacy OpenAI-style defaults.

        OpenAI's GA realtime API expects multipart/form-data with:
          - sdp: the SDP offer (text)
          - session: JSON string with {"type": "realtime", "model": "...", ...}
        Nr†  r½   r*  )Úephemeral_keyr¢  z/v1/realtime/callsr,  r+  rá   Úrealtimer  r¿  z
text/plainr…  )ÚsdpÚsessionÚrealtime_sdp_offer)r¶   r£   r7  r:  rÂ  rý   )rÅ   rF   rI   rÖ   r*  r-  Úget_realtime_calls_urlÚget_realtime_calls_headersr/  rv  rµ   rÊ  r¥   r  rL  r  r  r  )r  r¶   r0  r1  r·   r¤   ró   r  r2  rø  r  r  rò   r¢   r£   Úsession_dataÚsdp_textrŽ  rú   s                      rˆ   Úasync_realtime_calls_handlerz/BaseLLMHTTPHandler.async_realtime_calls_handlerž  s¸  è ø€ ð0 ˆ>¤¨FÔ4DÔ!EÜ!7Ü$×1Ñ1×8Ñ8ô"Ñð "(ÐàÐ&Ø!×8Ñ8À(ÐRWÒR]Ð[]ÐkvÐ8ÓwˆCØ)8×)SÑ)SÐbvÐ)SÓ)w‰Gà—_‘_ SÓ)Ð*Ð*<Ð=ˆCà 7Ð+?Ð*@Ð!AðˆGñ Ø�N‰N˜=Ô)ð -Ò2°ˆØ˜Ñ%Ø#-ˆL˜Ñ Ø˜,Ñ&©5Ø$)ˆL˜Ñ!ä6@ÀÌ5Ô6Q˜(Ÿ/™/¨'Ô2ÐW_ˆð ˜( LÐ1ØœdŸj™j¨Ó6Ð8JÐKñ
ˆð
 	×ÑØ&ØàØ"Ø'ñð 	ô 	
ð	Ø+×0Ñ0ØØØØð	 1ó ÷ ð ð ùô ò 	ØÐ*Ø×(Ñ(ØØ$3ð )ó ð ð ûð	üs<   ‚DEÄD* Ä#D(Ä$D* Ä'EÄ(D* Ä*	EÄ3E	Å	EÅEÚfirst_messagec              ‹   óª  ‡‡
‡ ‡!‡"‡#‡$K  — t        «       }|�|j                  «       s3ddlm}  |d%|||||	||‰‰
||dœ|¤Ž}|j	                  «       ƒ d{  –—†  yddlŠ#ddlm} t        j                  ||dœ|¥«      Š!|j                  i |‰!¬«      Š |rd|› �‰ d	<   |j                  |t        ‰!«      ¬
«      Š$|j                  «       rst        ‰$«      }t        |j                   «      }d|vrO|g|d<   t#        |j%                  t'        |j)                  «       D ��ci c]  \  }}||d   “Œ c}}«      ¬«      «      Š$	 t+        «       Š"‰$j-                  d«      rC‰"du r?t/        j0                  t.        j2                  «      Š"d‰"_        t.        j6                  ‰"_        |j;                  d|xs d‰$‰ ddidœ¬«       t<        ˆ
ˆ ˆ!ˆ"ˆˆ#ˆ$fd„«       } |«       4 ƒd{  –—† }i }|	r|	|d<   g }g }	 ddl}|j@                  D �cg c]S  }tC        tE        |dd«      «      r;tC        tE        |dd«      «      r%tC        tE        |dd«      «      rtE        |dd«      r|‘ŒU }}|j@                  D �cg c]=  }tC        tE        |dd«      «      r%tC        tE        |dd«      «      rtE        |dd«      r|‘Œ? }}tM        |tO        ||«      ||||||||¬«
      }|jQ                  «       ƒ d{  –—†  ddd«      ƒd{  –—†  y7 �Œœc c}}w 7 �Œ"c c}w c c}w # tF        $ r }tI        jJ                  d|«       Y d}~Œ‚d}~ww xY w7 ŒW7 ŒI# 1 ƒd{  –—†7  sw Y   yxY w# ‰#jR                  jT                  $ rX}tI        jV                  d|«       |jY                  |jZ                  t]        t_        |«      «      ¬«      ƒ d{  –—†7   Y d}~yd}~wtF        $ rŽ}tI        jV                  d|«       	 |jY                  d t]        d!|› �«      ¬«      ƒ d{  –—†7   nD# t`        $ r3}d"t_        |«      v sd#t_        |«      v rntG        d$|› �«      ‚Y d}~nd}~ww xY wY d}~yY d}~yd}~ww xY w­w)&aù  
        Handles Responses API WebSocket mode.

        For providers with native websocket support (OpenAI, Azure):
        - Opens a persistent WebSocket to the provider's /v1/responses endpoint
        - Proxies response.create events bidirectionally for lower-latency agentic workflows

        For providers without native websocket support (all others):
        - Uses ManagedResponsesWebSocketHandler which makes HTTP streaming calls
        - Forwards events over the websocket connection
        Nr   )Ú ManagedResponsesWebSocketHandler)rî  r  r·   rï  rd  r  r¶   r¤   r€   r>  Úquota_callbacksrŽ   )r¶   r  rf  r+  r,  rg  r  rÓ  rò  Fr½   ÚmodeÚresponses_websocket)r¶   r£   r9  r:  c                 ó’  •K  — t        ‰‰«      r^ddlm}  | j                  ‰‰j	                  «       D ��ci c]  \  }}t        |«      t        |«      “Œ c}}‰	¬«      ƒ d {  –—† }|�|­–— y ‰
j                  ‰‰t        ‰¬«      4 ƒd {  –—† }|­–— d d d «      ƒd {  –—†  y c c}}w 7 ŒJ7 Œ"7 Œ# 1 ƒd {  –—†7  sw Y   y xY w­w)Nr   )rC  rn  )rÁ   rä  rå  )r‰   rK  rC  rç  rL  r©   r   )Úrust_responses_websocketrO  rP  Úrust_backendÚbackendr€   r£   r�   rÞ  r¤   r  Úws_urls        €€€€€€€rˆ   Ú_backend_connectionzIBaseLLMHTTPHandler.async_responses_websocket.<locals>._backend_connectionS  sÕ   øè ø€ ä4Ð5HÈ.ÔYÝcà0H×0PÑ0PØ"ØHOÏÉË× X¹*¸#¸u¤ S£¬3¨u«:Ñ!5Ó XØ 'ð 1Qó 1÷ +�Lð
 $Ð/Ø*Ó*Øà%×-Ñ-ØØ'.ÜFØ#ð	 .ó ÷ "ð "ð
 Ø!“M÷"÷ "ð "ùó !Yð+øð"øð "ø÷ "÷ "ñ "üsd   ƒ2CµB&ÁCÁ!B,Á")CÂB.ÂCÂB2ÂCÂ B0Â!CÂ.CÂ0CÂ2CÂ8B;Â9CÃ Crd  Ú	check_piiÚ'get_presidio_settings_from_request_dataÚ_unmask_pii_textÚoutput_parse_piiÚapply_to_outputue   Responses WebSocket: failed to collect guardrail callbacks â€” PII masking will be skipped. Error: %s)
rî  r  r·   rï  rü   r>  Úguardrail_callbacksÚoutput_guardrail_callbacksrA  Úauthorized_modelz,Error connecting to responses WS backend: %srø  zError in responses WS: %srý  rþ  r   r  r  r°   )1rï   Úsupports_native_websocketr�  r@  Úrunr  Úwebsockets.asyncio.clientr�   ri   Úmodel_validaterH  Úget_websocket_urlr«   Úmodel_in_websocket_urlr   r   r  r   rÕ  r   rL  rŒ   r‰  rå  r  r  r  r  r  rL  r   rÖ   r×   ré   rÃ   r  r   r³  rN   r   r  ræ  rã  rÉ  r  r  r   r©   râ  )%r  r  rî  r·   rc  r¶   r  r¤   rï  rd  r€   r>  r(  Ú_ws_quota_callbacksr@  Úhandlerr�   Ú_parsedÚ_qsr�  r‘  rI  r  r  Ú_ws_guardrail_callbacksÚ_ws_output_guardrail_callbacksrî   rÜ   Ú_guardrail_excÚ	streamingrú   r  r£   r�   rÞ  r  rH  s%          `  `                     @@@@@rˆ   Úasync_responses_websocketz,BaseLLMHTTPHandler.async_responses_websocketð  s¶  þè ø€ ô4 &IÓ%JÐà(Ð0Ð8U×8oÑ8oÔ8qõñ >ð Ø#ØØ'Ø"3Ø!1ØØ!ØØ$7Ø+Ø 3ñð ñˆGð —+‘+“-×ÐØãÝ>ä 4× CÑ Cà$Ø"ñð ðó!
ˆð 7×KÑKØØØ)ð Ló 
ˆñ
 Ø)0°°	Ð':ˆG�OÑ$à.×@Ñ@ØÜ Ó/ð Aó 
ˆð )×?Ñ?ÔAÜ% fÓ-ˆGÜ! '§-¡-Ó0ˆCØ˜cÑ!Ø %˜w��G‘Ü# G×$4Ñ$4¼9ÐZ]×ZcÑZcÓZe×EfÑRVÐRSÐUVÀaÈÈ1ÉÁgÓEfÓ;gÐ$4Ó$hÓi�ðc	`Ü9Ó;ˆKØ× Ñ  Ô*¨{¸eÑ/CÜ!Ÿn™n¬S×-DÑ-DÓE�Ø-2�Ô*Ü*-¯-©-�Ô'à× Ñ ØØš 2à &Ø&Ø,2Ð4IÐ+Jñ!ð !ô ô !÷"ñ "ó !ð"ñ* +Ó,÷ /8ð /8°
Ø:<�Ù#Ø8H�MÐ"4Ñ5à02Ð'Ø79Ð.ðÛ.ð #+×"4Ñ"4ö/àÜ#¤G¨B°¸TÓ$BÔCÜ$¤W¨RÐ1ZÐ\`Ó%aÔbÜ$¤W¨RÐ1CÀTÓ%JÔKÜ# BÐ(:¸EÔBò ð/Ð+ð /ð #+×"4Ñ"4ö6àÜ#¤G¨B°¸TÓ$BÔCÜ$¤W¨RÐ1ZÐ\`Ó%aÔbÜ# BÐ(9¸5ÔAò	 ð6Ð2ð 6ô $?Ø'Ü#Ð$4°jÓAØ +Ø&7Ø!.Ø"/Ø(?Ø/MØ$7Ø%*ô$�	ð  ×5Ñ5Ó7×7Ð7÷_/8÷ /8ð /8ðU  ûóB FgðR/8ûò/ùò6øô !ò Ü"×*Ñ*ðOà&÷ñ ûðúð& 8øð_/8ø÷ /8÷ /8ñ /8ûðb ×$Ñ$×6Ñ6ò 	UÜ×$Ñ$Ð%SÐUVÔWØ—/‘/ q§}¡}¼^ÌCÐPQËFÓ=S�/ÓT×TÖTûÜò 	`Ü×$Ñ$Ð%@À!ÔDð`Ø—o‘o¨4¼ÐI`ÐabÐ`cÐGdÓ8e�oÓf×fÒføÜò `Ø&¬#¨kÓ*:Ñ:Ð>OÔSVÐWbÓScÑ>cØä#Ð&PÐQ\ÐP]Ð$^Ó_Ð_ô ûð`úäô gûð	`üsO  ‰A
QÁK/ÁCQÄK2Ä)QÄ;BM
 ÇK8ÇM
 ÇL5Ç)LÇ;AK;ÉLÉ#AL Ê%LÊ'2L5ËL1ËL5ËM
 Ë)L3Ë*M
 Ë.QË2QË8M
 Ë;
LÌ	L.ÌL)Ì$L5Ì)L.Ì.L5Ì3M
 Ì5MÌ;L>Ì<MÍM
 ÍQÍM
 Í
QÍ#AN6Î+N.Î,N6Î1QÎ6QÏQÏ"PÏ;O>Ï<PÐQÐ	P>Ð)P9Ð4QÐ9P>Ð>QÑ
QÑQÑQÚimageÚpromptÚimage_edit_provider_configÚ"image_edit_optional_request_paramsc                 óB  — |r1| j                  |||||||||
||	t        |t        «      r|nd||¬«      S |�t        |t        «      st	        d|j                  dd«      i¬«      }n|}|j                  |j                  |j                  di «      xs i |t        |«      |j                  ¬«      }|
r|j                  |
«       |j                  ||j                  t        |«      ¬«      }|j                  ||||||¬«      \  }}|j                  ||«      }|j                  |d	|||d
œ¬«       	 |j                  «       r|j!                  |||||	¬«      }n|j!                  ||||	¬«      }|j'                  |||¬«      S # t"        $ r}| j%                  ||¬«      ‚d}~ww xY w)z…

        Handles image edit requests.
        When _is_async=True, returns a coroutine instead of making the call directly.
        N)r  ra  rb  rc  rd  r€   r�   r·   rø  r3  r¤   r  r1  rd  r"  rC  rø  ©r  r£   r  r�   r¶   ©r  r¶   r�   ©r  ra  rb  rd  r�   r£   r½   r8  r:  ©r¢   r£   rô   rŽ  r¤   r{  rý   r  )Úasync_image_edit_handlerrÅ   rF   rG   rH   r‡   rH  r  r«   r¶   rv  rI  Útransform_image_edit_requestÚ finalize_image_edit_request_datarL  Úuse_multipart_form_datar  r  r  Útransform_image_edit_response)r  r  ra  rb  rc  rd  r€   r�   r·   r¤   rø  r3  r  r}  r1  rd  r  r£   r¶   rô   rŽ  r  rú   s                          rˆ   Úimage_edit_handlerz%BaseLLMHTTPHandler.image_edit_handler§  s&  € ñ. à×0Ñ0ØØØØ+EØ3UØ$7Ø-Ø'Ø+Ø%ØÜ!+¨FÔ4DÔ!E‘vÈ4Ø'Ø!1ð 1ó ð ð" ˆ>¤¨F´KÔ!@Ü 1¸,È×HZÑHZÐ[gÐimÓHnÐ9oÔ pÑà &Ðà3×HÑHØ"×*Ñ*Ø6×:Ñ:¸?ÈBÓOÒUÐSUØÜ Ó/Ø#×,Ñ,ð Ió 
ˆñ Ø�N‰N˜=Ô)à4×EÑEØØ#×,Ñ,Ü Ó/ð Fó 
ˆð 1×MÑMØØØØ/QØ)Øð Nó 
‰ˆˆeð *×JÑJÈ4ÐQYÓZˆð 	×ÑØØà',Ø$Ø"ñð 	ô 	
ð	à)×AÑAÔCà,×1Ñ1Ø Ø#ØØØ#ð 2ó ‘ð -×1Ñ1Ø Ø#ØØ#ð	 2ó �ð *×GÑGØØ!Ø#ð Hó 
ð 	
øô ò 	Ø×$Ñ$ØØ :ð %ó ð ûð	ús   Ä-<E= Å=	FÆFÆFc              ƒ   ó4  K  — |�t        |t        «      s3t        t        j                  |«      d|j                  dd«      i¬«      }n|}|j                  |j                  |j                  di «      xs i |t        |«      |j                  ¬«      }|
r|j                  |
«       |j                  ||j                  t        |«      ¬«      }|j                  ||||||¬«      \  }}|j                  ||«      }|j                  |d|||d	œ¬
«       	 |j                  «       r|j!                  |||||	¬«      ƒ d{  –—† }n|j!                  ||||	¬«      ƒ d{  –—† }|j'                  |||¬«      S 7 Œ67 Œ# t"        $ r}| j%                  ||¬«      ‚d}~ww xY w­w)zk
        Async version of the image edit handler.
        Uses async HTTP client to make requests.
        Nr"  rd  rø  rf  rg  rh  r½   r8  r:  ri  r{  rý   r  )rÅ   rF   rI   rÖ   r*  r‡   rH  r  r«   r¶   rv  rI  rk  rl  rL  rm  r  r  r  rn  )r  r  ra  rb  rc  rd  r€   r�   r·   r¤   rø  r3  r  r1  rd  rò   r£   r¶   rô   rŽ  r  rú   s                         rˆ   rj  z+BaseLLMHTTPHandler.async_image_edit_handler  sþ  è ø€ ð* ˆ>¤¨FÔ4DÔ!EÜ!7Ü$×1Ñ1Ð2EÓFØ$ n×&8Ñ&8¸ÀtÓ&LÐMô"Ñð
 "(Ðà3×HÑHØ"×*Ñ*Ø6×:Ñ:¸?ÈBÓOÒUÐSUØÜ Ó/Ø#×,Ñ,ð Ió 
ˆñ Ø�N‰N˜=Ô)à4×EÑEØØ#×,Ñ,Ü Ó/ð Fó 
ˆð 1×MÑMØØØØ/QØ)Øð Nó 
‰ˆˆeð *×JÑJÈ4ÐQYÓZˆð 	×ÑØØà'+Ø$Ø"ñð 	ô 	
ð	à)×AÑAÔCà!3×!8Ñ!8Ø Ø#ØØØ#ð "9ó "÷ ‘ð "4×!8Ñ!8Ø Ø#ØØ#ð	 "9ó "÷ �ð *×GÑGØØ!Ø#ð Hó 
ð 	
ð-øðùô ò 	Ø×$Ñ$ØØ :ð %ó ð ûð	üsN   ‚DFÄ)E4 Ä9E0Ä:E4 ÅE2ÅE4 ÅFÅ0E4 Å2E4 Å4	FÅ=FÆFÆFÚ image_generation_provider_configÚ(image_generation_optional_request_paramsc                 óz  — |r1| j                  ||||||||	|
|t        |t        «      r|nd|||¬«      S |�t        |t        «      st	        d|j                  dd«      i¬«      }n|}|j                  ||j                  di «      xs i |g |t        |«      ¬«      }|	r|j                  |	«       |j                  ||j                  dd«      |j                  dd«      |t        |«      ¬	«      }|j                  |||t        |«      |¬
«      }|j                  |d|||dœ¬«       	 |j                  «       r|j                  |||ddi|¬«      }n|j                  ||||¬«      }|j!                  ||t#        j$                  «       |||t        |«      d¬«      }|S # t        $ r}| j                  ||¬«      ‚d}~ww xY w)zŠ
        Handles image generation requests.
        When _is_async=True, returns a coroutine instead of making the call directly.
        N)r  rb  rq  rr  r€   r�   r·   rø  r3  r¤   r  r1  rd  r  r"  rC  rø  rn  r¶   r  ©r  r¶   r  r  r�   ©r  rb  r  r�   r£   r½   r8  r:  Únoneri  r{  rý   ©r  r'  r  r·   rü   r  r�   r  )Úasync_image_generation_handlerrÅ   rF   rG   rH   r‡   rH  r«   rv  rI  Ú"transform_image_generation_requestrL  rm  r  r  r  Ú#transform_image_generation_responserÖ   r|   )r  r  rb  rq  rr  r€   r�   r·   r¤   rø  r3  r  r}  r1  rd  r  r  r£   r¶   rô   r  rú   r  s                          rˆ   Úimage_generation_handlerz+BaseLLMHTTPHandler.image_generation_handler  sH  € ñ, à×6Ñ6ØØØ1QØ9aØ$7Ø-Ø'Ø+Ø%ØÜ!+¨FÔ4DÔ!E‘vÈ4Ø'Ø!1Øð 7ó ð ð" ˆ>¤¨F´KÔ!@Ü 1¸,È×HZÑHZÐ[gÐimÓHnÐ9oÔ pÑà &Ðà9×NÑNØØ<×@Ñ@ÀÐRTÓUÒ[ÐY[ØØØDÜ Ó/ð Oó 
ˆñ Ø�N‰N˜=Ô)à:×KÑKØØ#×'Ñ'¨
°DÓ9Ø"×&Ñ& y°$Ó7ØDÜ Ó/ð Ló 
ˆð 7×YÑYØØØDÜ Ó/Øð Zó 
ˆð 	×ÑØØà'+Ø$Ø"ñð 	ô 	
ð	à/×GÑGÔIà,×1Ñ1Ø Ø#ØØ! 2˜,Ø#ð 2ó ‘ð -×1Ñ1Ø Ø#ØØ#ð	 2ó �ð 0P×/sÑ/sØØ!Ü"×0Ñ0Ó2Ø#ØØDÜ Ó/Øð 0tó 	0
ˆð Ðøô# ò 	Ø×$Ñ$ØØ @ð %ó ð ûð	ús   Ä%>F Æ	F:Æ"F5Æ5F:c              ƒ   ól  K  — |�t        |t        «      s3t        t        j                  |«      d|j                  dd«      i¬«      }n|}|j                  ||j                  di «      xs i |g |t        |«      ¬«      }|	r|j                  |	«       |j                  ||j                  dd«      |j                  dd«      |t        |«      ¬«      }|j                  |||t        |«      |¬	«      }|j                  |d
|||dœ¬«       	 |j                  «       r!|j                  |||dd
i|¬«      ƒ d{  –—† }n|j                  ||||¬«      ƒ d{  –—† }|j!                  ||t        j"                  «       |||t        |«      d¬«      }|S 7 ŒX7 Œ<# t        $ r}| j                  ||¬«      ‚d}~ww xY w­w)zq
        Async version of the image generation handler.
        Uses async HTTP client to make requests.
        Nr"  rd  rø  rn  r¶   r  rt  ru  r½   r8  r:  rv  ri  r{  rý   rw  )rÅ   rF   rI   rÖ   r*  r‡   rH  r«   rv  rI  ry  rL  rm  r  r  r  rz  r|   )r  r  rb  rq  rr  r€   r�   r·   r¤   rø  r3  r  r1  rd  r  rò   r£   r¶   rô   r  rú   r  s                         rˆ   rx  z1BaseLLMHTTPHandler.async_image_generation_handlerû  s!  è ø€ ð* ˆ>¤¨FÔ4DÔ!EÜ!7Ü$×1Ñ1Ð2EÓFØ$ n×&8Ñ&8¸ÀtÓ&LÐMô"Ñð
 "(Ðà9×NÑNØØ<×@Ñ@ÀÐRTÓUÒ[ÐY[ØØØDÜ Ó/ð Oó 
ˆñ Ø�N‰N˜=Ô)à:×KÑKØØ#×'Ñ'¨
°DÓ9Ø"×&Ñ& y°$Ó7ØDÜ Ó/ð Ló 
ˆð 7×YÑYØØØDÜ Ó/Øð Zó 
ˆð 	×ÑØØà'+Ø$Ø"ñð 	ô 	
ð	à/×GÑGÔIà!3×!8Ñ!8Ø Ø#ØØ! 2˜,Ø#ð "9ó "÷ ‘ð "4×!8Ñ!8Ø Ø#ØØ#ð	 "9ó "÷ �ð 0P×/sÑ/sØØ!Ü"×0Ñ0Ó2Ø#ØØDÜ Ó/Øð 0tó 	0
ˆð ÐðCøðùô ò 	Ø×$Ñ$ØØ @ð %ó ð ûð	üsN   ‚DF4Ä+F Ä3FÄ4F ÅFÅF Å6F4ÆF ÆF Æ	F1ÆF,Æ,F1Æ1F4Ú video_generation_provider_configÚ(video_generation_optional_request_paramsc                 óz  — |r1| j                  ||||||||	|
|t        |t        «      r|nd|||¬«      S |�t        |t        «      st	        d|j                  dd«      i¬«      }n|}|j                  |xs |j                  dd«      |j                  di «      xs i ||¬«      }|	r|j                  |	«       |j                  ||j                  dd«      t        |«      ¬	«      }|j                  ||||||¬
«      \  }}}|j                  |d|||dœ¬«       	 |r%t        |«      dkD  r|j                  |||||¬«      }nD|j                  «       r|j                  ||t        |«      |¬«      }n|j                  ||||¬«      }|j%                  |||||¬«      S # t         $ r}| j#                  ||¬«      ‚d}~ww xY w)zŠ
        Handles video generation requests.
        When _is_async=True, returns a coroutine instead of making the call directly.
        N)r  rb  r}  r~  r€   r�   r·   rø  r3  r¤   r  r1  rd  r  r"  rC  r  rø  ©r  r£   r  r�   r¶   rg  )r  rb  Ú$video_create_optional_request_paramsr�   r£   r¶   r½   r8  r:  r   ri  rÂ  r{  rý   ©r  r'  r·   r€   rü   )Úasync_video_generation_handlerrÅ   rF   rG   rH   r‡   rH  rv  rI  r«   Útransform_video_create_requestrL  rÜ  r  rm  r%   r  r  Útransform_video_create_response)r  r  rb  r}  r~  r€   r�   r·   r¤   rø  r3  r  r}  r1  rd  r  r  r£   r¶   rô   rŽ  r  rú   s                          rˆ   Úvideo_generation_handlerz+BaseLLMHTTPHandler.video_generation_handlerg  sZ  € ñ, à×6Ñ6ØØØ1QØ9aØ$7Ø-Ø'Ø+Ø%ØÜ!+¨FÔ4DÔ!E‘vÈ4Ø'Ø!1Øð 7ó ð ð" ˆ>¤¨F´KÔ!@Ü 1¸,È×HZÑHZÐ[gÐimÓHnÐ9oÔ pÑà &Ðà9×NÑNØÒB˜~×1Ñ1°)¸TÓBØ<×@Ñ@ÀÐRTÓUÒ[ÐY[ØØ)ð	 Oó 
ˆñ Ø�N‰N˜=Ô)à3×DÑDØØ#×'Ñ'¨
°DÓ9Ü Ó/ð Eó 
ˆð -×KÑKØØØ1YØ)ØØð Ló 
ñ		
ØØØð 	×ÑØØà'+Ø$Ø"ñð 	ô 	
ð	Ùœ˜U› ašØ,×1Ñ1Ø Ø#ØØØ#ð 2ó ‘ð 2×IÑIÔKØ,×1Ñ1Ø Ø#Ü9¸$Ó?Ø#ð	 2ó ‘ð -×1Ñ1Ø Ø#ØØ#ð	 2ó �ð 0×OÑOØØ!Ø#Ø 3Øð Pó 
ð 	
øô ò 	Ø×$Ñ$ØØ @ð %ó ð ûð	ús   ÄA+F Æ	F:Æ"F5Æ5F:rE   c              ƒ   ó€  K  — |�t        |t        «      s3t        t        j                  |«      d|j                  dd«      i¬«      }n|}|j                  |xs |j                  dd«      |j                  di «      xs i ||¬«      }|	r|j                  |	«       |j                  ||j                  dd«      t        |«      ¬«      }|j                  ||||||¬	«      \  }}}|j                  |d
|||dœ¬«       	 |r-t        |«      dkD  r|j                  |||||¬«      ƒ d{  –—† }nT|j                  «       r'|j                  ||t        |«      |¬«      ƒ d{  –—† }n|j                  ||||¬«      ƒ d{  –—† }|j%                  |||||¬«      S 7 Œo7 Œ:7 Œ# t         $ r}| j#                  ||¬«      ‚d}~ww xY w­w)zq
        Async version of the video generation handler.
        Uses async HTTP client to make requests.
        Nr"  rd  r  rø  r€  r¶   rg  )r  rb  r¶   r�  r�   r£   r½   r8  r:  r   ri  rÂ  r{  rý   r‚  )rÅ   rF   rI   rÖ   r*  r‡   rH  rv  rI  r«   r„  rL  rÜ  r  rm  r%   r  r  r…  )r  r  rb  r}  r~  r€   r�   r·   r¤   rø  r3  r  r1  rd  r  rò   r£   r¶   rô   rŽ  r  rú   s                         rˆ   rƒ  z1BaseLLMHTTPHandler.async_video_generation_handlerã  s=  è ø€ ð* ˆ>¤¨FÔ4DÔ!EÜ!7Ü$×1Ñ1Ð2EÓFØ$ n×&8Ñ&8¸ÀtÓ&LÐMô"Ñð
 "(Ðà9×NÑNØÒB˜~×1Ñ1°)¸TÓBØ<×@Ñ@ÀÐRTÓUÒ[ÐY[ØØ)ð	 Oó 
ˆñ Ø�N‰N˜=Ô)à3×DÑDØØ#×'Ñ'¨
°DÓ9Ü Ó/ð Eó 
ˆð -×KÑKØØØØ1YØ)Øð Ló 
ñ		
ØØØð 	×ÑØØà'+Ø$Ø"ñð 	ô 	
ð	Ùœ˜U› ašØ!3×!8Ñ!8Ø Ø#ØØØ#ð "9ó "÷ ‘ð 2×IÑIÔKØ!3×!8Ñ!8Ø Ø#Ü9¸$Ó?Ø#ð	 "9ó "÷ ‘ð "4×!8Ñ!8Ø Ø#ØØ#ð	 "9ó "÷ �ð 0×OÑOØØ!Ø#Ø 3Øð Pó 
ð 	
ð9øðøðùô ò 	Ø×$Ñ$ØØ @ð %ó ð ûð	üs`   ‚C8F>Ã;)F Ä$FÄ%6F ÅFÅF Å9FÅ:F Å>F>ÆF ÆF ÆF Æ	F;Æ#F6Æ6F;Æ;F>Úvideo_idÚvideo_content_provider_configÚvariantc                 óL  — |
r| j                  |||||||||	|¬«
      S |	�t        |	t        «      st        d|j	                  dd«      i¬«      }n|	}|j                  |xs i d||¬«      }|r|j                  |«       |j                  d|j	                  dd«      t        |«      ¬«      }|j                  |||||¬	«      \  }}	 |r|j                  |||¬
«      }n|j	                  |||¬«      }|j                  ||¬«      S # t        $ r}| j                  ||¬«      ‚d}~ww xY w)z9
        Handle video content download requests.
        )
rˆ  r‰  r€   r�   r·   r¤   rø  r  r  rŠ  Nr"  rC  r½   ©r£   r  r  r�   r¶   rg  ©rˆ  r¶   r�   r£   rŠ  ©r¢   r£   r¥   r‘  r†  rý   )Úasync_video_content_handlerrÅ   rG   rH   r‡   rH  rv  rI  r«   Útransform_video_content_requestr  Ú transform_video_content_responser  r  )r  rˆ  r‰  r€   r�   r·   r¤   rø  r  r  r}  rŠ  r  r£   r¶   r¢   rô   r  rú   s                      rˆ   Úvideo_content_handlerz(BaseLLMHTTPHandler.video_content_handlerO  sŸ  € ñ" Ø×3Ñ3Ø!Ø.KØ$7Ø-Ø'ØØ+ØØØð 4ó ð ð ˆ>¤¨F´KÔ!@Ü 1¸,È×HZÑHZÐ[gÐimÓHnÐ9oÔ pÑà &Ðà6×KÑKØ!Ò' RØØØ)ð	 Ló 
ˆñ Ø�N‰N˜=Ô)à7×HÑHØØ#×'Ñ'¨
°DÓ9Ü Ó/ð Ió 
ˆð 2×QÑQØØØ)ØØð Ró 
‰	ˆˆTð	ñ Ø,×1Ñ1ØØ#Øð 2ó ‘ð -×0Ñ0ØØ#Øð 1ó �ð 1×QÑQØ%Ø'ð Ró ð øô
 ò 	Ø×$Ñ$ØØ =ð %ó ð ûð	ús   Ã=D Ä	D#ÄDÄD#c              ƒ   ó~  K  — |	�t        |	t        «      s3t        t        j                  |«      d|j                  dd«      i¬«      }n|	}|j                  |xs i d||¬«      }|r|j                  |«       |j                  d|j                  dd«      t        |«      ¬«      }|j                  |||||
¬«      \  }}	 |r|j                  |||¬	«      ƒ d{  –—† }n|j                  |||¬
«      ƒ d{  –—† }|j                  ||¬«      ƒ d{  –—† S 7 Œ<7 Œ!7 Œ# t        $ r}| j                  ||¬«      ‚d}~ww xY w­w)zF
        Async version of the video content download handler.
        Nr"  rd  r½   rŒ  r¶   rg  r�  rŽ  r‘  r†  rý   )rÅ   rF   rI   rÖ   r*  r‡   rH  rv  rI  r«   r�  r  Ú&async_transform_video_content_responser  r  )r  rˆ  r‰  r€   r�   r·   r¤   rø  r  r  rŠ  rò   r£   r¶   r¢   rô   r  rú   s                     rˆ   r�  z.BaseLLMHTTPHandler.async_video_content_handler©  sš  è ø€ ð  ˆ>¤¨FÔ4DÔ!EÜ!7Ü$×1Ñ1Ð2EÓFØ$ n×&8Ñ&8¸ÀtÓ&LÐMô"Ñð
 "(Ðà6×KÑKØ!Ò' RØØØ)ð	 Ló 
ˆñ Ø�N‰N˜=Ô)à7×HÑHØØ#×'Ñ'¨
°DÓ9Ü Ó/ð Ió 
ˆð 2×QÑQØØØ)ØØð Ró 
‰	ˆˆTð	ñ Ø!3×!8Ñ!8ØØ#Øð "9ó "÷ ‘ð "4×!7Ñ!7ØØ#Øð "8ó "÷ �ð 7×]Ñ]Ø%Ø'ð ^ó ÷ ð ðøðøðùô
 ò 	Ø×$Ñ$ØØ =ð %ó ð ûð	üs`   ‚B:D=Â=D ÃDÃD Ã3DÃ4D ÄDÄD ÄD=ÄD ÄD ÄD Ä	D:Ä"D5Ä5D:Ä:D=Úvideo_remix_provider_configc                 ó€  — |
r| j                  |||||||||	||¬«      S |�t        |t        «      st        d|j	                  dd«      i¬«      }n|}|j                  |xs |j	                  dd«      |xs i d|¬«      }|r|j                  |«       |j                  d|j	                  dd«      t        |«      ¬	«      }|j                  ||||||¬
«      \  }}|j                  |d||||dœ¬«       	 |j                  ||||	¬«      }|j                  |||¬«      S # t        $ r}| j                  ||¬«      ‚d}~ww xY w)z‰
        Handler for video remix requests.
        When _is_async=True, returns a coroutine instead of making the call directly.
        )rˆ  rb  r•  r€   r�   r·   rø  r3  r¤   r  r  Nr"  rC  r  r½   r€  r¶   rg  ©rˆ  rb  r¶   r�   r£   r3  ©r9  r¶   r£   rˆ  r:  r{  ©r'  r·   r€   rý   )Úasync_video_remix_handlerrÅ   rG   rH   r‡   rH  rv  rI  r«   Útransform_video_remix_requestrL  r  Útransform_video_remix_responser  r  )r  rˆ  rb  r•  r€   r�   r·   rø  r3  r¤   r}  r  r  r  r£   r¶   r¢   rô   r  rú   s                       rˆ   Úvideo_remix_handlerz&BaseLLMHTTPHandler.video_remix_handler÷  sÄ  € ñ& à×1Ñ1Ø!ØØ,GØ$7Ø-Ø'Ø+Ø%ØØØð 2ó ð ð ˆ>¤¨F´KÔ!@Ü 1¸,È×HZÑHZÐ[gÐimÓHnÐ9oÔ pÑà &Ðà4×IÑIØÒB˜~×1Ñ1°)¸TÓBØ!Ò' RØØ)ð	 Jó 
ˆñ Ø�N‰N˜=Ô)à5×FÑFØØ#×'Ñ'¨
°DÓ9Ü Ó/ð Gó 
ˆð 0×MÑMØØØØ)ØØ!ð Nó 
‰	ˆˆTð 	×ÑØØà'+ØØ"Ø$ñ	ð 	ô 		
ð	Ø/×4Ñ4ØØØØð	 5ó ˆHð /×MÑMØ%Ø'Ø$7ð Nó ð øô ò 	Ø×$Ñ$ØØ ;ð %ó ð ûð	ús   Ã3(D Ä	D=Ä%D8Ä8D=c           	   ƒ   óˆ  K  — |
�t        |
t        «      s3t        t        j                  |«      d|j                  dd«      i¬«      }n|
}|j                  |xs |j                  dd«      |xs i d|¬«      }|r|j                  |«       |j                  d|j                  dd«      t        |«      ¬«      }|j                  ||||||¬	«      \  }}|j                  |d||||d
œ¬«       	 |j                  ||||	¬«      ƒ d{  –—† }|j                  |||¬«      S 7 Œ# t        $ r}| j                  ||¬«      ‚d}~ww xY w­w)z;
        Async version of the video remix handler.
        Nr"  rd  r  r½   r€  r¶   rg  r—  r˜  r:  r{  r™  rý   )rÅ   rF   rI   rÖ   r*  r‡   rH  rv  rI  r«   r›  rL  r  rœ  r  r  )r  rˆ  rb  r•  r€   r�   r·   rø  r3  r¤   r  r  rò   r£   r¶   r¢   rô   r  rú   s                      rˆ   rš  z,BaseLLMHTTPHandler.async_video_remix_handlerZ  s¦  è ø€ ð" ˆ>¤¨FÔ4DÔ!EÜ!7Ü$×1Ñ1Ð2EÓFØ$ n×&8Ñ&8¸ÀtÓ&LÐMô"Ñð
 "(Ðà4×IÑIØÒB˜~×1Ñ1°)¸TÓBØ!Ò' RØØ)ð	 Jó 
ˆñ Ø�N‰N˜=Ô)à5×FÑFØØ#×'Ñ'¨
°DÓ9Ü Ó/ð Gó 
ˆð 0×MÑMØØØØ)ØØ!ð Nó 
‰	ˆˆTð 	×ÑØØà'+ØØ"Ø$ñ	ð 	ô 		
ð	Ø$6×$;Ñ$;ØØØØð	 %<ó %÷ ˆHð /×MÑMØ%Ø'Ø$7ð Nó ð ðùô ò 	Ø×$Ñ$ØØ ;ð %ó ð ûð	üs<   ‚C(EÃ+D ÄDÄD ÄEÄD Ä	D?Ä'D:Ä:D?Ä?ErP  ÚvideoÚvideo_provider_configc                 óœ  — |	r| j                  |||||||||
|¬«
      S |
�t        |
t        «      st        d|j	                  dd «      i¬«      }n|
}|j                  |xs |j	                  dd «      |xs i d|¬«      }|r|j                  |«       |j                  d|j	                  dd «      t        |«      ¬«      }|j                  |||||¬	«      \  }}|j                  |dd
|i||dœ¬«       	 |j                  ||||¬«      }|j                  «        |j                  ||¬«      S # t        $ r}| j                  ||¬«      ‚d }~ww xY w)N)
rP  rŸ  r   r€   r�   r·   rø  r¤   r  r  r"  rC  r  r½   r€  r¶   rg  ©rP  rŸ  r¶   r�   r£   rP  r8  r:  rÂ  r†  rý   )Ú$async_video_create_character_handlerrÅ   rG   rH   r‡   rH  rv  rI  r«   Ú(transform_video_create_character_requestrL  r  rß  Ú)transform_video_create_character_responser  r  )r  rP  rŸ  r   r€   r�   r·   rø  r¤   r}  r  r  r  r£   r¶   r¢   Ú
files_listr  rú   s                      rˆ   Úvideo_create_character_handlerz1BaseLLMHTTPHandler.video_create_character_handler­  sÉ  € ñ Ø×<Ñ<ØØØ&;Ø$7Ø-Ø'Ø+ØØØð =ó ð ð ˆ>¤¨F´KÔ!@Ü 1¸,È×HZÑHZÐ[gÐimÓHnÐ9oÔ pÑà &Ðà.×CÑCØÒB˜~×1Ñ1°)¸TÓBØ!Ò' RØØ)ð	 Dó 
ˆñ Ø�N‰N˜=Ô)à/×@Ñ@ØØ#×'Ñ'¨
°DÓ9Ü Ó/ð Aó 
ˆð "×JÑJØØØØ)Øð Kó 
ñ	
ØØð 	×ÑØØà(.° ~ØØ"ñð 	ô 	
ð	QØ/×4Ñ4ØØØ Øð	 5ó ˆHð ×%Ñ%Ô'Ø(×RÑRØ%Ø'ð Só ð øô ò 	QØ×$Ñ$ qÐ:OÐ$ÓPÐPûð	Qús   Ã27D* Ä*	EÄ3EÅEc              ƒ   ó¦  K  — |	�t        |	t        «      s3t        t        j                  |«      d|j                  dd «      i¬«      }n|	}|j                  |
xs |j                  dd «      |xs i d|¬«      }|r|j                  |«       |j                  d|j                  dd «      t        |«      ¬«      }|j                  |||||¬«      \  }}|j                  |dd	|i||d
œ¬«       	 |j                  ||||¬«      ƒ d {  –—† }|j                  «        |j                  ||¬«      S 7 Œ'# t        $ r}| j!                  ||¬«      ‚d }~ww xY w­w)Nr"  rd  r  r½   r€  r¶   rg  r¢  rP  r8  r:  rÂ  r†  rý   )rÅ   rF   rI   rÖ   r*  r‡   rH  rv  rI  r«   r¤  rL  r  rß  r¥  r  r  )r  rP  rŸ  r   r€   r�   r·   rø  r¤   r  r  rò   r£   r¶   r¢   r¦  r  rú   s                     rˆ   r£  z7BaseLLMHTTPHandler.async_video_create_character_handler  s®  è ø€ ð ˆ>¤¨FÔ4DÔ!EÜ!7Ü$×1Ñ1Ð2EÓFØ$ n×&8Ñ&8¸ÀtÓ&LÐMô"Ñð
 "(Ðà.×CÑCØÒB˜~×1Ñ1°)¸TÓBØ!Ò' RØØ)ð	 Dó 
ˆñ Ø�N‰N˜=Ô)à/×@Ñ@ØØ#×'Ñ'¨
°DÓ9Ü Ó/ð Aó 
ˆð "×JÑJØØØØ)Øð Kó 
ñ	
ØØð 	×ÑØØà(.° ~ØØ"ñð 	ô 	
ð	QØ$6×$;Ñ$;ØØØ Øð	 %<ó %÷ ˆHð ×%Ñ%Ô'Ø(×RÑRØ%Ø'ð Só ð ðùô ò 	QØ×$Ñ$ qÐ:OÐ$ÓPÐPûð	Qüs<   ‚C(EÃ+D- ÄD+Ä&D- Ä*EÄ+D- Ä-	EÄ6E	Å	EÅEÚcharacter_idc                 ó�  — |r| j                  ||||||||	|
¬«	      S |	�t        |	t        «      st        d|j	                  dd «      i¬«      }n|	}|j                  |
xs |j	                  dd «      |xs i d|¬«      }|r|j                  |«       |j                  d|j	                  dd «      t        |«      ¬«      }|j                  ||||¬	«      \  }}|j                  |d||d
œ¬«       	 |j	                  |||¬«      }|j                  «        |j                  ||¬«      S # t        $ r}| j                  ||¬«      ‚d }~ww xY w)N)	r©  r   r€   r�   r·   rø  r¤   r  r  r"  rC  r  r½   r€  r¶   rg  ©r©  r¶   r�   r£   ©r¶   r£   r:  r‘  r†  rý   )Ú!async_video_get_character_handlerrÅ   rG   rH   r‡   rH  rv  rI  r«   Ú%transform_video_get_character_requestrL  rß  Ú&transform_video_get_character_responser  r  )r  r©  r   r€   r�   r·   rø  r¤   r}  r  r  r  r£   r¶   r¢   r%  r  rú   s                     rˆ   Úvideo_get_character_handlerz.BaseLLMHTTPHandler.video_get_character_handlerI  s©  € ñ Ø×9Ñ9Ø)Ø&;Ø$7Ø-Ø'Ø+ØØØð :ó 
ð 
ð ˆ>¤¨F´KÔ!@Ü 1¸,È×HZÑHZÐ[gÐimÓHnÐ9oÔ pÑà &Ðà.×CÑCØÒB˜~×1Ñ1°)¸TÓBØ!Ò' RØØ)ð	 Dó 
ˆñ Ø�N‰N˜=Ô)à/×@Ñ@ØØ#×'Ñ'¨
°DÓ9Ü Ó/ð Aó 
ˆð ,×QÑQØ%ØØ)Øð	 Ró 
‰ˆˆVð 	×ÑØØØ),¸ÑAð 	ô 	
ð	QØ/×3Ñ3¸ÀWÐU[Ð3Ó\ˆHØ×%Ñ%Ô'Ø(×OÑOØ%Ø'ð Pó ð øô ò 	QØ×$Ñ$ qÐ:OÐ$ÓPÐPûð	Qús   Ã-6D$ Ä$	EÄ-E Å Ec
              ƒ   óœ  K  — |�t        |t        «      s3t        t        j                  |«      d|j                  dd «      i¬«      }
n|}
|j                  |	xs |j                  dd «      |xs i d|¬«      }|r|j                  |«       |j                  d|j                  dd «      t        |«      ¬«      }|j                  ||||¬«      \  }}|j                  |d||d	œ¬
«       	 |
j                  |||¬«      ƒ d {  –—† }|j                  «        |j                  ||¬«      S 7 Œ'# t        $ r}| j                  ||¬«      ‚d }~ww xY w­w)Nr"  rd  r  r½   r€  r¶   rg  r«  r¬  r:  r‘  r†  rý   )rÅ   rF   rI   rÖ   r*  r‡   rH  rv  rI  r«   r®  rL  rß  r¯  r  r  )r  r©  r   r€   r�   r·   rø  r¤   r  r  rò   r£   r¶   r¢   r%  r  rú   s                    rˆ   r­  z4BaseLLMHTTPHandler.async_video_get_character_handlerŽ  s�  è ø€ ð ˆ>¤¨FÔ4DÔ!EÜ!7Ü$×1Ñ1Ð2EÓFØ$ n×&8Ñ&8¸ÀtÓ&LÐMô"Ñð
 "(Ðà.×CÑCØÒB˜~×1Ñ1°)¸TÓBØ!Ò' RØØ)ð	 Dó 
ˆñ Ø�N‰N˜=Ô)à/×@Ñ@ØØ#×'Ñ'¨
°DÓ9Ü Ó/ð Aó 
ˆð ,×QÑQØ%ØØ)Øð	 Ró 
‰ˆˆVð 	×ÑØØØ),¸ÑAð 	ô 	
ð	QØ$6×$:Ñ$:¸sÈGÐ\bÐ$:Ó$c×cˆHØ×%Ñ%Ô'Ø(×OÑOØ%Ø'ð Pó ð ð dùô ò 	QØ×$Ñ$ qÐ:OÐ$ÓPÐPûð	Qüs<   ‚C$EÃ'D( Ã>D&Ã?&D( Ä%EÄ&D( Ä(	E	Ä1EÅE	Å	EÚ
video_filec                 óÊ  — |r| j                  |||||||||	|
||¬«      S |�t        |t        «      st        d|j	                  dd «      i¬«      }n|}|j                  |xs |j	                  dd «      |xs i d|¬«      }|r|j                  |«       |j                  d|j	                  dd «      t        |«      ¬«      }d }|j                  ||||¬	«      }|�;|\  }}	 |j                  ||||
¬
«      }|j                  «        |j                  «       }	 |j                  |||||||	|¬«      \  }}}|j!                  |d||||dœ¬«       |r|j                  |||||
¬«      n|j                  ||||
¬
«      }|j                  «        |j#                  ||||¬«      S # t        $ r}| j                  ||¬«      ‚d }~ww xY w# t        $ r}| j                  ||¬«      ‚d }~ww xY w)N)rb  rˆ  r²  r   r€   r�   r·   rø  r3  r¤   r  r  r"  rC  r  r½   r€  r¶   rg  ©rˆ  r¶   r�   r£   r{  rý   ©rb  rˆ  r²  r¶   r�   r£   r3  Úprefetched_source_datar˜  r:  ri  ©r'  r·   r€   rü   )Úasync_video_edit_handlerrÅ   rG   rH   r‡   rH  rv  rI  r«   Úget_video_edit_prefetch_paramsr  rß  r  r  r¥   Útransform_video_edit_requestrL  Útransform_video_edit_response)r  rb  rˆ  r   r€   r�   r·   r²  rø  r3  r¤   r}  r  r  r  r£   r¶   r¶  Úprefetch_paramsÚprefetch_urlÚprefetch_bodyÚprefetch_resprú   r¢   rô   rŽ  r  s                              rˆ   Úvideo_edit_handlerz%BaseLLMHTTPHandler.video_edit_handlerÈ  s¥  € ñ  Ø×0Ñ0ØØ!Ø%Ø&;Ø$7Ø-Ø'Ø+Ø%ØØØð 1ó ð ð ˆ>¤¨F´KÔ!@Ü 1¸,È×HZÑHZÐ[gÐimÓHnÐ9oÔ pÑà &Ðà.×CÑCØÒB˜~×1Ñ1°)¸TÓBØ!Ò' RØØ)ð	 Dó 
ˆñ Ø�N‰N˜=Ô)à/×@Ñ@ØØ#×'Ñ'¨
°DÓ9Ü Ó/ð Aó 
ˆð "&ÐØ!6×!UÑ!UØØØ)Øð	 "Vó "
ˆð Ð&Ø*9Ñ'ˆL˜-ð	UØ'8×'=Ñ'=Ø$Ø#Ø&Ø#ð	 (>ó (�ð ×.Ñ.Ô0ð &3×%7Ñ%7Ó%9Ð"ð$	QØ4×QÑQØØ!Ø%Ø!Ø-ØØ%Ø'=ð  Ró 	 ÑˆC��uð × Ñ ØØà+/Ø #Ø&Ø (ñ	!ð !ô 	ñ ð "×&Ñ&¨3¸ÀdÐRWÐahÐ&Ôià&×+Ñ+°¸WÈ4ÐY`Ð+Óað ð
 ×%Ñ%Ô'Ø(×FÑFØ%Ø'Ø$7Ø!ð	 Gó ð øôC ò UØ×(Ñ(¨1Ð>SÐ(ÓTÐTûðUûôN ò 	QØ×$Ñ$ qÐ:OÐ$ÓPÐPûð	Qús1   Ã%F ÄBG Æ	F>Æ&F9Æ9F>Ç	G"Ç
GÇG"c           
   ƒ   óä  K  — |�t        |t        «      s3t        t        j                  |«      d|j                  dd «      i¬«      }n|}|j                  |xs |j                  dd «      |xs i d|¬«      }|r|j                  |«       |j                  d|j                  dd «      t        |«      ¬«      }d }|j                  ||||¬«      }|�C|\  }}	 |j                  ||||
¬	«      ƒ d {  –—† }|j                  «        |j                  «       }	 |j!                  |||||||	|¬«      \  }}}|j#                  |d||||dœ¬«       |r|j                  |||||
¬«      n|j                  ||||
¬	«      ƒ d {  –—† }|j                  «        |j%                  ||||¬«      S 7 Œµ# t        $ r}| j                  ||¬
«      ‚d }~ww xY w7 ŒO# t        $ r}| j                  ||¬
«      ‚d }~ww xY w­w)Nr"  rd  r  r½   r€  r¶   rg  r´  r{  rý   rµ  r˜  r:  ri  r·  )rÅ   rF   rI   rÖ   r*  r‡   rH  rv  rI  r«   r¹  r  rß  r  r  r¥   rº  rL  r»  )r  rb  rˆ  r   r€   r�   r·   r²  rø  r3  r¤   r  r  rò   r£   r¶   r¶  r¼  r½  r¾  r¿  rú   r¢   rô   rŽ  r  s                             rˆ   r¸  z+BaseLLMHTTPHandler.async_video_edit_handler7  sŒ  è ø€ ð ˆ>¤¨FÔ4DÔ!EÜ!7Ü$×1Ñ1Ð2EÓFØ$ n×&8Ñ&8¸ÀtÓ&LÐMô"Ñð
 "(Ðà.×CÑCØÒB˜~×1Ñ1°)¸TÓBØ!Ò' RØØ)ð	 Dó 
ˆñ Ø�N‰N˜=Ô)à/×@Ñ@ØØ#×'Ñ'¨
°DÓ9Ü Ó/ð Aó 
ˆð "&ÐØ!6×!UÑ!UØØØ)Øð	 "Vó "
ˆð Ð&Ø*9Ñ'ˆL˜-ð	UØ-?×-DÑ-DØ$Ø#Ø&Ø#ð	 .Eó .÷ (�ð ×.Ñ.Ô0ð &3×%7Ñ%7Ó%9Ð"ð$	QØ4×QÑQØØ!Ø%Ø!Ø-ØØ%Ø'=ð  Ró 	 ÑˆC��uð × Ñ ØØà+/Ø #Ø&Ø (ñ	!ð !ô 	ñ ð #×'Ñ'¨C¸ÀtÐSXÐbiÐ'Ôjà'×,Ñ,°¸gÈDÐZaÐ,Ób÷ˆHð
 ×%Ñ%Ô'Ø(×FÑFØ%Ø'Ø$7Ø!ð	 Gó ð ðQ(ùô ò UØ×(Ñ(¨1Ð>SÐ(ÓTÐTûðUúð6ùô ò 	QØ×$Ñ$ qÐ:OÐ$ÓPÐPûð	Qüss   ‚CG0ÃF& Ã.F$Ã/F& ÄG0ÄA&G Å:G
Å;(G Æ#G0Æ$F& Æ&	GÆ/GÇGÇG0Ç
G Ç	G-ÇG(Ç(G-Ç-G0Úsecondsc                 ó¤  — |r| j                  |||||||||	|
||¬«      S |�t        |t        «      st        d|j	                  dd «      i¬«      }n|}|j                  |xs |j	                  dd «      |xs i d|¬«      }|r|j                  |«       |j                  d|j	                  dd «      t        |«      ¬«      }|j                  |||||||	¬	«      \  }}|j                  |d||||d
œ¬«       	 |j                  ||||
¬«      }|j                  «        |j                  |||¬«      S # t        $ r}| j                  ||¬«      ‚d }~ww xY w)N)rb  rˆ  rÂ  r   r€   r�   r·   rø  r3  r¤   r  r  r"  rC  r  r½   r€  r¶   rg  ©rb  rˆ  rÂ  r¶   r�   r£   r3  r˜  r:  r{  r™  rý   )Úasync_video_extension_handlerrÅ   rG   rH   r‡   rH  rv  rI  r«   Ú!transform_video_extension_requestrL  r  rß  Ú"transform_video_extension_responser  r  )r  rb  rˆ  rÂ  r   r€   r�   r·   rø  r3  r¤   r}  r  r  r  r£   r¶   r¢   rô   r  rú   s                        rˆ   Úvideo_extension_handlerz*BaseLLMHTTPHandler.video_extension_handler˜  sÒ  € ñ  Ø×5Ñ5ØØ!ØØ&;Ø$7Ø-Ø'Ø+Ø%ØØØð 6ó ð ð ˆ>¤¨F´KÔ!@Ü 1¸,È×HZÑHZÐ[gÐimÓHnÐ9oÔ pÑà &Ðà.×CÑCØÒB˜~×1Ñ1°)¸TÓBØ!Ò' RØØ)ð	 Dó 
ˆñ Ø�N‰N˜=Ô)à/×@Ñ@ØØ#×'Ñ'¨
°DÓ9Ü Ó/ð Aó 
ˆð *×KÑKØØØØØ)ØØ!ð Ló 
‰	ˆˆTð 	×ÑØØà'+ØØ"Ø$ñ	ð 	ô 		
ð	QØ/×4Ñ4ØØØØð	 5ó ˆHð ×%Ñ%Ô'Ø(×KÑKØ%Ø'Ø$7ð Ló ð øô
 ò 	QØ×$Ñ$ qÐ:OÐ$ÓPÐPûð	Qús   Ã58D. Ä.	EÄ7E
Å
Ec           	   ƒ   óª  K  — |�t        |t        «      s3t        t        j                  |«      d|j                  dd «      i¬«      }n|}|j                  |xs |j                  dd «      |xs i d|¬«      }|r|j                  |«       |j                  d|j                  dd «      t        |«      ¬«      }|j                  |||||||	¬«      \  }}|j                  |d||||d	œ¬
«       	 |j                  ||||
¬«      ƒ d {  –—† }|j                  «        |j                  |||¬«      S 7 Œ(# t        $ r}| j!                  ||¬«      ‚d }~ww xY w­w)Nr"  rd  r  r½   r€  r¶   rg  rÄ  r˜  r:  r{  r™  rý   )rÅ   rF   rI   rÖ   r*  r‡   rH  rv  rI  r«   rÆ  rL  r  rß  rÇ  r  r  )r  rb  rˆ  rÂ  r   r€   r�   r·   rø  r3  r¤   r  r  rò   r£   r¶   r¢   rô   r  rú   s                       rˆ   rÅ  z0BaseLLMHTTPHandler.async_video_extension_handlerñ  s±  è ø€ ð ˆ>¤¨FÔ4DÔ!EÜ!7Ü$×1Ñ1Ð2EÓFØ$ n×&8Ñ&8¸ÀtÓ&LÐMô"Ñð
 "(Ðà.×CÑCØÒB˜~×1Ñ1°)¸TÓBØ!Ò' RØØ)ð	 Dó 
ˆñ Ø�N‰N˜=Ô)à/×@Ñ@ØØ#×'Ñ'¨
°DÓ9Ü Ó/ð Aó 
ˆð *×KÑKØØØØØ)ØØ!ð Ló 
‰	ˆˆTð 	×ÑØØà'+ØØ"Ø$ñ	ð 	ô 		
ð	QØ$6×$;Ñ$;ØØØØð	 %<ó %÷ ˆHð ×%Ñ%Ô'Ø(×KÑKØ%Ø'Ø$7ð Ló ð ðùô ò 	QØ×$Ñ$ qÐ:OÐ$ÓPÐPûð	Qüs<   ‚C)EÃ,D/ ÄD-Ä'D/ Ä,EÄ-D/ Ä/	EÄ8EÅEÅEÚextra_queryc                 ó    — |r| j                  |||||||||	|
||¬«      S ddl} |j                  | j                  |||||||||	|
|¬«      «      S )z2
        Handler for video list requests.
        )r˜  r›  rœ  Úvideo_list_provider_configr€   r�   r·   rø  rÊ  r¤   r  r  r   N)r˜  r›  rœ  rÌ  r€   r�   r·   rø  rÊ  r¤   r  )Úasync_video_list_handlerrë  rS  )r  r˜  r›  rœ  rÌ  r€   r�   r·   rø  rÊ  r¤   r}  r  r  rë  s                  rˆ   Úvideo_list_handlerz%BaseLLMHTTPHandler.video_list_handler<   s�   € ñ& Ø×0Ñ0ØØØØ+EØ$7Ø-Ø'Ø+Ø'ØØØð 1ó ð ó  à�7—;‘;Ø×-Ñ-ØØØØ/IØ(;Ø#1Ø +Ø"/Ø +Ø#Ø!ð .ó óð rŠ   rÌ  c           	   ƒ   ó^  K  — |�t        |t        «      s3t        t        j                  |«      d|j                  dd«      i¬«      }n|}|j                  ||xs i d|¬«      }|r|j                  |«       |j                  d|j                  dd«      t        |«      ¬«      }|j                  |||||||	¬«      \  }}|j                  dd|||d	œ¬
«       	 |j                  |||¬«      ƒ d{  –—† }|j                  |||¬«      S 7 Œ# t        $ r}| j                  ||¬«      ‚d}~ww xY w­w)z:
        Async version of the video list handler.
        Nr"  rd  r½   r€  r¶   rg  ©r¶   r�   r£   r˜  r›  rœ  rÊ  ©r¶   r£   r%  r:  r‘  r™  rý   )rÅ   rF   rI   rÖ   r*  r‡   rH  rv  rI  r«   Útransform_video_list_requestrL  Útransform_video_list_responser  r  )r  r˜  r›  rœ  rÌ  r€   r�   r·   rø  rÊ  r¤   r  r  rò   r£   r¶   r¢   r%  r  rú   s                       rˆ   rÍ  z+BaseLLMHTTPHandler.async_video_list_handlerr   s‘  è ø€ ð$ ˆ>¤¨FÔ4DÔ!EÜ!7Ü$×1Ñ1Ð2EÓFØ$ n×&8Ñ&8¸ÀtÓ&LÐMô"Ñð
 "(Ðà3×HÑHØØ!Ò' RØØ)ð	 Ió 
ˆñ Ø�N‰N˜=Ô)à4×EÑEØØ#×'Ñ'¨
°DÓ9Ü Ó/ð Fó 
ˆð 1×MÑMØØ)ØØØØØ#ð Nó 
‰ˆˆVð 	×ÑØØàØ"Ø ñð 	ô 	
ð	Ø$6×$:Ñ$:ØØØð %;ó %÷ ˆHð .×KÑKØ%Ø'Ø$7ð Ló ð ðùô ò 	Ø×$Ñ$ØØ :ð %ó ð ûð	üs<   ‚CD-ÃD	 Ã.DÃ/D	 ÄD-ÄD	 Ä		D*ÄD%Ä%D*Ä*D-Úvideo_delete_provider_configc
              ƒ   óV  K  — |�t        |t        «      s3t        t        j                  |«      d|j                  dd«      i¬«      }
n|}
|j                  |	|xs i d|¬«      }|r|j                  |«       |j                  d|j                  dd«      t        |«      ¬«      }|j                  ||||¬«      \  }}|j                  dd|||d	œ¬
«       	 |
j                  |||¬«      ƒ d{  –—† }|j                  ||¬«      S 7 Œ# t        $ r}| j                  ||¬«      ‚d}~ww xY w­w)z<
        Async version of the video delete handler.
        Nr"  rd  r½   r€  r¶   rg  r´  )r¶   r£   rˆ  r:  rn  r†  rý   )rÅ   rF   rI   rÖ   r*  r‡   rH  rv  rI  r«   Útransform_video_delete_requestrL  r‰  Útransform_video_delete_responser  r  )r  rˆ  rÔ  r€   r�   r·   rø  r¤   r  r  rò   r£   r¶   r¢   rô   r  rú   s                    rˆ   Úasync_video_delete_handlerz-BaseLLMHTTPHandler.async_video_delete_handlerÅ   s…  è ø€ ð ˆ>¤¨FÔ4DÔ!EÜ!7Ü$×1Ñ1Ð2EÓFØ$ n×&8Ñ&8¸ÀtÓ&LÐMô"Ñð
 "(Ðà5×JÑJØØ!Ò' RØØ)ð	 Kó 
ˆñ Ø�N‰N˜=Ô)à6×GÑGØØ#×'Ñ'¨
°DÓ9Ü Ó/ð Hó 
ˆð 1×OÑOØØØ)Øð	 Pó 
‰	ˆˆTð 	×ÑØØàØ"Ø$ñð 	ô 	
ð	Ø$6×$=Ñ$=ØØØð %>ó %÷ ˆHð 0×OÑOØ%Ø'ð Pó ð ðùô ò 	Ø×$Ñ$ØØ <ð %ó ð ûð	üs<   ‚CD)ÃD Ã+DÃ,D ÄD)ÄD Ä	D&ÄD!Ä!D&Ä&D)Úvideo_status_provider_configc                 ó|  — |	r| j                  |||||||||
|¬«
      S |
�t        |
t        «      st        d|j	                  dd«      i¬«      }n|
}|j                  ||xs i d|¬«      }|r|j                  |«       |j                  d|j	                  dd«      t        |«      ¬«      }|j                  ||||¬	«      \  }}|j                  dd||||d
œ¬«       	 |r|j                  |||¬«      }n|j	                  ||¬«      }|j                  |||¬«      S # t        $ r}| j                  ||¬«      ‚d}~ww xY w)zŠ
        Handler for video status requests.
        When _is_async=True, returns a coroutine instead of making the call directly.
        )
rˆ  rÙ  r€   r�   r·   rø  r3  r¤   r  r  Nr"  rC  r½   r€  r¶   rg  r´  ©r¶   r£   rˆ  rô   r:  rŽ  rË  r™  rý   )Úasync_video_status_handlerrÅ   rG   rH   r‡   rH  rv  rI  r«   Ú'transform_video_status_retrieve_requestrL  r  Ú(transform_video_status_retrieve_responser  r  )r  rˆ  rÙ  r€   r�   r·   rø  r3  r¤   r}  r  r  r  r£   r¶   r¢   rô   r  rú   s                      rˆ   Úvideo_status_handlerz'BaseLLMHTTPHandler.video_status_handler!  sÍ  € ñ$ à×2Ñ2Ø!Ø-IØ$7Ø-Ø'Ø+Ø%ØØØð 3ó ð ð ˆ>¤¨F´KÔ!@Ü 1¸,È×HZÑHZÐ[gÐimÓHnÐ9oÔ pÑà &Ðà5×JÑJØØ!Ò' RØØ)ð	 Kó 
ˆñ Ø�N‰N˜=Ô)à6×GÑGØØ#×'Ñ'¨
°DÓ9Ü Ó/ð Hó 
ˆð )×PÑPØØØ)Øð	 Qó 
ñ	
ØØð 	×ÑØØàØ"Ø$Øñ	ð 	ô 		
ð	ñ Ø,×1Ñ1ØØ#Øð 2ó ‘ð -×0Ñ0ØØ#ð 1ó �ð
 0×XÑXØ%Ø'Ø$7ð Yó ð øô ò 	Ø×$Ñ$ØØ <ð %ó ð ûð	ús   Ã=D Ä	D;Ä#D6Ä6D;c           	   ƒ   óš  K  — |	�t        |	t        «      s3t        t        j                  |«      d|j                  dd«      i¬«      }n|	}|j                  |
|xs i d|¬«      }|r|j                  |«       |j                  d|j                  dd«      t        |«      ¬«      }|j                  ||||¬«      \  }}|j                  dd||||d	œ¬
«       	 |r|j                  |||¬«      ƒ d{  –—† }n|j                  ||¬«      ƒ d{  –—† }|j                  |||¬«      S 7 Œ47 Œ# t        $ r}| j                  ||¬«      ‚d}~ww xY w­w)z<
        Async version of the video status handler.
        Nr"  rd  r½   r€  r¶   rg  r´  rÛ  r:  rŽ  rË  r™  rý   )rÅ   rF   rI   rÖ   r*  r‡   rH  rv  rI  r«   rÝ  rL  r  rÞ  r  r  )r  rˆ  rÙ  r€   r�   r·   rø  r3  r¤   r  r  rò   r£   r¶   r¢   rô   r  rú   s                     rˆ   rÜ  z-BaseLLMHTTPHandler.async_video_status_handlerz!  s½  è ø€ ð  ˆ>¤¨FÔ4DÔ!EÜ!7Ü$×1Ñ1Ð2EÓFØ$ n×&8Ñ&8¸ÀtÓ&LÐMô"Ñð
 "(Ðà5×JÑJØØ!Ò' RØØ)ð	 Kó 
ˆñ Ø�N‰N˜=Ô)à6×GÑGØØ#×'Ñ'¨
°DÓ9Ü Ó/ð Hó 
ˆð )×PÑPØØØ)Øð	 Qó 
ñ	
ØØð 	×ÑØØàØ"Ø$Øñ	ð 	ô 		
ð	ñ Ø!3×!8Ñ!8ØØ#Øð "9ó "÷ ‘ð "4×!7Ñ!7ØØ#ð "8ó "÷ �ð 0×XÑXØ%Ø'Ø$7ð Yó ð ðøðùô ò 	Ø×$Ñ$ØØ <ð %ó ð ûð	üsN   ‚CEÃD' Ã.D#Ã/D' Ä
D%ÄD' Ä"EÄ#D' Ä%D' Ä'	EÄ0EÅEÅEÚcontainer_create_request_paramsÚcontainer_provider_configrR   c
           
      óh  — |r| j                  ||||||||	¬«      S |	�t        |	t        «      st        d|j	                  dd «      i¬«      }
n|	}
|j                  |xs i |j	                  dd «      ¬«      }d|d<   |r|j                  |«       |j                  |j	                  dd «      t        |«      ¬	«      }|j                  ||||¬
«      }|j                  |d|||dœ¬«       	 |
j                  ||||¬«      }|j                  ||¬«      S # t        $ r}| j                  ||¬«      ‚d }~ww xY w)N)rP  rá  râ  r�   r·   rø  r¤   r  r"  rC  r  ©r£   r  r…  rŠ  r¶   rg  ©rP  Ú(container_create_optional_request_paramsr�   r£   r½   r8  r:  r{  r†  rý   )Úasync_container_create_handlerrÅ   rG   rH   r‡   rH  rv  rI  r«   Ú"transform_container_create_requestrL  r  Ú#transform_container_create_responser  r  )r  rP  rá  râ  r�   r·   rø  r¤   r}  r  r  r£   r¶   rô   r  rú   s                   rˆ   Úcontainer_create_handlerz+BaseLLMHTTPHandler.container_create_handlerÔ!  s«  € ñ à×6Ñ6ØØ0OØ*CØ-Ø'Ø+ØØð 7ó 	ð 	ð ˆ>¤¨F´KÔ!@Ü 1¸,È×HZÑHZÐ[gÐimÓHnÐ9oÔ pÑà &Ðð 3×GÑGØ!Ò' RØ"×&Ñ& y°$Ó7ð Hó 
ˆð #5ˆ�ÑáØ�N‰N˜=Ô)ð 4×DÑDØ#×'Ñ'¨
°DÓ9Ü Ó/ð Eó 
ˆð 0×RÑRØØ5TØ)Øð	 Só 
ˆð 	×ÑØØà'+Ø$Ø"ñð 	ô 	
ð	Ø/×4Ñ4ØØØØð	 5ó ˆHð -×PÑPØ%Ø'ð Qó ð øô
 ò 	Ø×$Ñ$ØØ 9ð %ó ð ûð	ús   Ã('D Ä	D1ÄD,Ä,D1c	              ƒ   ó€  K  — |�t        |t        «      s8t        t        j                  j
                  d|j                  dd «      i¬«      }	n|}	|j                  |xs i |j                  dd «      ¬«      }
d|
d<   |r|
j                  |«       |j                  |j                  dd «      t        |«      ¬«      }|j                  ||||
¬	«      }|j                  |d
|||
dœ¬«       	 |	j                  ||
||¬«      ƒ d {  –—† }|j                  ||¬«      S 7 Œ# t        $ r}| j!                  ||¬«      ‚d }~ww xY w­w)Nr"  rd  r  rä  r…  rŠ  r¶   rg  rå  r½   r8  r:  r{  r†  rý   )rÅ   rF   rI   rÖ   r*  r-  r‡   rH  rv  rI  r«   rè  rL  r  ré  r  r  )r  rP  rá  râ  r�   r·   rø  r¤   r  rò   r£   r¶   rô   r  rú   s                  rˆ   rç  z1BaseLLMHTTPHandler.async_container_create_handler+"  s–  è ø€ ð ˆ>¤¨FÔ4DÔ!EÜ!7Ü$×1Ñ1×8Ñ8Ø$ n×&8Ñ&8¸ÀtÓ&LÐMô"Ñð
 "(Ðð 3×GÑGØ!Ò' RØ"×&Ñ& y°$Ó7ð Hó 
ˆð #5ˆ�ÑáØ�N‰N˜=Ô)ð 4×DÑDØ#×'Ñ'¨
°DÓ9Ü Ó/ð Eó 
ˆð 0×RÑRØØ5TØ)Øð	 Só 
ˆð 	×ÑØØà'+Ø$Ø"ñð 	ô 	
ð	Ø$6×$;Ñ$;ØØØØð	 %<ó %÷ ˆHð -×PÑPØ%Ø'ð Qó ð ðùô ò 	Ø×$Ñ$ØØ 9ð %ó ð ûð	üs<   ‚C%D>Ã(D Ä DÄD ÄD>ÄD Ä	D;Ä#D6Ä6D;Ä;D>rQ   c                 ót  — |
r| j                  |||||||||	|¬«
      S |�t        |t        «      st        d|j	                  dd «      i¬«      }n|}|j                  |xs i |j	                  dd «      ¬«      }|r|j                  |«       |j                  |j	                  dd «      t        |«      ¬«      }|j                  |||||||¬«      \  }}|j                  d	d	|||d
œ¬«       	 |j	                  |||xs d ¬«      }|j                  ||¬«      S # t        $ r}| j                  ||¬«      ‚d }~ww xY w)N)
râ  r�   r·   r˜  r›  rœ  rø  rÊ  r¤   r  r"  rC  r  rä  r¶   rg  rÐ  r½   rÑ  r:  r‘  r†  rý   )Úasync_container_list_handlerrÅ   rG   rH   r‡   rH  rv  rI  r«   Ú transform_container_list_requestrL  Ú!transform_container_list_responser  r  )r  râ  r�   r·   r˜  r›  rœ  rø  rÊ  r¤   r}  r  r  r£   r¶   r¢   r%  r  rú   s                      rˆ   Úcontainer_list_handlerz)BaseLLMHTTPHandler.container_list_handlerw"  sµ  € ñ à×4Ñ4Ø*CØ-Ø'ØØØØ+Ø'ØØð 5ó ð ð ˆ>¤¨F´KÔ!@Ü 1¸,È×HZÑHZÐ[gÐimÓHnÐ9oÔ pÑà &Ðð 3×GÑGØ!Ò' RØ"×&Ñ& y°$Ó7ð Hó 
ˆñ
 Ø�N‰N˜=Ô)ð 4×DÑDØ#×'Ñ'¨
°DÓ9Ü Ó/ð Eó 
ˆð 0×PÑPØØ)ØØØØØ#ð Qó 
‰ˆˆVð 	×ÑØØàØ"Ø ñð 	ô 	
ð	Ø/×3Ñ3ØØØ’~ ð 4ó ˆHð -×NÑNØ%Ø'ð Oó ð øô
 ò 	Ø×$Ñ$ØØ 9ð %ó ð ûð	ús   Ã+*D Ä	D7ÄD2Ä2D7c           	   ƒ   óˆ  K  — |
�t        |
t        «      s8t        t        j                  j
                  d|j                  dd «      i¬«      }n|
}|j                  |xs i |j                  dd «      ¬«      }|r|j                  |«       |j                  |j                  dd «      t        |«      ¬«      }|j                  |||||||¬«      \  }}|j                  dd|||d	œ¬
«       	 |j                  |||xs d ¬«      ƒ d {  –—† }|j                  ||¬«      S 7 Œ# t        $ r}| j                  ||¬«      ‚d }~ww xY w­w)Nr"  rd  r  rä  r¶   rg  rÐ  r½   rÑ  r:  r‘  r†  rý   )rÅ   rF   rI   rÖ   r*  r-  r‡   rH  rv  rI  r«   rî  rL  rï  r  r  )r  râ  r�   r·   r˜  r›  rœ  rø  rÊ  r¤   r  rò   r£   r¶   r¢   r%  r  rú   s                     rˆ   rí  z/BaseLLMHTTPHandler.async_container_list_handlerÑ"  sš  è ø€ ð ˆ>¤¨FÔ4DÔ!EÜ!7Ü$×1Ñ1×8Ñ8Ø$ n×&8Ñ&8¸ÀtÓ&LÐMô"Ñð
 "(Ðð 3×GÑGØ!Ò' RØ"×&Ñ& y°$Ó7ð Hó 
ˆñ
 Ø�N‰N˜=Ô)ð 4×DÑDØ#×'Ñ'¨
°DÓ9Ü Ó/ð Eó 
ˆð 0×PÑPØØ)ØØØØØ#ð Qó 
‰ˆˆVð 	×ÑØØàØ"Ø ñð 	ô 	
ð	Ø$6×$:Ñ$:ØØØ’~ ð %;ó %÷ ˆHð -×NÑNØ%Ø'ð Oó ð ðùô ò 	Ø×$Ñ$ØØ 9ð %ó ð ûð	üs<   ‚C&EÃ)D ÄDÄD ÄEÄD Ä	D?Ä'D:Ä:D?Ä?EÚcontainer_idc
           
      ó’  — |r| j                  ||||||||	¬«      S |	�t        |	t        «      st        d|j	                  dd «      i¬«      }
n|	}
|j                  |xs i |j	                  dd «      ¬«      }|r|j                  |«       |j                  |j	                  dd «      t        |«      ¬«      }|j                  ||||¬«      \  }}|r|j                  |«       |j                  d	d	||||d
œ¬«       	 |
j	                  |||xs d ¬«      }|j                  ||¬«      S # t        $ r}| j                  ||¬«      ‚d }~ww xY w©N)rò  râ  r�   r·   rø  rÊ  r¤   r  r"  rC  r  rä  r¶   rg  ©rò  r¶   r�   r£   r½   ©r¶   r£   r%  rò  r:  r‘  r†  rý   )Ú async_container_retrieve_handlerrÅ   rG   rH   r‡   rH  rv  rI  r«   Ú$transform_container_retrieve_requestrL  Ú%transform_container_retrieve_responser  r  ©r  rò  râ  r�   r·   rø  rÊ  r¤   r}  r  r  r£   r¶   r¢   r%  r  rú   s                    rˆ   Úcontainer_retrieve_handlerz-BaseLLMHTTPHandler.container_retrieve_handler#  sº  € ñ à×8Ñ8Ø)Ø*CØ-Ø'Ø+Ø'ØØð 9ó 	ð 	ð ˆ>¤¨F´KÔ!@Ü 1¸,È×HZÑHZÐ[gÐimÓHnÐ9oÔ pÑà &Ðð 3×GÑGØ!Ò' RØ"×&Ñ& y°$Ó7ð Hó 
ˆñ
 Ø�N‰N˜=Ô)ð 4×DÑDØ#×'Ñ'¨
°DÓ9Ü Ó/ð Eó 
ˆð 0×TÑTØ%ØØ)Øð	 Uó 
‰ˆˆVñ Ø�M‰M˜+Ô&ð 	×ÑØØàØ"Ø Ø ,ñ	ð 	ô 		
ð	Ø/×3Ñ3ØØØ’~ ð 4ó ˆHð -×RÑRØ%Ø'ð Só ð øô
 ò 	Ø×$Ñ$ØØ 9ð %ó ð ûð	úó   Ã:*D% Ä%	EÄ.EÅEc	           	   ƒ   óª  K  — |�t        |t        «      s8t        t        j                  j
                  d|j                  dd «      i¬«      }	n|}	|j                  |xs i |j                  dd «      ¬«      }
|r|
j                  |«       |j                  |j                  dd «      t        |«      ¬«      }|j                  ||||
¬«      \  }}|r|j                  |«       |j                  dd||
||d	œ¬
«       	 |	j                  ||
|xs d ¬«      ƒ d {  –—† }|j                  ||¬«      S 7 Œ# t        $ r}| j                  ||¬«      ‚d }~ww xY w­w©Nr"  rd  r  rä  r¶   rg  rõ  r½   rö  r:  r‘  r†  rý   )rÅ   rF   rI   rÖ   r*  r-  r‡   rH  rv  rI  r«   rø  rL  rù  r  r  ©r  rò  râ  r�   r·   rø  rÊ  r¤   r  rò   r£   r¶   r¢   r%  r  rú   s                   rˆ   r÷  z3BaseLLMHTTPHandler.async_container_retrieve_handlerv#  s¥  è ø€ ð ˆ>¤¨FÔ4DÔ!EÜ!7Ü$×1Ñ1×8Ñ8Ø$ n×&8Ñ&8¸ÀtÓ&LÐMô"Ñð
 "(Ðð 3×GÑGØ!Ò' RØ"×&Ñ& y°$Ó7ð Hó 
ˆñ
 Ø�N‰N˜=Ô)ð 4×DÑDØ#×'Ñ'¨
°DÓ9Ü Ó/ð Eó 
ˆð 0×TÑTØ%ØØ)Øð	 Uó 
‰ˆˆVñ Ø�M‰M˜+Ô&ð 	×ÑØØàØ"Ø Ø ,ñ	ð 	ô 		
ð	Ø$6×$:Ñ$:ØØØ’~ ð %;ó %÷ ˆHð -×RÑRØ%Ø'ð Só ð ðùô ò 	Ø×$Ñ$ØØ 9ð %ó ð ûð	üó<   ‚C7EÃ:D/ ÄD-ÄD/ Ä,EÄ-D/ Ä/	EÄ8EÅEÅErS   c
           
      ó’  — |r| j                  ||||||||	¬«      S |	�t        |	t        «      st        d|j	                  dd «      i¬«      }
n|	}
|j                  |xs i |j	                  dd «      ¬«      }|r|j                  |«       |j                  |j	                  dd «      t        |«      ¬«      }|j                  ||||¬«      \  }}|r|j                  |«       |j                  d	d	||||d
œ¬«       	 |
j                  |||xs d ¬«      }|j                  ||¬«      S # t        $ r}| j                  ||¬«      ‚d }~ww xY wrô  )Úasync_container_delete_handlerrÅ   rG   rH   r‡   rH  rv  rI  r«   Ú"transform_container_delete_requestrL  r‰  Ú#transform_container_delete_responser  r  rú  s                    rˆ   Úcontainer_delete_handlerz+BaseLLMHTTPHandler.container_delete_handlerÃ#  sº  € ñ à×6Ñ6Ø)Ø*CØ-Ø'Ø+Ø'ØØð 7ó 	ð 	ð ˆ>¤¨F´KÔ!@Ü 1¸,È×HZÑHZÐ[gÐimÓHnÐ9oÔ pÑà &Ðð 3×GÑGØ!Ò' RØ"×&Ñ& y°$Ó7ð Hó 
ˆñ
 Ø�N‰N˜=Ô)ð 4×DÑDØ#×'Ñ'¨
°DÓ9Ü Ó/ð Eó 
ˆð 0×RÑRØ%ØØ)Øð	 Só 
‰ˆˆVñ Ø�M‰M˜+Ô&ð 	×ÑØØàØ"Ø Ø ,ñ	ð 	ô 		
ð	Ø/×6Ñ6ØØØ’~ ð 7ó ˆHð -×PÑPØ%Ø'ð Qó ð øô
 ò 	Ø×$Ñ$ØØ 9ð %ó ð ûð	úrü  c	           	   ƒ   óª  K  — |�t        |t        «      s8t        t        j                  j
                  d|j                  dd «      i¬«      }	n|}	|j                  |xs i |j                  dd «      ¬«      }
|r|
j                  |«       |j                  |j                  dd «      t        |«      ¬«      }|j                  ||||
¬«      \  }}|r|j                  |«       |j                  dd||
||d	œ¬
«       	 |	j                  ||
|xs d ¬«      ƒ d {  –—† }|j                  ||¬«      S 7 Œ# t        $ r}| j!                  ||¬«      ‚d }~ww xY w­wrþ  )rÅ   rF   rI   rÖ   r*  r-  r‡   rH  rv  rI  r«   r  rL  r‰  r  r  r  rÿ  s                   rˆ   r  z1BaseLLMHTTPHandler.async_container_delete_handler$  s¥  è ø€ ð ˆ>¤¨FÔ4DÔ!EÜ!7Ü$×1Ñ1×8Ñ8Ø$ n×&8Ñ&8¸ÀtÓ&LÐMô"Ñð
 "(Ðð 3×GÑGØ!Ò' RØ"×&Ñ& y°$Ó7ð Hó 
ˆñ
 Ø�N‰N˜=Ô)ð 4×DÑDØ#×'Ñ'¨
°DÓ9Ü Ó/ð Eó 
ˆð 0×RÑRØ%ØØ)Øð	 Só 
‰ˆˆVñ Ø�M‰M˜+Ô&ð 	×ÑØØàØ"Ø Ø ,ñ	ð 	ô 		
ð	Ø$6×$=Ñ$=ØØØ’~ ð %>ó %÷ ˆHð -×PÑPØ%Ø'ð Qó ð ðùô ò 	Ø×$Ñ$ØØ 9ð %ó ð ûð	ür   rP   c                 óx  — |r| j                  |||||||||	|
|¬«      S |�t        |t        «      st        d|j	                  dd «      i¬«      }n|}|j                  |xs i |j	                  dd «      ¬«      }|r|j                  |«       |j                  |j	                  dd «      t        |«      ¬«      }|j                  ||||||||	¬«      \  }}|j                  d	d	|||d
œ¬«       	 |j	                  |||xs d ¬«      }|j                  ||¬«      S # t        $ r}| j                  ||¬«      ‚d }~ww xY w)N)rò  râ  r�   r·   r˜  r›  rœ  rø  rÊ  r¤   r  r"  rC  r  rä  r¶   rg  ©rò  r¶   r�   r£   r˜  r›  rœ  rÊ  r½   rÑ  r:  r‘  r†  rý   )Ú!async_container_file_list_handlerrÅ   rG   rH   r‡   rH  rv  rI  r«   Ú%transform_container_file_list_requestrL  Ú&transform_container_file_list_responser  r  )r  rò  râ  r�   r·   r˜  r›  rœ  rø  rÊ  r¤   r}  r  r  r£   r¶   r¢   r%  r  rú   s                       rˆ   Úcontainer_file_list_handlerz.BaseLLMHTTPHandler.container_file_list_handlerh$  s»  € ñ Ø×9Ñ9Ø)Ø*CØ-Ø'ØØØØ+Ø'ØØð :ó ð ð ˆ>¤¨F´KÔ!@Ü 1¸,È×HZÑHZÐ[gÐimÓHnÐ9oÔ pÑà &Ðð 3×GÑGØ!Ò' RØ"×&Ñ& y°$Ó7ð Hó 
ˆñ
 Ø�N‰N˜=Ô)ð 4×DÑDØ#×'Ñ'¨
°DÓ9Ü Ó/ð Eó 
ˆð 0×UÑUØ%ØØ)ØØØØØ#ð Vó 	
‰ˆˆVð 	×ÑØØàØ"Ø ñð 	ô 	
ð	Ø/×3Ñ3ØØØ’~ ð 4ó ˆHð -×SÑSØ%Ø'ð Tó ð øô
 ò 	Ø×$Ñ$ØØ 9ð %ó ð ûð	ús   Ã-*D Ä	D9Ä!D4Ä4D9c           
   ƒ   óŠ  K  — |�t        |t        «      s8t        t        j                  j
                  d|j                  dd «      i¬«      }n|}|j                  |xs i |j                  dd «      ¬«      }|r|j                  |«       |j                  |j                  dd «      t        |«      ¬«      }|j                  ||||||||	¬«      \  }}|j                  dd|||d	œ¬
«       	 |j                  |||xs d ¬«      ƒ d {  –—† }|j                  ||¬«      S 7 Œ# t        $ r}| j                  ||¬«      ‚d }~ww xY w­w)Nr"  rd  r  rä  r¶   rg  r  r½   rÑ  r:  r‘  r†  rý   )rÅ   rF   rI   rÖ   r*  r-  r‡   rH  rv  rI  r«   r
  rL  r  r  r  )r  rò  râ  r�   r·   r˜  r›  rœ  rø  rÊ  r¤   r  rò   r£   r¶   r¢   r%  r  rú   s                      rˆ   r	  z4BaseLLMHTTPHandler.async_container_file_list_handlerÄ$  s�  è ø€ ð ˆ>¤¨FÔ4DÔ!EÜ!7Ü$×1Ñ1×8Ñ8Ø$ n×&8Ñ&8¸ÀtÓ&LÐMô"Ñð
 "(Ðð 3×GÑGØ!Ò' RØ"×&Ñ& y°$Ó7ð Hó 
ˆñ
 Ø�N‰N˜=Ô)ð 4×DÑDØ#×'Ñ'¨
°DÓ9Ü Ó/ð Eó 
ˆð 0×UÑUØ%ØØ)ØØØØØ#ð Vó 	
‰ˆˆVð 	×ÑØØàØ"Ø ñð 	ô 	
ð	Ø$6×$:Ñ$:ØØØ’~ ð %;ó %÷ ˆHð -×SÑSØ%Ø'ð Tó ð ðùô ò 	Ø×$Ñ$ØØ 9ð %ó ð ûð	üs<   ‚C'EÃ*D ÄDÄD ÄEÄD Ä	E Ä(D;Ä;E Å Ec
           
      ól  — |r| j                  ||||||||	¬«      S |	�t        |	t        «      st        d|j	                  dd «      i¬«      }
n|	}
|j                  |xs i |j	                  dd «      ¬«      }|r|j                  |«       |j                  |j	                  dd «      t        |«      ¬«      }|j                  |||||¬«      \  }}|j                  d	d	|||d
œ¬«       	 |
j	                  |||xs d ¬«      }|j                  ||¬«      S # t        $ r}| j                  ||¬«      ‚d }~ww xY w)N)rò  r  râ  r�   r·   rø  r¤   r  r"  rC  r  rä  r¶   rg  ©rò  r  r¶   r�   r£   r½   rÑ  r:  r‘  r†  rý   )Ú$async_container_file_content_handlerrÅ   rG   rH   r‡   rH  rv  rI  r«   Ú(transform_container_file_content_requestrL  Ú)transform_container_file_content_responser  r  )r  rò  r  râ  r�   r·   rø  r¤   r}  r  r  r£   r¶   r¢   r%  r  rú   s                    rˆ   Úcontainer_file_content_handlerz1BaseLLMHTTPHandler.container_file_content_handler%  s®  € ñ Ø×<Ñ<Ø)ØØ*CØ-Ø'Ø+ØØð =ó 	ð 	ð ˆ>¤¨F´KÔ!@Ü 1¸,È×HZÑHZÐ[gÐimÓHnÐ9oÔ pÑà &Ðð 3×GÑGØ!Ò' RØ"×&Ñ& y°$Ó7ð Hó 
ˆñ
 Ø�N‰N˜=Ô)ð 4×DÑDØ#×'Ñ'¨
°DÓ9Ü Ó/ð Eó 
ˆð &×NÑNØ%ØØØ)Øð Oó 
ñ	
ØØð 	×ÑØØàØ"Ø ñð 	ô 	
ð	Ø/×3Ñ3ØØØ’~ ð 4ó ˆHð -×VÑVØ%Ø'ð Wó ð øô
 ò 	Ø×$Ñ$ØØ 9ð %ó ð ûð	ús   Ã'*D Ä	D3ÄD.Ä.D3c	              ƒ   ó„  K  — |�t        |t        «      s8t        t        j                  j
                  d|j                  dd «      i¬«      }	n|}	|j                  |xs i |j                  dd «      ¬«      }
|r|
j                  |«       |j                  |j                  dd «      t        |«      ¬«      }|j                  |||||
¬«      \  }}|j                  dd||
|d	œ¬
«       	 |	j                  ||
|xs d ¬«      ƒ d {  –—† }|j                  ||¬«      S 7 Œ# t        $ r}| j                  ||¬«      ‚d }~ww xY w­w)Nr"  rd  r  rä  r¶   rg  r  r½   rÑ  r:  r‘  r†  rý   )rÅ   rF   rI   rÖ   r*  r-  r‡   rH  rv  rI  r«   r  rL  r  r  r  )r  rò  r  râ  r�   r·   rø  r¤   r  rò   r£   r¶   r¢   r%  r  rú   s                   rˆ   r  z7BaseLLMHTTPHandler.async_container_file_content_handleri%  s™  è ø€ ð ˆ>¤¨FÔ4DÔ!EÜ!7Ü$×1Ñ1×8Ñ8Ø$ n×&8Ñ&8¸ÀtÓ&LÐMô"Ñð
 "(Ðð 3×GÑGØ!Ò' RØ"×&Ñ& y°$Ó7ð Hó 
ˆñ
 Ø�N‰N˜=Ô)ð 4×DÑDØ#×'Ñ'¨
°DÓ9Ü Ó/ð Eó 
ˆð &×NÑNØ%ØØØ)Øð Oó 
ñ	
ØØð 	×ÑØØàØ"Ø ñð 	ô 	
ð	Ø$6×$:Ñ$:ØØØ’~ ð %;ó %÷ ˆHð -×VÑVØ%Ø'ð Wó ð ðùô ò 	Ø×$Ñ$ØØ 9ð %ó ð ûð	üs<   ‚C$E Ã'D ÄDÄD ÄE ÄD Ä	D=Ä%D8Ä8D=Ä=E Úvector_store_idc           	      óJ   — |› d|› �}| j                  dd|||d|› �dœ¬«       y)zµDirect providers have no HTTP request to echo, and an empty api_base makes the debug
        logger fall back to dumping model_call_details, which holds stored provider credentials.z://r½   zdirect vector store search: )r  r  r¶   Úrequest_strr:  N)rL  )r·   r€   r  r  r   s        rˆ   Ú$_pre_call_direct_vector_store_searchz7BaseLLMHTTPHandler._pre_call_direct_vector_store_search¶%  sG   € ð 1Ð1°°_Ð4EÐFˆØ×ÑØØàØ#2Ø$Ø!=¸h¸ZÐHñ	ð 	õ 		
rŠ   Ú#vector_store_search_optional_paramsÚvector_store_provider_configc           
   ƒ   ó  K  — t        |t        «      r=| j                  ||||¬«       |j                  ||||t	        |«      |
¬«      ƒ d {  –—† S |�t        |t
        «      s3t        t        j                  |«      d|j                  dd «      i¬«      }n|}|j                  |xs i |¬«      }|r|j                  |«       |j                  |j                  t	        |«      ¬«      }t        |d«      r-|j                  |||||t	        |«      |	¬«      ƒ d {  –—† \  }}n$|j!                  |||||t	        |«      |	¬«      \  }}t	        |«      }|j                  |xs i «       |j#                  ||||¬	«      \  }}|j%                  d
d
|||dœ¬«       |€t'        j(                  |«      n|}	 |j+                  ||||
¬«      ƒ d {  –—† }|j1                  ||¬«      S 7 �Œ“7 ŒÉ7 Œ# t,        $ r}| j/                  ||¬«      ‚d }~ww xY w­w)N©r·   r€   r  r  ©r  r  r  r  r�   r¤   r"  rd  ©r£   r�   rg  Ú&atransform_search_vector_store_request©r  r  r  r¶   r  r�   r3  ©r£   r  rü   r¶   r½   r8  r:  rr  rý   ©r  r  )rÅ   rB   r  Ú$aexecute_search_vector_store_requestr«   rF   rI   rÖ   r*  r‡   rH  rv  rI  r¶   rž  r  Ú%transform_search_vector_store_requestrK  rL  r¥   r  r  r  r  Ú&transform_search_vector_store_response)r  r  r  r  r  r€   r�   r·   rø  r3  r¤   r  r}  rò   r£   r¶   r¢   rÛ  Úall_optional_paramsrö   rü   r  rú   s                          rˆ   Ú!async_vector_store_search_handlerz4BaseLLMHTTPHandler.async_vector_store_search_handlerË%  s©  è ø€ ô Ð2Ô4OÔPØ×5Ñ5Ø'Ø$7Ø /Øð	 6ô ð 6×ZÑZØ /ØØ4WØ$/Ü# NÓ3Øð [ó ÷ ð ð ˆ>¤¨FÔ4DÔ!EÜ!7Ü$×1Ñ1Ð2EÓFØ$ n×&8Ñ&8¸ÀtÓ&LÐMô"Ñð
 "(Ðà.×CÑCØ!Ò' R¸ð Dó 
ˆñ Ø�N‰N˜=Ô)à6×GÑGØ#×,Ñ,Ü Ó/ð Hó 
ˆô Ð/Ð1YÔZð 3×YÑYØ /ØØ4WØ!Ø$/Ü# NÓ3Ø%ð Zó ÷ ñØÙð -×RÑRØ /ØØ4WØ!Ø$/Ü# NÓ3Ø%ð Só ñØØô 9=¸^Ó8LÐØ×"Ñ"Ð#FÒ#LÈ"ÔMØ$@×$MÑ$MØØ/Ø%Øð	 %Nó %
Ñ!ˆÐ!ð 	×ÑØØà'3Ø$Ø"ñð 	ô 	
ð ;KÐ:RœdŸj™j¨Ô6ÐXhˆð	XØ$6×$;Ñ$;ØØØ!Øð	 %<ó %÷ ˆHð ,×RÑRØØ +ð Só 
ð 	
ðoùðDøðXùô ò 	XØ×$Ñ$ qÐ:VÐ$ÓWÐWûð	Xüs\   ‚A	H	ÁGÁCH	ÄG!ÄBH	Æ.G% ÇG#ÇG% ÇH	Ç!H	Ç#G% Ç%	HÇ.HÈHÈH	c                 ó€  — |r| j                  |||||||||	|
|¬«      S t        |t        «      r5| j                  ||||¬«       |j	                  ||||t        |«      |
¬«      S |�t        |t        «      st        d|j                  dd «      i¬«      }n|}|j                  |xs i |¬«      }|r|j                  |«       |j                  |j                  t        |«      ¬«      }|j                  |||||t        |«      |	¬«      \  }}t        |«      }|j                  |xs i «       |j                  ||||¬	«      \  }}|j                  d
d
|||dœ¬«       |€t!        j"                  |«      n|}	 |j%                  |||¬«      }|j+                  ||¬«      S # t&        $ r}| j)                  ||¬«      ‚d }~ww xY w)N)r  r  r  r  r�   r·   r€   rø  r3  r¤   r  r  r  r"  rC  r  rg  r   r!  r½   r8  r:  )r¢   r£   rô   rý   r"  )r'  rÅ   rB   r  Ú#execute_search_vector_store_requestr«   rG   rH   r‡   rH  rv  rI  r¶   r$  rK  rL  r¥   r  r  r  r  r%  )r  r  r  r  r  r€   r�   r·   rø  r3  r¤   r  r}  r  r£   r¶   r¢   rÛ  r&  rö   rü   r  rú   s                          rˆ   Úvector_store_search_handlerz.BaseLLMHTTPHandler.vector_store_search_handler=&  sb  € ñ Ø×9Ñ9Ø /ØØ4WØ-IØ-Ø'Ø$7Ø+Ø%ØØð :ó ð ô Ð2Ô4OÔPØ×5Ñ5Ø'Ø$7Ø /Øð	 6ô ð 0×SÑSØ /ØØ4WØ$/Ü# NÓ3Øð Tó ð ð ˆ>¤¨F´KÔ!@Ü 1¸,È×HZÑHZÐ[gÐimÓHnÐ9oÔ pÑà &Ðà.×CÑCØ!Ò' R¸ð Dó 
ˆñ Ø�N‰N˜=Ô)à6×GÑGØ#×,Ñ,Ü Ó/ð Hó 
ˆð )×NÑNØ+ØØ0SØØ +Ü Ó/Ø!ð Oó 
ñ	
ØØô 9=¸^Ó8LÐØ×"Ñ"Ð#FÒ#LÈ"ÔMà$@×$MÑ$MØØ/Ø%Øð	 %Nó %
Ñ!ˆÐ!ð 	×ÑØØà'3Ø$Ø"ñð 	ô 	
ð ;KÐ:RœdŸj™j¨Ô6ÐXhˆð	XØ/×4Ñ4ØØØ!ð 5ó ˆHð ,×RÑRØØ +ð Só 
ð 	
øô ò 	XØ×$Ñ$ qÐ:VÐ$ÓWÐWûð	Xús   Å5F Æ	F=Æ%F8Æ8F=Ú#vector_store_create_optional_paramsc              ƒ   ó@  K  — |	�t        |	t        «      s3t        t        j                  |«      d|j                  dd «      i¬«      }n|	}|j                  |xs i |¬«      }|r|j                  |«       |j                  |j                  t        |«      ¬«      }|j                  ||¬«      \  }}|j                  dd|||dœ¬«       	 |j                  ||||¬	«      ƒ d {  –—† }|j!                  |¬«      S 7 Œ# t        $ r}| j                  ||¬
«      ‚d }~ww xY w­w)Nr"  rd  r  rg  ©r+  r¶   r½   r8  r:  r{  rý   rW  )rÅ   rF   rI   rÖ   r*  r‡   rH  rv  rI  r¶   r«   Ú%transform_create_vector_store_requestrL  r  r  r  Ú&transform_create_vector_store_response)r  r+  r  r€   r�   r·   rø  r3  r¤   r  r}  rò   r£   r¶   r¢   rÛ  r  rú   s                     rˆ   Ú!async_vector_store_create_handlerz4BaseLLMHTTPHandler.async_vector_store_create_handler­&  sf  è ø€ ð ˆ>¤¨FÔ4DÔ!EÜ!7Ü$×1Ñ1Ð2EÓFØ$ n×&8Ñ&8¸ÀtÓ&LÐMô"Ñð
 "(Ðà5×JÑJØ!Ò' R¸ð Kó 
ˆñ Ø�N‰N˜=Ô)à6×GÑGØ#×,Ñ,Ü Ó/ð Hó 
ˆð )×NÑNØ0SØð Oó 
ñ	
ØØð 	×ÑØØà'3Ø$Ø"ñð 	ô 	
ð	XØ/×4Ñ4¸ÀgÐT`ÐjqÐ4Ór×rˆHð ,×RÑRØð Só 
ð 	
ð	 sùÜò 	XØ×$Ñ$ qÐ:VÐ$ÓWÐWûð	Xüs<   ‚CDÃ	C: Ã!C8Ã"C: Ã&DÃ8C: Ã:	DÄDÄDÄDc                 ó2  — |
r| j                  |||||||||	¬«	      S |	�t        |	t        «      st        d|j	                  dd «      i¬«      }n|	}|j                  |xs i |¬«      }|r|j                  |«       |j                  |j                  t        |«      ¬«      }|j                  ||¬«      \  }}|j                  dd|||dœ¬	«       	 |j                  |||¬
«      }|j                  |¬«      S # t        $ r}| j                  ||¬«      ‚d }~ww xY w)N)	r+  r  r�   r·   r€   rø  r3  r¤   r  r"  rC  r  rg  r-  r½   r8  r:  rŽ  rý   rW  )r0  rÅ   rG   rH   r‡   rH  rv  rI  r¶   r«   r.  rL  r  r  r  r/  )r  r+  r  r€   r�   r·   rø  r3  r¤   r  r}  r  r£   r¶   r¢   rÛ  r  rú   s                     rˆ   Úvector_store_create_handlerz.BaseLLMHTTPHandler.vector_store_create_handleré&  s~  € ñ Ø×9Ñ9Ø4WØ-IØ-Ø'Ø$7Ø+Ø%ØØð :ó 
ð 
ð ˆ>¤¨F´KÔ!@Ü 1¸,È×HZÑHZÐ[gÐimÓHnÐ9oÔ pÑà &Ðà5×JÑJØ!Ò' R¸ð Kó 
ˆñ Ø�N‰N˜=Ô)à6×GÑGØ#×,Ñ,Ü Ó/ð Hó 
ˆð )×NÑNØ0SØð Oó 
ñ	
ØØð 	×ÑØØà'3Ø$Ø"ñð 	ô 	
ð	XØ/×4Ñ4¸ÀgÐT`Ð4ÓaˆHð ,×RÑRØð Só 
ð 	
øô ò 	XØ×$Ñ$ qÐ:VÐ$ÓWÐWûð	Xús   ÃC5 Ã5	DÃ>DÄDc
              ƒ   ó6  K  — |	�t        |	t        «      s3t        t        j                  |«      d|j                  dd «      i¬«      }
n|	}
|j                  |xs i |¬«      }|r|j                  |«       |j                  |j                  t        |«      ¬«      }t        |d¬«      }|› d|› �}|j                  dd||d	œ¬
«       	 |
j                  ||¬«      ƒ d {  –—† }|j                  |¬«      S 7 Œ# t        $ r}| j                  ||¬«      ‚d }~ww xY w­w)Nr"  rd  r  rg  r  ©Ú
field_namer¢  r½   r¬  r:  rË  rý   rW  )rÅ   rF   rI   rÖ   r*  r‡   rH  rv  rI  r¶   r«   r)   rL  r  r  r/  ©r  r  r  r€   r�   r·   rø  r3  r¤   r  rò   r£   r¶   Úencoded_vector_store_idr¢   r  rú   s                    rˆ   Ú#async_vector_store_retrieve_handlerz6BaseLLMHTTPHandler.async_vector_store_retrieve_handler/'  sW  è ø€ ð ˆ>¤¨FÔ4DÔ!EÜ!7Ü$×1Ñ1Ð2EÓFØ$ n×&8Ñ&8¸ÀtÓ&LÐMô"Ñð
 "(Ðà5×JÑJØ!Ò' R¸ð Kó 
ˆñ Ø�N‰N˜=Ô)à6×GÑGØ#×,Ñ,Ü Ó/ð Hó 
ˆô
 *AÀÐ]nÔ)oÐØ �z Ð#:Ð";Ð<ˆà×ÑØØà$Ø"ñð 	ô 	
ð	XØ$6×$:Ñ$:¸sÈGÐ$:Ó$T×TˆHð ,×RÑRØð Só 
ð 	
ð	 UùÜò 	XØ×$Ñ$ qÐ:VÐ$ÓWÐWûð	Xüs<   ‚CDÃC5 ÃC3ÃC5 Ã!DÃ3C5 Ã5	DÃ>DÄDÄDc                 ó*  — |
r| j                  |||||||||	¬«	      S |	�t        |	t        «      st        d|j	                  dd «      i¬«      }n|	}|j                  |xs i |¬«      }|r|j                  |«       |j                  |j                  t        |«      ¬«      }t        |d¬«      }|› d|› �}|j                  d	d	||d
œ¬«       	 |j	                  ||¬«      }|j                  |¬«      S # t        $ r}| j                  ||¬«      ‚d }~ww xY w)N©	r  r  r�   r·   r€   rø  r3  r¤   r  r"  rC  r  rg  r  r4  r¢  r½   r¬  r:  rË  rý   rW  )r8  rÅ   rG   rH   r‡   rH  rv  rI  r¶   r«   r)   rL  r  r  r/  ©r  r  r  r€   r�   r·   rø  r3  r¤   r  r}  r  r£   r¶   r7  r¢   r  rú   s                     rˆ   Úvector_store_retrieve_handlerz0BaseLLMHTTPHandler.vector_store_retrieve_handlerd'  sr  € ñ Ø×;Ñ;Ø /Ø-IØ-Ø'Ø$7Ø+Ø%ØØð <ó 
ð 
ð ˆ>¤¨F´KÔ!@Ü 1¸,È×HZÑHZÐ[gÐimÓHnÐ9oÔ pÑà &Ðà5×JÑJØ!Ò' R¸ð Kó 
ˆñ Ø�N‰N˜=Ô)à6×GÑGØ#×,Ñ,Ü Ó/ð Hó 
ˆô
 *AÀÐ]nÔ)oÐØ �z Ð#:Ð";Ð<ˆà×ÑØØà$Ø"ñð 	ô 	
ð	XØ/×3Ñ3¸ÀWÐ3ÓMˆHð ,×RÑRØð Só 
ð 	
øô ò 	XØ×$Ñ$ qÐ:VÐ$ÓWÐWûð	Xús   ÃC1 Ã1	DÃ:DÄDc              ƒ   óN  K  — |�t        |t        «      s3t        t        j                  |«      d|j                  dd «      i¬«      }n|}|j                  |	xs i |¬«      }|	r|j                  |	«       |j                  |j                  t        |«      ¬«      }|}i }|�||d<   |�||d<   |�||d<   |�||d<   |j                  d	d	|||d
œ¬«       	 |j                  |||¬«      ƒ d {  –—† }|j                  «       S 7 Œ# t        $ r}| j                  ||¬«      ‚d }~ww xY w­w)Nr"  rd  r  rg  r˜  r™  r›  rœ  r½   rÑ  r:  r‘  rý   )rÅ   rF   rI   rÖ   r*  r‡   rH  rv  rI  r¶   r«   rL  r  r  r¥   )r  r˜  r™  r›  rœ  r  r€   r�   r·   rø  r3  r¤   r  rò   r£   r¶   r¢   r%  r  rú   s                       rˆ   Úasync_vector_store_list_handlerz2BaseLLMHTTPHandler.async_vector_store_list_handler¤'  ss  è ø€ ð ˆ>¤¨FÔ4DÔ!EÜ!7Ü$×1Ñ1Ð2EÓFØ$ n×&8Ñ&8¸ÀtÓ&LÐMô"Ñð
 "(Ðà5×JÑJØ!Ò' R¸ð Kó 
ˆñ Ø�N‰N˜=Ô)à6×GÑGØ#×,Ñ,Ü Ó/ð Hó 
ˆð
 ˆà+-ˆØÐØ#ˆF�7‰OØÐØ%ˆF�8ÑØÐØ#ˆF�7‰OØÐØ#ˆF�7‰Oà×ÑØØà$Ø"Ø ñð 	ô 	
ð	XØ$6×$:Ñ$:¸sÈGÐ\bÐ$:Ó$c×cˆHð �}‰}‹Ðð	 dùÜò 	XØ×$Ñ$ qÐ:VÐ$ÓWÐWûð	Xüs<   ‚CD%ÃD Ã*C?Ã+D Ã/D%Ã?D Ä	D"Ä
DÄD"Ä"D%c                 óH  — |r| j                  |||||||||	|
||¬«      S |�t        |t        «      st        d|j	                  dd «      i¬«      }n|}|j                  |	xs i |¬«      }|	r|j                  |	«       |j                  |j                  t        |«      ¬«      }|}i }|�||d<   |�||d<   |�||d<   |�||d	<   |j                  d
d
|||dœ¬«       	 |j	                  |||¬«      }|j                  «       S # t        $ r}| j                  ||¬«      ‚d }~ww xY w)N)r˜  r™  r›  rœ  r  r�   r·   r€   rø  r3  r¤   r  r"  rC  r  rg  r˜  r™  r›  rœ  r½   rÑ  r:  r‘  rý   )r>  rÅ   rG   rH   r‡   rH  rv  rI  r¶   r«   rL  r  r  r¥   )r  r˜  r™  r›  rœ  r  r€   r�   r·   rø  r3  r¤   r  r}  r  r£   r¶   r¢   r%  r  rú   s                        rˆ   Úvector_store_list_handlerz,BaseLLMHTTPHandler.vector_store_list_handlerä'  s—  € ñ  Ø×7Ñ7ØØØØØ-IØ-Ø'Ø$7Ø+Ø%ØØð 8ó ð ð ˆ>¤¨F´KÔ!@Ü 1¸,È×HZÑHZÐ[gÐimÓHnÐ9oÔ pÑà &Ðà5×JÑJØ!Ò' R¸ð Kó 
ˆñ Ø�N‰N˜=Ô)à6×GÑGØ#×,Ñ,Ü Ó/ð Hó 
ˆð
 ˆà+-ˆØÐØ#ˆF�7‰OØÐØ%ˆF�8ÑØÐØ#ˆF�7‰OØÐØ#ˆF�7‰Oà×ÑØØà$Ø"Ø ñð 	ô 	
ð	XØ/×3Ñ3¸ÀWÐU[Ð3Ó\ˆHð �}‰}‹Ðøô ò 	XØ×$Ñ$ qÐ:VÐ$ÓWÐWûð	Xús   ÃD  Ä 	D!Ä	DÄD!Ú#vector_store_update_optional_paramsc              ƒ   ó²  K  — |
�t        |
t        «      s3t        t        j                  |«      d|j                  dd «      i¬«      }n|
}|j                  |xs i |¬«      }|r|j                  |«       |j                  |j                  t        |«      ¬«      }t        |d¬«      }|› d|› �}t        |«      }d|v r|d   �d	d
lm}  ||d   «      |d<   |r|j                  |«       |j                  dd|||dœ¬«       	 |j                  ||||	¬«      ƒ d {  –—† }|j%                  |¬«      S 7 Œ# t         $ r}| j#                  ||¬«      ‚d }~ww xY w­w)Nr"  rd  r  rg  r  r4  r¢  Úmetadatar   ©Úadd_openai_metadatar½   r8  r:  r{  rý   rW  )rÅ   rF   rI   rÖ   r*  r‡   rH  rv  rI  r¶   r«   r)   rò  rE  rL  r  r  r  r/  )r  r  rA  r  r€   r�   r·   rø  r3  r¤   r  rò   r£   r¶   r7  r¢   rÛ  rE  r  rú   s                       rˆ   Ú!async_vector_store_update_handlerz4BaseLLMHTTPHandler.async_vector_store_update_handler2(  s§  è ø€ ð ˆ>¤¨FÔ4DÔ!EÜ!7Ü$×1Ñ1Ð2EÓFØ$ n×&8Ñ&8¸ÀtÓ&LÐMô"Ñð
 "(Ðà5×JÑJØ!Ò' R¸ð Kó 
ˆñ Ø�N‰N˜=Ô)à6×GÑGØ#×,Ñ,Ü Ó/ð Hó 
ˆô
 *AÀÐ]nÔ)oÐØ �z Ð#:Ð";Ð<ˆä.2Ð3VÓ.Wˆð ˜Ñ%¨,°zÑ*BÐ*NÝ9á':¸<È
Ñ;SÓ'TˆL˜Ñ$áØ×Ñ 
Ô+à×ÑØØà'3Ø$Ø"ñð 	ô 	
ð	XØ/×4Ñ4¸ÀgÐT`ÐjqÐ4Ór×rˆHð ,×RÑRØð Só 
ð 	
ð	 sùÜò 	XØ×$Ñ$ qÐ:VÐ$ÓWÐWûð	Xüs<   ‚C?EÄD3 ÄD1ÄD3 ÄEÄ1D3 Ä3	EÄ<EÅEÅEc                 ó¦  — |r| j                  |||||||||	|
¬«
      S |
�t        |
t        «      st        d|j	                  dd «      i¬«      }n|
}|j                  |xs i |¬«      }|r|j                  |«       |j                  |j                  t        |«      ¬«      }t        |d¬«      }|› d|› �}t        |«      }d	|v r|d	   �d
dlm}  ||d	   «      |d	<   |r|j                  |«       |j                  dd|||dœ¬«       	 |j                  |||¬«      }|j#                  |¬«      S # t        $ r}| j!                  ||¬«      ‚d }~ww xY w)N)
r  rA  r  r�   r·   r€   rø  r3  r¤   r  r"  rC  r  rg  r  r4  r¢  rC  r   rD  r½   r8  r:  rŽ  rý   rW  )rF  rÅ   rG   rH   r‡   rH  rv  rI  r¶   r«   r)   rò  rE  rL  r  r  r  r/  )r  r  rA  r  r€   r�   r·   rø  r3  r¤   r  r}  r  r£   r¶   r7  r¢   rÛ  rE  r  rú   s                        rˆ   Úvector_store_update_handlerz.BaseLLMHTTPHandler.vector_store_update_handlert(  sÂ  € ñ Ø×9Ñ9Ø /Ø4WØ-IØ-Ø'Ø$7Ø+Ø%ØØð :ó ð ð ˆ>¤¨F´KÔ!@Ü 1¸,È×HZÑHZÐ[gÐimÓHnÐ9oÔ pÑà &Ðà5×JÑJØ!Ò' R¸ð Kó 
ˆñ Ø�N‰N˜=Ô)à6×GÑGØ#×,Ñ,Ü Ó/ð Hó 
ˆô
 *AÀÐ]nÔ)oÐØ �z Ð#:Ð";Ð<ˆä.2Ð3VÓ.Wˆð ˜Ñ%¨,°zÑ*BÐ*NÝ9á':¸<È
Ñ;SÓ'TˆL˜Ñ$áØ×Ñ 
Ô+à×ÑØØà'3Ø$Ø"ñð 	ô 	
ð	XØ/×4Ñ4¸ÀgÐT`Ð4ÓaˆHð ,×RÑRØð Só 
ð 	
øô ò 	XØ×$Ñ$ qÐ:VÐ$ÓWÐWûð	Xús   Ä	D/ Ä/	EÄ8EÅEc
              ƒ   ó4  K  — |	�t        |	t        «      s3t        t        j                  |«      d|j                  dd «      i¬«      }
n|	}
|j                  |xs i |¬«      }|r|j                  |«       |j                  |j                  t        |«      ¬«      }t        |d¬«      }|› d|› �}|j                  dd||d	œ¬
«       	 |
j                  |||¬«      ƒ d {  –—† }|j!                  «       S 7 Œ# t        $ r}| j                  ||¬«      ‚d }~ww xY w­w)Nr"  rd  r  rg  r  r4  r¢  r½   r¬  r:  rn  rý   )rÅ   rF   rI   rÖ   r*  r‡   rH  rv  rI  r¶   r«   r)   rL  r‰  r  r  r¥   r6  s                    rˆ   Ú!async_vector_store_delete_handlerz4BaseLLMHTTPHandler.async_vector_store_delete_handlerÂ(  sJ  è ø€ ð ˆ>¤¨FÔ4DÔ!EÜ!7Ü$×1Ñ1Ð2EÓFØ$ n×&8Ñ&8¸ÀtÓ&LÐMô"Ñð
 "(Ðà5×JÑJØ!Ò' R¸ð Kó 
ˆñ Ø�N‰N˜=Ô)à6×GÑGØ#×,Ñ,Ü Ó/ð Hó 
ˆô
 *AÀÐ]nÔ)oÐØ �z Ð#:Ð";Ð<ˆà×ÑØØà$Ø"ñð 	ô 	
ð	XØ$6×$=Ñ$=À#ÈwÐ`gÐ$=Ó$h×hˆHð �}‰}‹Ðð	 iùÜò 	XØ×$Ñ$ qÐ:VÐ$ÓWÐWûð	Xüs<   ‚CDÃC4 ÃC2ÃC4 Ã"DÃ2C4 Ã4	DÃ=DÄDÄDc                 ó&  — |
r| j                  |||||||||	¬«	      S |	�t        |	t        «      st        d|j	                  dd «      i¬«      }n|	}|j                  |xs i |¬«      }|r|j                  |«       |j                  |j                  t        |«      ¬«      }t        |d¬«      }|› d|› �}|j                  d	d	||d
œ¬«       	 |j                  ||¬«      }|j                  «       S # t        $ r}| j                  ||¬«      ‚d }~ww xY w)Nr:  r"  rC  r  rg  r  r4  r¢  r½   r¬  r:  rË  rý   )rJ  rÅ   rG   rH   r‡   rH  rv  rI  r¶   r«   r)   rL  r‰  r  r  r¥   r;  s                     rˆ   Úvector_store_delete_handlerz.BaseLLMHTTPHandler.vector_store_delete_handlerõ(  sb  € ñ Ø×9Ñ9Ø /Ø-IØ-Ø'Ø$7Ø+Ø%ØØð :ó 
ð 
ð ˆ>¤¨F´KÔ!@Ü 1¸,È×HZÑHZÐ[gÐimÓHnÐ9oÔ pÑà &Ðà5×JÑJØ!Ò' R¸ð Kó 
ˆñ Ø�N‰N˜=Ô)à6×GÑGØ#×,Ñ,Ü Ó/ð Hó 
ˆô
 *AÀÐ]nÔ)oÐØ �z Ð#:Ð";Ð<ˆà×ÑØØà$Ø"ñð 	ô 	
ð	XØ/×6Ñ6¸3ÈÐ6ÓPˆHð �}‰}‹Ðøô ò 	XØ×$Ñ$ qÐ:VÐ$ÓWÐWûð	Xús   ÃC/ Ã/	DÃ8DÄD)rø  r3  r¤   r  Úcreate_requestÚ"vector_store_files_provider_configc       
      ƒ   óœ  K  — |
�t        |
t        «      s3t        t        j                  |«      d|j                  dd «      i¬«      }n|
}|j                  |xs i |¬«      }|r|j                  |«       |j                  |j                  |t        |«      ¬«      }t        |«      }|r|j                  |«       |j                  |t        t        |«      |¬«      \  }}|j                  dd|||dœ¬«       	 |j                  ||||	¬	«      ƒ d {  –—† }|j%                  |¬«      S 7 Œ# t         $ r}| j#                  ||¬
«      ‚d }~ww xY w­w)Nr"  rd  r  ©r¶   r  r�   ©r  rM  r¶   r½   r8  r:  r{  rý   rW  )rÅ   rF   rI   rÖ   r*  r‡   rH  rv  rI  r¶   r«   Ú*transform_create_vector_store_file_requestr   rp   rL  r  r  r  Ú+transform_create_vector_store_file_response)r  r  rM  rN  r€   r�   r·   rø  r3  r¤   r  rò   r£   r¶   Úrequest_dictr¢   rÛ  r  rú   s                      rˆ   Ú&async_vector_store_file_create_handlerz9BaseLLMHTTPHandler.async_vector_store_file_create_handler6)  sŠ  è ø€ ð ˆ>¤¨FÔ4DÔ!EÜ!7Ü$×1Ñ1Ð2EÓFØ$ n×&8Ñ&8¸ÀtÓ&LÐMô"Ñð
 "(Ðà;×PÑPØ!Ò' R¸ð Qó 
ˆñ Ø�N‰N˜=Ô)à<×MÑMØ#×,Ñ,Ø+Ü Ó/ð Nó 
ˆô # >Ó2ˆÙØ×Ñ 
Ô+ð
 /×YÑYØ+ÜÔ <¸lÓKØð Zó 
ñ	
ØØð 	×ÑØØà'3Ø$Ø"ñð 	ô 	
ð	^Ø/×4Ñ4¸ÀgÐT`ÐjqÐ4Ór×rˆHð 2×]Ñ]ÐgoÐ]ÓpÐpð	 sùÜò 	^Ø×$Ñ$ qÐ:\Ð$Ó]Ð]ûð	^üs<   ‚C4EÃ7D( ÄD&ÄD( ÄEÄ&D( Ä(	E	Ä1EÅE	Å	E)rø  r3  r¤   r  r}  c                óÀ  — |r2| j                  |||||||||	t        |
t        «      r|
¬«
      S d ¬«
      S |
�t        |
t        «      st	        d|j                  dd «      i¬«      }n|
}|j                  |xs i |¬«      }|r|j                  |«       |j                  |j                  |t        |«      ¬«      }t        |«      }|r|j                  |«       |j                  |t        t        |«      |¬«      \  }}|j                  dd|||dœ¬	«       	 |j                  ||||	¬
«      }|j%                  |¬«      S # t         $ r}| j#                  ||¬«      ‚d }~ww xY w)N)
r  rM  rN  r€   r�   r·   rø  r3  r¤   r  r"  rC  r  rP  rQ  r½   r8  r:  r{  rý   rW  )rU  rÅ   rF   rG   rH   r‡   rH  rv  rI  r¶   r«   rR  r   rp   rL  r  r  r  rS  )r  r  rM  rN  r€   r�   r·   rø  r3  r¤   r  r}  r  r£   r¶   rT  r¢   rÛ  r  rú   s                       rˆ   Ú vector_store_file_create_handlerz3BaseLLMHTTPHandler.vector_store_file_create_handlerw)  sÈ  € ñ Ø×>Ñ>Ø /Ø-Ø3UØ$7Ø-Ø'Ø+Ø%ØÜ!+¨FÔ4DÔ!E�vð ?ó ð ð LPð ?ó ð ð ˆ>¤¨F´KÔ!@Ü 1¸,È×HZÑHZÐ[gÐimÓHnÐ9oÔ pÑà &Ðà;×PÑPØ!Ò' R¸ð Qó 
ˆñ Ø�N‰N˜=Ô)à<×MÑMØ#×,Ñ,Ø+Ü Ó/ð Nó 
ˆô # >Ó2ˆÙØ×Ñ 
Ô+ð
 /×YÑYØ+ÜÔ <¸lÓKØð Zó 
ñ	
ØØð 	×ÑØØà'3Ø$Ø"ñð 	ô 	
ð	^Ø/×4Ñ4¸ÀgÐT`ÐjqÐ4ÓrˆHð 2×]Ñ]ÐgoÐ]ÓpÐpøô ò 	^Ø×$Ñ$ qÐ:\Ð$Ó]Ð]ûð	^ús   ÄD< Ä<	EÅEÅE)rø  rÊ  r¤   r  c       
      ƒ   óš  K  — |
�t        |
t        «      s3t        t        j                  |«      d|j                  dd «      i¬«      }n|
}|j                  |xs i |¬«      }|r|j                  |«       |j                  |j                  |t        |«      ¬«      }t        |«      }|r|j                  |«       |j                  |t        t        |«      |¬«      \  }}|j                  dd|||dœ¬«       	 |j                  |||¬	«      ƒ d {  –—† }|j#                  |¬«      S 7 Œ# t        $ r}| j!                  ||¬
«      ‚d }~ww xY w­w)Nr"  rd  r  rP  ©r  rÏ  r¶   r½   r8  r:  r‘  rý   rW  )rÅ   rF   rI   rÖ   r*  r‡   rH  rv  rI  r¶   r«   Ú)transform_list_vector_store_files_requestr   rr   rL  r  r  Ú*transform_list_vector_store_files_response)r  r  rÏ  rN  r€   r�   r·   rø  rÊ  r¤   r  rò   r£   r¶   Úparams_dictr¢   Úrequest_paramsr  rú   s                      rˆ   Ú$async_vector_store_file_list_handlerz7BaseLLMHTTPHandler.async_vector_store_file_list_handlerÄ)  s‡  è ø€ ð ˆ>¤¨FÔ4DÔ!EÜ!7Ü$×1Ñ1Ð2EÓFØ$ n×&8Ñ&8¸ÀtÓ&LÐMô"Ñð
 "(Ðà;×PÑPØ!Ò' R¸ð Qó 
ˆñ Ø�N‰N˜=Ô)à<×MÑMØ#×,Ñ,Ø+Ü Ó/ð Nó 
ˆô " ,Ó/ˆÙØ×Ñ˜{Ô+ð
 /×XÑXØ+ÜÔ<¸kÓJØð Yó 
ñ	
ØØð 	×ÑØØà'5Ø$Ø"ñð 	ô 	
ð	^Ø$6×$:Ñ$:¸sÈGÐ\jÐ$:Ó$k×kˆHð 2×\Ñ\ÐfnÐ\ÓoÐoð	 lùÜò 	^Ø×$Ñ$ qÐ:\Ð$Ó]Ð]ûð	^üs<   ‚C4EÃ7D' ÄD%ÄD' ÄEÄ%D' Ä'	EÄ0EÅEÅE)rø  rÊ  r¤   r  r}  c                ó¾  — |r2| j                  |||||||||	t        |
t        «      r|
¬«
      S d ¬«
      S |
�t        |
t        «      st	        d|j                  dd «      i¬«      }n|
}|j                  |xs i |¬«      }|r|j                  |«       |j                  |j                  |t        |«      ¬«      }t        |«      }|r|j                  |«       |j                  |t        t        |«      |¬«      \  }}|j                  dd|||dœ¬	«       	 |j                  |||¬
«      }|j#                  |¬«      S # t        $ r}| j!                  ||¬«      ‚d }~ww xY w)N)
r  rÏ  rN  r€   r�   r·   rø  rÊ  r¤   r  r"  rC  r  rP  rY  r½   r8  r:  r‘  rý   rW  )r^  rÅ   rF   rG   rH   r‡   rH  rv  rI  r¶   r«   rZ  r   rr   rL  r  r  r[  )r  r  rÏ  rN  r€   r�   r·   rø  rÊ  r¤   r  r}  r  r£   r¶   r\  r¢   r]  r  rú   s                       rˆ   Úvector_store_file_list_handlerz1BaseLLMHTTPHandler.vector_store_file_list_handler*  sÅ  € ñ Ø×<Ñ<Ø /Ø)Ø3UØ$7Ø-Ø'Ø+Ø'ØÜ!+¨FÔ4DÔ!E�vð =ó ð ð LPð =ó ð ð ˆ>¤¨F´KÔ!@Ü 1¸,È×HZÑHZÐ[gÐimÓHnÐ9oÔ pÑà &Ðà;×PÑPØ!Ò' R¸ð Qó 
ˆñ Ø�N‰N˜=Ô)à<×MÑMØ#×,Ñ,Ø+Ü Ó/ð Nó 
ˆô " ,Ó/ˆÙØ×Ñ˜{Ô+ð
 /×XÑXØ+ÜÔ<¸kÓJØð Yó 
ñ	
ØØð 	×ÑØØà'5Ø$Ø"ñð 	ô 	
ð	^Ø/×3Ñ3¸ÀWÐUcÐ3ÓdˆHð 2×\Ñ\ÐfnÐ\ÓoÐoøô ò 	^Ø×$Ñ$ qÐ:\Ð$Ó]Ð]ûð	^ús   ÄD; Ä;	EÅEÅE)rø  r¤   r  c       	      ƒ   óB  K  — |	�t        |	t        «      s3t        t        j                  |«      d|j                  dd «      i¬«      }
n|	}
|j                  |xs i |¬«      }|r|j                  |«       |j                  |j                  |t        |«      ¬«      }|j                  |||¬«      \  }}|j                  dd|||dœ¬«       	 |
j                  |||¬	«      ƒ d {  –—† }|j                  |¬«      S 7 Œ# t        $ r}| j                  ||¬
«      ‚d }~ww xY w­w©Nr"  rd  r  rP  ©r  r  r¶   r½   r8  r:  r‘  rý   rW  )rÅ   rF   rI   rÖ   r*  r‡   rH  rv  rI  r¶   r«   Ú,transform_retrieve_vector_store_file_requestrL  r  r  Ú-transform_retrieve_vector_store_file_response©r  r  r  rN  r€   r�   r·   rø  r¤   r  rò   r£   r¶   r¢   r]  r  rú   s                    rˆ   Ú(async_vector_store_file_retrieve_handlerz;BaseLLMHTTPHandler.async_vector_store_file_retrieve_handlerP*  sb  è ø€ ð ˆ>¤¨FÔ4DÔ!EÜ!7Ü$×1Ñ1Ð2EÓFØ$ n×&8Ñ&8¸ÀtÓ&LÐMô"Ñð
 "(Ðà;×PÑPØ!Ò' R¸ð Qó 
ˆñ Ø�N‰N˜=Ô)à<×MÑMØ#×,Ñ,Ø+Ü Ó/ð Nó 
ˆð /×[Ñ[Ø+ØØð \ó 
ñ	
ØØð 	×ÑØØà'5Ø$Ø"ñð 	ô 	
ð	^Ø$6×$:Ñ$:¸sÈGÐ\jÐ$:Ó$k×kˆHð 2×_Ñ_ÐiqÐ_ÓrÐrð	 lùÜò 	^Ø×$Ñ$ qÐ:\Ð$Ó]Ð]ûð	^üó<   ‚CDÃC; Ã"C9Ã#C; Ã'DÃ9C; Ã;	DÄDÄDÄD)rø  r¤   r  r}  c       
         ód  — |
r1| j                  ||||||||t        |	t        «      r|	¬«	      S d ¬«	      S |	�t        |	t        «      st	        d|j                  dd «      i¬«      }n|	}|j                  |xs i |¬«      }|r|j                  |«       |j                  |j                  |t        |«      ¬«      }|j                  |||¬«      \  }}|j                  dd|||dœ¬	«       	 |j                  |||¬
«      }|j                  |¬«      S # t        $ r}| j                  ||¬«      ‚d }~ww xY w©N©	r  r  rN  r€   r�   r·   rø  r¤   r  r"  rC  r  rP  rc  r½   r8  r:  r‘  rý   rW  )rg  rÅ   rF   rG   rH   r‡   rH  rv  rI  r¶   r«   rd  rL  r  r  re  ©r  r  r  rN  r€   r�   r·   rø  r¤   r  r}  r  r£   r¶   r¢   r]  r  rú   s                     rˆ   Ú"vector_store_file_retrieve_handlerz5BaseLLMHTTPHandler.vector_store_file_retrieve_handler‹*  sŸ  € ñ Ø×@Ñ@Ø /ØØ3UØ$7Ø-Ø'Ø+ØÜ!+¨FÔ4DÔ!E�vð Aó 
ð 
ð LPð Aó 
ð 
ð ˆ>¤¨F´KÔ!@Ü 1¸,È×HZÑHZÐ[gÐimÓHnÐ9oÔ pÑà &Ðà;×PÑPØ!Ò' R¸ð Qó 
ˆñ Ø�N‰N˜=Ô)à<×MÑMØ#×,Ñ,Ø+Ü Ó/ð Nó 
ˆð /×[Ñ[Ø+ØØð \ó 
ñ	
ØØð 	×ÑØØà'5Ø$Ø"ñð 	ô 	
ð	^Ø/×3Ñ3¸ÀWÐUcÐ3ÓdˆHð 2×_Ñ_ÐiqÐ_ÓrÐrøô ò 	^Ø×$Ñ$ qÐ:\Ð$Ó]Ð]ûð	^úó   Ã(D Ä	D/ÄD*Ä*D/c       	      ƒ   óB  K  — |	�t        |	t        «      s3t        t        j                  |«      d|j                  dd «      i¬«      }
n|	}
|j                  |xs i |¬«      }|r|j                  |«       |j                  |j                  |t        |«      ¬«      }|j                  |||¬«      \  }}|j                  dd|||dœ¬«       	 |
j                  |||¬	«      ƒ d {  –—† }|j                  |¬«      S 7 Œ# t        $ r}| j                  ||¬
«      ‚d }~ww xY w­wrb  )rÅ   rF   rI   rÖ   r*  r‡   rH  rv  rI  r¶   r«   Ú4transform_retrieve_vector_store_file_content_requestrL  r  r  Ú5transform_retrieve_vector_store_file_content_responserf  s                    rˆ   Ú'async_vector_store_file_content_handlerz:BaseLLMHTTPHandler.async_vector_store_file_content_handlerÑ*  si  è ø€ ð ˆ>¤¨FÔ4DÔ!EÜ!7Ü$×1Ñ1Ð2EÓFØ$ n×&8Ñ&8¸ÀtÓ&LÐMô"Ñð
 "(Ðà;×PÑPØ!Ò' R¸ð Qó 
ˆñ Ø�N‰N˜=Ô)à<×MÑMØ#×,Ñ,Ø+Ü Ó/ð Nó 
ˆð /×cÑcØ+ØØð dó 
ñ	
ØØð 	×ÑØØà'5Ø$Ø"ñð 	ô 	
ð	^Ø$6×$:Ñ$:¸sÈGÐ\jÐ$:Ó$k×kˆHð 2×gÑgØð hó 
ð 	
ð	 lùÜò 	^Ø×$Ñ$ qÐ:\Ð$Ó]Ð]ûð	^ürh  c       
         ód  — |
r1| j                  ||||||||t        |	t        «      r|	¬«	      S d ¬«	      S |	�t        |	t        «      st	        d|j                  dd «      i¬«      }n|	}|j                  |xs i |¬«      }|r|j                  |«       |j                  |j                  |t        |«      ¬«      }|j                  |||¬«      \  }}|j                  dd|||dœ¬	«       	 |j                  |||¬
«      }|j                  |¬«      S # t        $ r}| j                  ||¬«      ‚d }~ww xY wrj  )rr  rÅ   rF   rG   rH   r‡   rH  rv  rI  r¶   r«   rp  rL  r  r  rq  rl  s                     rˆ   Ú!vector_store_file_content_handlerz4BaseLLMHTTPHandler.vector_store_file_content_handler+  s¦  € ñ Ø×?Ñ?Ø /ØØ3UØ$7Ø-Ø'Ø+ØÜ!+¨FÔ4DÔ!E�vð @ó 
ð 
ð LPð @ó 
ð 
ð ˆ>¤¨F´KÔ!@Ü 1¸,È×HZÑHZÐ[gÐimÓHnÐ9oÔ pÑà &Ðà;×PÑPØ!Ò' R¸ð Qó 
ˆñ Ø�N‰N˜=Ô)à<×MÑMØ#×,Ñ,Ø+Ü Ó/ð Nó 
ˆð /×cÑcØ+ØØð dó 
ñ	
ØØð 	×ÑØØà'5Ø$Ø"ñð 	ô 	
ð	^Ø/×3Ñ3¸ÀWÐUcÐ3ÓdˆHð 2×gÑgØð hó 
ð 	
øô ò 	^Ø×$Ñ$ qÐ:\Ð$Ó]Ð]ûð	^úrn  Úupdate_requestc             ƒ   óž  K  — |�t        |t        «      s3t        t        j                  |«      d|j                  dd «      i¬«      }n|}|j                  |xs i |¬«      }|r|j                  |«       |j                  |j                  |t        |«      ¬«      }t        |«      }|	r|j                  |	«       |j                  ||t        t        |«      |¬«      \  }}|j                  dd|||dœ¬«       	 |j                  ||||
¬	«      ƒ d {  –—† }|j%                  |¬«      S 7 Œ# t         $ r}| j#                  ||¬
«      ‚d }~ww xY w­w)Nr"  rd  r  rP  ©r  r  ru  r¶   r½   r8  r:  r{  rý   rW  )rÅ   rF   rI   rÖ   r*  r‡   rH  rv  rI  r¶   r«   Ú*transform_update_vector_store_file_requestr   ru   rL  r  r  r  Ú+transform_update_vector_store_file_response)r  r  r  ru  rN  r€   r�   r·   rø  r3  r¤   r  rò   r£   r¶   rT  r¢   rÛ  r  rú   s                       rˆ   Ú&async_vector_store_file_update_handlerz9BaseLLMHTTPHandler.async_vector_store_file_update_handlerV+  s�  è ø€ ð ˆ>¤¨FÔ4DÔ!EÜ!7Ü$×1Ñ1Ð2EÓFØ$ n×&8Ñ&8¸ÀtÓ&LÐMô"Ñð
 "(Ðà;×PÑPØ!Ò' R¸ð Qó 
ˆñ Ø�N‰N˜=Ô)à<×MÑMØ#×,Ñ,Ø+Ü Ó/ð Nó 
ˆô # >Ó2ˆÙØ×Ñ 
Ô+ð
 /×YÑYØ+ØÜÔ <¸lÓKØð	 Zó 
ñ	
ØØð 	×ÑØØà'3Ø$Ø"ñð 	ô 	
ð	^Ø/×4Ñ4¸ÀgÐT`ÐjqÐ4Ór×rˆHð 2×]Ñ]ÐgoÐ]ÓpÐpð	 sùÜò 	^Ø×$Ñ$ qÐ:\Ð$Ó]Ð]ûð	^üs<   ‚C5EÃ8D) ÄD'ÄD) ÄEÄ'D) Ä)	E
Ä2EÅE
Å
Ec                óÄ  — |r3| j                  |||||||||	|
t        |t        «      r|¬«      S d ¬«      S |�t        |t        «      st	        d|j                  dd «      i¬«      }n|}|j                  |xs i |¬«      }|r|j                  |«       |j                  |j                  |t        |«      ¬«      }t        |«      }|	r|j                  |	«       |j                  ||t        t        |«      |¬«      \  }}|j                  dd|||dœ¬	«       	 |j                  ||||
¬
«      }|j%                  |¬«      S # t         $ r}| j#                  ||¬«      ‚d }~ww xY w)N)r  r  ru  rN  r€   r�   r·   rø  r3  r¤   r  r"  rC  r  rP  rw  r½   r8  r:  r{  rý   rW  )rz  rÅ   rF   rG   rH   r‡   rH  rv  rI  r¶   r«   rx  r   ru   rL  r  r  r  ry  )r  r  r  ru  rN  r€   r�   r·   rø  r3  r¤   r  r}  r  r£   r¶   rT  r¢   rÛ  r  rú   s                        rˆ   Ú vector_store_file_update_handlerz3BaseLLMHTTPHandler.vector_store_file_update_handler˜+  sÎ  € ñ  Ø×>Ñ>Ø /ØØ-Ø3UØ$7Ø-Ø'Ø+Ø%ØÜ!+¨FÔ4DÔ!E�vð ?ó ð ð LPð ?ó ð ð ˆ>¤¨F´KÔ!@Ü 1¸,È×HZÑHZÐ[gÐimÓHnÐ9oÔ pÑà &Ðà;×PÑPØ!Ò' R¸ð Qó 
ˆñ Ø�N‰N˜=Ô)à<×MÑMØ#×,Ñ,Ø+Ü Ó/ð Nó 
ˆô # >Ó2ˆÙØ×Ñ 
Ô+ð
 /×YÑYØ+ØÜÔ <¸lÓKØð	 Zó 
ñ	
ØØð 	×ÑØØà'3Ø$Ø"ñð 	ô 	
ð	^Ø/×4Ñ4¸ÀgÐT`ÐjqÐ4ÓrˆHð 2×]Ñ]ÐgoÐ]ÓpÐpøô ò 	^Ø×$Ñ$ qÐ:\Ð$Ó]Ð]ûð	^ús   ÄD> Ä>	EÅEÅEc       	      ƒ   óD  K  — |	�t        |	t        «      s3t        t        j                  |«      d|j                  dd «      i¬«      }
n|	}
|j                  |xs i |¬«      }|r|j                  |«       |j                  |j                  |t        |«      ¬«      }|j                  |||¬«      \  }}|j                  dd|||dœ¬«       	 |
j                  ||||¬	«      ƒ d {  –—† }|j!                  |¬«      S 7 Œ# t        $ r}| j                  ||¬
«      ‚d }~ww xY w­w)Nr"  rd  r  rP  rc  r½   r8  r:  r-  rý   rW  )rÅ   rF   rI   rÖ   r*  r‡   rH  rv  rI  r¶   r«   Ú*transform_delete_vector_store_file_requestrL  r‰  r  r  Ú+transform_delete_vector_store_file_responserf  s                    rˆ   Ú&async_vector_store_file_delete_handlerz9BaseLLMHTTPHandler.async_vector_store_file_delete_handlerç+  se  è ø€ ð ˆ>¤¨FÔ4DÔ!EÜ!7Ü$×1Ñ1Ð2EÓFØ$ n×&8Ñ&8¸ÀtÓ&LÐMô"Ñð
 "(Ðà;×PÑPØ!Ò' R¸ð Qó 
ˆñ Ø�N‰N˜=Ô)à<×MÑMØ#×,Ñ,Ø+Ü Ó/ð Nó 
ˆð /×YÑYØ+ØØð Zó 
ñ	
ØØð 	×ÑØØà'5Ø$Ø"ñð 	ô 	
ð	^Ø/×6Ñ6¸3ÈÐXfÐpwÐ6Óx×xˆHð 2×]Ñ]ÐgoÐ]ÓpÐpð	 yùÜò 	^Ø×$Ñ$ qÐ:\Ð$Ó]Ð]ûð	^üs<   ‚CD ÃC< Ã#C:Ã$C< Ã(D Ã:C< Ã<	DÄDÄDÄD c       
         óf  — |
r1| j                  ||||||||t        |	t        «      r|	¬«	      S d ¬«	      S |	�t        |	t        «      st	        d|j                  dd «      i¬«      }n|	}|j                  |xs i |¬«      }|r|j                  |«       |j                  |j                  |t        |«      ¬«      }|j                  |||¬«      \  }}|j                  dd|||dœ¬	«       	 |j                  ||||¬
«      }|j!                  |¬«      S # t        $ r}| j                  ||¬«      ‚d }~ww xY w)Nrk  r"  rC  r  rP  rc  r½   r8  r:  r-  rý   rW  )r€  rÅ   rF   rG   rH   r‡   rH  rv  rI  r¶   r«   r~  rL  r‰  r  r  r  rl  s                     rˆ   Ú vector_store_file_delete_handlerz3BaseLLMHTTPHandler.vector_store_file_delete_handler",  s   € ñ Ø×>Ñ>Ø /ØØ3UØ$7Ø-Ø'Ø+ØÜ!+¨FÔ4DÔ!E�vð ?ó 
ð 
ð LPð ?ó 
ð 
ð ˆ>¤¨F´KÔ!@Ü 1¸,È×HZÑHZÐ[gÐimÓHnÐ9oÔ pÑà &Ðà;×PÑPØ!Ò' R¸ð Qó 
ˆñ Ø�N‰N˜=Ô)à<×MÑMØ#×,Ñ,Ø+Ü Ó/ð Nó 
ˆð /×YÑYØ+ØØð Zó 
ñ	
ØØð 	×ÑØØà'5Ø$Ø"ñð 	ô 	
ð	^Ø/×6Ñ6¸3ÈÐXfÐpwÐ6ÓxˆHð 2×]Ñ]ÐgoÐ]ÓpÐpøô ò 	^Ø×$Ñ$ qÐ:\Ð$Ó]Ð]ûð	^ús   Ã(D Ä	D0ÄD+Ä+D0ÚcontentsÚ generate_content_provider_configÚgenerate_content_config_dictÚsystem_instructionc                 óþ  — ddl m} |r2| j                  |||||||||	|
|t        |t        «      r|nd|||¬«      S |�t        |t
        «      st        d|j                  dd«      i¬«      }n|}|j                  |j                  |t        |«      |¬«      \  }}|	r|j                  |	«       |j                  |||||¬«      }|
r|j                  |
«       |j                  |d	|||d
œ¬«       	 |rA|j                  ||||d¬«      } ||||||xs i ||t        ||||j                   ¬«      ¬«      S |j                  ||||¬«      }	 |j'                  |||¬«      S # t"        $ r}| j%                  ||¬«      ‚d}~ww xY w)z—
        Handles Google GenAI generate content requests.
        When _is_async=True, returns a coroutine instead of making the call directly.
        r   )Ú+GoogleGenAIGenerateContentStreamingIteratorN)r  rƒ  r„  r…  r  r€   r�   r·   rø  r3  r¤   r  rõ   rd  r†  r"  rC  )r¶   r  r�   rõ   ©r  rƒ  r  r…  r†  r½   r8  r:  T©r¢   r£   r¥   r¤   rõ   ©r¶   r�   r·   r¸   ©r  r  r·   r„  rd  r€   rÛ  r
  r{  rý   r  )Ú'litellm.google_genai.streaming_iteratorrˆ  Úasync_generate_content_handlerrÅ   rF   rG   rH   r‡   Úsync_get_auth_token_and_urlr¶   r«   rv  Ú"transform_generate_content_requestrL  r  rÉ   r£   r  r  Ú#transform_generate_content_response)r  r  rƒ  r„  r…  r  r€   r�   r·   rø  r3  r¤   r}  r  rõ   rd  r†  rˆ  r  r£   r¶   rô   r  rú   s                           rˆ   Úgenerate_content_handlerz+BaseLLMHTTPHandler.generate_content_handlerk,  s#  € õ.	
ñ Ø×6Ñ6ØØ!Ø1QØ-IØØ$7Ø-Ø'Ø+Ø%ØÜ!+¨FÔ4DÔ!E‘vÈ4ØØ!1Ø#5ð 7ó ð ð$ ˆ>¤¨F´KÔ!@Ü 1¸,È×HZÑHZÐ[gÐimÓHnÐ9oÔ pÑà &Ðð -×HÑHØ#×,Ñ,ØÜ Ó/Øð	 Ió 
ñ	
ØØñ Ø�N‰N˜=Ô)ð 7×YÑYØØØØ)EØ1ð Zó 
ˆñ Ø�K‰K˜
Ô#ð 	×ÑØØà'+Ø$Ø"ñð 	ô 	
ð$	ÙØ,×1Ñ1Ø Ø#ØØ#Øð 2ó �ñ CØ%ØØ +Ø5UØ%5Ò%;¸Ø(;Ø!%Ü"GØ!)Ø'5Ø$/Ø)1×)9Ñ)9ô	#ôð ð  -×1Ñ1Ø Ø#ØØ#ð	 2ó ‘ð 0×SÑSØØ!Ø#ð Tó 
ð 	
øô ò 	Ø×$Ñ$ØØ @ð %ó ð ûð	ús   Ã.AE Ä1E Å	E<Å$E7Å7E<c              ƒ   ó  K  — ddl m} |�t        |t        «      s3t	        t        j                  |«      d|j                  dd«      i¬«      }n|}|j                  |t        |«      ||j                  ¬«      ƒ d{  –—† \  }}|	r|j                  |	«       |j                  |||||¬«      }|
r|j                  |
«       |j                  |d|||d	œ¬
«       	 |rI|j                  ||||d¬«      ƒ d{  –—† } ||||||xs i ||t        ||||j                   ¬«      ¬«      S |j                  ||||¬«      ƒ d{  –—† }	 |j'                  |||¬«      S 7 ŒÙ7 Œc7 Œ# t"        $ r}| j%                  ||¬«      ‚d}~ww xY w­w)zq
        Async version of the generate content handler.
        Uses async HTTP client to make requests.
        r   )Ú0AsyncGoogleGenAIGenerateContentStreamingIteratorNr"  rd  )r  r�   rõ   r¶   r‰  r½   r8  r:  TrŠ  r‹  rŒ  r{  rý   r  )r�  r”  rÅ   rF   rI   rÖ   r*  r‡   Úget_auth_token_and_urlr«   r¶   rv  r�  rL  r  rÉ   r£   r  r  r‘  )r  r  rƒ  r„  r…  r  r€   r�   r·   rø  r3  r¤   r  rõ   rd  r†  r”  rò   r£   r¶   rô   r  rú   s                          rˆ   rŽ  z1BaseLLMHTTPHandler.async_generate_content_handlerï,  s  è ø€ õ,	
ð ˆ>¤¨FÔ4DÔ!EÜ!7Ü$×1Ñ1Ð2EÓFØ$ n×&8Ñ&8¸ÀtÓ&LÐMô"Ñð
 "(Ðð 3×IÑIØÜ Ó/ØØ#×,Ñ,ð	 Jó 
÷ 
ñ	
ØØñ Ø�N‰N˜=Ô)ð 7×YÑYØØØØ)EØ1ð Zó 
ˆñ Ø�K‰K˜
Ô#ð 	×ÑØØà'+Ø$Ø"ñð 	ô 	
ð$	ÙØ!3×!8Ñ!8Ø Ø#ØØ#Øð "9ó "÷ �ñ HØ%ØØ +Ø5UØ%5Ò%;¸Ø(;Ø!%Ü"GØ!)Ø'5Ø$/Ø)1×)9Ñ)9ô	#ôð ð  "4×!8Ñ!8Ø Ø#ØØ#ð	 "9ó "÷ ‘ð 0×SÑSØØ!Ø#ð Tó 
ð 	
ðO
øðFøð0ùô ò 	Ø×$Ñ$ØØ @ð %ó ð ûð	üsg   ‚A9E?Á;EÁ<AE?ÃE Ã3EÃ4.E Ä"E?Ä#E Ä;EÄ<E Å E?ÅE ÅE Å	E<Å$E7Å7E<Å<E?ÚvoiceÚtext_to_speech_provider_configÚtext_to_speech_optional_paramsc                 ó6  — |r3| j                  |||||||||
|	t        |t        «      r|¬«      S d¬«      S |�t        |t        «      st	        d|j                  dd«      i¬«      }n|}|j                  |j                  d«      |
xs i ||j                  d«      ¬«      }|
r|j                  |
«       |j                  ||j                  d«      |¬«      }|j                  ||||||¬	«      }d
|v r|j                  |d
   «       |j                  |d|||dœ¬«       	 d|v r|j                  |||d   |	¬«      }n(d|v r|j                  |||d   |	¬«      }nt        d«      ‚|j                  |||¬«      S # t        $ r}| j                  ||¬«      ‚d}~ww xY w)zˆ
        Handles text-to-speech requests.
        When _is_async=True, returns a coroutine instead of making the call directly.
        N)r  r;  r–  r—  r˜  r€   r�   r·   rø  r¤   r  r"  rC  r  r¶   ©r  r£   r  r¶   rg  ©r  r;  r–  r  r�   r£   r£   r½   r8  r:  Ú	dict_bodyr{  Ú	ssml_bodyrr  ú`No body found in request_data. Must provide one of: dict_body, ssml_body, text_body, binary_bodyrý   r  )Úasync_text_to_speech_handlerrÅ   rF   rG   rH   r‡   rH  rv  rI  Ú transform_text_to_speech_requestrL  r  rF  r  r  Ú!transform_text_to_speech_response)r  r  r;  r–  r—  r˜  r€   r�   r·   r¤   rø  r  r}  r  r£   r¶   rü   r  rú   s                      rˆ   Útext_to_speech_handlerz)BaseLLMHTTPHandler.text_to_speech_handlere-  sD  € ñ, Ø×4Ñ4ØØØØ/MØ/MØ$7Ø-Ø'Ø+ØÜ!+¨FÔ4DÔ!E�vð 5ó ð ð LPð 5ó ð ð ˆ>¤¨F´KÔ!@Ü 1¸,È×HZÑHZÐ[gÐimÓHnÐ9oÔ pÑà &Ðà7×LÑLØ"×&Ñ& yÓ1Ø!Ò' RØØ#×'Ñ'¨
Ó3ð	 Mó 
ˆñ Ø�N‰N˜=Ô)à8×IÑIØØ#×'Ñ'¨
Ó3Ø)ð Jó 
ˆð =×]Ñ]ØØØØ:Ø)Øð ^ó 
ˆð ˜Ñ$Ø�N‰N˜<¨	Ñ2Ô3ð 	×ÑØØà'3Ø$Ø"ñð 	ô 	
ð	à˜lÑ*Ø,×1Ñ1Ø Ø#Ø% kÑ2Ø#ð	 2ó ‘ð  Ñ,Ø,×1Ñ1Ø Ø#Ø% kÑ2Ø#ð	 2ó ‘ô !Øvóð ð .×OÑOØØ!Ø#ð Pó 
ð 	
øô ò 	Ø×$Ñ$ØØ >ð %ó ð ûð	ús   ÄAE7 Å7	FÆ FÆFc              ƒ   ó$  K  — |�t        |t        «      s3t        t        j                  |«      d|j                  dd«      i¬«      }n|}|j                  |j                  d«      |
xs i ||j                  d«      ¬«      }|
r|j                  |
«       |j                  ||j                  d«      |¬«      }|j                  ||||||¬«      }d	|v r|j                  |d	   «       |j                  |d
|||dœ¬«       	 d|v r!|j                  |||d   |	¬«      ƒ d{  –—† }n0d|v r!|j                  |||d   |	¬«      ƒ d{  –—† }nt        d«      ‚|j                  |||¬«      S 7 ŒI7 Œ&# t        $ r}| j                  ||¬«      ‚d}~ww xY w­w)zo
        Async version of the text-to-speech handler.
        Uses async HTTP client to make requests.
        Nr"  rd  r  r¶   rš  rg  r›  r£   r½   r8  r:  rœ  r{  r�  rr  rž  rý   r  )rÅ   rF   rI   rÖ   r*  r‡   rH  rv  rI  r   rL  r  rF  r  r  r¡  )r  r  r;  r–  r—  r˜  r€   r�   r·   r¤   rø  r  rò   r£   r¶   rü   r  rú   s                     rˆ   rŸ  z/BaseLLMHTTPHandler.async_text_to_speech_handlerØ-  s  è ø€ ð$ ˆ>¤¨FÔ4DÔ!EÜ!7Ü$×1Ñ1Ð2EÓFØ$ n×&8Ñ&8¸ÀtÓ&LÐMô"Ñð
 "(Ðà7×LÑLØ"×&Ñ& yÓ1Ø!Ò' RØØ#×'Ñ'¨
Ó3ð	 Mó 
ˆñ Ø�N‰N˜=Ô)à8×IÑIØØ#×'Ñ'¨
Ó3Ø)ð Jó 
ˆð =×]Ñ]ØØØØ:Ø)Øð ^ó 
ˆð ˜Ñ$Ø�N‰N˜<¨	Ñ2Ô3ð 	×ÑØØà'3Ø$Ø"ñð 	ô 	
ð	à˜lÑ*Ø!3×!8Ñ!8Ø Ø#Ø% kÑ2Ø#ð	 "9ó "÷ ‘ð  Ñ,Ø!3×!8Ñ!8Ø Ø#Ø% kÑ2Ø#ð	 "9ó "÷ ‘ô !Øvóð ð .×OÑOØØ!Ø#ð Pó 
ð 	
ð1øðùô ò 	Ø×$Ñ$ØØ >ð %ó ð ûð	üsN   ‚C<FÃ?E, ÄE(Ä$E, ÅE*ÅE, ÅFÅ(E, Å*E, Å,	FÅ5FÆFÆFc                 óÞ   — d|vs|d   sy|j                  dd«       g }|d   D ]  }|j                  d|f«       Œ |j                  «       D ��ci c]  \  }}|dk7  sŒ||“Œ }}}||fS c c}}w )a>  
        Helper to prepare multipart/form-data request for skills API.

        Args:
            request_body: Request body containing files and other fields
            headers: Request headers

        Returns:
            Tuple of (data_dict, files_list) for multipart request, or (None, None) if no files
        rŽ  r©  zcontent-typeNzfiles[])rD  rÚ   rL  )r  rÛ  r£   rŽ  Úfile_objr�  r‘  rô   s           rˆ   Ú _prepare_skill_multipart_requestz3BaseLLMHTTPHandler._prepare_skill_multipart_request?.  sŽ   € ð ˜,Ñ&¨l¸7Ò.CØð 	�‰�N DÔ)ð ˆØ$ WÑ-ò 	0ˆHØ�L‰L˜) XÐ.Õ/ð	0ð )5×(:Ñ(:Ó(<×M¡  1ÀÀWÃ�q˜!‘tÐMˆÑMà�Uˆ{Ðùó Ns   ÁA)ÁA)Úskills_api_provider_configr@   r]   c                 óö  — |
r| j                  |||||||||	|¬«
      S |	�t        |	t        «      st        d|j	                  dd«      i¬«      }n|	}|xs i }|j                  |j	                  dd«      d|||dœ¬«       	 | j                  ||¬	«      \  }}|�|j                  |||||¬
«      }n|j                  ||||¬«      }|j                  ||¬«      S # t        $ r}| j                  ||¬«      ‚d}~ww xY w)zCreate a skill)
r¢   rÛ  r§  r€   r�   r·   rø  r¤   r  r   Nr"  rC  Údisplay_titler½   r8  r:  ©rÛ  r£   ri  r{  rý   r†  )Úasync_create_skill_handlerrÅ   rG   rH   r‡   rL  r¦  r  r  r  Útransform_create_skill_response)r  r¢   rÛ  r§  r€   r�   r·   rø  r¤   r  r}  r   r  r£   rô   rŽ  r  rú   s                     rˆ   Úcreate_skill_handlerz'BaseLLMHTTPHandler.create_skill_handler^.  sa  € ñ Ø×2Ñ2ØØ)Ø+EØ$7Ø-Ø'Ø+ØØØ-ð 3ó ð ð ˆ>¤¨F´KÔ!@Ü 1¸,È×HZÑHZÐ[gÐimÓHnÐ9oÔ pÑà &Ðà&Ò,¨"ˆà×ÑØ×"Ñ" ?°BÓ7Øà'3ØØ"ñð 	ô 	
ð	à×?Ñ?È\ÐcjÐ?Ók‰KˆD�%àÐ Ø,×1Ñ1°cÀ7ÐQUÐ]bÐlsÐ1Ót‘ð -×1Ñ1°cÀ7ÐQ]ÐgnÐ1Óo�ð *×IÑIØ!Ø#ð Jó 
ð 	
øô ò 	Ø×$Ñ$ØØ :ð %ó ð ûð	ús   Â AC Ã	C8Ã C3Ã3C8c              ƒ   ó  K  — |	�t        |	t        «      s3t        t        j                  |«      d|j                  dd«      i¬«      }n|	}|xs i }|j                  |j                  dd«      d|||dœ¬«       	 | j                  ||¬«      \  }}|�|j                  |||||¬	«      ƒ d{  –—† }n|j                  ||||¬
«      ƒ d{  –—† }|j                  ||¬«      S 7 Œ57 Œ# t        $ r}| j                  ||¬«      ‚d}~ww xY w­w)zAsync create a skillNr"  rd  r©  r½   r8  r:  rª  ri  r{  rý   r†  )rÅ   rF   rI   rÖ   r*  r‡   rL  r¦  r  r  r  r¬  )r  r¢   rÛ  r§  r€   r�   r·   rø  r¤   r  r   rò   r£   rô   rŽ  r  rú   s                    rˆ   r«  z-BaseLLMHTTPHandler.async_create_skill_handler .  sP  è ø€ ð ˆ>¤¨FÔ4DÔ!EÜ!7Ü$×1Ñ1Ð2EÓFØ$ n×&8Ñ&8¸ÀtÓ&LÐMô"Ñð
 "(Ðà&Ò,¨"ˆà×ÑØ×"Ñ" ?°BÓ7Øà'3ØØ"ñð 	ô 	
ð	à×?Ñ?È\ÐcjÐ?Ók‰KˆD�%àÐ Ø!3×!8Ñ!8Ø W°4¸uÈgð "9ó "÷ ‘ð
 "4×!8Ñ!8¸SÈ'ÐXdÐnuÐ!8Ó!v×v�ð *×IÑIØ!Ø#ð Jó 
ð 	
ðøð
 wùÜò 	Ø×$Ñ$ØØ :ð %ó ð ûð	üsN   ‚A6DÁ91C$ Â*C Â+C$ ÃC"Ã	C$ ÃDÃ C$ Ã"C$ Ã$	DÃ-D Ä DÄDr\   c                 óv  — |
r| j                  |||||||||	|¬«
      S |	�t        |	t        «      st        d|j	                  dd«      i¬«      }n|	}|xs i }|j                  dd|||dœ¬«       	 |j	                  |||¬«      }|j                  ||¬
«      S # t        $ r}| j                  ||¬	«      ‚d}~ww xY w)zList skills)
r¢   rÏ  r§  r€   r�   r·   rø  r¤   r  r   Nr"  rC  r½   r8  r:  r‘  rý   r†  )	Úasync_list_skills_handlerrÅ   rG   rH   r‡   rL  r  r  Útransform_list_skills_response)r  r¢   rÏ  r§  r€   r�   r·   rø  r¤   r  r}  r   r  r£   r  rú   s                   rˆ   Úlist_skills_handlerz&BaseLLMHTTPHandler.list_skills_handlerØ.  s  € ñ Ø×1Ñ1ØØ)Ø+EØ$7Ø-Ø'Ø+ØØØ-ð 2ó ð ð ˆ>¤¨F´KÔ!@Ü 1¸,È×HZÑHZÐ[gÐimÓHnÐ9oÔ pÑà &Ðà&Ò,¨"ˆà×ÑØØà'3ØØ"ñð 	ô 	
ð	Ø/×3Ñ3¸ÀWÐUaÐ3ÓbˆHð *×HÑHØ!Ø#ð Ió 
ð 	
øô ò 	Ø×$Ñ$ØØ :ð %ó ð ûð	úó   Á0B Â	B8Â B3Â3B8c              ƒ   ó€  K  — |	�t        |	t        «      s3t        t        j                  |«      d|j                  dd«      i¬«      }n|	}|xs i }|j                  dd|||dœ¬«       	 |j                  |||¬«      ƒ d{  –—† }|j                  ||¬	«      S 7 Œ# t        $ r}| j                  ||¬«      ‚d}~ww xY w­w)
zAsync list skillsNr"  rd  r½   r8  r:  r‘  rý   r†  )
rÅ   rF   rI   rÖ   r*  r‡   rL  r  r  r±  )r  r¢   rÏ  r§  r€   r�   r·   rø  r¤   r  r   rò   r£   r  rú   s                  rˆ   r°  z,BaseLLMHTTPHandler.async_list_skills_handler/  só   è ø€ ð ˆ>¤¨FÔ4DÔ!EÜ!7Ü$×1Ñ1Ð2EÓFØ$ n×&8Ñ&8¸ÀtÓ&LÐMô"Ñð
 "(Ðà&Ò,¨"ˆà×ÑØØà'3ØØ"ñð 	ô 	
ð	Ø$6×$:Ñ$:¸sÈGÐ\hÐ$:Ó$i×iˆHð *×HÑHØ!Ø#ð Ió 
ð 	
ð jùÜò 	Ø×$Ñ$ØØ :ð %ó ð ûð	üó<   ‚A&B>Á)B Â BÂB ÂB>ÂB Â	B;Â#B6Â6B;Â;B>c                 óp  — |	r| j                  |||||||||
¬«	      S |�t        |t        «      st        d|j	                  dd«      i¬«      }n|}|xs i }|j                  dd||dœ¬«       	 |j	                  ||¬«      }|j                  ||¬
«      S # t        $ r}| j                  ||¬	«      ‚d}~ww xY w)zGet a skill©	r¢   r§  r€   r�   r·   rø  r¤   r  r   Nr"  rC  r½   r¬  r:  rË  rý   r†  )	Úasync_get_skill_handlerrÅ   rG   rH   r‡   rL  r  r  Útransform_get_skill_response©r  r¢   r§  r€   r�   r·   rø  r¤   r  r}  r   r  r£   r  rú   s                  rˆ   Úget_skill_handlerz$BaseLLMHTTPHandler.get_skill_handlerB/  s  € ñ Ø×/Ñ/ØØ+EØ$7Ø-Ø'Ø+ØØØ-ð 0ó 
ð 
ð ˆ>¤¨F´KÔ!@Ü 1¸,È×HZÑHZÐ[gÐimÓHnÐ9oÔ pÑà &Ðà&Ò,¨"ˆà×ÑØØàØ"ñð 	ô 	
ð	Ø/×3Ñ3¸ÀWÐ3ÓMˆHð *×FÑFØ!Ø#ð Gó 
ð 	
øô ò 	Ø×$Ñ$ØØ :ð %ó ð ûð	úó   Á.B Â	B5ÂB0Â0B5c
              ƒ   ó|  K  — |�t        |t        «      s3t        t        j                  |«      d|j                  dd«      i¬«      }
n|}
|xs i }|j                  dd||dœ¬«       	 |
j                  ||¬«      ƒ d{  –—† }|j                  ||¬	«      S 7 Œ# t        $ r}| j                  ||¬«      ‚d}~ww xY w­w)
zAsync get a skillNr"  rd  r½   r¬  r:  rË  rý   r†  )
rÅ   rF   rI   rÖ   r*  r‡   rL  r  r  r¹  ©r  r¢   r§  r€   r�   r·   rø  r¤   r  r   rò   r£   r  rú   s                 rˆ   r¸  z*BaseLLMHTTPHandler.async_get_skill_handlerz/  sí   è ø€ ð ˆ>¤¨FÔ4DÔ!EÜ!7Ü$×1Ñ1Ð2EÓFØ$ n×&8Ñ&8¸ÀtÓ&LÐMô"Ñð
 "(Ðà&Ò,¨"ˆà×ÑØØàØ"ñð 	ô 	
ð	Ø$6×$:Ñ$:¸sÈGÐ$:Ó$T×TˆHð *×FÑFØ!Ø#ð Gó 
ð 	
ð UùÜò 	Ø×$Ñ$ØØ :ð %ó ð ûð	üó<   ‚A%B<Á(B Á>BÁ?B ÂB<ÂB Â	B9Â!B4Â4B9Â9B<r[   c                 ór  — |	r| j                  |||||||||
¬«	      S |�t        |t        «      st        d|j	                  dd«      i¬«      }n|}|xs i }|j                  dd||dœ¬«       	 |j                  |||¬«      }|j                  ||¬
«      S # t        $ r}| j                  ||¬	«      ‚d}~ww xY w)zDelete a skillr·  Nr"  rC  r½   r¬  r:  rn  rý   r†  )
Úasync_delete_skill_handlerrÅ   rG   rH   r‡   rL  r‰  r  r  Útransform_delete_skill_responserº  s                  rˆ   Údelete_skill_handlerz'BaseLLMHTTPHandler.delete_skill_handler§/  s  € ñ Ø×2Ñ2ØØ+EØ$7Ø-Ø'Ø+ØØØ-ð 3ó 
ð 
ð ˆ>¤¨F´KÔ!@Ü 1¸,È×HZÑHZÐ[gÐimÓHnÐ9oÔ pÑà &Ðà&Ò,¨"ˆà×ÑØØàØ"ñð 	ô 	
ð	Ø/×6Ñ6¸3ÈÐY`Ð6ÓaˆHð *×IÑIØ!Ø#ð Jó 
ð 	
øô ò 	Ø×$Ñ$ØØ :ð %ó ð ûð	úó   Á.B Â	B6ÂB1Â1B6c
              ƒ   ó~  K  — |�t        |t        «      s3t        t        j                  |«      d|j                  dd«      i¬«      }
n|}
|xs i }|j                  dd||dœ¬«       	 |
j                  |||¬«      ƒ d{  –—† }|j                  ||¬	«      S 7 Œ# t        $ r}| j                  ||¬«      ‚d}~ww xY w­w)
zAsync delete a skillNr"  rd  r½   r¬  r:  rn  rý   r†  )rÅ   rF   rI   rÖ   r*  r‡   rL  r‰  r  r  rÂ  r¾  s                 rˆ   rÁ  z-BaseLLMHTTPHandler.async_delete_skill_handlerß/  sð   è ø€ ð ˆ>¤¨FÔ4DÔ!EÜ!7Ü$×1Ñ1Ð2EÓFØ$ n×&8Ñ&8¸ÀtÓ&LÐMô"Ñð
 "(Ðà&Ò,¨"ˆà×ÑØØàØ"ñð 	ô 	
ð	Ø$6×$=Ñ$=À#ÈwÐ`gÐ$=Ó$h×hˆHð *×IÑIØ!Ø#ð Jó 
ð 	
ð iùÜò 	Ø×$Ñ$ØØ :ð %ó ð ûð	üó<   ‚A%B=Á(B Á?BÂ B ÂB=ÂB Â	B:Â"B5Â5B:Â:B=Úevals_api_provider_configr2   rš   c                 ó˜  — |
r| j                  |||||||||	|¬«
      S |	�t        |	t        «      st        d|j	                  dd«      i¬«      }n|	}|xs i }|j                  |j	                  dd«      d|||dœ¬«       	 |j                  ||||¬	«      }|j                  ||¬«      S # t        $ r}| j                  ||¬
«      ‚d}~ww xY w)zCreate an eval©
r¢   rÛ  rÇ  r€   r�   r·   rø  r¤   r  r   Nr"  rC  Údisplay_namer½   r8  r:  r{  rý   r†  )
Úasync_create_eval_handlerrÅ   rG   rH   r‡   rL  r  r  r  Útransform_create_eval_response©r  r¢   rÛ  rÇ  r€   r�   r·   rø  r¤   r  r}  r   r  r£   r  rú   s                   rˆ   Úcreate_eval_handlerz&BaseLLMHTTPHandler.create_eval_handler0  ó!  € ñ Ø×1Ñ1ØØ)Ø*CØ$7Ø-Ø'Ø+ØØØ-ð 2ó ð ð ˆ>¤¨F´KÔ!@Ü 1¸,È×HZÑHZÐ[gÐimÓHnÐ9oÔ pÑà &Ðà&Ò,¨"ˆà×ÑØ×"Ñ" >°2Ó6Øà'3ØØ"ñð 	ô 	
ð	Ø/×4Ñ4¸ÀgÐT`ÐjqÐ4ÓrˆHð )×GÑGØ!Ø#ð Hó 
ð 	
øô ò 	Ø×$Ñ$ØØ 9ð %ó ð ûð	úó   Â B( Â(	C	Â1CÃC	c              ƒ   ó¢  K  — |	�t        |	t        «      s3t        t        j                  |«      d|j                  dd«      i¬«      }n|	}|xs i }|j                  |j                  dd«      d|||dœ¬«       	 |j                  ||||¬«      ƒ d{  –—† }|j                  ||¬
«      S 7 Œ# t        $ r}| j                  ||¬	«      ‚d}~ww xY w­w)zAsync create an evalNr"  rd  rP  r½   r8  r:  r{  rý   r†  )rÅ   rF   rI   rÖ   r*  r‡   rL  r  r  r  rÌ  ©r  r¢   rÛ  rÇ  r€   r�   r·   rø  r¤   r  r   rò   r£   r  rú   s                  rˆ   rË  z,BaseLLMHTTPHandler.async_create_eval_handlerK0  s  è ø€ ð ˆ>¤¨FÔ4DÔ!EÜ!7Ü$×1Ñ1Ð2EÓFØ$ n×&8Ñ&8¸ÀtÓ&LÐMô"Ñð
 "(Ðà&Ò,¨"ˆà×ÑØ×"Ñ" 6¨2Ó.Øà'3ØØ"ñð 	ô 	
ð	Ø/×4Ñ4¸ÀgÐT`ÐjqÐ4Ór×rˆHð )×GÑGØ!Ø#ð Hó 
ð 	
ð sùÜò 	Ø×$Ñ$ØØ 9ð %ó ð ûð	üó<   ‚A6CÁ9B+ ÂB)ÂB+ ÂCÂ)B+ Â+	CÂ4CÃCÃCr›   c                 óv  — |
r| j                  |||||||||	|¬«
      S |	�t        |	t        «      st        d|j	                  dd«      i¬«      }n|	}|xs i }|j                  dd|||dœ¬«       	 |j	                  |||¬«      }|j                  ||¬
«      S # t        $ r}| j                  ||¬	«      ‚d}~ww xY w)z
List evals©
r¢   rÏ  rÇ  r€   r�   r·   rø  r¤   r  r   Nr"  rC  r½   r8  r:  r‘  rý   r†  )	Úasync_list_evals_handlerrÅ   rG   rH   r‡   rL  r  r  Útransform_list_evals_response©r  r¢   rÏ  rÇ  r€   r�   r·   rø  r¤   r  r}  r   r  r£   r  rú   s                   rˆ   Úlist_evals_handlerz%BaseLLMHTTPHandler.list_evals_handlerz0  s  € ñ Ø×0Ñ0ØØ)Ø*CØ$7Ø-Ø'Ø+ØØØ-ð 1ó ð ð ˆ>¤¨F´KÔ!@Ü 1¸,È×HZÑHZÐ[gÐimÓHnÐ9oÔ pÑà &Ðà&Ò,¨"ˆà×ÑØØà'3ØØ"ñð 	ô 	
ð	Ø/×3Ñ3¸ÀWÐUaÐ3ÓbˆHð )×FÑFØ!Ø#ð Gó 
ð 	
øô ò 	Ø×$Ñ$ØØ 9ð %ó ð ûð	úr³  c              ƒ   ó€  K  — |	�t        |	t        «      s3t        t        j                  |«      d|j                  dd«      i¬«      }n|	}|xs i }|j                  dd|||dœ¬«       	 |j                  |||¬«      ƒ d{  –—† }|j                  ||¬	«      S 7 Œ# t        $ r}| j                  ||¬«      ‚d}~ww xY w­w)
zAsync list evalsNr"  rd  r½   r8  r:  r‘  rý   r†  )
rÅ   rF   rI   rÖ   r*  r‡   rL  r  r  r×  ©r  r¢   rÏ  rÇ  r€   r�   r·   rø  r¤   r  r   rò   r£   r  rú   s                  rˆ   rÖ  z+BaseLLMHTTPHandler.async_list_evals_handlerµ0  só   è ø€ ð ˆ>¤¨FÔ4DÔ!EÜ!7Ü$×1Ñ1Ð2EÓFØ$ n×&8Ñ&8¸ÀtÓ&LÐMô"Ñð
 "(Ðà&Ò,¨"ˆà×ÑØØà'3ØØ"ñð 	ô 	
ð	Ø$6×$:Ñ$:¸sÈGÐ\hÐ$:Ó$i×iˆHð )×FÑFØ!Ø#ð Gó 
ð 	
ð jùÜò 	Ø×$Ñ$ØØ 9ð %ó ð ûð	ürµ  c                 óp  — |	r| j                  |||||||||
¬«	      S |�t        |t        «      st        d|j	                  dd«      i¬«      }n|}|xs i }|j                  dd||dœ¬«       	 |j	                  ||¬«      }|j                  ||¬
«      S # t        $ r}| j                  ||¬	«      ‚d}~ww xY w)zGet an eval©	r¢   rÇ  r€   r�   r·   rø  r¤   r  r   Nr"  rC  r½   r¬  r:  rË  rý   r†  )	Úasync_get_eval_handlerrÅ   rG   rH   r‡   rL  r  r  Útransform_get_eval_response©r  r¢   rÇ  r€   r�   r·   rø  r¤   r  r}  r   r  r£   r  rú   s                  rˆ   Úget_eval_handlerz#BaseLLMHTTPHandler.get_eval_handlerä0  s  € ñ Ø×.Ñ.ØØ*CØ$7Ø-Ø'Ø+ØØØ-ð /ó 
ð 
ð ˆ>¤¨F´KÔ!@Ü 1¸,È×HZÑHZÐ[gÐimÓHnÐ9oÔ pÑà &Ðà&Ò,¨"ˆà×ÑØØàØ"ñð 	ô 	
ð	Ø/×3Ñ3¸ÀWÐ3ÓMˆHð )×DÑDØ!Ø#ð Eó 
ð 	
øô ò 	Ø×$Ñ$ØØ 9ð %ó ð ûð	úr¼  c
              ƒ   ó|  K  — |�t        |t        «      s3t        t        j                  |«      d|j                  dd«      i¬«      }
n|}
|xs i }|j                  dd||dœ¬«       	 |
j                  ||¬«      ƒ d{  –—† }|j                  ||¬	«      S 7 Œ# t        $ r}| j                  ||¬«      ‚d}~ww xY w­w)
zAsync get an evalNr"  rd  r½   r¬  r:  rË  rý   r†  )
rÅ   rF   rI   rÖ   r*  r‡   rL  r  r  rß  ©r  r¢   rÇ  r€   r�   r·   rø  r¤   r  r   rò   r£   r  rú   s                 rˆ   rÞ  z)BaseLLMHTTPHandler.async_get_eval_handler1  sí   è ø€ ð ˆ>¤¨FÔ4DÔ!EÜ!7Ü$×1Ñ1Ð2EÓFØ$ n×&8Ñ&8¸ÀtÓ&LÐMô"Ñð
 "(Ðà&Ò,¨"ˆà×ÑØØàØ"ñð 	ô 	
ð	Ø$6×$:Ñ$:¸sÈGÐ$:Ó$T×TˆHð )×DÑDØ!Ø#ð Eó 
ð 	
ð UùÜò 	Ø×$Ñ$ØØ 9ð %ó ð ûð	ür¿  c                 ó˜  — |
r| j                  |||||||||	|¬«
      S |	�t        |	t        «      st        d|j	                  dd«      i¬«      }n|	}|xs i }|j                  |j	                  dd«      d|||dœ¬«       	 |j                  ||||¬	«      }|j                  ||¬«      S # t        $ r}| j                  ||¬
«      ‚d}~ww xY w)zUpdate an evalrÉ  Nr"  rC  rÊ  r½   r8  r:  r{  rý   r†  )
Úasync_update_eval_handlerrÅ   rG   rH   r‡   rL  r  r  r  Útransform_update_eval_responserÍ  s                   rˆ   Úupdate_eval_handlerz&BaseLLMHTTPHandler.update_eval_handlerI1  rÏ  rÐ  c              ƒ   ó¢  K  — |	�t        |	t        «      s3t        t        j                  |«      d|j                  dd«      i¬«      }n|	}|xs i }|j                  |j                  dd«      d|||dœ¬«       	 |j                  ||||¬«      ƒ d{  –—† }|j                  ||¬
«      S 7 Œ# t        $ r}| j                  ||¬	«      ‚d}~ww xY w­w)zAsync update an evalNr"  rd  rÊ  r½   r8  r:  r{  rý   r†  )rÅ   rF   rI   rÖ   r*  r‡   rL  r  r  r  ræ  rÒ  s                  rˆ   rå  z,BaseLLMHTTPHandler.async_update_eval_handler„1  s  è ø€ ð ˆ>¤¨FÔ4DÔ!EÜ!7Ü$×1Ñ1Ð2EÓFØ$ n×&8Ñ&8¸ÀtÓ&LÐMô"Ñð
 "(Ðà&Ò,¨"ˆà×ÑØ×"Ñ" >°2Ó6Øà'3ØØ"ñð 	ô 	
ð	Ø/×4Ñ4¸ÀgÐT`ÐjqÐ4Ór×rˆHð )×GÑGØ!Ø#ð Hó 
ð 	
ð sùÜò 	Ø×$Ñ$ØØ 9ð %ó ð ûð	ürÓ  r™   c                 ór  — |	r| j                  |||||||||
¬«	      S |�t        |t        «      st        d|j	                  dd«      i¬«      }n|}|xs i }|j                  dd||dœ¬«       	 |j                  |||¬«      }|j                  ||¬
«      S # t        $ r}| j                  ||¬	«      ‚d}~ww xY w)zDelete an evalrÝ  Nr"  rC  r½   r¬  r:  rn  rý   r†  )
Úasync_delete_eval_handlerrÅ   rG   rH   r‡   rL  r‰  r  r  Útransform_delete_eval_responserà  s                  rˆ   Údelete_eval_handlerz&BaseLLMHTTPHandler.delete_eval_handler³1  s  € ñ Ø×1Ñ1ØØ*CØ$7Ø-Ø'Ø+ØØØ-ð 2ó 
ð 
ð ˆ>¤¨F´KÔ!@Ü 1¸,È×HZÑHZÐ[gÐimÓHnÐ9oÔ pÑà &Ðà&Ò,¨"ˆà×ÑØØàØ"ñð 	ô 	
ð	Ø/×6Ñ6¸3ÈÐY`Ð6ÓaˆHð )×GÑGØ!Ø#ð Hó 
ð 	
øô ò 	Ø×$Ñ$ØØ 9ð %ó ð ûð	úrÄ  c
              ƒ   ó~  K  — |�t        |t        «      s3t        t        j                  |«      d|j                  dd«      i¬«      }
n|}
|xs i }|j                  dd||dœ¬«       	 |
j                  |||¬«      ƒ d{  –—† }|j                  ||¬	«      S 7 Œ# t        $ r}| j                  ||¬«      ‚d}~ww xY w­w)
zAsync delete an evalNr"  rd  r½   r¬  r:  rn  rý   r†  )rÅ   rF   rI   rÖ   r*  r‡   rL  r‰  r  r  rë  rã  s                 rˆ   rê  z,BaseLLMHTTPHandler.async_delete_eval_handlerë1  sð   è ø€ ð ˆ>¤¨FÔ4DÔ!EÜ!7Ü$×1Ñ1Ð2EÓFØ$ n×&8Ñ&8¸ÀtÓ&LÐMô"Ñð
 "(Ðà&Ò,¨"ˆà×ÑØØàØ"ñð 	ô 	
ð	Ø$6×$=Ñ$=À#ÈwÐ`gÐ$=Ó$h×hˆHð )×GÑGØ!Ø#ð Hó 
ð 	
ð iùÜò 	Ø×$Ñ$ØØ 9ð %ó ð ûð	ürÆ  r—   c                 ót  — |	r| j                  |||||||||
¬«	      S |�t        |t        «      st        d|j	                  dd«      i¬«      }n|}|xs i }|j                  dd||dœ¬«       	 |j                  ||i |¬«      }|j                  ||¬
«      S # t        $ r}| j                  ||¬	«      ‚d}~ww xY w)zCancel an evalrÝ  Nr"  rC  r½   r¬  r:  r{  rý   r†  )
Úasync_cancel_eval_handlerrÅ   rG   rH   r‡   rL  r  r  r  Útransform_cancel_eval_responserà  s                  rˆ   Úcancel_eval_handlerz&BaseLLMHTTPHandler.cancel_eval_handler2  s  € ñ Ø×1Ñ1ØØ*CØ$7Ø-Ø'Ø+ØØØ-ð 2ó 
ð 
ð ˆ>¤¨F´KÔ!@Ü 1¸,È×HZÑHZÐ[gÐimÓHnÐ9oÔ pÑà &Ðà&Ò,¨"ˆà×ÑØØàØ"ñð 	ô 	
ð	Ø/×4Ñ4¸ÀgÐTVÐ`gÐ4ÓhˆHð )×GÑGØ!Ø#ð Hó 
ð 	
øô ò 	Ø×$Ñ$ØØ 9ð %ó ð ûð	úó   Á.B Â	B7ÂB2Â2B7c
              ƒ   ó€  K  — |�t        |t        «      s3t        t        j                  |«      d|j                  dd«      i¬«      }
n|}
|xs i }|j                  dd||dœ¬«       	 |
j                  ||i |¬«      ƒ d{  –—† }|j                  ||¬	«      S 7 Œ# t        $ r}| j                  ||¬«      ‚d}~ww xY w­w)
zAsync cancel an evalNr"  rd  r½   r¬  r:  r{  rý   r†  )rÅ   rF   rI   rÖ   r*  r‡   rL  r  r  r  rð  rã  s                 rˆ   rï  z,BaseLLMHTTPHandler.async_cancel_eval_handlerP2  só   è ø€ ð ˆ>¤¨FÔ4DÔ!EÜ!7Ü$×1Ñ1Ð2EÓFØ$ n×&8Ñ&8¸ÀtÓ&LÐMô"Ñð
 "(Ðà&Ò,¨"ˆà×ÑØØàØ"ñð 	ô 	
ð	Ø$6×$;Ñ$;ÀÈWÐ[]ÐgnÐ$;Ó$o×oˆHð )×GÑGØ!Ø#ð Hó 
ð 	
ð pùÜò 	Ø×$Ñ$ØØ 9ð %ó ð ûð	üó<   ‚A%B>Á(B Â BÂB ÂB>ÂB Â	B;Â#B6Â6B;Â;B>r�   c                 ó˜  — |
r| j                  |||||||||	|¬«
      S |	�t        |	t        «      st        d|j	                  dd«      i¬«      }n|	}|xs i }|j                  |j	                  dd«      d|||dœ¬«       	 |j                  ||||¬	«      }|j                  ||¬«      S # t        $ r}| j                  ||¬
«      ‚d}~ww xY w)zCreate a runrÉ  Nr"  rC  rP  r½   r8  r:  r{  rý   r†  )
Úasync_create_run_handlerrÅ   rG   rH   r‡   rL  r  r  r  Útransform_create_run_responserÍ  s                   rˆ   Úcreate_run_handlerz%BaseLLMHTTPHandler.create_run_handler�2  s!  € ñ Ø×0Ñ0ØØ)Ø*CØ$7Ø-Ø'Ø+ØØØ-ð 1ó ð ð ˆ>¤¨F´KÔ!@Ü 1¸,È×HZÑHZÐ[gÐimÓHnÐ9oÔ pÑà &Ðà&Ò,¨"ˆà×ÑØ×"Ñ" 6¨2Ó.Øà'3ØØ"ñð 	ô 	
ð	Ø/×4Ñ4¸ÀgÐT`ÐjqÐ4ÓrˆHð )×FÑFØ!Ø#ð Gó 
ð 	
øô ò 	Ø×$Ñ$ØØ 9ð %ó ð ûð	úrÐ  c              ƒ   ó¢  K  — |	�t        |	t        «      s3t        t        j                  |«      d|j                  dd«      i¬«      }n|	}|xs i }|j                  |j                  dd«      d|||dœ¬«       	 |j                  ||||¬«      ƒ d{  –—† }|j                  ||¬
«      S 7 Œ# t        $ r}| j                  ||¬	«      ‚d}~ww xY w­w)zAsync create a runNr"  rd  rP  r½   r8  r:  r{  rý   r†  )rÅ   rF   rI   rÖ   r*  r‡   rL  r  r  r  r÷  rÒ  s                  rˆ   rö  z+BaseLLMHTTPHandler.async_create_run_handler¼2  s  è ø€ ð ˆ>¤¨FÔ4DÔ!EÜ!7Ü$×1Ñ1Ð2EÓFØ$ n×&8Ñ&8¸ÀtÓ&LÐMô"Ñð
 "(Ðà&Ò,¨"ˆà×ÑØ×"Ñ" 6¨2Ó.Øà'3ØØ"ñð 	ô 	
ð	Ø/×4Ñ4¸ÀgÐT`ÐjqÐ4Ór×rˆHð )×FÑFØ!Ø#ð Gó 
ð 	
ð sùÜò 	Ø×$Ñ$ØØ 9ð %ó ð ûð	ürÓ  rœ   c                 óv  — |
r| j                  |||||||||	|¬«
      S |	�t        |	t        «      st        d|j	                  dd«      i¬«      }n|	}|xs i }|j                  dd|||dœ¬«       	 |j	                  |||¬«      }|j                  ||¬
«      S # t        $ r}| j                  ||¬	«      ‚d}~ww xY w)z	List runsrÕ  Nr"  rC  r½   rÑ  r:  r‘  rý   r†  )	Úasync_list_runs_handlerrÅ   rG   rH   r‡   rL  r  r  Útransform_list_runs_responserØ  s                   rˆ   Úlist_runs_handlerz$BaseLLMHTTPHandler.list_runs_handlerë2  s  € ñ Ø×/Ñ/ØØ)Ø*CØ$7Ø-Ø'Ø+ØØØ-ð 0ó ð ð ˆ>¤¨F´KÔ!@Ü 1¸,È×HZÑHZÐ[gÐimÓHnÐ9oÔ pÑà &Ðà&Ò,¨"ˆà×ÑØØàØ"Ø&ñð 	ô 	
ð	Ø/×3Ñ3¸ÀWÐUaÐ3ÓbˆHð )×EÑEØ!Ø#ð Fó 
ð 	
øô ò 	Ø×$Ñ$ØØ 9ð %ó ð ûð	úr³  c              ƒ   ó€  K  — |	�t        |	t        «      s3t        t        j                  |«      d|j                  dd«      i¬«      }n|	}|xs i }|j                  dd|||dœ¬«       	 |j                  |||¬«      ƒ d{  –—† }|j                  ||¬	«      S 7 Œ# t        $ r}| j                  ||¬«      ‚d}~ww xY w­w)
zAsync list runsNr"  rd  r½   rÑ  r:  r‘  rý   r†  )
rÅ   rF   rI   rÖ   r*  r‡   rL  r  r  rü  rÛ  s                  rˆ   rû  z*BaseLLMHTTPHandler.async_list_runs_handler&3  só   è ø€ ð ˆ>¤¨FÔ4DÔ!EÜ!7Ü$×1Ñ1Ð2EÓFØ$ n×&8Ñ&8¸ÀtÓ&LÐMô"Ñð
 "(Ðà&Ò,¨"ˆà×ÑØØàØ"Ø&ñð 	ô 	
ð	Ø$6×$:Ñ$:¸sÈGÐ\hÐ$:Ó$i×iˆHð )×EÑEØ!Ø#ð Fó 
ð 	
ð jùÜò 	Ø×$Ñ$ØØ 9ð %ó ð ûð	ürµ  c                 óp  — |	r| j                  |||||||||
¬«	      S |�t        |t        «      st        d|j	                  dd«      i¬«      }n|}|xs i }|j                  dd||dœ¬«       	 |j	                  ||¬«      }|j                  ||¬
«      S # t        $ r}| j                  ||¬	«      ‚d}~ww xY w)z	Get a runrÝ  Nr"  rC  r½   r¬  r:  rË  rý   r†  )	Úasync_get_run_handlerrÅ   rG   rH   r‡   rL  r  r  Útransform_get_run_responserà  s                  rˆ   Úget_run_handlerz"BaseLLMHTTPHandler.get_run_handlerU3  s  € ñ Ø×-Ñ-ØØ*CØ$7Ø-Ø'Ø+ØØØ-ð .ó 
ð 
ð ˆ>¤¨F´KÔ!@Ü 1¸,È×HZÑHZÐ[gÐimÓHnÐ9oÔ pÑà &Ðà&Ò,¨"ˆà×ÑØØàØ"ñð 	ô 	
ð	Ø/×3Ñ3¸ÀWÐ3ÓMˆHð )×CÑCØ!Ø#ð Dó 
ð 	
øô ò 	Ø×$Ñ$ØØ 9ð %ó ð ûð	úr¼  c
              ƒ   ó|  K  — |�t        |t        «      s3t        t        j                  |«      d|j                  dd«      i¬«      }
n|}
|xs i }|j                  dd||dœ¬«       	 |
j                  ||¬«      ƒ d{  –—† }|j                  ||¬	«      S 7 Œ# t        $ r}| j                  ||¬«      ‚d}~ww xY w­w)
zAsync get a runNr"  rd  r½   r¬  r:  rË  rý   r†  )
rÅ   rF   rI   rÖ   r*  r‡   rL  r  r  r  rã  s                 rˆ   r   z(BaseLLMHTTPHandler.async_get_run_handler�3  sí   è ø€ ð ˆ>¤¨FÔ4DÔ!EÜ!7Ü$×1Ñ1Ð2EÓFØ$ n×&8Ñ&8¸ÀtÓ&LÐMô"Ñð
 "(Ðà&Ò,¨"ˆà×ÑØØàØ"ñð 	ô 	
ð	Ø$6×$:Ñ$:¸sÈGÐ$:Ó$T×TˆHð )×CÑCØ!Ø#ð Dó 
ð 	
ð UùÜò 	Ø×$Ñ$ØØ 9ð %ó ð ûð	ür¿  r˜   c                 ót  — |	r| j                  |||||||||
¬«	      S |�t        |t        «      st        d|j	                  dd«      i¬«      }n|}|xs i }|j                  dd||dœ¬«       	 |j                  ||i |¬«      }|j                  ||¬
«      S # t        $ r}| j                  ||¬	«      ‚d}~ww xY w)zCancel a runrÝ  Nr"  rC  r½   r¬  r:  r{  rý   r†  )
Úasync_cancel_run_handlerrÅ   rG   rH   r‡   rL  r  r  r  Útransform_cancel_run_responserà  s                  rˆ   Úcancel_run_handlerz%BaseLLMHTTPHandler.cancel_run_handlerº3  s  € ñ Ø×0Ñ0ØØ*CØ$7Ø-Ø'Ø+ØØØ-ð 1ó 
ð 
ð ˆ>¤¨F´KÔ!@Ü 1¸,È×HZÑHZÐ[gÐimÓHnÐ9oÔ pÑà &Ðà&Ò,¨"ˆà×ÑØØàØ"ñð 	ô 	
ð	Ø/×4Ñ4¸ÀgÐTVÐ`gÐ4ÓhˆHð )×FÑFØ!Ø#ð Gó 
ð 	
øô ò 	Ø×$Ñ$ØØ 9ð %ó ð ûð	úrò  c
              ƒ   ó€  K  — |�t        |t        «      s3t        t        j                  |«      d|j                  dd«      i¬«      }
n|}
|xs i }|j                  dd||dœ¬«       	 |
j                  ||i |¬«      ƒ d{  –—† }|j                  ||¬	«      S 7 Œ# t        $ r}| j                  ||¬«      ‚d}~ww xY w­w)
zAsync cancel a runNr"  rd  r½   r¬  r:  r{  rý   r†  )rÅ   rF   rI   rÖ   r*  r‡   rL  r  r  r  r  rã  s                 rˆ   r  z+BaseLLMHTTPHandler.async_cancel_run_handlerò3  só   è ø€ ð ˆ>¤¨FÔ4DÔ!EÜ!7Ü$×1Ñ1Ð2EÓFØ$ n×&8Ñ&8¸ÀtÓ&LÐMô"Ñð
 "(Ðà&Ò,¨"ˆà×ÑØØàØ"ñð 	ô 	
ð	Ø$6×$;Ñ$;ÀÈWÐ[]ÐgnÐ$;Ó$o×oˆHð )×FÑFØ!Ø#ð Gó 
ð 	
ð pùÜò 	Ø×$Ñ$ØØ 9ð %ó ð ûð	ürô  rž   c                 ór  — |	r| j                  |||||||||
¬«	      S |�t        |t        «      st        d|j	                  dd«      i¬«      }n|}|xs i }|j                  dd||dœ¬«       	 |j                  |||¬«      }|j                  ||¬
«      S # t        $ r}| j                  ||¬	«      ‚d}~ww xY w)zDelete a runrÝ  Nr"  rC  r½   r¬  r:  rn  rý   r†  )
Úasync_delete_run_handlerrÅ   rG   rH   r‡   rL  r‰  r  r  Útransform_delete_run_responserà  s                  rˆ   Údelete_run_handlerz%BaseLLMHTTPHandler.delete_run_handler4  s  € ñ Ø×0Ñ0ØØ*CØ$7Ø-Ø'Ø+ØØØ-ð 1ó 
ð 
ð ˆ>¤¨F´KÔ!@Ü 1¸,È×HZÑHZÐ[gÐimÓHnÐ9oÔ pÑà &Ðà&Ò,¨"ˆà×ÑØØàØ"ñð 	ô 	
ð	Ø/×6Ñ6¸3ÈÐY`Ð6ÓaˆHð )×FÑFØ!Ø#ð Gó 
ð 	
øô ò 	Ø×$Ñ$ØØ 9ð %ó ð ûð	úrÄ  c
              ƒ   ó~  K  — |�t        |t        «      s3t        t        j                  |«      d|j                  dd«      i¬«      }
n|}
|xs i }|j                  dd||dœ¬«       	 |
j                  |||¬«      ƒ d{  –—† }|j                  ||¬	«      S 7 Œ# t        $ r}| j                  ||¬«      ‚d}~ww xY w­w)
zAsync delete a runNr"  rd  r½   r¬  r:  rn  rý   r†  )rÅ   rF   rI   rÖ   r*  r‡   rL  r‰  r  r  r  rã  s                 rˆ   r
  z+BaseLLMHTTPHandler.async_delete_run_handlerW4  sð   è ø€ ð ˆ>¤¨FÔ4DÔ!EÜ!7Ü$×1Ñ1Ð2EÓFØ$ n×&8Ñ&8¸ÀtÓ&LÐMô"Ñð
 "(Ðà&Ò,¨"ˆà×ÑØØàØ"ñð 	ô 	
ð	Ø$6×$=Ñ$=À#ÈwÐ`gÐ$=Ó$h×hˆHð )×FÑFØ!Ø#ð Gó 
ð 	
ð iùÜò 	Ø×$Ñ$ØØ 9ð %ó ð ûð	ürÆ  )FN)NNFNN)FFNNNNN)FNF)FNNN)NNFN)NNNN)FNNNNN)NNN)NFNNN)NFNNrÌ   )NNNNFN)NNNFN)NNNNFFNN)NNNNFNN)NNNNNFN)NNNNNN)NNNNé   rž  NNNFN)
NNNNr  rž  NNNN)rª  )FNNr©  )r5  )NNNNNNN)NNNNN)NNNFFN)NNNFFNN)NNNFNN)NéX  FN)Nr  N)NNNNNr  FN)NNNNNr  N)NNr  FN)NNr  N)NNNNF)NNNFNFNN)NNF(  r¦   r§   r¨   rF   r/   r©   r«   r¬   r­   r®   rõ  r&  rµ   rŸ  r  rG   r  r}   rÕ   r   r/  r   rS  rØ   r¯   rR  rO  ÚHeadersra  rN  rk   ry  r1   rk  r<   rg   r„  r‚  rl   r+   r’  rn   r�  rE  r   r§  r¥  r8   rµ  r¸  r   r9   r¼  rÁ  rÀ  r>   r?   rÔ  rÎ  r*   ri   rè  Ústaticmethodrõ  rZ   r   r3  r!  rC  r  r   rZ  rc   rb  r=   re   rJ   ry  rq  rh   rŒ  r�  r–  r’  r   r¤  r¡  r¬  r_   r3   rb   rÕ  r   rÇ  rè  r   rß  rä  r4   rÈ  r×  rÿ  r  rû  r  r  r  r  r  r"  r  r+  r(  r5  r2  r>  r;  rt  rJ  r  rÍ   r%  rV  rT  rj  rp  rr  r{  rV   r”  r˜  r—  rK   r  r§  rŸ   r7  r6  r,  r  r6   r7   rC   rD   r5   r.   rE   rA   r@   r2   r  rf   rÚ  r   rå  r  rí  r;   r  r:   r$  r(  r"  r=  r`  r|   ro  rj  r{  rx  rz   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  rx   ry   r'  r*  rv   rw   r0  r2  r8  r<  r>  r@  rF  rH  rJ  rL  rp   rt   rU  rW  rr   rs   r^  r`  rg  rm  ro   rr  rt  ru   rz  r|  rq   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ñ   &  s+~  „ ð Ø)-ò0à,ð0ð $ð0ð ð	0ð
 ð0ð ð0ð ˜Ÿ™Ñ&ð0ð ð0ð 'ð0ð ð0ð   $™,ð0ð 
�‰ó0ðx Ø)-ò0à&ð0ð $ð0ð ð	0ð
 ð0ð ð0ð ˜Ÿ™Ñ&ð0ð ð0ð 'ð0ð ð0ð   $™,ð0ð 
�‰ó0ðB #Ø*.ØØ)-Ø48ò'GRà ðGRð $ðGRð ð	GRð
 ðGRð ðGRð ˜Ÿ™Ñ&ðGRð ðGRð &ðGRð 'ðGRð ðGRð ðGRð ðGRð -ðGRð �t‘ðGRð  ! 4Ñ'ð!GRð" ð#GRð$   $™,ð%GRð& ! Ñ1ó'GRðl $Ø!Ø"Ø)-Ø8<Ø-1Ø48ò'W
àðW
ð ðW
ð ˜‘*ð	W
ð
 !ðW
ð &ðW
ð -ðW
ð 'ðW
ð ðW
ð ˜Ÿ™Ñ&ðW
ð ðW
ð ðW
ð �t‘ðW
ð ðW
ð �t‘ðW
ð  �c˜3�h‘ $Ñ&ð!W
ð" Ð.Ñ.°Ñ5ð#W
ð$ $ dÑ*ð%W
ð& ! Ñ1ó'W
ðN "Ø%)Øò!I9à#ðI9ð ðI9ð ð	I9ð
 ðI9ð   $™,ðI9ð ðI9ð ðI9ð ðI9ð ðI9ð ðI9ð ˜Ÿ™Ñ&ðI9ð ðI9ð ˜dÑ"ðI9ð  ð!I9ð" 
ˆv�tˆ|Ñ	ó#I9ðp "Ø*.Ø!%Ø)-ò!8àð8ð ð8ð ð	8ð
 !ð8ð ð8ð $ð8ð ˜Ÿ™Ñ&ð8ð 'ð8ð ð8ð ð8ð ð8ð ð8ð ! 4Ñ'ð8ð ˜$‘;ð8ð    $™,ó!8ðN "Ø*.Ø!%Ø)-ò!L3àðL3ð !ðL3ð $ð	L3ð
 ðL3ð ðL3ð ðL3ð ðL3ð 'ðL3ð ˜Ÿ™Ñ&ðL3ð ðL3ð ðL3ð ðL3ð ! 4Ñ'ðL3ð ˜$‘;ðL3ð    $™,ð!L3ð" 
ˆv�u—}‘}Ð$Ñ	%ó#L3ð\à�3˜�;Ñðð $ðð ð	ð
 
ˆc�6ˆkÑ	óð< #Ø8<Ø"'Ø)-ò}
àð}
ð ð}
ð ð	}
ð
 !ð}
ð 'ð}
ð ˜‘*ð}
ð ð}
ð ð}
ð *ð}
ð �t‘ð}
ð Ð.Ñ.°Ñ5ð}
ð ˜4‘Kð}
ð �c˜3�h‘ $Ñ&ð}
ð 
ó}
ðV #Ø04Ø8<Ø$(ò4
àð4
ð ð4
ð ð	4
ð
 ð4
ð !ð4
ð -ð4
ð *ð4
ð 'ð4
ð ð4
ð ð4
ð �t‘ð4
ð ˜Ÿ™Ñ&¨Ñ-ð4
ð Ð.Ñ.°Ñ5ð4
ð ˜T‘\ð4
ð  
ó!4
ð~  Ø,0Ø"Ø#Ø8<Ø04òY
àðY
ð !ðY
ð 'ð	Y
ð
 *ðY
ð !%ðY
ð ˜Ÿ™Ñ&¨Ñ-ðY
ð 'ðY
ð ðY
ð �c˜6�kÑ" TÑ)ðY
ð �t‘ðY
ð ˜‘*ðY
ð Ð.Ñ.°Ñ5ðY
ð ˜S #˜X™¨Ñ-ðY
ð 
óY
ðJ #Ø04Ø8<ò$
àð$
ð ð$
ð !ð	$
ð
 *ð$
ð 'ð$
ð 'ð$
ð ð$
ð ð$
ð �t‘ð$
ð ˜Ÿ™Ñ&¨Ñ-ð$
ð Ð.Ñ.°Ñ5ð$
ð 
ó$
ðLB2àðB2ð ðB2ð ð	B2ð
 ðB2ð 'ðB2ð �t‘ðB2ð ˜‘*ðB2ð �c˜6�kÑ" TÑ)ðB2ð 6ðB2ð 
ˆt�S˜$ ™,¨Ñ-¨t°d©{Ð:Ñ	;óB2ðHà5ðð ðð —.‘.ð	ð
 .ðð 'ðð ðð �t‘ðð 
óðT 9=Ø$Ø,0Ø?CØ48ò#T
àðT
ð ðT
ð ð	T
ð
 ðT
ð .ðT
ð ðT
ð ðT
ð 'ðT
ð �t‘ðT
ð ˜‘*ðT
ð !ðT
ð Ð.Ñ.°Ñ5ðT
ð ðT
ð �c˜6�kÑ" TÑ)ðT
ð  6¸Ñ<ð!T
ð" ! Ñ1ð#T
ð$ 
 ¨6°6Ð;PÐ+PÑ!QÑ	Qó%T
ðF 9=Ø,0Ø?CØ48ò!F
àðF
ð ðF
ð ð	F
ð
 ðF
ð .ðF
ð ðF
ð ðF
ð 'ðF
ð �t‘ðF
ð ˜‘*ðF
ð !ðF
ð Ð.Ñ.°Ñ5ðF
ð �c˜6�kÑ" TÑ)ðF
ð 6¸Ñ<ðF
ð  ! Ñ1ð!F
ð" 
ó#F
ðP@1àð@1ð �s˜C�x‘.ð@1ð ð	@1ð
 'ð@1ð �t‘ð@1ð ˜‘*ð@1ð �c˜6�kÑ" TÑ)ð@1ð 'ð@1ð ð@1ð 
ˆt�C˜�KÑ  # t¨C°¨KÑ'8¸$Ð>Ñ	?ó@1ðD@1àð@1ð �s˜C�x‘.ð@1ð ð	@1ð
 'ð@1ð �t‘ð@1ð ˜‘*ð@1ð �c˜6�kÑ" TÑ)ð@1ð 'ð@1ð ð@1ð 
ˆt�C˜�KÑ  # t¨C°¨KÑ'8¸$Ð>Ñ	?ó@1ðD
à&ð
ð ð
ð —.‘.ð	
ð
 'ð
ð !  f Ñ-ð
ð 
ó
ð4 9=ØØ,0Ø04Ø&*òJ
àðJ
ð �s˜C�x‘.ðJ
ð ð	J
ð
 ˜Ÿ™Ñ&ðJ
ð 'ðJ
ð �t‘ðJ
ð ˜‘*ðJ
ð !ðJ
ð Ð.Ñ.°Ñ5ðJ
ð ðJ
ð �c˜6�kÑ" TÑ)ðJ
ð '¨Ñ-ðJ
ð ˜t™ðJ
ð 
�y ¨°Ð!<Ñ=Ñ	=óJ
ðl 9=Ø,0Ø04Ø&*ò=
àð=
ð �s˜C�x‘.ð=
ð ð	=
ð
 ˜Ÿ™Ñ&ð=
ð 'ð=
ð �t‘ð=
ð ˜‘*ð=
ð !ð=
ð Ð.Ñ.°Ñ5ð=
ð �c˜6�kÑ" TÑ)ð=
ð '¨Ñ-ð=
ð ˜t™ð=
ð 
ó=
ðP 9=ØØ,0Ø37òh
à�T˜#‘Y‰ðh
ð ðh
ð ˜Ÿ™Ñ&ð	h
ð
 'ðh
ð �t‘ðh
ð ˜‘*ðh
ð !ðh
ð Ð.Ñ.°Ñ5ðh
ð ðh
ð �c˜6�kÑ" TÑ)ðh
ð *¨DÑ0ðh
ð 
˜) F¨F°NÐ$BÑCÑ	Cóh
ðf 9=Ø,0Ø37òa
à�T˜#‘Y‰ða
ð ða
ð ˜Ÿ™Ñ&ð	a
ð
 'ða
ð �t‘ða
ð ˜‘*ða
ð !ða
ð Ð.Ñ.°Ñ5ða
ð �c˜6�kÑ" TÑ)ða
ð *¨DÑ0ða
ð 
óa
ðd 15ò=dà,ð=dð ð=dð ð	=dð  ™+¨Ñ,ð=dð ð=dð ð=dð 'ð=dð 5ð=dð -ð=dð �t‘ð=dð ð=dð ˜Ÿ™Ñ&¨Ñ-ð=dð  
�‰ó!=dð~ ð
Ø,ð
àð
ð !ð
ð 
�—‘Ñ	 Ñ	%ò	
ó ð
ðD +/Ø26Ø"Ø#Ø#Ø(,òK
àðK
ð �t‘*ðK
ð -Hð	K
ð
 59ðK
ð !ðK
ð -ðK
ð 'ðK
ð ! 4Ñ'ðK
ð ˜C ˜KÑ(¨4Ñ/ðK
ð �t‘ðK
ð ˜‘*ðK
ð �t‘ðK
ð �S˜#�X‘ Ñ%ðK
ð 
# ]Ñ	2óK
ðZ"
ð 4ð"
ð ð	"
ð
 �t‘*ð"
ð -Hð"
ð 59ð"
ð 'ð"
ð !ð"
ð �t‘ð"
ð ð"
ð 
# ]Ñ	2ó"
ðH ð[˜tò [ó ð[ð ð+à ð+ð -ð+ð ð	+ð
 ð+ð �t‘ð+ð ˜‘*ð+ð ð+ð ð+ð ˜Ÿ™Ñ&¨Ñ-ð+ð 
# TÑ	)ò+ó ð+ðZ ð
Ø0ð
à	-ò
ó ð
ð8 9=Ø"Ø#Ø#Ø+/ò#Yàð#Yð �t‘*ð#Yð -Hð	#Yð
 59ð#Yð !ð#Yð ð#Yð -ð#Yð 'ð#Yð Ð.Ñ.°Ñ5ð#Yð �t‘ð#Yð ˜‘*ð#Yð �t‘ð#Yð �S˜&�[Ñ! DÑ(ð#Yð 
# Y¨v°vÐ?XÐ[hÑ?hÐ/hÑ%iÑ	ió#YðJI
ð ðI
ð Ð'Ñ'ð	I
ð
 !ðI
ð /3°3¸°;Ñ.?ðI
ð -ðI
ð 'ðI
ð 
ØØÐ Ñ ØØˆS�&ˆ[ÑØð		ñ
óI
ðh 37Ø26Ø04Ø8<ØØ!Ø59Ø48ò!T àðT ð Ð'Ñ'ðT ð (>ð	T ð
 /3°3¸°8©nðT ð !ðT ð -ðT ð 'ðT ð ˜C ˜KÑ(¨4Ñ/ðT ð ˜C ˜KÑ(¨4Ñ/ðT ð ˜Ÿ™Ñ&¨Ñ-ðT ð Ð.Ñ.°Ñ5ðT ð ðT ð ðT ð ˜s F˜{Ñ+¨dÑ2ðT ð  ! Ñ1ð!T ð$ 	Ø
+ñ	,à
�F˜FÐ$8Ð;\Ñ$\Ð\Ñ
]ñ	^ó%T ð~ 37Ø26Ø04Ø8<Ø!Ø59Ø48òyàðyð Ð'Ñ'ðyð (>ð	yð
 /3ðyð !ðyð -ðyð 'ðyð ˜C ˜KÑ(¨4Ñ/ðyð ˜C ˜KÑ(¨4Ñ/ðyð ˜Ÿ™Ñ&¨Ñ-ðyð Ð.Ñ.°Ñ5ðyð ðyð ˜s F˜{Ñ+¨dÑ2ðyð ! Ñ1ðyð  
Ð AÑ	Aó!yðD 37Ø/3Ø04Ø8<ØØ48òS
àðS
ð (>ðS
ð -ð	S
ð
 'ðS
ð ! 4™ZðS
ð ˜C ˜KÑ(¨4Ñ/ðS
ð ˜˜f˜Ñ%¨Ñ,ðS
ð ˜Ÿ™Ñ&¨Ñ-ðS
ð Ð.Ñ.°Ñ5ðS
ð ðS
ð ! Ñ1ðS
ð 
óS
ðx 37Ø/3Ø04Ø8<ØØ48òX
àðX
ð (>ðX
ð -ð	X
ð
 'ðX
ð ! 4™ZðX
ð ˜C ˜KÑ(¨4Ñ/ðX
ð ˜˜f˜Ñ%¨Ñ,ðX
ð ˜Ÿ™Ñ&¨Ñ-ðX
ð Ð.Ñ.°Ñ5ðX
ð ðX
ð ! Ñ1ðX
ð 
 	¨&°&Ð:NÐ*NÑ OÑ	OóX
ð@ +/Ø26Ø/3Ø04Ø8<ØØ48òO
àðO
ð (>ðO
ð -ð	O
ð
 'ðO
ð ! 4™ZðO
ð ˜C ˜KÑ(¨4Ñ/ðO
ð ˜˜f˜Ñ%¨Ñ,ðO
ð ˜Ÿ™Ñ&¨Ñ-ðO
ð Ð.Ñ.°Ñ5ðO
ð ðO
ð ! Ñ1ðO
ð 
 	¨&°&Ð:NÐ*NÑ OÑ	OóO
ðn +/Ø26Ø/3Ø04Ø8<Ø48òH
àðH
ð (>ðH
ð -ð	H
ð
 'ðH
ð ! 4™ZðH
ð ˜C ˜KÑ(¨4Ñ/ðH
ð ˜˜f˜Ñ%¨Ñ,ðH
ð ˜Ÿ™Ñ&¨Ñ-ðH
ð Ð.Ñ.°Ñ5ðH
ð ! Ñ1ðH
ð 
óH
ðf +/Ø Ø!Ø$(ØØ(.Ø26Ø04Ø8<ØØ48ò!T
àðT
ð (>ðT
ð -ð	T
ð
 'ðT
ð ! 4™ZðT
ð �T‰zðT
ð �d‘
ðT
ð �c‘˜TÑ!ðT
ð ðT
ð �}Ñ%ðT
ð ˜C ˜KÑ(¨4Ñ/ðT
ð ˜Ÿ™Ñ&¨Ñ-ðT
ð Ð.Ñ.°Ñ5ðT
ð ðT
ð  ! Ñ1ð!T
ð" 
�	˜& &¨$Ð.Ñ/Ñ	/ó#T
ðx +/Ø Ø!Ø$(ØØ(.Ø26Ø04Ø8<Ø48òI
àðI
ð (>ðI
ð -ð	I
ð
 'ðI
ð ! 4™ZðI
ð �T‰zðI
ð �d‘
ðI
ð �c‘˜TÑ!ðI
ð ðI
ð �}Ñ%ðI
ð ˜C ˜KÑ(¨4Ñ/ðI
ð ˜Ÿ™Ñ&¨Ñ-ðI
ð Ð.Ñ.°Ñ5ðI
ð ! Ñ1ðI
ð  
ó!I
ð^ +ò	"à—.‘.ð"ð !ð"ð ð	"ð
 
ˆs�T‰z˜4 $™;Ð&Ñ	'ó"ðR  Ø8<Ø04òv
à+ðv
ð ðv
ð )ð	v
ð
 ðv
ð ˜‘*ðv
ð �t‘ðv
ð 'ðv
ð ðv
ð Ð.Ñ.°Ñ5ðv
ð ˜Ÿ™Ñ&¨Ñ-ðv
ð 
˜I f¨fÐ6FÐ&FÑGÑ	Góv
ð@ 9=Ø04òV
à" 5¨#¨tÐ5NÐ#NÑOðV
ð ðV
ð )ð	V
ð
 ðV
ð ðV
ð 'ðV
ð Ð.Ñ.°Ñ5ðV
ð ˜Ÿ™Ñ&¨Ñ-óV
ðv  /Ðàð 8¨E¡?ð Àð ÈÐQVÉò ó ððT°·±ð TÀDó Tð
ð ðð ð	ð
 ˜3 ˜8‘nðð *ðð ðð ˜Ÿ™Ñ&¨Ñ-ðð 
�‰óð*!ð !ð!ð ð	!ð
 ˜3 ˜8‘nð!ð *ð!ð ð!ð ˜Ÿ™Ñ&¨Ñ-ð!ð 
�‰ó!ðX  ØBFØ04Ø òn
à/ðn
ð ðn
ð -ð	n
ð
 ðn
ð ˜‘*ðn
ð �t‘ðn
ð )ðn
ð ðn
ð Ð7Ñ8¸4Ñ?ðn
ð ˜Ÿ™Ñ&¨Ñ-ðn
ð �T‰zðn
ð 
ˆ~˜y¨°¸Ð)GÑHÐHÑ	Ión
ðr  ØBFØ04Ø òT
àðT
ð ðT
ð -ð	T
ð
 ðT
ð ˜‘*ðT
ð �t‘ðT
ð )ðT
ð ðT
ð Ð7Ñ8¸4Ñ?ðT
ð ˜Ÿ™Ñ&¨Ñ-ðT
ð �T‰zðT
ð 
ˆ~˜y¨°¸Ð)GÑHÐHÑ	IóT
ð| CGØ04Ø<@Ø òM
à" S™[¨4Ñ/ðM
ð ðM
ð -ð	M
ð
 ðM
ð ðM
ð )ðM
ð Ð7Ñ8¸4Ñ?ðM
ð ˜Ÿ™Ñ&¨Ñ-ðM
ð $Ð$8Ñ9ðM
ð �T‰zóM
ðn CGØ04Ø#Ø òL
à" S™[¨4Ñ/ðL
ð ðL
ð -ð	L
ð
 ðL
ð ˜‘*ðL
ð )ðL
ð Ð7Ñ8¸4Ñ?ðL
ð ˜Ÿ™Ñ&¨Ñ-ðL
ð ˜‘*ðL
ð �T‰zóL
ðj 37Ø/3Ø04Ø8<ØØ48òN
àðN
ð (>ðN
ð -ð	N
ð
 'ðN
ð ! 4™ZðN
ð ˜C ˜KÑ(¨4Ñ/ðN
ð ˜˜f˜Ñ%¨Ñ,ðN
ð ˜Ÿ™Ñ&¨Ñ-ðN
ð Ð.Ñ.°Ñ5ðN
ð ðN
ð ! Ñ1ðN
ð 
 	¨&°&Ð:NÐ*NÑ OÑ	OóN
ðn 37Ø/3Ø04Ø8<ØØ48òI
àðI
ð (>ðI
ð -ð	I
ð
 'ðI
ð ! 4™ZðI
ð ˜C ˜KÑ(¨4Ñ/ðI
ð ˜˜f˜Ñ%¨Ñ,ðI
ð ˜Ÿ™Ñ&¨Ñ-ðI
ð Ð.Ñ.°Ñ5ðI
ð ðI
ð ! Ñ1ðI
ð 
óI
ðh 37Ø/3Ø04Ø8<ØØ48òa
àða
ð �SÐ.Ð.Ñ/ða
ð (>ð	a
ð
 /3ða
ð -ða
ð 'ða
ð ! 4™Zða
ð ˜C ˜KÑ(¨4Ñ/ða
ð ˜˜f˜Ñ%¨Ñ,ða
ð ˜Ÿ™Ñ&¨Ñ-ða
ð Ð.Ñ.°Ñ5ða
ð ða
ð ! Ñ1ða
ð 
 	¨&°&Ð:NÐ*NÑ OÑ	Oóa
ðX 37Ø/3Ø04Ø8<ØØ48òZ
àðZ
ð �SÐ.Ð.Ñ/ðZ
ð (>ð	Z
ð
 /3ðZ
ð -ðZ
ð 'ðZ
ð ! 4™ZðZ
ð ˜C ˜KÑ(¨4Ñ/ðZ
ð ˜˜f˜Ñ%¨Ñ,ðZ
ð ˜Ÿ™Ñ&¨Ñ-ðZ
ð Ð.Ñ.°Ñ5ðZ
ð ðZ
ð ! Ñ1ðZ
ð 
óZ
ðF  Ø8<Ø04òB
àðB
ð )ðB
ð ð	B
ð
 ðB
ð 'ðB
ð ðB
ð Ð.Ñ.°Ñ5ðB
ð ˜Ÿ™Ñ&¨Ñ-ðB
ð 
˜I f¨fÐ6FÐ&FÑGÑ	GóB
ðV 9=Ø04ò6
àð6
ð )ð6
ð ð	6
ð
 ð6
ð 'ð6
ð Ð.Ñ.°Ñ5ð6
ð ˜Ÿ™Ñ&¨Ñ-ð6
ð 
ó6
ð~  Ø8<Ø04òB
àðB
ð )ðB
ð ð	B
ð
 ðB
ð 'ðB
ð ðB
ð Ð.Ñ.°Ñ5ðB
ð ˜Ÿ™Ñ&¨Ñ-ðB
ð 
ˆ}˜i¨°¸Ð(EÑFÐFÑ	GóB
ðV 9=Ø04ò6
àð6
ð )ð6
ð ð	6
ð
 ð6
ð 'ð6
ð Ð.Ñ.°Ñ5ð6
ð ˜Ÿ™Ñ&¨Ñ-ð6
ð 
ó6
ð~  Ø8<Ø04òB
à�t‘ðB
ð )ðB
ð ð	B
ð
 ðB
ð 'ðB
ð ðB
ð Ð.Ñ.°Ñ5ðB
ð ˜Ÿ™Ñ&¨Ñ-ðB
ð 
ÐÑ	 )¨F°F¸DÐAQÑ<RÐ,RÑ"SÑ	SóB
ðV 9=Ø04ò6
à�t‘ð6
ð )ð6
ð ð	6
ð
 ð6
ð 'ð6
ð Ð.Ñ.°Ñ5ð6
ð ˜Ÿ™Ñ&¨Ñ-ð6
ð 
ÐÑ	ó6
ð~  Ø8<Ø04òI
à2ðI
ð )ðI
ð ð	I
ð
 ðI
ð 'ðI
ð ðI
ð Ð.Ñ.°Ñ5ðI
ð ˜Ÿ™Ñ&¨Ñ-ðI
ð 
Ð+¨Y°v¸vÐGcÐ7cÑ-dÐdÑ	eóI
ðd 9=Ø04ò=
à2ð=
ð )ð=
ð ð	=
ð
 ð=
ð 'ð=
ð Ð.Ñ.°Ñ5ð=
ð ˜Ÿ™Ñ&¨Ñ-ð=
ð 
&ó=
ð~àðð ðð ð	ð
 
ˆt�TˆzÑ	óð ð.¨4ð .°E¸#¸sÀDÈÁIÐ:MÑ4Nò .ó ð.ð ðÐ2Cð Èò ó ðð: ð
Ð8Ið 
ÐRXð 
Ð]fÐgjÑ]kò 
ó ð
ð ðØðà˜3‘iðð ðð ð	ð
 ðð 
òó ðð0 ð¨&ð °Sò ó ðð ð°fð ÀÀyÐQTÁ~ÐW`ÐadÑWeÐGeÑAfò ó ðð& ð2¨&ð 2¸yÈ¹~ð 2Ð^gÐhkÑ^lð 2Ðquò 2ó ð2ð  ðB¸ð BÈCð BÐTXò Bó ðBð$ ð °Vð  Èð  ÐTZò  ó ð ð\ Ø-1òOàðOð ðOð �t‘*ð	Oð
 59ðOð )ðOð ðOð ðOð ðOð ˜3‘iðOð ðOð ðOð ˜>Ñ*ðOð 
# ]°6Ñ%:Ñ	:óOðx .2òJàðJð ðJð /3ð	Jð
 )ðJð ðJð ðJð ðJð ˜3‘iðJð ðJð ˜>Ñ*ðJð 
Ð AÑ	AóJðX ðØ ðàðð ðð )ð	ð
 ðð 
òó ðð$
à$ð
ð ð
ð (>ð	
ð
 )ð
ð !ð
ð 
+ó
ð<4
àð4
ð ð4
ð �t‘*ð	4
ð
 ð4
ð ð4
ð !ð4
ð ð4
ð ð4
ð ˜3‘ið4
ð ð4
ð 
ó4
ðl%àð%ð Ð1Ñ2ð%ð ð	%ð
 
ˆzÐ@Ð@Ñ	Aó%ðd 0òwàðwð ðwð �t‘*ð	wð
 -Jðwð 59ðwð )ðwð ðwð !ðwð ðwð ðwð 
ˆt‰ówðrWàðWð ðWð �t‘*ð	Wð
 ðWð )ðWð ðWð !ðWð ðWð 
ˆt‰óWðr<àð<ð ØØØ"ØØ%Ø!Ø&Ø0Ø'ØØØØØ"ØØ#Ø!Øð# ñ
ó<ð| ð< #ð <Ð5HÈ4Ñ5Oð <ÐTWò <ó ð<ð ð "Øò1Ø%ð1àð1ð ð1ð ˜C‘Z #§.¢.Ñ0ð	1ð ð1ð ð1ð 
ò1ó ð1ðt  $Ø"Ø!Ø $Ø(,Ø59Ø37òn`àðn`ð ðn`ð 'ð	n`ð
 ,ðn`ð ðn`ð ˜‘*ðn`ð �t‘ðn`ð �d‘
ðn`ð ˜‘ðn`ð  ™:ðn`ð ˜s F˜{Ñ+¨dÑ2ðn`ð *¨DÑ0ón`ðn :>Ø Ø26Ø8<Ø"&ò
àð
ð ð
ð ˜3 ˜;Ñ'ð	
ð
 'ð
ð ˜Ÿ™Ñ&ð
ð 0°$Ñ6ð
ð �T‰zð
ð ˜C ˜KÑ(¨4Ñ/ð
ð Ð.Ñ.°Ñ5ð
ð ˜4‘Zð
ð 
�‰ó
ðP :>Ø Ø26Ø8<Ø"&ò
àð
ð ð
ð ˜3 ˜;Ñ'ð	
ð
 'ð
ð ˜Ÿ™Ñ&ð
ð 0°$Ñ6ð
ð �T‰zð
ð ˜C ˜KÑ(¨4Ñ/ð
ð Ð.Ñ.°Ñ5ð
ð ˜4‘Zð
ð 
�‰ó
ðH '+Ø Ø26Ø8<Ø"&òGàÐDÑEðGð ðGð ð	Gð
 ˜3 ˜;Ñ'ðGð 'ðGð ˜Ÿ™Ñ&ðGð ˜t™ðGð �T‰zðGð ˜C ˜KÑ(¨4Ñ/ðGð Ð.Ñ.°Ñ5ðGð ˜4‘ZðGð 
�‰óGð` '+Ø Ø37Ø26Ø8<Ø"&òPàðPð "ðPð ð	Pð
 'ðPð ˜Ÿ™Ñ&ðPð ˜t™ðPð �T‰zðPð ˜S &˜[Ñ)¨DÑ0ðPð ˜C ˜KÑ(¨4Ñ/ðPð Ð.Ñ.°Ñ5ðPð ˜4‘ZðPð 
�‰óPðp  $Ø"Ø $Ø(,Ø59Ø*.Ø$(òu`àðu`ð ðu`ð 'ð	u`ð
 (>ÀÑ'Dðu`ð ˜‘*ðu`ð �t‘ðu`ð ˜‘ðu`ð  ™:ðu`ð ˜s F˜{Ñ+¨dÑ2ðu`ð ! 4™Zðu`ð ˜T‘zðu`ð óu`ðD 37Ø/3Ø8<ØØ!Ø59ò!s
àðs
ð ðs
ð �d‘
ð	s
ð
 %8ðs
ð -1ðs
ð !ðs
ð -ðs
ð 'ðs
ð ˜Ÿ™Ñ&ðs
ð ˜C ˜KÑ(¨4Ñ/ðs
ð ˜˜f˜Ñ%¨Ñ,ðs
ð Ð.Ñ.°Ñ5ðs
ð ðs
ð ðs
ð  ˜s F˜{Ñ+¨dÑ2ð!s
ð" 
˜ 6¨6°=Ð#@ÑAÑ	Aó#s
ð@ 37Ø/3Ø8<Ø!Ø59òa
àða
ð ða
ð �d‘
ð	a
ð
 %8ða
ð -1ða
ð !ða
ð -ða
ð 'ða
ð ˜Ÿ™Ñ&ða
ð ˜C ˜KÑ(¨4Ñ/ða
ð ˜˜f˜Ñ%¨Ñ,ða
ð Ð.Ñ.°Ñ5ða
ð ða
ð ˜s F˜{Ñ+¨dÑ2ða
ð  
ó!a
ðZ 37Ø/3Ø8<ØØ!Ø59Ø"ò!zàðzð ðzð +Dð	zð
 37ðzð !ðzð ðzð 'ðzð ˜Ÿ™Ñ&ðzð ˜C ˜KÑ(¨4Ñ/ðzð ˜˜f˜Ñ%¨Ñ,ðzð Ð.Ñ.°Ñ5ðzð ðzð ðzð ˜s F˜{Ñ+¨dÑ2ðzð  �t‘ð!zð" 
˜ 6¨6°=Ð#@ÑAÑ	Aó#zðL 37Ø/3Ø8<Ø!Ø59Ø"òiàðið ðið +Dð	ið
 37ðið !ðið ðið 'ðið ˜Ÿ™Ñ&ðið ˜C ˜KÑ(¨4Ñ/ðið ˜˜f˜Ñ%¨Ñ,ðið Ð.Ñ.°Ñ5ðið ðið ˜s F˜{Ñ+¨dÑ2ðið �t‘ðið  
ó!iðl 37Ø/3Ø8<ØØ!Ø59Ø"ò!z
àðz
ð ðz
ð +:ð	z
ð
 37ðz
ð !ðz
ð -ðz
ð 'ðz
ð ˜Ÿ™Ñ&ðz
ð ˜C ˜KÑ(¨4Ñ/ðz
ð ˜˜f˜Ñ%¨Ñ,ðz
ð Ð.Ñ.°Ñ5ðz
ð ðz
ð ðz
ð ˜s F˜{Ñ+¨dÑ2ðz
ð  �t‘ð!z
ð" 
�y ¨°Ð!<Ñ=Ñ	=ó#z
ðL 37Ø/3Ø8<Ø!Ø59Ø"òi
àði
ð ði
ð +<ð	i
ð
 37ði
ð !ði
ð -ði
ð 'ði
ð ˜Ÿ™Ñ&ði
ð ˜C ˜KÑ(¨4Ñ/ði
ð ˜˜f˜Ñ%¨Ñ,ði
ð Ð.Ñ.°Ñ5ði
ð ði
ð ˜s F˜{Ñ+¨dÑ2ði
ð �t‘ði
ð  
ó!i
ðh 37Ø"Ø8<ØØ"òXàðXð (7ðXð !ð	Xð
 -ðXð 'ðXð ˜Ÿ™Ñ&ðXð ˜C ˜KÑ(¨4Ñ/ðXð �t‘ðXð Ð.Ñ.°Ñ5ðXð ðXð �t‘ðXð 
�˜6 6¨5Ð0Ñ1Ñ	1óXðD 37Ø"Ø8<Ø"òLàðLð (7ðLð !ð	Lð
 -ðLð 'ðLð ˜Ÿ™Ñ&ðLð ˜C ˜KÑ(¨4Ñ/ðLð �t‘ðLð Ð.Ñ.°Ñ5ðLð �t‘ðLð 
óLðl 37Ø/3Ø $ØØØ"òaàðað ðað &5ð	að
 !ðað ˜C ˜KÑ(¨4Ñ/ðað ˜˜f˜Ñ%¨Ñ,ðað ˜‘ðað ðað �t‘óaðV 37Ø/3Ø $ØØ"òQàðQð ðQð &5ð	Qð
 !ðQð ˜C ˜KÑ(¨4Ñ/ðQð ˜˜f˜Ñ%¨Ñ,ðQð ˜‘ðQð �t‘óQðv 37Ø $ØØØ"òRQàðRQð ðRQð  /ð	RQð
 !ðRQð ˜C ˜KÑ(¨4Ñ/ðRQð ˜‘ðRQð ðRQð �t‘óRQðx 37Ø $ØØ"òFQàðFQð ðFQð  /ð	FQð
 !ðFQð ˜C ˜KÑ(¨4Ñ/ðFQð ˜‘ðFQð �t‘óFQð^ 37Ø $ØØØ"òCQàðCQð  /ðCQð !ð	CQð ˜C ˜KÑ(¨4Ñ/ðCQð ˜‘ðCQð ðCQð �t‘óCQðX 37Ø $ØØ"ò8Qàð8Qð  /ð8Qð !ð	8Qð ˜C ˜KÑ(¨4Ñ/ð8Qð ˜‘ð8Qð �t‘ó8QðD *.Ø26Ø/3Ø $ØØØ"òmQàðmQð ðmQð  /ð	mQð
 !ðmQð   $Ñ&ðmQð ˜C ˜KÑ(¨4Ñ/ðmQð ˜˜f˜Ñ%¨Ñ,ðmQð ˜‘ðmQð ðmQð �t‘ómQðn *.Ø26Ø/3Ø $ØØ"ò_Qàð_Qð ð_Qð  /ð	_Qð
 !ð_Qð   $Ñ&ð_Qð ˜C ˜KÑ(¨4Ñ/ð_Qð ˜˜f˜Ñ%¨Ñ,ð_Qð ˜‘ð_Qð �t‘ó_QðT 37Ø/3Ø $ØØØ"òWQàðWQð ðWQð ð	WQð
  /ðWQð !ðWQð ˜C ˜KÑ(¨4Ñ/ðWQð ˜˜f˜Ñ%¨Ñ,ðWQð ˜‘ðWQð ðWQð �t‘óWQðD 37Ø/3Ø $ØØ"òIQàðIQð ðIQð ð	IQð
  /ðIQð !ðIQð ˜C ˜KÑ(¨4Ñ/ðIQð ˜˜f˜Ñ%¨Ñ,ðIQð ˜‘ðIQð �t‘óIQðh 37Ø04Ø $ØØØ"ò4à�T‰zð4ð �T‰zð4ð �T‰zð	4ð !ð4ð ˜C ˜KÑ(¨4Ñ/ñ4ð ˜#˜v˜+Ñ&¨Ñ-ð4ð ˜‘ð4ð ð4ð �t‘ô4ð~ 37Ø04Ø $ØØ"òQà�T‰zðQð �T‰zðQð �T‰zñ	Qð
 %4ðQð !ðQð ˜C ˜KÑ(¨4Ñ/ñQð ˜#˜v˜+Ñ&¨Ñ-ðQð ˜‘ðQð �t‘ôQðt 37Ø $ØØ"òJàñJð '6ðJð !ð	Jð ˜C ˜KÑ(¨4Ñ/ðJð ˜‘ðJð �t‘ôJðf 37Ø/3Ø $ØØØ"ògàñgð '6ðgð !ð	gð ˜C ˜KÑ(¨4Ñ/ðgð ˜˜f˜Ñ%¨Ñ,ðgð ˜‘ðgð ðgð �t‘ôgð` 37Ø/3Ø $ØØ"òWàñWð '6ðWð !ð	Wð ˜C ˜KÑ(¨4Ñ/ðWð ˜˜f˜Ñ%¨Ñ,ðWð ˜‘ðWð �t‘ôWðB 37Ø),ØØ8<òUàñUð *.ñUð $9ð	Uð
 -ðUð )ðUð ˜C ˜KÑ(¨4Ñ/ðUð ˜Ÿ™Ñ&ðUð ðUð Ð.Ñ.°Ñ5ðUð 
Ñ  )¨F°FÑ<MÐ,MÑ"NÐNÑ	OôUð| 37Ø),Ø8<òJàñJð *.ñJð $9ð	Jð
 -ðJð )ðJð ˜C ˜KÑ(¨4Ñ/ðJð ˜Ÿ™Ñ&ðJð Ð.Ñ.°Ñ5ðJñ 
ôJðb !Ø Ø Ø26Ø04Ø),ØØ8<óXà#8ðXð -ðXð )ð	Xð
 �T‰zðXð �T‰zðXð �T‰zðXð ˜C ˜KÑ(¨4Ñ/ñXð ˜#˜v˜+Ñ&¨Ñ-ðXð ˜Ÿ™Ñ&ðXð ðXð Ð.Ñ.°Ñ5ðXð 
Ñ&¨	°&¸&ÑBYÐ2YÑ(ZÐZÑ	[ôXð~ !Ø Ø Ø26Ø04Ø),Ø8<óKà#8ðKð -ðKð )ð	Kð
 �T‰zðKð �T‰zðKð �T‰zðKð ˜C ˜KÑ(¨4Ñ/ñKð ˜#˜v˜+Ñ&¨Ñ-ðKð ˜Ÿ™Ñ&ðKð Ð.Ñ.°Ñ5ðKñ 
!ôKðf 37Ø04Ø),ØØ8<óVàñVð $9ðVð -ð	Vð
 )ðVð ˜C ˜KÑ(¨4Ñ/ñVð ˜#˜v˜+Ñ&¨Ñ-ðVð ˜Ÿ™Ñ&ðVð ðVð Ð.Ñ.°Ñ5ðVð 
Ñ  )¨F°FÑ<MÐ,MÑ"NÐNÑ	OôVð| 37Ø04Ø),Ø8<óKàñKð $9ðKð -ð	Kð
 )ðKð ˜C ˜KÑ(¨4Ñ/ñKð ˜#˜v˜+Ñ&¨Ñ-ðKð ˜Ÿ™Ñ&ðKð Ð.Ñ.°Ñ5ðKñ 
ôKðf 37Ø04Ø),ØØ8<óVàñVð $9ðVð -ð	Vð
 )ðVð ˜C ˜KÑ(¨4Ñ/ñVð ˜#˜v˜+Ñ&¨Ñ-ðVð ˜Ÿ™Ñ&ðVð ðVð Ð.Ñ.°Ñ5ðVð 
Ñ&¨	°&¸&ÑBYÐ2YÑ(ZÐZÑ	[ôVð| 37Ø04Ø),Ø8<óKàñKð $9ðKð -ð	Kð
 )ðKð ˜C ˜KÑ(¨4Ñ/ñKð ˜#˜v˜+Ñ&¨Ñ-ðKð ˜Ÿ™Ñ&ðKð Ð.Ñ.°Ñ5ðKñ 
!ôKðf !Ø Ø Ø26Ø04Ø),ØØ8<óZàñZð $9ðZð -ð	Zð
 )ðZð �T‰zðZð �T‰zðZð �T‰zðZð ˜C ˜KÑ(¨4Ñ/ñZð ˜#˜v˜+Ñ&¨Ñ-ðZð ˜Ÿ™Ñ&ðZð ðZð Ð.Ñ.°Ñ5ðZð 
Ñ*¨I°f¸fÑFaÐ6aÑ,bÐbÑ	côZðD !Ø Ø Ø26Ø04Ø),Ø8<óMàñMð $9ðMð -ð	Mð
 )ðMð �T‰zðMð �T‰zðMð �T‰zðMð ˜C ˜KÑ(¨4Ñ/ñMð ˜#˜v˜+Ñ&¨Ñ-ðMð ˜Ÿ™Ñ&ðMð Ð.Ñ.°Ñ5ðMñ 
%ôMðl 37Ø),ØØ8<óTàðTð ñTð $9ð	Tð
 -ðTð )ðTð ˜C ˜KÑ(¨4Ñ/ðTð ˜Ÿ™Ñ&ðTð ðTð Ð.Ñ.°Ñ5ðTð 
�˜6 6¨5Ð0Ñ1Ñ	1ôTðz 37Ø),Ø8<óJàðJð ñJð $9ð	Jð
 -ðJð )ðJð ˜C ˜KÑ(¨4Ñ/ðJð ˜Ÿ™Ñ&ðJð Ð.Ñ.°Ñ5ðJð 
ôJðZ ð
Ø&ð
à ñ
ð ð
ð �X˜c‘]Ñ"ð	
ð
 
ó
ó ð
ð: 37Ø/3Ø04Ø8<Øóp
àðp
ð �T˜#‘Y‰ñp
ð .Tñ	p
ð
 '<ðp
ð !ðp
ð -ðp
ð 'ðp
ð ˜C ˜KÑ(¨4Ñ/ðp
ð ˜˜f˜Ñ%¨Ñ,ðp
ð ˜Ÿ™Ñ&¨Ñ-ðp
ð Ð.Ñ.°Ñ5ðp
ð ðp
ð 
#ôp
ðv 37Ø/3Ø04Ø8<Øón
àðn
ð �T˜#‘Y‰ñn
ð .Tñ	n
ð
 '<ðn
ð !ðn
ð -ðn
ð 'ðn
ð ˜C ˜KÑ(¨4Ñ/ðn
ð ˜˜f˜Ñ%¨Ñ,ðn
ð ˜Ÿ™Ñ&¨Ñ-ðn
ð Ð.Ñ.°Ñ5ðn
ð ðn
ð 
# Y¨v°vÐ?XÐ/XÑ%YÑ	Yôn
ðn 37Ø/3Ø04Ø8<Øó:
à-Sñ:
ð '<ð:
ð !ð	:
ð
 -ð:
ð 'ð:
ð ˜C ˜KÑ(¨4Ñ/ð:
ð ˜˜f˜Ñ%¨Ñ,ð:
ð ˜Ÿ™Ñ&¨Ñ-ð:
ð Ð.Ñ.°Ñ5ð:
ð ð:
ð 
#ô:
ðF 37Ø/3Ø04Ø8<ØóD
à-SñD
ð '<ðD
ð !ð	D
ð
 -ðD
ð 'ðD
ð ˜C ˜KÑ(¨4Ñ/ðD
ð ˜˜f˜Ñ%¨Ñ,ðD
ð ˜Ÿ™Ñ&¨Ñ-ðD
ð Ð.Ñ.°Ñ5ðD
ð ðD
ð 
# Y¨v°vÐ?XÐ/XÑ%YÑ	YôD
ðZ 37Ø/3Ø04Ø8<ó3
àñ3
ð '<ð3
ð !ð	3
ð
 -ð3
ð 'ð3
ð ˜C ˜KÑ(¨4Ñ/ð3
ð ˜˜f˜Ñ%¨Ñ,ð3
ð ˜Ÿ™Ñ&¨Ñ-ð3
ð Ð.Ñ.°Ñ5ð3
ð 
#ô3
ðx 37Ø/3Ø04Ø8<Øó>
àñ>
ð '<ð>
ð !ð	>
ð
 -ð>
ð 'ð>
ð ˜C ˜KÑ(¨4Ñ/ð>
ð ˜˜f˜Ñ%¨Ñ,ð>
ð ˜Ÿ™Ñ&¨Ñ-ð>
ð Ð.Ñ.°Ñ5ð>
ð ð>
ð 
# Y¨v°vÐ?XÐ/XÑ%YÑ	Yô>
ðT 37Ø/3Ø04Ø8<ò>à�T‰zð>ð �d‘
ð>ð �T‰zð	>ð
 �T‰zñ>ð '<ð>ð !ð>ð -ð>ð 'ð>ð ˜C ˜KÑ(¨4Ñ/ð>ð ˜˜f˜Ñ%¨Ñ,ð>ð ˜Ÿ™Ñ&¨Ñ-ð>ð Ð.Ñ.°Ñ5ô>ðT 37Ø/3Ø04Ø8<ØòLà�T‰zðLð �d‘
ðLð �T‰zð	Lð
 �T‰zñLð '<ðLð !ðLð -ðLð 'ðLð ˜C ˜KÑ(¨4Ñ/ðLð ˜˜f˜Ñ%¨Ñ,ðLð ˜Ÿ™Ñ&¨Ñ-ðLð Ð.Ñ.°Ñ5ðLð ôLðl 37Ø/3Ø04Ø8<ó@
àñ@
ð .Tñ@
ð '<ð	@
ð
 !ð@
ð -ð@
ð 'ð@
ð ˜C ˜KÑ(¨4Ñ/ð@
ð ˜˜f˜Ñ%¨Ñ,ð@
ð ˜Ÿ™Ñ&¨Ñ-ð@
ð Ð.Ñ.°Ñ5ð@
ð 
#ô@
ðT 37Ø/3Ø04Ø8<ØóL
àñL
ð .TñL
ð '<ð	L
ð
 !ðL
ð -ðL
ð 'ðL
ð ˜C ˜KÑ(¨4Ñ/ðL
ð ˜˜f˜Ñ%¨Ñ,ðL
ð ˜Ÿ™Ñ&¨Ñ-ðL
ð Ð.Ñ.°Ñ5ðL
ð ðL
ð 
# Y¨v°vÐ?XÐ/XÑ%YÑ	YôL
ðj 37Ø/3Ø04Ø8<ó1àñ1ð '<ð1ð !ð	1ð
 -ð1ð 'ð1ð ˜C ˜KÑ(¨4Ñ/ð1ð ˜˜f˜Ñ%¨Ñ,ð1ð ˜Ÿ™Ñ&¨Ñ-ð1ð Ð.Ñ.°Ñ5ô1ðt 37Ø/3Ø04Ø8<Øó<àñ<ð '<ð<ð !ð	<ð
 -ð<ð 'ð<ð ˜C ˜KÑ(¨4Ñ/ð<ð ˜˜f˜Ñ%¨Ñ,ð<ð ˜Ÿ™Ñ&¨Ñ-ð<ð Ð.Ñ.°Ñ5ð<ð ô<ðT 04Ø/3Ø04Ø8<ô?qð ñ?qð 5ñ	?qð
 -Gð?qð !ð?qð -ð?qð 'ð?qð ˜C ˜H‘~¨Ñ,ð?qð ˜˜f˜Ñ%¨Ñ,ð?qð ˜Ÿ™Ñ&¨Ñ-ð?qð Ð.Ñ.°Ñ5ð?qð 
ô?qðT 04Ø/3Ø04Ø8<ØôKqð ñKqð 5ñ	Kqð
 -GðKqð !ðKqð -ðKqð 'ðKqð ˜C ˜H‘~¨Ñ,ðKqð ˜˜f˜Ñ%¨Ñ,ðKqð ˜Ÿ™Ñ&¨Ñ-ðKqð Ð.Ñ.°Ñ5ðKqð ðKqð 
 ¨6°6Ð;PÐ+PÑ!QÑ	QôKqðl 04Ø04Ø04Ø8<ô>pð ð>pð 5ñ	>pð
 -Gð>pð !ð>pð -ð>pð 'ð>pð ˜C ˜H‘~¨Ñ,ñ>pð ˜#˜v˜+Ñ&¨Ñ-ð>pð ˜Ÿ™Ñ&¨Ñ-ð>pð Ð.Ñ.°Ñ5ð>pð 
%ô>pðR 04Ø04Ø04Ø8<ØôJpð ðJpð 5ñ	Jpð
 -GðJpð !ðJpð -ðJpð 'ðJpð ˜C ˜H‘~¨Ñ,ñJpð ˜#˜v˜+Ñ&¨Ñ-ðJpð ˜Ÿ™Ñ&¨Ñ-ðJpð Ð.Ñ.°Ñ5ðJpð ðJpð 
% y°¸ÐA\Ð1\Ñ']Ñ	]ôJpðj 04Ø04Ø8<ô9sð ð9sð ñ	9sð
 -Gð9sð !ð9sð -ð9sð 'ð9sð ˜C ˜H‘~¨Ñ,ð9sð ˜Ÿ™Ñ&¨Ñ-ð9sð Ð.Ñ.°Ñ5ð9sð 
ô9sðH 04Ø04Ø8<ØôDsð ðDsð ñ	Dsð
 -GðDsð !ðDsð -ðDsð 'ðDsð ˜C ˜H‘~¨Ñ,ðDsð ˜Ÿ™Ñ&¨Ñ-ðDsð Ð.Ñ.°Ñ5ðDsð ðDsð 
 ¨6°6Ð;PÐ+PÑ!QÑ	QôDsð^ 04Ø04Ø8<ô;
ð ð;
ð ñ	;
ð
 -Gð;
ð !ð;
ð -ð;
ð 'ð;
ð ˜C ˜H‘~¨Ñ,ð;
ð ˜Ÿ™Ñ&¨Ñ-ð;
ð Ð.Ñ.°Ñ5ð;
ð 
(ô;
ðL 04Ø04Ø8<ØôF
ð ðF
ð ñ	F
ð
 -GðF
ð !ðF
ð -ðF
ð 'ðF
ð ˜C ˜H‘~¨Ñ,ðF
ð ˜Ÿ™Ñ&¨Ñ-ðF
ð Ð.Ñ.°Ñ5ðF
ð ðF
ð 
(¨)°F¸FÐDbÐ4bÑ*cÑ	côF
ðd 04Ø/3Ø04Ø8<ô@qð ð@qð ñ	@qð
 5ñ@qð -Gð@qð !ð@qð -ð@qð 'ð@qð ˜C ˜H‘~¨Ñ,ð@qð ˜˜f˜Ñ%¨Ñ,ð@qð ˜Ÿ™Ñ&¨Ñ-ð@qð Ð.Ñ.°Ñ5ð@qð 
ô@qðX 04Ø/3Ø04Ø8<ØôMqð ðMqð ñ	Mqð
 5ñMqð -GðMqð !ðMqð -ðMqð 'ðMqð ˜C ˜H‘~¨Ñ,ðMqð ˜˜f˜Ñ%¨Ñ,ðMqð ˜Ÿ™Ñ&¨Ñ-ðMqð Ð.Ñ.°Ñ5ðMqð ðMqð 
 ¨6°6Ð;PÐ+PÑ!QÑ	QôMqðp 04Ø04Ø8<ô9qð ð9qð ñ	9qð
 -Gð9qð !ð9qð -ð9qð 'ð9qð ˜C ˜H‘~¨Ñ,ð9qð ˜Ÿ™Ñ&¨Ñ-ð9qð Ð.Ñ.°Ñ5ð9qð 
'ô9qðH 04Ø04Ø8<ØôDqð ðDqð ñ	Dqð
 -GðDqð !ðDqð -ðDqð 'ðDqð ˜C ˜H‘~¨Ñ,ðDqð ˜Ÿ™Ñ&¨Ñ-ðDqð Ð.Ñ.°Ñ5ðDqð ðDqð 
'¨°6¸6ÐC`Ð3`Ñ)aÑ	aôDqðf 37Ø/3Ø04ØØ8<ØØ59Ø,0ò#B
àñB
ð ñB
ð +Oñ	B
ð
 '+ðB
ð ðB
ð !ðB
ð -ðB
ð 'ðB
ð ˜C ˜KÑ(¨4Ñ/ðB
ð ˜˜f˜Ñ%¨Ñ,ðB
ð ˜Ÿ™Ñ&¨Ñ-ðB
ð ðB
ð Ð.Ñ.°Ñ5ðB
ð ðB
ð  ˜s F˜{Ñ+¨dÑ2ñ!B
ð" # T™Mð#B
ð$ 
ô%B
ð\ 37Ø/3Ø04Ø*.ØØ59Ø,0ò!q
àñq
ð ñq
ð +Oñ	q
ð
 '+ðq
ð ðq
ð !ðq
ð -ðq
ð 'ðq
ð ˜C ˜KÑ(¨4Ñ/ðq
ð ˜˜f˜Ñ%¨Ñ,ðq
ð ˜Ÿ™Ñ&¨Ñ-ðq
ð ! 4Ñ'ðq
ð ðq
ð ˜s F˜{Ñ+¨dÑ2ñq
ð  # T™Mð!q
ð" 
ô#q
ðB 37Ø8<Øòq
àðq
ð ñq
ð �T‰zñ	q
ð
 )?ñq
ð )-ðq
ð !ðq
ð ðq
ð 'ðq
ð ˜Ÿ™Ñ&ðq
ð ˜C ˜KÑ(¨4Ñ/ðq
ð Ð.Ñ.°Ñ5ðq
ð ðq
ð 
Ø$Ø�&˜&Ð">Ð>Ñ?ð	Añ
ôq
ð| 37Ø8<òa
àða
ð ña
ð �T‰zñ	a
ð
 )?ña
ð )-ða
ð !ða
ð ða
ð 'ða
ð ˜Ÿ™Ñ&ða
ð ˜C ˜KÑ(¨4Ñ/ða
ð Ð.Ñ.°Ñ5ða
ð 
&ôa
ðNàðð ðð 
ˆt�d‰{˜D 4™KÐ'Ñ	(ô	ðN 37Ø04Ø8<ØØ48ò@
àð@
ð ñ@
ñ %:ð	@
ð
 !ð@
ð -ð@
ð 'ð@
ð ˜C ˜KÑ(¨4Ñ/ð@
ð ˜Ÿ™Ñ&¨Ñ-ð@
ð Ð.Ñ.°Ñ5ð@
ð ð@
ð ! Ñ1ð@
ð 
‰w˜	 &¨&±'Ð"9Ñ:Ð:Ñ	;ô@
ðT 37Ø04Ø8<Ø48ò6
àð6
ð ñ6
ñ %:ð	6
ð
 !ð6
ð -ð6
ð 'ð6
ð ˜C ˜KÑ(¨4Ñ/ð6
ð ˜Ÿ™Ñ&¨Ñ-ð6
ð Ð.Ñ.°Ñ5ð6
ð ! Ñ1ð6
ñ 
ô6
ð@ 37Ø04Ø8<ØØ48ò9
àð9
ð ñ9
ñ %:ð	9
ð
 !ð9
ð -ð9
ð 'ð9
ð ˜C ˜KÑ(¨4Ñ/ð9
ð ˜Ÿ™Ñ&¨Ñ-ð9
ð Ð.Ñ.°Ñ5ð9
ð ð9
ð ! Ñ1ð9
ð 
Ñ# Y¨v°vÑ?SÐ/SÑ%TÐTÑ	Uô9
ðF 37Ø04Ø8<Ø48ò-
àð-
ð ñ-
ñ %:ð	-
ð
 !ð-
ð -ð-
ð 'ð-
ð ˜C ˜KÑ(¨4Ñ/ð-
ð ˜Ÿ™Ñ&¨Ñ-ð-
ð Ð.Ñ.°Ñ5ð-
ð ! Ñ1ð-
ñ 
ô-
ðl 37Ø04Ø8<ØØ48ò6
àñ6
ñ %:ð6
ð !ð	6
ð
 -ð6
ð 'ð6
ð ˜C ˜KÑ(¨4Ñ/ð6
ð ˜Ÿ™Ñ&¨Ñ-ð6
ð Ð.Ñ.°Ñ5ð6
ð ð6
ð ! Ñ1ð6
ð 
‰w˜	 &¨&±'Ð"9Ñ:Ð:Ñ	;ô6
ð~ 37Ø04Ø8<Ø48ò+
àñ+
ñ %:ð+
ð !ð	+
ð
 -ð+
ð 'ð+
ð ˜C ˜KÑ(¨4Ñ/ð+
ð ˜Ÿ™Ñ&¨Ñ-ð+
ð Ð.Ñ.°Ñ5ð+
ð ! Ñ1ð+
ñ 
ô+
ðh 37Ø04Ø8<ØØ48ò6
àñ6
ñ %:ð6
ð !ð	6
ð
 -ð6
ð 'ð6
ð ˜C ˜KÑ(¨4Ñ/ð6
ð ˜Ÿ™Ñ&¨Ñ-ð6
ð Ð.Ñ.°Ñ5ð6
ð ð6
ð ! Ñ1ð6
ð 
Ñ$ i°¸Ñ@UÐ0UÑ&VÐVÑ	Wô6
ð~ 37Ø04Ø8<Ø48ò+
àñ+
ñ %:ð+
ð !ð	+
ð
 -ð+
ð 'ð+
ð ˜C ˜KÑ(¨4Ñ/ð+
ð ˜Ÿ™Ñ&¨Ñ-ð+
ð Ð.Ñ.°Ñ5ð+
ð ! Ñ1ð+
ñ 
ô+
ðr 37Ø04Ø8<ØØ48ò9
àð9
ð ñ9
ñ $8ð	9
ð
 !ð9
ð -ð9
ð 'ð9
ð ˜C ˜KÑ(¨4Ñ/ð9
ð ˜Ÿ™Ñ&¨Ñ-ð9
ð Ð.Ñ.°Ñ5ð9
ð ð9
ð ! Ñ1ð9
ð 
‰v�y ¨±Ð!7Ñ8Ð8Ñ	9ô9
ðF 37Ø04Ø8<Ø48ò-
àð-
ð ñ-
ñ $8ð	-
ð
 !ð-
ð -ð-
ð 'ð-
ð ˜C ˜KÑ(¨4Ñ/ð-
ð ˜Ÿ™Ñ&¨Ñ-ð-
ð Ð.Ñ.°Ñ5ð-
ð ! Ñ1ð-
ñ 
ô-
ðn 37Ø04Ø8<ØØ48ò9
àð9
ð ñ9
ñ $8ð	9
ð
 !ð9
ð -ð9
ð 'ð9
ð ˜C ˜KÑ(¨4Ñ/ð9
ð ˜Ÿ™Ñ&¨Ñ-ð9
ð Ð.Ñ.°Ñ5ð9
ð ð9
ð ! Ñ1ð9
ð 
Ñ" I¨f°fÑ>QÐ.QÑ$RÐRÑ	Sô9
ðF 37Ø04Ø8<Ø48ò-
àð-
ð ñ-
ñ $8ð	-
ð
 !ð-
ð -ð-
ð 'ð-
ð ˜C ˜KÑ(¨4Ñ/ð-
ð ˜Ÿ™Ñ&¨Ñ-ð-
ð Ð.Ñ.°Ñ5ð-
ð ! Ñ1ð-
ñ 
õ-
ðl 37Ø04Ø8<ØØ48ò6
àñ6
ñ $8ð6
ð !ð	6
ð
 -ð6
ð 'ð6
ð ˜C ˜KÑ(¨4Ñ/ð6
ð ˜Ÿ™Ñ&¨Ñ-ð6
ð Ð.Ñ.°Ñ5ð6
ð ð6
ð ! Ñ1ð6
ð 
‰v�y ¨±Ð!7Ñ8Ð8Ñ	9õ6
ð~ 37Ø04Ø8<Ø48ò+
àñ+
ñ $8ð+
ð !ð	+
ð
 -ð+
ð 'ð+
ð ˜C ˜KÑ(¨4Ñ/ð+
ð ˜Ÿ™Ñ&¨Ñ-ð+
ð Ð.Ñ.°Ñ5ð+
ð ! Ñ1ð+
ñ 
õ+
ðj 37Ø04Ø8<ØØ48ò9
àð9
ð ñ9
ñ $8ð	9
ð
 !ð9
ð -ð9
ð 'ð9
ð ˜C ˜KÑ(¨4Ñ/ð9
ð ˜Ÿ™Ñ&¨Ñ-ð9
ð Ð.Ñ.°Ñ5ð9
ð ð9
ð ! Ñ1ð9
ð 
‰v�y ¨±Ð!7Ñ8Ð8Ñ	9õ9
ðF 37Ø04Ø8<Ø48ò-
àð-
ð ñ-
ñ $8ð	-
ð
 !ð-
ð -ð-
ð 'ð-
ð ˜C ˜KÑ(¨4Ñ/ð-
ð ˜Ÿ™Ñ&¨Ñ-ð-
ð Ð.Ñ.°Ñ5ð-
ð ! Ñ1ð-
ñ 
õ-
ðl 37Ø04Ø8<ØØ48ò6
àñ6
ñ $8ð6
ð !ð	6
ð
 -ð6
ð 'ð6
ð ˜C ˜KÑ(¨4Ñ/ð6
ð ˜Ÿ™Ñ&¨Ñ-ð6
ð Ð.Ñ.°Ñ5ð6
ð ð6
ð ! Ñ1ð6
ð 
Ñ# Y¨v°vÑ?SÐ/SÑ%TÐTÑ	Uõ6
ð~ 37Ø04Ø8<Ø48ò+
àñ+
ñ $8ð+
ð !ð	+
ð
 -ð+
ð 'ð+
ð ˜C ˜KÑ(¨4Ñ/ð+
ð ˜Ÿ™Ñ&¨Ñ-ð+
ð Ð.Ñ.°Ñ5ð+
ð ! Ñ1ð+
ñ 
õ+
ðh 37Ø04Ø8<ØØ48ò6
àñ6
ñ $8ð6
ð !ð	6
ð
 -ð6
ð 'ð6
ð ˜C ˜KÑ(¨4Ñ/ð6
ð ˜Ÿ™Ñ&¨Ñ-ð6
ð Ð.Ñ.°Ñ5ð6
ð ð6
ð ! Ñ1ð6
ð 
Ñ# Y¨v°vÑ?SÐ/SÑ%TÐTÑ	Uõ6
ð~ 37Ø04Ø8<Ø48ò+
àñ+
ñ $8ð+
ð !ð	+
ð
 -ð+
ð 'ð+
ð ˜C ˜KÑ(¨4Ñ/ð+
ð ˜Ÿ™Ñ&¨Ñ-ð+
ð Ð.Ñ.°Ñ5ð+
ð ! Ñ1ð+
ñ 
õ+
ðr 37Ø04Ø8<ØØ48ò9
àð9
ð ñ9
ñ $8ð	9
ð
 !ð9
ð -ð9
ð 'ð9
ð ˜C ˜KÑ(¨4Ñ/ð9
ð ˜Ÿ™Ñ&¨Ñ-ð9
ð Ð.Ñ.°Ñ5ð9
ð ð9
ð ! Ñ1ð9
ð 
‰u�i ¨±Ð 5Ñ6Ð6Ñ	7õ9
ðF 37Ø04Ø8<Ø48ò-
àð-
ð ñ-
ñ $8ð	-
ð
 !ð-
ð -ð-
ð 'ð-
ð ˜C ˜KÑ(¨4Ñ/ð-
ð ˜Ÿ™Ñ&¨Ñ-ð-
ð Ð.Ñ.°Ñ5ð-
ð ! Ñ1ð-
ñ 
õ-
ðn 37Ø04Ø8<ØØ48ò9
àð9
ð ñ9
ñ $8ð	9
ð
 !ð9
ð -ð9
ð 'ð9
ð ˜C ˜KÑ(¨4Ñ/ð9
ð ˜Ÿ™Ñ&¨Ñ-ð9
ð Ð.Ñ.°Ñ5ð9
ð ð9
ð ! Ñ1ð9
ð 
Ñ! 9¨V°VÑ=OÐ-OÑ#PÐPÑ	Qõ9
ðF 37Ø04Ø8<Ø48ò-
àð-
ð ñ-
ñ $8ð	-
ð
 !ð-
ð -ð-
ð 'ð-
ð ˜C ˜KÑ(¨4Ñ/ð-
ð ˜Ÿ™Ñ&¨Ñ-ð-
ð Ð.Ñ.°Ñ5ð-
ð ! Ñ1ð-
ñ 
õ-
ðl 37Ø04Ø8<ØØ48ò6
àñ6
ñ $8ð6
ð !ð	6
ð
 -ð6
ð 'ð6
ð ˜C ˜KÑ(¨4Ñ/ð6
ð ˜Ÿ™Ñ&¨Ñ-ð6
ð Ð.Ñ.°Ñ5ð6
ð ð6
ð ! Ñ1ð6
ð 
‰u�i ¨±Ð 5Ñ6Ð6Ñ	7õ6
ð~ 37Ø04Ø8<Ø48ò+
àñ+
ñ $8ð+
ð !ð	+
ð
 -ð+
ð 'ð+
ð ˜C ˜KÑ(¨4Ñ/ð+
ð ˜Ÿ™Ñ&¨Ñ-ð+
ð Ð.Ñ.°Ñ5ð+
ð ! Ñ1ð+
ñ 
õ+
ðh 37Ø04Ø8<ØØ48ò6
àñ6
ñ $8ð6
ð !ð	6
ð
 -ð6
ð 'ð6
ð ˜C ˜KÑ(¨4Ñ/ð6
ð ˜Ÿ™Ñ&¨Ñ-ð6
ð Ð.Ñ.°Ñ5ð6
ð ð6
ð ! Ñ1ð6
ð 
Ñ" I¨f°fÑ>QÐ.QÑ$RÐRÑ	Sõ6
ð~ 37Ø04Ø8<Ø48ò+
àñ+
ñ $8ð+
ð !ð	+
ð
 -ð+
ð 'ð+
ð ˜C ˜KÑ(¨4Ñ/ð+
ð ˜Ÿ™Ñ&¨Ñ-ð+
ð Ð.Ñ.°Ñ5ð+
ð ! Ñ1ð+
ñ 
õ+
ðh 37Ø04Ø8<ØØ48ò6
àñ6
ñ $8ð6
ð !ð	6
ð
 -ð6
ð 'ð6
ð ˜C ˜KÑ(¨4Ñ/ð6
ð ˜Ÿ™Ñ&¨Ñ-ð6
ð Ð.Ñ.°Ñ5ð6
ð ð6
ð ! Ñ1ð6
ð 
Ñ" I¨f°fÑ>QÐ.QÑ$RÐRÑ	Sõ6
ð~ 37Ø04Ø8<Ø48ò+
àñ+
ñ $8ð+
ð !ð	+
ð
 -ð+
ð 'ð+
ð ˜C ˜KÑ(¨4Ñ/ð+
ð ˜Ÿ™Ñ&¨Ñ-ð+
ð Ð.Ñ.°Ñ5ð+
ð ! Ñ1ð+
ñ 
ö+
rŠ   rñ   )ìrë  r¥   r?  rå  Úcollections.abcr   r   r   r   r   Ú
contextlibr   Ú	functoolsr	   r  r
   r   rª  r   r   r   r   r   r   r   r   r   r   rÔ  r   r   r   r   r­   Úhttpx._typesr   Úopenai.types.file_deletedr   rÖ   Úlitellm.litellm_core_utilsÚlitellm.typesÚlitellm.types.utilsr«  r   r   Ú&litellm.anthropic_beta_headers_managerr   Úlitellm.constantsr   Ú0litellm.litellm_core_utils.agentic_loop_settingsr    r!   Ú#litellm.litellm_core_utils.asyncifyr"   Ú5litellm.litellm_core_utils.audio_utils.subtitle_utilsr#   r$   Ú,litellm.litellm_core_utils.llm_request_utilsr%   Ú*litellm.litellm_core_utils.realtime_errorsr&   r'   Ú-litellm.litellm_core_utils.realtime_streamingr(   Ú$litellm.litellm_core_utils.url_utilsr)   Ú7litellm.llms.base_llm.anthropic_messages.transformationr*   r‹  r+   rÄ  r,   r-   Ú,litellm.llms.base_llm.batches.transformationr.   rÉ  r/   Ú/litellm.llms.base_llm.containers.transformationr0   Ú.litellm.llms.base_llm.embedding.transformationr1   Ú*litellm.llms.base_llm.evals.transformationr2   Ú*litellm.llms.base_llm.files.transformationr3   r4   Ú1litellm.llms.base_llm.google_genai.transformationr5   Ú/litellm.llms.base_llm.image_edit.transformationr6   Ú5litellm.llms.base_llm.image_generation.transformationr7   r²  r8   r9   Ú2litellm.llms.base_llm.realtime.http_transformationr:   Ú-litellm.llms.base_llm.realtime.transformationr;   Ú+litellm.llms.base_llm.rerank.transformationr<   Ú.litellm.llms.base_llm.responses.transformationr=   Ú+litellm.llms.base_llm.search.transformationr>   r?   Ú+litellm.llms.base_llm.skills.transformationr@   Ú3litellm.llms.base_llm.text_to_speech.transformationrA   Ú1litellm.llms.base_llm.vector_store.transformationrB   rC   Ú7litellm.llms.base_llm.vector_store_files.transformationrD   Ú+litellm.llms.base_llm.videos.transformationrE   Ú&litellm.llms.custom_httpx.http_handlerrF   rG   rH   rI   r�  rJ   rK   rL   rM   rN   rO   Úlitellm.types.containers.mainrP   rQ   rR   rS   Úlitellm.types.filesrT   rU   Ú(litellm.types.integrations.custom_loggerrV   rW   rX   r¬  rZ   Ú#litellm.types.llms.anthropic_skillsr[   r\   r]   Úlitellm.types.llms.openair^   r_   r`   ra   rb   rc   rd   re   Úlitellm.types.realtimerf   Úlitellm.types.rerankrg   Úlitellm.types.responses.mainrh   Úlitellm.types.routerri   rj   rk   rl   rm   rn   Ú litellm.types.vector_store_filesro   rp   rq   rr   rs   rt   ru   Úlitellm.types.vector_storesrv   rw   rx   ry   Úlitellm.types.videos.mainrz   rò  r{   r|   r}   r~   r   r©   r&  r‰   r  rŒ   ÚtiktokenÚaiohttpr�   rT  r�   rÓ   r‘   rÔ   r’   Ú_LiteLLMLoggingObjrX  r”   r"  r•   Ú0litellm.llms.base_llm.passthrough.transformationr–   Úlitellm.types.llms.openai_evalsr—   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ˆ   ú<module>rH     s¥  ðÛ Û Û 	Û 
ß QÕ QÝ *Ý ß .ß p× p× pß BÓ Bã Ý $Ý 1ã Û !Û Û ß ;Ý TÝ G÷õ C÷õ Yß cÝ KÝ Hõõ÷õ KÝ @Ý OÝ NÝ I÷õõ Põ÷ PÝ UÝ LÝ HÝ Qß XÝ KÝ V÷õõ H÷ó ÷÷ ÷ó ÷ T÷ñ õ
÷ñ ÷
	÷ 	ó 	õ 7Ý /Ý =Ý 5÷õ ÷÷ ñ ÷ó õ 2÷õ ðRØ˜t™ðRà(ðRð 
óRõ :áÛÝ%Ý:å?ÝXõõõ W÷	÷ 	ó 	ð +ÑàÐá�\Ó"€
ô˜9¨Eõ ô#˜¨%õ #ðàðð )ðð #ð	ð
 —m’mðð 
ˆ#ˆvˆ+Ñóñ, �4ÔðO°Y¸s±^ò Oó ðOðÐ*;ð ÀÀ^Ñ@Tó ð.Ð/@ð ÀTó ð¨UÐ3GÈÐ3LÑ-Mó ÷*\M
ò \M
rŠ   