ó
    ûÞ jb™  ã                  ó
  • S SK Jr  S SKrS SKrS SKrS SKJrJrJrJ	r	J
r
JrJr  S SKJrJrJr  S SKJrJr  S SKrSSKJrJr  SSKJrJrJr  SS	KJr  SS
KJrJ r   SSK!J"r"  SSK#J$r$  SSK%J&r&J'r'  SSK(J)r)  SSK*J+r+  SSK,J-r-  SSK.J/r/J0r0J1r1J2r2  \	/ \34   r4\	/ S4   r5\S   r6\7\6\
\8   4   r9\Rt                  " S5      r;\" SS9 " S S5      5       r<\" SS9 " S S5      5       r=S.S jr>S/S jr?S0S jr@S1S jrAS2S jrB            S3S  jrCS4S! jrDSS".                     S5S# jjrE                      S6S$ jrF      S7S% jrG      S8S& jrHS9S' jrIS9S( jrJ " S) S*\5      rK " S+ S,\ 5      rL/ S-QrMg):é    )ÚannotationsN)ÚAnyÚLiteralÚMappingÚCallableÚOptionalÚ	AwaitableÚcast)ÚfieldÚreplaceÚ	dataclass)ÚSelfÚoverrideé   )ÚWorkloadIdentityÚX509WorkloadIdentity)Ú	NOT_GIVENÚTimeoutÚNotGiven)Úis_given)ÚOpenAIÚAsyncOpenAI)Únormalize_httpx_url)ÚFinalRequestOptions)Ú	_ProviderÚ_configure_provider)ÚOpenAIError)ÚDEFAULT_MAX_RETRIES)ÚDataResidency)ÚAwsCredentialsProviderÚbedrockÚ_BedrockProviderRuntimeÚ _parse_bedrock_endpoint_hostnamezstr | Awaitable[str])ÚbearerÚtoken_providerÚawsé    T)Úfrozenc                  óJ   • \ rS rSr% S\S'   S\S'   S\S'   \" SS	9rS
\S'   Srg)Ú_LegacyRuntimeSignatureé$   Ú_LegacyAuthModeÚmodeÚstrÚbase_urlú
str | NoneÚregionF©ÚreprÚobjectÚcredential_identity© N)Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__annotations__r   r5   Ú__static_attributes__r6   ó    ÚL/var/www/html/gaurav/venv/lib/python3.13/site-packages/openai/lib/bedrock.pyr*   r*   $   s#   ‡ à
ÓØƒMØÓÙ"'¨UÑ"3Ð˜Ö3r=   r*   c                  óæ   • \ rS rSr% \" SS9rS\S'   \" SSS9rS\S'   S\S	'   S
\S'   S\S'   \" SS9rS\S'   \" SS9r	S\S'   \" SS9r
S\S'   \" SSS9rS\S'   S
\S'   \" SS9rS\S'   S
\S'   Srg)Ú_LegacyBedrockStateé,   Fr2   r0   Úexplicit_api_key)r3   Úcompareú7BedrockTokenProvider | AsyncBedrockTokenProvider | Noner%   Ú
aws_regionÚboolÚregion_was_explicitÚaws_profileÚaws_access_key_idÚaws_secret_access_keyÚaws_session_tokenúAwsCredentialsProvider | NoneÚaws_credentials_providerÚuses_environment_bearerÚenvironment_bearer_tokenÚuses_region_derived_base_urlr6   N)r7   r8   r9   r:   r   rB   r;   r%   rI   rJ   rK   rM   rO   r<   r6   r=   r>   r@   r@   ,   s˜   ‡ á#(¨eÑ#4Ð�jÓ4ÙNSÐY^ÐhmÑNn€NÐKÓnØÓØÓØÓÙ$)¨uÑ$5Ð�zÓ5Ù(-°5Ñ(9Ð˜:Ó9Ù$)¨uÑ$5Ð�zÓ5Ù>CÈÐX]Ñ>^ÐÐ;Ó^Ø!Ó!Ù+0°eÑ+<Ð˜jÓ<Ø"&Ö&r=   r@   c                óx   • U R                   =(       d(    U R                  (       a  U R                  OS=(       d    S$ )NÚ )rB   rN   rO   )Ústates    r>   Ú_state_api_keyrT   <   s*   € Ø×!Ñ!×tÈ×He×He e×&DÒ&DÐkm×tÐrtÐtr=   c                óÆ   •  [         R                  " U 5      R                  nX;   =(       d     [        S UR                  5        5       5      $ ! [        [        4 a     gf = f)NFc              3  ój   #   • U H*  oR                   [        R                  R                  L v •  M,     g 7f©N)ÚkindÚinspectÚ	ParameterÚVAR_KEYWORD)Ú.0Ú	parameters     r>   Ú	<genexpr>Ú/_constructor_accepts_keyword.<locals>.<genexpr>F   s'   é € ð %ÙI\¸I�‰œ'×+Ñ+×7Ñ7Õ7ÒI\ùs   ‚13)rY   Ú	signatureÚ
parametersÚ	TypeErrorÚ
ValueErrorÚanyÚvalues)ÚconstructorÚnamera   s      r>   Ú_constructor_accepts_keywordrh   @   se   € ðÜ×&Ò& {Ó3×>Ñ>ˆ
ð Ñ÷ ¤ñ %ØIS×IZÑIZÔI\ó%ó "ð øô ”zÐ"ó Ùðús   ‚ A ÁA ÁA c                óò   • U =(       dE    [         R                  R                  S5      =(       d    [         R                  R                  S5      nUb%  UR                  5       (       a  UR                  5       $ S $ )NÚ
AWS_REGIONÚAWS_DEFAULT_REGION)ÚosÚenvironÚgetÚstrip)r1   Ú
configureds     r>   Ú_configured_regionrq   K   sT   € Ø×_œ2Ÿ:™:Ÿ>™>¨,Ó7×_¼2¿:¹:¿>¹>ÐJ^Ó;_€JØ!+Ñ!7¸J×<LÑ<L×<NÑ<Nˆ:×ÑÓÐXÐTXÐXr=   c                ó  • [        U [        5      (       a  [        R                  R	                  S5      OU nUb*  [        U[
        5      (       a  UR                  5       (       d  g [        [        U5      R                  5      b  S $ S$ )NÚAWS_BEDROCK_BASE_URLÚmantle)
Ú
isinstancer   rl   rm   rn   r.   ro   r#   r   Úhost)r/   rp   s     r>   Ú_legacy_endpointrw   P   sj   € Ü;EÀhÔPX×;YÑ;Y”—‘—‘Ð 6Ô7Ð_g€JØÑœZ¨
´C×8Ñ8À×AQÑAQ×ASÑASØÜ3Ô4GÈ
Ó4S×4XÑ4XÓYÑeˆ4ÐsÐksÐsr=   c                óà   • [        U [        5      (       a  U R                  5       (       d  S n U b  g[        R                  R                  S5      nUS L =(       d    UR                  5       (       + $ )NFrs   )ru   r.   ro   rl   rm   rn   )r/   Úenvironment_base_urls     r>   Ú_uses_region_derived_base_urlrz   W   sZ   € Ü�(œC× Ñ ¨¯©×)9Ñ)9ØˆØÑØäŸ:™:Ÿ>™>Ð*@ÓAÐØ 4Ð'×KÐ/C×/IÑ/IÓ/KÔ+KÐKr=   c                ó0   • [        S U UUUU4 5       5      $ )Nc              3  ó(   #   • U H	  nUS Lv •  M     g 7frW   r6   )r\   Úvalues     r>   r^   Ú)_has_explicit_aws_auth.<locals>.<genexpr>i   s    é € ð 	ñ
ˆEð 	�TÕò
ùs   ‚)rd   ©rH   rI   rJ   rK   rM   s        r>   Ú_has_explicit_aws_authr€   a   s1   € ô ñ 	ð ØØ!ØØ$ñ
ó	ó 	ð 	r=   c                 óh   • [         R                  R                  S5      n U (       d  [        S5      eU $ )NÚAWS_BEARER_TOKEN_BEDROCKzuCould not find credentials for Bedrock. Set `AWS_BEARER_TOKEN_BEDROCK` or configure the default AWS credential chain.)rl   rm   rn   r   )Útokens    r>   Ú_environment_bearer_tokenr„   u   s1   € Ü�J‰J�N‰NÐ5Ó6€EÞÜð$ó
ð 	
ð €Lr=   )rG   c        
        ó:  • [        [        [        U 5      5      (       a  [        S5      eU S:X  a  [        S5      eU b  Ub  [        S5      e[	        UUUUUS9n
U c  Ub  U
(       a  [        S5      e[
        R                  R                  S5      nU S L =(       a$    US L =(       a    U
(       + =(       a    [        U5      n[        U5      n[        U5      n[        U[        5      (       a  UR                  5       (       d  S nOUc  [        nOUn[        [!        U5      UUU b  U OU(       a  UO[        UUUUUUS9
n[#        U UUU	c"  [        U=(       a    UR                  5       5      OU	UUUUUUU(       a  UOS US9nUUU =(       d    U(       a  UOS=(       d    S4$ )	NúQPass refreshable Bedrock credentials via `bedrock_token_provider`, not `api_key`.rR   z)The `api_key` argument must not be empty.ú•Bedrock authentication is ambiguous. Configure exactly one explicit mode: bearer credential, static AWS credentials, profile, or credential provider.r   r‚   )
Úendpointr1   r/   Úapi_keyr%   Úaccess_key_idÚsecret_access_keyÚsession_tokenÚprofileÚcredential_provider)rB   r%   rE   rG   rH   rI   rJ   rK   rM   rN   rO   rP   )Úcallabler
   r4   r   r€   rl   rm   rn   rF   rq   rz   ru   r.   ro   r   r!   rw   r@   )r‰   r%   rE   rH   rI   rJ   rK   rM   r/   rG   Úexplicit_aws_authÚenvironment_tokenrN   Úresolved_regionrP   Úprovider_base_urlÚproviderrS   s                     r>   Ú_legacy_providerr•      sË  € ô ””V˜WÓ%×&Ñ&ÜÐmÓnÐnØ�"ƒ}ÜÐEÓFÐFØÑ˜~Ñ9ÜðGó
ð 	
ô
 /ØØ+Ø3Ø+Ø!9ñÐð 	Ñ˜~Ñ9Ö?PÜðGó
ð 	
ô
 Ÿ
™
Ÿ™Ð'AÓBÐà�4ˆ×h˜N¨dÐ2×hÐ;LÔ7L×hÔQUÐVgÓQhð ô )¨Ó4€OÜ#@ÀÓ#JÐ ô �(œC× Ñ ¨¯©×)9Ñ)9Ø ÑØ	Ñ	Ü%Ñà$ÐäÜ!Ð"3Ó4ØØ"Ø"Ñ.‘ÖI`Ñ4EÔfoØ%Ø'Ø/Ø'ØØ4ñ€Hô  Ø Ø%Ø"à7JÑ7RŒD�×2 
× 0Ñ 0Ó 2Ô3ÐXkàØ+Ø3Ø+Ø!9Ø 7Þ6MÑ!2ÐSWØ%Añ€Eð  �U˜G×cÖ=TÑ(9ÐZ\×cÐacÐcÐcr=   c       	   
     ó<  • [        U 5        U R                  n
U R                  =(       d    SnU
R                  S L =(       a    U[	        U
5      :g  n[        UUUUUS9nUS L=(       d    US LnU(       a  U(       a  [        S5      eUb  UOU(       a  Uc	  U(       d  UOS nUS L=(       d    US LnUS L=(       d    U	S LnU(       d2  U(       d+  U(       d$  [        U 5        0 U R                  U R                  4$ U(       a  UnUnS nS nS nS nS nOšU(       a  S nS nUnUnUnUnUnO„U
R                  nU
R                  nU
R                  (       a  U
R                  =(       d
    [        5       nS nU
R                  nU
R                  nU
R                  nU
R                   nU
R"                  nUb  UOU R$                  nUS L=(       d    U
R&                  n[)        U	[*        5      =(       a    U	R-                  5       (       + nUc  Ub$  U(       d  U(       d  U	c  U
R.                  (       d  S nUb  Uc  U
R&                  (       d  S nU	b  U	nO U
R.                  (       a  SnOU R0                  nUUUUUUUUUS.	n[3        U R4                  R6                  S5      (       a  UUS'   US S 4$ )NrR   r   r‡   ©	r‰   Úbedrock_token_providerrE   rH   rI   rJ   rK   rM   r/   Ú_region_was_explicit)Ú!_synchronize_legacy_routing_stateÚ_bedrock_stater‰   r%   rT   r€   r   Ú _refresh_legacy_provider_runtimeÚ_bedrock_providerrB   rN   rO   r„   rH   rI   rJ   rK   rM   rE   rG   ru   r.   ro   rP   r/   rh   Ú	__class__Ú__init__)Úclientr‰   r%   rE   rH   rI   rJ   rK   rM   r/   rS   Úcurrent_api_keyÚapi_key_was_mutatedÚaws_overrideÚexplicit_bearer_overrideÚeffective_api_keyÚbearer_overrideÚrouting_overrideÚnext_api_keyÚnext_token_providerÚnext_profileÚnext_access_key_idÚnext_secret_access_keyÚnext_session_tokenÚnext_credentials_providerÚnext_regionÚnext_region_was_explicitÚ restores_region_derived_base_urlÚnext_base_urlÚprovider_kwargss                                 r>   Ú_copy_configurationr´   Ñ   sÎ  € ô & fÔ-Ø×!Ñ!€EØ—n‘n×*¨€OØ×.Ñ.°$Ð6×c¸?ÌnÐ]bÓNcÑ;cÐÜ)ØØ+Ø3Ø+Ø!9ñ€Lð  '¨dÐ2×P°nÈDÐ6PÐÞ¦LÜðGó
ð 	
ð Ññ 	ö  >Ñ#9Æ,ñ àð ð (¨tÐ3×Q°~ÈTÐ7Q€Oà!¨Ð-×E°ÀÐ1EÐÞ¦<Ö8HÜ(¨Ô0Ø�6×+Ñ+¨V×-BÑ-BÐBÐBæØ(ˆØ,ÐØˆØ!ÐØ!%ÐØ!ÐØ$(Ñ!Þ	ØˆØ"ÐØ"ˆØ.ÐØ!6ÐØ.ÐØ$<Ñ!à×-Ñ-ˆØ#×2Ñ2ÐØ×(×(Ø ×9Ñ9×XÔ=VÓ=XˆLØ"&ÐØ×(Ñ(ˆØ"×4Ñ4ÐØ!&×!<Ñ!<ÐØ"×4Ñ4ÐØ$)×$BÑ$BÐ!à *Ñ 6‘*¸F×<MÑ<M€KØ)°Ð5×R¸×9RÑ9RÐÜ'1°(¼CÓ'@×'YÈÏÉÓIYÔEYÐ$à	Ñ	!Ð%8Ñ%DÞ(Þ0ØÑ!¨×)K×)KàˆØÑ :Ñ#5¸e×>W×>WØˆàÑØ19‰Ø	×	+×	+Ø‰àŸ™ˆð  Ø"5Ø!Ø#Ø/Ø!7Ø/Ø$=Ø!ñ
*€Oô $ F×$4Ñ$4×$=Ñ$=Ð?U×VÑVØ2JˆÐ.Ñ/à˜D $Ð&Ð&r=   c                ó  • Uu  p#[        U[        5      (       a5  [        R                  " UR	                  5       [
        S9R                  5       O
[        U5      n[        U[        U R                  5      U R                  US9$ )N)Úkey)r-   r/   r1   r5   )ru   r.   ÚhashlibÚblake2sÚencodeÚ_LEGACY_SIGNATURE_KEYÚdigestÚidr*   r/   rE   )r    Úconfigurationr-   Ú
credentialr5   s        r>   Ú_legacy_runtime_signaturer¿   ?  st   € ð %Ñ€Dô �j¤#×&Ñ&ô 	�Š˜
×)Ñ)Ó+Ô1FÑG×NÑNÔPä�
‹^ð ô
 #ØÜ�V—_‘_Ó%Ø× Ñ Ø/ñ	ð r=   c                óP  • Uu  p#U R                   nUR                  (       a  U R                  OS nUS:X  aP  [        U[        5      (       a  U(       d  [        S5      e[        [        U R                  5      UU R                  US9$ US:X  a3  [        [        U R                  5      UU R                  [        SU5      S9$ [        [        U R                  5      U R                  U R                  UR                  UR                  UR                  UR                  UR                  S9$ )Nr$   z0The Bedrock bearer credential must not be empty.)rˆ   r1   r/   r‰   r%   ÚAsyncBedrockTokenProvider)rˆ   r1   r/   r%   )rˆ   r1   r/   r�   rŠ   r‹   rŒ   rŽ   )r›   rG   rE   ru   r.   r   r!   rw   r/   r
   rH   rI   rJ   rK   rM   )r    r½   r-   r¾   rS   Úbearer_regions         r>   Ú_provider_for_legacy_clientrÃ   Q  s  € ð %Ñ€DØ×!Ñ!€EØ).×)B×)B�F×%Ò%È€MØˆxÓÜ˜*¤c×*Ñ*¶*ÜÐPÓQÐQÜÜ% f§o¡oÓ6Ø Ø—_‘_Øñ	
ð 	
ð ÐÓÜÜ% f§o¡oÓ6Ø Ø—_‘_ÜÐ ;¸ZÓHñ	
ð 	
ô Ü! &§/¡/Ó2Ø× Ñ Ø—‘Ø×!Ñ!Ø×-Ñ-Ø×5Ñ5Ø×-Ñ-Ø!×:Ñ:ñ	ð 	r=   c                óÎ  • U R                   n[        U R                  5      UR                  :g  nU R                  UR                  :g  nU(       a   [        U R                  SS9U l        SU l        U(       ap  [        U R                  U R                  U R                  S LS9U l        U R                  R                  (       a$  U R                  b  SU R                   S3U l        g g g g )NF)rP   )rE   rG   zhttps://bedrock-mantle.z.api.aws/openai/v1)	Ú_bedrock_runtime_signaturer.   r/   rE   r1   r   r›   rz   rP   )r    Úprevious_signatureÚbase_url_changedÚregion_changeds       r>   rš   rš   u  sÔ   € Ø×:Ñ:ÐÜ˜6Ÿ?™?Ó+Ð/A×/JÑ/JÑJÐØ×&Ñ&Ð*<×*CÑ*CÑC€NÞÜ '¨×(=Ñ(=Ð\aÑ bˆÔØ/4ˆÔ,ÞÜ 'Ø×!Ñ!Ø×(Ñ(Ø &× 1Ñ 1¸Ð =ñ!
ˆÔð
 × Ñ ×=×=À&×BSÑBSÑB_Ø 7¸×8IÑ8IÐ7JÐJ\Ð]ˆF�Oð C`Ð=ð r=   c                óà  • [        U 5        U R                  5       n[        X5      nX R                  :X  a  g [	        X5      nX0l        X0l        [        U5      U l        [        U R                  [        5      (       ab  U R                  cU  U R                  R                  b>  U R                  R                  U l        [        U R                  U R                  S9U l        [        X5      U l        g )N©rE   )rš   Ú_legacy_auth_configurationr¿   rÅ   rÃ   r�   Ú	_providerr   Ú_provider_runtimeru   r"   rE   r1   r   r›   )r    r½   r`   r”   s       r>   rœ   rœ   †  sÂ   € Ü% fÔ-Ø×5Ñ5Ó7€MÜ)¨&Ó@€IØ×5Ñ5Ó5Øä*¨6ÓA€HØ'ÔØÔÜ2°8Ó<€FÔä�6×+Ñ+Ô-D×EÑEØ×ÑÑ%Ø×$Ñ$×+Ñ+Ñ7à"×4Ñ4×;Ñ;ˆÔÜ '¨×(=Ñ(=È&×J[ÑJ[Ñ \ˆÔÜ(AÀ&Ó(X€FÕ%r=   c                  óþ  ^ • \ rS rSr% SrS\S'   S\S'   S\S'   S	\S
'   S\S'   S\S'   SSSSSSSSSSSSS\\SSSSSSSSS.                                               SU 4S jjjrSS jr	SS jr
\SS j5       r\SU 4S jj5       r\SSS\SSSSSSSSSSS\S\S\SSSSS0 S.                                                     S S jj5       r\rSrU =r$ )!ÚBedrockOpenAIi›  zECompatibility client for Amazon Bedrock's OpenAI-compatible endpoint.r   r�   r@   r›   úBedrockTokenProvider | NoneÚ_bedrock_token_providerrF   rz   r*   rÅ   r0   rE   NFT©r‰   r˜   rE   rH   rI   rJ   rK   rM   ÚorganizationÚprojectÚwebhook_secretr/   Úwebsocket_base_urlÚtimeoutÚmax_retriesÚdefault_headersÚdefault_queryÚhttp_clientÚ_strict_response_validationÚ_enforce_credentialsrÌ   Ú_stater™   c               óê  >• Ub  Uc  [        UUUUUUUUUUS9
u  nnnO;UR                  =(       d(    UR                  (       a  UR                  OS=(       d    Sn[        TU ]  UU	U
UUUUUUUUSS9  UU l        UU l        [        SUR                  5      U l
        UR                  U l        [        U R                  R                  5      n[!        U R"                  [$        5      (       a  U R"                  R&                  OS nUR(                  =(       d    U=(       d
    Ub  US   OS U l        [+        UU R(                  S9U l        U=(       d    SU l        [/        X R1                  5       5      U l        g )N©
r‰   r%   rE   rH   rI   rJ   rK   rM   r/   rG   rR   F©r”   rÓ   rÔ   rÕ   rÖ   r×   rØ   rÙ   rÚ   rÛ   rÜ   rÝ   rÐ   é   rÊ   ©r•   rB   rN   rO   ÚsuperrŸ   r�   r›   r
   r%   rÑ   rP   rz   r#   r/   rv   ru   rÍ   r"   r1   rE   r   r‰   r¿   rË   rÅ   ©Úselfr‰   r˜   rE   rH   rI   rJ   rK   rM   rÓ   rÔ   rÕ   r/   rÖ   r×   rØ   rÙ   rÚ   rÛ   rÜ   rÝ   rÌ   rÞ   r™   Úpublic_api_keyÚcanonical_endpointÚprovider_regionrž   s                              €r>   rŸ   ÚBedrockOpenAI.__init__¥  s~  ø€ ð6 Ñ ¡Ü0@ØØ5Ø%Ø'Ø"3Ø&;Ø"3Ø)AØ!Ø$8ñ1Ñ-ˆI�v™~ð ×'Ñ'÷ Ø7=×7U×7U�F×3Ò3Ð[]÷àð ô 	‰ÑØØ%ØØ)Ø1ØØ#Ø+Ø'Ø#Ø(CØ!&ð 	ñ 	
ð "+ˆÔØ$ˆÔÜ'+Ð,IÈ6×K`ÑK`Ó'aˆÔ$Ø-3×-PÑ-PˆÔ*Ü=¸d¿m¹m×>PÑ>PÓQÐä-7¸×8NÑ8NÔPg×-hÑ-hˆD×"Ñ"×)Ò)Ðnrð 	ð ×Ñ×w ×wÐN`ÑNlÐ5GÈÒ5JÐrvð 	Œô & f¸¿¹ÑIˆÔØ%×+¨ˆŒÜ*CÀD×JiÑJiÓJkÓ*lˆÕ'r=   c                óÜ   • U R                   b  SU R                   4$ U R                  R                  c,  U R                  R                  (       d  U R                  (       a  SU R                  4$ g©Nr%   r$   )r&   N©rÑ   r›   rB   rN   r‰   ©ræ   s    r>   rË   Ú(BedrockOpenAI._legacy_auth_configurationò  óY   € Ø×'Ñ'Ñ3Ø$ d×&BÑ&BÐCÐCà×Ñ×0Ñ0Ñ<Ø×"Ñ"×:×:Ø�|�|à˜dŸl™lÐ+Ð+Ør=   c                óÐ   • U R                   R                  S L =(       aH    U R                  (       + =(       a0    U R                  S L =(       a    U R                   R                  (       + $ rW   ©r›   rB   r‰   rÑ   rN   rî   s    r>   Ú_uses_aws_authÚBedrockOpenAI._uses_aws_authý  óY   € à×Ñ×0Ñ0°DÐ8÷ @Ø—L‘LÔ ÷@à×,Ñ,°Ð4÷@ð ×'Ñ'×?Ñ?Ô?ð		
r=   c                ó”  • U R                   R                  (       aN  U R                   R                  =(       d    SnU R                  (       a  U R                  U:w  a  U R                  $ U$ U R                  bG  [        [        U R	                  5       5      n[        U[        5      (       a  U(       d  [        S5      eU$ U R                  $ ©NrR   zHExpected `bedrock_token_provider` argument to return a non-empty string.)
r›   rN   rO   r‰   rÑ   r
   r4   ru   r.   rc   ©ræ   Úcapturedrƒ   s      r>   Ú_refresh_api_keyÚBedrockOpenAI._refresh_api_key  s“   € à×Ñ×6×6Ø×*Ñ*×CÑC×IÀrˆHØ#'§<§<°D·L±LÀHÓ4L�4—<‘<ÐZÐRZÐZØ×'Ñ'Ñ3Üœ ×!=Ñ!=Ó!?Ó@ˆEÜ˜e¤S×)Ñ)¶Ü Ð!kÓlÐlØˆLØ�|‰|Ðr=   c                ó8   >• [        U 5        [        TU ]	  U5      $ rW   ©rœ   rä   Ú_prepare_options©ræ   Úoptionsrž   s     €r>   rþ   ÚBedrockOpenAI._prepare_options  s   ø€ ä(¨Ô.Ü‰wÑ'¨Ó0Ð0r=   ©r‰   Úadmin_api_keyÚworkload_identityr”   r˜   rE   rH   rI   rJ   rK   rM   rÓ   rÔ   rÕ   rÖ   r/   Údata_residencyr×   rÛ   rØ   rÙ   Úset_default_headersrÚ   Úset_default_queryrÝ   Ú_extra_kwargsc               ó  • Ub  [        S5      e[        U[        5      (       a  S OUn[        U5      (       a  [        S5      e[        U[        5      (       d  [        S5      eUc  Ub  [        S5      eUb  Ub  [	        S5      eUb  Ub  [	        S5      eU R
                  nUb  0 UEUEnOUb  UnU R                  nUb  0 UEUEnOUb  Un[        U UUUUUU	U
UUS9
u  nnn0 UEUb  UOU R                  Ub  UOU R                  Ub  UOU R                  Ub  UOU R                  [        U[        5      (       a  U R                  OUU=(       d    U R                  [        U5      (       a  UOU R                  UUUc  SOUS	.
EUEn Ub1  [!        U R"                  R$                  S
5      (       a  UU S
'   UU S'   GO®UGbH  U R'                  U R(                  R*                  =(       d    U R(                  R,                  U R(                  R.                  U R(                  R0                  U R(                  R2                  U R(                  R4                  U R(                  R6                  U R(                  R8                  U R(                  R:                  U R(                  R<                  (       a  SOU R>                  S9	  U RA                  5        V!V"s0 sH0  u  n!n"[!        U R"                  R$                  U!5      (       d  M-  U!U"_M2     n n!n"ObU R"                  [B        LaO  U RA                  5        V!V"s0 sH3  u  n!n"U"c'  [!        U R"                  R$                  U!5      (       d  M0  U!U"_M5     n n!n"U R"                  " S0 U D6$ s  sn"n!f s  sn"n!f )Nú4`data_residency` is only supported by OpenAI clientsr†   zHConfigure `provider` on `OpenAI`, not on `BedrockOpenAI.with_options()`.zRBedrockOpenAI only supports Bedrock bearer token or AWS credential authentication.úPThe `default_headers` and `set_default_headers` arguments are mutually exclusiveúLThe `default_query` and `set_default_query` arguments are mutually exclusive©	r‰   r%   rE   rH   rI   rJ   rK   rM   r/   T©
rÓ   rÔ   rÕ   rÖ   r×   rÛ   rØ   rÙ   rÚ   rÝ   rÌ   rÞ   rR   r—   r6   )"r   ru   r   r�   rc   Ú_custom_headersÚ_custom_queryr´   rÓ   rÔ   rÕ   rÖ   r×   Ú_clientr   rØ   rh   rž   rŸ   Úupdater›   rB   rO   r%   rE   rH   rI   rJ   rK   rM   rP   r/   ÚitemsrÏ   ©#ræ   r‰   r  r  r”   r˜   rE   rH   rI   rJ   rK   rM   rÓ   rÔ   rÕ   rÖ   r/   r  r×   rÛ   rØ   rÙ   r  rÚ   r  rÝ   r  ÚheadersÚparamsr³   Úinherited_providerÚinherited_stateÚconstructor_kwargsrg   r}   s#                                      r>   ÚcopyÚBedrockOpenAI.copy  sŠ  € ð> Ñ%ÜÐTÓUÐUÜ% h´×9Ñ9‘4¸xˆÜ�G×ÑÜÐqÓrÐrÜ˜(¤H×-Ñ-ÜÐhÓiÐiØÑ$Ð(9Ñ(EÜÐrÓsÐsØÑ&Ð+>Ñ+JÜÐoÓpÐpØÑ$Ð):Ñ)FÜÐkÓlÐlà×&Ñ&ˆØÑ&Ø4˜Ð4 OÐ4‰GØ Ñ,Ø)ˆGØ×#Ñ#ˆØÑ$Ø0˜Ð0 -Ð0‰FØÑ*Ø&ˆFä?RØØØ1Ø!Ø#Ø/Ø"7Ø/Ø%=Øñ@
Ñ<ˆÐ+¨_ð.
Øð.
à,8Ñ,D™LÈ$×J[ÑJ[Ø")Ñ"5‘w¸4¿<¹<Ø0>Ñ0J™nÐPT×PcÑPcØ8JÑ8VÑ"4Ð\`×\sÑ\sÜ'1°'¼8×'DÑ'D�t—|’|È'Ø&×6¨$¯,©,Ü*2°;×*?Ñ*?™;ÀT×EUÑEUØ&Ø#Ø,@Ñ,H¡DÐNbò.
ð ð.
Ðð Ñ)Ô.JÈ4Ï>É>×KbÑKbÐdo×.pÑ.pØ.@Ð˜{Ñ+Ø+:Ð˜xÓ(ØÒ+Ø×%Ñ%Ø×+Ñ+×<Ñ<×lÀ×@SÑ@S×@lÑ@lØ'+×':Ñ':×'IÑ'IØ×.Ñ.×9Ñ9Ø ×/Ñ/×;Ñ;Ø"&×"5Ñ"5×"GÑ"GØ&*×&9Ñ&9×&OÑ&OØ"&×"5Ñ"5×"GÑ"GØ)-×)<Ñ)<×)UÑ)UØ#×2Ñ2×O×O™ÐUY×UbÑUbð &ñ 
ð $6×#;Ñ#;Ô#=ô"á#=‘K�D˜%Ü/°·±×0GÑ0GÈ×Nó ��e’Ù#=ð ñ "Ðð
 �^‰^¤=Ò0ð $6×#;Ñ#;Ô#=ô"á#=‘K�D˜%ØÑ$Ô(DÀTÇ^Á^×E\ÑE\Ð^b×(có ��e’Ù#=ð ñ "ð
 �~Š~Ñ3Ð 2Ñ3Ð3ùó"ùó"ó   Ë+M:Ë;M:Ì,.N ÍN ©r�   rÅ   r›   rÑ   rz   r‰   rE   )0r‰   r0   r˜   rÐ   rE   r0   rH   r0   rI   r0   rJ   r0   rK   r0   rM   rL   rÓ   r0   rÔ   r0   rÕ   r0   r/   ústr | httpx2.URL | NonerÖ   r  r×   ú!float | Timeout | None | NotGivenrØ   ÚintrÙ   úMapping[str, str] | NonerÚ   úMapping[str, object] | NonerÛ   úhttpx2.Client | NonerÜ   rF   rÝ   rF   rÌ   ú_Provider | NonerÞ   ú_LegacyBedrockState | Noner™   úbool | NoneÚreturnÚNone©r'  Ú_LegacyAuthConfiguration©r'  rF   ©r'  r.   ©r   r   r'  r   )6r‰   z!str | BedrockTokenProvider | Noner  r0   r  ú.WorkloadIdentity | X509WorkloadIdentity | Noner”   ú_Provider | None | NotGivenr˜   rÐ   rE   r0   rH   r0   rI   r0   rJ   r0   rK   r0   rM   rL   rÓ   r0   rÔ   r0   rÕ   r0   rÖ   r  r/   ú"str | httpx2.URL | None | NotGivenr  úDataResidency | Noner×   r  rÛ   r#  rØ   úint | NotGivenrÙ   r!  r  r!  rÚ   r"  r  r"  rÝ   r&  r  úMapping[str, Any]r'  r   ©r7   r8   r9   r:   Ú__doc__r;   r   r   rŸ   rË   ró   r   rú   rþ   r  Úwith_optionsr<   Ú__classcell__©rž   s   @r>   rÏ   rÏ   ›  sl  ø‡ ÙOà Ó Ø'Ó'Ø8Ó8Ø#'Ó'Ø 7Ó7ØÓð
 #Ø>BØ!%Ø"&Ø(,Ø,0Ø(,ØBFØ#'Ø"Ø%)Ø,0Ø6:Ø5>Ø.Ø48Ø59Ø,0Ø,1Ø%)Ø&*Ø-1Ø,0ñ3Kmð ðKmð !<ð	Kmð
 ðKmð  ðKmð &ðKmð  *ðKmð &ðKmð #@ðKmð !ðKmð ðKmð #ðKmð *ðKmð 4ðKmð  3ð!Kmð" ð#Kmð$ 2ð%Kmð& 3ð'Kmð( *ð)Kmð* &*ð+Kmð, #ð-Kmð. $ð/Kmð0 +ð1Kmð2 *ð3Kmð4 
÷5Kmð KmôZ	ô
ð ó	ó ð	ð ö1ó ð1ð ð 6:Ø$(ØLPØ09Ø>BØ!%Ø"&Ø(,Ø,0Ø(,ØBFØ#'Ø"Ø%)Ø6:Ø7@Ø/3Ø5>Ø,0Ø&/Ø48Ø8<Ø59Ø9=Ø,0Ø+-ñ9k4ð 3ðk4ð "ð	k4ð
 Jðk4ð .ðk4ð !<ðk4ð ðk4ð  ðk4ð &ðk4ð  *ðk4ð &ðk4ð #@ðk4ð !ðk4ð ðk4ð  #ð!k4ð" 4ð#k4ð$ 5ð%k4ð& -ð'k4ð( 3ð)k4ð* *ð+k4ð, $ð-k4ð. 2ð/k4ð0 6ð1k4ð2 3ð3k4ð4 7ð5k4ð6 *ð7k4ð8 )ð9k4ð: 
ô;k4ó ðk4ðZ †Lr=   rÏ   c                  óþ  ^ • \ rS rSr% SrS\S'   S\S'   S\S'   S	\S
'   S\S'   S\S'   SSSSSSSSSSSSS\\SSSSSSSSS.                                               SU 4S jjjrSS jr	SS jr
\SS j5       r\SU 4S jj5       r\SSS\SSSSSSSSSSS\S\S\SSSSS0 S.                                                     S S jj5       r\rSrU =r$ )!ÚAsyncBedrockOpenAIi‡  zKAsync compatibility client for Amazon Bedrock's OpenAI-compatible endpoint.r   r�   r@   r›   ú AsyncBedrockTokenProvider | NonerÑ   rF   rz   r*   rÅ   r0   rE   NFTrÒ   c               óê  >• Ub  Uc  [        UUUUUUUUUUS9
u  nnnO;UR                  =(       d(    UR                  (       a  UR                  OS=(       d    Sn[        TU ]  UU	U
UUUUUUUUSS9  UU l        UU l        [        SUR                  5      U l
        UR                  U l        [        U R                  R                  5      n[!        U R"                  [$        5      (       a  U R"                  R&                  OS nUR(                  =(       d    U=(       d
    Ub  US   OS U l        [+        UU R(                  S9U l        U=(       d    SU l        [/        X R1                  5       5      U l        g )Nrà   rR   Frá   r;  râ   rÊ   rã   rå   s                              €r>   rŸ   ÚAsyncBedrockOpenAI.__init__‘  s  ø€ ð6 Ñ ¡Ü0@ØØ5Ø%Ø'Ø"3Ø&;Ø"3Ø)AØ!Ø$8ñ1Ñ-ˆI�v™~ð ×'Ñ'÷ Ø7=×7U×7U�F×3Ò3Ð[]÷àð ô 	‰ÑØØ%ØØ)Ø1ØØ#Ø+Ø'Ø#Ø(CØ!&ð 	ñ 	
ð "+ˆÔØ$ˆÔÜ'+Ð,NÐPV×PeÑPeÓ'fˆÔ$Ø-3×-PÑ-PˆÔ*Ü=¸d¿m¹m×>PÑ>PÓQÐä-7¸×8NÑ8NÔPg×-hÑ-hˆD×"Ñ"×)Ò)Ðnrð 	ð ×Ñ×w ×wÐN`ÑNlÐ5GÈÒ5JÐrvð 	Œô & f¸¿¹ÑIˆÔØ%×+¨ˆŒÜ*CÀD×JiÑJiÓJkÓ*lˆÕ'r=   c                óÜ   • U R                   b  SU R                   4$ U R                  R                  c,  U R                  R                  (       d  U R                  (       a  SU R                  4$ grì   rí   rî   s    r>   rË   Ú-AsyncBedrockOpenAI._legacy_auth_configurationÞ  rð   r=   c                óÐ   • U R                   R                  S L =(       aH    U R                  (       + =(       a0    U R                  S L =(       a    U R                   R                  (       + $ rW   rò   rî   s    r>   ró   Ú!AsyncBedrockOpenAI._uses_aws_authé  rõ   r=   c              ƒ  óê  #   • U R                   R                  (       aN  U R                   R                  =(       d    SnU R                  (       a  U R                  U:w  a  U R                  $ U$ U R                  bl  [        [        U R	                  5       5      n[        R                  " U5      (       a
  UI S h  v•N n[        U[        5      (       a  U(       d  [        S5      eU$ U R                  $  N97fr÷   )r›   rN   rO   r‰   rÑ   r
   r4   rY   Úisawaitableru   r.   rc   rø   s      r>   rú   Ú#AsyncBedrockOpenAI._refresh_api_keyñ  s³   é € à×Ñ×6×6Ø×*Ñ*×CÑC×IÀrˆHØ#'§<§<°D·L±LÀHÓ4L�4—<‘<ÐZÐRZÐZØ×'Ñ'Ñ3Üœ ×!=Ñ!=Ó!?Ó@ˆEÜ×"Ò" 5×)Ñ)Ø#Ÿ�Ü˜e¤S×)Ñ)¶Ü Ð!kÓlÐlØˆLØ�|‰|Ðñ	 $ùs   ‚B5C3Â7C1Â8:C3c              ƒ  óT   >#   • [        U 5        [        TU ]	  U5      I S h  v•N $  N7frW   rý   rÿ   s     €r>   rþ   Ú#AsyncBedrockOpenAI._prepare_optionsÿ  s$   øé € ä(¨Ô.Ü‘WÑ-¨gÓ6×6Ð6Ñ6ùs   ƒ(¡&¢(r  c               ó  • Ub  [        S5      e[        U[        5      (       a  S OUn[        U5      (       a  [        S5      e[        U[        5      (       d  [        S5      eUc  Ub  [        S5      eUb  Ub  [	        S5      eUb  Ub  [	        S5      eU R
                  nUb  0 UEUEnOUb  UnU R                  nUb  0 UEUEnOUb  Un[        U UUUUUU	U
UUS9
u  nnn0 UEUb  UOU R                  Ub  UOU R                  Ub  UOU R                  Ub  UOU R                  [        U[        5      (       a  U R                  OUU=(       d    U R                  [        U5      (       a  UOU R                  UUUc  SOUS	.
EUEn Ub1  [!        U R"                  R$                  S
5      (       a  UU S
'   UU S'   GO®UGbH  U R'                  U R(                  R*                  =(       d    U R(                  R,                  U R(                  R.                  U R(                  R0                  U R(                  R2                  U R(                  R4                  U R(                  R6                  U R(                  R8                  U R(                  R:                  U R(                  R<                  (       a  SOU R>                  S9	  U RA                  5        V!V"s0 sH0  u  n!n"[!        U R"                  R$                  U!5      (       d  M-  U!U"_M2     n n!n"ObU R"                  [B        LaO  U RA                  5        V!V"s0 sH3  u  n!n"U"c'  [!        U R"                  R$                  U!5      (       d  M0  U!U"_M5     n n!n"U R"                  " S0 U D6$ s  sn"n!f s  sn"n!f )Nr
  r†   zRConfigure `provider` on `AsyncOpenAI`, not on `AsyncBedrockOpenAI.with_options()`.zWAsyncBedrockOpenAI only supports Bedrock bearer token or AWS credential authentication.r  r  r  Tr  rÌ   rÞ   rR   r—   r6   )"r   ru   r   r�   rc   r  r  r´   rÓ   rÔ   rÕ   rÖ   r×   r  r   rØ   rh   rž   rŸ   r  r›   rB   rO   r%   rE   rH   rI   rJ   rK   rM   rP   r/   r  r:  r  s#                                      r>   r  ÚAsyncBedrockOpenAI.copy  s‹  € ð> Ñ%ÜÐTÓUÐUÜ% h´×9Ñ9‘4¸xˆÜ�G×ÑÜÐqÓrÐrÜ˜(¤H×-Ñ-ÜÐrÓsÐsØÑ$Ð(9Ñ(EÜÐwÓxÐxØÑ&Ð+>Ñ+JÜÐoÓpÐpØÑ$Ð):Ñ)FÜÐkÓlÐlà×&Ñ&ˆØÑ&Ø4˜Ð4 OÐ4‰GØ Ñ,Ø)ˆGØ×#Ñ#ˆØÑ$Ø0˜Ð0 -Ð0‰FØÑ*Ø&ˆFä?RØØØ1Ø!Ø#Ø/Ø"7Ø/Ø%=Øñ@
Ñ<ˆÐ+¨_ð.
Øð.
à,8Ñ,D™LÈ$×J[ÑJ[Ø")Ñ"5‘w¸4¿<¹<Ø0>Ñ0J™nÐPT×PcÑPcØ8JÑ8VÑ"4Ð\`×\sÑ\sÜ'1°'¼8×'DÑ'D�t—|’|È'Ø&×6¨$¯,©,Ü*2°;×*?Ñ*?™;ÀT×EUÑEUØ&Ø#Ø,@Ñ,H¡DÐNbò.
ð ð.
Ðð Ñ)Ô.JÈ4Ï>É>×KbÑKbÐdo×.pÑ.pØ.@Ð˜{Ñ+Ø+:Ð˜xÓ(ØÒ+Ø×%Ñ%Ø×+Ñ+×<Ñ<×lÀ×@SÑ@S×@lÑ@lØ'+×':Ñ':×'IÑ'IØ×.Ñ.×9Ñ9Ø ×/Ñ/×;Ñ;Ø"&×"5Ñ"5×"GÑ"GØ&*×&9Ñ&9×&OÑ&OØ"&×"5Ñ"5×"GÑ"GØ)-×)<Ñ)<×)UÑ)UØ#×2Ñ2×O×O™ÐUY×UbÑUbð &ñ 
ð $6×#;Ñ#;Ô#=ô"á#=‘K�D˜%Ü/°·±×0GÑ0GÈ×Nó ��e’Ù#=ð ñ "Ðð
 �^‰^Ô#5Ò5ð $6×#;Ñ#;Ô#=ô"á#=‘K�D˜%ØÑ$Ô(DÀTÇ^Á^×E\ÑE\Ð^b×(có ��e’Ù#=ð ñ "ð
 �~Š~Ñ3Ð 2Ñ3Ð3ùó"ùó"r  r  )0r‰   r0   r˜   r;  rE   r0   rH   r0   rI   r0   rJ   r0   rK   r0   rM   rL   rÓ   r0   rÔ   r0   rÕ   r0   r/   r  rÖ   r  r×   r  rØ   r   rÙ   r!  rÚ   r"  rÛ   úhttpx2.AsyncClient | NonerÜ   rF   rÝ   rF   rÌ   r$  rÞ   r%  r™   r&  r'  r(  r)  r+  r,  r-  )6r‰   z&str | AsyncBedrockTokenProvider | Noner  r0   r  r.  r”   r/  r˜   r;  rE   r0   rH   r0   rI   r0   rJ   r0   rK   r0   rM   rL   rÓ   r0   rÔ   r0   rÕ   r0   rÖ   r  r/   r0  r  r1  r×   r  rÛ   rI  rØ   r2  rÙ   r!  r  r!  rÚ   r"  r  r"  rÝ   r&  r  r3  r'  r   r4  r8  s   @r>   r:  r:  ‡  sn  ø‡ ÙUà Ó Ø'Ó'Ø=Ó=Ø#'Ó'Ø 7Ó7ØÓð
 #ØCGØ!%Ø"&Ø(,Ø,0Ø(,ØBFØ#'Ø"Ø%)Ø,0Ø6:Ø5>Ø.Ø48Ø59Ø15Ø,1Ø%)Ø&*Ø-1Ø,0ñ3Kmð ðKmð !Að	Kmð
 ðKmð  ðKmð &ðKmð  *ðKmð &ðKmð #@ðKmð !ðKmð ðKmð #ðKmð *ðKmð 4ðKmð  3ð!Kmð" ð#Kmð$ 2ð%Kmð& 3ð'Kmð( /ð)Kmð* &*ð+Kmð, #ð-Kmð. $ð/Kmð0 +ð1Kmð2 *ð3Kmð4 
÷5Kmð KmôZ	ô
ð óó ðð ö7ó ð7ð ð ;?Ø$(ØLPØ09ØCGØ!%Ø"&Ø(,Ø,0Ø(,ØBFØ#'Ø"Ø%)Ø6:Ø7@Ø/3Ø5>Ø15Ø&/Ø48Ø8<Ø59Ø9=Ø,0Ø+-ñ9k4ð 8ðk4ð "ð	k4ð
 Jðk4ð .ðk4ð !Aðk4ð ðk4ð  ðk4ð &ðk4ð  *ðk4ð &ðk4ð #@ðk4ð !ðk4ð ðk4ð  #ð!k4ð" 4ð#k4ð$ 5ð%k4ð& -ð'k4ð( 3ð)k4ð* /ð+k4ð, $ð-k4ð. 2ð/k4ð0 6ð1k4ð2 3ð3k4ð4 7ð5k4ð6 *ð7k4ð8 )ð9k4ð: 
ô;k4ó ðk4ðZ †Lr=   r:  )rÏ   r:  ÚBedrockTokenProviderrÁ   r    )rS   r@   r'  r.   )rf   zCallable[..., object]rg   r.   r'  rF   )r1   r0   r'  r0   )r/   r0  r'  zLiteral['mantle'] | None)r/   r  r'  rF   )rH   r0   rI   r0   rJ   r0   rK   r0   rM   rL   r'  rF   r,  )r‰   r0   r%   rD   rE   r0   rH   r0   rI   r0   rJ   r0   rK   r0   rM   rL   r/   r  rG   r&  r'  z*tuple[_Provider, _LegacyBedrockState, str])r    ú"BedrockOpenAI | AsyncBedrockOpenAIr‰   r0   r%   rD   rE   r0   rH   r0   rI   r0   rJ   r0   rK   r0   rM   rL   r/   r  r'  zFtuple[dict[str, object], _Provider | None, _LegacyBedrockState | None])r    rK  r½   r*  r'  r*   )r    rK  r½   r*  r'  r   )r    rK  r'  r(  )NÚ
__future__r   rl   r·   rY   Útypingr   r   r   r   r   r	   r
   Údataclassesr   r   r   Útyping_extensionsr   r   Úhttpx2Úauthr   r   Ú_typesr   r   r   Ú_utilsr   r  r   r   Ú_httpx2r   Ú_modelsr   rÌ   r   r   Ú_exceptionsr   Ú_base_clientr   Ú_data_residencyr   Úproviders.bedrockr    r!   r"   r#   r.   rJ  rÁ   r,   Útupler4   r*  Úurandomrº   r*   r@   rT   rh   rq   rw   rz   r€   r„   r•   r´   r¿   rÃ   rš   rœ   rÏ   r:  Ú__all__r6   r=   r>   Ú<module>r]     s¾  ðÝ "ã 	Û Û ß M× MÑ Mß 1Ñ 1ß ,ã ç 9ß 1Ñ 1Ý ß )Ý )Ý )ß 6Ý %Ý .Ý +÷ó ð    C Ñ(Ð Ø$ RÐ)?Ð%?Ñ@Ð ØÐ;Ñ<€Ø  °(¸6Ñ2BÐ!BÑCÐ ØŸ
š
 2›Ð ñ �$Ñ÷4ð 4ó ð4ñ �$Ñ÷'ð 'ó ð'ôuôôYô
tôLðàðð "ðð &ð	ð
 "ðð <ðð 
ôô(ð* (,ñOdàðOdð LðOdð ð	Odð
 ðOdð "ðOdð &ðOdð "ðOdð <ðOdð &ðOdð %ðOdð 0õOdðdk'Ø.ðk'ð ðk'ð Lð	k'ð
 ðk'ð ðk'ð "ðk'ð &ðk'ð "ðk'ð <ðk'ð &ðk'ð Lôk'ð\Ø.ðà+ðð ôð$!Ø.ð!à+ð!ð ô!ôH^ô"Yô*i�Fô iôXk˜ô kò\�r=   