Ë
    uPêjD`  ã                   ó&  — U d dl Z d dlmZ d dlmZmZmZmZ d dlZd dl	Z	d dlm
Z
mZ d dlZd dlZd dlZd dlZd dlmZ d dlmZ d dlmZ d dlmZmZmZmZ d d	lmZ d d
lmZmZmZ d dl m!Z!m"Z"m#Z# erd dl$Z$d dl%m&Z' e'Z(neZ(dZ)ee*d<    G d„ d«      Z+y)é    N)ÚCallable)ÚTYPE_CHECKINGÚAnyÚFinalÚcast)ÚClientSessionÚFormData)Ú
BaseConfig)ÚBaseImageVariationConfig)ÚLiteLLMAiohttpTransport)ÚAsyncHTTPHandlerÚHTTPHandlerÚ_get_httpx_clientÚget_ssl_configuration)Ú	FileTypes)ÚHttpHandlerRequestFieldsÚImageResponseÚLlmProviders)ÚCustomStreamWrapperÚModelResponseÚProviderConfigManager)ÚLoggingiX  ÚDEFAULT_TIMEOUTc                    óò  — e Zd Z	 	 	 d5dej                  dz  dedz  dej                  dz  fd„Zdedz  fd„Zdej                  dz  fd„Z	defd	„Z
d6d
edz  defd„Zd„ Zd„ Z	 	 d7dedz  dededededz  deej&                  z  dededz  dedej,                  fd„Z	 	 	 	 d8dedededededeej&                  z  dz  dedededz  dededz  dej4                  fd„Z	 	 d9d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  fd(„Zdddi df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z  d*ed&edz  dedz  d'ee z  ez  dz  fd+„Z!	 	 d:dededededed"ededeej&                  z  d*ed'edz  de"eef   fd,„Z#d'edz  de$dedede%deded e&d!ed&ededz  d-e'd#ede&fd.„Z(	 	 	 	 	 	 	 d;d e&d&ededz  d-e'deded!ed#eded/e)dz  dedz  d0ed1edz  dedz  de&fd2„Z*d3e+defd4„Z,y)<ÚBaseLLMAIOHTTPHandlerNÚclient_sessionÚ	transportÚ	connectorc                 ód   — || _         |d u | _        || _        |d u | _        || _        |d u | _        y ©N)r   Ú_owns_sessionr   Ú_owns_transportr   Ú_owns_connector)Úselfr   r   r   s       ún/home/oem/CyberBrain26-unified/.venv/lib/python3.12/site-packages/litellm/llms/custom_httpx/aiohttp_handler.pyÚ__init__zBaseLLMAIOHTTPHandler.__init__)   sA   € ð -ˆÔØ+¨tÐ3ˆÔà"ˆŒØ(¨DÐ0ˆÔà"ˆŒØ(¨DÐ0ˆÕó    Úreturnc                 ó   — | j                   r| j                   S 	 t        «       }t        j                  t	        |t
        «      r|ndt	        |t        j                  «      r|nd¬«      | _         d| _        | j                   S # t        $ r Y yw xY w)z5Get existing transport or create a new one if needed.N)Ú
ssl_verifyÚssl_contextT)
r   r   r   Ú_create_aiohttp_transportÚ
isinstanceÚboolÚsslÚ
SSLContextr"   Ú	Exception)r$   Ú
ssl_configs     r%   Ú_get_or_create_transportz.BaseLLMAIOHTTPHandler._get_or_create_transport8   sy   € à�>Š>Ø—>‘>Ð!ð
	Ü 5Ó 7ˆJÜ-×GÑGÜ)3°JÄÔ)E™:È4Ü*4°ZÄÇÁÔ*P™JÐVZôˆDŒNð $(ˆDÔ Ø—>‘>Ð!øÜò 	áð	ús   šA&B Â	BÂBc                 óì   — | j                   r| j                   S | j                  rPt        | j                  d«      r:| j                  j                  }t	        |«      ryt        |d«      r|j                   S y)z1Get or create a connector for the client session.ÚclientNr   )r   r   Úhasattrr5   Úcallable)r$   r5   s     r%   Ú_get_connectorz$BaseLLMAIOHTTPHandler._get_connectorJ   sZ   € à�>Š>Ø—>‘>Ð!Ø�^Š^¤¨¯©¸Ô Aà ŸN™N×1Ñ1ˆFÜ˜ÔàÜ˜ Ô-Ø×'Ñ'Ð'Ør'   c                 óP  — | j                   €(| j                  «       }|rt        j                  |¬«      S | j                   xs | j	                  «       }|�t        |d«      r	 |j                  «       S t        j                  «       S # t        $ r Y t        j                  «       S w xY w)zGCreate a new client session using transport or connector configuration.)r   Ú_get_valid_client_session)r   r8   Úaiohttpr   r3   r6   r:   ÚRuntimeError)r$   r   r   s      r%   Ú%_create_client_session_with_transportz;BaseLLMAIOHTTPHandler._create_client_session_with_transportX   s�   € à�>‰>Ð!Ø#×2Ñ2Ó4ˆIÙÜ×,Ñ,°yÔAÐAàŸ>™>ÒL¨T×-JÑ-JÓ-Lˆ	ØÐ ¤W¨YÐ8SÔ%TðØ ×:Ñ:Ó<Ð<ô ×$Ñ$Ó&Ð&øô  ò Øä×$Ñ$Ó&Ð&ðús   Á"B Â	B%Â$B%Údynamic_client_sessionc                 óŠ   — |r|S | j                   r| j                   S | j                  «       | _         d| _        | j                   S )NT)r   r=   r!   )r$   r>   s     r%   Ú_get_async_client_sessionz/BaseLLMAIOHTTPHandler._get_async_client_sessionh   sG   € Ù!Ø)Ð)Ø× Ò Ø×&Ñ&Ð&ð #'×"LÑ"LÓ"NˆDÔØ!%ˆDÔØ×&Ñ&Ð&r'   c              ƒ   óz  K  — | j                   rD| j                   j                  s.| j                  r"| j                   j                  «       ƒ d{  –—†  | j                  rH| j
                  r;t        | j                  d«      r$	 | j                  j                  «       ƒ d{  –—†  yyyy7 ŒY7 Œ
# t        $ r Y yw xY w­w)z>Close the aiohttp client session and transport if we own them.NÚaclose)	r   Úclosedr!   Úcloser   r"   r6   rB   r1   )r$   s    r%   rD   zBaseLLMAIOHTTPHandler.closes   sŸ   è ø€ ð ×Ò t×':Ñ':×'AÒ'AÀd×FXÒFXØ×%Ñ%×+Ñ+Ó-×-Ð-ð �>Š>˜d×2Ò2´w¸t¿~¹~ÈxÔ7XðØ—n‘n×+Ñ+Ó-×-Ñ-ð 8YÐ2ˆ>ð .øð
 .ùÜò áðüsH   ‚AB;ÁB(Á2B;ÂB, ÂB*Â B, Â$B;Â*B, Â,	B8Â5B;Â7B8Â8B;c                 ó<  — | j                   �‹| j                   j                  st| j                  rg	 ddl}	 |j	                  «       }|j                  «       r |j                  | j                  «       «       n |j                  | j                  «       «       yyyyy# t        $ rj |j                  «       }|j                  |«       	 |j                  | j                  «       «       |j                  «        n# |j                  «        w xY wY yw xY w# t        $ r Y yw xY w)zÚ
        Cleanup: close aiohttp session on instance destruction.

        Provides defense-in-depth for issue #12443 - ensures cleanup happens
        even if atexit handler doesn't run (abnormal termination).
        Nr   )r   rC   r!   ÚasyncioÚget_event_loopÚ
is_runningÚcreate_taskrD   Úrun_until_completer<   Únew_event_loopÚset_event_loopr1   )r$   rF   Úloops      r%   Ú__del__zBaseLLMAIOHTTPHandler.__del__�   sö   € ð ×ÑÐ*°4×3FÑ3F×3MÒ3MÐRV×RdÒRdðÛð%Ø"×1Ñ1Ó3�DØ—‘Ô(à×+Ñ+¨D¯J©J«LÕ9ð ×/Ñ/°·
±
³Õ=ð :ð SeÐ3MÐ*øô $ò %à"×1Ñ1Ó3�DØ×*Ñ*¨4Ô0ð%Ø×/Ñ/°·
±
³Ô=àŸ
™
�ø˜Ÿ
™
�ú™ð%ûô ò áðúsG   °D µAB Â*DÃC4Ã#DÃ4DÄDÄ	D ÄDÄD Ä	DÄDFÚasync_client_sessionÚprovider_configÚapi_baseÚheadersÚdataÚtimeoutÚlitellm_paramsÚ	form_dataÚstreamc
              ƒ   óð  K  — |j                   }
d}| j                  |¬«      }t        t        |
d«      «      D ]=  }	 |j	                  ||||¬«      ƒ d{  –—† }|j
                  s|j                  «         n |€|j                  ddi ¬	«      ‚|S 7 Œ;# t        j                  $ r/}t        |d|j                  «       | 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.N)r>   é   )ÚurlrR   ÚjsonrS   Útext©ÚerP   úNo response from the APIé¦  ©Úerror_messageÚstatus_coderR   )Ú'max_retry_on_unprocessable_entity_errorr@   ÚrangeÚmaxÚpostÚokÚraise_for_statusr;   ÚClientResponseErrorÚsetattrÚmessageÚ_handle_errorr1   Úget_error_class)r$   rO   rP   rQ   rR   rS   rT   rU   rV   rW   rd   ÚresponseÚir^   s                 r%   Ú_make_common_async_callz-BaseLLMAIOHTTPHandler._make_common_async_call    s%  è ø€ ð :I×9pÑ9pÐ/à26ˆØ#×=Ñ=ÐUiÐ=ÓjÐä”sÐBÀAÓFÓGò 	ˆAðOØ!5×!:Ñ!:Ø Ø#ØØ"ð	 ";ó "÷ �ð  —{’{Ø×-Ñ-Ô/ñ ð	ð" ÐØ!×1Ñ1Ø8ØØð 2ó ð ð ˆð-ùô ×.Ñ.ò OÜ˜˜6 1§9¡9Ô-Ø×(Ñ(¨1¸oÐ(ÓNÐNûÜò OØ×(Ñ(¨1¸oÐ(ÓNÐNûðOüsF   ‚9C6¼BÁBÁ BÁ5C6ÂBÂC3Â%*CÃC3ÃC.Ã.C3Ã3C6Úsync_httpx_clientÚfilesÚcontentÚparamsc                 óÈ  — |j                   }d }t        t        |d«      «      D ]!  }	 |j                  ||||||	|
�|
nd |¬«      } 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)	NrY   )rZ   rR   rS   rT   rW   rs   rt   ru   )r^   rU   )r^   Úrequest_datar]   r_   r`   ra   )rd   re   rf   rg   ÚhttpxÚHTTPStatusErrorÚ9should_retry_llm_api_inside_llm_translation_on_http_errorÚ/transform_request_on_unprocessable_entity_errorrm   r1   rn   )r$   rr   rP   rQ   rR   rS   rT   rU   rW   rs   rt   ru   rd   ro   rp   r^   Úhit_max_retryÚshould_retrys                     r%   Ú_make_common_sync_callz,BaseLLMAIOHTTPHandler._make_common_sync_callÌ   s<  € ð :I×9pÑ9pÐ/à*.ˆä”sÐBÀAÓFÓGò 	ˆAðOØ,×1Ñ1Ø Ø#ØØ#Ø!ØØ'.Ð':™GÀØ!ð 2ó 	�ñ, ð1	ð4 ÐØ!×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)   ¨A Á C!Á32B=Â*B=Â=C!Ã	CÃC!Úcustom_llm_providerÚmodelÚmodel_responseÚlogging_objÚmessagesÚoptional_paramsÚencodingztiktoken.Encoding | NoneÚapi_keyr5   c              ƒ   óž   K  — | j                  |||||||d¬«      ƒ d {  –—† }|j                  ||||	|||
|||¬«
      ƒ d {  –—† }|S 7 Œ)7 Œ­w)NF)rO   rP   rQ   rR   rS   rT   rU   rW   ©
r€   Úraw_responser�   r‚   r†   rw   rƒ   r„   rU   r…   )rq   Útransform_response)r$   r   rP   rQ   rR   rS   rT   r€   r�   r‚   rƒ   r„   rU   r…   r†   r5   Ú	_responseÚ_transformed_responses                     r%   Úasync_completionz&BaseLLMAIOHTTPHandler.async_completion  s‰   è ø€ ð$ "&×!=Ñ!=Ø!'Ø+ØØØØØ)Øð ">ó 	"
÷ 	
ˆ	ð .=×-OÑ-OØØ"Ø)Ø#ØØØØ+Ø)Øð .Pó .
÷ (
Ðð %Ð$ð-	
øð(
ús!   ‚AŸA	 "AÁAÁAÁAÚacompletionÚfake_streamc                 óú  — t        j                  |t        j                  |«      ¬«      }|€t	        d|› d|› �«      ‚|j                  ||xs i ||||
|¬«      }|j                  |||||
|¬«      }|j                  ||||
|¬«      }|j                  |||||dœ¬«       |d	u r9| j                  ||||||	|||||||
||�t        |t        «      r|¬
«      S d ¬
«      S |d	u rK|d	ur||d<   | j                  ||||||||	||�t        |t        «      r|nd |
¬«      \  }}t        ||||¬«      S |�t        |t        «      st        «       }n|}| j!                  |||||	|
|¬«      }|j#                  |||||||||
|¬«
      S )N©r€   Úproviderz%Provider config not found for model: z and provider: ©r†   rR   r€   rƒ   r„   rU   rQ   ©rQ   r†   r€   r„   rU   rW   )r€   rƒ   r„   rU   rR   )Úcomplete_input_dictrQ   rR   ©Úinputr†   Úadditional_argsT)r   rP   rQ   rR   rS   rT   r€   r�   r‚   r†   rƒ   r„   rU   r…   r5   rW   )rP   rQ   rR   rS   r€   rƒ   r‚   rT   r�   r5   rU   )Úcompletion_streamr€   r   r‚   )rr   rP   rQ   rR   rT   rU   rS   rˆ   )r   Úget_provider_chat_configÚlitellmr   Ú
ValueErrorÚvalidate_environmentÚget_complete_urlÚtransform_requestÚpre_callr�   r-   r   Úmake_sync_callr   r   r   r~   rŠ   )r$   r€   rƒ   rQ   r   r�   r…   r‚   r„   rT   rU   rŽ   rW   r�   r†   rR   r5   rP   rS   r™   rr   ro   s                         r%   Ú
completionz BaseLLMAIOHTTPHandler.completion+  sd  € ô& "7×!OÑ!OØ¤'×"6Ñ"6Ð7JÓ"Kô"
ˆð Ð"ÜÐDÀUÀGÈ?Ð[nÐZoÐpÓqÐqà!×6Ñ6ØØ’M˜rØØØ+Ø)Øð 7ó 
ˆð #×3Ñ3ØØØØ+Ø)Øð 4ó 
ˆð &×7Ñ7ØØØ+Ø)Øð 8ó 
ˆð 	×ÑØØà'+Ø$Ø"ñð 	ô 	
ð ˜$ÑØ×(Ñ(Ø$7Ø /Ø!ØØØØØ-Ø'ØØ!Ø /Ø-Ø!Ø"(Ð"4¼ÀFÌMÔ9Z˜ð )ó ð ð aeð )ó ð ð$ �T‰>Ø $Ñ&Ø!'��X‘Ø)-×)<Ñ)<Ø /Ø!ØØØØ!Ø'ØØ'Ø"(Ð"4¼ÀFÌKÔ9X™Ð^bØ-ð *=ó *Ñ&Ð˜wô 'Ø"3ØØ$7Ø'ô	ð ð ˆ>¤¨F´KÔ!@Ü 1Ó 3Ñà &Ðà×5Ñ5Ø/Ø+ØØØØ)Øð 6ó 
ˆð ×1Ñ1ØØ!Ø)Ø#ØØØØ+Ø)Øð 2ó 
ð 	
r'   c           
      ól  — |�t        |t        «      st        «       }n|}d}|
du rd}| j                  ||||||	||¬«      }|
du r"|j	                  |j                  «       d¬«      }n!|j	                  |j                  «       d¬«      }|j                  |ddd|i¬«       |t        |j                  «      fS )	NTF)rr   rP   rQ   rR   rS   rT   rU   rW   )Ústreaming_responseÚsync_streamÚ zfirst stream response receivedr•   )r—   r†   Úoriginal_responser˜   )
r-   r   r   r~   Úget_model_response_iteratorr[   Ú
iter_linesÚ	post_callÚdictrR   )r$   rP   rQ   rR   rS   r€   rƒ   r‚   rU   rT   r�   r5   rr   rW   ro   r™   s                   r%   r¡   z$BaseLLMAIOHTTPHandler.make_sync_call¯  sñ   € ð ˆ>¤¨F´KÔ!@Ü 1Ó 3Ñà &ÐØˆØ˜$ÑØˆFà×5Ñ5Ø/Ø+ØØØØØ)Øð 6ó 	
ˆð ˜$ÑØ /× KÑ KØ#+§=¡=£?Àð !Ló !Ñð !0× KÑ KØ#+×#6Ñ#6Ó#8Àdð !Ló !Ðð
 	×ÑØØØ>Ø2°DÐ9ð	 	ô 	
ð !¤$ x×'7Ñ'7Ó"8Ð8Ð8r'   Úimagec              ƒ   ó  K  — d }d|v rtd|v rpt        «       }|d   j                  «       D ]#  \  }}|j                  ||d   |d   |d   ¬«       Œ% |d   j                  «       D ]  \  }}|j                  ||«       Œ | j                  |||||�d nt	        t
        |«      |||d¬«	      ƒ d {  –—† }|	j                  |
|j                  ||d	œ¬
«       |j                  ||||	t	        t
        |«      |||d |
¬«
      ƒ d {  –—† S 7 ŒV7 Œ­w)Nrs   rS   rY   r   é   )ÚfilenameÚcontent_typeF)	rO   rP   rQ   rR   rS   rV   rT   rU   rW   ©rR   rQ   ©r†   r§   r˜   ©
r€   r�   r‰   r‚   rw   r¬   r„   rU   r…   r†   )	r	   ÚitemsÚ	add_fieldrq   r   r«   rª   r\   Ú(async_transform_response_image_variation)r$   r5   rP   rQ   rR   rS   rT   rU   r�   r‚   r†   r€   r¬   r„   rV   ÚkÚvÚkeyÚvaluer‹   s                       r%   Úasync_image_variationsz,BaseLLMAIOHTTPHandler.async_image_variationsã  sW  è ø€ ð" &*ˆ	Ø�d‰?˜v¨™~Ü ›
ˆIØ˜W™×+Ñ+Ó-ò O‘��1Ø×#Ñ# A q¨¡t°a¸±dÈÈ1ÉÐ#ÕNðOð # 6™l×0Ñ0Ó2ò 0‘
��UØ×#Ñ# C¨Õ/ð0ð "&×!=Ñ!=Ø!'Ø+ØØØ"Ð.‘´D¼¸tÓ4DØØØ)Øð ">ó 
"
÷ 

ˆ	ð 	×ÑØØ'Ÿn™nà"Ø$ñð 	ô 	
ð %×MÑMØØ)Ø"Ø#Üœd DÓ)ØØ+Ø)ØØð Nó 
÷ 
ð 	
ð/

øð.
ús%   ‚B*DÂ,DÂ-ADÃ>DÃ?DÄDÚprint_verboseÚaimage_variationÚorganizationc                 óJ  — |€t        d«      ‚t        j                  |t        |«      ¬«      }|€t        d|› d�«      ‚|j	                  |||||	d¬«      }|j                  ||xs i |ddd	œg||	|¬
«      }|j                  ||||¬«      }|j                  d||||j                  «       dœ¬«       |	j                  dd«      r| j                  ||||||||||	||¬«      S |�t        |t        «      st        «       }n|}| j                  ||||||	d|j                  d«      xs i |j                  d«      |j                  d«      |j                  d«      ¬«      }|j                  ||j                   ||dœ¬«       |j#                  ||||t%        t&        |«      |||	d |¬«
      S )Nz1model is required for non-openai image variationsr‘   z$image variation provider not found: ú.Fr”   ÚuserÚtest)Úrolert   r“   )r€   r¬   r„   rR   r¦   )rR   rQ   r•   r–   Ú
async_call)rQ   rS   rR   r�   r‚   r€   rT   r5   r„   rU   r¬   rP   rS   rs   rt   ru   )rr   rP   rQ   rR   rT   rU   rW   rS   rs   rt   ru   r±   r²   r³   )rœ   r   Ú#get_provider_image_variation_configr   rž   r�   Ú!transform_request_image_variationr    ÚcopyÚgetr»   r-   r   r   r~   rª   r\   Ú"transform_response_image_variationr   r«   )r$   r�   r†   r€   r¬   rT   r   r‚   r„   rU   r¼   rQ   r½   Ú	logger_fnr5   r¾   rR   rP   rS   rr   ro   s                        r%   Úimage_variationsz&BaseLLMAIOHTTPHandler.image_variations!  s9  € ð& ˆ=ÜÐPÓQÐQä!6×!ZÑ!ZØÜ!Ð"5Ó6ô"
ˆð
 Ð"ÜÐCÐDWÐCXÐXYÐZÓ[Ð[à"×3Ñ3ØØØØ+Ø)Øð 4ó 
ˆð "×6Ñ6ØØ’M˜rØØ%°&Ñ9Ð:Ø+Ø)Øð 7ó 
ˆð &×GÑGØØØ+Øð	 Hó 
ˆð 	×ÑØØà"Ø$Ø'+§y¡y£{ñð 	ô 	
ð ×Ñ˜l¨EÔ2Ø×.Ñ.Ø!ØØØ-Ø'ØØØØ /Ø-ØØ /ð /ó ð ð ˆ>¤¨F´KÔ!@Ü 1Ó 3Ñà &Ðà×5Ñ5Ø/Ø+ØØØØ)ØØ—‘˜&Ó!Ò' RØ—(‘(˜7Ó#Ø—H‘H˜YÓ'Ø—8‘8˜HÓ%ð 6ó 
ˆð 	×ÑØØ&Ÿm™mà"Ø$ñð 	ô 	
ð ×AÑAØØ)Ø!Ø#Üœd DÓ)ØØ+Ø)ØØð Bó 
ð 	
r'   r^   c                 ó  — t        |dd«      }t        |dd «      }t        |dt        |«      «      }t        |dd «      }|€|rt        |dd «      }|rt        |d«      rt        |d|«      }|rt        |«      }ni }|j	                  |||¬«      ‚)Nrc   iô  rR   r\   ro   ra   )ÚgetattrÚstrr6   r«   rn   )r$   r^   rP   rc   Úerror_headersÚ
error_textÚerror_responses          r%   rm   z#BaseLLMAIOHTTPHandler._handle_errorŸ  s¡   € Ü$ Q¨°sÓ;ˆÜ  9¨dÓ3ˆÜ˜Q ¬¨A«Ó/ˆ
Ü '¨¨:°tÓ <ˆØÐ ¡^Ü# N°I¸tÓDˆMÙœg n°fÔ=Ü  °¸ÓDˆJÙÜ  Ó/‰MàˆMØ×-Ñ-Ø$Ø#Ø!ð .ó 
ð 	
r'   )NNNr    )NF)FNNN)NN)FN)NNFNNNN)-Ú__name__Ú
__module__Ú__qualname__r;   r   r   ÚBaseConnectorr&   r3   r8   r=   r@   rD   rN   r
   rÎ   r«   Úfloatrx   ÚTimeoutr	   r.   ÚClientResponserq   r   r   ÚResponser~   r   ÚLiteLLMLoggingObjÚlistr�   r   r¢   Útupler¡   r   r   r   r   r»   r   rË   r1   rm   © r'   r%   r   r   (   sy  „ ð 8<Ø48Ø26ñ	1à×-Ñ-°Ñ4ð1ð +¨TÑ1ð1ð ×(Ñ(¨4Ñ/ó	1ðÐ*AÀDÑ*Hó ð$ × 5Ñ 5¸Ñ <ó ð'°}ó 'ñ 	'ÀÐPTÑ@Tð 	'Ð`mó 	'òòðP &*Øñ*à+¨dÑ2ð*ð $ð*ð ð	*ð
 ð*ð �T‰kð*ð ˜Ÿ™Ñ&ð*ð ð*ð ˜d‘?ð*ð ð*ð 
×	Ñ	ó*ðj Ø!ØØ"ñ3à&ð3ð $ð3ð ð	3ð
 ð3ð ð3ð ˜Ÿ™Ñ&¨Ñ-ð3ð ð3ð ð3ð �d‰{ð3ð ð3ð �t‘ð3ð 
�‰ó3ðH #Ø'+ñ!(%à ð(%ð $ð(%ð ð	(%ð
 ð(%ð ð(%ð ˜Ÿ™Ñ&ð(%ð ð(%ð &ð(%ð 'ð(%ð ð(%ð ð(%ð ð(%ð -ð(%ð �t‘ð(%ð   Ñ$ó!(%ðn $Ø!Ø"Ø!ØHLñ#B
àðB
ð ðB
ð ð	B
ð
 !ðB
ð &ðB
ð 'ðB
ð ðB
ð ˜Ÿ™Ñ&ðB
ð ðB
ð ðB
ð �t‘ðB
ð ðB
ð �t‘ðB
ð  ˜‘ð!B
ð" Ð.Ñ.°Ñ>ÀÑEó#B
ð^ "Ø%)ñ29à#ð29ð ð29ð ð	29ð
 ð29ð ð29ð ð29ð ð29ð ˜Ÿ™Ñ&ð29ð ð29ð ˜dÑ"ð29ð 
ˆs�DˆyÑ	ó29ðh<
à Ñ$ð<
ð 2ð<
ð ð	<
ð
 ð<
ð 'ð<
ð ð<
ð ð<
ð &ð<
ð 'ð<
ð ð<
ð �T‰zð<
ð ð<
ð ð<
ð 
ó<
ðR *.Ø#Ø!&ØØØ#'Ø#ñ#|
à%ð|
ð ð|
ð �T‰zð	|
ð
 ð|
ð ð|
ð !ð|
ð 'ð|
ð ð|
ð ð|
ð   $‘ð|
ð ˜‘*ð|
ð ð|
ð  ˜D‘jð!|
ð" ˜‘ð#|
ð$ 
ó%|
ð|
˜yð 
¸:ô 
r'   r   ),r/   Úcollections.abcr   Útypingr   r   r   r   r;   rx   r   r	   r›   Úlitellm.litellm_core_utilsÚlitellm.typesÚlitellm.types.utilsÚ)litellm.llms.base_llm.chat.transformationr
   Ú5litellm.llms.base_llm.image_variations.transformationr   Ú+litellm.llms.custom_httpx.aiohttp_transportr   Ú&litellm.llms.custom_httpx.http_handlerr   r   r   r   Úlitellm.types.llms.openair   r   r   r   Úlitellm.utilsr   r   r   ÚtiktokenÚ*litellm.litellm_core_utils.litellm_loggingr   Ú_LiteLLMLoggingObjrÚ   r   Ú__annotations__r   rÝ   r'   r%   ú<module>rí      sz   ðÜ 
Ý $ß 2Ó 2ã Û ß +ã Û !Û Û Ý @õõ P÷ó õ 0ß UÑ Uß SÑ SáÛåXà*ÑàÐà€�Ó ÷H

ò H

r'   