
    YjH                      d dl mZ d dlZd dlmZmZmZmZmZ d dl	m
Z
mZmZ d dlZddl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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%m&Z& ddl'm(Z(m)Z)m*Z* ddl+m,Z,m-Z- ddl.m/Z/ ddl0m1Z1m2Z2m3Z3m4Z4 ddl5m6Z6m7Z7 ddl8m9Z9m:Z:m;Z;m<Z<m=Z=m>Z>m?Z? ddlm@Z@mAZA ddlBmCZCmDZDmEZE ddlFmGZGmHZH erddlImJZJmKZKmLZLmMZMmNZNmOZOmPZPmQZQmRZRmSZSmTZTmUZUmVZVmWZWmXZXmYZYmZZZm[Z[m\Z\m]Z]m^Z^m_Z_ ddl`maZambZb ddlcmdZdmeZe ddlfmgZgmhZh ddlimjZjmkZk ddllmmZmmnZn ddlompZpmqZq ddlrmsZsmtZt ddlumvZvmwZw ddlxmyZymzZz ddl{m|Z|m}Z} dd l~mZmZ dd!lmZmZ dd"lmZmZ dd#lmZmZ dd$lmZmZ dd%lmZmZ dd&lmZmZ dd'lmZmZ dd(lmZmZ dd)lmZmZ dd*lmZmZ dd+lmZmZ dd,lmZmZ g d-Zd.Zd=d/Zd=d0Z G d1 d2eD      Z G d3 d4eE      Z G d5 d6      Z G d7 d8      Z G d9 d:      Z G d; d<      ZeZeZy)>    )annotationsN)TYPE_CHECKINGAnyMappingCallable	Awaitable)SelfUnpackoverride   )_exceptionsQuerystring)WorkloadIdentityWorkloadIdentityAuthX509WorkloadIdentity)	OmitHeadersTimeoutNotGiven	TransportProxiesTypesHttpxSendArgsRequestOptions	not_given)is_given
is_mappingis_mapping_tget_async_library)cached_property)normalize_httpx_urlis_httpx2_sync_clientis_httpx2_async_client)SecurityOptionsFinalRequestOptions)__version__)	_Provider_provider_name_ProviderRuntime_configure_provider)StreamAsyncStream)MTLS_API_BASE_URLSyncX509WorkloadIdentityAuthAsyncX509WorkloadIdentityAuthvalidate_x509_api_urlis_x509_workload_identityvalidate_x509_api_credentialsvalidate_x509_request_authority)OpenAIErrorAPIStatusError)DEFAULT_MAX_RETRIESSyncAPIClientAsyncAPIClient)DataResidencyresolve_data_residency)betachatadminaudioevalsfilesimagesmodelsskillsvideosbatchesuploadsrealtime	responses
containers
embeddingscompletionsfine_tuningmoderationsconversationsvector_storescontent_provenance_checks)Files
AsyncFiles)ImagesAsyncImages)ModelsAsyncModels)VideosAsyncVideos)BatchesAsyncBatches)Beta	AsyncBeta)Chat	AsyncChat)
EmbeddingsAsyncEmbeddings)Admin
AsyncAdmin)Audio
AsyncAudio)CompletionsAsyncCompletions)Evals
AsyncEvals)ModerationsAsyncModerations)SkillsAsyncSkills)UploadsAsyncUploads)RealtimeAsyncRealtime)WebhooksAsyncWebhooks)	ResponsesAsyncResponses)
ContainersAsyncContainers)
FineTuningAsyncFineTuning)ContentProvenanceChecksAsyncContentProvenanceChecks)ConversationsAsyncConversations)VectorStoresAsyncVectorStores)r   r   r   r   OpenAIAsyncOpenAIClientAsyncClientzworkload-identity-authc                L    j                         t        fd| D              S )Nc              3  D   K   | ]  }|j                         k(    y wN)lower).0keyheaders     M/var/www/html/vmm-quimica/venv/lib/python3.12/site-packages/openai/_client.py	<genexpr>z_has_header.<locals>.<genexpr>n   s     8syy{f$8s    )r   anyheadersr   s    `r   _has_headerr   l   s    \\^F8888    c                h    j                         t        fd| j                         D              S )Nc              3  n   K   | ],  \  }}|j                         k(  xr t        |t               . y wr   )r   
isinstancer   )r   r   valuer   s      r   r   z&_has_omitted_header.<locals>.<genexpr>s   s/     cZS%syy{f$@E4)@@cs   25)r   r   itemsr   s    `r   _has_omitted_headerr   q   s)    \\^FcSZS`S`Sbcccr   c                      e Zd ZU ded<   ded<   ded<   ded<   ded<   ded	<   d
ed<   ded<   ded<   ded<   ded<   	 eedEd              Zej                  dFd       Zdddddddeddee	dddddd	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 dG fdZ
edHd       ZedId       ZedJd       ZedKd       ZedLd       ZedMd        ZedNd!       ZedOd"       ZedPd#       ZedQd$       ZedRd%       ZedSd&       ZedTd'       ZedUd(       ZedVd)       ZedWd*       ZedXd+       ZedYd,       ZedZd-       Zed[d.       Zed\d/       Z ed]d0       Z!ed^d1       Z"ed_d2       Z#ed`d3       Z$eedad4              Z%dd5	 	 	 	 	 	 	 	 	 db fd6Z&e	 	 	 	 	 	 	 	 dcd7       Z'eddd8       Z(eded9       Z)eeded:              Z*eded;       Z+eedf fd<              Z,edgd=       Z-edh fd>       Z.edid?       Z/edj fd@       Z0dkdAZ1dddeddddedededddddi dB	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 dldCZ2e2Z3e	 	 	 	 	 	 	 	 dmdD       Z4 xZ5S )nr   strapi_key
str | Noneadmin_api_key.WorkloadIdentity | X509WorkloadIdentity | Noneworkload_identityorganizationprojectwebhook_secretz:WorkloadIdentityAuth | SyncX509WorkloadIdentityAuth | None_workload_identity_auth_Provider | None	_provider_ProviderRuntime | None_provider_runtimebool_base_url_was_defaultstr | httpx2.URL | Nonewebsocket_base_urlc                    | j                   S r   	_base_urlselfs    r   base_urlzOpenAI.base_url        ~~r   c                    t        |      }t        | j                        rt        |       | j	                  |      | _        d| _        y NFr!   r1   r   r0   _enforce_trailing_slashr   r   r   urlnormalized_urls      r   r   zOpenAI.base_url   <    ,S1$T%;%;<!.155nE%*"r   NFTr   r   r   r   r   r   providerr   data_residencyr   timeoutmax_retriesdefault_headersdefault_queryhttp_client_strict_response_validation_enforce_credentialsc          
        t        |	|||
      }d}|dt        |      }d|fd|fd|fd|ffD cg c]	  \  }}|| }}}|r*dj                  d |D              }t        d	| d
| d      t	        |      }|| _        || _        ||t        k7  r|t        d      t        |      r|j                         }||nd| _
        |d| _        d| _        d| _        np|t        | _        d| _        d| _        nT|t        j                  j!                  d      }t#        |      rd| _        || _        n|xs d| _        d| _        d| _        |!|t        j                  j!                  d      }||nd| _        |3|r1| j                  s%| j                  || j$                  t        d      |!|t        j                  j!                  d      }|| _        |!|t        j                  j!                  d      }|| _        |t        j                  j!                  d      }|| _        |
| _        t        |      r|}d}n|d}d}nd|v rd}|}nt        d      ||j.                  }n!|t        j                  j!                  d      }|du xr |du | _        |
|t2        nd}|t5        |       |t        j                  j!                  d      nd}|li }|j7                  d      D ]C  }|j9                  d      }|dk\  s||dz   d j;                         ||d| j;                         <   E i |t=        |      r|ni }t>        |   tB        |||||||       |7tE        |j                         | jF                  |      | _        tL        | _'        y|%tI        |tK        | jF                              | _        tL        | _'        yc c}}w ) a  Construct a new synchronous OpenAI client instance.

        This automatically infers the following arguments from their corresponding environment variables if they are not provided:
        - `api_key` from `OPENAI_API_KEY`
        - `admin_api_key` from `OPENAI_ADMIN_KEY`
        - `organization` from `OPENAI_ORG_ID`
        - `project` from `OPENAI_PROJECT_ID`
        - `webhook_secret` from `OPENAI_WEBHOOK_SECRET`

        When `provider` is supplied, authentication and the base URL are configured by that provider instead.
        `data_residency` selects an OpenAI regional endpoint and cannot be combined with
        `base_url`, `websocket_base_url`, or `provider`.
        r   r   Nr   r   r   r   , c              3  (   K   | ]
  }d | d   yw`N r   names     r   r   z"OpenAI.__init__.<locals>.<genexpr>        %Hd$qk%H   -`provider` cannot be combined with top-level 9. Move provider authentication and routing options into `(...)`.FThe `api_key` and `workload_identity` arguments are mutually exclusive OPENAI_API_KEYOPENAI_ADMIN_KEYMissing credentials. Please pass an `api_key`, `workload_identity`, `admin_api_key`, or set the `OPENAI_API_KEY` or `OPENAI_ADMIN_KEY` environment variable.OPENAI_ORG_IDOPENAI_PROJECT_IDOPENAI_WEBHOOK_SECRETr   VInvalid `workload_identity` configuration: expected an X.509 or subject-token identityOPENAI_BASE_URLhttps://api.openai.com/v1OPENAI_CUSTOM_HEADERS
:r   r   versionr   r   r   r   custom_headerscustom_queryr   r   r   r   r   _use_httpx2)(r:   r(   joinr4   r*   r   r   %WORKLOAD_IDENTITY_API_KEY_PLACEHOLDERr1   copyr   r   _api_key_providerr   osenvirongetcallabler   r   r   r   r   r   r   r-   r0   splitfindstripr   super__init__r&   r.   _clientr   r"   r+   _default_stream_clsr   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   provider_runtimeprovider_namer   r   	conflicts	formattedx509_identitysubject_token_identitycustom_headers_envparsedlinecolon	__class__s                                 r   r   zOpenAI.__init__   sl   Z *HxL^
 59*84M ($m4(*;<*	$	D% $ 	I 	  II%Hi%HH	!CI; ONN[_\ce 
  38<!!17.S#SXiXufgg$%67 1 6 6 86F6N!2TX'DL%)D"+/D(*@DL%)D"+/D(**..)9: !CJ&&}")-&+/D( %5%=JJNN+=>M.>.F]D $$LL&&.!)""* o  $4$<::>>/:L(?/7jjnn%89G!ZZ^^,CDN,"4$%67-M%)"& M%)",, M%6"vww''00Hzz~~&78H%5%=%R(dBR",9,E(KfH$!(+HXH`RZZ^^,CDfj)%'F*006 M		#A:37	3D3J3J3LF4<--/0M gf|O?\ObdfO##*&(C 	 		
 $+G"/"4"4"6DLL^i,D( $*  $/+?"81$,,?,D(
 $* C	   Oc                    ddl m}  ||       S )
        Given a prompt, the model will return one or more predicted completions, and can also return the probabilities of alternative tokens at each position.
        r   )re   )resources.completionsre   )r   re   s     r   rK   zOpenAI.completionsN      
 	74  r   c                    ddl m}  ||       S )Nr   )r]   )resources.chatr]   )r   r]   s     r   r<   zOpenAI.chatW      (Dzr   c                    ddl m}  ||       S )
        Get a vector representation of a given input that can be easily consumed by machine learning models and algorithms.
        r   )r_   )resources.embeddingsr_   )r   r_   s     r   rJ   zOpenAI.embeddings]  s    
 	5$r   c                    ddl m}  ||       S )t
        Files are used to upload documents that can be used with features like Assistants and Fine-tuning.
        r   )rQ   )resources.filesrQ   )r   rQ   s     r   r@   zOpenAI.filesf  s    
 	+T{r   c                    ddl m}  ||       S )JGiven a prompt and/or an input image, the model will generate a new image.r   )rS   )resources.imagesrS   )r   rS   s     r   rA   zOpenAI.imageso       	-d|r   c                    ddl m}  ||       S )Nr   )ry   )#resources.content_provenance_checksry   )r   ry   s     r   rP   z OpenAI.content_provenance_checksv  s    P&t,,r   c                    ddl m}  ||       S )Nr   )rc   )resources.audiorc   )r   rc   s     r   r>   zOpenAI.audio|      *T{r   c                    ddl m}  ||       S )e
        Given text and/or image inputs, classifies if those inputs are potentially harmful.
        r   )ri   )resources.moderationsri   )r   ri   s     r   rM   zOpenAI.moderations  r  r   c                    ddl m}  ||       S ):List and describe the various models available in the API.r   )rU   )resources.modelsrU   )r   rU   s     r   rB   zOpenAI.models  r  r   c                    ddl m}  ||       S )Nr   )rw   )resources.fine_tuningrw   )r   rw   s     r   rL   zOpenAI.fine_tuning  s    5$r   c                    ddl m}  ||       S )Nr   )r}   )resources.vector_storesr}   )r   r}   s     r   rO   zOpenAI.vector_stores  s    9D!!r   c                    ddl m}  ||       S )Nr   )rq   )resources.webhooksrq   )r   rq   s     r   webhookszOpenAI.webhooks      0~r   c                    ddl m}  ||       S )Nr   )r[   )resources.betar[   )r   r[   s     r   r;   zOpenAI.beta  r  r   c                    ddl m}  ||       S );Create large batches of API requests to run asynchronously.r   )rY   )resources.batchesrY   )r   rY   s     r   rE   zOpenAI.batches       	/t}r   c                    ddl m}  ||       S )4Use Uploads to upload large files in multiple parts.r   )rm   )resources.uploadsrm   )r   rm   s     r   rF   zOpenAI.uploads  r+  r   c                    ddl m}  ||       S )Nr   )ra   )resources.adminra   )r   ra   s     r   r=   zOpenAI.admin  r  r   c                    ddl m}  ||       S )Nr   )rs   )resources.responsesrs   )r   rs   s     r   rH   zOpenAI.responses  s    2r   c                    ddl m}  ||       S )Nr   )ro   )resources.realtimero   )r   ro   s     r   rG   zOpenAI.realtime  r%  r   c                    ddl m}  ||       S ),Manage conversations and conversation items.r   )r{   )resources.conversationsr{   )r   r{   s     r   rN   zOpenAI.conversations  s     	;T""r   c                    ddl m}  ||       S ),Manage and run evals in the OpenAI platform.r   )rg   )resources.evalsrg   )r   rg   s     r   r?   zOpenAI.evals  s     	+T{r   c                    ddl m}  ||       S )Nr   )ru   )resources.containersru   )r   ru   s     r   rI   zOpenAI.containers  s    4$r   c                    ddl m}  ||       S )Nr   )rk   )resources.skillsrk   )r   rk   s     r   rC   zOpenAI.skills      ,d|r   c                    ddl m}  ||       S )Nr   )rW   )resources.videosrW   )r   rW   s     r   rD   zOpenAI.videos  r?  r   c                    t        |       S r   )OpenAIWithRawResponser   s    r   with_raw_responsezOpenAI.with_raw_response  s    $T**r   c                    t        |       S r   )OpenAIWithStreamedResponser   s    r   with_streaming_responsezOpenAI.with_streaming_response      )$//r   c                    t        d      S Nbrackets)array_formatr   r   s    r   qsz	OpenAI.qs       
33r   retriedc                  d }d}| j                   }|t        |t              r[|j                  | j                  k7  rt	        d      t        |j                  | j                         t        |       t        |       |j                  |j                  |d<   |j                  j                  d      }|dt         k(  r3|j                         }d| |j                  d<   |j                  |      }t        |t              r; |j                   |f| j                  |j                  j                  d      |d|}	nt#        
| H  |fd|i|}	|	j&                  d	k7  s| j                   ||	S | j                   j)                  |       |s|s|	S |	j+                          | j                   j-                  |       dt         |j                  d<    | j.                  |f|d
d|S NFzCX.509 workload identity cannot be changed after client construction)expected_originfollow_redirectsAuthorizationBearer )rS  expected_authorizationstreamrX    T)rX  rP  )r   r   r.   r   r4   r0   r   r   r3   r2   _follow_redirectsr   r   r   	get_token_can_retry_requestsend_api_requestr   _send_requeststatus_codeinvalidate_tokenclose_prepare_retry_request_send_with_auth_retryr   requestrX  rP  kwargsused_access_tokenrequest_is_replayable	x509_authauthorizationresponser   s             r   rc  zOpenAI._send_with_auth_retry  s    )- %00	 )%AB..$2H2HH%&kll%gkk4==Q/8-g6**6-6-H-H)*#OO//@M'*O)P QQ$-$7$7$9!5<=N<O3P0(1(D(DW(M%i!=>1y11 $'.':':?'K	
 H w,WNVNvNH3&$*F*F*NRcRkO$$556GH/O$$;;GD-45Z4[+\()t))'Y&$YRXYYr   c                    | j                   |fd|i|}| j                  1| j                  j                  | j                  j                  |      }|S NrX  )rc  r   normalize_responser   re  rX  rf  rk  s        r   r^  zOpenAI._send_request(  sX     .4--gOfOO!!-$2H2H2[2[2g--@@JHr   c                >   | j                   i S i }|j                  dd      r4| j                  j                         D ]  \  }}|j	                  ||        |j                  dd      r4| j
                  j                         D ]  \  }}|j	                  ||        |S Nbearer_authFadmin_api_key_authr   r   _bearer_authr   
setdefault_admin_api_key_authr   securityr   r   r   s        r   _auth_headerszOpenAI._auth_headers5      !!-I"$<<u-"//557 /
U""3./<<,e4"66<<> /
U""3./r   c                0    | j                   }|si S dd| iS NrU  rV  r   r   r   s     r   ru  zOpenAI._bearer_authC  %    ,,I77)!455r   c                ^    | j                   i S | j                  }|r	|t        k(  ri S dd| iS r}  r   r   r   r  s     r   auth_headerszOpenAI.auth_headersJ  @     !!-I,,'%JJI77)!455r   c                0    | j                   }|i S dd| iS r}  r   r   r   s     r   rw  zOpenAI._admin_api_key_authU  *    ** I7=/!:;;r   c                    i t         |   d| j                  | j                  n	t               | j                  | j                  n	t               d| j
                  S )NfalsezX-Stainless-AsynczOpenAI-OrganizationzOpenAI-Project)r   r   r   r   r   _custom_headersr   r   s    r   r   zOpenAI.default_headers\  s`    
g%
!(8<8I8I8U4#4#4[_[a.2ll.FdllDF	

 ""
 	
r   c                d    | j                   y t        |d      st        |d      ry t        d      NrU  z"Could not resolve authentication method. Expected either api_key or admin_api_key to be set. Or for one of the `Authorization` or `Authorization` headers to be explicitly omitted"r   r   r   	TypeErrorr   r   r   s      r   _validate_headerszOpenAI._validate_headersg  <    !!-w04GXg4h C
 	
r   c                   | j                   2| j                   j                  T| j                   j                  |      }n8| j                  ,|j                  j	                  dd      r| j                          t        |   |      S Nrr  F)r   transform_requestr   ry  r   _refresh_api_keyr   _prepare_optionsr   optionsr   s     r   r  zOpenAI._prepare_optionss  su    !!-%%77C00BB7K##/G4D4D4H4HX]4^!!#w'00r   c                    | j                   3| j                   j                  | j                   j                  |       y y y r   )r   prepare_requestr   re  s     r   _prepare_requestzOpenAI._prepare_request}  s<    !!-$2H2H2X2X2d""227; 3e-r   c                    | j                   t        | j                  t              rt	        j
                         S t        |   |      S r   )r   r   r   r.   httpx2Authr   _custom_auth)r   ry  r   s     r   r  zOpenAI._custom_auth  s;    !!-D<X<XZv1w;;= w#H--r   c                \    | j                   | j                         | _        | j                  S r   r   r   r   s    r   r  zOpenAI._refresh_api_key  s(    !!-113DL||r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   set_default_headersr   set_default_queryr   _extra_kwargsc               H   ||t        d      ||t        d      t        |t               xr || j                  u}|rdn| j                  }|rdn| j
                  }|ri n| j                  }|i ||}n||}| j                  }|i ||}n||}|xs | j                  }t        |t              r| j                  n|}t        |
|	||      }	d}|	|||||	d}n| j                  ||||	d}n||n| j                  }||d}t        | j                        }t        |      }||k7  }|r| j                  rdn| j                  } |	du xr | xr | j                  }||n|xs | j                  xs | j                  |xs | j                   ||	xs | d} | j"                  d
|xs ||xs ||xs | j$                  |
dn|xs | j&                  t        |t              r| j(                  n||t+        |      r|n| j,                  |||dn|d	
||}!|rd|!_        |!S z
        Create a new client instance re-using the same options given to the current client with optional overriding.
        `data_residency` replaces the inherited HTTP and WebSocket endpoints, without changing this client.
        NzPThe `default_headers` and `set_default_headers` arguments are mutually exclusivezLThe `default_query` and `set_default_query` arguments are mutually exclusiver   F)r   r   r   r   r   )r   r   r   r   T)
r   r   r   r   r   r   r   r   r   r   r   
ValueErrorr   r   r   r   r   r  _custom_queryr   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  provider_changedinherited_organizationinherited_projectr   paramsnext_providerpreserve_default_base_urlauth_optionsnext_workload_identitycurrent_x509	next_x509mode_changedinherited_base_urlcopieds"                                     r   r   zOpenAI.copy  s   6 &+>+Jopp$):)Fkll)(H==`(RVR`R`B`)9t?P?P$4D$,,+;RAUAU&44O4G ,)G##$00-0F*&F!1T\\*4Xx*Hh)H}Qc
 %*!$)"!.%6$L ^^'"!.%6$	L ;L:W%6]a]s]s""'8'@)-&4T5K5KLL12HII'94L)5$:T:TZ^ZgZg(0D(8(l=M(lRVRlRl% %0 #F 6 6F$,,!.!D$2D2D%;$:(:L   
%?)?00)@T-@-@'5'AtGYGt]a]t]t$.w$ADLLw#'/'<$BRBR# )=)EK_
 
 
 %+/F(r   c                  t        |      r|j                  d|      n|}|j                  dk(  rt        j                  |||      S |j                  dk(  rt        j
                  |||      S |j                  dk(  rt        j                  |||      S |j                  dk(  rt        j                  |||      S |j                  dk(  rt        j                  |||      S |j                  dk(  rt        j                  |||      S |j                  d	k(  rt        j                  |||      S |j                  d
k\  rt        j                  |||      S t        |||      S Nerrori  )rk  bodyrY  i  i  i  i  i  i  r   r   r_  r   BadRequestErrorAuthenticationErrorPermissionDeniedErrorNotFoundErrorConflictErrorUnprocessableEntityErrorRateLimitErrorInternalServerErrorr5   r   err_msgr  rk  datas        r   _make_status_errorzOpenAI._make_status_error  I    +5T*:txx&3&..wPTUU3&227XTXYY3&44WxVZ[[3&,,WxdSS3&,,WxdSS3&77(Y]^^3&--gtTT3&227XTXYYgtDDr   returnz
httpx2.URLr   zhttpx2.URL | strr  None)$r   str | Callable[[], str] | Noner   r   r   r   r   r   r   r   r   r   r   r   r   "str | httpx2.URL | None | NotGivenr   DataResidency | Noner   r   r   !float | Timeout | None | NotGivenr   intr   Mapping[str, str] | Noner   Mapping[str, object] | Noner   httpx2.Client | Noner   r   r   r   r  r  )r  re   )r  r]   )r  r_   )r  rQ   )r  rS   )r  ry   )r  rc   )r  ri   )r  rU   )r  rw   )r  r}   )r  rq   )r  r[   )r  rY   )r  rm   )r  ra   )r  rs   )r  ro   )r  r{   )r  rg   )r  ru   )r  rk   )r  rW   )r  rC  )r  rF  r  r   
re  httpx2.RequestrX  r   rP  r   rf  Unpack[HttpxSendArgs]r  httpx2.Responsere  r  rX  r   rf  r  r  r  ry  r$   r  dict[str, str]r  r  r  zdict[str, str | Omit]r   r   r   r   r  r  r  r%   r  r%   re  r  r  r  )ry  r$   r  httpx2.Auth | Noner  r   )(r   r  r   r   r   r   r   _Provider | None | NotGivenr   r   r   r   r   r   r   r   r   r  r   r  r   r  r   r  r   int | NotGivenr   r  r  r  r   r  r  r  r   bool | Noner  Mapping[str, Any]r  r	   r  r   r  objectrk  r  r  r5   )6__name__
__module____qualname____annotations__propertyr   r   setterr   r6   r   r    rK   r<   rJ   r@   rA   rP   r>   rM   rB   rL   rO   r$  r;   rE   rF   r=   rH   rG   rN   r?   rI   rC   rD   rD  rG  rM  rc  r^  rz  ru  r  rw  r   r  r  r  r  r  r   with_optionsr  __classcell__r   s   @r   r   r   v   s<   LEEWW..//    __+ + 37$(LP#'"%)%)7@/36:5>.4859 -1 -2%)=t* 0t* "	t*
 Jt* !t* t* #t* #t* 5t* -t* 4t* 3t* t* 2t*  3!t*( *)t*: &*;t*< #=t*> 
?t*l ! !  
         - -
  
 ! !      
 " "
  
  
      
  
  
 # #      
  
  
 + + 0 0 4  4 /Z/Z 	/Z
 /Z (/Z 
/Zb 

 	

 (
 

 
   6 6 6  6 < < 
  
 	
 	
 1 1 < < . . 37$(LP09#'"%)6:7@/35>,0&/488<599=,0+-+j 0j "	j
 Jj .j !j j #j 4j 5j -j 3j *j $j  2!j" 6#j$ 3%j& 7'j( *)j* )+j, 
-j\ LEE 	E
 "E 
E Er   r   c                      e Zd ZU ded<   ded<   ded<   ded<   ded<   ded	<   d
ed<   ded<   ded<   ded<   ded<   	 eedEd              Zej                  dFd       Zdddddddeddee	dddddd	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 dG fdZ
edHd       ZedId       ZedJd       ZedKd       ZedLd       ZedMd        ZedNd!       ZedOd"       ZedPd#       ZedQd$       ZedRd%       ZedSd&       ZedTd'       ZedUd(       ZedVd)       ZedWd*       ZedXd+       ZedYd,       ZedZd-       Zed[d.       Zed\d/       Z ed]d0       Z!ed^d1       Z"ed_d2       Z#ed`d3       Z$eedad4              Z%dd5	 	 	 	 	 	 	 	 	 db fd6Z&e	 	 	 	 	 	 	 	 dcd7       Z'eddd8       Z(eded9       Z)eeded:              Z*eded;       Z+eedf fd<              Z,edgd=       Z-edh fd>       Z.edid?       Z/eedj fd@              Z0dkdAZ1dddeddddedededddddi dB	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 dldCZ2e2Z3e	 	 	 	 	 	 	 	 dmdD       Z4 xZ5S )nr   r   r   r   r   r   r   r   r   r   z;WorkloadIdentityAuth | AsyncX509WorkloadIdentityAuth | Noner   r   r   r   r   r   r   r   r   c                    | j                   S r   r   r   s    r   r   zAsyncOpenAI.base_url7  r   r   c                    t        |      }t        | j                        rt        |       | j	                  |      | _        d| _        y r   r   r   s      r   r   zAsyncOpenAI.base_url<  r   r   NFTr   c          
        t        |	|||
      }d}|dt        |      }d|fd|fd|fd|ffD cg c]	  \  }}|| }}}|r*dj                  d |D              }t        d	| d
| d      t	        |      }|| _        || _        ||t        k7  r|t        d      t        |      r|j                         }||nd| _
        |d| _        d| _        d| _        np|t        | _        d| _        d| _        nT|t        j                  j!                  d      }t#        |      rd| _        || _        n|xs d| _        d| _        d| _        |!|t        j                  j!                  d      }||nd| _        |3|r1| j                  s%| j                  || j$                  t        d      |!|t        j                  j!                  d      }|| _        |!|t        j                  j!                  d      }|| _        |t        j                  j!                  d      }|| _        |
| _        t        |      r|}d}n|d}d}nd|v rd}|}nt        d      ||j.                  }n!|t        j                  j!                  d      }|du xr |du | _        |
|t2        nd}|t5        |       |t        j                  j!                  d      nd}|li }|j7                  d      D ]C  }|j9                  d      }|dk\  s||dz   d j;                         ||d| j;                         <   E i |t=        |      r|ni }t>        |   tB        |||||||       |7tE        |j                         | jF                  |      | _        tL        | _'        y|%tI        |tK        | jF                              | _        tL        | _'        yc c}}w ) a  Construct a new async AsyncOpenAI client instance.

        This automatically infers the following arguments from their corresponding environment variables if they are not provided:
        - `api_key` from `OPENAI_API_KEY`
        - `admin_api_key` from `OPENAI_ADMIN_KEY`
        - `organization` from `OPENAI_ORG_ID`
        - `project` from `OPENAI_PROJECT_ID`
        - `webhook_secret` from `OPENAI_WEBHOOK_SECRET`

        When `provider` is supplied, authentication and the base URL are configured by that provider instead.
        `data_residency` selects an OpenAI regional endpoint and cannot be combined with
        `base_url`, `websocket_base_url`, or `provider`.
        r   Nr   r   r   r   r   c              3  (   K   | ]
  }d | d   ywr   r   r   s     r   r   z'AsyncOpenAI.__init__.<locals>.<genexpr>  r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   )(r:   r(   r   r4   r*   r   r   r   r1   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r-   r0   r   r   r   r   r   r   r&   r/   r   r   r#   r,   r   r   s                                 r   r   zAsyncOpenAI.__init__D  sl   Z *HxL^
 59*84M ($m4(*;<*	$	D% $ 	I 	  II%Hi%HH	!CI; ONN[_\ce 
  38<!!17.S#SXiXufgg$%67 1 6 6 86F6N!2TX'DL%)D"+/D(*@DL%)D"+/D(**..)9: !NU&&}")-&+/D( %5%=JJNN+=>M.>.F]D $$LL&&.!)""* o  $4$<::>>/:L(?/7jjnn%89G!ZZ^^,CDN,"4$%67-M%)"& M%)",, M%6"vww''00Hzz~~&78H%5%=%R(dBR",9,E(KfH$!(+HXH`RZZ^^,CDfj)%'F*006 M		#A:37	3D3J3J3LF4<--/0M gf|O?\ObdfO##*&(C 	 		
 $+H"/"4"4"6DLL^i,D( $/  $/+?"824<<@,D(
 $/ C	r  c                    ddl m}  ||       S )r  r   )rf   )r  rf   )r   rf   s     r   rK   zAsyncOpenAI.completions      
 	<%%r   c                    ddl m}  ||       S )Nr   )r^   )r  r^   )r   r^   s     r   r<   zAsyncOpenAI.chat      -r   c                    ddl m}  ||       S )r
  r   )r`   )r  r`   )r   r`   s     r   rJ   zAsyncOpenAI.embeddings	  s    
 	:t$$r   c                    ddl m}  ||       S )r  r   )rR   )r  rR   )r   rR   s     r   r@   zAsyncOpenAI.files  s    
 	0$r   c                    ddl m}  ||       S )r  r   )rT   )r  rT   )r   rT   s     r   rA   zAsyncOpenAI.images       	24  r   c                    ddl m}  ||       S )Nr   )rz   )r  rz   )r   rz   s     r   rP   z%AsyncOpenAI.content_provenance_checks"  s    U+D11r   c                    ddl m}  ||       S )Nr   )rd   )r  rd   )r   rd   s     r   r>   zAsyncOpenAI.audio(      /$r   c                    ddl m}  ||       S )r  r   )rj   )r  rj   )r   rj   s     r   rM   zAsyncOpenAI.moderations.  r  r   c                    ddl m}  ||       S )r  r   )rV   )r  rV   )r   rV   s     r   rB   zAsyncOpenAI.models7  r  r   c                    ddl m}  ||       S )Nr   )rx   )r  rx   )r   rx   s     r   rL   zAsyncOpenAI.fine_tuning>  s    :t$$r   c                    ddl m}  ||       S )Nr   )r~   )r!  r~   )r   r~   s     r   rO   zAsyncOpenAI.vector_storesD  s    > &&r   c                    ddl m}  ||       S )Nr   )rr   )r#  rr   )r   rr   s     r   r$  zAsyncOpenAI.webhooksJ      5T""r   c                    ddl m}  ||       S )Nr   )r\   )r'  r\   )r   r\   s     r   r;   zAsyncOpenAI.betaP  r  r   c                    ddl m}  ||       S )r)  r   )rZ   )r*  rZ   )r   rZ   s     r   rE   zAsyncOpenAI.batchesV       	4D!!r   c                    ddl m}  ||       S )r-  r   )rn   )r.  rn   )r   rn   s     r   rF   zAsyncOpenAI.uploads]  r  r   c                    ddl m}  ||       S )Nr   )rb   )r0  rb   )r   rb   s     r   r=   zAsyncOpenAI.admind  r  r   c                    ddl m}  ||       S )Nr   )rt   )r2  rt   )r   rt   s     r   rH   zAsyncOpenAI.responsesj  s    7d##r   c                    ddl m}  ||       S )Nr   )rp   )r4  rp   )r   rp   s     r   rG   zAsyncOpenAI.realtimep  r  r   c                    ddl m}  ||       S )r6  r   )r|   )r7  r|   )r   r|   s     r   rN   zAsyncOpenAI.conversationsv  s     	@!$''r   c                    ddl m}  ||       S )r9  r   )rh   )r:  rh   )r   rh   s     r   r?   zAsyncOpenAI.evals}  s     	0$r   c                    ddl m}  ||       S )Nr   )rv   )r<  rv   )r   rv   s     r   rI   zAsyncOpenAI.containers  s    9t$$r   c                    ddl m}  ||       S )Nr   )rl   )r>  rl   )r   rl   s     r   rC   zAsyncOpenAI.skills      14  r   c                    ddl m}  ||       S )Nr   )rX   )rA  rX   )r   rX   s     r   rD   zAsyncOpenAI.videos  r  r   c                    t        |       S r   )AsyncOpenAIWithRawResponser   s    r   rD  zAsyncOpenAI.with_raw_response  rH  r   c                    t        |       S r   )AsyncOpenAIWithStreamedResponser   s    r   rG  z#AsyncOpenAI.with_streaming_response  s    .t44r   c                    t        d      S rJ  r   r   s    r   rM  zAsyncOpenAI.qs  rN  r   rO  c               >  K   d }d}| j                   }|t        |t              r[|j                  | j                  k7  rt	        d      t        |j                  | j                         t        |       t        |       |j                  |j                  |d<   |j                  j                  d      }|dt         k(  r;|j                          d {   }d| |j                  d<   |j                  |      }t        |t              rC |j                   |f| j                  |j                  j                  d      |d| d {   }	nt#        
| H  |fd|i| d {   }	|	j&                  d	k7  s| j                   ||	S | j                   j)                  |       |s|s|	S |	j+                          d {    | j                   j-                  |       dt         |j                  d<    | j.                  |f|d
d| d {   S 7 <7 7 7 Z7 wrR  )r   r   r/   r   r4   r0   r   r   r3   r2   rZ  r   r   r   get_token_asyncr\  r]  r   r^  r_  r`  acloserb  rc  rd  s             r   rc  z!AsyncOpenAI._send_with_auth_retry  s      )- %00	 )%BC..$2H2HH%&kll%gkk4==Q/8-g6**6-6-H-H)*#OO//@M'*O)P QQ*3*C*C*E$E!5<=N<O3P0(1(D(DW(M%i!>?7Y77 $'.':':?'K	
  H #W27T6TVTTH3&$*F*F*NRcRkO$$556GH/Ooo$$;;GD-45Z4[+\(/T//_PT_X^___1 %F
 U 	  `s]   CHHA4HHH&H'AH>H?AHHHHHHHc               @  K    | j                   |fd|i| d {   }| j                  l| j                  j                  %| j                  j                  |       d {   }|S | j                  j                  | j                  j                  |      }|S 7 ~7 ;wrm  )rc  r   normalize_async_responsern  ro  s        r   r^  zAsyncOpenAI._send_request  s      433GUFUfUU!!-%%>>J!%!7!7!P!PQY!ZZ  ''::F11DDXN V [s"   BBAB B!:BBc                >   | j                   i S i }|j                  dd      r4| j                  j                         D ]  \  }}|j	                  ||        |j                  dd      r4| j
                  j                         D ]  \  }}|j	                  ||        |S rq  rt  rx  s        r   rz  zAsyncOpenAI._auth_headers  r{  r   c                0    | j                   }|si S dd| iS r}  r~  r  s     r   ru  zAsyncOpenAI._bearer_auth  r  r   c                ^    | j                   i S | j                  }|r	|t        k(  ri S dd| iS r}  r  r  s     r   r  zAsyncOpenAI.auth_headers  r  r   c                0    | j                   }|i S dd| iS r}  r  r  s     r   rw  zAsyncOpenAI._admin_api_key_auth  r  r   c                    i t         |   dt                | j                  | j                  n	t	               | j
                  | j
                  n	t	               d| j                  S )Nzasync:r  )r   r   r   r   r   r   r  r  s    r   r   zAsyncOpenAI.default_headers  sl    
g%
#)*;*=)>!?8<8I8I8U4#4#4[_[a.2ll.FdllDF	

 ""
 	
r   c                d    | j                   y t        |d      st        |d      ry t        d      r  r  r  s      r   r  zAsyncOpenAI._validate_headers  r  r   c                  K   | j                   l| j                   j                  $| j                   j                  |       d {   }nr| j                   j                  \| j                   j                  |      }n@| j                  4|j                  j                  dd      r| j                          d {    t        | !  |       d {   S 7 7 7 wr  )	r   transform_async_requestr  r   ry  r   r  r   r  r  s     r   r  zAsyncOpenAI._prepare_options"  s     !!-%%==I $ 6 6 N Nw WW''99E00BB7K##/G4D4D4H4HX]4^'')))W-g666 X *6s7   ACCA2C7C8CCCCCc                  K   | j                   y | j                   j                  $| j                   j                  |       d {    y | j                   j                  | j                   j                  |       y y 7 8wr   )r   prepare_async_requestr  r  s     r   r  zAsyncOpenAI._prepare_request.  ss     !!)!!77C((>>wGGG##33?""227; @ Hs   AA?A=9A?c                    | j                   t        | j                  t              rt	        j
                         S t        |   S r   )r   r   r   r/   r  r  r   custom_authr  s    r   r1  zAsyncOpenAI.custom_auth8  s=     !!-((*G2
 ;;= w""r   c                x   K   | j                   | j                          d {   | _        | j                  S 7 wr   r  r   s    r   r  zAsyncOpenAI._refresh_api_keyB  s4     !!-!%!7!7!99DL|| :s    :8:r  c               H   ||t        d      ||t        d      t        |t               xr || j                  u}|rdn| j                  }|rdn| j
                  }|ri n| j                  }|i ||}n||}| j                  }|i ||}n||}|xs | j                  }t        |t              r| j                  n|}t        |
|	||      }	d}|	|||||	d}n| j                  ||||	d}n||n| j                  }||d}t        | j                        }t        |      }||k7  }|r| j                  rdn| j                  } |	du xr | xr | j                  }||n|xs | j                  xs | j                  |xs | j                   ||	xs | d} | j"                  d
|xs ||xs ||xs | j$                  |
dn|xs | j&                  t        |t              r| j(                  n||t+        |      r|n| j,                  |||dn|d	
||}!|rd|!_        |!S r  r  r  s"                                     r   r   zAsyncOpenAI.copyH  s   6 &+>+Jopp$):)Fkll)(H==`(RVR`R`B`)9t?P?P$4D$,,+;RAUAU&44O4G ,)G##$00-0F*&F!1T\\*4Xx*Hh)H}Qc
 %*!$)"!.%6$L ^^'"!.%6$	L ;L:W%6]a]s]s""'8'@)-&4T5K5KLL12HII'94L)5$:T:TZ^ZgZg(0D(8(l=M(lRVRlRl% %0 #F 6 6F$,,!.!D$2D2D%;$:(:L   
%?)?00)@T-@-@'5'AtGYGt]a]t]t$.w$ADLLw#'/'<$BRBR# )=)EK_
 
 
 %+/F(r   c                  t        |      r|j                  d|      n|}|j                  dk(  rt        j                  |||      S |j                  dk(  rt        j
                  |||      S |j                  dk(  rt        j                  |||      S |j                  dk(  rt        j                  |||      S |j                  dk(  rt        j                  |||      S |j                  dk(  rt        j                  |||      S |j                  d	k(  rt        j                  |||      S |j                  d
k\  rt        j                  |||      S t        |||      S r  r  r  s        r   r  zAsyncOpenAI._make_status_error  r  r   r  r  )$r   )str | Callable[[], Awaitable[str]] | Noner   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   httpx2.AsyncClient | Noner   r   r   r   r  r  )r  rf   )r  r^   )r  r`   )r  rR   )r  rT   )r  rz   )r  rd   )r  rj   )r  rV   )r  rx   )r  r~   )r  rr   )r  r\   )r  rZ   )r  rn   )r  rb   )r  rt   )r  rp   )r  r|   )r  rh   )r  rv   )r  rl   )r  rX   )r  r  )r  r  r  r  r  r  r  r  r  r  r  )r  r  r  )(r   r5  r   r   r   r   r   r  r   r   r   r   r   r   r   r   r   r  r   r  r   r  r   r6  r   r  r   r  r  r  r   r  r  r  r   r  r  r  r  r	   r  )6r  r  r  r  r  r   r   r  r   r6   r   r    rK   r<   rJ   r@   rA   rP   r>   rM   rB   rL   rO   r$  r;   rE   rF   r=   rH   rG   rN   r?   rI   rC   rD   rD  rG  rM  rc  r^  rz  ru  r  rw  r   r  r  r  r1  r  r   r  r  r  r  s   @r   r   r   "  sF   LEEXX..//    __+ + >B$(LP#'"%)%)7@/36:5>.4859 26 -2%)=t/ ;t/ "	t/
 Jt/ !t/ t/ #t/ #t/ 5t/ -t/ 4t/ 3t/ t/ 2t/  3!t/( /)t/: &*;t/< #=t/> 
?t/l & &  
 % %     ! ! 2 2
    
 & & ! ! % %
 ' '
 # #
  
 " " " "    
 $ $
 # #
 ( (     % %
 ! !
 ! !
 0 0 5 5 4  4 /`/` 	/`
 /` (/` 
/`b  	
 ( 
    6 6 6  6 < < 
  
 	
 	
 	7 	7 < < #  # >B$(LP09#'"%)6:7@/35>15&/488<599=,0+-+i ;i "	i
 Ji .i !i i #i 4i 5i -i 3i /i $i  2!i" 6#i$ 3%i& 7'i( *)i* )+i, 
-iZ LEE 	E
 "E 
E Er   r   c                     e Zd ZU ded<   ddZedd       Zedd       Zedd       Zedd       Z	ed d       Z
ed!d	       Zed"d
       Zed#d       Zed$d       Zed%d       Zed&d       Zed'd       Zed(d       Zed)d       Zed*d       Zed+d       Zed,d       Zed-d       Zed.d       Zed/d       Zed0d       Zed1d       Zy)2rC  r   r   c                    || _         y r   r   r   clients     r   r   zOpenAIWithRawResponse.__init__  	    r   c                F    ddl m}  || j                  j                        S )r  r   )CompletionsWithRawResponse)r  r>  r   rK   )r   r>  s     r   rK   z!OpenAIWithRawResponse.completions      
 	F)$,,*B*BCCr   c                F    ddl m}  || j                  j                        S )Nr   )ChatWithRawResponse)r  rA  r   r<   )r   rA  s     r   r<   zOpenAIWithRawResponse.chat      7"4<<#4#455r   c                F    ddl m}  || j                  j                        S )r
  r   )EmbeddingsWithRawResponse)r  rD  r   rJ   )r   rD  s     r   rJ   z OpenAIWithRawResponse.embeddings  s    
 	D()@)@AAr   c                F    ddl m}  || j                  j                        S )r  r   )FilesWithRawResponse)r  rF  r   r@   )r   rF  s     r   r@   zOpenAIWithRawResponse.files  s    
 	:#DLL$6$677r   c                F    ddl m}  || j                  j                        S )r  r   )ImagesWithRawResponse)r  rH  r   rA   )r   rH  s     r   rA   zOpenAIWithRawResponse.images       	<$T\\%8%899r   c                F    ddl m}  || j                  j                        S )Nr   )&ContentProvenanceChecksWithRawResponse)r  rK  r   rP   )r   rK  s     r   rP   z/OpenAIWithRawResponse.content_provenance_checks  s    _5dll6\6\]]r   c                F    ddl m}  || j                  j                        S )Nr   )AudioWithRawResponse)r  rM  r   r>   )r   rM  s     r   r>   zOpenAIWithRawResponse.audio      9#DLL$6$677r   c                F    ddl m}  || j                  j                        S )r  r   )ModerationsWithRawResponse)r  rP  r   rM   )r   rP  s     r   rM   z!OpenAIWithRawResponse.moderations  r?  r   c                F    ddl m}  || j                  j                        S )r  r   )ModelsWithRawResponse)r  rR  r   rB   )r   rR  s     r   rB   zOpenAIWithRawResponse.models  rI  r   c                F    ddl m}  || j                  j                        S )Nr   )FineTuningWithRawResponse)r  rT  r   rL   )r   rT  s     r   rL   z!OpenAIWithRawResponse.fine_tuning$  s    D()A)ABBr   c                F    ddl m}  || j                  j                        S )Nr   )VectorStoresWithRawResponse)r!  rV  r   rO   )r   rV  s     r   rO   z#OpenAIWithRawResponse.vector_stores*  s    H*4<<+E+EFFr   c                F    ddl m}  || j                  j                        S )Nr   )BetaWithRawResponse)r'  rX  r   r;   )r   rX  s     r   r;   zOpenAIWithRawResponse.beta0  rB  r   c                F    ddl m}  || j                  j                        S )r)  r   )BatchesWithRawResponse)r*  rZ  r   rE   )r   rZ  s     r   rE   zOpenAIWithRawResponse.batches6       	>%dll&:&:;;r   c                F    ddl m}  || j                  j                        S )r-  r   )UploadsWithRawResponse)r.  r]  r   rF   )r   r]  s     r   rF   zOpenAIWithRawResponse.uploads=  r[  r   c                F    ddl m}  || j                  j                        S )Nr   )AdminWithRawResponse)r0  r_  r   r=   )r   r_  s     r   r=   zOpenAIWithRawResponse.adminD  rN  r   c                F    ddl m}  || j                  j                        S )Nr   )ResponsesWithRawResponse)r2  ra  r   rH   )r   ra  s     r   rH   zOpenAIWithRawResponse.responsesJ  s    A'(>(>??r   c                F    ddl m}  || j                  j                        S )Nr   )RealtimeWithRawResponse)r4  rc  r   rG   )r   rc  s     r   rG   zOpenAIWithRawResponse.realtimeP  s    ?&t||'<'<==r   c                F    ddl m}  || j                  j                        S )r6  r   )ConversationsWithRawResponse)r7  re  r   rN   )r   re  s     r   rN   z#OpenAIWithRawResponse.conversationsV  s     	J+DLL,F,FGGr   c                F    ddl m}  || j                  j                        S )r9  r   )EvalsWithRawResponse)r:  rg  r   r?   )r   rg  s     r   r?   zOpenAIWithRawResponse.evals]  s     	:#DLL$6$677r   c                F    ddl m}  || j                  j                        S )Nr   )ContainersWithRawResponse)r<  ri  r   rI   )r   ri  s     r   rI   z OpenAIWithRawResponse.containersd  s    C()@)@AAr   c                F    ddl m}  || j                  j                        S )Nr   )SkillsWithRawResponse)r>  rk  r   rC   )r   rk  s     r   rC   zOpenAIWithRawResponse.skillsj      ;$T\\%8%899r   c                F    ddl m}  || j                  j                        S )Nr   )VideosWithRawResponse)rA  rn  r   rD   )r   rn  s     r   rD   zOpenAIWithRawResponse.videosp  rl  r   Nr;  r   r  r  )r  z&completions.CompletionsWithRawResponse)r  zchat.ChatWithRawResponse)r  z$embeddings.EmbeddingsWithRawResponse)r  zfiles.FilesWithRawResponse)r  zimages.ImagesWithRawResponse)r  z@content_provenance_checks.ContentProvenanceChecksWithRawResponse)r  zaudio.AudioWithRawResponse)r  z&moderations.ModerationsWithRawResponse)r  zmodels.ModelsWithRawResponse)r  z%fine_tuning.FineTuningWithRawResponse)r  z)vector_stores.VectorStoresWithRawResponse)r  zbeta.BetaWithRawResponse)r  zbatches.BatchesWithRawResponse)r  zuploads.UploadsWithRawResponse)r  zadmin.AdminWithRawResponse)r  z"responses.ResponsesWithRawResponse)r  z realtime.RealtimeWithRawResponse)r  z*conversations.ConversationsWithRawResponse)r  zevals.EvalsWithRawResponse)r  z$containers.ContainersWithRawResponse)r  zskills.SkillsWithRawResponse)r  zvideos.VideosWithRawResponser  r  r  r  r   r    rK   r<   rJ   r@   rA   rP   r>   rM   rB   rL   rO   r;   rE   rF   r=   rH   rG   rN   r?   rI   rC   rD   r   r   r   rC  rC    s   O D D 6 6
 B B 8 8 : : ^ ^
 8 8
 D D : : C C
 G G
 6 6
 < < < < 8 8
 @ @
 > >
 H H 8 8 B B
 : :
 : :r   rC  c                     e Zd ZU ded<   ddZedd       Zedd       Zedd       Zedd       Z	ed d       Z
ed!d	       Zed"d
       Zed#d       Zed$d       Zed%d       Zed&d       Zed'd       Zed(d       Zed)d       Zed*d       Zed+d       Zed,d       Zed-d       Zed.d       Zed/d       Zed0d       Zed1d       Zy)2r  r   r   c                    || _         y r   r9  r:  s     r   r   z#AsyncOpenAIWithRawResponse.__init__z  r<  r   c                F    ddl m}  || j                  j                        S )r  r   )AsyncCompletionsWithRawResponse)r  rt  r   rK   )r   rt  s     r   rK   z&AsyncOpenAIWithRawResponse.completions}      
 	K.t||/G/GHHr   c                F    ddl m}  || j                  j                        S )Nr   )AsyncChatWithRawResponse)r  rw  r   r<   )r   rw  s     r   r<   zAsyncOpenAIWithRawResponse.chat      <'(9(9::r   c                F    ddl m}  || j                  j                        S )r
  r   )AsyncEmbeddingsWithRawResponse)r  rz  r   rJ   )r   rz  s     r   rJ   z%AsyncOpenAIWithRawResponse.embeddings  s    
 	I-dll.E.EFFr   c                F    ddl m}  || j                  j                        S )r  r   )AsyncFilesWithRawResponse)r  r|  r   r@   )r   r|  s     r   r@   z AsyncOpenAIWithRawResponse.files  s    
 	?(););<<r   c                F    ddl m}  || j                  j                        S )r  r   )AsyncImagesWithRawResponse)r  r~  r   rA   )r   r~  s     r   rA   z!AsyncOpenAIWithRawResponse.images       	A)$,,*=*=>>r   c                F    ddl m}  || j                  j                        S )Nr   )+AsyncContentProvenanceChecksWithRawResponse)r  r  r   rP   )r   r  s     r   rP   z4AsyncOpenAIWithRawResponse.content_provenance_checks  s    d:4<<;a;abbr   c                F    ddl m}  || j                  j                        S )Nr   )AsyncAudioWithRawResponse)r  r  r   r>   )r   r  s     r   r>   z AsyncOpenAIWithRawResponse.audio      >(););<<r   c                F    ddl m}  || j                  j                        S )r  r   )AsyncModerationsWithRawResponse)r  r  r   rM   )r   r  s     r   rM   z&AsyncOpenAIWithRawResponse.moderations  ru  r   c                F    ddl m}  || j                  j                        S )r  r   )AsyncModelsWithRawResponse)r  r  r   rB   )r   r  s     r   rB   z!AsyncOpenAIWithRawResponse.models  r  r   c                F    ddl m}  || j                  j                        S )Nr   )AsyncFineTuningWithRawResponse)r  r  r   rL   )r   r  s     r   rL   z&AsyncOpenAIWithRawResponse.fine_tuning  s    I-dll.F.FGGr   c                F    ddl m}  || j                  j                        S )Nr   ) AsyncVectorStoresWithRawResponse)r!  r  r   rO   )r   r  s     r   rO   z(AsyncOpenAIWithRawResponse.vector_stores  s    M/0J0JKKr   c                F    ddl m}  || j                  j                        S )Nr   )AsyncBetaWithRawResponse)r'  r  r   r;   )r   r  s     r   r;   zAsyncOpenAIWithRawResponse.beta  rx  r   c                F    ddl m}  || j                  j                        S )r)  r   )AsyncBatchesWithRawResponse)r*  r  r   rE   )r   r  s     r   rE   z"AsyncOpenAIWithRawResponse.batches       	C*4<<+?+?@@r   c                F    ddl m}  || j                  j                        S )r-  r   )AsyncUploadsWithRawResponse)r.  r  r   rF   )r   r  s     r   rF   z"AsyncOpenAIWithRawResponse.uploads  r  r   c                F    ddl m}  || j                  j                        S )Nr   )AsyncAdminWithRawResponse)r0  r  r   r=   )r   r  s     r   r=   z AsyncOpenAIWithRawResponse.admin  r  r   c                F    ddl m}  || j                  j                        S )Nr   )AsyncResponsesWithRawResponse)r2  r  r   rH   )r   r  s     r   rH   z$AsyncOpenAIWithRawResponse.responses  s    F,T\\-C-CDDr   c                F    ddl m}  || j                  j                        S )Nr   )AsyncRealtimeWithRawResponse)r4  r  r   rG   )r   r  s     r   rG   z#AsyncOpenAIWithRawResponse.realtime  s    D+DLL,A,ABBr   c                F    ddl m}  || j                  j                        S )r6  r   )!AsyncConversationsWithRawResponse)r7  r  r   rN   )r   r  s     r   rN   z(AsyncOpenAIWithRawResponse.conversations  s     	O01K1KLLr   c                F    ddl m}  || j                  j                        S )r9  r   )AsyncEvalsWithRawResponse)r:  r  r   r?   )r   r  s     r   r?   z AsyncOpenAIWithRawResponse.evals  s     	?(););<<r   c                F    ddl m}  || j                  j                        S )Nr   )AsyncContainersWithRawResponse)r<  r  r   rI   )r   r  s     r   rI   z%AsyncOpenAIWithRawResponse.containers  s    H-dll.E.EFFr   c                F    ddl m}  || j                  j                        S )Nr   )AsyncSkillsWithRawResponse)r>  r  r   rC   )r   r  s     r   rC   z!AsyncOpenAIWithRawResponse.skills      @)$,,*=*=>>r   c                F    ddl m}  || j                  j                        S )Nr   )AsyncVideosWithRawResponse)rA  r  r   rD   )r   r  s     r   rD   z!AsyncOpenAIWithRawResponse.videos  r  r   Nr;  r   r  r  )r  z+completions.AsyncCompletionsWithRawResponse)r  zchat.AsyncChatWithRawResponse)r  z)embeddings.AsyncEmbeddingsWithRawResponse)r  zfiles.AsyncFilesWithRawResponse)r  z!images.AsyncImagesWithRawResponse)r  zEcontent_provenance_checks.AsyncContentProvenanceChecksWithRawResponse)r  zaudio.AsyncAudioWithRawResponse)r  z+moderations.AsyncModerationsWithRawResponse)r  z!models.AsyncModelsWithRawResponse)r  z*fine_tuning.AsyncFineTuningWithRawResponse)r  z.vector_stores.AsyncVectorStoresWithRawResponse)r  zbeta.AsyncBetaWithRawResponse)r  z#batches.AsyncBatchesWithRawResponse)r  z#uploads.AsyncUploadsWithRawResponse)r  zadmin.AsyncAdminWithRawResponse)r  z'responses.AsyncResponsesWithRawResponse)r  z%realtime.AsyncRealtimeWithRawResponse)r  z/conversations.AsyncConversationsWithRawResponse)r  zevals.AsyncEvalsWithRawResponse)r  z)containers.AsyncContainersWithRawResponse)r  z!skills.AsyncSkillsWithRawResponse)r  z!videos.AsyncVideosWithRawResponserp  r   r   r   r  r  w  s    I I ; ;
 G G = = ? ? c c
 = =
 I I ? ? H H
 L L
 ; ;
 A A A A = =
 E E
 C C
 M M = = G G
 ? ?
 ? ?r   r  c                     e Zd ZU ded<   ddZedd       Zedd       Zedd       Zedd       Z	ed d       Z
ed!d	       Zed"d
       Zed#d       Zed$d       Zed%d       Zed&d       Zed'd       Zed(d       Zed)d       Zed*d       Zed+d       Zed,d       Zed-d       Zed.d       Zed/d       Zed0d       Zed1d       Zy)2rF  r   r   c                    || _         y r   r9  r:  s     r   r   z#OpenAIWithStreamedResponse.__init__  r<  r   c                F    ddl m}  || j                  j                        S )r  r   ) CompletionsWithStreamingResponse)r  r  r   rK   )r   r  s     r   rK   z&OpenAIWithStreamedResponse.completions      
 	L/0H0HIIr   c                F    ddl m}  || j                  j                        S )Nr   )ChatWithStreamingResponse)r  r  r   r<   )r   r  s     r   r<   zOpenAIWithStreamedResponse.chat#      =():):;;r   c                F    ddl m}  || j                  j                        S )r
  r   )EmbeddingsWithStreamingResponse)r  r  r   rJ   )r   r  s     r   rJ   z%OpenAIWithStreamedResponse.embeddings)  s    
 	J.t||/F/FGGr   c                F    ddl m}  || j                  j                        S )r  r   )FilesWithStreamingResponse)r  r  r   r@   )r   r  s     r   r@   z OpenAIWithStreamedResponse.files2  s    
 	@)$,,*<*<==r   c                F    ddl m}  || j                  j                        S )r  r   )ImagesWithStreamingResponse)r  r  r   rA   )r   r  s     r   rA   z!OpenAIWithStreamedResponse.images;       	B*4<<+>+>??r   c                F    ddl m}  || j                  j                        S )Nr   ),ContentProvenanceChecksWithStreamingResponse)r  r  r   rP   )r   r  s     r   rP   z4OpenAIWithStreamedResponse.content_provenance_checksB  s    e;DLL<b<bccr   c                F    ddl m}  || j                  j                        S )Nr   )AudioWithStreamingResponse)r  r  r   r>   )r   r  s     r   r>   z OpenAIWithStreamedResponse.audioH      ?)$,,*<*<==r   c                F    ddl m}  || j                  j                        S )r  r   ) ModerationsWithStreamingResponse)r  r  r   rM   )r   r  s     r   rM   z&OpenAIWithStreamedResponse.moderationsN  r  r   c                F    ddl m}  || j                  j                        S )r  r   )ModelsWithStreamingResponse)r  r  r   rB   )r   r  s     r   rB   z!OpenAIWithStreamedResponse.modelsW  r  r   c                F    ddl m}  || j                  j                        S )Nr   )FineTuningWithStreamingResponse)r  r  r   rL   )r   r  s     r   rL   z&OpenAIWithStreamedResponse.fine_tuning^  s    J.t||/G/GHHr   c                F    ddl m}  || j                  j                        S )Nr   )!VectorStoresWithStreamingResponse)r!  r  r   rO   )r   r  s     r   rO   z(OpenAIWithStreamedResponse.vector_storesd  s    N01K1KLLr   c                F    ddl m}  || j                  j                        S )Nr   )BetaWithStreamingResponse)r'  r  r   r;   )r   r  s     r   r;   zOpenAIWithStreamedResponse.betaj  r  r   c                F    ddl m}  || j                  j                        S )r)  r   )BatchesWithStreamingResponse)r*  r  r   rE   )r   r  s     r   rE   z"OpenAIWithStreamedResponse.batchesp       	D+DLL,@,@AAr   c                F    ddl m}  || j                  j                        S )r-  r   )UploadsWithStreamingResponse)r.  r  r   rF   )r   r  s     r   rF   z"OpenAIWithStreamedResponse.uploadsw  r  r   c                F    ddl m}  || j                  j                        S )Nr   )AdminWithStreamingResponse)r0  r  r   r=   )r   r  s     r   r=   z OpenAIWithStreamedResponse.admin~  r  r   c                F    ddl m}  || j                  j                        S )Nr   )ResponsesWithStreamingResponse)r2  r  r   rH   )r   r  s     r   rH   z$OpenAIWithStreamedResponse.responses  s    G-dll.D.DEEr   c                F    ddl m}  || j                  j                        S )Nr   )RealtimeWithStreamingResponse)r4  r  r   rG   )r   r  s     r   rG   z#OpenAIWithStreamedResponse.realtime  s    E,T\\-B-BCCr   c                F    ddl m}  || j                  j                        S )r6  r   )"ConversationsWithStreamingResponse)r7  r  r   rN   )r   r  s     r   rN   z(OpenAIWithStreamedResponse.conversations  s     	P1$,,2L2LMMr   c                F    ddl m}  || j                  j                        S )r9  r   )EvalsWithStreamingResponse)r:  r  r   r?   )r   r  s     r   r?   z OpenAIWithStreamedResponse.evals  s     	@)$,,*<*<==r   c                F    ddl m}  || j                  j                        S )Nr   )ContainersWithStreamingResponse)r<  r  r   rI   )r   r  s     r   rI   z%OpenAIWithStreamedResponse.containers  s    I.t||/F/FGGr   c                F    ddl m}  || j                  j                        S )Nr   )SkillsWithStreamingResponse)r>  r  r   rC   )r   r  s     r   rC   z!OpenAIWithStreamedResponse.skills      A*4<<+>+>??r   c                F    ddl m}  || j                  j                        S )Nr   )VideosWithStreamingResponse)rA  r  r   rD   )r   r  s     r   rD   z!OpenAIWithStreamedResponse.videos  r  r   Nro  )r  z,completions.CompletionsWithStreamingResponse)r  zchat.ChatWithStreamingResponse)r  z*embeddings.EmbeddingsWithStreamingResponse)r  z files.FilesWithStreamingResponse)r  z"images.ImagesWithStreamingResponse)r  zFcontent_provenance_checks.ContentProvenanceChecksWithStreamingResponse)r  z audio.AudioWithStreamingResponse)r  z,moderations.ModerationsWithStreamingResponse)r  z"models.ModelsWithStreamingResponse)r  z+fine_tuning.FineTuningWithStreamingResponse)r  z/vector_stores.VectorStoresWithStreamingResponse)r  zbeta.BetaWithStreamingResponse)r  z$batches.BatchesWithStreamingResponse)r  z$uploads.UploadsWithStreamingResponse)r  z admin.AdminWithStreamingResponse)r  z(responses.ResponsesWithStreamingResponse)r  z&realtime.RealtimeWithStreamingResponse)r  z0conversations.ConversationsWithStreamingResponse)r  z evals.EvalsWithStreamingResponse)r  z*containers.ContainersWithStreamingResponse)r  z"skills.SkillsWithStreamingResponse)r  z"videos.VideosWithStreamingResponserp  r   r   r   rF  rF    s   O J J < <
 H H > > @ @ d d
 > >
 J J @ @ I I
 M M
 < <
 B B B B > >
 F F
 D D
 N N > > H H
 @ @
 @ @r   rF  c                     e Zd ZU ded<   ddZedd       Zedd       Zedd       Zedd       Z	ed d       Z
ed!d	       Zed"d
       Zed#d       Zed$d       Zed%d       Zed&d       Zed'd       Zed(d       Zed)d       Zed*d       Zed+d       Zed,d       Zed-d       Zed.d       Zed/d       Zed0d       Zed1d       Zy)2r  r   r   c                    || _         y r   r9  r:  s     r   r   z(AsyncOpenAIWithStreamedResponse.__init__  r<  r   c                F    ddl m}  || j                  j                        S )r  r   )%AsyncCompletionsWithStreamingResponse)r  r  r   rK   )r   r  s     r   rK   z+AsyncOpenAIWithStreamedResponse.completions      
 	Q4T\\5M5MNNr   c                F    ddl m}  || j                  j                        S )Nr   )AsyncChatWithStreamingResponse)r  r  r   r<   )r   r  s     r   r<   z$AsyncOpenAIWithStreamedResponse.chat      B-dll.?.?@@r   c                F    ddl m}  || j                  j                        S )r
  r   )$AsyncEmbeddingsWithStreamingResponse)r  r  r   rJ   )r   r  s     r   rJ   z*AsyncOpenAIWithStreamedResponse.embeddings  s    
 	O3DLL4K4KLLr   c                F    ddl m}  || j                  j                        S )r  r   )AsyncFilesWithStreamingResponse)r  r  r   r@   )r   r  s     r   r@   z%AsyncOpenAIWithStreamedResponse.files  s    
 	E.t||/A/ABBr   c                F    ddl m}  || j                  j                        S )r  r   ) AsyncImagesWithStreamingResponse)r  r  r   rA   )r   r  s     r   rA   z&AsyncOpenAIWithStreamedResponse.images       	G/0C0CDDr   c                F    ddl m}  || j                  j                        S )Nr   )1AsyncContentProvenanceChecksWithStreamingResponse)r  r  r   rP   )r   r  s     r   rP   z9AsyncOpenAIWithStreamedResponse.content_provenance_checks  s    j@AgAghhr   c                F    ddl m}  || j                  j                        S )Nr   )AsyncAudioWithStreamingResponse)r  r  r   r>   )r   r  s     r   r>   z%AsyncOpenAIWithStreamedResponse.audio      D.t||/A/ABBr   c                F    ddl m}  || j                  j                        S )r  r   )%AsyncModerationsWithStreamingResponse)r  r  r   rM   )r   r  s     r   rM   z+AsyncOpenAIWithStreamedResponse.moderations  r  r   c                F    ddl m}  || j                  j                        S )r  r   ) AsyncModelsWithStreamingResponse)r  r  r   rB   )r   r  s     r   rB   z&AsyncOpenAIWithStreamedResponse.models  r  r   c                F    ddl m}  || j                  j                        S )Nr   )$AsyncFineTuningWithStreamingResponse)r  r  r   rL   )r   r  s     r   rL   z+AsyncOpenAIWithStreamedResponse.fine_tuning  s    O3DLL4L4LMMr   c                F    ddl m}  || j                  j                        S )Nr   )&AsyncVectorStoresWithStreamingResponse)r!  r  r   rO   )r   r  s     r   rO   z-AsyncOpenAIWithStreamedResponse.vector_stores  s    S5dll6P6PQQr   c                F    ddl m}  || j                  j                        S )Nr   )AsyncBetaWithStreamingResponse)r'  r  r   r;   )r   r  s     r   r;   z$AsyncOpenAIWithStreamedResponse.beta  r  r   c                F    ddl m}  || j                  j                        S )r)  r   )!AsyncBatchesWithStreamingResponse)r*  r  r   rE   )r   r  s     r   rE   z'AsyncOpenAIWithStreamedResponse.batches       	I01E1EFFr   c                F    ddl m}  || j                  j                        S )r-  r   )!AsyncUploadsWithStreamingResponse)r.  r  r   rF   )r   r  s     r   rF   z'AsyncOpenAIWithStreamedResponse.uploads  r  r   c                F    ddl m}  || j                  j                        S )Nr   )AsyncAdminWithStreamingResponse)r0  r  r   r=   )r   r  s     r   r=   z%AsyncOpenAIWithStreamedResponse.admin  r  r   c                F    ddl m}  || j                  j                        S )Nr   )#AsyncResponsesWithStreamingResponse)r2  r   r   rH   )r   r   s     r   rH   z)AsyncOpenAIWithStreamedResponse.responses!  s    L24<<3I3IJJr   c                F    ddl m}  || j                  j                        S )Nr   )"AsyncRealtimeWithStreamingResponse)r4  r  r   rG   )r   r  s     r   rG   z(AsyncOpenAIWithStreamedResponse.realtime'  s    J1$,,2G2GHHr   c                F    ddl m}  || j                  j                        S )r6  r   )'AsyncConversationsWithStreamingResponse)r7  r  r   rN   )r   r  s     r   rN   z-AsyncOpenAIWithStreamedResponse.conversations-  s     	U6t||7Q7QRRr   c                F    ddl m}  || j                  j                        S )r9  r   )AsyncEvalsWithStreamingResponse)r:  r  r   r?   )r   r  s     r   r?   z%AsyncOpenAIWithStreamedResponse.evals4  s     	E.t||/A/ABBr   c                F    ddl m}  || j                  j                        S )Nr   )$AsyncContainersWithStreamingResponse)r<  r  r   rI   )r   r  s     r   rI   z*AsyncOpenAIWithStreamedResponse.containers;  s    N3DLL4K4KLLr   c                F    ddl m}  || j                  j                        S )Nr   ) AsyncSkillsWithStreamingResponse)r>  r
  r   rC   )r   r
  s     r   rC   z&AsyncOpenAIWithStreamedResponse.skillsA      F/0C0CDDr   c                F    ddl m}  || j                  j                        S )Nr   ) AsyncVideosWithStreamingResponse)rA  r  r   rD   )r   r  s     r   rD   z&AsyncOpenAIWithStreamedResponse.videosG  r  r   Nr  )r  z1completions.AsyncCompletionsWithStreamingResponse)r  z#chat.AsyncChatWithStreamingResponse)r  z/embeddings.AsyncEmbeddingsWithStreamingResponse)r  z%files.AsyncFilesWithStreamingResponse)r  z'images.AsyncImagesWithStreamingResponse)r  zKcontent_provenance_checks.AsyncContentProvenanceChecksWithStreamingResponse)r  z%audio.AsyncAudioWithStreamingResponse)r  z1moderations.AsyncModerationsWithStreamingResponse)r  z'models.AsyncModelsWithStreamingResponse)r  z0fine_tuning.AsyncFineTuningWithStreamingResponse)r  z4vector_stores.AsyncVectorStoresWithStreamingResponse)r  z#beta.AsyncBetaWithStreamingResponse)r  z)batches.AsyncBatchesWithStreamingResponse)r  z)uploads.AsyncUploadsWithStreamingResponse)r  z%admin.AsyncAdminWithStreamingResponse)r  z-responses.AsyncResponsesWithStreamingResponse)r  z+realtime.AsyncRealtimeWithStreamingResponse)r  z5conversations.AsyncConversationsWithStreamingResponse)r  z%evals.AsyncEvalsWithStreamingResponse)r  z/containers.AsyncContainersWithStreamingResponse)r  z'skills.AsyncSkillsWithStreamingResponse)r  z'videos.AsyncVideosWithStreamingResponserp  r   r   r   r  r    s    O O A A
 M M C C E E i i
 C C
 O O E E N N
 R R
 A A
 G G G G C C
 K K
 I I
 S S C C M M
 E E
 E Er   r  )r   r   r   r   r  r   )
__future__r   r   typingr   r   r   r   r   typing_extensionsr	   r
   r   r  r   r   _qsr   authr   r   r   _typesr   r   r   r   r   r   r   r   r   _utilsr   r   r   r   _compatr    _httpx2r!   r"   r#   _modelsr$   r%   _versionr&   r   r'   r(   r)   r*   
_streamingr+   r,   
auth._x509r-   r.   r/   r0   r1   r2   r3   r4   r5   _base_clientr6   r7   r8   _data_residencyr9   r:   	resourcesr;   r<   r=   r>   r?   r@   rA   rB   rC   rD   rE   rF   rG   rH   rI   rJ   rK   rL   rM   rN   rO   rP   r  rQ   rR   r  rS   rT   r  rU   rV   rA  rW   rX   r*  rY   rZ   resources.beta.betar[   r\   resources.chat.chatr]   r^   r  r_   r`   resources.admin.adminra   rb   resources.audio.audiorc   rd   r  re   rf   resources.evals.evalsrg   rh   r  ri   rj   resources.skills.skillsrk   rl   resources.uploads.uploadsrm   rn   resources.realtime.realtimero   rp   resources.webhooks.webhooksrq   rr   resources.responses.responsesrs   rt   resources.containers.containersru   rv   !resources.fine_tuning.fine_tuningrw   rx   r  ry   rz   %resources.conversations.conversationsr{   r|   %resources.vector_stores.vector_storesr}   r~   __all__r   r   r   r   r   rC  r  rF  r  r   r   r   r   r   <module>r-     sc   # 	 C C 4 4    N N
 
 
  % W W 9 ! W W D   5 
 C     0 3555844A88D8D<@DDHLNjXV
v(@ %9
d
i
E] i
EXu
E. u
EpZ: Z:zZ? Z?zZ@ Z@zZE ZEz 
r   