Ë
    Fü´j j  ã                  óv  — U d dl mZ d dlZd dlZd dlZd dlZd dlmZm	Z	m
Z
 d dlmZ d dlmZmZ d dlZd dlZddlmZ ddlmZmZmZ d	d
lmZmZmZmZ ddlmZmZm Z  ddl!m"Z"m#Z#m$Z$m%Z% dZ&dZ'dZ(dZ)dZ*dZ+h d£Z, ejZ                  d«      Z.e&dddœZ/e/ja                  «       D � ch c]  }  ejb                  | «      jd                  ’Œ  c} Z3 edd¬«      Z4de5d<    G d„ de6«      Z7ddœd;d„Z8d<d„Z9d<d „Z:	 	 	 	 	 	 	 	 	 	 d=d!„Z; G d"„ d#ejx                  «      Z= G d$„ d%ej|                  «      Z?dd&d'œ	 	 	 	 	 	 	 	 	 d>d(„Z@dd&d'œ	 	 	 	 	 	 	 	 	 d?d)„ZAd@d*„ZB	 	 	 	 dAd+„ZC	 	 	 	 	 	 	 	 dBd,„ZD	 	 	 	 	 	 dCd-„ZEdDd.„ZFdEd/„ZG	 	 	 	 	 	 dFd0„ZHdGd1„ZIdHd2„ZJdId3„ZKdJd4„ZL G d5„ d6ee   «      ZM G d7„ d8eM«      ZN G d9„ d:eM«      ZOyc c} w )Ké    )ÚannotationsN)ÚAnyÚNoReturnÚcast)Ú
ContextVar)ÚTypeIsÚoverrideé   )Úis_dict)Útimeout_exceptionsÚnormalize_httpx_urlÚ_loaded_legacy_httpxé   )ÚTOKEN_EXCHANGE_GRANT_TYPEÚWorkloadIdentityÚX509WorkloadIdentityÚ_WorkloadIdentityAuth)ÚMAX_RETRY_DELAYÚINITIAL_RETRY_DELAYÚMAX_RETRY_AFTER_DELAY)Ú
OAuthErrorÚOpenAIErrorÚAPITimeoutErrorÚAPIConnectionErrorzhttps://mtls.api.openai.com/v1z(https://mtls.auth.openai.com/oauth/tokenz'urn:openai:params:oauth:token-type:x509Úopenai_x509_replay_positionÚ!openai_x509_replay_file_positions>   ÚtypeÚservice_account_idÚidentity_provider_idÚrefresh_buffer_secondsz[A-Za-z0-9._~+/-]+=*z!https://mtls-us.api.openai.com/v1z!https://mtls-eu.api.openai.com/v1)ÚglobalÚusÚeuÚ$openai_x509_exchange_request_timeout)Údefaultz*ContextVar[dict[str, float | None] | None]Ú_EXCHANGE_REQUEST_TIMEOUTc                  ó   — e Zd Zdd„Zy)Ú_TransientTokenExchangeErrorc                ó   — || _         y ©N)Úerror)Úselfr+   s     úO/root/workspace/ytshorts/venv/lib/python3.12/site-packages/openai/auth/_x509.pyÚ__init__z%_TransientTokenExchangeError.__init__-   s	   € Øˆ�
ó    N)r+   r   ÚreturnÚNone)Ú__name__Ú
__module__Ú__qualname__r.   © r/   r-   r(   r(   ,   s   „ ôr/   r(   ©Úexpected_originc               ó*  — t        | «      }|j                  dk7  s|j                  st        d«      ‚|j                  s|j
                  rt        d«      ‚|�=|j                  |j                  f|j                  |j                  fk7  rt        d«      ‚y y )NÚhttpsz:X.509 workload identity requires an absolute HTTPS API URLz@X.509 workload identity API URLs cannot contain user credentialszCX.509 workload identity requests must use the configured API origin)r   ÚschemeÚhostr   ÚusernameÚpasswordÚport)Úurlr7   Únormalized_urls      r-   Úvalidate_x509_api_urlrA   1   s—   € Ü(¨Ó-€NØ×Ñ Ò'¨~×/BÒ/BÜÐVÓWÐWà×Ò .×"9Ò"9ÜÐ\Ó]Ð]àÐ"¨×(;Ñ(;¸^×=PÑ=PÐ'QØ×ÑØ×ÑðVò (ô Ð_Ó`Ð`ð	(Ð"r/   c                óR   — t        d„ | j                  D «       «      rt        d«      ‚y )Nc              3  ó`   K  — | ]&  }|j                  «       j                  d d«      dv –— Œ( y­w)Ú_ú-)úapi-keyú	x-api-keyúproxy-authorizationN©ÚlowerÚreplace©Ú.0Úheaders     r-   ú	<genexpr>z0validate_x509_api_credentials.<locals>.<genexpr>A   s1   è ø€ ò àð 	�‰‹×Ñ˜s CÓ(Ð,[Ô[ñùó   ‚,.zLX.509 workload identity requests cannot include API-key or proxy credentials)ÚanyÚheadersr   ©Úrequests    r-   Úvalidate_x509_api_credentialsrU   @   s.   € Ü
ñ à—o‘oôô ô ÐhÓiÐið	r/   c                ór  ‡— | j                   j                  d«      Št        ‰«      dk7  s0t        ˆfd„dD «       «      st        d„ | j                   D «       «      rt	        d«      ‚	 t        j                  d‰d   › �«      }|j                  sx|j                  sl|j                  d
k7  s]|j                  sQ|j                  sE|j                  |j                  f| j                  j                  | j                  j                  fk7  rt	        d«      ‚y # t
        j                  $ r}t	        d	«      |‚d }~ww xY w)Nr;   r   c              3  ó,   •K  — | ]  }|‰d    v –— Œ y­w)r   Nr5   )rM   Ú	delimiterÚhost_headerss     €r-   rO   z2validate_x509_request_authority.<locals>.<genexpr>L   s   øè ø€ ÒF°	ˆy˜L¨™OÔ+ÑFùs   ƒz/?#@\c              3  ó>   K  — | ]  }|j                  d «      –— Œ y­w)ú:N)Ú
startswithrL   s     r-   rO   z2validate_x509_request_authority.<locals>.<genexpr>M   s   è ø€ ÒD¨&ˆv× Ñ  ×%ÑDùs   ‚zIX.509 workload identity requests require exactly one valid Host authorityzhttps://r   z?X.509 workload identity requests require a valid Host authorityú/zAX.509 workload identity Host authority must match the request URL)rR   Úget_listÚlenrQ   r   Úhttpx2ÚURLÚ
InvalidURLr<   r=   ÚpathÚqueryÚfragmentr;   r>   r?   )rT   Úhost_urlr+   rY   s      @r-   Úvalidate_x509_request_authorityrg   H   s	  ø€ Ø—?‘?×+Ñ+¨FÓ3€LäˆLÓ˜QÒÜÓF¸XÔFÔFÜÑD°G·O±OÔDÔDäÐeÓfÐfðhÜ—:‘: ¨°a©Ð(9Ð:Ó;ˆð
 	×ÒØ×ÒØ�=‰=˜CÒØ�>Š>Ø×ÒØ�M‰M˜8Ÿ=™=Ð)¨g¯k©k×.>Ñ.>ÀÇÁ×@PÑ@PÐ-QÒQäÐ]Ó^Ð^ð Røô ×Ñò hÜÐ[Ó\ÐbgÐgûðhús   Á'D ÄD6Ä%D1Ä1D6c               óÒ  — t        | j                  |¬«       t        | «       | j                  j	                  d«      }|�$|| j                  j
                  k7  rt        d«      ‚| j                  j	                  d«      }| j                  j                  t        v rH|�Ft        |t        «      r+|j                  «       |j                  j                  «       k7  rt        d«      ‚|rOt        | j                  «      t        k7  rt        d«      ‚t        d„ | j                  D «       «      rt        d«      ‚y t        | «       | j                  j	                  d	«      |k7  rt        d
«      ‚y )Nr6   ÚtargetzAX.509 workload identity request target must match the request URLÚsni_hostnamezEX.509 workload identity TLS hostname must match the configured originzDX.509 token exchange requests must use the pinned authentication URLc              3  ó`   K  — | ]&  }|j                  «       j                  d d«      dv –— Œ( y­w)rD   rE   )ÚauthorizationrH   ÚcookierG   rF   NrI   rL   s     r-   rO   z._validate_transport_request.<locals>.<genexpr>w   s6   è ø€ ò 
ð ð �L‰L‹N×"Ñ" 3¨Ó,ØYôZñ
ùrP   z<X.509 token exchange requests cannot include API credentialsÚAuthorizationzMX.509 workload identity authorization cannot be changed by HTTP request hooks)rA   r?   rg   Ú
extensionsÚgetÚraw_pathr   r;   Ú_OPENAI_MTLS_HOSTSÚ
isinstanceÚstrrJ   Ú_X509_TOKEN_EXCHANGE_URLrQ   rR   rU   )rT   r7   Úexpected_authorizationÚtoken_exchangeri   rj   s         r-   Ú_validate_transport_requestrx   a   s9  € ô ˜'Ÿ+™+°ÕGÜ# GÔ,à×Ñ×#Ñ# HÓ-€FØÐ˜f¨¯©×(<Ñ(<Ò<ÜÐ]Ó^Ð^à×%Ñ%×)Ñ)¨.Ó9€LØ‡{�{×ÑÔ-Ñ-°,Ð2JÜ˜,¬Ô,°×0BÑ0BÓ0DÈ×H\ÑH\×HbÑHbÓHdÒ0dÜÐeÓfÐfáÜˆw�{‰{ÓÔ7Ò7ÜÐdÓeÐeÜñ 
ð "Ÿ/™/ô
ô 
ô
 Ð\Ó]Ð]ð
ô 	& gÔ.Ø�?‰?×Ñ˜Ó/Ð3IÒIÜÐmÓnÐnð Jr/   c                  óL   — e Zd Z	 	 	 	 	 	 	 	 	 	 dd„Zedd„«       Zedd„«       Zy)Ú_SyncX509ForwardingTransportc               ó<   — || _         || _        || _        || _        y r*   ©Ú_http_clientÚ_expected_originÚ_expected_authorizationÚ_token_exchange©r,   Úhttp_clientr7   rv   rw   s        r-   r.   z%_SyncX509ForwardingTransport.__init__„   ó$   € ð (ˆÔØ /ˆÔØ'=ˆÔ$Ø-ˆÕr/   c                ó  — t        || j                  | j                  | j                  ¬«       | j                  j
                  rt        d«      ‚| j                  j                  |j                  «      j                  |«      S ©N)r7   rv   rw   z5Cannot send a request, as the client has been closed.)
rx   r~   r   r€   r}   Ú	is_closedÚRuntimeErrorÚ_transport_for_urlr?   Úhandle_request©r,   rT   s     r-   r‰   z+_SyncX509ForwardingTransport.handle_request‘   sl   € ä#ØØ ×1Ñ1Ø#'×#?Ñ#?Ø×/Ñ/õ		
ð ×Ñ×&Ò&ÜÐVÓWÐWØ× Ñ ×3Ñ3°G·K±KÓ@×OÑOÐPWÓXÐXr/   c                 ó   — y r*   r5   ©r,   s    r-   Úclosez"_SyncX509ForwardingTransport.close�   s   € ð r/   N)
r‚   úhttpx2.Clientr7   ú
httpx2.URLrv   ú
str | Nonerw   Úboolr0   r1   ©rT   úhttpx2.Requestr0   úhttpx2.Response©r0   r1   )r2   r3   r4   r.   r	   r‰   r�   r5   r/   r-   rz   rz   ƒ   sc   „ ð.ð #ð.ð $ð	.ð
 !+ð.ð ð.ð 
ó.ð ò	Yó ð	Yð òó ñr/   rz   c                  óL   — e Zd Z	 	 	 	 	 	 	 	 	 	 dd„Zedd„«       Zedd„«       Zy)Ú_AsyncX509ForwardingTransportc               ó<   — || _         || _        || _        || _        y r*   r|   r�   s        r-   r.   z&_AsyncX509ForwardingTransport.__init__¤   rƒ   r/   c              ƒ  ó"  K  — t        || j                  | j                  | j                  ¬«       | j                  j
                  rt        d«      ‚| j                  j                  |j                  «      j                  |«      ƒ d {  –—† S 7 Œ­wr…   )
rx   r~   r   r€   r}   r†   r‡   rˆ   r?   Úhandle_async_requestrŠ   s     r-   rš   z2_AsyncX509ForwardingTransport.handle_async_request±   sv   è ø€ ä#ØØ ×1Ñ1Ø#'×#?Ñ#?Ø×/Ñ/õ		
ð ×Ñ×&Ò&ÜÐVÓWÐWØ×&Ñ&×9Ñ9¸'¿+¹+ÓF×[Ñ[Ð\cÓd×dÐdÐdús   ‚BBÂBÂ	Bc              ƒ  ó   K  — y ­wr*   r5   rŒ   s    r-   Úaclosez$_AsyncX509ForwardingTransport.aclose½   s   è ø€ ð ùs   ‚N)
r‚   úhttpx2.AsyncClientr7   r�   rv   r�   rw   r‘   r0   r1   r’   r•   )r2   r3   r4   r.   r	   rš   rœ   r5   r/   r-   r—   r—   £   sc   „ ð.ð (ð.ð $ð	.ð
 !+ð.ð ð.ð 
ó.ð ò	eó ð	eð òó ñr/   r—   F)rv   rw   c               óH  — t        | |||¬«      }t        «       }t        j                  }|�4t	        t        t        | «      t        j                  «      s|j                  } ||| j                  |rd n| j                  | j                  d¬«      }|s| j                  |_        |S ©N)r‚   r7   rv   rw   F)Ú	transportÚtimeoutÚevent_hooksÚdefault_encodingÚ	trust_env)rz   r   r`   ÚClientrs   r   Úobjectr¡   r¢   Ú_default_encodingÚcookiesÚ_cookies©r‚   r7   rv   rw   r    Úlegacy_httpxÚclient_typeÚscoped_clients           r-   Ú_scoped_sync_clientr®   Ã   sš   € ô -ØØ'Ø5Ø%ô	€Iô (Ó)€LÜ—-‘-€KØÐ¬
´4¼ÀÓ3LÌfÏmÉmÔ(\Ø"×)Ñ)ˆÙØØ×#Ñ#Ù*‘D°×0GÑ0GØ$×6Ñ6Øô€Mñ Ø!,×!4Ñ!4ˆÔØÐr/   c               óH  — t        | |||¬«      }t        «       }t        j                  }|�4t	        t        t        | «      t        j                  «      s|j                  } ||| j                  |rd n| j                  | j                  d¬«      }|s| j                  |_        |S rŸ   )r—   r   r`   ÚAsyncClientrs   r   r¦   r¡   r¢   r§   r¨   r©   rª   s           r-   Ú_scoped_async_clientr±   à   sž   € ô .ØØ'Ø5Ø%ô	€Iô (Ó)€LÜ×$Ñ$€KØÐ¬
´4¼ÀÓ3LÌf×N`ÑN`Ô(aØ"×.Ñ.ˆÙØØ×#Ñ#Ù*‘D°×0GÑ0GØ$×6Ñ6Øô€Mñ Ø!,×!4Ñ!4ˆÔØÐr/   c                ó¸   — t        | t        «      st        | t        t        f«      sy 	 t        | «      } t        j                  | «      r| S d S # t        $ r Y y w xY wr*   )rs   r‘   ÚintÚfloatÚOverflowErrorÚmathÚisfinite)Úvalues    r-   Ú_as_finite_floatr¹   ý   sV   € Ü�%œÔ¤j°¼¼e¸Ô&EØðÜ�e“ˆô —M‘M %Ô(ˆ5Ð2¨dÐ2øô ò Ùðús   ©A Á	AÁAc                ó6   — | d uxr | j                  d«      dk(  S )Nr   Úx509)rp   ©Úidentitys    r-   Úis_x509_workload_identityr¾     s"   € ð ˜4ÐÒB H§L¡L°Ó$8¸FÑ$BÐBr/   c                óX   — |�t        |«      s| S |t        vrt        d«      ‚t        |   S )NzCX.509 workload identity requires a supported regional mTLS endpoint)r¾   Ú_MTLS_REGIONAL_BASE_URLSr   )Úbase_urlÚdata_residencyÚworkload_identitys      r-   Úx509_data_residency_base_urlrÄ     s8   € ð
 ÐÔ%>Ð?PÔ%QØˆØÔ5Ñ5ÜÐ_Ó`Ð`Ü# NÑ3Ð3r/   c                ó†   — |€| S | j                  «       D ��ci c]  \  }}|j                  «       dk7  sŒ||“Œ c}}S c c}}w )Nrl   )ÚitemsrJ   )rR   rÃ   Únamer¸   s       r-   Úx509_safe_environment_headersrÈ     s>   € ð Ð ØˆØ+2¯=©=«?×^™K˜D %¸d¿j¹j»lÈoÓ>]ˆD�%‰KÓ^Ð^ùÓ^s   ˜=´=c                ó"  ‡ — d‰ v sd‰ v rt        d«      ‚t        ‰ «      t        z
  rt        d«      ‚t        ˆ fd„dD «       «      rt        d«      ‚t	        t
        ‰ j                  d«      «      }|�t        |«      }|�|d	k  rt        d
«      ‚y y )NÚproviderÚ	client_idzMX.509 workload identity does not accept a subject-token provider or client IDzPX.509 workload identity accepts only identity IDs and an optional refresh bufferc              3  ó†   •K  — | ]8  }t        ‰j                  |«      t        «       xs ‰j                  |«       –— Œ: y ­wr*   )rs   rp   rt   )rM   Úfieldr½   s     €r-   rO   z%_validate_identity.<locals>.<genexpr>(  s@   øè ø€ ò àô �x—|‘| EÓ*¬CÓ0Ð0ÒK¸¿¹ÀUÓ8KÐ4KÓKñùs   ƒ>A)r   r   zJX.509 workload identity requires identity-provider and service-account IDsr    r   zFX.509 workload identity requires a finite, non-negative refresh buffer)r   ÚsetÚ_ALLOWED_IDENTITY_FIELDSrQ   r   r¦   rp   r¹   )r½   Úrefresh_bufferÚrefresh_buffer_values   `  r-   Ú_validate_identityrÒ   !  s¨   ø€ Ø�XÑ °Ñ!8ÜÐiÓjÐjä
ˆ8ƒ}Ô/Ò/ÜÐlÓmÐmä
ó ð
ôô ô ÐfÓgÐgäœ& (§,¡,Ð/GÓ"HÓI€NØÐ!Ü/°Ó?ÐØÐ'Ð+?À!Ò+CÜÐfÓgÐgð ,Dð "r/   c                ó,   — t         t        | d   | d   dœS )Nr   r   )Ú
grant_typeÚsubject_token_typer   r   )r   Ú_X509_SUBJECT_TOKEN_TYPEr¼   s    r-   Ú_exchange_payloadr×   8  s$   € ä/Ü6Ø (Ð)?Ñ @Ø&Ð';Ñ<ñ	ð r/   c          	     ó2  — t         j                  }t        «       }|�qt        t	        t
        |«      t         j                  t         j                  f«      s9t	        t        t         j                     t	        t        |«      j                  «      }t        j                  «       }|xs# t        j                  d«      j                  «       j                  «       D ��ci c]  \  }}||�t        |d«      nd“Œ }}} |dt         t#        | «      d|i¬«      S c c}}w )Ng      $@ÚPOSTr¡   )Újsonro   )r`   ÚRequestr   rs   r   r¦   r¥   r°   r   r   r&   rp   ÚTimeoutÚas_dictrÆ   Úminru   r×   )r½   r‚   Úrequest_typer«   Úconfigured_timeoutÚphaser¸   r¡   s           r-   Ú_token_exchange_requestrâ   A  sì   € ô
 —>‘>€LÜ'Ó)€LØÐ¬
´4¼ÀÓ3LÌvÏ}É}Ô^d×^pÑ^pÐNqÔ(rÜœD¤§¡Ñ0´$´s¸LÓ2I×2QÑ2QÓRˆä2×6Ñ6Ó8Ðð 0ÒQ´6·>±>À$Ó3G×3OÑ3OÓ3Q×XÑXÓZ÷áˆE�5ð 	 5Ð#4Œs�5˜$Ô¸$Ñ>ð€Gñ ñ ØÜ Ü˜xÓ(Ø˜wÐ'ô	ð ùó	s   ÃDc                ó˜  — | ��	| j                   j                  d«      }| j                  dv s|dk(  ry |dk7  r| j                  dvr| j                  dk  ry | j                   j                  d«      }| j                   j                  d«      }|�@	 t        |«      d	z  }t	        j
                  |«      rd
|cxk  r
t        k  r|S  |t        kD  ry |�=	 t        |«      }t	        j
                  |«      rd
|cxk  r
t        k  r|S  |t        kD  ry t        t        t         d|z  z  t"        «      «      S # t        $ r Y Œmw xY w# t        $ r� 	 t        j                  j                  |«      }|�=t        t        j                  j                  |«      t        j                  «       z
  «      nd}n# t        t        t        f$ r d}Y nw xY wY Œìw xY w)Núx-should-retry©i�  i‘  i“  ÚfalseÚtrue©i˜  i™  i­  éô  zretry-after-mszretry-afteriè  r   éÿÿÿÿr
   )rR   rp   Ústatus_coder´   r¶   r·   r   Ú
ValueErrorÚemailÚutilsÚparsedate_tzÚ	mktime_tzÚtimerµ   ÚOSErrorrÞ   r   r   )ÚresponseÚattemptÚshould_retryÚretry_after_msÚretry_afterÚmillisecond_delayÚdelayÚparseds           r-   Ú_retry_delayrû   X  sÂ  € ØÑØ×'Ñ'×+Ñ+Ð,<Ó=ˆØ×Ñ ?Ñ2°lÀgÒ6MØØ˜6Ò! h×&:Ñ&:À/Ñ&QÐV^×VjÑVjÐmpÒVpØà!×)Ñ)×-Ñ-Ð.>Ó?ˆØ×&Ñ&×*Ñ*¨=Ó9ˆØÐ%ð Ü$)¨.Ó$9¸DÑ$@Ð!ô —=‘=Ð!2Ô3¸Ð=NÔ8gÔRgÒ8gØ,Ð,ð 9hà$Ô'<Ò<ØØÐ"ðÜ˜kÓ*�ô �}‰}˜UÔ#¨¨UÔ(KÔ6KÒ(KØ�ð )LàÔ,Ò,Øä”Ô(¨1¨g©:Ñ5´ÓGÓHÐHøô- ò Ùðûô ò ðÜ"Ÿ[™[×5Ñ5°kÓB�FØRXÐRdœE¤%§+¡+×"7Ñ"7¸Ó"?Ä$Ç)Á)Ã+Ñ"MÔNÐjl‘EøÜ%¤w´
Ð;ò Ø’Eðüð	úsI   ÂD0 ÃD? Ä0	D<Ä;D<Ä?	G	Å	A F*Æ)G	Æ*GÇ G	ÇGÇG	ÇG	c                ó|  — t        t        | dd «      t        «      ry| j                  }t        |dd «      }t        |t        «      rÖg }t        t        t           |«      D ]¦  }t        |dd «      }|�t        |t        t        f«      rŒ)t        |dd «      }t        |dd «      }t        |dd «      }	 t        |«      r |«       rt        |«      rt        |«      s y |«       }	t        |	t        «      s y|j                  ||	f«       Œ¨ || j                  t        <   yt        |d	|«      }
t        |
dd «      }t        |
dd «      }t        |
dd «      }	 t        |«      r |«       rt        |«      rt        |«      sy |«       | j                  t        <   y# t        t        f$ r Y  yw xY w# t        t        f$ r Y yw xY w)
NÚ_contentTÚfieldsÚfileÚseekableÚseekÚtellFÚ_stream)rs   ÚgetattrÚbytesÚstreamÚlistr   r¦   rt   Úcallablerò   rì   r³   Úappendro   Ú _REPLAY_FILE_POSITIONS_EXTENSIONÚ_REPLAY_POSITION_EXTENSION)rT   r  rþ   Úfile_positionsrÍ   rÿ   r   r  r  ÚpositionÚsources              r-   Ú_is_replayable_requestr  ~  s­  € Ü”'˜' :¨tÓ4´eÔ<Øà�^‰^€FÜ�V˜X tÓ,€FÜ�&œ$ÔØ35ˆÜœ$œv™,¨Ó/ò 	4ˆEÜ˜5 &¨$Ó/ˆDØˆ|œz¨$´´e°Ô=ØÜ˜t Z°Ó6ˆHÜ˜4 ¨Ó.ˆDÜ˜4 ¨Ó.ˆDðÜ Ô)±´Ä8ÈDÄ>ÔYaÐbfÔYgÙ Ù›6�ô ˜h¬Ô,ÙØ×!Ñ! 4¨Ð"2Õ3ð	4ð  @Nˆ×ÑÔ;Ñ<Øä�V˜Y¨Ó/€FÜ�v˜z¨4Ó0€HÜ�6˜6 4Ó(€DÜ�6˜6 4Ó(€DðÜ˜Ô!©¬¼8ÀD¼>ÔQYÐZ^ÔQ_ØÙ9=»ˆ×ÑÔ5Ñ6ð øô% œZÐ(ò Úðûô  ”ZÐ ò Ùðús0   Â0(FÃFÅ(F) Å:F) ÆF&Æ%F&Æ)F;Æ:F;c                 óÀ   — t        «       } | €t        j                  fS t        t        t
           t        | dt        j                  «      «      }t        j                  |fS )NÚTransportError)r   r`   r  r   r   Ú	Exceptionr  )r«   Úlegacy_transport_errors     r-   Ú_transport_errorsr  ¦  sS   € Ü'Ó)€LØÐÜ×%Ñ%Ð'Ð'Ü!¤$¤y¡/´7¸<ÐIYÔ[a×[pÑ[pÓ3qÓrÐÜ×!Ñ!Ð#9Ð:Ð:r/   c               ó^   — t        | t        «       «      rt        |¬«      | ‚t        |¬«      | ‚)NrS   )rs   r   r   r   )r+   rT   s     r-   Ú_raise_transport_errorr  ®  s*   € Ü�%Ô+Ó-Ô.Ü gÔ.°EÐ9Ü
 WÔ
-°5Ð8r/   c                  ó’   ‡ — e Zd Zd	ˆ fd„Zed
ˆ fd„«       Zedd„«       Zedd„«       Zedd„«       Zdd„Z	edˆ fd„«       Z
d
d„Zˆ xZS )Ú_X509WorkloadIdentityAuthc               ó’   •— t        |«       t        ‰| �	  |t        ¬«       t	        t        |d«      t        «      | _        d| _        y )N)rÃ   Útoken_exchange_urlr   F)	rÒ   Úsuperr.   ru   rÞ   ÚmaxÚ_MAX_EXCHANGE_RETRIESÚ_max_exchange_retriesÚ_follow_redirects)r,   rÃ   Úmax_retriesÚ	__class__s      €r-   r.   z"_X509WorkloadIdentityAuth.__init__µ  s?   ø€ ÜÐ,Ô-Ü‰ÑÐ+<ÔQiÐÔjÜ%(¬¨[¸!Ó)<Ô>SÓ%TˆÔ"Ø!&ˆÕr/   c                ó  •— |j                   dvr‡t        ‰| �	  |«      }|j                  «       }|j	                  d«      }d|v r.t        |t        «      r|j                  «       dk7  rt        d«      ‚t        j                  |d   «      €t        d«      ‚|S 	 |j                  r|j                  «       nd }t        |«      r|j	                  d«      nd }t        |t        «      rd|ind }t        ||¬«      ‚# t        $ r d }Y ŒNw xY w)	Nrå   Ú
token_typeÚbearerz<X.509 token exchange response must use the Bearer token typeÚaccess_tokenzIX.509 token exchange response did not include a valid Bearer access_tokenr+   )ró   Úbody)rë   r  Ú_handle_token_responserÚ   rp   rs   rt   rJ   r   Ú_BEARER_ACCESS_TOKENÚ	fullmatchÚcontentrì   r   r   )r,   ró   Ú
token_dataÚresponse_bodyr#  Úoauth_errorÚ	safe_bodyr!  s          €r-   r'  z0_X509WorkloadIdentityAuth._handle_token_response»  s  ø€ à×Ñ Ñ6Ü™Ñ7¸ÓAˆJØ$ŸM™M›OˆMØ&×*Ñ*¨<Ó8ˆJØ˜}Ñ,´jÀÌSÔ6QÐU_×UeÑUeÓUgÐksÒUsÜ!Ð"`ÓaÐaÜ#×-Ñ-¨j¸Ñ.HÓIÐQÜ!Ð"mÓnÐnØÐð	!Ø/7×/?Ò/?˜HŸM™MœOÀTˆMô 5<¸MÔ4J�m×'Ñ'¨Ô0ÐPTˆÜ.8¸ÄcÔ.J�W˜kÑ*ÐPTˆ	Ü (°Ô;Ð;øô ò 	!Ø ŠMð	!ús   ÂC7 Ã7DÄDc                ó@   — t        |«      }|�|dk  rt        d«      ‚|S )Nr   zKX.509 token exchange response did not include a positive, finite expires_in)r¹   r   )r,   Ú
expires_inÚexpires_in_values      r-   Ú_validate_expires_inz._X509WorkloadIdentityAuth._validate_expires_inÐ  s-   € ä+¨JÓ7ÐØÐ#Ð'7¸1Ò'<ÜÐkÓlÐlØÐr/   c                ó   — t        |«      S r*   )r  rŠ   s     r-   Ú_can_retry_requestz,_X509WorkloadIdentityAuth._can_retry_request×  s   € ä% gÓ.Ð.r/   c                óâ  — |j                   j                  t        «      }t        |t        «      rNt        t        t        t        t        f      |«      D ]&  \  }}t        |dd «      }t        |«      sŒ ||«       Œ( y |j                   j                  t        «      }t        |t        «      sy t        |j                  d|j                  «      }t        |dd «      }t        |«      r	 ||«       y y )Nr  r  )ro   rp   r
  rs   r  r   Útupler¦   r³   r  r  r  r  )r,   rT   r  rÿ   Úfile_positionr  r  r  s           r-   Ú_prepare_retry_requestz0_X509WorkloadIdentityAuth._prepare_retry_requestÛ  sÉ   € à ×+Ñ+×/Ñ/Ô0PÓQˆÜ�n¤dÔ+Ü'+¬D´´v¼s°{Ñ1CÑ,DÀnÓ'Uò (Ñ#��mÜ˜t V¨TÓ2�Ü˜D•>Ù˜Õ'ð(ð à×%Ñ%×)Ñ)Ô*DÓEˆÜ˜(¤CÔ(ØÜ˜Ÿ™¨°G·N±NÓCˆÜ�v˜v tÓ,ˆÜ�DŒ>Ù��Nð r/   c                óÒ   — | j                   5  | j                  «       r
	 d d d «       y t        j                  «       t        z   | _        | j                  cd d d «       S # 1 sw Y   y xY wr*   )Ú_lockÚ_token_unusablerñ   Ú	monotonicr   Ú"_cached_token_refresh_at_monotonicÚ_cached_tokenrŒ   s    r-   Ú%_usable_token_after_transient_failurez?_X509WorkloadIdentityAuth._usable_token_after_transient_failureí  sW   € Ø�Z‰Zñ 	&Ø×#Ñ#Ô%Ø÷	&ð 	&ô 7;·n±nÓ6FÔI\Ñ6\ˆDÔ3Ø×%Ñ%÷		&÷ 	&ò 	&ús   �A¨+AÁA&c                óp   •— 	 t         ‰| �  «        y # t        t        f$ r | j	                  «       €‚ Y y w xY wr*   )r  Ú_perform_refreshr   r(   r?  )r,   r!  s    €r-   rA  z*_X509WorkloadIdentityAuth._perform_refreshô  s@   ø€ ð	Ü‰GÑ$Õ&øÜ"Ô$@ÐAò 	Ø×9Ñ9Ó;ÐCØñ Dð	ús   ƒ ’ 5´5c                óô   — 	 | j                  |«      S # t        $ r[}|j                  dv s;|j                  dk\  s,|j                  dvr*|j                  j	                  d«      dk(  rt        |«      |‚‚ d }~ww xY w)Nrè   ré   rå   rä   rç   )r'  r   rë   rR   rp   r(   )r,   ró   r+   s      r-   Ú_handle_exchange_responsez3_X509WorkloadIdentityAuth._handle_exchange_responseü  s|   € ð		Ø×.Ñ.¨xÓ8Ð8øÜò 	à×$Ñ$¨Ñ7Ø×'Ñ'¨3Ò.Ø×(Ñ(°Ñ?ÀH×DTÑDT×DXÑDXÐYiÓDjÐntÒDtä2°5Ó9¸uÐDØûð	ús   ‚ “	A7œAA2Á2A7)rÃ   r   r   r³   r0   r1   )ró   r”   r0   údict[str, Any])r0  r¦   r0   r´   ©rT   r“   r0   r‘   ©rT   r“   r0   r1   )r0   r�   r•   )r2   r3   r4   r.   r	   r'  r2  r4  r8  r?  rA  rC  Ú__classcell__©r!  s   @r-   r  r  ´  sv   ø„ õ'ð ô<ó ð<ð( ò ó ð ð ò/ó ð/ð òó ðó"&ð ôó ð÷
r/   r  c                  óv   ‡ — e Zd ZU ded<   	 	 	 	 	 	 	 	 dˆ fd„Z	 	 	 	 	 	 	 	 	 	 	 	 dd„Zd	d„Zed
d„«       Zˆ xZ	S )ÚSyncX509WorkloadIdentityAuthrŽ   r}   c               ó6   •— t         ‰| �  ||¬«       || _        y ©N)rÃ   r   )r  r.   r}   ©r,   rÃ   r‚   r   r!  s       €r-   r.   z%SyncX509WorkloadIdentityAuth.__init__  s    ø€ ô 	‰ÑÐ+<È+ÐÔVØ'ˆÕr/   c               ó¬   — t        | j                  ||¬«      5 }|j                  dd «        |j                  |fd|i|¤Žcd d d «       S # 1 sw Y   y xY w©N)r7   rv   Úauthr  )r®   r}   Ú
setdefaultÚsend©r,   rT   r7   rv   r  Úkwargsr­   s          r-   Úsend_api_requestz-SyncX509WorkloadIdentityAuth.send_api_request  s`   € ô !Ø×Ñ¨ÐWmô
ð 	HàØ×Ñ˜f dÔ+Ø%�=×%Ñ% gÑG°fÐGÀÑG÷		H÷ 	Hò 	Hús   ™'A
Á
Ac                ó¦  — t         j                  |j                  j                  d«      «      }	 	 | j	                  «       t         j                  |«       S # t        t        f$ rQ}| j                  «       }|€t        |t        «      r|j                  d ‚‚ |cY d }~t         j                  |«       S d }~ww xY w# t         j                  |«       w xY w©Nr¡   )r&   rÎ   ro   rp   Ú	get_tokenÚresetr   r(   r?  rs   r+   ©r,   rT   Útimeout_tokenr+   Útokens        r-   Úget_token_for_requestz2SyncX509WorkloadIdentityAuth.get_token_for_request!  s°   € Ü1×5Ñ5°g×6HÑ6H×6LÑ6LÈYÓ6WÓXˆð	;ðØ—~‘~Ó'ô &×+Ñ+¨MÕ:øô 'Ô(DÐEò Ø×BÑBÓD�Ø�=Ü! %Ô)EÔFØ#Ÿk™k¨tÐ3ØØ”ä%×+Ñ+¨MÕ:ûðûô &×+Ñ+¨MÕ:ús/   ±A ÁB6Á%1B1ÂB6ÂB9 Â1B6Â6B9 Â9Cc                óZ  — t        | j                  dz   «      D ]¸  }t        | j                  | j                  ¬«      }	 t        | j                  t        j                  t        «      d¬«      5 }|j                  |d d¬«      }d d d «       t        |«      }|| j                  k\  s|€| j                  |«      c S |€Œ¤t        j                  |«       Œº t!        d«      ‚# 1 sw Y   Œ^xY w# t        «       $ r2}|| j                  k\  rt        ||¬«       t        d |«      }Y d }~Œkd }~ww xY w©	Nr   )r‚   T)r7   rw   F)rP  Úfollow_redirectsrS   z6X.509 token exchange retry loop exhausted unexpectedly)Úranger  râ   rÃ   r}   r®   r`   ra   ru   rR  rû   rC  r  r  rñ   ÚsleepÚAssertionError©r,   rô   Úexchange_requestr­   ró   rù   r+   s          r-   Ú_fetch_token_from_exchangez7SyncX509WorkloadIdentityAuth._fetch_token_from_exchange0  s$  € ä˜T×7Ñ7¸!Ñ;Ó<ò 	"ˆGÜ6°t×7MÑ7MÐ[_×[lÑ[lÔmÐðDÜ(Ø×%Ñ%Ü$*§J¡JÔ/GÓ$HØ#'ôð 	ð #Ø,×1Ñ1Ø(Ø!Ø).ð  2ó  �H÷	ô % X¨wÓ7�Ø˜d×8Ñ8Ò8¸E¸MØ×9Ñ9¸(ÓCÒCàÑ Ü—
‘
˜5Õ!ð/	"ô2 ÐUÓVÐV÷-	ð 	ûô %Ó&ò 4Ø˜d×8Ñ8Ò8Ü*¨5Ð:JÕKÜ$ T¨7Ó3•ûð4ús/   ¾/C+Á-CÂC+ÃC(	Ã$C+Ã+D*Ã8(D%Ä%D*)rÃ   r   r‚   rŽ   r   r³   r0   r1   ©rT   r“   r7   r�   rv   r�   r  r‘   rT  r   r0   r”   ©rT   r“   r0   rt   ©r0   rD  )
r2   r3   r4   Ú__annotations__r.   rU  r]  r	   rf  rG  rH  s   @r-   rJ  rJ  	  s�   ø… ØÓð(Ø$8ð(ØGTð(Øcfð(à	õ(ðHàðHð $ð	Hð
 !+ðHð ðHð ðHð 
óHó;ð òWó ôWr/   rJ  c                  ó~   ‡ — e Zd ZU ded<   	 	 	 	 	 	 	 	 dˆ fd„Z	 	 	 	 	 	 	 	 	 	 	 	 d	d„Zd
d„Zedd„«       Zdd„Z	ˆ xZ
S )ÚAsyncX509WorkloadIdentityAuthr�   r}   c               óh   •— t         ‰| �  ||¬«       || _        t        j                  «       | _        y rL  )r  r.   r}   ÚanyioÚLockÚ_async_lockrM  s       €r-   r.   z&AsyncX509WorkloadIdentityAuth.__init__Q  s.   ø€ ô 	‰ÑÐ+<È+ÐÔVØ'ˆÔÜ Ÿ:™:›<ˆÕr/   c             ‹  ó  K  — t        | j                  ||¬«      4 ƒd {  –—† }|j                  dd «        |j                  |fd|i|¤Žƒ d {  –—† cd d d «      ƒd {  –—†  S 7 ŒD7 Œ7 Œ	# 1 ƒd {  –—†7  sw Y   y xY w­wrO  )r±   r}   rQ  rR  rS  s          r-   rU  z.AsyncX509WorkloadIdentityAuth.send_api_requestX  s�   è ø€ ô (Ø×Ñ¨ÐWmô
÷ 	Nð 	NàØ×Ñ˜f dÔ+Ø+˜×+Ñ+¨GÑM¸FÐMÀfÑM×M÷		N÷ 	Nò 	Nøð Nøð		Nø÷ 	N÷ 	Nñ 	NüsV   ‚A?ŸA$ A?£+A*ÁA&ÁA*ÁA?ÁA(ÁA?Á&A*Á(A?Á*A<Á0A3Á1A<Á8A?c              ƒ  óÂ  K  — t         j                  |j                  j                  d«      «      }	 	 | j	                  «       ƒ d {  –—† t         j                  |«       S 7 Œ# t        t        f$ rQ}| j                  «       }|€t        |t        «      r|j                  d ‚‚ |cY d }~t         j                  |«       S d }~ww xY w# t         j                  |«       w xY w­wrW  )r&   rÎ   ro   rp   Úget_token_asyncrY  r   r(   r?  rs   r+   rZ  s        r-   r]  z3AsyncX509WorkloadIdentityAuth.get_token_for_requestg  s»   è ø€ Ü1×5Ñ5°g×6HÑ6H×6LÑ6LÈYÓ6WÓXˆð	;ðØ!×1Ñ1Ó3×3ô &×+Ñ+¨MÕ:ð 4ùÜ&Ô(DÐEò Ø×BÑBÓD�Ø�=Ü! %Ô)EÔFØ#Ÿk™k¨tÐ3ØØ”ä%×+Ñ+¨MÕ:ûðûô &×+Ñ+¨MÕ:üsX   ‚/C³A" ÁA ÁA" Á
CÁ A" Á"CÁ11B=Â"CÂ#C Â'CÂ=CÃC ÃCÃCc              ƒ  óâ  K  — | j                   4 ƒd {  –—†  | j                  5  | j                  «       sD| j                  «       s4t	        t
        | j                  «      cd d d «       cd d d «      ƒd {  –—†  S d d d «       	 | j                  «       ƒ d {  –—† }| j                  |«       | j                  5  t	        t
        | j                  «      cd d d «       cd d d «      ƒd {  –—†  S 7 ŒØ7 Œz# 1 sw Y   ŒxxY w7 Œf# t        t        f$ r* | j                  «       }|€‚ |cY cd d d «      ƒd {  –—†7   S w xY w7 ŒS# 1 sw Y   nxY wd d d «      ƒd {  –—†7   y # 1 ƒd {  –—†7  sw Y   y xY w­wr*   )rp  r:  r;  Ú_needs_refreshr   rt   r>  Ú _fetch_token_from_exchange_asyncr   r(   r?  Ú_store_token)r,   r+  r\  s      r-   rs  z-AsyncX509WorkloadIdentityAuth.get_token_asyncv  sF  è ø€ à×#Ñ#÷ 	5ñ 	5Ø—‘ñ 9Ø×+Ñ+Ô-°d×6IÑ6IÔ6KÜ¤ T×%7Ñ%7Ó8÷9ð 9÷	5÷ 	5ñ 	5÷9ðØ#'×#HÑ#HÓ#J×J�
ð ×Ñ˜jÔ)Ø—‘ñ 5ÜœC ×!3Ñ!3Ó4÷5ð 5÷	5÷ 	5ò 	5øð 	5ø÷9ð 9úð
 KùÜ&Ô(DÐEò Ø×BÑBÓD�Ø�=ØØ‘÷	5÷ 	5ò 	5ðúð	5ø÷5ð 5ú÷	5÷ 	5÷ 	5÷ 	5ó 	5üsë   ‚E/“C,”E/—E¤:C0Á	EÁ'E/Á3C.Á4E/Á9EÂC>ÂC<ÂC>ÂEÂ7D<Ã	EÃE/Ã&D:Ã'E/Ã.E/Ã0C9	Ã5EÃ<C>Ã>$D7Ä"EÄ#E/Ä/D2Ä0E/Ä6D7Ä7EÄ:E/Ä<E	ÅEÅE/ÅEÅE/ÅE,Å E#Å!E,Å(E/c              ƒ  óÄ  K  — t        | j                  dz   «      D ]Ø  }t        | j                  | j                  ¬«      }	 t        | j                  t        j                  t        «      d¬«      4 ƒd {  –—† }|j                  |d d¬«      ƒ d {  –—† }d d d «      ƒd {  –—†  t        |«      }|| j                  k\  s|€| j                  |«      c S |€Œ¼t        j                  |«      ƒ d {  –—†  ŒÚ t!        d«      ‚7 Œ�7 Œs7 Œe# 1 ƒd {  –—†7  sw Y   ŒuxY w# t        «       $ r2}|| j                  k\  rt        ||¬«       t        d |«      }Y d }~Œ‚d }~ww xY w7 Œn­wr_  )ra  r  râ   rÃ   r}   r±   r`   ra   ru   rR  rû   rC  r  r  rn  rb  rc  rd  s          r-   rv  z>AsyncX509WorkloadIdentityAuth._fetch_token_from_exchange_asyncˆ  sY  è ø€ Ü˜T×7Ñ7¸!Ñ;Ó<ò 	)ˆGÜ6°t×7MÑ7MÐ[_×[lÑ[lÔmÐðDÜ/Ø×%Ñ%Ü$*§J¡JÔ/GÓ$HØ#'ô÷ 	ð 	ð #Ø%2×%7Ñ%7Ø(Ø!Ø).ð &8ó &÷  �H÷	÷ 	ô % X¨wÓ7�Ø˜d×8Ñ8Ò8¸E¸MØ×9Ñ9¸(ÓCÒCàÑ Ü—k‘k %Ó(×(Ñ(ð/	)ô2 ÐUÓVÐVð-	øð
 øð	ø÷ 	÷ 	ñ 	ûô %Ó&ò 4Ø˜d×8Ñ8Ò8Ü*¨5Ð:JÕKÜ$ T¨7Ó3•ûð4úð )ús›   ‚=E Á 3DÁ3DÁ4DÁ7DÂDÂDÂDÂDÂ DÂ$2E ÃE Ã/EÃ0E ÄDÄDÄDÄD	ÄDÄD	ÄDÄEÄ)(EÅE ÅEÅE )rÃ   r   r‚   r�   r   r³   r0   r1   rg  rh  )r0   rt   ri  )r2   r3   r4   rj  r.   rU  r]  r	   rs  rv  rG  rH  s   @r-   rl  rl  N  s“   ø… Ø$Ó$ð(Ø$8ð(ØGYð(Øhkð(à	õ(ðNàðNð $ð	Nð
 !+ðNð ðNð ðNð 
óNó;ð ò5ó ð5÷"Wr/   rl  )r?   zhttpx2.URL | strr7   zhttpx2.URL | Noner0   r1   rF  )
rT   r“   r7   r�   rv   r�   rw   r‘   r0   r1   )
r‚   rŽ   r7   r�   rv   r�   rw   r‘   r0   rŽ   )
r‚   r�   r7   r�   rv   r�   rw   r‘   r0   r�   )r¸   r¦   r0   úfloat | None)r½   ú.WorkloadIdentity | X509WorkloadIdentity | Noner0   zTypeIs[X509WorkloadIdentity])rÁ   úhttpx2.URL | str | NonerÂ   r�   rÃ   rz  r0   r{  )rR   údict[str, str]rÃ   zX509WorkloadIdentity | Noner0   r|  )r½   r   r0   r1   )r½   r   r0   r|  )r½   r   r‚   z"httpx2.Client | httpx2.AsyncClientr0   r“   )ró   zhttpx2.Response | Nonerô   r³   r0   ry  rE  )r0   ztuple[type[Exception], ...])r+   r  rT   r“   r0   r   )PÚ
__future__r   Úrer¶   rñ   Úemail.utilsrí   Útypingr   r   r   Úcontextvarsr   Útyping_extensionsr   r	   rn  r`   Ú_utilsr   Ú_httpx2r   r   r   Ú	_workloadr   r   r   r   Ú
_constantsr   r   r   Ú_exceptionsr   r   r   r   ÚMTLS_API_BASE_URLru   rÖ   r  r  r
  rÏ   Úcompiler(  rÀ   Úvaluesra   r;   rr   r&   rj  r  r(   rA   rU   rg   rx   ÚBaseTransportrz   ÚAsyncBaseTransportr—   r®   r±   r¹   r¾   rÄ   rÈ   rÒ   r×   râ   rû   r  r  r  r  rJ  rl  )r?   s   0r-   ú<module>r�     sÈ  ðÞ "ã 	Û Û Û ß &Ñ &Ý "ß .ã Û å ß SÑ S÷ó ÷ UÑ Tß VÓ Và4Ð ØEÐ ØDÐ ØÐ Ø:Ð Ø#FÐ  ÚkÐ Ø!�r—z‘zÐ"9Ó:Ð àØ
-Ø
-ñÐ ð
 7O×6UÑ6UÓ6WÖX¨s�j�f—j‘j “o×*Ó*ÒXÐ ÙHRØ*°DôIÐ ÐEó ô
 9ô ð
 Z^õ aójó_ð2oØðoð  ðoð 'ð	oð
 ðoð 
óoôD 6×#7Ñ#7ô ô@ F×$=Ñ$=ô ðH *.Ø ñØðð  ðð 'ð	ð
 ðð óðB *.Ø ñØ#ðð  ðð 'ð	ð
 ðð óó:3ðCØ<ðCà!óCð	4Ø%ð	4àð	4ð Fð	4ð ó		4ð_Øð_Ø0Kð_àó_óhó.ðØ"ðð 4ðð ó	ó.#IóL%óP;ó9ôRÐ 5Ð6JÑ Kô RôjBWÐ#<ô BWôJTWÐ$=õ TWùòQ Ys   Â$#F6