
    jh                    ZI   d dl Z d dlZd dlmZmZmZmZmZmZ d dl	m
Z
 ddlmZ ddlmZ ddlmZ ddlmZ dd	lmZ dd
lmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZmZ  ej        d          Z deddfdZ!deddfdZ"deddfdZ#	 	 ddee$e%ef         e&f         dee$e%ef                  deee$e%ef         e&f                  de$e%ef         fdZ'	 	 ddee$e%ef         e&f         dee$e%ef                  deee$e%ef         e&f                  de$e%ef         fdZ(	 	 ddee$e%ef         e&f         dee$e%ef                  deee$e%ef         e&f                  de$e%ef         fdZ)	 	 ddee$e%ef         e&f         dee$e%ef                  deee$e%ef         e&f                  de$e%ef         fdZ*	 	 ddedee$e%ef         e&f         dee$e%ef                  deee$e%ef         e&f                  de$e%ef         f
dZ+	 	 ddee$e%ef         e&f         dee$e%ef                  deee$e%ef         e&f                  de$e%ef         fd Z,	 	 ddee$e%ef         e&f         dee$e%ef                  deee$e%ef         e&f                  de$e%ef         fd!Z-	 	 ddee$e%ef         e&f         dee$e%ef                  deee$e%ef         e&f                  de$e%ef         fd"Z.	 	 ddee$e%ef         e&f         dee$e%ef                  deee$e%ef         e&f                  de$e%ef         fd#Z/	 	 ddee$e%ef         e&f         dee$e%ef                  deee$e%ef         e&f                  de$e%ef         fd$Z0	 	 ddee$e%ef         e&f         dee$e%ef                  deee$e%ef         e&f                  de$e%ef         fd%Z1	 	 ddee$e%ef         e&f         dee$e%ef                  deee$e%ef         e&f                  de$e%ef         fd&Z2	 	 ddee$e%ef         e&f         dee$e%ef                  deee$e%ef         e&f                  de$e%ef         fd'Z3	 	 ddedee$e%ef         e&f         dee$e%ef                  deee$e%ef         e&f                  de$e%ef         f
d(Z4	 	 ddedee$e%ef         e&f         dee$e%ef                  deee$e%ef         e&f                  de$e%ef         f
d)Z5	 	 ddee$e%ef         e&f         dee$e%ef                  deee$e%ef         e&f                  de$e%ef         fd*Z6	 	 ddee$e%ef         e&f         dee$e%ef                  deee$e%ef         e&f                  de$e%ef         fd+Z7	 	 ddedee$e%ef         e&f         dee$e%ef                  deee$e%ef         e&f                  de$e%ef         f
d,Z8	 	 ddedee$e%ef         e&f         dee$e%ef                  deee$e%ef         e&f                  de$e%ef         f
d-Z9	 	 ddee$e%ef         e&f         dee$e%ef                  deee$e%ef         e&f                  de$e%ef         fd.Z:	 	 ddee$e%ef         e&f         dee$e%ef                  deee$e%ef         e&f                  de$e%ef         fd/Z;	 	 ddee$e%ef         e&f         dee$e%ef                  deee$e%ef         e&f                  de$e%ef         fd0Z<	 	 ddedee$e%ef         e&f         dee$e%ef                  deee$e%ef         e&f                  de$e%ef         f
d1Z=	 	 ddee$e%ef         e&f         dee$e%ef                  deee$e%ef         e&f                  de$e%ef         fd2Z>	 	 ddee$e%ef         e&f         dee$e%ef                  deee$e%ef         e&f                  de$e%ef         fd3Z?	 	 ddee$e%ef         e&f         dee$e%ef                  deee$e%ef         e&f                  de$e%ef         fd4Z@	 	 ddedee$e%ef         e&f         dee$e%ef                  deee$e%ef         e&f                  de$e%ef         f
d5ZA	 	 ddedee$e%ef         e&f         dee$e%ef                  deee$e%ef         e&f                  de$e%ef         f
d6ZB	 	 ddee$e%ef         e&f         dee$e%ef                  deee$e%ef         e&f                  de$e%ef         fd7ZC	 	 ddee$e%ef         e&f         dee$e%ef                  deee$e%ef         e&f                  de$e%ef         fd8ZD	 	 ddee$e%ef         e&f         dee$e%ef                  deee$e%ef         e&f                  de$e%ef         fd9ZE	 	 ddee$e%ef         e&f         dee$e%ef                  deee$e%ef         e&f                  de$e%ef         fd:ZF	 	 ddee$e%ef         e&f         dee$e%ef                  deee$e%ef         e&f                  de$e%ef         fd;ZG	 	 ddee$e%ef         e&f         dee$e%ef                  deee$e%ef         e&f                  de$e%ef         fd<ZH	 	 ddee$e%ef         e&f         dee$e%ef                  deee$e%ef         e&f                  de$e%ef         fd=ZI	 	 ddedee$e%ef         e&f         dee$e%ef                  deee$e%ef         e&f                  de$e%ef         f
d>ZJ	 	 ddedee$e%ef         e&f         dee$e%ef                  deee$e%ef         e&f                  de$e%ef         f
d?ZK	 	 ddedee$e%ef         e&f         dee$e%ef                  deee$e%ef         e&f                  de$e%ef         f
d@ZL	 	 ddedee$e%ef         e&f         dee$e%ef                  deee$e%ef         e&f                  de$e%ef         f
dAZM	 	 ddee$e%ef         e&f         dee$e%ef                  deee$e%ef         e&f                  de$e%ef         fdBZN	 	 ddee$e%ef         e&f         dee$e%ef                  deee$e%ef         e&f                  de$e%ef         fdCZO	 	 ddee$e%ef         e&f         dee$e%ef                  deee$e%ef         e&f                  de$e%ef         fdDZP	 	 ddee$e%ef         e&f         dee$e%ef                  deee$e%ef         e&f                  de$e%ef         fdEZQ	 	 ddedee$e%ef         e&f         dee$e%ef                  deee$e%ef         e&f                  de$e%ef         f
dFZR	 	 ddedee$e%ef         e&f         dee$e%ef                  deee$e%ef         e&f                  de$e%ef         f
dGZS	 	 ddee$e%ef         e&f         dee$e%ef                  deee$e%ef         e&f                  de$e%ef         fdHZT	 	 ddee$e%ef         e&f         dee$e%ef                  deee$e%ef         e&f                  de$e%ef         fdIZU	 	 ddee$e%ef         e&f         dee$e%ef                  deee$e%ef         e&f                  de$e%ef         fdJZV	 	 ddee$e%ef         e&f         dee$e%ef                  deee$e%ef         e&f                  de$e%ef         fdKZW	 	 ddee$e%ef         e&f         dee$e%ef                  deee$e%ef         e&f                  de$e%ef         fdLZX	 	 ddee$e%ef         e&f         dee$e%ef                  deee$e%ef         e&f                  de$e%ef         fdMZY	 	 ddedee$e%ef         e&f         dee$e%ef                  deee$e%ef         e&f                  de$e%ef         f
dNZZ	 	 ddedee$e%ef         e&f         dee$e%ef                  deee$e%ef         e&f                  de$e%ef         f
dOZ[	 	 ddee$e%ef         e&f         dee$e%ef                  deee$e%ef         e&f                  de$e%ef         fdPZ\	 	 ddee$e%ef         e&f         dee$e%ef                  deee$e%ef         e&f                  de$e%ef         fdQZ]	 	 ddee$e%ef         e&f         dee$e%ef                  deee$e%ef         e&f                  de$e%ef         fdRZ^	 	 ddee$e%ef         e&f         dee$e%ef                  deee$e%ef         e&f                  de$e%ef         fdSZ_	 	 ddee$e%ef         e&f         dee$e%ef                  deee$e%ef         e&f                  de$e%ef         fdTZ`	 	 ddee$e%ef         e&f         dee$e%ef                  deee$e%ef         e&f                  de$e%ef         fdUZa	 	 ddee$e%ef         e&f         dee$e%ef                  deee$e%ef         e&f                  de$e%ef         fdVZb	 	 ddee$e%ef         e&f         dee$e%ef                  deee$e%ef         e&f                  de$e%ef         fdWZc	 	 ddee$e%ef         e&f         dee$e%ef                  deee$e%ef         e&f                  de$e%ef         fdXZd	 	 ddee$e%ef         e&f         dee$e%ef                  deee$e%ef         e&f                  de$e%ef         fdYZe	 	 ddedee$e%ef         e&f         dee$e%ef                  deee$e%ef         e&f                  de$e%ef         f
dZZf	 	 ddedee$e%ef         e&f         dee$e%ef                  deee$e%ef         e&f                  de$e%ef         f
d[Zg	 	 ddee$e%ef         e&f         dee$e%ef                  deee$e%ef         e&f                  de$e%ef         fd\Zh	 	 ddee$e%ef         e&f         dee$e%ef                  deee$e%ef         e&f                  de$e%ef         fd]Zi	 	 ddee$e%ef         e&f         dee$e%ef                  deee$e%ef         e&f                  de$e%ef         fd^Zj	 	 ddee$e%ef         e&f         dee$e%ef                  deee$e%ef         e&f                  de$e%ef         fd_Zk	 	 ddee$e%ef         e&f         dee$e%ef                  deee$e%ef         e&f                  de$e%ef         fd`Zl	 	 ddee$e%ef         e&f         dee$e%ef                  deee$e%ef         e&f                  de$e%ef         fdaZm	 	 ddee$e%ef         e&f         dee$e%ef                  deee$e%ef         e&f                  de$e%ef         fdbZn	 	 ddee$e%ef         e&f         dee$e%ef                  deee$e%ef         e&f                  de$e%ef         fdcZo	 	 ddedee$e%ef         e&f         dee$e%ef                  deee$e%ef         e&f                  de$e%ef         f
ddZp	 	 ddedee$e%ef         e&f         dee$e%ef                  deee$e%ef         e&f                  de$e%ef         f
deZq	 	 ddedee$e%ef         e&f         dee$e%ef                  deee$e%ef         e&f                  de$e%ef         f
dfZr	 	 ddedee$e%ef         e&f         dee$e%ef                  deee$e%ef         e&f                  de$e%ef         f
dgZs	 	 ddee$e%ef         e&f         dee$e%ef                  deee$e%ef         e&f                  de$e%ef         fdhZt	 	 ddee$e%ef         e&f         dee$e%ef                  deee$e%ef         e&f                  de$e%ef         fdiZu	 	 ddee$e%ef         e&f         dee$e%ef                  deee$e%ef         e&f                  de$e%ef         fdjZv	 	 ddee$e%ef         e&f         dee$e%ef                  deee$e%ef         e&f                  de$e%ef         fdkZw	 	 ddee$e%ef         e&f         dee$e%ef                  deee$e%ef         e&f                  de$e%ef         fdlZx	 	 ddee$e%ef         e&f         dee$e%ef                  deee$e%ef         e&f                  de$e%ef         fdmZy	 	 ddee$e%ef         e&f         dee$e%ef                  deee$e%ef         e&f                  de$e%ef         fdnZz	 	 ddee$e%ef         e&f         dee$e%ef                  deee$e%ef         e&f                  de$e%ef         fdoZ{	 	 ddee$e%ef         e&f         dee$e%ef                  deee$e%ef         e&f                  de$e%ef         fdpZ|	 	 ddee$e%ef         e&f         dee$e%ef                  deee$e%ef         e&f                  de$e%ef         fdqZ}	 	 ddedee$e%ef         e&f         dee$e%ef                  deee$e%ef         e&f                  de$e%ef         f
drZ~	 	 ddee$e%ef         e&f         dee$e%ef                  deee$e%ef         e&f                  de$e%ef         fdsZ	 	 ddee$e%ef         e&f         dee$e%ef                  deee$e%ef         e&f                  de$e%ef         fdtZ	 	 ddee$e%ef         e&f         dee$e%ef                  deee$e%ef         e&f                  de$e%ef         fduZ	 	 ddee$e%ef         e&f         dee$e%ef                  deee$e%ef         e&f                  de$e%ef         fdvZ	 	 ddee$e%ef         e&f         dee$e%ef                  deee$e%ef         e&f                  de$e%ef         fdwZ	 	 ddee$e%ef         e&f         dee$e%ef                  deee$e%ef         e&f                  de$e%ef         fdxZ	 	 ddee$e%ef         e&f         dee$e%ef                  deee$e%ef         e&f                  de$e%ef         fdyZ	 	 ddee$e%ef         e&f         dee$e%ef                  deee$e%ef         e&f                  de$e%ef         fdzZ	 	 ddee$e%ef         e&f         dee$e%ef                  deee$e%ef         e&f                  de$e%ef         fd{Z	 	 ddedee$e%ef         e&f         dee$e%ef                  deee$e%ef         e&f                  de$e%ef         f
d|Z	 	 ddee$e%ef         e&f         dee$e%ef                  deee$e%ef         e&f                  de$e%ef         fd}Z	 	 ddee$e%ef         e&f         dee$e%ef                  deee$e%ef         e&f                  de$e%ef         fd~Z	 	 ddee$e%ef         e&f         dee$e%ef                  deee$e%ef         e&f                  de$e%ef         fdZ	 	 ddee$e%ef         e&f         dee$e%ef                  deee$e%ef         e&f                  de$e%ef         fdZ	 	 ddee$e%ef         e&f         dee$e%ef                  deee$e%ef         e&f                  de$e%ef         fdZ	 	 ddee$e%ef         e&f         dee$e%ef                  deee$e%ef         e&f                  de$e%ef         fdZ	 	 ddee$e%ef         e&f         dee$e%ef                  deee$e%ef         e&f                  de$e%ef         fdZ	 	 ddee$e%ef         e&f         dee$e%ef                  deee$e%ef         e&f                  de$e%ef         fdZ	 	 ddee$e%ef         e&f         dee$e%ef                  deee$e%ef         e&f                  de$e%ef         fdZ	 	 ddee$e%ef         e&f         dee$e%ef                  deee$e%ef         e&f                  de$e%ef         fdZ	 	 ddee$e%ef         e&f         dee$e%ef                  deee$e%ef         e&f                  de$e%ef         fdZ	 	 ddedee$e%ef         e&f         dee$e%ef                  deee$e%ef         e&f                  de$e%ef         f
dZ	 	 ddedee$e%ef         e&f         dee$e%ef                  deee$e%ef         e&f                  de$e%ef         f
dZ	 	 ddee$e%ef         e&f         dee$e%ef                  deee$e%ef         e&f                  de$e%ef         fdZ	 	 ddedee$e%ef         e&f         dee$e%ef                  deee$e%ef         e&f                  de$e%ef         f
dZ	 	 ddee$e%ef         e&f         dee$e%ef                  deee$e%ef         e&f                  de$e%ef         fdZ	 	 ddee$e%ef         e&f         dee$e%ef                  deee$e%ef         e&f                  de$e%ef         fdZ	 	 ddee$e%ef         e&f         dee$e%ef                  deee$e%ef         e&f                  de$e%ef         fdZ	 	 ddee$e%ef         e&f         dee$e%ef                  deee$e%ef         e&f                  de$e%ef         fdZ	 	 ddee$e%ef         e&f         dee$e%ef                  deee$e%ef         e&f                  de$e%ef         fdZ	 	 ddee$e%ef         e&f         dee$e%ef                  deee$e%ef         e&f                  de$e%ef         fdZ	 	 ddee$e%ef         e&f         dee$e%ef                  deee$e%ef         e&f                  de$e%ef         fdZ	 	 ddee$e%ef         e&f         dee$e%ef                  deee$e%ef         e&f                  de$e%ef         fdZ	 	 ddee$e%ef         e&f         dee$e%ef                  deee$e%ef         e&f                  de$e%ef         fdZ G d dej                  Z G d dej                  ZdS )    N)AnyAsyncIterator	AwaitableIteratorOptionalUnion)	urlencode   )_api_module)_base_transformers)_common)_extra_utils)
_mcp_utils)_transformers)errors)types)BaseApiClient)get_value_by_path)set_value_by_path)
AsyncPagerPagerzgoogle_genai.models
enum_valuereturnc                 N    | t          dg          v rt          |  d          d S )N	ALLOW_ALL+ enum value is not supported in Gemini API.set
ValueErrorr   s    ^/DATA/AppData/hermes/projects/honcho/.venv/lib/python3.11/site-packages/google/genai/models.py(_PersonGeneration_to_mldev_enum_validater"   '   s6    3}%%%%

OOO
P
PP &%    c                 N    | t          dg          v rt          |  d          d S )N
BLOCK_NONEr   r   r    s    r!   )_SafetyFilterLevel_to_mldev_enum_validater&   ,   s6    3~&&&&

OOO
P
PP '&r#   c                 N    | t          dg          v rt          |  d          d S )NSTYLEr   r   r    s    r!   4_VideoGenerationReferenceType_to_mldev_enum_validater)   1   s6     3y>>!!

OOO
P
PP "!r#   from_objectparent_objectroot_objectc                    i }t          | dg          !t          |dgt          | dg                     t          | dg          t          d          t          | dg          t          d          t          | dg          t          d          t          | d	g          t          d
          t          | dg          t          d          t          | dg          t          d          |S )Napi_keyapiKeyapi_key_configz8api_key_config parameter is not supported in Gemini API.	auth_typez3auth_type parameter is not supported in Gemini API.google_service_account_configzGgoogle_service_account_config parameter is not supported in Gemini API.http_basic_auth_configz@http_basic_auth_config parameter is not supported in Gemini API.oauth_configz6oauth_config parameter is not supported in Gemini API.oidc_configz5oidc_config parameter is not supported in Gemini API.getvsetvr   r*   r+   r,   	to_objects       r!   _AuthConfig_to_mldevr;   8   s    
 !)	+	{##/XJ[9+ > >???	+()**6
O
P
PP	+}%%1
J
K
KK	+7899E
	  
 
+0122>
J   
+'((4
M
N
NN	+''3
L
M
MM	r#   c                    i }t          | dg          !t          |dgt          | dg                     t          | dg          t          d          t          | dg          !t          |dgt          | dg                     |S )Ndatadisplay_name6display_name parameter is not supported in Gemini API.	mime_typemimeTyper6   r9   s       r!   _Blob_to_mldevrB   [   s    
 !)	+x  ,VHd;99:::	+'((4
M
N
NN	+}%%1ZL${[M"B"BCCC	r#   c           
      $   i }t          | dg          !t          |dgt          | dg                     t          | dg          0t          |dgt          t          | dg          ||                     t          | dg          !t          |dgt          | dg                     t          | dg          !t          |dgt          | dg                     t          | dg          !t          |d	gt          | dg                     t          | d
g          !t          |dgt          | d
g                     t          | dg          !t          |dgt          | dg                     t          | dg          !t          |dgt          | dg                     t          | dg          +t          |dgd t          | dg          D                        t          | dg          !t          |dgt          | dg                     |S )NcontentcitationMetadatacitation_metadata
tokenCounttoken_countfinishReasonfinish_reasongroundingMetadatagrounding_metadataavgLogprobsavg_logprobsindexlogprobsResultlogprobs_resultsafetyRatingssafety_ratingsc                     g | ]}|S  rU   .0items     r!   
<listcomp>z)_Candidate_from_mldev.<locals>.<listcomp>   s    ???$???r#   urlContextMetadataurl_context_metadata)r7   r8   _CitationMetadata_from_mldevr9   s       r!   _Candidate_from_mldevr]   m   sj   
 !)	+	{##/YKkI;!?!?@@@	+*+,,8	$1233Y	
 	
   
+~&&2]OT+~%F%FGGG	+'((4_%tK.9I'J'JKKK	++,--9	[./00   
+''3^$d;&H&HIII	+y!!-WItK';;<<<	+()**6&'k<L;M)N)NOOO	+())5	??${_,=>>???   
+,-..:	 [/011   
r#   c           	          i }t          | dg          +t          |dgd t          | dg          D                        |S )NcitationSources	citationsc                     g | ]}|S rU   rU   rV   s     r!   rY   z0_CitationMetadata_from_mldev.<locals>.<listcomp>       AAA$AAAr#   r7   r8   r9   s       r!   r\   r\      s^    
 !)	+)*++7	AA${->,?@@AAA   
r#   
api_clientc                 <   i t          |dg          5t          ddgt          j        | t          |dg                               t          |dg          @t          dgfdt          j        t          |dg                    D                        S )Nmodel_urlcontentsc                 2    g | ]}t          |          S rU   _Content_to_vertexrW   rX   r,   r:   s     r!   rY   z6_ComputeTokensParameters_to_vertex.<locals>.<listcomp>   5     	
 	
 	
 tY<<	
 	
 	
r#   )r7   r8   tt_model
t_contentsrd   r*   r+   r,   r:   s      `@r!   "_ComputeTokensParameters_to_vertexrr      s     !)	+y!!-			*d;	::;;   
+
|$$0		
 	
 	
 	
 	
T+
|%D%DEE	
 	
 	
   
r#   c           	          i }t          | dg          !t          |dgt          | dg                     t          | dg          +t          |dgd t          | dg          D                        |S )NsdkHttpResponsesdk_http_response
tokensInfotokens_infoc                     g | ]}|S rU   rU   rV   s     r!   rY   z6_ComputeTokensResponse_from_vertex.<locals>.<listcomp>       <<<$<<<r#   rc   r9   s       r!   "_ComputeTokensResponse_from_vertexrz      s    
 !)	+)*++7'(${=N<O*P*P   
+~&&2	<<${\N;;<<<   
r#   c                     i }t          | dg          !t          |dgt          | dg                     t          | dg          !t          |dgt          | dg                     |S )N	truncatedrH   rc   r9   s       r!   '_ContentEmbeddingStatistics_from_vertexr}      ss    
 !)	+}%%1[M4k]#C#CDDD	+''3]OT+%G%GHHH	r#   c           
          i }t          | dg          !t          |dgt          | dg                     t          | dg          0t          |dgt          t          | dg          ||                     |S )Nvalues
statistics)r7   r8   r}   r9   s       r!   _ContentEmbedding_from_vertexr      s    
 !)	+z"".XJ[8* = =>>>	+~&&2	/|n--y+	
 	
   
r#   c           	          i t          | dg          .t          dgfdt          | dg          D                        t          | dg          !t          dgt          | dg                     S )Npartsc                 2    g | ]}t          |          S rU   )_Part_to_mldevrl   s     r!   rY   z%_Content_to_mldev.<locals>.<listcomp>  s5     	
 	
 	
 4K88	
 	
 	
r#   rolerc   r9   s     `@r!   _Content_to_mldevr   
      
 !)	+y!!-			
 	
 	
 	
 	
[7)44	
 	
 	
   
+x  ,VHd;99:::	r#   c           	          i t          | dg          .t          dgfdt          | dg          D                        t          | dg          !t          dgt          | dg                     S )Nr   c                 2    g | ]}t          |          S rU   )_Part_to_vertexrl   s     r!   rY   z&_Content_to_vertex.<locals>.<listcomp>*  5     	
 	
 	
 D)[99	
 	
 	
r#   r   rc   r9   s     `@r!   rk   rk      r   r#   c                     i }t          | dg          !t          |dgt          | dg                     t          | dg          !t          |dgt          | dg                     |S )Ncontrol_typecontrolType enable_control_image_computationcomputeControlrc   r9   s       r!   !_ControlReferenceConfig_to_vertexr   6  s    
 !)	+'((4]OT+7G%H%HIII	+:;<<H	[=>??   
r#   c                     i }t          | dg          t          d          t          | dg          t          d          t          | dg          t          d          |S )Nsystem_instructionz<system_instruction parameter is not supported in Gemini API.toolsz/tools parameter is not supported in Gemini API.generation_configz;generation_config parameter is not supported in Gemini API.)r7   r   r9   s       r!   _CountTokensConfig_to_mldevr   I  s    
 !)	+,-..:
F   
+y!!-
F
G
GG	++,--9
E   
r#   c                    i t          | dg          Bt          |dgt          t          j        t          | dg                                         t          | dg          .t          |dgfdt          | dg          D                        t          | dg          0t          |dgt          t          | dg                               S )Nr   systemInstructionr   c                 2    g | ]}t          |          S rU   )_Tool_to_vertexrl   s     r!   rY   z0_CountTokensConfig_to_vertex.<locals>.<listcomp>v  r   r#   r   generationConfig)r7   r8   rk   rn   	t_content_GenerationConfig_to_vertexr9   s     `@r!   _CountTokensConfig_to_vertexr   `  s(   
 !)	+,-..:	K[+?*@AABB	
 	
   
+y!!-			
 	
 	
 	
 	
[7)44	
 	
 	
   
++,--9	#2344i	
 	
   
r#   c                    i t          |dg          5t          ddgt          j        | t          |dg                               t          |dg          @t          dgfdt          j        t          |dg                    D                        t          |dg           t          t          |dg                     S )Nrf   rg   rh   c                 2    g | ]}t          |          S rU   r   rl   s     r!   rY   z3_CountTokensParameters_to_mldev.<locals>.<listcomp>  5     	
 	
 	
 dI{;;	
 	
 	
r#   config)r7   r8   rn   ro   rp   r   rq   s      `@r!   _CountTokensParameters_to_mldevr     s    !)	+y!!-			*d;	::;;   
+
|$$0		
 	
 	
 	
 	
T+
|%D%DEE	
 	
 	
   
+z"".[8*%%y+   
r#   c                    i t          |dg          5t          ddgt          j        | t          |dg                               t          |dg          @t          dgfdt          j        t          |dg                    D                        t          |dg           t          t          |dg                     S )Nrf   rg   rh   c                 2    g | ]}t          |          S rU   rj   rl   s     r!   rY   z4_CountTokensParameters_to_vertex.<locals>.<listcomp>  rm   r#   r   )r7   r8   rn   ro   rp   r   rq   s      `@r!    _CountTokensParameters_to_vertexr     s    !)	+y!!-			*d;	::;;   
+
|$$0		
 	
 	
 	
 	
T+
|%D%DEE	
 	
 	
   
+z"". [8*%%y+   
r#   c                 6   i }t          | dg          !t          |dgt          | dg                     t          | dg          !t          |dgt          | dg                     t          | dg          !t          |dgt          | dg                     |S )Nrt   ru   totalTokenstotal_tokenscachedContentTokenCountcached_content_token_countrc   r9   s       r!   _CountTokensResponse_from_mldevr     s    
 !)	+)*++7'(${=N<O*P*P   
+''3^$d;&H&HIII	+1233?	%&[4566   
r#   c                     i }t          | dg          !t          |dgt          | dg                     t          | dg          !t          |dgt          | dg                     |S )Nrt   ru   r   r   rc   r9   s       r!    _CountTokensResponse_from_vertexr     s    
 !)	+)*++7'(${=N<O*P*P   
+''3^$d;&H&HIII	r#   c                     i }t          |dg          5t          |ddgt          j        | t          |dg                               |S Nrf   rg   namer7   r8   rn   ro   rq   s        r!   _DeleteModelParameters_to_mldevr     [     !)	+y!!-			*d;	::;;   
r#   c                     i }t          |dg          5t          |ddgt          j        | t          |dg                               |S r   r   rq   s        r!    _DeleteModelParameters_to_vertexr     r   r#   c                 n    i }t          | dg          !t          |dgt          | dg                     |S Nrt   ru   rc   r9   s       r!   _DeleteModelResponse_from_mldevr     P    
 !)	+)*++7'(${=N<O*P*P   
r#   c                 n    i }t          | dg          !t          |dgt          | dg                     |S r   rc   r9   s       r!    _DeleteModelResponse_from_vertexr   !  r   r#   c                    i }t          | dg          "t          |ddgt          | dg                     t          | dg          "t          |ddgt          | dg                     t          | dg          "t          |ddgt          | dg                     t          | dg          "t          |dd	gt          | dg                     t          | d
g          "t          |ddgt          | d
g                     t          | dg          "t          |ddgt          | dg                     t          | dg          "t          |ddgt          | dg                     t          | dg          "t          |ddgt          | dg                     t          | dg          "t          |ddgt          | dg                     t          | dg          "t          |ddgt          | dg                     t          | dg          "t          |ddgt          | dg                     t          | dg          "t          |g dt          | dg                     t          | dg          "t          |g dt          | dg                     t          | dg          "t          |ddgt          | dg                     t          | dg          !t          |dgt          | dg                     t          | dg          "t          |ddgt          | dg                     t          | dg          "t          |g d t          | dg                     |S )!Noutput_gcs_uri
parameters
storageUrinegative_promptnegativePromptnumber_of_imagessampleCountaspect_ratioaspectRatioguidance_scaleguidanceScaleseedsafety_filter_levelsafetySettingperson_generationpersonGenerationinclude_safety_attributesincludeSafetyAttributesinclude_rai_reasonincludeRaiReasonlanguageoutput_mime_typer   outputOptionsrA   output_compression_qualityr   r   compressionQualityadd_watermarkaddWatermarklabels	edit_modeeditMode
base_steps)r   
editConfig	baseStepsrc   r9   s       r!   _EditImageConfig_to_vertexr   /  si   
 !)	+()**6	|$[+,--   
+)*++7	'([,-..   
+*+,,8	}%[-.//   
+'((4	}%[>*++   
+()**6	'[+,--   
+x  ,v.[6(0K0KLLL	+-.//;	'[0122   
++,--9	)*[./00   
+3455A	01[6788   
+,-..:	)*[/011   
+
|$$0	z"[:,''   
+*+,,8333[-.//   
+4566B===[7899   
+())5	~&[?+,,   
+z"".
Dxj$A$ABBB	+}%%1	z"[;-((   
+~&&2111[<.))   
r#   c                    i t          |dg          5t          ddgt          j        | t          |dg                               t          |dg          "t          ddgt          |dg                     t          |dg          /t          ddgfdt          |dg          D                        t          |dg           t	          t          |dg                     S )	Nrf   rg   promptinstances[0]reference_imagesreferenceImagesc                 2    g | ]}t          |          S rU   )_ReferenceImageAPI_to_vertexrl   s     r!   rY   z2_EditImageParameters_to_vertex.<locals>.<listcomp>  s5     	
 	
 	
 )y+FF	
 	
 	
r#   r   )r7   r8   rn   ro   r   rq   s      `@r!   _EditImageParameters_to_vertexr     s8    !)	+y!!-			*d;	::;;   
+z"".^X.[8*0M0MNNN	+*+,,8	*+	
 	
 	
 	
 	
[+=*>??	
 	
 	
   
+z"".[8*%%y+   
r#   c           	          i t          | dg          !t          dgt          | dg                     t          | dg          .t          dgfdt          | dg          D                        S )Nrt   ru   predictionsgenerated_imagesc                 2    g | ]}t          |          S rU   _GeneratedImage_from_vertexrl   s     r!   rY   z2_EditImageResponse_from_vertex.<locals>.<listcomp>  5     	
 	
 	
 (iEE	
 	
 	
r#   rc   r9   s     `@r!   _EditImageResponse_from_vertexr         
 !)	+)*++7'(${=N<O*P*P   
+''3		
 	
 	
 	
 	
[=/::	
 	
 	
   
r#   c                 <   i }t          | dg          "t          |ddgt          | dg                     t          | dg          "t          |ddgt          | dg                     t          | dg          "t          |ddgt          | dg                     t          | dg          t          d          t          | d	g          t          d
          t          | dg          t          d          t          | dg          t          d          |S )N	task_type
requests[]taskTypetitleoutput_dimensionalityoutputDimensionalityr@   z3mime_type parameter is not supported in Gemini API.auto_truncatez7auto_truncate parameter is not supported in Gemini API.document_ocrz6document_ocr parameter is not supported in Gemini API.audio_track_extractionz@audio_track_extraction parameter is not supported in Gemini API.r6   r9   s       r!   _EmbedContentConfig_to_mldevr     sY   
 !)	+}%%1	z"[;-((   
+y!!-w/kG91M1MNNN	+/011=	-.[2344   
+}%%1
J
K
KK	+())5
N
O
OO	+'((4
M
N
NN	+0122>
J   
r#   c                    i }t          |dg          }|d}|dk    r4t          | dg          "t          |ddgt          | dg                     n9|dk    r3t          | dg          "t          |ddgt          | dg                     t          |dg          }|d}|dk    r4t          | dg          "t          |ddgt          | dg                     n9|dk    r3t          | dg          "t          |ddgt          | dg                     t          |dg          }|d}|dk    r4t          | d	g          "t          |d
dgt          | d	g                     n9|dk    r3t          | d	g          "t          |ddgt          | d	g                     t          |dg          }|d}|dk    r3t          | dg          "t          |ddgt          | dg                     t          |dg          }|d}|dk    r4t          | dg          "t          |d
dgt          | dg                     n9|dk    r3t          | dg          "t          |ddgt          | dg                     t          |dg          }|d}|dk    r3t          | dg          "t          |ddgt          | dg                     t          |dg          }|d}|dk    r3t          | dg          "t          |ddgt          | dg                     |S )Nembedding_api_typePREDICTr   instances[]EMBED_CONTENTembedContentConfigr   r   r   r   r   r@   rA   r   autoTruncater   documentOcrr   audioTrackExtractionrc   )r*   r+   r,   r:   discriminators        r!   _EmbedContentConfig_to_vertexr
    s1   
 !){%9$:;;-MiK+''3

+
&
{[M
*
*  
 ''K+''3


,
{[M
*
*   {%9$:;;-MiK'##/

-14gY3O3O   ''K'##/


)
{WI
&
&   {%9$:;;-MiK1233?

/
0
{45
6
6  
 ''K1233?

!7
8
{45
6
6   {%9$:;;-MiK+''3

*
%
{[M
*
*   {%9$:;;-MiK/*++7


(
{_-
.
.  
 ''K/*++7


0
{_-
.
.   {%9$:;;-Mo%%K.)**6


/
{^,
-
-   {%9$:;;-Mo%%K2344@

!7
8
{56
7
7   
r#   c                    i }t          |dg          5t          |ddgt          j        | t          |dg                               t          |dg          ?t          |ddgd t          j        | t          |dg                    D                        t          |dg          2t          t          j        t          |dg                    ||           t          |dg           t          t          |dg          ||           t          |ddgt          j        | t          |dg                               |S )Nrf   rg   rh   r   rD   c                     g | ]}|S rU   rU   rV   s     r!   rY   z;_EmbedContentParametersPrivate_to_mldev.<locals>.<listcomp>  s(     	
 	
 	
 	
 	
 	
r#   r   )r7   r8   rn   ro   t_contents_for_embedr   r   r   rq   s        r!   '_EmbedContentParametersPrivate_to_mldevr  }  s|    !)	+y!!-			*d;	::;;   
+
|$$0	y!	
 	
.Dzl;; 	
 	
 	
	 	 	 
+	{##/	Dyk2233Y   
+z"". [8*%%y+   Wi
Dwi8899  
 
r#   c                    i }t          |dg          5t          |ddgt          j        | t          |dg                               t          |dg          }|d}|dk    rPt          |dg          ?t          |ddgd t          j        | t          |dg                    D                        t          |dg          }|d}|d	k    rSt          |dg          Bt          |dgt          t          j        t          |dg                    ||                     t          |d
g           t          t          |d
g          ||           |S )Nrf   rg   r  r  rh   r  rD   c                     g | ]}|S rU   rU   rV   s     r!   rY   z<_EmbedContentParametersPrivate_to_vertex.<locals>.<listcomp>  s(          r#   r  r   )r7   r8   rn   ro   r  rk   r   r
  )rd   r*   r+   r,   r:   r	  s         r!   (_EmbedContentParametersPrivate_to_vertexr    s    !)	+y!!-			*d;	::;;   {%9$:;;-MiK*&&2

)
$ 0d;==   	 	 	 {%9$:;;-Mo%%K)%%1

+
k${YK8899    
+z"".![8*%%y+   
r#   c           	      J   i }t          | dg          !t          |dgt          | dg                     t          | dg          +t          |dgd t          | dg          D                        t          | dg          !t          |dgt          | dg                     |S )Nrt   ru   
embeddingsc                     g | ]}|S rU   rU   rV   s     r!   rY   z4_EmbedContentResponse_from_mldev.<locals>.<listcomp>  ry   r#   metadatarc   r9   s       r!    _EmbedContentResponse_from_mldevr    s    
 !)	+)*++7'(${=N<O*P*P   
+~&&2	<<${\N;;<<<   
+
|$$0ZL${ZL"A"ABBB	r#   c           
      r   i t          | dg          !t          dgt          | dg                     t          | ddg          /t          dgfdt          | ddg          D                        t          | dg          !t          dgt          | dg                     t          dg          dk    rxt          | d	g          }t          | d
g          }t          | dg          }|rCi }|r |                    d          r|d         |d<   |r||d<   ||d<   t          dg|g           S )Nrt   ru   zpredictions[]r  c                 2    g | ]}t          |          S rU   )r   rl   s     r!   rY   z5_EmbedContentResponse_from_vertex.<locals>.<listcomp>  5     	
 	
 	
 *$	;GG	
 	
 	
r#   r  r  r  	embeddingusageMetadatar|   promptTokenCountrH   r   )r7   r8   get)r*   r+   r,   r  usage_metadatar|   statsr:   s     `    @r!   !_EmbedContentResponse_from_vertexr     s   
 !)	+)*++7'(${=N<O*P*P   
+677C		
 	
 	
 	
 	
[?L*IJJ	
 	
 	
   
+
|$$0ZL${ZL"A"ABBB	+,-../AA[;-00I+'899N[;-00I 3e	 BN../ABB B-.@Am	 '&k %i
9|nyk222	r#   c                     i }t          | dg          !t          |dgt          | dg                     t          | dg          !t          |dgt          | dg                     |S )Nendpointr   deployedModelIddeployed_model_idrc   r9   s       r!   _Endpoint_from_vertexr%    s    
 !)	+
|$$0VHd;==>>>	+)*++7'(${=N<O*P*P   
r#   c                    i }t          | dg          t          d          t          | dg          !t          |dgt          | dg                     t          | dg          !t          |dgt          | dg                     |S )Nr>   r?   file_urifileUrir@   rA   )r7   r   r8   r9   s       r!   _FileData_to_mldevr)  /  s    
 !)	+'((4
M
N
NN	+
|$$0YKkJ<!@!@AAA	+}%%1ZL${[M"B"BCCC	r#   c                    i }t          | dg          !t          |dgt          | dg                     t          | dg          !t          |dgt          | dg                     t          | dg          !t          |dgt          | dg                     t          | dg          t          d          t          | dg          t          d          |S )Nidargsr   partial_argsz6partial_args parameter is not supported in Gemini API.will_continuez7will_continue parameter is not supported in Gemini API.r6   r9   s       r!   _FunctionCall_to_mldevr/  A  s    
 !)	+v*TFDtf55666	+x  ,VHd;99:::	+x  ,VHd;99:::	+'((4
M
N
NN	+())5
N
O
OO	r#   c                    i }t          | dg          !t          |dgt          | dg                     t          | dg          !t          |dgt          | dg                     t          | dg          t          d          |S )Nallowed_function_namesallowedFunctionNamesmodestream_function_call_argumentszHstream_function_call_arguments parameter is not supported in Gemini API.r6   r9   s       r!   _FunctionCallingConfig_to_mldevr5  Y  s    
 !)	+0122>	 [3455   
+x  ,VHd;99:::	+89::F
	  
 
r#   c                    i }t          | dg          !t          |dgt          | dg                     t          | dg          !t          |dgt          | dg                     t          | dg          !t          |dgt          | dg                     t          | dg          !t          |dgt          | dg                     t          | dg          !t          |dgt          | dg                     t          | dg          !t          |dgt          | dg                     t          | d	g          t          d
          |S )Ndescriptionr   r   parameters_json_schemaparametersJsonSchemaresponseresponse_json_schemaresponseJsonSchemabehaviorzHbehavior parameter is not supported in Gemini Enterprise Agent Platform.r6   r9   s       r!   _FunctionDeclaration_to_vertexr>  r  s   
 !)	+''3]OT+%G%GHHH	+x  ,VHd;99:::	+~&&2\ND|n$E$EFFF	+0122>	 [3455   
+
|$$0ZL${ZL"A"ABBB	+./00<	[1233   
+
|$$0
	  
 
r#   c                     i t          |dg          Bt          |dgt          t          j        t          |dg                                         t          |dg          !t          dgt          |dg                     t          |dg          !t          dgt          |dg                     t          |dg          !t          dgt          |dg                     t          |dg          !t          d	gt          |dg                     t          |d
g          !t          dgt          |d
g                     t          |dg          !t          dgt          |dg                     t          |dg          !t          dgt          |dg                     t          |dg          !t          dgt          |dg                     t          |dg          !t          dgt          |dg                     t          |dg          !t          dgt          |dg                     t          |dg          !t          dgt          |dg                     t          |dg          !t          dgt          |dg                     t          |dg          4t          dgt          j         t          |dg                               t          |dg          !t          dgt          |dg                     t          |dg          t          d          t          |dg          t          d          t          |d g          .t          |d!gfd"t          |d g          D                        t          |d#g          Bt          |d#g fd$t          j         t          |d#g                    D                        t          |d%g          0t          |d&gt          t          |d%g                               t          |d'g          t          d(          t          |d)g          4t          |d*gt          j	         t          |d)g                               t          |d+g          !t          d,gt          |d+g                     t          |d-g          !t          d.gt          |d-g                     t          |d/g          3t          d0gt          j
        t          |d/g                               t          |d1g          t          d2          t          |d3g          !t          d4gt          |d3g                     t          |d5g          0t          d6gt          t          |d5g                               t          |d7g          !t          d8gt          |d7g                     t          |d9g          t          d:          t          |d;g          !t          |d<gt          |d;g                     S )=Nr   r   temperaturetop_ptopPtop_ktopKcandidate_countcandidateCountmax_output_tokensmaxOutputTokensstop_sequencesstopSequencesresponse_logprobsresponseLogprobslogprobspresence_penaltypresencePenaltyfrequency_penaltyfrequencyPenaltyr   response_mime_typeresponseMimeTyperesponse_schemaresponseSchemar;  r<  routing_configz8routing_config parameter is not supported in Gemini API.model_selection_configz@model_selection_config parameter is not supported in Gemini API.safety_settingssafetySettingsc                 2    g | ]}t          |          S rU   )_SafetySetting_to_mldevrl   s     r!   rY   z3_GenerateContentConfig_to_mldev.<locals>.<listcomp>  5     	
 	
 	
 $D)[AA	
 	
 	
r#   r   c                 X    g | ]&}t          t          j        |                    'S rU   )_Tool_to_mldevrn   t_toolrW   rX   rd   r,   r:   s     r!   rY   z3_GenerateContentConfig_to_mldev.<locals>.<listcomp>  sA     	
 	
 	
 18J55y+NN	
 	
 	
r#   tool_config
toolConfigr   0labels parameter is not supported in Gemini API.cached_contentcachedContentresponse_modalitiesresponseModalitiesmedia_resolutionmediaResolutionspeech_configspeechConfigaudio_timestampz9audio_timestamp parameter is not supported in Gemini API.thinking_configthinkingConfigimage_configimageConfigenable_enhanced_civic_answersenableEnhancedCivicAnswersmodel_armor_configz<model_armor_config parameter is not supported in Gemini API.service_tierserviceTier)r7   r8   r   rn   r   t_schemar   t_tools_ToolConfig_to_mldevt_cached_content_namet_speech_config_ImageConfig_to_mldevrq   s   `  `@r!   _GenerateContentConfig_to_mldevr|    s    !)	+,-..:	K[+?*@AABB	
 	
   
+''3]OT+%G%GHHH	+y!!-VHd;	::;;;	+y!!-VHd;	::;;;	+)*++7%&[;L:M(N(NOOO	++,--9%&[;N:O(P(P   
+()**6_%tK:J9K'L'LMMM	++,--9	[./00   
+
|$$0ZL${ZL"A"ABBB	+*+,,8%&[;M:N(O(O   
++,--9	[./00   
+x  ,VHd;99:::	+,-..:	[/011   
+)*++7		
:tK2C1DEEFF   
+./00<	[1233   
+()**6
O
P
PP	+0122>
J   
+)*++7		
 	
 	
 	
 	
[+<*=>>	
 	
 	
   
+y!!-			
 	
 	
 	
 	
 	
	*d;	.J.JKK	
 	
 	
   
+''3	}o..	;	
 	
   
+z"".
G
H
HH	+()**6		[+;*<==	
 	
   
+-.//;	[0122   
+*+,,8%&[;M:N(O(O   
+())5		${_,=>>??   
+)*++7
C   
+)*++7%&[;L:M(N(NOOO	+'((4	~.//K	
 	
   
+7899E	%&[:;<<   
+,-..:
F   
+'((4kN;K)L)LMMM	r#   c                 j    i t          |dg          Bt          |dgt          t          j        t          |dg                                         t          |dg          !t          dgt          |dg                     t          |dg          !t          dgt          |dg                     t          |dg          !t          dgt          |dg                     t          |dg          !t          d	gt          |dg                     t          |d
g          !t          dgt          |d
g                     t          |dg          !t          dgt          |dg                     t          |dg          !t          dgt          |dg                     t          |dg          !t          dgt          |dg                     t          |dg          !t          dgt          |dg                     t          |dg          !t          dgt          |dg                     t          |dg          !t          dgt          |dg                     t          |dg          !t          dgt          |dg                     t          |dg          4t          dgt          j         t          |dg                               t          |dg          !t          dgt          |dg                     t          |dg          !t          dgt          |dg                     t          |dg          !t          dgt          |dg                     t          |d g          +t          |d!gd" t          |d g          D                        t          |d#g          Bt          |d#g fd$t          j         t          |d#g                    D                        t          |d%g          0t          |d&gt          t          |d%g                               t          |d'g          !t          |d'gt          |d'g                     t          |d(g          4t          |d)gt          j         t          |d(g                               t          |d*g          !t          d+gt          |d*g                     t          |d,g          !t          d-gt          |d,g                     t          |d.g          Bt          d/gt          t          j
        t          |d.g                                         t          |d0g          !t          d1gt          |d0g                     t          |d2g          !t          d3gt          |d2g                     t          |d4g          0t          d5gt          t          |d4g                               t          |d6g          t          d7          t          |d8g          !t          |d9gt          |d8g                     t          |d:g          !t          |d;gt          |d:g                     S )<Nr   r   r@  rA  rB  rC  rD  rE  rF  rG  rH  rI  rJ  rK  rL  rM  rN  rO  rP  rQ  r   rR  rS  rT  rU  r;  r<  rV  routingConfigrW  modelConfigrX  rY  c                     g | ]}|S rU   rU   rV   s     r!   rY   z4_GenerateContentConfig_to_vertex.<locals>.<listcomp>  rb   r#   r   c                 X    g | ]&}t          t          j        |                    'S rU   )r   rn   r_  r`  s     r!   rY   z4_GenerateContentConfig_to_vertex.<locals>.<listcomp>  sA     	
 	
 	
 AHZ66	;OO	
 	
 	
r#   ra  rb  r   rd  re  rf  rg  rh  ri  rj  rk  rl  audioTimestamprm  rn  ro  rp  rq  ]enable_enhanced_civic_answers parameter is not supported in Gemini Enterprise Agent Platform.rs  modelArmorConfigrt  ru  )r7   r8   rk   rn   r   rv  rw  _ToolConfig_to_vertexry  _SpeechConfig_to_vertexrz  _ImageConfig_to_vertexr   rq   s   `  `@r!    _GenerateContentConfig_to_vertexr  W  s    !)	+,-..:	K[+?*@AABB	
 	
   
+''3]OT+%G%GHHH	+y!!-VHd;	::;;;	+y!!-VHd;	::;;;	+)*++7%&[;L:M(N(NOOO	++,--9%&[;N:O(P(P   
+()**6_%tK:J9K'L'LMMM	++,--9	[./00   
+
|$$0ZL${ZL"A"ABBB	+*+,,8%&[;M:N(O(O   
++,--9	[./00   
+x  ,VHd;99:::	+,-..:	[/011   
+)*++7		
:tK2C1DEEFF   
+./00<	[1233   
+()**6_%tK:J9K'L'LMMM	+0122>	[3455   
+)*++7	AA${->,?@@AAA   
+y!!-			
 	
 	
 	
 	
 	
	*d;	.J.JKK	
 	
 	
   
+''3	}o..	;	
 	
   
+z"".
Dxj$A$ABBB	+()**6		[+;*<==	
 	
   
+-.//;	[0122   
+*+,,8%&[;M:N(O(O   
+())5	d;0ABBCC	
 	
   
+)*++7%&[;L:M(N(NOOO	+)*++7%&[;L:M(N(NOOO	+'((4	~.//K	
 	
   
+7899E
	&  
 
+,-..:	[/011   
+'((4kN;K)L)LMMM	r#   c                    i t          |dg          5t          ddgt          j        | t          |dg                               t          |dg          @t          dgfdt          j        t          |dg                    D                        t          |dg          1t          dgt          | t          |dg                               S )Nrf   rg   rh   c                 2    g | ]}t          |          S rU   r   rl   s     r!   rY   z7_GenerateContentParameters_to_mldev.<locals>.<listcomp>'  r   r#   r   r   )r7   r8   rn   ro   rp   r|  rq   s      `@r!   #_GenerateContentParameters_to_mldevr    s    !)	+y!!-			*d;	::;;   
+
|$$0		
 	
 	
 	
 	
T+
|%D%DEE	
 	
 	
   
+z"".	'[8*55y+	
 	
   
r#   c                    i t          |dg          5t          ddgt          j        | t          |dg                               t          |dg          @t          dgfdt          j        t          |dg                    D                        t          |dg          1t          dgt          | t          |dg                               S )Nrf   rg   rh   c                 2    g | ]}t          |          S rU   rj   rl   s     r!   rY   z8_GenerateContentParameters_to_vertex.<locals>.<listcomp>K  rm   r#   r   r   )r7   r8   rn   ro   rp   r  rq   s      `@r!   $_GenerateContentParameters_to_vertexr  9  s    !)	+y!!-			*d;	::;;   
+
|$$0		
 	
 	
 	
 	
T+
|%D%DEE	
 	
 	
   
+z"".	([8*55y+	
 	
   
r#   c           	         i t          | dg          !t          dgt          | dg                     t          | dg          .t          dgfdt          | dg          D                        t          | dg          !t          dgt          | dg                     t          | dg          !t          dgt          | dg                     t          | d	g          !t          d
gt          | d	g                     t          | dg          !t          dgt          | dg                     t          | dg          !t          dgt          | dg                     S )Nrt   ru   
candidatesc                 2    g | ]}t          |          S rU   )r]   rl   s     r!   rY   z7_GenerateContentResponse_from_mldev.<locals>.<listcomp>l  5     	
 	
 	
 "$	;??	
 	
 	
r#   modelVersionmodel_versionpromptFeedbackprompt_feedback
responseIdresponse_idr  r  modelStatusmodel_statusrc   r9   s     `@r!   #_GenerateContentResponse_from_mldevr  ]  s   
 !)	+)*++7'(${=N<O*P*P   
+~&&2		
 	
 	
 	
 	
[<.99	
 	
 	
   
+'((4_%tK.9I'J'JKKK	+()**6&'k<L;M)N)NOOO	+~&&2]OT+~%F%FGGG	+())5%&[?:K(L(LMMM	+''3^$d;&H&HIII	r#   c           	         i }t          | dg          !t          |dgt          | dg                     t          | dg          +t          |dgd t          | dg          D                        t          | dg          !t          |dgt          | dg                     t          | dg          !t          |dgt          | dg                     t          | d	g          !t          |d
gt          | d	g                     t          | dg          !t          |dgt          | dg                     t          | dg          !t          |dgt          | dg                     |S )Nrt   ru   r  c                     g | ]}|S rU   rU   rV   s     r!   rY   z8_GenerateContentResponse_from_vertex.<locals>.<listcomp>  ry   r#   
createTimecreate_timer  r  r  r  r  r  r  r  rc   r9   s       r!   $_GenerateContentResponse_from_vertexr    s   
 !)	+)*++7'(${=N<O*P*P   
+~&&2	<<${\N;;<<<   
+~&&2]OT+~%F%FGGG	+'((4_%tK.9I'J'JKKK	+()**6&'k<L;M)N)NOOO	+~&&2]OT+~%F%FGGG	+())5%&[?:K(L(LMMM	r#   c                 d   i }t          | dg          t          d          t          | dg          t          d          t          | dg          "t          |ddgt          | dg                     t          | dg          "t          |dd	gt          | dg                     t          | d
g          "t          |ddgt          | d
g                     t          | dg          t          d          t          | dg          @t          t          | dg                     t          |ddgt          | dg                     t          | dg          @t	          t          | dg                     t          |ddgt          | dg                     t          | dg          "t          |ddgt          | dg                     t          | dg          "t          |ddgt          | dg                     t          | dg          "t          |ddgt          | dg                     t          | dg          "t          |g dt          | dg                     t          | dg          "t          |g dt          | dg                     t          | dg          t          d          t          | dg          t          d          t          | dg          "t          |dd gt          | dg                     t          | d!g          t          d"          |S )#Nr   8output_gcs_uri parameter is not supported in Gemini API.r   z9negative_prompt parameter is not supported in Gemini API.r   r   r   r   r   r   r   r   .seed parameter is not supported in Gemini API.r   r   r   r   r   r   r   r   r   r   r   r   r   r   z7add_watermark parameter is not supported in Gemini API.r   rc  
image_sizesampleImageSizeenhance_promptz8enhance_prompt parameter is not supported in Gemini API.)r7   r   r8   r&   r"   r9   s       r!   _GenerateImagesConfig_to_mldevr    s   
 !)	+()**6
O
P
PP	+)*++7
C   
+*+,,8	}%[-.//   
+'((4	}%[>*++   
+()**6	'[+,--   
+x  ,
E
F
FF	+-.//;-[0122   		'[0122   
++,--9,[./00   		)*[./00   
+3455A	01[6788   
+,-..:	)*[/011   
+
|$$0	z"[:,''   
+*+,,8333[-.//   
+4566B===[7899   
+())5
N
O
OO	+z"".
G
H
HH	+~&&2	()[<.))   
+()**6
O
P
PP	r#   c                    i }t          | dg          "t          |ddgt          | dg                     t          | dg          "t          |ddgt          | dg                     t          | dg          "t          |ddgt          | dg                     t          | dg          "t          |dd	gt          | dg                     t          | d
g          "t          |ddgt          | d
g                     t          | dg          "t          |ddgt          | dg                     t          | dg          "t          |ddgt          | dg                     t          | dg          "t          |ddgt          | dg                     t          | dg          "t          |ddgt          | dg                     t          | dg          "t          |ddgt          | dg                     t          | dg          "t          |ddgt          | dg                     t          | dg          "t          |g dt          | dg                     t          | dg          "t          |g dt          | dg                     t          | dg          "t          |ddgt          | dg                     t          | dg          !t          |dgt          | dg                     t          | dg          "t          |ddgt          | dg                     t          | dg          "t          |dd gt          | dg                     |S )!Nr   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r  r  r  enhancePromptrc   r9   s       r!   _GenerateImagesConfig_to_vertexr    sm   
 !)	+()**6	|$[+,--   
+)*++7	'([,-..   
+*+,,8	}%[-.//   
+'((4	}%[>*++   
+()**6	'[+,--   
+x  ,v.[6(0K0KLLL	+-.//;	'[0122   
++,--9	)*[./00   
+3455A	01[6788   
+,-..:	)*[/011   
+
|$$0	z"[:,''   
+*+,,8333[-.//   
+4566B===[7899   
+())5	~&[?+,,   
+z"".
Dxj$A$ABBB	+~&&2	()[<.))   
+()**6	'[+,--   
r#   c                 ^   i }t          |dg          5t          |ddgt          j        | t          |dg                               t          |dg          "t          |ddgt          |dg                     t          |dg           t	          t          |dg          ||           |S Nrf   rg   r   r   r   )r7   r8   rn   ro   r  rq   s        r!   "_GenerateImagesParameters_to_mldevr    s     !)	+y!!-			*d;	::;;   
+z"".^X.[8*0M0MNNN	+z""."[8*%%y+   
r#   c                 ^   i }t          |dg          5t          |ddgt          j        | t          |dg                               t          |dg          "t          |ddgt          |dg                     t          |dg           t	          t          |dg          ||           |S r  )r7   r8   rn   ro   r  rq   s        r!   #_GenerateImagesParameters_to_vertexr    s     !)	+y!!-			*d;	::;;   
+z"".^X.[8*0M0MNNN	+z"".#[8*%%y+   
r#   c           
      r   i t          | dg          !t          dgt          | dg                     t          | dg          .t          dgfdt          | dg          D                        t          | dg          0t          dgt          t          | dg                               S )Nrt   ru   r   r   c                 2    g | ]}t          |          S rU   )_GeneratedImage_from_mldevrl   s     r!   rY   z6_GenerateImagesResponse_from_mldev.<locals>.<listcomp>  5     	
 	
 	
 'tYDD	
 	
 	
r#   positivePromptSafetyAttributes!positive_prompt_safety_attributes)r7   r8   _SafetyAttributes_from_mldevr9   s     `@r!   "_GenerateImagesResponse_from_mldevr    s   
 !)	+)*++7'(${=N<O*P*P   
+''3		
 	
 	
 	
 	
[=/::	
 	
 	
   
+89::F	,-$?@AA	
 	
   
r#   c           
      r   i t          | dg          !t          dgt          | dg                     t          | dg          .t          dgfdt          | dg          D                        t          | dg          0t          dgt          t          | dg                               S )Nrt   ru   r   r   c                 2    g | ]}t          |          S rU   r   rl   s     r!   rY   z7_GenerateImagesResponse_from_vertex.<locals>.<listcomp>  r   r#   r  r  )r7   r8   _SafetyAttributes_from_vertexr9   s     `@r!   #_GenerateImagesResponse_from_vertexr    s   
 !)	+)*++7'(${=N<O*P*P   
+''3		
 	
 	
 	
 	
[=/::	
 	
 	
   
+89::F	,-%?@AA	
 	
   
r#   c           
         i t          | dg          "t          |ddgt          | dg                     t          | dg          t          d          t          | dg          t          d          t          | dg          "t          |dd	gt          | dg                     t          | d
g          t          d          t          | dg          "t          |ddgt          | dg                     t          | dg          "t          |ddgt          | dg                     t          | dg          "t          |ddgt          | dg                     t          | dg          t          d          t          | dg          "t          |ddgt          | dg                     t          | dg          "t          |ddgt          | dg                     t          | dg          t          d          t          | dg          1t          |ddgt          t          | dg                               t          | dg          /t          |ddgfdt          | dg          D                        t          | dg          t          d           t          | d!g          t          d"          t          | d#g          t          d$          t          | d%g          !t          |d&gt          | d%g                     t          | d'g          t          d(          S ))Nnumber_of_videosr   r   r   r  fpsz-fps parameter is not supported in Gemini API.duration_secondsdurationSecondsr   r  r   r   
resolutionr   r   pubsub_topicz6pubsub_topic parameter is not supported in Gemini API.r   r   r  r  generate_audioz8generate_audio parameter is not supported in Gemini API.
last_framer   	lastFramer   r   c                 2    g | ]}t          |          S rU   )'_VideoGenerationReferenceImage_to_mldevrl   s     r!   rY   z2_GenerateVideosConfig_to_mldev.<locals>.<listcomp>^  s<     	
 	
 	
  4i 	
 	
 	
r#   maskz.mask parameter is not supported in Gemini API.compression_qualityz=compression_quality parameter is not supported in Gemini API.r   rc  webhook_configwebhookConfigresize_modez5resize_mode parameter is not supported in Gemini API.)r7   r8   r   _Image_to_mldevr9   s     `@r!   _GenerateVideosConfig_to_mldevr  
  s"   
 !)	+*+,,8	}%[-.//   
+()**6
O
P
PP	+w+
D
E
EE	+*+,,8	()[-.//   
+x  ,
E
F
FF	+'((4	}%[>*++   
+~&&2	|$[<.))   
++,--9	)*[./00   
+'((4
M
N
NN	+)*++7	'([,-..   
+()**6	'[+,--   
+()**6
O
P
PP	+~&&2	%|n--y+	
 	
   
+*+,,8	*+	
 	
 	
 	
 	
 [+=*>??		
 	
 	
	 	 	 
+x  ,
E
F
FF	+-.//;
G   
+z"".
G
H
HH	+()**6(${=M<N*O*O   
+''3
L
M
MM	r#   c           
         i t          | dg          "t          |ddgt          | dg                     t          | dg          "t          |ddgt          | dg                     t          | dg          "t          |ddgt          | dg                     t          | dg          "t          |ddgt          | dg                     t          | d	g          "t          |dd	gt          | d	g                     t          | d
g          "t          |ddgt          | d
g                     t          | dg          "t          |ddgt          | dg                     t          | dg          "t          |ddgt          | dg                     t          | dg          "t          |ddgt          | dg                     t          | dg          "t          |ddgt          | dg                     t          | dg          "t          |ddgt          | dg                     t          | dg          "t          |ddgt          | dg                     t          | dg          1t          |ddgt          t          | dg                               t          | dg          /t          |ddgfdt          | dg          D                        t          | dg          1t          |ddgt          t          | dg                               t          | dg          "t          |ddgt          | dg                     t          | d g          !t          |d gt          | d g                     t          | d!g          t	          d"          t          | d#g          "t          |dd$gt          | d#g                     S )%Nr  r   r   r   r   r  r  r  r   r   r   r  r   r   r  pubsubTopicr   r   r  r  r  generateAudior  r   r  r   r   c                 2    g | ]}t          |          S rU   )(_VideoGenerationReferenceImage_to_vertexrl   s     r!   rY   z3_GenerateVideosConfig_to_vertex.<locals>.<listcomp>  s<     	
 	
 	
  5i 	
 	
 	
r#   r  r  r   r   r  zNwebhook_config parameter is not supported in Gemini Enterprise Agent Platform.r  
resizeMode)r7   r8   _Image_to_vertex_VideoGenerationMask_to_vertexr   r9   s     `@r!   _GenerateVideosConfig_to_vertexr  |  s   
 !)	+*+,,8	}%[-.//   
+()**6	|$[+,--   
+w+u-tK%/I/IJJJ	+*+,,8	()[-.//   
+x  ,v.[6(0K0KLLL	+'((4	}%[>*++   
+~&&2	|$[<.))   
++,--9	)*[./00   
+'((4	}%[>*++   
+)*++7	'([,-..   
+()**6	'[+,--   
+()**6	'[+,--   
+~&&2	%|n--y+	
 	
   
+*+,,8	*+	
 	
 	
 	
 	
 [+=*>??		
 	
 	
	 	 	 
+x  ,	 &vh''K	
 	
   
+-.//;	+,[0122   
+z"".
Dxj$A$ABBB	+()**6
	  
 
+''3	|$[=/**   
r#   c                    i }t          | dg          !t          |dgt          | dg                     t          | dg          !t          |dgt          | dg                     t          | dg          !t          |dgt          | dg                     t          | dg          !t          |dgt          | dg                     t          | ddg          1t          |dgt          t          | ddg          ||                     t          | ddg          1t          |dgt          t          | ddg          ||                     |S )Nr   r  doneerrorr:  generateVideoResponseresult)r7   r8   "_GenerateVideosResponse_from_mldevr9   s       r!   #_GenerateVideosOperation_from_mldevr  	  s   
 !)	+x  ,VHd;99:::	+
|$$0ZL${ZL"A"ABBB	+x  ,VHd;99:::	+y!!-WItK';;<<<	+
$;<==I	*z+BCDD	
 	
   
+
$;<==I	
*z+BCDD	
 	
   
r#   c           
         i }t          | dg          !t          |dgt          | dg                     t          | dg          !t          |dgt          | dg                     t          | dg          !t          |dgt          | dg                     t          | dg          !t          |dgt          | dg                     t          | dg          0t          |dgt          t          | dg          ||                     t          | dg          0t          |dgt          t          | dg          ||                     |S )Nr   r  r  r  r:  r  )r7   r8   #_GenerateVideosResponse_from_vertexr9   s       r!   $_GenerateVideosOperation_from_vertexr  2	  ss   
 !)	+x  ,VHd;99:::	+
|$$0ZL${ZL"A"ABBB	+x  ,VHd;99:::	+y!!-WItK';;<<<	+
|$$0	+zl++Y	
 	
   
+
|$$0	
+zl++Y	
 	
   
r#   c                    i }t          |dg          5t          |ddgt          j        | t          |dg                               t          |dg          "t          |ddgt          |dg                     t          |dg          1t          |ddgt	          t          |dg          ||                     t          |dg          1t          |ddgt          t          |dg          ||                     t          |dg           t          t          |dg          ||           t          |dg           t          t          |dg          ||           |S 	Nrf   rg   r   r   imagevideosourcer   )r7   r8   rn   ro   r  _Video_to_mldev_GenerateVideosSource_to_mldevr  rq   s        r!   "_GenerateVideosParameters_to_mldevr  Y	  s    !)	+y!!-			*d;	::;;   
+z"".^X.[8*0M0MNNN	+y!!-	![7)44iMM   
+y!!-	![7)44iMM   
+z""."[8*%%y+   
+z""."[8*%%y+   
r#   c                    i }t          |dg          5t          |ddgt          j        | t          |dg                               t          |dg          "t          |ddgt          |dg                     t          |dg          1t          |ddgt	          t          |dg          ||                     t          |dg          1t          |ddgt          t          |dg          ||                     t          |dg           t          t          |dg          ||           t          |dg           t          t          |dg          ||           |S r  )r7   r8   rn   ro   r  _Video_to_vertex_GenerateVideosSource_to_vertexr  rq   s        r!   #_GenerateVideosParameters_to_vertexr  	  s    !)	+y!!-			*d;	::;;   
+z"".^X.[8*0M0MNNN	+y!!-	!kG955y+NN   
+y!!-	!kG955y+NN   
+z"".#[8*%%y+   
+z"".#[8*%%y+   
r#   c           	      T   i t          | dg          .t          dgfdt          | dg          D                        t          | dg          !t          dgt          | dg                     t          | dg          !t          dgt          | dg                     S )NgeneratedSamplesgenerated_videosc                 2    g | ]}t          |          S rU   )_GeneratedVideo_from_mldevrl   s     r!   rY   z6_GenerateVideosResponse_from_mldev.<locals>.<listcomp>	  r  r#   raiMediaFilteredCountrai_media_filtered_countraiMediaFilteredReasonsrai_media_filtered_reasonsrc   r9   s     `@r!   r  r  	  s    
 !)	+*+,,8		
 	
 	
 	
 	
[+=*>??	
 	
 	
   
+/011=	#$[2344   
+1233?	%&[4566   
r#   c           	      T   i t          | dg          .t          dgfdt          | dg          D                        t          | dg          !t          dgt          | dg                     t          | dg          !t          dgt          | dg                     S )Nvideosr  c                 2    g | ]}t          |          S rU   )_GeneratedVideo_from_vertexrl   s     r!   rY   z7_GenerateVideosResponse_from_vertex.<locals>.<listcomp>	  r   r#   r  r  r  r  rc   r9   s     `@r!   r  r  	  s    
 !)	+z"".		
 	
 	
 	
 	
[8*55	
 	
 	
   
+/011=	#$[2344   
+1233?	%&[4566   
r#   c           
      x   i }t          | dg          "t          |ddgt          | dg                     t          | dg          1t          |ddgt          t          | dg          ||                     t          | dg          1t          |ddgt          t          | dg          ||                     |S Nr   r   r  r  )r7   r8   r  r  r9   s       r!   r  r  	  s    
 !)	+z"".14hZ3P3P   
+y!!-	![7)44iMM   
+y!!-	![7)44iMM   
r#   c           
      x   i }t          | dg          "t          |ddgt          | dg                     t          | dg          1t          |ddgt          t          | dg          ||                     t          | dg          1t          |ddgt          t          | dg          ||                     |S r  )r7   r8   r  r  r9   s       r!   r  r  
  s    
 !)	+z"".14hZ3P3P   
+y!!-	!kG955y+NN   
+y!!-	!kG955y+NN   
r#   c           
         i }t          | dg          0t          |dgt          t          | dg          ||                     t          | dg          +t          |dgd t          | dg          D                        |S )N_selfr  r   c                     g | ]}|S rU   rU   rV   s     r!   rY   z3_GeneratedImageMask_from_vertex.<locals>.<listcomp><
  s    OOOOOOr#   )r7   r8   _Image_from_vertexr9   s       r!   _GeneratedImageMask_from_vertexr  +
  s    
 !)	+y!!-	wi(()[	
 	
   
+z"".H:OOkH:1N1NOOO   
r#   c           
      r   i }t          | dg          0t          |dgt          t          | dg          ||                     t          | dg          !t          |dgt          | dg                     t          | dg          0t          |dgt          t          | dg          ||                     |S )Nr  r  raiFilteredReasonrai_filtered_reasonsafety_attributes)r7   r8   _Image_from_mldevr  r9   s       r!   r  r  B
  s    
 !)	+y!!-		${WI66	;OO   
++,--9	[./00   
+y!!-	$wi(()[	
 	
   
r#   c           
         i }t          | dg          0t          |dgt          t          | dg          ||                     t          | dg          !t          |dgt          | dg                     t          | dg          0t          |dgt          t          | dg          ||                     t          | dg          !t          |dgt          | dg                     |S )Nr  r  r  r  r  r   enhanced_prompt)r7   r8   r  r  r9   s       r!   r   r   b
  s"   
 !)	+y!!-		wi(()[	
 	
   
++,--9	[./00   
+y!!-	%wi(()[	
 	
   
+z"".&'kH:)F)FGGG	r#   c           
          i }t          | dg          0t          |dgt          t          | dg          ||                     |S )Nr  )r7   r8   _Video_from_mldevr9   s       r!   r  r  
  sX    
 !)	+y!!-		${WI66	;OO   
r#   c           
          i }t          | dg          0t          |dgt          t          | dg          ||                     |S )Nr  r  )r7   r8   _Video_from_vertexr9   s       r!   r  r  
  s]    
 !)	+y!!-		wi(()[	
 	
   
r#   c           
       	   i }t          | dg          !t          |dgt          | dg                     t          | dg          !t          |dgt          | dg                     t          | dg          !t          |dgt          | dg                     t          | dg          !t          |dgt          | dg                     t          | d	g          !t          |d
gt          | d	g                     t          | dg          !t          |dgt          | dg                     t          | dg          !t          |dgt          | dg                     t          | dg          !t          |dgt          | dg                     t          | dg          !t          |dgt          | dg                     t          | dg          !t          |dgt          | dg                     t          | dg          !t          |dgt          | dg                     t          | dg          !t          |dgt          | dg                     t          | dg          !t          |dgt          | dg                     t          | dg          !t          |dgt          | dg                     t          | dg          !t          |dgt          | dg                     t          | dg          !t          |dgt          | dg                     t          | dg          0t          |d gt          t          | dg          ||                     t          | d!g          !t          |d"gt          | d!g                     t          | d#g          !t          |d#gt          | d#g                     t          | d$g          !t          |d%gt          | d$g                     t          | d&g          !t          |d'gt          | d&g                     t          | d(g          !t          |d)gt          | d(g                     t          | d*g          t          d+          |S ),NrW  r  r;  r<  rl  r  rE  rF  enable_affective_dialogenableAffectiveDialogrP  rQ  rM  rG  rH  rh  ri  rN  rO  rK  rL  rR  rS  rf  rg  rT  rU  rV  r~  r   rj  rk  rI  rJ  r@  rm  rn  rC  rD  rA  rB  rq  r  )r7   r8   r  r   r9   s       r!   r   r   
  se   
 !)	+0122>	[3455   
+./00<	[1233   
+)*++7%&[;L:M(N(NOOO	+)*++7%&[;L:M(N(NOOO	+1233?	 ![4566   
++,--9	[./00   
+
|$$0ZL${ZL"A"ABBB	++,--9%&[;N:O(P(P   
+*+,,8%&[;M:N(O(O   
+*+,,8%&[;M:N(O(O   
++,--9	[./00   
+,-..:	[/011   
+-.//;	[0122   
+)*++7%&[;L:M(N(NOOO	+()**6_%tK:J9K'L'LMMM	+x  ,VHd;99:::	+())5	/00)[	
 	
   
+()**6_%tK:J9K'L'LMMM	+''3]OT+%G%GHHH	+)*++7%&[;L:M(N(NOOO	+y!!-VHd;	::;;;	+y!!-VHd;	::;;;	+7899E
	&  
 
r#   c                     i }t          |dg          5t          |ddgt          j        | t          |dg                               |S r   r   rq   s        r!   _GetModelParameters_to_mldevr  "  r   r#   c                     i }t          |dg          5t          |ddgt          j        | t          |dg                               |S r   r   rq   s        r!   _GetModelParameters_to_vertexr  3  r   r#   c           
          i }t          | dg          0t          |dgt          t          | dg          ||                     t          | dg          !t          |dgt          | dg                     |S )Nauth_config
authConfigenable_widgetenableWidget)r7   r8   r;   r9   s       r!   _GoogleMaps_to_mldevr  D  s    
 !)	+''3	}o..	;	
 	
   
+())5^$d;8I&J&JKKK	r#   c                 R   i }t          | dg          !t          |dgt          | dg                     t          | dg          t          d          t          | dg          t          d          t          | dg          !t          |dgt          | dg                     |S )	Nsearch_typessearchTypesblocking_confidencez=blocking_confidence parameter is not supported in Gemini API.exclude_domainsz9exclude_domains parameter is not supported in Gemini API.time_range_filtertimeRangeFilterr6   r9   s       r!   _GoogleSearch_to_mldevr"  Y  s    
 !)	+'((4]OT+7G%H%HIII	+-.//;
G   
+)*++7
C   
++,--9%&[;N:O(P(P   
r#   c                    i }t          | dg          !t          |dgt          | dg                     t          | dg          !t          |dgt          | dg                     t          | dg          t          d          t          | dg          t          d          t          | d	g          t          d
          t          | dg          t          d          t          | dg          t          d          |S )Nr   r   r  	imageSizer   z;person_generation parameter is not supported in Gemini API.prominent_peoplez:prominent_people parameter is not supported in Gemini API.r   z:output_mime_type parameter is not supported in Gemini API.r   zDoutput_compression_quality parameter is not supported in Gemini API.image_output_optionsz>image_output_options parameter is not supported in Gemini API.r6   r9   s       r!   r{  r{  t  sL   
 !)	+'((4]OT+7G%H%HIII	+~&&2[M4l^#D#DEEE	++,--9
E   
+*+,,8
D   
+*+,,8
D   
+4566B
N   
+./00<
H   
r#   c                    i }t          | dg          !t          |dgt          | dg                     t          | dg          !t          |dgt          | dg                     t          | dg          !t          |dgt          | dg                     t          | dg          !t          |dgt          | dg                     t          | d	g          "t          |d
dgt          | d	g                     t          | dg          "t          |d
dgt          | dg                     t          | dg          !t          |d
gt          | dg                     |S )Nr   r   r  r$  r   r   r%  prominentPeopler   imageOutputOptionsrA   r   r   r&  rc   r9   s       r!   r  r    s   
 !)	+'((4]OT+7G%H%HIII	+~&&2[M4l^#D#DEEE	++,--9	[./00   
+*+,,8%&[;M:N(O(O   
+*+,,8	z*[-.//   
+4566B	34[7899   
+./00<	[1233   
r#   c           
          i }t          | dg          3t          |dgt          j        t          | dg                               t          | dg          !t          |dgt          | dg                     |S )NbytesBase64Encodedimage_bytesrA   r@   r7   r8   base_tt_bytesr9   s       r!   r  r    s    
 !)	+,-..:	tK*>)?@@AA   
+
|$$0[M4j\#B#BCCC	r#   c           
      Z   i }t          | dg          !t          |dgt          | dg                     t          | dg          3t          |dgt          j        t          | dg                               t          | dg          !t          |dgt          | dg                     |S )NgcsUrigcs_urir+  r,  rA   r@   r-  r9   s       r!   r  r    s    
 !)	+z"".YKkH:!>!>???	+,-..:	tK*>)?@@AA   
+
|$$0[M4j\#B#BCCC	r#   c           
      6   i }t          | dg          t          d          t          | dg          3t          |dgt          j        t          | dg                               t          | dg          !t          |dgt          | dg                     |S )Nr2  z1gcs_uri parameter is not supported in Gemini API.r,  r+  r@   rA   )r7   r   r8   r.  r/  r9   s       r!   r  r    s    
 !)	+	{##/
H
I
II	+''3	tK-99::   
+}%%1ZL${[M"B"BCCC	r#   c           
      Z   i }t          | dg          !t          |dgt          | dg                     t          | dg          3t          |dgt          j        t          | dg                               t          | dg          !t          |dgt          | dg                     |S )Nr2  r1  r,  r+  r@   rA   r-  r9   s       r!   r  r    s    
 !)	+	{##/XJ[9+ > >???	+''3	tK-99::   
+}%%1ZL${[M"B"BCCC	r#   c                    i }t          |dg          "t          |ddgt          |dg                     t          |dg          "t          |ddgt          |dg                     t          |dg          "t          |ddgt          |dg                     t          |dg          5t          |dd	gt          j        | t          |dg                               |S 
N	page_size_querypageSize
page_token	pageTokenfilter
query_baserg   
models_urlr7   r8   rn   t_models_urlrq   s        r!   _ListModelsConfig_to_mldevrA  "      !)	+}%%1*-tK+/O/O   
+~&&2	;[<.))   
+z"".8,d;
.K.KLLL	+~&&2		z4l^#D#DEE   
r#   c                    i }t          |dg          "t          |ddgt          |dg                     t          |dg          "t          |ddgt          |dg                     t          |dg          "t          |ddgt          |dg                     t          |dg          5t          |dd	gt          j        | t          |dg                               |S r6  r?  rq   s        r!   _ListModelsConfig_to_vertexrD  C  rB  r#   c                 n    i }t          |dg          !t          | t          |dg          ||           |S Nr   )r7   rA  rq   s        r!   _ListModelsParameters_to_mldevrG  d  sJ     !)	+z"".Dxj119k   
r#   c                 n    i }t          |dg          !t          | t          |dg          ||           |S rF  )r7   rD  rq   s        r!   _ListModelsParameters_to_vertexrI  s  sJ     !)	+z"".Dxj119k   
r#   c                 x   i t          | dg          !t          dgt          | dg                     t          | dg          !t          dgt          | dg                     t          | dg          @t          dgfdt          j        t          | dg                    D                        S )Nrt   ru   nextPageTokennext_page_tokenr  modelsc                 2    g | ]}t          |          S rU   )_Model_from_mldevrl   s     r!   rY   z2_ListModelsResponse_from_mldev.<locals>.<listcomp>  r   r#   r7   r8   rn   t_extract_modelsr9   s     `@r!   _ListModelsResponse_from_mldevrR        
 !)	+)*++7'(${=N<O*P*P   
+())5&'kO;L)M)MNNN	+y!!-	
	
 	
 	
 	
 	
*4gY+G+GHH	
 	
 	
   
r#   c                 x   i t          | dg          !t          dgt          | dg                     t          | dg          !t          dgt          | dg                     t          | dg          @t          dgfdt          j        t          | dg                    D                        S )Nrt   ru   rK  rL  r  rM  c                 2    g | ]}t          |          S rU   )_Model_from_vertexrl   s     r!   rY   z3_ListModelsResponse_from_vertex.<locals>.<listcomp>  rm   r#   rP  r9   s     `@r!   _ListModelsResponse_from_vertexrW    rS  r#   c                 6   i }t          | dg          !t          |dgt          | dg                     t          | dg          !t          |dgt          | dg                     t          | dg          !t          |dgt          | dg                     |S )N	mask_modemaskModesegmentation_classesmaskClassesmask_dilationdilationrc   r9   s       r!   _MaskReferenceConfig_to_vertexr_    s    
 !)	+}%%1ZL${[M"B"BCCC	+./00<M?D7M6N$O$O   
+())5ZL${_4E"F"FGGG	r#   c                    i }t          | dg          !t          |dgt          | dg                     t          | dg          !t          |dgt          | dg                     t          | dg          !t          |dgt          | dg                     t          | dg          !t          |dgt          | dg                     t          | dg          !t          |dgt          | dg                     t          | dg          !t          |d	gt          | dg                     t          | d
g          !t          |dgt          | d
g                     t          | dg          !t          |dgt          | dg                     t          | dg          !t          |dgt          | dg                     t          | dg          !t          |dgt          | dg                     t          | dg          !t          |dgt          | dg                     t          | dg          !t          |dgt          | dg                     t          | dg          !t          |dgt          | dg                     |S )Nr   displayNamer>   r7  versionr  tuned_model_infoinputTokenLimitinput_token_limitoutputTokenLimitoutput_token_limitsupportedGenerationMethodssupported_actionsr@  maxTemperaturemax_temperaturerB  rA  rD  rC  thinkingrc   r9   s       r!   rO  rO    s   
 !)	+x  ,VHd;99:::	+''3^$d;&H&HIII	+''3]OT+%G%GHHH	+	{##/YKkI;!?!?@@@	+y!!-'(${WI*F*FGGG	+)*++7'(${=N<O*P*P   
+*+,,8	[-.//   
+4566B	[7899   
+''3]OT+%G%GHHH	+()**6&'k<L;M)N)NOOO	+x  ,WItK&::;;;	+x  ,WItK&::;;;	+
|$$0ZL${ZL"A"ABBB	r#   c           
         i t          | dg          !t          dgt          | dg                     t          | dg          !t          dgt          | dg                     t          | dg          !t          dgt          | dg                     t          | dg          !t          dgt          | dg                     t          | dg          .t          dgfd	t          | dg          D                        t          | d
g          !t          d
gt          | d
g                     t          | dg          0t          dgt          t          | dg                               t          | dg          !t          dgt          | dg                     t          | dg          +t          dgd t          | dg          D                        S )Nr   ra  r>   r7  	versionIdrb  deployedModels	endpointsc                 2    g | ]}t          |          S rU   )r%  rl   s     r!   rY   z&_Model_from_vertex.<locals>.<listcomp>  r  r#   r   r  rc  defaultCheckpointIddefault_checkpoint_idcheckpointsc                     g | ]}|S rU   rU   rV   s     r!   rY   z&_Model_from_vertex.<locals>.<listcomp>9      ===$===r#   )r7   r8   _TunedModelInfo_from_vertexr9   s     `@r!   rV  rV    sQ   
 !)	+x  ,VHd;99:::	+''3^$d;&H&HIII	+''3]OT+%G%GHHH	+}%%1YKkK=!A!ABBB	+()**6		
 	
 	
 	
 	
[+;*<==	
 	
 	
   
+z"".XJ[8* = =>>>	+y!!-	#wi(()[	
 	
   
+-.//;	 ![0122   
+''3	==${]O<<===   
r#   c           	          i t          | dg          .t          dgfdt          | dg          D                        S )Nspeaker_voice_configsspeakerVoiceConfigsc                 2    g | ]}t          |          S rU   )_SpeakerVoiceConfig_to_vertexrl   s     r!   rY   z6_MultiSpeakerVoiceConfig_to_vertex.<locals>.<listcomp>I  r  r#   rc   r9   s     `@r!   "_MultiSpeakerVoiceConfig_to_vertexr}  ?  s{    
 !)	+/011=		
 	
 	
 	
 	
[+B*CDD	
 	
 	
   
r#   c           
         i }t          | dg          !t          |dgt          | dg                     t          | dg          !t          |dgt          | dg                     t          | dg          !t          |dgt          | dg                     t          | dg          0t          |dgt          t          | dg          ||                     t          | d	g          0t          |d
gt          t          | d	g          ||                     t          | dg          !t          |dgt          | dg                     t          | dg          0t          |dgt	          t          | dg          ||                     t          | dg          !t          |dgt          | dg                     t          | dg          !t          |dgt          | dg                     t          | dg          !t          |dgt          | dg                     t          | dg          !t          |dgt          | dg                     t          | dg          !t          |dgt          | dg                     t          | dg          !t          |dgt          | dg                     t          | dg          !t          |dgt          | dg                     |S )Nrh  ri  code_execution_resultcodeExecutionResultexecutable_codeexecutableCode	file_datafileDatafunction_callfunctionCallfunction_responsefunctionResponseinline_data
inlineDatatextthoughtthought_signaturethoughtSignaturevideo_metadatavideoMetadata	tool_calltoolCalltool_responsetoolResponsepart_metadatapartMetadata)r7   r8   r)  r/  rB   r9   s       r!   r   r   R  sr   
 !)	+*+,,8%&[;M:N(O(O   
+/011=	[2344   
+)*++7%&[;L:M(N(NOOO	+}%%1	{m,,i	
 	
   
+())5	/00)[	
 	
   
++,--9	[./00   
+''3	}o..	;	
 	
   
+x  ,VHd;99:::	+	{##/YKkI;!?!?@@@	++,--9	[./00   
+()**6_%tK:J9K'L'LMMM	+}%%1ZL${[M"B"BCCC	+())5^$d;8I&J&JKKK	+())5^$d;8I&J&JKKK	r#   c                    i }t          | dg          !t          |dgt          | dg                     t          | dg          !t          |dgt          | dg                     t          | dg          !t          |dgt          | dg                     t          | dg          !t          |dgt          | dg                     t          | d	g          !t          |d
gt          | d	g                     t          | dg          !t          |dgt          | dg                     t          | dg          !t          |dgt          | dg                     t          | dg          !t          |dgt          | dg                     t          | dg          !t          |dgt          | dg                     t          | dg          !t          |dgt          | dg                     t          | dg          !t          |dgt          | dg                     t          | dg          t          d          t          | dg          t          d          t          | dg          t          d          |S )Nrh  ri  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  zItool_call parameter is not supported in Gemini Enterprise Agent Platform.r  zMtool_response parameter is not supported in Gemini Enterprise Agent Platform.r  zMpart_metadata parameter is not supported in Gemini Enterprise Agent Platform.r6   r9   s       r!   r   r     s   
 !)	+*+,,8%&[;M:N(O(O   
+/011=	[2344   
+)*++7%&[;L:M(N(NOOO	+}%%1ZL${[M"B"BCCC	+())5^$d;8I&J&JKKK	++,--9	[./00   
+''3\ND}o$F$FGGG	+x  ,VHd;99:::	+	{##/YKkI;!?!?@@@	++,--9	[./00   
+()**6_%tK:J9K'L'LMMM	+}%%1
	  
 
+())5
	  
 
+())5
	  
 
r#   c           
          i }t          | dg          0t          |dgt          t          | dg          ||                     |S )Nproduct_imager  r7   r8   r  r9   s       r!   _ProductImage_to_vertexr    s_    
 !)	+())5		/00)[	
 	
   
r#   c                 j   i }t          | dg          "t          |ddgt          | dg                     t          | dg          "t          |ddgt          | dg                     t          | dg          "t          |ddgt          | dg                     t          | dg          "t          |ddgt          | dg                     t          | d	g          "t          |dd
gt          | d	g                     t          | dg          "t          |ddgt          | dg                     t          | dg          "t          |ddgt          | dg                     t          | dg          "t          |g dt          | dg                     t          | dg          "t          |g dt          | dg                     t          | dg          "t          |ddgt          | dg                     t          | dg          !t          |dgt          | dg                     |S )Nr   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r  r  r   rc   r9   s       r!   _RecontextImageConfig_to_vertexr    s   
 !)	+*+,,8	}%[-.//   
+~&&2	{#[<.))   
+()**6	|$[+,--   
+x  ,v.[6(0K0KLLL	+-.//;	'[0122   
++,--9	)*[./00   
+())5	~&[?+,,   
+*+,,8333[-.//   
+4566B===[7899   
+()**6	'[+,--   
+z"".
Dxj$A$ABBB	r#   c                 Z   i }t          |dg          5t          |ddgt          j        | t          |dg                               t          |dg           t	          t          |dg          ||           t          |dg           t          t          |dg          ||           |S Nrf   rg   r  r   )r7   r8   rn   ro   _RecontextImageSource_to_vertexr  rq   s        r!   #_RecontextImageParameters_to_vertexr  P  s     !)	+y!!-			*d;	::;;   
+z"".#[8*%%y+   
+z"".#[8*%%y+   
r#   c           	          i t          | dg          .t          dgfdt          | dg          D                        S )Nr   r   c                 2    g | ]}t          |          S rU   r   rl   s     r!   rY   z7_RecontextImageResponse_from_vertex.<locals>.<listcomp>u  r   r#   rc   r9   s     `@r!   #_RecontextImageResponse_from_vertexr  k  sw    
 !)	+''3		
 	
 	
 	
 	
[=/::	
 	
 	
   
r#   c           
      x   i t          | dg          "t          |ddgt          | dg                     t          | dg          1t          |g dt          t          | dg                               t          | dg          /t          |ddgfdt          | dg          D                        S )Nr   r   person_image)r   personImager  product_imagesproductImagesc                 2    g | ]}t          |          S rU   )r  rl   s     r!   rY   z3_RecontextImageSource_to_vertex.<locals>.<listcomp>  r\  r#   r  r9   s     `@r!   r  r  ~  s   
 !)	+z"".14hZ3P3P   
+'((4000~.//K	
 	
   
+()**6	)	
 	
 	
 	
 	
[+;*<==	
 	
 	
   
r#   c           
          i }t          | dg          0t          |dgt          t          | dg          ||                     t          | dg          !t          |dgt          | dg                     t          | dg          !t          |dgt          | dg                     t          | dg          0t          |dgt          t          | dg          ||                     t          | d	g          0t          |d
gt	          t          | d	g          ||                     t          | dg          !t          |dgt          | dg                     t          | dg          !t          |dgt          | dg                     |S )Nreference_imagereferenceImagereference_idreferenceIdreference_typereferenceTypemask_image_configmaskImageConfigcontrol_image_configcontrolImageConfigstyle_image_configstyleImageConfigsubject_image_configsubjectImageConfig)r7   r8   r  r_  r   r9   s       r!   r   r     s   
 !)	+)*++7	0122I{	
 	
   
+'((4]OT+7G%H%HIII	+()**6_%tK:J9K'L'LMMM	++,--9	&2344i	
 	
   
+./00<	)5677K	
 	
   
+,-..:	[/011   
+./00<	[1233   
r#   c                 R   i }t          | dg          !t          |dgt          | dg                     t          | dg          !t          |dgt          | dg                     t          | dg          t          d          t          | dg          t          d          |S )	Nr@   rA   voice_sample_audiovoiceSampleAudioconsent_audiozMconsent_audio parameter is not supported in Gemini Enterprise Agent Platform.voice_consent_signaturezWvoice_consent_signature parameter is not supported in Gemini Enterprise Agent Platform.r6   r9   s       r!    _ReplicatedVoiceConfig_to_vertexr    s    
 !)	+}%%1ZL${[M"B"BCCC	+,-..:	[/011   
+())5
	  
 
+1233?
	&  
 
r#   c           	      >   i }t          | ddg          "t          |dgt          | ddg                     t          | ddg          "t          |dgt          | ddg                     t          | dg          !t          |dgt          | dg                     |S NsafetyAttributes
categoriesscorescontentTypecontent_typerc   r9   s       r!   r  r        
 !)	+*L9::F	[-|<==   
+*H566BH:tK2Dh1OPP   
+''3^$d;&H&HIII	r#   c           	      >   i }t          | ddg          "t          |dgt          | ddg                     t          | ddg          "t          |dgt          | ddg                     t          | dg          !t          |dgt          | dg                     |S r  rc   r9   s       r!   r  r    r  r#   c                    i }t          | dg          !t          |dgt          | dg                     t          | dg          t          d          t          | dg          !t          |dgt          | dg                     |S )Ncategorymethodz0method parameter is not supported in Gemini API.	thresholdr6   r9   s       r!   r[  r[  &  s    
 !)	+
|$$0ZL${ZL"A"ABBB	+z"".
G
H
HH	+}%%1[M4k]#C#CDDD	r#   c           
          i }t          | dg          0t          |dgt          t          | dg          ||                     |S )Nr  r  r9   s       r!   _ScribbleImage_to_vertexr  8  sX    
 !)	+y!!-		kG955y+NN   
r#   c                 l   i }t          | dg          "t          |ddgt          | dg                     t          | dg          "t          |ddgt          | dg                     t          | dg          "t          |ddgt          | dg                     t          | dg          "t          |ddgt          | dg                     t          | d	g          "t          |dd
gt          | d	g                     t          | dg          !t          |dgt          | dg                     |S )Nr3  r   max_predictionsmaxPredictionsconfidence_thresholdconfidenceThresholdr]  maskDilationbinary_color_thresholdbinaryColorThresholdr   rc   r9   s       r!   _SegmentImageConfig_to_vertexr  H  s   
 !)	+x  ,v.[6(0K0KLLL	+)*++7	'([,-..   
+./00<	,-[1233   
+())5	~&[?+,,   
+0122>	-.[3455   
+z"".
Dxj$A$ABBB	r#   c                 Z   i }t          |dg          5t          |ddgt          j        | t          |dg                               t          |dg           t	          t          |dg          ||           t          |dg           t          t          |dg          ||           |S r  )r7   r8   rn   ro   _SegmentImageSource_to_vertexr  rq   s        r!   !_SegmentImageParameters_to_vertexr  t  s     !)	+y!!-			*d;	::;;   
+z"".![8*%%y+   
+z"".![8*%%y+   
r#   c           	          i t          | dg          .t          dgfdt          | dg          D                        S )Nr   generated_masksc                 2    g | ]}t          |          S rU   )r  rl   s     r!   rY   z5_SegmentImageResponse_from_vertex.<locals>.<listcomp>  s5     	
 	
 	
 ,D)[II	
 	
 	
r#   rc   r9   s     `@r!   !_SegmentImageResponse_from_vertexr    sw    
 !)	+''3		
 	
 	
 	
 	
[=/::	
 	
 	
   
r#   c           
      x   i }t          | dg          "t          |ddgt          | dg                     t          | dg          1t          |ddgt          t          | dg          ||                     t          | dg          1t          |ddgt          t          | dg          ||                     |S )Nr   r   r  scribble_imagescribble)r7   r8   r  r  r9   s       r!   r  r    s    
 !)	+z"".14hZ3P3P   
+y!!-	!kG955y+NN   
+()**6	$ /0119k	
 	
   
r#   c           
          i }t          | dg          !t          |dgt          | dg                     t          | dg          0t          |dgt          t          | dg          ||                     |S )Nspeakervoice_configvoiceConfig)r7   r8   _VoiceConfig_to_vertexr9   s       r!   r|  r|    s    
 !)	+	{##/YKkI;!?!?@@@	+'((4	~.//K	
 	
   
r#   c           
      r   i }t          | dg          0t          |dgt          t          | dg          ||                     t          | dg          !t          |dgt          | dg                     t          | dg          0t          |dgt          t          | dg          ||                     |S )Nr  r  language_codelanguageCodemulti_speaker_voice_configmultiSpeakerVoiceConfig)r7   r8   r  r}  r9   s       r!   r  r    s    
 !)	+'((4	~.//K	
 	
   
+())5^$d;8I&J&JKKK	+4566B	"#*;<==	
 	
   
r#   c           
      T   i }t          | dg          !t          |dgt          | dg                     t          | dg          0t          |dgt          t          | dg          ||                     t          | dg          !t          |dgt          | dg                     |S )Nretrieval_configretrievalConfigfunction_calling_configfunctionCallingConfig$include_server_side_tool_invocations includeServerSideToolInvocations)r7   r8   r5  r9   s       r!   rx  rx    s    
 !)	+*+,,8%&[;M:N(O(O   
+1233?	 !'89::	
 	
   
+>?@@L	+,[ABCC   
r#   c                    i }t          | dg          !t          |dgt          | dg                     t          | dg          !t          |dgt          | dg                     t          | dg          t          d          |S )Nr  r  r  r  r  zdinclude_server_side_tool_invocations parameter is not supported in Gemini Enterprise Agent Platform.r6   r9   s       r!   r  r    s    
 !)	+*+,,8%&[;M:N(O(O   
+1233?	 ![4566   
+>?@@L
	-  
 
r#   c           
         i }t          | dg          t          d          t          | dg          !t          |dgt          | dg                     t          | dg          !t          |dgt          | dg                     t          | dg          0t          |dgt          t          | dg          ||                     t          | d	g          0t          |d
gt	          t          | d	g          ||                     t          | dg          !t          |dgt          | dg                     t          | dg          t          d          t          | dg          +t          |dgd t          | dg          D                        t          | dg          !t          |dgt          | dg                     t          | dg          t          d          t          | dg          !t          |dgt          | dg                     t          | dg          +t          |dgd t          | dg          D                        |S )N	retrievalz3retrieval parameter is not supported in Gemini API.computer_usecomputerUsefile_search
fileSearchgoogle_searchgoogleSearchgoogle_maps
googleMapscode_executioncodeExecutionenterprise_web_searchz?enterprise_web_search parameter is not supported in Gemini API.function_declarationsfunctionDeclarationsc                     g | ]}|S rU   rU   rV   s     r!   rY   z"_Tool_to_mldev.<locals>.<listcomp>]  s    GGG$GGGr#   google_search_retrievalgoogleSearchRetrievalparallel_ai_searchz<parallel_ai_search parameter is not supported in Gemini API.url_context
urlContextmcp_servers
mcpServersc                     g | ]}|S rU   rU   rV   s     r!   rY   z"_Tool_to_mldev.<locals>.<listcomp>s  rv  r#   )r7   r   r8   r"  r  r9   s       r!   r^  r^  0  s   
 !)	+}%%1
J
K
KK	+'((4]OT+7G%H%HIII	+''3\ND}o$F$FGGG	+())5	/00)[	
 	
   
+''3	}o..	;	
 	
   
+()**6_%tK:J9K'L'LMMM	+/011=
I   
+/011=	 GG${-D,EFFGGG   
+1233?	 ![4566   
+,-..:
F   
+''3\ND}o$F$FGGG	+''3	==${]O<<===   
r#   c           	         i t          | dg          !t          dgt          | dg                     t          | dg          !t          dgt          | dg                     t          | dg          t          d          t          | dg          !t          dgt          | dg                     t          | dg          !t          d	gt          | dg                     t          | d
g          !t          dgt          | d
g                     t          | dg          !t          dgt          | dg                     t          | dg          .t          dgfdt          | dg          D                        t          | dg          !t          dgt          | dg                     t          | dg          !t          dgt          | dg                     t          | dg          !t          dgt          | dg                     t          | dg          t          d          S )Nr  r  r  r  zKfile_search parameter is not supported in Gemini Enterprise Agent Platform.r  r  r  r  r  r  r   enterpriseWebSearchr  r  c                 2    g | ]}t          |          S rU   )r>  rl   s     r!   rY   z#_Tool_to_vertex.<locals>.<listcomp>  s5     	
 	
 	
 +4KHH	
 	
 	
r#   r  r  r  parallelAiSearchr  r  r	  zKmcp_servers parameter is not supported in Gemini Enterprise Agent Platform.r6   r9   s     `@r!   r   r   y  s   
 !)	+}%%1[M4k]#C#CDDD	+'((4]OT+7G%H%HIII	+''3
	  
 
+())5^$d;8I&J&JKKK	+''3\ND}o$F$FGGG	+()**6_%tK:J9K'L'LMMM	+/011=	[2344   
+/011=	 	
 	
 	
 	
 	
[+B*CDD	
 	
 	
   
+1233?	 ![4566   
+,-..:	[/011   
+''3\ND}o$F$FGGG	+''3
	  
 
r#   c           	      <   i }t          | ddg          	 "t          |dgt          | ddg                     t          | dg          !t          |dgt          | dg                     t          | dg          !t          |dgt          | dg                     |S )Nr   z&google-vertex-llm-tuning-base-model-id
base_modelr  r  
updateTimeupdate_timerc   r9   s       r!   rw  rw    s    
 !)
;#KLMM 		[8%MNOO   
+~&&2]OT+~%F%FGGG	+~&&2]OT+~%F%FGGG	r#   c                 6   i }t          | dg          !t          |dgt          | dg                     t          | dg          !t          |dgt          | dg                     t          | dg          !t          |dgt          | dg                     |S Nr>   ra  r7  rs  rr  rc   r9   s       r!   _UpdateModelConfig_to_mldevr        
 !)	+'((4kN;K)L)LMMM	+''3kM?)K)KLLL	+/011=	[2344   
r#   c                 6   i }t          | dg          !t          |dgt          | dg                     t          | dg          !t          |dgt          | dg                     t          | dg          !t          |dgt          | dg                     |S r  rc   r9   s       r!   _UpdateModelConfig_to_vertexr    r  r#   c                     i }t          |dg          5t          |ddgt          j        | t          |dg                               t          |dg           t	          t          |dg          ||           |S )Nrf   rg   r   r   )r7   r8   rn   ro   r  rq   s        r!   _UpdateModelParameters_to_mldevr    s     !)	+y!!-			*d;	::;;   
+z"".[8*%%y+   
r#   c                     i }t          |dg          5t          |ddgt          j        | t          |dg                               t          |dg           t	          t          |dg          ||           |S )Nrf   rg   r   )r7   r8   rn   ro   r  rq   s        r!    _UpdateModelParameters_to_vertexr    s     !)	+y!!-			*d;	::;;   
+z"". [8*%%y+   
r#   c                 j   i }t          | dg          "t          |ddgt          | dg                     t          | dg          "t          |ddgt          | dg                     t          | dg          "t          |ddgt          | dg                     t          | dg          "t          |dd	gt          | dg                     t          | d
g          "t          |g dt          | d
g                     t          | dg          "t          |g dt          | dg                     t          | dg          "t          |g dt          | dg                     t          | dg          "t          |g dt          | dg                     t          | dg          !t          |dgt          | dg                     t          | dg          "t          |ddgt          | dg                     t          | dg          "t          |ddgt          | dg                     |S )Nr   r   r   r   r   r   r   r   r   r   r   r   r   enhance_input_image)r   upscaleConfigenhanceInputImageimage_preservation_factor)r   r   imagePreservationFactorr   r   r   r3  rc   r9   s       r!    _UpscaleImageAPIConfig_to_vertexr$  2  s   
 !)	+()**6	|$[+,--   
+-.//;	'[0122   
++,--9	)*[./00   
+,-..:	)*[/011   
+*+,,8333[-.//   
+4566B===[7899   
+-.//;<<<[0122   
+3455ABBB[6788   
+z"".
Dxj$A$ABBB	+*+,,8	}%[-.//   
+x  ,v.[6(0K0KLLL	r#   c                    i }t          |dg          5t          |ddgt          j        | t          |dg                               t          |dg          1t          |ddgt	          t          |dg          ||                     t          |dg          "t          |g dt          |dg                     t          |dg           t          t          |dg          ||           |S )Nrf   rg   r  r   upscale_factor)r   r   upscaleFactorr   )r7   r8   rn   ro   r  r$  rq   s        r!   $_UpscaleImageAPIParameters_to_vertexr(    s%    !)	+y!!-			*d;	::;;   
+y!!-	!kG955y+NN   
+()**6888[+,--   
+z"".$[8*%%y+   
r#   c           	          i t          | dg          !t          dgt          | dg                     t          | dg          .t          dgfdt          | dg          D                        S )Nrt   ru   r   r   c                 2    g | ]}t          |          S rU   r   rl   s     r!   rY   z5_UpscaleImageResponse_from_vertex.<locals>.<listcomp>  r   r#   rc   r9   s     `@r!   !_UpscaleImageResponse_from_vertexr+    r   r#   c           
          i }t          | dg          0t          |dgt          t          | dg          ||                     t          | dg          !t          |dgt          | dg                     |S )Nr  r  rY  rZ  r  r9   s       r!   r  r    s    
 !)	+y!!-		kG955y+NN   
+}%%1ZL${[M"B"BCCC	r#   c           
      ,   i }t          | dg          0t          |dgt          t          | dg          ||                     t          | dg          ?t          t          | dg                     t          |dgt          | dg                     |S Nr  r  r  )r7   r8   r  r)   r9   s       r!   r  r    s    
 !)	+y!!-		[7)44iMM   
+()**68[+,--   	_%tK:J9K'L'LMMM	r#   c           
          i }t          | dg          0t          |dgt          t          | dg          ||                     t          | dg          !t          |dgt          | dg                     |S r.  r  r9   s       r!   r  r    s    
 !)	+y!!-		kG955y+NN   
+()**6_%tK:J9K'L'LMMM	r#   c           
      Z   i }t          | dg          !t          |dgt          | dg                     t          | dg          3t          |dgt          j        t          | dg                               t          | dg          !t          |dgt          | dg                     |S )NuriencodedVideovideo_bytesencodingr@   r-  r9   s       r!   r  r    s    
 !)	+w+UGT+w77888	+'((4	tK.)9::;;   
+
|$$0[M4j\#B#BCCC	r#   c           
      Z   i }t          | dg          !t          |dgt          | dg                     t          | dg          3t          |dgt          j        t          | dg                               t          | dg          !t          |dgt          | dg                     |S )Nr1  r1  r+  r3  rA   r@   r-  r9   s       r!   r  r    s    
 !)	+z"".UGT+z::;;;	+,-..:	tK*>)?@@AA   
+
|$$0[M4j\#B#BCCC	r#   c           
      Z   i }t          | dg          !t          |dgt          | dg                     t          | dg          3t          |dgt          j        t          | dg                               t          | dg          !t          |dgt          | dg                     |S )Nr1  r3  r2  r@   r4  r-  r9   s       r!   r  r  %  s    
 !)	+w+UGT+w77888	+''3	tK-99::   
+}%%1ZL${[M"B"BCCC	r#   c           
      Z   i }t          | dg          !t          |dgt          | dg                     t          | dg          3t          |dgt          j        t          | dg                               t          | dg          !t          |dgt          | dg                     |S )Nr1  r1  r3  r+  r@   rA   r-  r9   s       r!   r  r  ;  s    
 !)	+w+XJ[5' : :;;;	+''3	tK-99::   
+}%%1ZL${[M"B"BCCC	r#   c           
          i }t          | dg          0t          |dgt          t          | dg          ||                     t          | dg          !t          |dgt          | dg                     |S )Nreplicated_voice_configreplicatedVoiceConfigprebuilt_voice_configprebuiltVoiceConfig)r7   r8   r  r9   s       r!   r  r  Q  s    
 !)	+1233?	 !(89::	
 	
   
+/011=	[2344   
r#   c                      e Zd Zdddedeej        ej        f         deej	                 dej
        fdZdddedeej        ej        f         deej	                 deej
                 fdZddddd	dedeeej        ej        f                  d
eeej        ej        f                  deej                 deej                 dej        fdZdddededeej                 dej        fdZdddededeej                 deej                 dej        f
dZdddedej        dedeej                 dej        f
dZdddedej         deej!                 dej"        fdZ#dddedej$        deej%                 dej&        fdZ'dddedeej(                 dej)        fdZ*dddeej+                 dej,        fdZ-dddedeej.                 dej)        fdZ/dddedeej0                 dej1        fdZ2dddedeej        ej        f         deej3                 dej4        fdZ5dddedeej        ej        f         deej6                 dej7        fdZ8dddddddedee         deej                 deej9                 deej:                 deej;                 dej<        fdZ=dddedeej        ej        f         deej                 dej        fd Z>dddedej        deej	                 dej
        fd!Z?dddedej        deej	                 deej
                 fd"Z@dddededeej                 dej        fd#ZAdddededeej                 deej                 dej        f
d$ZBdddedej        dedeejC                 dej        f
d%ZDdddddddedee         deej                 deej9                 deej:                 deej;                 dej<        fd&ZEdddeej+                 deFej)                 fd'ZdS )(ModelsNr   rf   rh   r   r   c                R   t          j        |||          }| j        j        rGt	          | j        |d |          }|                    d          }|rd                    |          }nId}nFt          | j        |d |          }|                    d          }|rd                    |          }nd}|                    d          }|r| dt          |           }|	                    dd            d }	|j
        |j
        j        |j
        j        }	t          j        |          }t          j        |          }| j                            d|||	          }
|Bt!          |dd           r1t          j        |
	          }| j                            |           |S |
j        si nt)          j        |
j                  }| j        j        rt-          |d |          }| j        j        st/          |d |          }t           j                            |t!          |dd           rDdt!          |j
        d
d           t!          |j
        dd           t!          |j
        dd           dini           }t          j        |
j                  |_        | j                            |           |S Nrf   rh   r   rg   z{model}:generateContentr8  ?r   postshould_return_http_response)ru   rT  r;  include_all_fieldsrT  r;  rF  r:  kwargsheaders)r   _GenerateContentParameters_api_clientvertexair  r  
format_mapr  r	   popr   http_optionsr   convert_to_dictencode_unserializable_typesrequestgetattrGenerateContentResponse_verify_responsebodyjsonloadsr  r  _from_responseHttpResponserK  ru   selfrf   rh   r   parameter_modelrequest_dictrequest_url_dictpathquery_paramsrQ  r:  return_valueresponse_dicts                r!   _generate_contentzModels._generate_contentn  s)    6  O   )9

OT? l &))&11	 )(334DEE(8

OT? l &))&11	 )(334DEE(##H--L 100y..00dXt$$$04L*"/;$+8l*<88L6|DDL''lL H g-t  2XNNNl
''555&mJBBHM1J1JM  :
 m $ 9
 m 0?? ?Hd33#*#*,=t$ $ )0#*,BD) ) '.#*,@$' '
 

 
 ! @  L$ &+%7 & & &L" 	%%l333r#   c             #   $  K   t          j        |||          }| j        j        rGt	          | j        |d |          }|                    d          }|rd                    |          }nId}nFt          | j        |d |          }|                    d          }|rd                    |          }nd}|                    d          }|r| dt          |           }|	                    dd            d }	|j
        |j
        j        |j
        j        }	t          j        |          }t          j        |          }| t          |dd           rt!          d          | j                            d	|||	          D ]}
|
j        si nt'          j        |
j                  }| j        j        rt+          |d |          }| j        j        st-          |d |          }t           j                            |t          |dd           rDdt          |j
        d
d           t          |j
        dd           t          |j
        dd           dini           }t          j        |
j                  |_        | j                            |           |V  d S )NrB  rg   %{model}:streamGenerateContent?alt=sser8  rC  r   rE  FAccessing the raw HTTP response is not supported in streaming methods.rD  rT  r;  rF  rG  rH  rJ  )r   rL  rM  rN  r  r  rO  r  r	   rP  r   rQ  r   rR  rS  rU  r   request_streamedrX  rY  rZ  r  r  rV  r[  r\  rK  ru   rW  r^  rf   rh   r   r_  r`  ra  rb  rc  rQ  r:  re  rd  s                r!   _generate_content_streamzModels._generate_content_stream  s@      6  O   79

OT? l &))&11	 76AA
 
 78

OT? l &))&11	 76AA
 
 7##H--L 100y..00dXt$$$04L*"/;$+8l*<88L6|DDLg-t    
 $55lL  & & !)Lbb4:hm3L3Lm			" 
<4
 
 & 
;4
 
 2AA  _h55%,%,.?& & +2%,.Dd+ + )0%,.BD) )
 
  ! B  l$ (-'9"( ( (l$ ''555M& &r#   rh   rD   r  r   rD   r  c                   t          j        |||||          }| j        j        rdt	          | j        |d|          }|                    d          }t          j        |j                  rdnd}	|r|		                    |          }
nI|	}
nFt          | j        |d|          }|                    d          }|rd	                    |          }
nd}
|                    d          }|r|
 dt          |           }
|                    d	d           d}|j        |j        j        |j        j        }t          j        |          }t          j        |          }| j                            d
|
||          }|j        si nt)          j        |j                  }| j        j        rt-          |d|          }| j        j        st/          |d|          }t           j                            |t5          |d	d          rDd	t5          |j        dd          t5          |j        dd          t5          |j        dd          dini           }t          j        |j                  |_        | j                            |           |S )aA  Calculates embeddings for the given contents. Only text is supported.

    Args:
      model (str): The model to use.
      contents (list[Content]): The contents to embed.
      config (EmbedContentConfig): Optional configuration for embeddings.

    Usage:

    .. code-block:: python

      embeddings = client.models.embed_content(
          model= 'text-embedding-004',
          contents=[
              'What is your name?',
              'What is your favorite color?',
          ],
          config={
              'output_dimensionality': 64
          },
      )
    rf   rh   rD   r  r   Nrg   {model}:embedContent{model}:predict{model}:batchEmbedContentsr8  rC  r   rD  rT  r;  rF  rG  rH  rJ  )r   _EmbedContentParametersPrivaterM  rN  r  r  rn   t_is_vertex_embed_content_modelrf   rO  r  r	   rP  r   rQ  r   rR  rS  rT  rX  rY  rZ  r   r  EmbedContentResponser[  rU  r\  rK  ru   rW  r^  rf   rh   rD   r  r   r_  r`  ra  endpoint_urlrb  rc  rQ  r:  re  rd  s                   r!   _embed_contentzModels._embed_content3  s    H :-  O   ,=

OT? l &))&11/0/PQ`Qf/g/g~++m~l	 &&'788<

OT? l &))&11	 ,+667GHH+##H--L 100y..00dXt$$$04L*"/;$+8l*<88L6|DDL''lL H 'mJBBHM1J1JM  7
 m $ 6
 m -<< ?Hd33#*#*,=t$ $ )0#*,BD) ) '.#*,@$' '
 

 
 ! =  L$ &+%7 & & &L" 	%%l333r#   r   c                   t          j        |||          }| j        j        rGt	          | j        |d|          }|                    d          }|rd                    |          }nId}nFt          | j        |d|          }|                    d          }|rd                    |          }nd}|                    d          }|r| dt          |           }|	                    dd           d}	|j
        |j
        j        |j
        j        }	t          j        |          }t          j        |          }| j                            d|||	          }
|
j        si nt#          j        |
j                  }| j        j        rt'          |d|          }| j        j        st)          |d|          }t           j                            |t/          |dd          rDdt/          |j
        d	d          t/          |j
        d
d          t/          |j
        dd          dini           }t          j        |
j                  |_        | j                            |           |S )z%Private method for generating images.rf   r   r   Nrg   rq  r8  rC  r   rD  rT  r;  rF  rG  rH  rJ  )r   _GenerateImagesParametersrM  rN  r  r  rO  r  r	   rP  r   rQ  r   rR  rS  rT  rX  rY  rZ  r  r  GenerateImagesResponser[  rU  r\  rK  ru   rW  r^  rf   r   r   r_  r`  ra  rb  rc  rQ  r:  re  rd  s                r!   _generate_imageszModels._generate_images  s    5  O   !8

OT? l &))&11	 ! ++,<== 7

OT? l &))&11	 ! ++,<== ##H--L 100y..00dXt$$$04L*"/;$+8l*<88L6|DDL''lL H 'mJBBHM1J1JM  9
 m $ 8
 m />> ?Hd33#*#*,=t$ $ )0#*,BD) ) '.#*,@$' '
 

 
 ! ?  L$ &+%7 & & &L" 	%%l333r#   r   c                "   t          j        ||||          }| j        j        st	          d          t          | j        |d|          }|                    d          }|rd                    |          }nd}|                    d          }	|	r| dt          |	           }|	                    dd           d}
|j
        |j
        j        |j
        j        }
t          j        |          }t          j        |          }| j                            d	|||
          }|j        si nt#          j        |j                  }| j        j        rt'          |d|          }t           j                            |t-          |dd          rDdt-          |j
        d
d          t-          |j
        dd          t-          |j
        dd          dini           }t          j        |j                  |_        | j                            |           |S )z$Private method for editing an image.rf   r   r   r   mThis method is only supported in the Gemini Enterprise Agent Platform (previously known as Vertex AI) client.Nrg   rq  r8  rC  r   rD  rT  r;  rF  rG  rH  rJ  )r   _EditImageParametersrM  rN  r   r   r  rO  r	   rP  r   rQ  r   rR  rS  rT  rX  rY  rZ  r   EditImageResponser[  rU  r\  rK  ru   rW  r^  rf   r   r   r   r_  r`  ra  rb  rc  rQ  r:  re  rd  s                 r!   _edit_imagezModels._edit_image  sy    0)	  O $ !>  
 4

OT? l &))&11	 ! ++,<== ##H--L 100y..00dXt$$$04L*"/;$+8l*<88L6|DDL''lL H 'mJBBHM1J1JM  4
 m *99 ?Hd33#*#*,=t$ $ )0#*,BD) ) '.#*,@$' '
 

 
 ! :  L$ &+%7 & & &L" 	%%l333r#   r  r&  c                "   t          j        ||||          }| j        j        st	          d          t          | j        |d|          }|                    d          }|rd                    |          }nd}|                    d          }	|	r| dt          |	           }|	                    dd           d}
|j
        |j
        j        |j
        j        }
t          j        |          }t          j        |          }| j                            d	|||
          }|j        si nt#          j        |j                  }| j        j        rt'          |d|          }t           j                            |t-          |dd          rDdt-          |j
        d
d          t-          |j
        dd          t-          |j
        dd          dini           }t          j        |j                  |_        | j                            |           |S )z&Private method for upscaling an image.rf   r  r&  r   r  Nrg   rq  r8  rC  r   rD  rT  r;  rF  rG  rH  rJ  )r   _UpscaleImageAPIParametersrM  rN  r   r(  r  rO  r	   rP  r   rQ  r   rR  rS  rT  rX  rY  rZ  r+  UpscaleImageResponser[  rU  r\  rK  ru   rW  r^  rf   r  r&  r   r_  r`  ra  rb  rc  rQ  r:  re  rd  s                 r!   _upscale_imagezModels._upscale_image[  sy    6%	  O $ !>  
 :

OT? l &))&11	 ! ++,<== ##H--L 100y..00dXt$$$04L*"/;$+8l*<88L6|DDL''lL H 'mJBBHM1J1JM  7
 m -<< ?Hd33#*#*,=t$ $ )0#*,BD) ) '.#*,@$' '
 

 
 ! =  L$ &+%7 & & &L" 	%%l333r#   r  c                   t          j        |||          }| j        j        st	          d          t          | j        |d|          }|                    d          }|rd                    |          }nd}|                    d          }|r| dt          |           }|	                    dd           d}	|j
        |j
        j        |j
        j        }	t          j        |          }t          j        |          }| j                            d	|||	          }
|
j        si nt#          j        |
j                  }| j        j        rt'          |d|          }t           j                            |t-          |dd          rDdt-          |j
        d
d          t-          |j
        dd          t-          |j
        dd          dini           }| j                            |           |S )a  Recontextualizes an image.

    There is one type of recontextualization currently supported:
    1) Virtual Try-On: Generate images of persons modeling fashion products.

    Args:
      model (str): The model to use.
      source (RecontextImageSource): An object containing the source inputs
        (prompt, person_image, product_images) for image recontext. prompt is
        behind an allowlist. person_image is required. product_images is
        required. Only one product image is supported currently.
      config (RecontextImageConfig): Configuration for recontextualization.

    Usage:

      ```
      virtual_try_on_response = client.models.recontext_image(
          model="virtual-try-on-001",
          source=types.RecontextImageSource(
              person_image=types.Image.from_file(location=IMAGE1_FILE_PATH),
              product_images=[types.ProductImage(product_image=
                  types.Image.from_file(location=IMAGE2_FILE_PATH)
              )],
          ),
          config=types.RecontextImageConfig(
              number_of_images=1,
          ),
      )
      image = virtual_try_on_response.generated_images[0].image
      ```
    rf   r  r   r  Nrg   rq  r8  rC  r   rD  rT  r;  rF  rG  rH  )r   _RecontextImageParametersrM  rN  r   r  r  rO  r	   rP  r   rQ  r   rR  rS  rT  rX  rY  rZ  r  RecontextImageResponser[  rU  rW  r^  rf   r  r   r_  r`  ra  rb  rc  rQ  r:  re  rd  s                r!   recontext_imagezModels.recontext_image  sU   N 5  O $ !>  
 9

OT? l &))&11	 ! ++,<== ##H--L 100y..00dXt$$$04L*"/;$+8l*<88L6|DDL''lL H 'mJBBHM1J1JM  9
 m />> ?Hd33#*#*,=t$ $ )0#*,BD) ) '.#*,@$' '
 

 
 ! ?  L& 	%%l333r#   c                   t          j        |||          }| j        j        st	          d          t          | j        |d|          }|                    d          }|rd                    |          }nd}|                    d          }|r| dt          |           }|	                    dd           d}	|j
        |j
        j        |j
        j        }	t          j        |          }t          j        |          }| j                            d	|||	          }
|
j        si nt#          j        |
j                  }| j        j        rt'          |d|          }t           j                            |t-          |dd          rDdt-          |j
        d
d          t-          |j
        dd          t-          |j
        dd          dini           }| j                            |           |S )a+  Segments an image, creating a mask of a specified area.

    Args:
      model (str): The model to use.
      source (SegmentImageSource): An object containing the source inputs
        (prompt, image, scribble_image) for image segmentation. The prompt is
        required for prompt mode and semantic mode, disallowed for other modes.
        scribble_image is required for the interactive mode, disallowed for
        other modes.
      config (SegmentImageConfig): Configuration for segmentation.

    Usage:

      ```
      response = client.models.segment_image(
          model="image-segmentation-001",
          source=types.SegmentImageSource(
              image=types.Image.from_file(location=IMAGE_FILE_PATH),
          ),
      )

      mask_image = response.generated_masks[0].mask
      ```
    r  r  Nrg   rq  r8  rC  r   rD  rT  r;  rF  rG  rH  )r   _SegmentImageParametersrM  rN  r   r  r  rO  r	   rP  r   rQ  r   rR  rS  rT  rX  rY  rZ  r  SegmentImageResponser[  rU  rW  r  s                r!   segment_imagezModels.segment_image  sU   @ 3  O $ !>  
 7

OT? l &))&11	 ! ++,<== ##H--L 100y..00dXt$$$04L*"/;$+8l*<88L6|DDL''lL H 'mJBBHM1J1JM  7
 m -<< ?Hd33#*#*,=t$ $ )0#*,BD) ) '.#*,@$' '
 

 
 ! =  L& 	%%l333r#   c                   t          j        ||          }| j        j        rGt	          | j        |d |          }|                    d          }|rd                    |          }nId}nFt          | j        |d |          }|                    d          }|rd                    |          }nd}|                    d          }|r| dt          |           }|	                    dd            d }|j
        |j
        j        |j
        j        }t          j        |          }t          j        |          }| j                            d|||          }	|	j        si nt#          j        |	j                  }
| j        j        rt'          |
d |          }
| j        j        st)          |
d |          }
t           j                            |
t/          |dd           rDdt/          |j
        dd           t/          |j
        d	d           t/          |j
        d
d           dini           }| j                            |           |S Nrf   r   rg   {name}r8  rC  r   r  rT  r;  rF  rG  rH  )r   _GetModelParametersrM  rN  r  r  rO  r  r	   rP  r   rQ  r   rR  rS  rT  rX  rY  rZ  rV  rO  Modelr[  rU  rW  r^  rf   r   r_  r`  ra  rb  rc  rQ  r:  re  rd  s               r!   r  z
Models.get  s    /  O   2

OT? l &))&11	 ""#3441

OT? l &))&11	 ""#344##H--L 100y..00dXt$$$04L*"/;$+8l*<88L6|DDL''t\<PPH&mJBBHM1J1JM  O(oNNm$ N't_MMm;-- ?Hd33#*#*,=t$ $ )0#*,BD) ) '.#*,@$' '
 

 
 ! .  L& 	%%l333r#   c                \   t          j        |          }| j        j        rGt	          | j        |d |          }|                    d          }|rd                    |          }nId}nFt          | j        |d |          }|                    d          }|rd                    |          }nd}|                    d          }|rI|                    d          r4|                    d          }| d| }|r|dt          |           z  }n|r| dt          |           }|                    d	d            d }|j
        |j
        j        |j
        j        }t          j        |          }t          j        |          }| j                            d
|||          }	|	j        si nt#          j        |	j                  }
| j        j        rt'          |
d |          }
| j        j        st)          |
d |          }
t           j                            |
t/          |d	d           rDd	t/          |j
        dd           t/          |j
        dd           t/          |j
        dd           dini           }t          j        |	j                  |_        | j                            |           |S Nr?  rg   z{models_url}r8  r<  z?filter=&rC  r   r  rT  r;  rF  rG  rH  rJ  )r   _ListModelsParametersrM  rN  rI  r  rO  rG  rP  r	   r   rQ  r   rR  rS  rT  rX  rY  rZ  rW  rR  ListModelsResponser[  rU  r\  rK  ru   rW  r^  r   r_  r`  ra  rb  rc  query_param_filterrQ  r:  re  rd  s               r!   _listzModels._list  s5    1  O   4

OT? l &))&11	 (()9::3

OT? l &))&11	 (()9::##H--L 1((22 1'++H5522022d	 .-Il++---	 100y..00dXt$$$04L*"/;$+8l*<88L6|DDL''t\<PPH&mJBBHM1J1JM  5
 m $ 4
 m +:: ?Hd33#*#*,=t$ $ )0#*,BD) ) '.#*,@$' '
 

 
 ! ;  L$ &+%7 & & &L" 	%%l333r#   c                   t          j        ||          }| j        j        rGt	          | j        |d |          }|                    d          }|rd                    |          }nId}nFt          | j        |d |          }|                    d          }|rd                    |          }nd}|                    d          }|r| dt          |           }|	                    dd            d }|j
        |j
        j        |j
        j        }t          j        |          }t          j        |          }| j                            d|||          }	|	j        si nt#          j        |	j                  }
| j        j        rt'          |
d |          }
| j        j        st)          |
d |          }
t           j                            |
t/          |dd           rDdt/          |j
        d	d           t/          |j
        d
d           t/          |j
        dd           dini           }| j                            |           |S Nr  rg   z{model}r  r8  rC  r   patchrT  r;  rF  rG  rH  )r   _UpdateModelParametersrM  rN  r  r  rO  r  r	   rP  r   rQ  r   rR  rS  rT  rX  rY  rZ  rV  rO  r  r[  rU  rW  r  s               r!   updatezModels.update&  s    2  O   5

OT? l &))&11	 ##$4554

OT? l &))&11	 ""#344##H--L 100y..00dXt$$$04L*"/;$+8l*<88L6|DDL''|\ H 'mJBBHM1J1JM  O(oNNm$ N't_MMm;-- ?Hd33#*#*,=t$ $ )0#*,BD) ) '.#*,@$' '
 

 
 ! .  L& 	%%l333r#   c                   t          j        ||          }| j        j        rGt	          | j        |d |          }|                    d          }|rd                    |          }nId}nFt          | j        |d |          }|                    d          }|rd                    |          }nd}|                    d          }|r| dt          |           }|	                    dd            d }|j
        |j
        j        |j
        j        }t          j        |          }t          j        |          }| j                            d|||          }	|	j        si nt#          j        |	j                  }
| j        j        rt'          |
d |          }
| j        j        st)          |
d |          }
t           j                            |
t/          |dd           rDdt/          |j
        dd           t/          |j
        d	d           t/          |j
        d
d           dini           }t          j        |	j                  |_        | j                            |           |S Nr  rg   r  r8  rC  r   deleterT  r;  rF  rG  rH  rJ  )r   _DeleteModelParametersrM  rN  r   r  rO  r   r	   rP  r   rQ  r   rR  rS  rT  rX  rY  rZ  r   r   DeleteModelResponser[  rU  r\  rK  ru   rW  r  s               r!   r  zModels.deletew  s    2  O   5

OT? l &))&11	 ""#3444

OT? l &))&11	 ""#344##H--L 100y..00dXt$$$04L*"/;$+8l*<88L6|DDL''$l H 'mJBBHM1J1JM  6
 m $ 5
 m ,;; ?Hd33#*#*,=t$ $ )0#*,BD) ) '.#*,@$' '
 

 
 ! <  L$ &+%7 & & &L" 	%%l333r#   c                   t          j        |||          }| j        j        rGt	          | j        |d|          }|                    d          }|rd                    |          }nId}nFt          | j        |d|          }|                    d          }|rd                    |          }nd}|                    d          }|r| dt          |           }|	                    dd           d}	|j
        |j
        j        |j
        j        }	t          j        |          }t          j        |          }| j                            d|||	          }
|
j        si nt#          j        |
j                  }| j        j        rt'          |d|          }| j        j        st)          |d|          }t           j                            |t/          |dd          rDdt/          |j
        d	d          t/          |j
        d
d          t/          |j
        dd          dini           }t          j        |
j                  |_        | j                            |           |S )a8  Counts the number of tokens in the given content.

    Multimodal input is supported for Gemini models.

    Args:
      model (str): The model to use for counting tokens.
      contents (list[types.Content]): The content to count tokens for.
      config (CountTokensConfig): The configuration for counting tokens.

    Usage:

    .. code-block:: python

      response = client.models.count_tokens(
          model='gemini-2.0-flash',
          contents='What is your name?',
      )
      print(response)
      # total_tokens=5 cached_content_token_count=None
    rB  Nrg   {model}:countTokensr8  rC  r   rD  rT  r;  rF  rG  rH  rJ  )r   _CountTokensParametersrM  rN  r   r  rO  r   r	   rP  r   rQ  r   rR  rS  rT  rX  rY  rZ  r   r   CountTokensResponser[  rU  r\  rK  ru   rW  rk  s                r!   count_tokenszModels.count_tokens  s   8 2  O   %5

OT? l &))&11	 %$//0@AA$4

OT? l &))&11	 %$//0@AA$##H--L 100y..00dXt$$$04L*"/;$+8l*<88L6|DDL''lL H 'mJBBHM1J1JM  6
 m $ 5
 m ,;; ?Hd33#*#*,=t$ $ )0#*,BD) ) '.#*,@$' '
 

 
 ! <  L$ &+%7 & & &L" 	%%l333r#   c                    t          j        |||          }| j        j        st	          d          t          | j        |d|          }|                    d          }|rd                    |          }nd}|                    d          }|r| dt          |           }|	                    dd           d}	|j
        |j
        j        |j
        j        }	t          j        |          }t          j        |          }| j                            d	|||	          }
|
j        si nt#          j        |
j                  }| j        j        rt'          |d|          }t           j                            |t-          |dd          rDdt-          |j
        d
d          t-          |j
        dd          t-          |j
        dd          dini           }t          j        |
j                  |_        | j                            |           |S )az  Given a list of contents, returns a corresponding TokensInfo containing the

    list of tokens and list of token ids.

    This method is not supported by the Gemini Developer API.

    Args:
      model (str): The model to use.
      contents (list[shared.Content]): The content to compute tokens for.

    Usage:

    .. code-block:: python

      response = client.models.compute_tokens(
          model='gemini-2.0-flash',
          contents='What is your name?',
      )
      print(response)
      # tokens_info=[TokensInfo(role='user', token_ids=['1841', ...],
      # tokens=[b'What', b' is', b' your', b' name', b'?'])]
    rB  r  Nrg   {model}:computeTokensr8  rC  r   rD  rT  r;  rF  rG  rH  rJ  )r   _ComputeTokensParametersrM  rN  r   rr   r  rO  r	   rP  r   rQ  r   rR  rS  rT  rX  rY  rZ  rz   ComputeTokensResponser[  rU  r\  rK  ru   rW  rk  s                r!   compute_tokenszModels.compute_tokens<  sv   < 4  O $ '>  
 8

OT? l &))&11	 '&112BCC&##H--L 100y..00dXt$$$04L*"/;$+8l*<88L6|DDL''lL H 'mJBBHM1J1JM  8
 m .== ?Hd33#*#*,=t$ $ )0#*,BD) ) '.#*,@$' '
 

 
 ! >  L$ &+%7 & & &L" 	%%l333r#   r   r  r  r  r   r  c                   t          j        ||||||          }| j        j        rGt	          | j        |d|          }|                    d          }	|	rd                    |	          }
nId}
nFt          | j        |d|          }|                    d          }	|	rd                    |	          }
nd}
|                    d          }|r|
 dt          |           }
|	                    dd           d}|j
        |j
        j        |j
        j        }t          j        |          }t          j        |          }| j                            d|
||          }|j        si nt#          j        |j                  }| j        j        rt'          |d|          }| j        j        st)          |d|          }t           j                            |t/          |dd          rDdt/          |j
        d	d          t/          |j
        d
d          t/          |j
        dd          dini           }| j                            |           |S )z%Private method for generating videos.rf   r   r  r  r  r   Nrg   {model}:predictLongRunningr8  rC  r   rD  rT  r;  rF  rG  rH  )r   _GenerateVideosParametersrM  rN  r  r  rO  r  r	   rP  r   rQ  r   rR  rS  rT  rX  rY  rZ  r  r  GenerateVideosOperationr[  rU  rW  r^  rf   r   r  r  r  r   r_  r`  ra  rb  rc  rQ  r:  re  rd  s                   r!   _generate_videoszModels._generate_videos  s    5  O   ,8

OT? l &))&11	 ,+667GHH+7

OT? l &))&11	 ,+667GHH+##H--L 100y..00dXt$$$04L*"/;$+8l*<88L6|DDL''lL H 'mJBBHM1J1JM  :
 m $ 9
 m 0?? ?Hd33#*#*,=t$ $ )0#*,BD) ) '.#*,@$' '
 

 
 ! @  L& 	%%l333r#   c                   | j         j        s0d|v rt          j        |          }|                     |||          S t          j        |          ret          j        |          }t          |          dk    rt          d          |                     |d|d         t          j	        j
        |          S |                     |d|t          j	        j        |          S )	a  Calculates embeddings for the given contents.

    Args:
      model (str): The model to use.
      contents (list[Content]): The contents to embed.
      config (EmbedContentConfig): Optional configuration for embeddings.

    Usage:

    .. code-block:: python

      embeddings = client.models.embed_content(
          model= 'text-embedding-004',
          contents=[
              'What is your name?',
              'What is your favorite color?',
          ],
          config={
              'output_dimensionality': 64
          },
      )

      multimodal_embeddings = client.models.embed_content(
          model='gemini-embedding-2-preview',
          contents=[
              types.Part.from_uri(
                  file_uri='gs://generativeai-downloads/images/scones.jpg',
                  mime_type='image/jpeg',
              ),
          ],
          config={
              'output_dimensionality': 64
          },
      )
    gemini-embedding-2rB  r
   HThe embedContent API for this model only supports one content at a time.Nr   ro  )rf   rD   rh   r  r   rM  rN  rn   rp   rx  rt  lenr   r   EmbeddingApiTyper  r  r^  rf   rh   r   normalized_contentss        r!   embed_contentzModels.embed_content  s   T $ P		&	&<))  ux OOO(// L22	 	!	!A	%	%
 
 	
   %a("3A !      "3; !   r#   c                   t          j        |          }t          j        |          }|r4|j        r-t	          j        |j                  rt          j        d          t          j        |          r| 	                    |||          S |rd}t          |t          j                  r|j        rt          |j                  }n<t          |t                    r'|                    dg           }|rt          |          }t          |          |k    rCd                    t#          t$          |                    }t&                              d|           | 	                    |||          S t          j        |          }	t&                              d|	 d           g }
t          j                    }d}|	dk    r|d	z  }| 	                    |||          }t          j        |          }|snU|snQ|j        r)|j        d         j        r|j        d         j        j        snt          j        ||          }|snt&                              d
| d           |	d	z  }	|	dk    rt&                              d           |j        d         j        }t          j        d|          }t=          j        |          }|
s|
                     |           t          |tB                    r*|"                    |           |"                    |           |
"                    |           |
"                    |           |	dk    t          j#        |          r	||
|_$        |S )a	  Makes an API request to generate content using a model.

    For the `model` parameter, supported formats for Gemini Enterprise Agent
    Platform API include:
    - The Gemini model ID, for example: 'gemini-2.0-flash'
    - The full resource name starts with 'projects/', for example:
      'projects/my-project-id/locations/us-central1/publishers/google/models/gemini-2.0-flash'
    - The partial resource name with 'publishers/', for example:
      'publishers/google/models/gemini-2.0-flash' or
    - `/` separated publisher and model name, for example:
      'google/gemini-2.0-flash'

    For the `model` parameter, supported formats for Gemini API include:
    - The Gemini model ID, for example: 'gemini-2.0-flash'
    - The model name starts with 'models/', for example:
      'models/gemini-2.0-flash'
    - For tuned models, the model name starts with 'tunedModels/',
      for example:
      'tunedModels/1234567890123456789'

    Some models support multimodal input and output.

    Built-in MCP support is an experimental feature.

    Usage:

    .. code-block:: python

      from google.genai import types
      from google import genai

      client = genai.Client(
          vertexai=True, project='my-project-id', location='us-central1'
      )

      response = client.models.generate_content(
        model='gemini-2.0-flash',
        contents='''What is a good name for a flower shop that specializes in
          selling bouquets of dried flowers?'''
      )
      print(response.text)
      # **Elegant & Classic:**
      # * The Dried Bloom
      # * Everlasting Florals
      # * Timeless Petals

      response = client.models.generate_content(
        model='gemini-2.0-flash',
        contents=[
          types.Part.from_text(text='What is shown in this image?'),
          types.Part.from_uri(file_uri='gs://generativeai-downloads/images/scones.jpg',
          mime_type='image/jpeg')
        ]
      )
      print(response.text)
      # The image shows a flat lay arrangement of freshly baked blueberry
      # scones.
    6MCP sessions are not supported in synchronous methods.rB  r   r   , Tools at indices [%s] are not compatible with automatic function calling (AFC). AFC is disabled. If AFC is intended, please include python callables in the tool list, and do not include function declaration and MCP server in the tool list.&AFC is enabled with max remote calls: .r
   AFC remote call 	 is done.8Reached max remote calls for automatic function calling.userr   r   )%r   "find_afc_incompatible_tool_indexesparse_config_for_mcp_usager   r   has_mcp_session_usager   UnsupportedFunctionErrorshould_disable_afcrf  
isinstancer   GenerateContentConfigr  dictr  joinmapstrloggerwarningget_max_remote_calls_afcinforV  get_function_mapr  rD   r   get_function_response_partsContentrn   rp   extendlistappendshould_append_afc_history"automatic_function_calling_history)r^  rf   rh   r   incompatible_tools_indexesparsed_configoriginal_tools_lengthr   indices_strremaining_remote_calls_afcr  r:  ifunction_mapfunc_response_partsfunc_call_contentfunc_response_contents                    r!   generate_contentzModels.generate_contentH  s   F 	7??  !;FCCM ,]-@AA
 +
B   &}55 ## $    " 	FE7	8	8 -< 	4"%fl"3"3
fd## -

7B'' 	-"%e**
	'	(	(,A	A	AiiC)C D DEED 	
 	
 	
 ## $    ".!F" " KKN1KNNN   ?A&,..H	A
$q
(
(1fa'' (  h "2=AAl  !$Q'/ $Q'/5
 	(D
L  ! kk1Q111222 A% 	#q	(	(NOOO"-a08#m#   h''h/ <*11(;;;	Hd	#	# /)***-...(//0ABBB(//0EFFFO %q
(
(R 	.}==  - 1 Or#   c             #   d  K   t          j        |          }t          j        |          }|r4|j        r-t	          j        |j                  rt          j        d          t          j        |          r | 	                    |||          E d{V  dS |rd}t          |t          j                  r|j        rt          |j                  }n<t          |t                    r'|                    dg           }|rt          |          }t          |          |k    rCd                    t#          t$          |                    }t&                              d|           | 	                    |||          E d{V  dS t          j        |           t          j        |          }	t&                              d|	 d	           g }
d}d}d}|	dk    rZ|d
z  }| 	                    |||          }t          j        |          }|d
k    r|D ]}|st          j        ||          }|V  |j        r)|j        d         j        r|j        d         j        j        s n1t          j        ||          }|st          j        ||          }|V  n|D ]6}t          j        |          r|
|_        t          j        ||          }|V  7|0|j        r)|j        d         j        r|j        d         j        j        sdS t          j        ||          }|sdS |sdS t&                              d| d           |	d
z  }	|	dk    rt&                              d           ||j        |j        d         j        }t          j         d|          }tC          j"        |          }|
s|
#                    |           t          |tH                    r,|*|%                    |           |%                    |           ||
%                    |           |
%                    |           |	dk    XdS dS )a-  Makes an API request to generate content using a model and yields the model's response in chunks.

    For the `model` parameter, supported formats for Gemini Enterprise Agent
    Platform API include:
    - The Gemini model ID, for example: 'gemini-2.0-flash'
    - The full resource name starts with 'projects/', for example:
      'projects/my-project-id/locations/us-central1/publishers/google/models/gemini-2.0-flash'
    - The partial resource name with 'publishers/', for example:
      'publishers/google/models/gemini-2.0-flash' or
    - `/` separated publisher and model name, for example:
      'google/gemini-2.0-flash'

    For the `model` parameter, supported formats for Gemini API include:
    - The Gemini model ID, for example: 'gemini-2.0-flash'
    - The model name starts with 'models/', for example:
      'models/gemini-2.0-flash'
    - For tuned models, the model name starts with 'tunedModels/',
      for example:
      'tunedModels/1234567890123456789'

    Some models support multimodal input and output.

    Built-in MCP support is an experimental feature.

    Usage:

    .. code-block:: python

      from google.genai import types
      from google import genai

      client = genai.Client(
          vertexai=True, project='my-project-id', location='us-central1'
      )

      for chunk in client.models.generate_content_stream(
        model='gemini-2.0-flash',
        contents='''What is a good name for a flower shop that specializes in
          selling bouquets of dried flowers?'''
      ):
        print(chunk.text)
      # **Elegant & Classic:**
      # * The Dried Bloom
      # * Everlasting Florals
      # * Timeless Petals

      for chunk in client.models.generate_content_stream(
        model='gemini-2.0-flash',
        contents=[
          types.Part.from_text('What is shown in this image?'),
          types.Part.from_uri('gs://generativeai-downloads/images/scones.jpg',
          'image/jpeg')
        ]
      ):
        print(chunk.text)
      # The image shows a flat lay arrangement of freshly baked blueberry
      # scones.
    r  rB  Nr   r   r  z_Tools at indices [%s] are not compatible with automatic function calling. AFC will be disabled.r  r  r
   r  r  r  r  r  )&r   r  r  r   r   r  r   r  r  rl  r  r   r  r  r  r  r  r  r  r  r  'raise_error_for_afc_incompatible_configr  r  r  append_chunk_contentsr  rD   r   r  r  r  r  rn   rp   r  r  r  )r^  rf   rh   r   r  r  r  r   r  r  r  chunkr  r  r:  r  r  r  s                     r!   generate_content_streamzModels.generate_content_stream  sM     F 	7??  !;FCCM ,]-@AA
 +
B   &}55 .. /          f! 	FE7	8	8 -< 	4"%fl"3"3
fd## -

7B'' 	-"%e**
	'	(	(,A	A	AiiC)C D DEE-	
 	
 	

 .. /          f 8GGG!-!F" " KKN1KNNN   ?A&E	A
$q
(
(1fa.. /  h "2=AAl	
a  	 	E #9(EJJHKKKK $'*2 '*28
 e"."J|# # ' %;HeLLhkkk  	 	E3MBB 2 4 "7%HH(++++M# #A&.  #A&.4 
 %*F<
 
    kk1Q111222 A% 	#q	(	(NOOO 
	u/;!,Q/7 %%!
 !
 !
 <))1 	>
,
3
3H
=
=
=h%% 	1*;*G
//+
,
,
,
///
0
0
0(
,
3
34E
F
F
F*112GHHHU %q
(
(
(
(
(
(r#   c                    |                      |||          }d}g }|r|j        s|S |j        D ]6}|j        r|j        j        dk    r|j        }!|                    |           7t          j        ||          }|S )ap  Generates images based on a text description and configuration.

    Args:
      model (str): The model to use.
      prompt (str): A text description of the images to generate.
      config (GenerateImagesConfig): Configuration for generation.

    Usage:

    .. code-block:: python

      response = client.models.generate_images(
        model='imagen-3.0-generate-002',
        prompt='Man with a dog',
        config=types.GenerateImagesConfig(
            number_of_images= 1,
            include_rai_reason= True,
        )
      )
      response.generated_images[0].image.show()
      # Shows a man with a dog.
    rz  NPositive Promptr   r  r~  r   r  r  r  r   r|  	r^  rf   r   r   api_responser  r   generated_imager:  s	            r!   generate_imageszModels.generate_images  s    : (( )  L
 )-% |< '8 1 1

+1/<  -<,M))0000+)*K  H Or#   c                4    |                      ||||          S )aU  Edits an image based on a text description and configuration.

    Args:
      model (str): The model to use.
      prompt (str): A text description of the edit to apply to the image.
        reference_images (list[Union[RawReferenceImage, MaskReferenceImage,
        ControlReferenceImage, StyleReferenceImage, SubjectReferenceImage]): The
        reference images for editing.
      config (EditImageConfig): Configuration for editing.

    Usage:

    .. code-block:: python

      from google.genai.types import RawReferenceImage, MaskReferenceImage

      raw_ref_image = RawReferenceImage(
        reference_id=1,
        reference_image=types.Image.from_file(location=IMAGE_FILE_PATH),
      )

      mask_ref_image = MaskReferenceImage(
        reference_id=2,
        config=types.MaskReferenceConfig(
            mask_mode='MASK_MODE_FOREGROUND',
            mask_dilation=0.06,
        ),
      )
      response = client.models.edit_image(
        model='imagen-3.0-capability-001',
        prompt='Man with dog',
        reference_images=[raw_ref_image, mask_ref_image],
        config=types.EditImageConfig(
            edit_mode= "EDIT_MODE_INPAINT_INSERTION",
            number_of_images= 1,
            include_rai_reason= True,
        )
      )
      response.generated_images[0].image.show()
      # Shows a man with a dog instead of a cat.
    r  r  r^  rf   r   r   r   s        r!   
edit_imagezModels.edit_image  s.    b )	    r#   c                   t          j        ||||           |pi }t          |t           j                  r|                                }nt          |          }t          j        |                    dd          |                    dd          |                    dd          |                    dd          |                    dd          |                    dd          |                    d	d          |                    d
d          |                    dd          |                    dd          
  
        }d|d<   d|d<   |                     ||||          S )a  Makes an API request to upscale a provided image.

    Args:
      model (str): The model to use.
      image (Image): The input image for upscaling.
      upscale_factor (str): The factor to upscale the image (x2 or x4).
      config (UpscaleImageConfig): Configuration for upscaling.

    Usage:

    .. code-block:: python

      from google.genai.types import Image

      IMAGE_FILE_PATH="my-image.png"
      response=client.models.upscale_image(
          model='imagen-3.0-generate-001',
          image=types.Image.from_file(location=IMAGE_FILE_PATH),
          upscale_factor='x2',
      )
      response.generated_images[0].image.show()
      # Opens my-image.png which is upscaled by a factor of 2.
    r  rQ  Nr   r   r   r   r   r   r  r"  r   
rQ  r   r   r   r   r   r   r  r"  r   upscaler3  r
   r   	r   UpscaleImageParametersr  UpscaleImageConfig
model_dumpr  _UpscaleImageAPIConfigDictr  r  r^  rf   r  r&  r   
config_dct
api_configs          r!   upscale_imagezModels.upscale_image  s~   B 
 %	    \rF&%233  $$&&jj<<j1^^ND99!~~&6==&NN+@$GG$..)<dCC%>>*>EE#(:DAA#->>($$
 $
 'NN+@$GG",..'#
 #
 ~~h--  J$ #Jv%&J!"%	    r#   c          
         |s|s|r|rt          d          i }| j        j        s|rt          |t          j                  r|                                }nt          |          }|                    d          rQ|                    d          r<t	          j        |                    d          |                    d                    }no| j        j        sb|r_t          |t          j	                  r+|                                }|                    di           }nwt          |          }t          |                    d          t          j                  r;|                    dt	          j                              }	|	                                }|r|                    d          r|                    d          rwt	          j	        |                    d          |                    d          t	          j        |                    d          |                    d                    	          }| 
                    ||||||
          S )  Generates videos based on an input (text, image, or video) and configuration.

    The following use cases are supported:
    1. Text to video generation.
    2a. Image to video generation (additional text prompt is optional).
    2b. Image to video generation with frame interpolation (specify last_frame
    in config).
    3. Video extension (additional text prompt is optional)

    Args:
      model: The model to use.
      prompt: The text prompt for generating the videos. Optional for image to
        video and video extension use cases. This argument is deprecated, please
        use source instead.
      image: The input image for generating the videos. Optional if prompt is
        provided. This argument is deprecated, please use source instead.
      video: The input video for video extension use cases. Optional if prompt
        or image is provided. This argument is deprecated, please use source
        instead.
      source: The input source for generating the videos (prompt, image, and/or
        video)
      config: Configuration for generation.

    Usage:

      ```
      operation = client.models.generate_videos(
          model="veo-2.0-generate-001",
          source=types.GenerateVideosSource(
              prompt="A neon hologram of a cat driving at top speed",
          ),
      )
      while not operation.done:
          time.sleep(10)
          operation = client.operations.get(operation)

      operation.result.generated_videos[0].video.uri
      ```
    MSource and prompt/image/video are mutually exclusive. Please only use source.r1  r3  r@   r1  r@   r  r   r  r   r  r  r  r   rM  rN  r  r   Videor  r  r  GenerateVideosSourcer  
r^  rf   r   r  r  r  r   	video_dct
source_dct	video_objs
             r!   generate_videoszModels.generate_videosf  sO   b 	 % 5 f '  
 !#I$ 
 
	E5;	'	'  $$&&		KK		u		 
)--">"> 
e$$	k0J0J
 
 
 & 
6 
	FE6	7	7 -&&((
NN7B//		&\\
jnnW--u{;; 	-#->>'5;==#I#I)**,,)	 
y}}U++ 
	m0L0L 
+>>(++..))+MM%((#--44  
 
 
    !   r#   c                F   t          j        |          j        pt          j                    }|j        d|_        | j        j        r0|                                }|j        s|j        }|r|dz   nd|_        t          d| j
        | 
                    |          |          S )a  Makes an API request to list the available models.

    If `query_base` is set to True in the config or not set (default), the
    API will return all available base models. If set to False, it will return
    all tuned models.

    Args:
      config (ListModelsConfigOrDict): Configuration for retrieving models.

    Usage:

    .. code-block:: python

      response=client.models.list(config={'page_size': 5})
      print(response.page)
      # [Model(name='projects/./locations/./models/123', display_name='my_model'

      response=client.models.list(config={'page_size': 5, 'query_base': True})
      print(response.page)
      # [Model(name='publishers/google/models/gemini-2.0-flash-exp' ...
    r?  NT&filter=labels.tune-type:*labels.tune-type:*rM  )r   r  r   ListModelsConfigr=  rM  rN  copyr<  r   r  r^  r   filter_values      r!   r  zModels.list  s    8 	#62229 	$!##   f  	
{{}}f 
} &L777% 	
 


&
!!	  r#   )G__name__
__module____qualname__r  r   r   ContentListUnionContentListUnionDictr   GenerateContentConfigOrDictrV  rf  r   rl  ContentUnionContentUnionDictr  EmbedContentConfigOrDictru  rx  GenerateImagesConfigOrDictr|  r~  r  _ReferenceImageAPIOrDictEditImageConfigOrDictr  r  ImageOrDict_UpscaleImageAPIConfigOrDictr  r  RecontextImageSourceOrDictRecontextImageConfigOrDictr  r  SegmentImageSourceOrDictSegmentImageConfigOrDictr  r  GetModelConfigOrDictr  r  ListModelsConfigOrDictr  r  UpdateModelConfigOrDictr  DeleteModelConfigOrDictr  r  CountTokensConfigOrDictr  r  ComputeTokensConfigOrDictr  r  VideoOrDictGenerateVideosSourceOrDictGenerateVideosConfigOrDictr  r  r  r  r  r  r  UpscaleImageConfigOrDictr  r   r   rU   r#   r!   r>  r>  l  s
        =A^ ^ ^ ^ e,e.HHI	^
 u89^ $^ ^ ^ ^J =Ac c c c e,e.HHI	c
 u89c -.c c c cV  =A9=w w w w 
&(BB
C	w 
"E$::
;w #5#9:w u56w !w w w w| <@Y Y Y Y 	Y
 u78Y #Y Y Y YB 7;R R R R 	R
 U;<R u23R R R R Rt >BR R R R 	R
 R u9:R !R R R Rr <@l l l l .	l
 u78l #l l l lf :>e e e e ,	e
 u56e !e e e eP KOJ J JJ#+E,F#GJ{J J J JZ AET T T <=TT T T Tt 9=	O O O O u45	O
 {O O O Oj 9=	U U U U u45	U
  U U U Ux 9=l l l l e,e.HHI	l
 u45l  l l l lf ;?e e e e e,e.HHI	e
 u67e "e e e eV #+/+/;?;?] ] ] ] sm	]
 e'(] e'(] u78] u78] $] ] ] ]H :>D D D D e,e.HHI	D
 u56D !D D D DV =A` ` ` ` *	`
 u89` $` ` ` `N =AAI AI AI AI *	AI
 u89AI -.AI AI AI AIP <@5 5 5 5 	5
 u785 #5 5 5 5z 7;6 6 6 6 	6
 U;<6 u236 6 6 6 6| :>H H H H 	H
 H u56H !H H H H\ #+/+/;?;?[ [ [ [ sm	[
 e'([ e'([ u78[ u78[ $[ [ [ [@ 8<0 0 0 u340 U[	0 0 0 0 0 0r#   r>  c                   \   e Zd Zdddedeej        ej        f         deej	                 dej
        fdZdddedeej        ej        f         deej	                 deeej
                          fdZddddd	dedeeej        ej        f                  d
eeej        ej        f                  deej                 deej                 dej        fdZdddededeej                 dej        fdZdddededeej                 deej                 dej        f
dZdddedej        dedeej                 dej        f
dZ dddedej!        deej"                 dej#        fdZ$dddedej%        deej&                 dej'        fdZ(dddedeej)                 dej*        fdZ+dddeej,                 dej-        fdZ.dddedeej/                 dej*        fdZ0dddedeej1                 dej2        fdZ3dddedeej        ej        f         deej4                 dej5        fdZ6dddedeej        ej        f         deej7                 dej8        fdZ9dddddddedee         deej                 deej:                 deej;                 deej<                 dej=        fdZ>dddedeej        ej        f         deej	                 dej
        fd Z?dddedeej        ej        f         deej	                 deej
                 fd!Z@dddededeej                 deej                 dej        f
d"ZAdddeej,                 deBej*                 fd#Zdddededeej                 dej        fd$ZCdddedej        dedeejD                 dej        f
d%ZEdddddddedee         deej                 deej:                 deej;                 deej<                 dej=        fd&ZFdddedeej        ej        f         deej                 dej        fd'ZGdS )(AsyncModelsNr?  rf   rh   r   r   c                b  K   t          j        |||          }| j        j        rGt	          | j        |d |          }|                    d          }|rd                    |          }nId}nFt          | j        |d |          }|                    d          }|rd                    |          }nd}|                    d          }|r| dt          |           }|	                    dd            d }	|j
        |j
        j        |j
        j        }	t          j        |          }t          j        |          }| j                            d|||	           d {V }
|Bt!          |dd           r1t          j        |
	          }| j                            |           |S |
j        si nt)          j        |
j                  }| j        j        rt-          |d |          }| j        j        st/          |d |          }t           j                            |t!          |dd           rDdt!          |j
        d
d           t!          |j
        dd           t!          |j
        dd           dini           }t          j        |
j                  |_        | j                            |           |S rA  )r   rL  rM  rN  r  r  rO  r  r	   rP  r   rQ  r   rR  rS  async_requestrU  rV  rW  rX  rY  rZ  r  r  r[  r\  rK  ru   r]  s                r!   rf  zAsyncModels._generate_content  sK      6  O   )9

OT? l &))&11	 )(334DEE(8

OT? l &))&11	 )(334DEE(##H--L 100y..00dXt$$$04L*"/;$+8l*<88L6|DDL%33lL       H g-t  2XNNNl
''555&mJBBHM1J1JM  :
 m $ 9
 m 0?? ?Hd33#*#*,=t$ $ )0#*,BD) ) '.#*,@$' '
 

 
 ! @  L$ &+%7 & & &L" 	%%l333r#   c                ,   
K   t          j        |||          
 j        j        rGt	           j        
d 
          }|                    d          }|rd                    |          }nId}nFt           j        
d 
          }|                    d          }|rd                    |          }nd}|                    d          }|r| dt          |           }|	                    dd            d }
j
        
j
        j        
j
        j        }t          j        |          }t          j        |          }| t          |dd           rt!          d           j                            d	|||           d {V 
 fd
}	 |	            S )NrB  rg   rh  r8  rC  r   rE  ri  rD  c                 D  K   2 3 d {V } | j         si nt          j        | j                   }j        j        rt          |d           }j        j        st          |d           }t          j        	                    |t          dd           rDdt          j        dd           t          j        dd           t          j        dd           dini           }t          j        | j                  |_        j                            |           |W V  6 d S )Nr   rT  r;  rF  rG  rH  rJ  )rX  rY  rZ  rM  rN  r  r  r   rV  r[  rU  r   r\  rK  ru   rW  )r:  re  rd  r_  response_streamr^  s      r!   async_generatorz=AsyncModels._generate_content_stream.<locals>.async_generator  s     + $ $ $ $ $ $ $"*-NTZ5N5N$ 	>T? - ( 	=T? - 4CC" $77'.'.0A4( ( -4'.0F- - +2'.0Dd+ +
 
  ! D 
 
$ */);$*
 *
 *
& 	)),777I ,OOs   D)r   rL  rM  rN  r  r  rO  r  r	   rP  r   rQ  r   rR  rS  rU  r   async_request_streamed)r^  rf   rh   r   r`  ra  rb  rc  rQ  rK  r_  rJ  s   `         @@r!   rl  z$AsyncModels._generate_content_streamX  s-      6  O   79

OT? l &))&11	 76AA
 
 78

OT? l &))&11	 76AA
 
 7##H--L 100y..00dXt$$$04L*"/;$+8l*<88L6|DDLg-t    
 !,CClL       O% % % % % % %N ?r#   rm  rD   r  c                  K   t          j        |||||          }| j        j        rdt	          | j        |d|          }|                    d          }t          j        |j                  rdnd}	|r|		                    |          }
nI|	}
nFt          | j        |d|          }|                    d          }|rd	                    |          }
nd}
|                    d          }|r|
 dt          |           }
|                    d	d           d}|j        |j        j        |j        j        }t          j        |          }t          j        |          }| j                            d
|
||           d{V }|j        si nt)          j        |j                  }| j        j        rt-          |d|          }| j        j        st/          |d|          }t           j                            |t5          |d	d          rDd	t5          |j        dd          t5          |j        dd          t5          |j        dd          dini           }t          j        |j                  |_        | j                            |           |S )aK  Calculates embeddings for the given contents. Only text is supported.

    Args:
      model (str): The model to use.
      contents (list[Content]): The contents to embed.
      config (EmbedContentConfig): Optional configuration for embeddings.

    Usage:

    .. code-block:: python

      embeddings = await client.aio.models.embed_content(
          model= 'text-embedding-004',
          contents=[
              'What is your name?',
              'What is your favorite color?',
          ],
          config={
              'output_dimensionality': 64
          },
      )
    ro  Nrg   rp  rq  rr  r8  rC  r   rD  rT  r;  rF  rG  rH  rJ  )r   rs  rM  rN  r  r  rn   rt  rf   rO  r  r	   rP  r   rQ  r   rR  rS  rG  rX  rY  rZ  r   r  ru  r[  rU  r\  rK  ru   rW  rv  s                   r!   rx  zAsyncModels._embed_content  s"     H :-  O   ,=

OT? l &))&11/0/PQ`Qf/g/g~++m~l	 &&'788<

OT? l &))&11	 ,+667GHH+##H--L 100y..00dXt$$$04L*"/;$+8l*<88L6|DDL%33lL       H 'mJBBHM1J1JM  7
 m $ 6
 m -<< ?Hd33#*#*,=t$ $ )0#*,BD) ) '.#*,@$' '
 

 
 ! =  L$ &+%7 & & &L" 	%%l333r#   r   c                  K   t          j        |||          }| j        j        rGt	          | j        |d|          }|                    d          }|rd                    |          }nId}nFt          | j        |d|          }|                    d          }|rd                    |          }nd}|                    d          }|r| dt          |           }|	                    dd           d}	|j
        |j
        j        |j
        j        }	t          j        |          }t          j        |          }| j                            d|||	           d{V }
|
j        si nt#          j        |
j                  }| j        j        rt'          |d|          }| j        j        st)          |d|          }t           j                            |t/          |dd          rDdt/          |j
        d	d          t/          |j
        d
d          t/          |j
        dd          dini           }t          j        |
j                  |_        | j                            |           |S )z4Private method for generating images asynchronously.rz  Nrg   rq  r8  rC  r   rD  rT  r;  rF  rG  rH  rJ  )r   r{  rM  rN  r  r  rO  r  r	   rP  r   rQ  r   rR  rS  rG  rX  rY  rZ  r  r  r|  r[  rU  r\  rK  ru   rW  r}  s                r!   r~  zAsyncModels._generate_images;  s      5  O   !8

OT? l &))&11	 ! ++,<== 7

OT? l &))&11	 ! ++,<== ##H--L 100y..00dXt$$$04L*"/;$+8l*<88L6|DDL%33lL       H 'mJBBHM1J1JM  9
 m $ 8
 m />> ?Hd33#*#*,=t$ $ )0#*,BD) ) '.#*,@$' '
 

 
 ! ?  L$ &+%7 & & &L" 	%%l333r#   r   c                2  K   t          j        ||||          }| j        j        st	          d          t          | j        |d|          }|                    d          }|rd                    |          }nd}|                    d          }	|	r| dt          |	           }|	                    dd           d}
|j
        |j
        j        |j
        j        }
t          j        |          }t          j        |          }| j                            d	|||
           d{V }|j        si nt#          j        |j                  }| j        j        rt'          |d|          }t           j                            |t-          |dd          rDdt-          |j
        d
d          t-          |j
        dd          t-          |j
        dd          dini           }t          j        |j                  |_        | j                            |           |S )z3Private method for editing an image asynchronously.r  r  Nrg   rq  r8  rC  r   rD  rT  r;  rF  rG  rH  rJ  )r   r  rM  rN  r   r   r  rO  r	   rP  r   rQ  r   rR  rS  rG  rX  rY  rZ  r   r  r[  rU  r\  rK  ru   rW  r  s                 r!   r  zAsyncModels._edit_image  s      0)	  O $ !>  
 4

OT? l &))&11	 ! ++,<== ##H--L 100y..00dXt$$$04L*"/;$+8l*<88L6|DDL%33lL       H 'mJBBHM1J1JM  4
 m *99 ?Hd33#*#*,=t$ $ )0#*,BD) ) '.#*,@$' '
 

 
 ! :  L$ &+%7 & & &L" 	%%l333r#   r  r&  c                2  K   t          j        ||||          }| j        j        st	          d          t          | j        |d|          }|                    d          }|rd                    |          }nd}|                    d          }	|	r| dt          |	           }|	                    dd           d}
|j
        |j
        j        |j
        j        }
t          j        |          }t          j        |          }| j                            d	|||
           d{V }|j        si nt#          j        |j                  }| j        j        rt'          |d|          }t           j                            |t-          |dd          rDdt-          |j
        d
d          t-          |j
        dd          t-          |j
        dd          dini           }t          j        |j                  |_        | j                            |           |S )z5Private method for upscaling an image asynchronously.r  r  Nrg   rq  r8  rC  r   rD  rT  r;  rF  rG  rH  rJ  )r   r  rM  rN  r   r(  r  rO  r	   rP  r   rQ  r   rR  rS  rG  rX  rY  rZ  r+  r  r[  rU  r\  rK  ru   rW  r  s                 r!   r  zAsyncModels._upscale_image  s      6%	  O $ !>  
 :

OT? l &))&11	 ! ++,<== ##H--L 100y..00dXt$$$04L*"/;$+8l*<88L6|DDL%33lL       H 'mJBBHM1J1JM  7
 m -<< ?Hd33#*#*,=t$ $ )0#*,BD) ) '.#*,@$' '
 

 
 ! =  L$ &+%7 & & &L" 	%%l333r#   r  c                  K   t          j        |||          }| j        j        st	          d          t          | j        |d|          }|                    d          }|rd                    |          }nd}|                    d          }|r| dt          |           }|	                    dd           d}	|j
        |j
        j        |j
        j        }	t          j        |          }t          j        |          }| j                            d	|||	           d{V }
|
j        si nt#          j        |
j                  }| j        j        rt'          |d|          }t           j                            |t-          |dd          rDdt-          |j
        d
d          t-          |j
        dd          t-          |j
        dd          dini           }| j                            |           |S )a  Recontextualizes an image.

    There is one type of recontextualization currently supported:
    1) Virtual Try-On: Generate images of persons modeling fashion products.

    Args:
      model (str): The model to use.
      source (RecontextImageSource): An object containing the source inputs
        (prompt, person_image, product_images) for image recontext. prompt is
        behind an allowlist. person_image is required. product_images is
        required. Only one product image is supported currently.
      config (RecontextImageConfig): Configuration for recontextualization.

    Usage:

      ```
      virtual_try_on_response = await client.aio.models.recontext_image(
          model="virtual-try-on-001",
          source=types.RecontextImageSource(
              person_image=types.Image.from_file(location=IMAGE1_FILE_PATH),
              product_images=[types.ProductImage(product_image=
                  types.Image.from_file(location=IMAGE2_FILE_PATH)
              )],
          ),
          config=types.RecontextImageConfig(
              number_of_images=1,
          ),
      )
      image = virtual_try_on_response.generated_images[0].image
      ```
    r  r  Nrg   rq  r8  rC  r   rD  rT  r;  rF  rG  rH  )r   r  rM  rN  r   r  r  rO  r	   rP  r   rQ  r   rR  rS  rG  rX  rY  rZ  r  r  r[  rU  rW  r  s                r!   r  zAsyncModels.recontext_image>  sw     N 5  O $ !>  
 9

OT? l &))&11	 ! ++,<== ##H--L 100y..00dXt$$$04L*"/;$+8l*<88L6|DDL%33lL       H 'mJBBHM1J1JM  9
 m />> ?Hd33#*#*,=t$ $ )0#*,BD) ) '.#*,@$' '
 

 
 ! ?  L& 	%%l333r#   c                  K   t          j        |||          }| j        j        st	          d          t          | j        |d|          }|                    d          }|rd                    |          }nd}|                    d          }|r| dt          |           }|	                    dd           d}	|j
        |j
        j        |j
        j        }	t          j        |          }t          j        |          }| j                            d	|||	           d{V }
|
j        si nt#          j        |
j                  }| j        j        rt'          |d|          }t           j                            |t-          |dd          rDdt-          |j
        d
d          t-          |j
        dd          t-          |j
        dd          dini           }| j                            |           |S )a  Segments an image, creating a mask of a specified area.

    Args:
      model (str): The model to use.
      source (SegmentImageSource): An object containing the source inputs
        (prompt, image, scribble_image) for image segmentation. The prompt is
        required for prompt mode and semantic mode, disallowed for other modes.
        scribble_image is required for the interactive mode, disallowed for
        other modes.
      config (SegmentImageConfig): Configuration for segmentation.

    Usage:

      ```
      response = await client.aio.models.segment_image(
          model="image-segmentation-001",
          source=types.SegmentImageSource(
              image=types.Image.from_file(location=IMAGE_FILE_PATH),
          ),
          config=types.SegmentImageConfig(
              mode=types.SegmentMode.foreground,
          ),
      )

      mask_image = response.generated_masks[0].mask
      ```
    r  r  Nrg   rq  r8  rC  r   rD  rT  r;  rF  rG  rH  )r   r  rM  rN  r   r  r  rO  r	   rP  r   rQ  r   rR  rS  rG  rX  rY  rZ  r  r  r[  rU  rW  r  s                r!   r  zAsyncModels.segment_image  sw     F 3  O $ !>  
 7

OT? l &))&11	 ! ++,<== ##H--L 100y..00dXt$$$04L*"/;$+8l*<88L6|DDL%33lL       H 'mJBBHM1J1JM  7
 m -<< ?Hd33#*#*,=t$ $ )0#*,BD) ) '.#*,@$' '
 

 
 ! =  L& 	%%l333r#   c                  K   t          j        ||          }| j        j        rGt	          | j        |d |          }|                    d          }|rd                    |          }nId}nFt          | j        |d |          }|                    d          }|rd                    |          }nd}|                    d          }|r| dt          |           }|	                    dd            d }|j
        |j
        j        |j
        j        }t          j        |          }t          j        |          }| j                            d|||           d {V }	|	j        si nt#          j        |	j                  }
| j        j        rt'          |
d |          }
| j        j        st)          |
d |          }
t           j                            |
t/          |dd           rDdt/          |j
        dd           t/          |j
        d	d           t/          |j
        d
d           dini           }| j                            |           |S r  )r   r  rM  rN  r  r  rO  r  r	   rP  r   rQ  r   rR  rS  rG  rX  rY  rZ  rV  rO  r  r[  rU  rW  r  s               r!   r  zAsyncModels.get  s      /  O   2

OT? l &))&11	 ""#3441

OT? l &))&11	 ""#344##H--L 100y..00dXt$$$04L*"/;$+8l*<88L6|DDL%33t\<       H 'mJBBHM1J1JM  O(oNNm$ N't_MMm;-- ?Hd33#*#*,=t$ $ )0#*,BD) ) '.#*,@$' '
 

 
 ! .  L& 	%%l333r#   c                l  K   t          j        |          }| j        j        rGt	          | j        |d |          }|                    d          }|rd                    |          }nId}nFt          | j        |d |          }|                    d          }|rd                    |          }nd}|                    d          }|rI|                    d          r4|                    d          }| d| }|r|dt          |           z  }n|r| dt          |           }|                    d	d            d }|j
        |j
        j        |j
        j        }t          j        |          }t          j        |          }| j                            d
|||           d {V }	|	j        si nt#          j        |	j                  }
| j        j        rt'          |
d |          }
| j        j        st)          |
d |          }
t           j                            |
t/          |d	d           rDd	t/          |j
        dd           t/          |j
        dd           t/          |j
        dd           dini           }t          j        |	j                  |_        | j                            |           |S r  )r   r  rM  rN  rI  r  rO  rG  rP  r	   r   rQ  r   rR  rS  rG  rX  rY  rZ  rW  rR  r  r[  rU  r\  rK  ru   rW  r  s               r!   r  zAsyncModels._listd  s^      1  O   4

OT? l &))&11	 (()9::3

OT? l &))&11	 (()9::##H--L 1((22 1'++H5522022d	 .-Il++---	 100y..00dXt$$$04L*"/;$+8l*<88L6|DDL%33t\<       H 'mJBBHM1J1JM  5
 m $ 4
 m +:: ?Hd33#*#*,=t$ $ )0#*,BD) ) '.#*,@$' '
 

 
 ! ;  L$ &+%7 & & &L" 	%%l333r#   c                  K   t          j        ||          }| j        j        rGt	          | j        |d |          }|                    d          }|rd                    |          }nId}nFt          | j        |d |          }|                    d          }|rd                    |          }nd}|                    d          }|r| dt          |           }|	                    dd            d }|j
        |j
        j        |j
        j        }t          j        |          }t          j        |          }| j                            d|||           d {V }	|	j        si nt#          j        |	j                  }
| j        j        rt'          |
d |          }
| j        j        st)          |
d |          }
t           j                            |
t/          |dd           rDdt/          |j
        d	d           t/          |j
        d
d           t/          |j
        dd           dini           }| j                            |           |S r  )r   r  rM  rN  r  r  rO  r  r	   rP  r   rQ  r   rR  rS  rG  rX  rY  rZ  rV  rO  r  r[  rU  rW  r  s               r!   r  zAsyncModels.update  s      2  O   5

OT? l &))&11	 ##$4554

OT? l &))&11	 ""#344##H--L 100y..00dXt$$$04L*"/;$+8l*<88L6|DDL%33|\       H 'mJBBHM1J1JM  O(oNNm$ N't_MMm;-- ?Hd33#*#*,=t$ $ )0#*,BD) ) '.#*,@$' '
 

 
 ! .  L& 	%%l333r#   c                  K   t          j        ||          }| j        j        rGt	          | j        |d |          }|                    d          }|rd                    |          }nId}nFt          | j        |d |          }|                    d          }|rd                    |          }nd}|                    d          }|r| dt          |           }|	                    dd            d }|j
        |j
        j        |j
        j        }t          j        |          }t          j        |          }| j                            d|||           d {V }	|	j        si nt#          j        |	j                  }
| j        j        rt'          |
d |          }
| j        j        st)          |
d |          }
t           j                            |
t/          |dd           rDdt/          |j
        dd           t/          |j
        d	d           t/          |j
        d
d           dini           }t          j        |	j                  |_        | j                            |           |S r  )r   r  rM  rN  r   r  rO  r   r	   rP  r   rQ  r   rR  rS  rG  rX  rY  rZ  r   r   r  r[  rU  r\  rK  ru   rW  r  s               r!   r  zAsyncModels.delete  s      2  O   5

OT? l &))&11	 ""#3444

OT? l &))&11	 ""#344##H--L 100y..00dXt$$$04L*"/;$+8l*<88L6|DDL%33$l       H 'mJBBHM1J1JM  6
 m $ 5
 m ,;; ?Hd33#*#*,=t$ $ )0#*,BD) ) '.#*,@$' '
 

 
 ! <  L$ &+%7 & & &L" 	%%l333r#   c                  K   t          j        |||          }| j        j        rGt	          | j        |d|          }|                    d          }|rd                    |          }nId}nFt          | j        |d|          }|                    d          }|rd                    |          }nd}|                    d          }|r| dt          |           }|	                    dd           d}	|j
        |j
        j        |j
        j        }	t          j        |          }t          j        |          }| j                            d|||	           d{V }
|
j        si nt#          j        |
j                  }| j        j        rt'          |d|          }| j        j        st)          |d|          }t           j                            |t/          |dd          rDdt/          |j
        d	d          t/          |j
        d
d          t/          |j
        dd          dini           }t          j        |
j                  |_        | j                            |           |S )aB  Counts the number of tokens in the given content.

    Multimodal input is supported for Gemini models.

    Args:
      model (str): The model to use for counting tokens.
      contents (list[types.Content]): The content to count tokens for.
      config (CountTokensConfig): The configuration for counting tokens.

    Usage:

    .. code-block:: python

      response = await client.aio.models.count_tokens(
          model='gemini-2.0-flash',
          contents='What is your name?',
      )
      print(response)
      # total_tokens=5 cached_content_token_count=None
    rB  Nrg   r  r8  rC  r   rD  rT  r;  rF  rG  rH  rJ  )r   r  rM  rN  r   r  rO  r   r	   rP  r   rQ  r   rR  rS  rG  rX  rY  rZ  r   r   r  r[  rU  r\  rK  ru   rW  rk  s                r!   r  zAsyncModels.count_tokensd  s     8 2  O   %5

OT? l &))&11	 %$//0@AA$4

OT? l &))&11	 %$//0@AA$##H--L 100y..00dXt$$$04L*"/;$+8l*<88L6|DDL%33lL       H 'mJBBHM1J1JM  6
 m $ 5
 m ,;; ?Hd33#*#*,=t$ $ )0#*,BD) ) '.#*,@$' '
 

 
 ! <  L$ &+%7 & & &L" 	%%l333r#   c                0  K   t          j        |||          }| j        j        st	          d          t          | j        |d|          }|                    d          }|rd                    |          }nd}|                    d          }|r| dt          |           }|	                    dd           d}	|j
        |j
        j        |j
        j        }	t          j        |          }t          j        |          }| j                            d	|||	           d{V }
|
j        si nt#          j        |
j                  }| j        j        rt'          |d|          }t           j                            |t-          |dd          rDdt-          |j
        d
d          t-          |j
        dd          t-          |j
        dd          dini           }t          j        |
j                  |_        | j                            |           |S )aF  Given a list of contents, returns a corresponding TokensInfo containing the

    list of tokens and list of token ids.


    Args:
      model (str): The model to use.
      contents (list[shared.Content]): The content to compute tokens for.

    Usage:

    .. code-block:: python

      response = await client.aio.models.compute_tokens(
          model='gemini-2.0-flash',
          contents='What is your name?',
      )
      print(response)
      # tokens_info=[TokensInfo(role='user', token_ids=['1841', ...],
      # tokens=[b'What', b' is', b' your', b' name', b'?'])]
    rB  r  Nrg   r  r8  rC  r   rD  rT  r;  rF  rG  rH  rJ  )r   r  rM  rN  r   rr   r  rO  r	   rP  r   rQ  r   rR  rS  rG  rX  rY  rZ  rz   r  r[  rU  r\  rK  ru   rW  rk  s                r!   r  zAsyncModels.compute_tokens  s     : 4  O $ '>  
 8

OT? l &))&11	 '&112BCC&##H--L 100y..00dXt$$$04L*"/;$+8l*<88L6|DDL%33lL       H 'mJBBHM1J1JM  8
 m .== ?Hd33#*#*,=t$ $ )0#*,BD) ) '.#*,@$' '
 

 
 ! >  L$ &+%7 & & &L" 	%%l333r#   r  r  c                  K   t          j        ||||||          }| j        j        rGt	          | j        |d|          }|                    d          }	|	rd                    |	          }
nId}
nFt          | j        |d|          }|                    d          }	|	rd                    |	          }
nd}
|                    d          }|r|
 dt          |           }
|	                    dd           d}|j
        |j
        j        |j
        j        }t          j        |          }t          j        |          }| j                            d|
||           d{V }|j        si nt#          j        |j                  }| j        j        rt'          |d|          }| j        j        st)          |d|          }t           j                            |t/          |dd          rDdt/          |j
        d	d          t/          |j
        d
d          t/          |j
        dd          dini           }| j                            |           |S )z4Private method for generating videos asynchronously.r  Nrg   r  r8  rC  r   rD  rT  r;  rF  rG  rH  )r   r  rM  rN  r  r  rO  r  r	   rP  r   rQ  r   rR  rS  rG  rX  rY  rZ  r  r  r  r[  rU  rW  r  s                   r!   r  zAsyncModels._generate_videos8   s      5  O   ,8

OT? l &))&11	 ,+667GHH+7

OT? l &))&11	 ,+667GHH+##H--L 100y..00dXt$$$04L*"/;$+8l*<88L6|DDL%33lL       H 'mJBBHM1J1JM  :
 m $ 9
 m 0?? ?Hd33#*#*,=t$ $ )0#*,BD) ) '.#*,@$' '
 

 
 ! @  L& 	%%l333r#   c                b  K   t          j        |          }t          j        |           d{V \  }}t          j        |          r|                     |||           d{V S |rd}t          |t          j                  r|j        rt          |j                  }n<t          |t                    r'|                    dg           }|rt          |          }t          |          |k    rCd                    t          t          |                    }	t                              d|	           |                     |||           d{V S t          j        |          }
t                              d|
 d           g }t          j                    }|
dk    rt|                     |||           d{V }|
d	z  }
|
dk    rt                              d
           t          j        ||d          }|sn|sn|j        r)|j        d         j        r|j        d         j        j        snt          j        ||           d{V }|sn|j        d         j        }t          j        d|          }t5          j        |          }|s|                    |           t          |t:                    r*|                    |           |                    |           |                    |           |                    |           |
dk    tt          j        |          r	|||_         |S )ad  Makes an API request to generate content using a model.

    Some models support multimodal input and output.

    Built-in MCP support is an experimental feature.

    Usage:

    .. code-block:: python

      from google.genai import types
      from google import genai

      client = genai.Client(
          vertexai=True, project='my-project-id', location='us-central1'
      )

      response = await client.aio.models.generate_content(
          model='gemini-2.0-flash',
          contents='User input: I like bagels. Answer:',
          config=types.GenerateContentConfig(
              system_instruction=
                [
                  'You are a helpful language translator.',
                  'Your mission is to translate text in English to French.'
                ]
          ),
      )
      print(response.text)
      # J'aime les bagels.
    NrB  r   r   r  r  r  r  r
   r  Tis_caller_method_asyncr  r  )!r   r  parse_config_for_mcp_sessionsr  rf  r  r   r  r   r  r  r  r  r  r  r  r  r  r  rV  r  r  rD   r   !get_function_response_parts_asyncr  rn   rp   r  r  r  r  r  )r^  rf   rh   r   r  r  mcp_to_genai_tool_adaptersr  r   r  r  r  r:  r  r  r  r  s                    r!   r  zAsyncModels.generate_content   s+     P 	7??  8@@@@@@@@ .M- &}55 )) *          " 	FE7	8	8 -< 	4"%fl"3"3
fd## -

7B'' 	-"%e**
	'	(	(,A	A	AiiC)C D DEED 	
 	
 	
 )) *          ".!F" " KKN1KNNN   ?A&,..H
$q
(
(-- .        h !A% 	#q	(	(NOOO!2
3D  l   !$Q'/ $Q'/5
 	>        
 ! "-a08#m#   h''h/ <*11(;;;	Hd	#	# /)***-...(//0ABBB(//0EFFFQ %q
(
(V 	.}==  - 1 Or#   c                <   K   t          j        |          }t          j        |           d{V \  }t          j        |          r0                     |||           d{V fd} ||||          S |rd}t          |t          j                  r|j        rt          |j                  }n<t          |t                    r'|                    dg           }|rt          |          }t          |          |k    rCd                    t          t          |                    }	t                              d|	                                |||           d{V fd} ||||          S t          j        |            fd	}
 |
|||          S )
aM  Makes an API request to generate content using a model and yields the model's response in chunks.

    For the `model` parameter, supported formats for Gemini Enterprise Agent
    Platform API include:
    - The Gemini model ID, for example: 'gemini-2.0-flash'
    - The full resource name starts with 'projects/', for example:
      'projects/my-project-id/locations/us-central1/publishers/google/models/gemini-2.0-flash'
    - The partial resource name with 'publishers/', for example:
      'publishers/google/models/gemini-2.0-flash' or
    - `/` separated publisher and model name, for example:
      'google/gemini-2.0-flash'

    For the `model` parameter, supported formats for Gemini API include:
    - The Gemini model ID, for example: 'gemini-2.0-flash'
    - The model name starts with 'models/', for example:
      'models/gemini-2.0-flash'
    - For tuned models, the model name starts with 'tunedModels/',
      for example:
      'tunedModels/1234567890123456789'

    Some models support multimodal input and output.

    Built-in MCP support is an experimental feature.

    Usage:

    .. code-block:: python

      from google.genai import types
      from google import genai

      client = genai.Client(
          vertexai=True, project='my-project-id', location='us-central1'
      )

      async for chunk in await client.aio.models.generate_content_stream(
        model='gemini-2.0-flash',
        contents='''What is a good name for a flower shop that specializes in
          selling bouquets of dried flowers?'''
      ):
        print(chunk.text)
      # **Elegant & Classic:**
      # * The Dried Bloom
      # * Everlasting Florals
      # * Timeless Petals

      async for chunk in await client.aio.models.generate_content_stream(
        model='gemini-2.0-flash',
        contents=[
          types.Part.from_text('What is shown in this image?'),
          types.Part.from_uri('gs://generativeai-downloads/images/scones.jpg',
          'image/jpeg')
        ]
      ):
        print(chunk.text)
      # The image shows a flat lay arrangement of freshly baked blueberry
      # scones.
    NrB  c                ,   K   2 3 d {V }|W V  6 d S NrU   rf   rh   r   r  r:  s       r!   base_async_generatorzAAsyncModels.generate_content_stream.<locals>.base_async_generatorg!  E      # 	 	 	 	 	 	 	%+++++ $88   r   r   r  r  c                ,   K   2 3 d {V }|W V  6 d S rb  rU   rc  s       r!   rd  zAAsyncModels.generate_content_stream.<locals>.base_async_generator!  re  rf  c                  K   t          j        |          }t                              d| d           g }d }d }d}|dk    r|dz  }                    | ||           d {V }|dk    rt                              d| d           |dz  }|dk    r |dk    rt                              d           t          j        |d	
          }	|dk    r|2 3 d {V }|	st          j        ||          }|W V  $|j        r)|j        d         j        r|j        d         j        j	        s n9t          j
        ||	           d {V }|st          j        ||          }|W V  6 n|2 3 d {V }t          j        |          r||_        t          j        ||          }|W V  =6 |0|j        r)|j        d         j        r|j        d         j        j	        sd S t          j
        ||	           d {V }|	sd S |sd S ||j        d         j        }
t          j        d|          }t          j        |          }|s|                    |           t%          |t&                    r,|
*|                    |
           |                    |           |
|                    |
           |                    |           |dk    d S d S )Nr  r  r   r
   rB  r  r  r  Tr[  r  r  )r   r  r  r  rl  r  r  r  rD   r   r^  r  r  r   r  rn   rp   r  r  r  r  )rf   rh   r   r  r  r  r  r  r:  r  r  r  r_  r^  s               r!   rK  z<AsyncModels.generate_content_stream.<locals>.async_generator!  s     #/#H#P#P kk
P3M
P
P
P   AC( e
a&**	Q66(6 7 
 
 
 
 
 
 
 
 q55
++5555
6
6
6"a'"q55/144
++H   $4.t
 
 
 66 &       E %;HeLLhkkkkk &)!,4 )!,4:
 $F\        "
 ) '=hNN% &, &       E5f== 4 6 $9(EJJHKKKKK & m% %a(0  %a(06 
 E B        
  	
%" 	
%=
!,Q/7 %%!
 !
 !
 <))1 	>
,
3
3H
=
=
=h%% 	1*;*G
//+
,
,
,
///
0
0
0(
,
3
34E
F
F
F*112GHHHm '******s   E$(F%)r   r  r]  r  rl  r  r   r  r   r  r  r  r  r  r  r  r  r  )r^  rf   rh   r   r  r  rd  r  r   r  rK  r_  r:  s   `          @@r!   r  z#AsyncModels.generate_content_stream!  s_     H 	7?? 
 8@@@@@@@@ .M- &}55 	B44 5        h     "!%=AAA! B	FE7	8	8 -< 	4"%fl"3"3
fd## -

7B'' 	-"%e**
	'	(	(,A	A	AiiC)C D DEED 	
 	
 	
 44 5        h     "!%=AAA 8GGG_I _I _I _I _I _IB ?5(M:::r#   c                D   K   |                      ||||           d{V S )a_  Edits an image based on a text description and configuration.

    Args:
      model (str): The model to use.
      prompt (str): A text description of the edit to apply to the image.
        reference_images (list[Union[RawReferenceImage, MaskReferenceImage,
        ControlReferenceImage, StyleReferenceImage, SubjectReferenceImage]): The
        reference images for editing.
      config (EditImageConfig): Configuration for editing.

    Usage:

    .. code-block:: python

      from google.genai.types import RawReferenceImage, MaskReferenceImage

      raw_ref_image = RawReferenceImage(
        reference_id=1,
        reference_image=types.Image.from_file(location=IMAGE_FILE_PATH),
      )

      mask_ref_image = MaskReferenceImage(
        reference_id=2,
        config=types.MaskReferenceConfig(
            mask_mode='MASK_MODE_FOREGROUND',
            mask_dilation=0.06,
        ),
      )
      response = await client.aio.models.edit_image(
        model='imagen-3.0-capability-001',
        prompt='man with dog',
        reference_images=[raw_ref_image, mask_ref_image],
        config=types.EditImageConfig(
            edit_mode= "EDIT_MODE_INPAINT_INSERTION",
            number_of_images= 1,
            include_rai_reason= True,
        )
      )
      response.generated_images[0].image.show()
      # Shows a man with a dog instead of a cat.
    r  Nr  r  s        r!   r  zAsyncModels.edit_image!  sP      b !!)	 "         r#   c                V  K   t          j        |          j        pt          j                    }|j        d|_        | j        j        r0|                                }|j        s|j        }|r|dz   nd|_        t          d| j
        | 
                    |           d{V |          S )a  Makes an API request to list the available models.

    If `query_base` is set to True in the config or not set (default), the
    API will return all available base models. If set to False, it will return
    all tuned models.

    Args:
      config (ListModelsConfigOrDict): Configuration for retrieving models.

    Usage:

    .. code-block:: python

      response = await client.aio.models.list(config={'page_size': 5})
      print(response.page)
      # [Model(name='projects/./locations/./models/123', display_name='my_model'

      response = await client.aio.models.list(
          config={'page_size': 5, 'query_base': True}
        )
      print(response.page)
      # [Model(name='publishers/google/models/gemini-2.0-flash-exp' ...
    r?  NTr"  r#  rM  )r   r  r   r$  r=  rM  rN  r%  r<  r   r  r&  s      r!   r  zAsyncModels.list("  s      < 	#62229 	$!##   f  	
{{}}f 
} &L777% 	
 
jjj''''''''	  r#   c                  K   |                      |||           d{V }d}g }|r|j        s|S |j        D ]6}|j        r|j        j        dk    r|j        }!|                    |           7t          j        ||          }|S )az  Generates images based on a text description and configuration.

    Args:
      model (str): The model to use.
      prompt (str): A text description of the images to generate.
      config (GenerateImagesConfig): Configuration for generation.

    Usage:

    .. code-block:: python

      response = await client.aio.models.generate_images(
        model='imagen-3.0-generate-002',
        prompt='Man with a dog',
        config=types.GenerateImagesConfig(
            number_of_images= 1,
            include_rai_reason= True,
        )
      )
      response.generated_images[0].image.show()
      # Shows a man with a dog.
    rz  Nr  r  r  r   s	            r!   r  zAsyncModels.generate_images\"  s      : .. /        L
 )-% |< '8 1 1

+1/<  -<,M))0000+)*K  H Or#   c                  K   t          j        ||||           |pi }t          |t           j                  r|                                }nt          |          }t          j        |                    dd          |                    dd          |                    dd          |                    dd          |                    dd          |                    dd          |                    d	d          |                    d
d          |                    dd          |                    dd          
  
        }d|d<   d|d<   |                     ||||           d{V S )a  Makes an API request to upscale a provided image.

    Args:
      model (str): The model to use.
      image (Image): The input image for upscaling.
      upscale_factor (str): The factor to upscale the image (x2 or x4).
      config (UpscaleImageConfig): Configuration for upscaling.

    Usage:

    .. code-block:: python

      from google.genai.types import Image

      IMAGE_FILE_PATH="my-image.png"
      response = await client.aio.models.upscale_image(
          model='imagen-3.0-generate-001',
          image=types.Image.from_file(location=IMAGE_FILE_PATH),
          upscale_factor='x2',
      )
      response.generated_images[0].image.show()
      # Opens my-image.png which is upscaled by a factor of 2.
    r  rQ  Nr   r   r   r   r   r   r  r"  r   r	  r
  r3  r
   r   r  r  s          r!   r  zAsyncModels.upscale_image"  s     B 
 %	    \rF&%233  $$&&jj<<j1^^ND99!~~&6==&NN+@$GG$..)<dCC%>>*>EE#(:DAA#->>($$
 $
 'NN+@$GG",..'#
 #
 ~~h--  J$ #Jv%&J!"$$%	 %         r#   c          
        K   |s|s|r|rt          d          i }| j        j        s|rt          |t          j                  r|                                }nt          |          }|                    d          rQ|                    d          r<t	          j        |                    d          |                    d                    }no| j        j        sb|r_t          |t          j	                  r+|                                }|                    di           }nwt          |          }t          |                    d          t          j                  r;|                    dt	          j                              }	|	                                }|r|                    d          r|                    d          rwt	          j	        |                    d          |                    d          t	          j        |                    d          |                    d                    	          }| 
                    ||||||
           d{V S )r  r  r1  r3  r@   r  r  r   r  r  r  Nr  r  s
             r!   r   zAsyncModels.generate_videos"  sq     b 	 % 5 f '  
 !#I$ 
 
	E5;	'	'  $$&&		KK		u		 
)--">"> 
e$$	k0J0J
 
 
 & 
6 
	FE6	7	7 -&&((
NN7B//		&\\
jnnW--u{;; 	-#->>'5;==#I#I)**,,)	 
y}}U++ 
	m0L0L 
+>>(++..))+MM%((#--44  
 
 
 && '         r#   c                  K   | j         j        s6d|v rt          j        |          }|                     |||           d{V S t          j        |          rkt          j        |          }t          |          dk    rt          d          |                     |||d         t          j	        j
        |           d{V S |                     ||t          j	        j        |           d{V S )	a  Calculates embeddings for the given contents.

    Args:
      model (str): The model to use.
      contents (list[Content]): The contents to embed.
      config (EmbedContentConfig): Optional configuration for embeddings.

    Usage:

    .. code-block:: python

      embeddings = await client.aio.models.embed_content(
          model= 'text-embedding-004',
          contents=[
              'What is your name?',
              'What is your favorite color?',
          ],
          config={
              'output_dimensionality': 64
          },
      )

      multimodal_embeddings = await client.aio.models.embed_content(
          model='gemini-embedding-2-preview',
          contents=[
              types.Part.from_uri(
                  file_uri='gs://generativeai-downloads/images/scones.jpg',
                  mime_type='image/jpeg',
              ),
          ],
          config={
              'output_dimensionality': 64
          },
      )
    r  rB  Nr
   r  r   ro  )rf   rh   r  r   r  r  s        r!   r  zAsyncModels.embed_content:#  si     T $ 		&	&<))&& '          	(// L22	 	!	!A	%	%
 
 	
 &&%a("3A '          &&"3;	 '         r#   )Hr(  r)  r*  r  r   r   r+  r,  r   r-  rV  rf  r   r   rl  r.  r/  r  r0  ru  rx  r1  r|  r~  r  r2  r3  r  r  r4  r5  r  r  r6  r7  r  r  r8  r9  r  r  r:  r  r  r;  r  r  r<  r  r=  r  r  r>  r  r  r?  r  r  r@  rA  rB  r  r  r  r  r  r   r  rC  r  r   r  rU   r#   r!   rE  rE    s
        =A^ ^ ^ ^ e,e.HHI	^
 u89^ $^ ^ ^ ^J =Ah h h h e,e.HHI	h
 u89h u<=>h h h h`  =A9=w w w w 
&(BB
C	w 
"E$::
;w #5#9:w u56w !w w w w| <@Y Y Y Y 	Y
 u78Y #Y Y Y YB 7;R R R R 	R
 U;<R u23R R R R Rt >BR R R R 	R
 R u9:R !R R R Rr <@l l l l .	l
 u78l #l l l lf :>h h h h ,	h
 u56h !h h h hV KOL L LL#+E,F#GL{L L L L^ AEV V V <=VV V V Vx 9=	O O O O u45	O
 {O O O Oj 9=	U U U U u45	U
  U U U Ux 9=l l l l e,e.HHI	l
 u45l  l l l lf ;?d d d d e,e.HHI	d
 u67d "d d d dT #+/+/;?;?] ] ] ] sm	]
 e'(] e'(] u78] u78] $] ] ] ]H =A    e,e.HHI	
 u89 $   L =AV; V; V; V; e,e.HHI	V;
 u89V; U23V; V; V; V;| 7;6 6 6 6 	6
 U;<6 u236 6 6 6 6v 8<2 2 2 u342 %+	2 2 2 2r <@5 5 5 5 	5
 u785 #5 5 5 5z :>H H H H 	H
 H u56H !H H H H\ #+/+/;?;?[ [ [ [ sm	[
 e'([ e'([ u78[ u78[ $[ [ [ [D :>D D D D e,e.HHI	D
 u56D !D D D D D Dr#   rE  )NN)rY  loggingtypingr   r   r   r   r   r   urllib.parser	    r   r   r.  r   r   r   r   rn   r   r   rM  r   r   r7   r   r8   pagersr   r   	getLoggerr  r"   r&   r)   r  r  objectr;   rB   r]   r\   rr   rz   r}   r   r   rk   r   r   r   r   r   r   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  r  r  r  r  r   r  r  r   r  r  r  r"  r{  r  r  r  r  r  rA  rD  rG  rI  rR  rW  r_  rO  rV  r}  r   r   r  r  r  r  r  r   r  r  r  r[  r  r  r  r  r  r|  r  rx  r  r^  r   rw  r  r  r  r  r$  r(  r+  r  r  r  r  r  r  r  r  
BaseModuler>  rE  rU   r#   r!   <module>rw     syB  $   K K K K K K K K K K K K K K K K " " " " " "       * * * * * *                                           & & & & & & . . . . . . . . . . . . % % % % % % % %		0	1	1Q Q Q Q Q Q
Q# Q$ Q Q Q Q
QQ	Q Q Q Q /3;?   tCH~v-. DcN+  %S#X 678  
#s(^	       J /3;? tCH~v-.DcN+ %S#X 678 
#s(^	   ( /3;?6 6tCH~v-.6DcN+6 %S#X 6786 
#s(^	6 6 6 6v /3;? tCH~v-.DcN+ %S#X 678 
#s(^	   & /3;?	 tCH~v-. DcN+ %S#X 678	
 
#s(^   : /3;? tCH~v-.DcN+ %S#X 678 
#s(^	   . /3;? tCH~v-.DcN+ %S#X 678 
#s(^	   " /3;? tCH~v-.DcN+ %S#X 678 
#s(^	   . /3;? tCH~v-.DcN+ %S#X 678 
#s(^	   0 /3;? tCH~v-.DcN+ %S#X 678 
#s(^	   0 /3;? tCH~v-.DcN+ %S#X 678 
#s(^	   * /3;? tCH~v-.DcN+ %S#X 678 
#s(^	   2 /3;?% %tCH~v-.%DcN+% %S#X 678% 
#s(^	% % % %V /3;?	 tCH~v-. DcN+ %S#X 678	
 
#s(^   F /3;?	 tCH~v-. DcN+ %S#X 678	
 
#s(^   D /3;? tCH~v-.DcN+ %S#X 678 
#s(^	   4 /3;? tCH~v-.DcN+ %S#X 678 
#s(^	   ( /3;?	 tCH~v-. DcN+ %S#X 678	
 
#s(^   ( /3;?	 tCH~v-. DcN+ %S#X 678	
 
#s(^   & /3;? tCH~v-.DcN+ %S#X 678 
#s(^	     /3;? tCH~v-.DcN+ %S#X 678 
#s(^	     /3;?v vtCH~v-.vDcN+v %S#X 678v 
#s(^	v v v vx /3;?	    tCH~v-.  DcN+  %S#X 678	 
 
#s(^       J /3;? tCH~v-.DcN+ %S#X 678 
#s(^	   4 /3;?& &tCH~v-.&DcN+& %S#X 678& 
#s(^	& & & &V /3;?n ntCH~v-.nDcN+n %S#X 678n 
#s(^	n n n nh /3;?	) ))tCH~v-.) DcN+) %S#X 678	)
 
#s(^) ) ) )^ /3;?	2 22tCH~v-.2 DcN+2 %S#X 678	2
 
#s(^2 2 2 2n /3;? tCH~v-.DcN+ %S#X 678 
#s(^	   4 /3;?% %tCH~v-.%DcN+% %S#X 678% 
#s(^	% % % %T /3;? tCH~v-.DcN+ %S#X 678 
#s(^	   & /3;? tCH~v-.DcN+ %S#X 678 
#s(^	   ( /3;? tCH~v-.DcN+ %S#X 678 
#s(^	   4 /3;? tCH~v-.DcN+ %S#X 678 
#s(^	   6 /3;?& &tCH~v-.&DcN+& %S#X 678& 
#s(^	& & & &X /3;?	y yytCH~v-.y DcN+y %S#X 678	y
 
#s(^y y y y~ /3;?	{ {{tCH~v-.{ DcN+{ %S#X 678	{
 
#s(^{ { { {B /3;?	! !!tCH~v-.! DcN+! %S#X 678	!
 
#s(^! ! ! !N /3;?	! !!tCH~v-.! DcN+! %S#X 678	!
 
#s(^! ! ! !L /3;?$ $tCH~v-.$DcN+$ %S#X 678$ 
#s(^	$ $ $ $R /3;?! !tCH~v-.!DcN+! %S#X 678! 
#s(^	! ! ! !L /3;?n ntCH~v-.nDcN+n %S#X 678n 
#s(^	n n n nf /3;?v vtCH~v-.vDcN+v %S#X 678v 
#s(^	v v v vx /3;?	 tCH~v-. DcN+ %S#X 678	
 
#s(^   8 /3;?	 tCH~v-. DcN+ %S#X 678	
 
#s(^   6 /3;?   tCH~v-. DcN+  %S#X 678  
#s(^	       J /3;?   tCH~v-. DcN+  %S#X 678  
#s(^	       J /3;?o otCH~v-.oDcN+o %S#X 678o 
#s(^	o o o oh /3;?H HtCH~v-.HDcN+H %S#X 678H 
#s(^	H H H HZ /3;?( (tCH~v-.(DcN+( %S#X 678( 
#s(^	( ( ( (Z /3;?$ $tCH~v-.$DcN+$ %S#X 678$ 
#s(^	$ $ $ $T /3;?	) ))tCH~v-.) DcN+) %S#X 678	)
 
#s(^) ) ) )^ /3;?	) ))tCH~v-.) DcN+) %S#X 678	)
 
#s(^) ) ) )\ /3;? tCH~v-.DcN+ %S#X 678 
#s(^	   F /3;? tCH~v-.DcN+ %S#X 678 
#s(^	   F /3;? tCH~v-.DcN+ %S#X 678 
#s(^	   < /3;? tCH~v-.DcN+ %S#X 678 
#s(^	   < /3;? tCH~v-.DcN+ %S#X 678 
#s(^	   2 /3;? tCH~v-.DcN+ %S#X 678 
#s(^	   D /3;?" "tCH~v-."DcN+" %S#X 678" 
#s(^	" " " "N /3;? tCH~v-.DcN+ %S#X 678 
#s(^	   $ /3;? tCH~v-.DcN+ %S#X 678 
#s(^	   ( /3;?v vtCH~v-.vDcN+v %S#X 678v 
#s(^	v v v vx /3;?	 tCH~v-. DcN+ %S#X 678	
 
#s(^   ( /3;?	 tCH~v-. DcN+ %S#X 678	
 
#s(^   & /3;? tCH~v-.DcN+ %S#X 678 
#s(^	   . /3;? tCH~v-.DcN+ %S#X 678 
#s(^	   : /3;?% %tCH~v-.%DcN+% %S#X 678% 
#s(^	% % % %T /3;?- -tCH~v-.-DcN+- %S#X 678- 
#s(^	- - - -d /3;? tCH~v-.DcN+ %S#X 678 
#s(^	   , /3;? tCH~v-.DcN+ %S#X 678 
#s(^	   0 /3;? tCH~v-.DcN+ %S#X 678 
#s(^	   0 /3;? tCH~v-.DcN+ %S#X 678 
#s(^	   2 /3;?	 tCH~v-. DcN+ %S#X 678	
 
#s(^   H /3;?	 tCH~v-. DcN+ %S#X 678	
 
#s(^   H /3;?	 tCH~v-. DcN+ %S#X 678	
 
#s(^   $ /3;?	 tCH~v-. DcN+ %S#X 678	
 
#s(^   " /3;? tCH~v-.DcN+ %S#X 678 
#s(^	   : /3;? tCH~v-.DcN+ %S#X 678 
#s(^	   : /3;? tCH~v-.DcN+ %S#X 678 
#s(^	   , /3;?7 7tCH~v-.7DcN+7 %S#X 6787 
#s(^	7 7 7 7x /3;?6 6tCH~v-.6DcN+6 %S#X 6786 
#s(^	6 6 6 6v /3;? tCH~v-.DcN+ %S#X 678 
#s(^	   * /3;?P PtCH~v-.PDcN+P %S#X 678P 
#s(^	P P P Pj /3;?G GtCH~v-.GDcN+G %S#X 678G 
#s(^	G G G GX /3;? tCH~v-.DcN+ %S#X 678 
#s(^	   ( /3;?L LtCH~v-.LDcN+L %S#X 678L 
#s(^	L L L Ld /3;?	 tCH~v-. DcN+ %S#X 678	
 
#s(^   : /3;? tCH~v-.DcN+ %S#X 678 
#s(^	   * /3;? tCH~v-.DcN+ %S#X 678 
#s(^	   F /3;?5 5tCH~v-.5DcN+5 %S#X 6785 
#s(^	5 5 5 5t /3;? tCH~v-.DcN+ %S#X 678 
#s(^	   B /3;? tCH~v-.DcN+ %S#X 678 
#s(^	   4 /3;? tCH~v-.DcN+ %S#X 678 
#s(^	   4 /3;? tCH~v-.DcN+ %S#X 678 
#s(^	   ( /3;? tCH~v-.DcN+ %S#X 678 
#s(^	   $ /3;?) )tCH~v-.)DcN+) %S#X 678) 
#s(^	) ) ) )^ /3;?	 tCH~v-. DcN+ %S#X 678	
 
#s(^   : /3;? tCH~v-.DcN+ %S#X 678 
#s(^	   * /3;? tCH~v-.DcN+ %S#X 678 
#s(^	   @ /3;? tCH~v-.DcN+ %S#X 678 
#s(^	   . /3;? tCH~v-.DcN+ %S#X 678 
#s(^	   D /3;? tCH~v-.DcN+ %S#X 678 
#s(^	   D /3;? tCH~v-.DcN+ %S#X 678 
#s(^	   : /3;?F FtCH~v-.FDcN+F %S#X 678F 
#s(^	F F F FV /3;?C CtCH~v-.CDcN+C %S#X 678C 
#s(^	C C C CP /3;? tCH~v-.DcN+ %S#X 678 
#s(^	   6 /3;? tCH~v-.DcN+ %S#X 678 
#s(^	   2 /3;? tCH~v-.DcN+ %S#X 678 
#s(^	   4 /3;?	 tCH~v-. DcN+ %S#X 678	
 
#s(^   2 /3;?	 tCH~v-. DcN+ %S#X 678	
 
#s(^   0 /3;?L LtCH~v-.LDcN+L %S#X 678L 
#s(^	L L L Ld /3;?	! !!tCH~v-.! DcN+! %S#X 678	!
 
#s(^! ! ! !L /3;? tCH~v-.DcN+ %S#X 678 
#s(^	   4 /3;? tCH~v-.DcN+ %S#X 678 
#s(^	   * /3;? tCH~v-.DcN+ %S#X 678 
#s(^	   0 /3;? tCH~v-.DcN+ %S#X 678 
#s(^	   * /3;? tCH~v-.DcN+ %S#X 678 
#s(^	   0 /3;? tCH~v-.DcN+ %S#X 678 
#s(^	   0 /3;? tCH~v-.DcN+ %S#X 678 
#s(^	   0 /3;? tCH~v-.DcN+ %S#X 678 
#s(^	   0 /3;? tCH~v-.DcN+ %S#X 678 
#s(^	   6G" G" G" G" G"[# G" G" G"TDH" H" H" H" H"+( H" H" H" H" H"r#   