+
    šÜiô-  ã                   óP  € ^ RI t ^ RIt^ RIt^ RIt^ RIHtHt ^ RIHtHt ^ RI	t
^ RIHt ^ RIHt ^ RIHt ^ RIHt ^ RIHtHtHt ^ R	IHtHtHtHtHt ]P:                  ! ]4      tR
 t R t!R t"R t# ! R R]4      t$ ! R R4      t% ! R R4      t& ! R R4      t' ! R R4      t(R# )é    N)ÚdatetimeÚ	timedelta)Ú
NamedTupleÚOptional)Útzutc)ÚUNSIGNED)Útotal_seconds)ÚConfig)ÚClientErrorÚInvalidConfigErrorÚTokenRetrievalError)ÚCachedPropertyÚJSONFileCacheÚSSOTokenLoaderÚcreate_nested_clientÚget_token_from_environmentc                  ó>   € \         P                  ! \        4       4      # ©N)r   Únowr   © ó    Ú1/usr/lib/python3/dist-packages/botocore/tokens.pyÚ_utc_nowr   *   s   € Ü�<Š<œ›Ó Ð r   c                 óF   € \        V 4      \        V 4      .p\        VR 7      # ))Ú	providers)ÚScopedEnvTokenProviderÚSSOTokenProviderÚTokenProviderChain)Úsessionr   s   & r   Úcreate_token_resolverr    .   s&   € ä˜wÓ'Ü˜Ó!ð€Iô ¨	Ô2Ð2r   c                 óT   € \        V \        4      '       d   V P                  R 4      # V # )z%Y-%m-%dT%H:%M:%SZ)Ú
isinstancer   Ústrftime©Úobjs   &r   Ú_serialize_utc_timestampr&   6   s$   € Ü�#”x× Ò Ø�|‰|Ð0Ó1Ð1Ø€Jr   c                 ó:   € \         P                  ! V \        R 7      # ))Údefault)ÚjsonÚdumpsr&   r$   s   &r   Ú_sso_json_dumpsr+   <   s   € Ü�:Š:�cÔ#;Ô<Ð<r   c                   ó0   a € ] tR t^@t o RtV 3R ltRtV tR# )ÚFrozenAuthTokenNc                óB   <€ V ^8„  d   Qh/ S[ ;R&   S[S[,          ;R&   # )é   ÚtokenÚ
expiration)Ústrr   r   )ÚformatÚ__classdict__s   "€r   Ú__annotate__ÚFrozenAuthToken.__annotate__@   s   ø‡ ‚ Ù�Jñ á™Õ"Ñ)ò r   r   )Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__r1   Ú__annotate_func__Ú__static_attributes__Ú__classdictcell__©r4   s   @r   r-   r-   @   s   ø‡ € à%)€J÷ ƒ r   r-   c                   óV   a € ] tR t^Et o R	tR
t^<t]3R ltR t	R t
R tR tR tRtV tR# )ÚDeferredRefreshableTokenc                óz   € W0n         W n        Wn        \        P                  ! 4       V n        R V n        R V n        R # r   )Ú_time_fetcherÚ_refresh_usingÚmethodÚ	threadingÚLockÚ_refresh_lockÚ_frozen_tokenÚ_next_refresh)ÚselfrD   Úrefresh_usingÚtime_fetchers   &&&&r   Ú__init__Ú!DeferredRefreshableToken.__init__N   s4   € Ø)ÔØ+ÔØŒô 'Ÿ^š^Ó-ˆÔØ!ˆÔØ!ˆÖr   c                ó:   € V P                  4        V P                  # r   )Ú_refreshrH   ©rJ   s   &r   Úget_frozen_tokenÚ)DeferredRefreshableToken.get_frozen_tokenX   s   € Ø�‰ŒØ×!Ñ!Ð!r   c                ó  € V P                  4       pV'       g   R # VR8H  pV P                  P                  V4      '       d.    V P                  4        V P                  P	                  4        R # R #   T P                  P	                  4        i ; i)NÚ	mandatory)Ú_should_refreshrG   ÚacquireÚ_protected_refreshÚrelease)rJ   Úrefresh_typeÚblock_for_refreshs   &  r   rP   Ú!DeferredRefreshableToken._refresh\   sy   € à×+Ñ+Ó-ˆßÙð )¨KÑ7ÐØ×Ñ×%Ñ%Ð&7×8Ò8ð-Ø×'Ñ'Ô)à×"Ñ"×*Ñ*Ö,ñ	 9øð ×"Ñ"×*Ñ*Õ,ús   ÁA0 Á0Bc                ó†  € V P                  4       pV'       g   R #  V P                  4       pV\        V P                  R7      ,           V n        V P                  4       V n        V P                  4       '       d   \        V P                  RR7      hR #   \         d$    \        P                  RTRR7       TR8X  d   h  L\i ; i)N©Úsecondsz5Refreshing token failed during the %s refresh period.T©Úexc_inforU   z$Token has expired and refresh failed)ÚproviderÚ	error_msg)rV   rB   r   Ú_attempt_timeoutrI   rC   rH   Ú	ExceptionÚloggerÚwarningÚ_is_expiredr   rD   )rJ   rZ   r   s   &  r   rX   Ú+DeferredRefreshableToken._protected_refreshj   s¾   € ð ×+Ñ+Ó-ˆßÙð	Ø×$Ñ$Ó&ˆCØ!$¤y¸×9NÑ9NÔ'OÕ!OˆDÔØ!%×!4Ñ!4Ó!6ˆDÔð ×Ñ×Òä%ØŸ™Ø@ôð ñ øô ô 	Ü�N‰NØGØØð ô ð
 ˜{Ô*àñ +ð	ús   œAB Â+C Â?C c                ó–   € V P                   f   R# V P                   P                  p\        WP                  4       ,
          4      pV^ 8*  # )NF)rH   r1   r	   rB   )rJ   r1   Ú	remainings   &  r   rh   Ú$DeferredRefreshableToken._is_expired†   sB   € Ø×ÑÒ%Ùà×'Ñ'×2Ñ2ˆ
Ü! *×/AÑ/AÓ/CÕ"CÓDˆ	Ø˜A‰~Ðr   c                ó  € V P                   f   R# V P                   P                  pVf   R # V P                  4       pW P                  8  d   R # \	        W,
          4      pW0P
                  8  d   R# W0P                  8  d   R# R # )NrU   Úadvisory)rH   r1   rB   rI   r	   Ú_mandatory_refresh_timeoutÚ_advisory_refresh_timeout)rJ   r1   r   rk   s   &   r   rV   Ú(DeferredRefreshableToken._should_refreshŽ   sv   € Ø×ÑÒ%áà×'Ñ'×2Ñ2ˆ
ØÒáà× Ñ Ó"ˆØ×#Ñ#Ô#Ùä! *Õ"2Ó3ˆ	à×6Ñ6Ô6ÙØ×7Ñ7Ô7Ùár   )rH   rI   rG   rC   rB   rD   Né„  iX  )r7   r8   r9   r:   rp   ro   rd   r   rM   rR   rP   rX   rh   rV   r<   r=   r>   s   @r   r@   r@   E   s?   ø‡ € ð !(Ðà!(ÐàÐà;Cô "ò"ò-òò8÷ð r   r@   c                   ó0   a € ] tR t^¦t o RR ltR tRtV tR# )r   Nc                ó   € Vf   . pWn         R # r   ©Ú
_providers)rJ   r   s   &&r   rM   ÚTokenProviderChain.__init__§   s   € ØÒØˆIØ#Žr   c                ó`   € V P                    F  pVP                  ! R/ VB pVf   K  Vu # 	  R # )Nr   )rv   Ú
load_token)rJ   Úkwargsrb   r0   s   &,  r   ry   ÚTokenProviderChain.load_token¬   s3   € ØŸœˆHØ×'Ò'Ñ1¨&Ñ1ˆEØÔ Ø’ñ (ñ r   ru   r   )r7   r8   r9   r:   rM   ry   r<   r=   r>   s   @r   r   r   ¦   s   ø‡ € ô$÷
ð r   r   c                   óô   a € ] tR t^´t o RtRt]P                  P                  ]P                  P                  RRRR4      4      t
RR.tRt]tR]R3R	 ltR
 t]R 4       t]R 4       tR tR tR tR tRtV tR# )r   ÚssoÚ~z.awsÚcacheÚsso_start_urlÚ
sso_regionÚrefresh_tokenNc                ó  € Wn         Vf"   V P                  V P                  \        R7      pW0n        W n        \        V P
                  R7      V n        T;'       g&    V P                   P                  R4      ;'       g    RV n	        R # )N)Ú
dumps_func)r   Úprofiler(   )
Ú_sessionÚDEFAULT_CACHE_CLSÚ_SSO_TOKEN_CACHE_DIRr+   Ú_nowÚ_cacher   Ú_token_loaderÚget_config_variableÚ_profile_name)rJ   r   r   rL   Úprofile_names   &&&&&r   rM   ÚSSOTokenProvider.__init__Á   s€   € ð  ŒØŠ=Ø×*Ñ*Ø×)Ñ)Ü*ð +ó ˆEð !Œ	ØŒÜ+°$·+±+Ô>ˆÔà÷ ð Ø�}‰}×0Ñ0°Ó;÷ð àð 	Ör   c                ó  € V P                   P                  pVP                  R / 4      pVP                  R/ 4      pVP                  V P                  / 4      pRV9  d   R# VR,          pVP                  VR4      pV'       g    RV P                   RV R2p\	        VR7      h. pV P
                   F  p	W–9  g   K  VP                  V	4       K  	  V'       d    RV P                   RV R	2p\	        VR7      hR
VRVR,          RVR,          /# )ÚprofilesÚsso_sessionsÚsso_sessionNzThe profile "z7" is configured to use the SSO token provider but the "z+" sso_session configuration does not exist.)rc   zZ" is configured to use the SSO token provider but is missing the following configuration: Ú.Úsession_namer�   r€   )r†   Úfull_configÚgetr�   r   Ú_SSO_CONFIG_VARSÚappend)
rJ   Úloaded_configr‘   r’   Úprofile_configÚsso_session_nameÚ
sso_configrc   Úmissing_configsÚvars
   &         r   Ú_load_sso_configÚ!SSOTokenProvider._load_sso_configÓ   s3  € ØŸ™×1Ñ1ˆØ ×$Ñ$ Z°Ó4ˆØ$×(Ñ(¨¸Ó<ˆØ!Ÿ™ d×&8Ñ&8¸"Ó=ˆà Ô.Ùà)¨-Õ8ÐØ!×%Ñ%Ð&6¸Ó=ˆ
çà × 2Ñ 2Ð3ð 4+Ø+;Ð*<ð =0ð1ð ô
 %¨yÔ9Ð9àˆØ×(Ô(ˆCØÖ$Ø×&Ñ& sÖ+ñ )÷ à × 2Ñ 2Ð3ð 4Nà"Ð# 1ð&ð ô
 %¨yÔ9Ð9ð Ð,Ø˜* \Õ2Ø˜Z¨Õ8ð
ð 	
r   c                ó"   € V P                  4       # r   )r    rQ   s   &r   Ú_sso_configÚSSOTokenProvider._sso_configú   s   € à×$Ñ$Ó&Ð&r   c                óv   € \        V P                  R ,          \        R7      p\        V P                  RVR7      # )r�   )Úregion_nameÚsignature_versionzsso-oidc)Úconfig)r
   r£   r   r   r†   )rJ   r¨   s   & r   Ú_clientÚSSOTokenProvider._clientþ   s2   € äØ×(Ñ(¨Õ6Ü&ô
ˆô $ D§M¡M°:ÀfÔMÐMr   c                ó¾  € V P                   P                  V P                  VR ,          VR,          VR,          R7      p\        VR,          R7      pRV P                  R,          RV P                  R	,          R
VR
,          RV P                  4       V,           R VR ,          RVR,          RVR,          /pRV9   d   VR,          VR&   \        P                  R4       V# )ÚclientIdÚclientSecretÚrefreshToken)Ú	grantTyper¬   r­   r®   Ú	expiresInr^   ÚstartUrlr€   Úregionr�   ÚaccessTokenÚ	expiresAtÚregistrationExpiresAtzSSO Token refresh succeeded)r©   Úcreate_tokenÚ_GRANT_TYPEr   r£   r‰   rf   Úinfo)rJ   r0   ÚresponseÚ
expires_inÚ	new_tokens   &&   r   Ú_attempt_create_tokenÚ&SSOTokenProvider._attempt_create_token  sÙ   € Ø—<‘<×,Ñ,Ø×&Ñ&Ø˜:Õ&Ø˜~Õ.Ø˜~Õ.ð	 -ó 
ˆô  x°Õ'<Ô=ˆ
à˜×(Ñ(¨Õ9Ø�d×&Ñ& |Õ4Ø˜8 MÕ2Ø˜Ÿ™› zÕ1à˜˜jÕ)Ø˜E .Õ1Ø# UÐ+BÕ%Cð	
ˆ	ð ˜XÔ%Ø(0°Õ(@ˆI�nÑ%Ü�‰Ð1Ô2ØÐr   c                óÄ  € RpV Uu. uF  q3V9  g   K  VNK  	  ppV'       d   RV 2p\         P                  V4       R# \        P                  P	                  VR,          4      p\        W`P                  4       ,
          4      ^ 8:  d   \         P                  RV4       R#  V P                  V4      # u upi   \         d    \         P                  RRR7        R# i ; i)	r®   rµ   z+Unable to refresh SSO token: missing keys: Nz$SSO token registration expired at %sz SSO token refresh attempt failedTr`   )r®   r¬   r­   rµ   )
rf   r¸   ÚdateutilÚparserÚparser	   r‰   r¼   r   rg   )rJ   r0   ÚkeysÚkÚmissing_keysÚmsgÚexpirys   &&     r   Ú_refresh_access_tokenÚ&SSOTokenProvider._refresh_access_token  sÅ   € ð
ˆñ $(Ó:¡4˜a°E©>Ÿ˜¡4ˆÐ:ßØ?À¸~ÐNˆCÜ�K‰K˜ÔÙä—‘×&Ñ& uÐ-DÕ'EÓFˆÜ˜§)¡)£+Õ-Ó.°!Ô3Ü�K‰KÐ>ÀÔGÙð	Ø×-Ñ-¨eÓ4Ð4ùò ;øô ô 	Ü�N‰NÐ=ÈˆNÔMÚð	ús   ‡B4”B4Â#B9 Â9"CÃCc                ó  € V P                   R ,          pV P                   R,          p\        P                  RV4       V P                  WR7      p\        P
                  P                  VR,          4      p\        P                  RV4       \        W@P                  4       ,
          4      pWPP                  8  d>   V P                  V4      pVe)   TpVR,          pV P                  P                  WVR7       \        VR,          VR7      # )r€   r•   zLoading cached SSO token for %s)r•   r´   zCached SSO token expires at %sr³   )r1   )r£   rf   r¸   r‹   r¿   rÀ   rÁ   Údebugr	   r‰   Ú_REFRESH_WINDOWrÇ   Ú
save_tokenr-   )rJ   Ú	start_urlr•   Ú
token_dictr1   rk   Únew_token_dicts   &      r   Ú
_refresherÚSSOTokenProvider._refresher5  sç   € Ø×$Ñ$ _Õ5ˆ	Ø×'Ñ'¨Õ7ˆÜ�‰Ð5°|ÔDØ×'Ñ'¨	Ð'ÓMˆ
Ü—_‘_×*Ñ*¨:°kÕ+BÓCˆ
Ü�‰Ð5°zÔBä! *¯y©y«{Õ":Ó;ˆ	Ø×+Ñ+Ô+Ø!×7Ñ7¸
ÓCˆNØÒ)Ø+�
Ø'¨Õ4�
Ø×"Ñ"×-Ñ-Ø¸ð .ô ô Ø�}Õ%°*ô
ð 	
r   c                óz   € V P                   f   R # \        V P                  V P                  V P                  R7      # )N)rL   )r£   r@   ÚMETHODrÐ   r‰   )rJ   rz   s   &,r   ry   ÚSSOTokenProvider.load_tokenK  s1   € Ø×ÑÒ#Ùä'Ø�K‰K˜Ÿ™°t·y±yô
ð 	
r   )rŠ   r‰   r�   r†   r‹   rr   )r7   r8   r9   r:   rÓ   rË   ÚosÚpathÚ
expanduserÚjoinrˆ   r˜   r·   r   r‡   r   rM   r    r   r£   r©   r¼   rÇ   rÐ   ry   r<   r=   r>   s   @r   r   r   ´   s®   ø‡ € Ø€FØ€OØŸ7™7×-Ñ-Ø
�‰�‰�S˜& %¨Ó1óÐð 	ØðÐð "€KØ%Ðð "°Àtô
ò$%
ðN ñ'ó ð'ð ñNó ðNòò.ò0
÷,
ð 
r   r   c                   ó8   a € ] tR tRt o RtRtRR ltR tRtV t	R# )	r   iT  zb
Token provider that loads tokens from environment variables scoped to
a specific `signing_name`.
ÚenvNc                óF   € Wn         Vf   \        P                  pW n        R # r   )r†   rÕ   Úenviron)rJ   r   rÜ   s   &&&r   rM   ÚScopedEnvTokenProvider.__init__\  s   € ØŒØŠ?Ü—j‘jˆGØŽr   c                ó¦   € VP                  R 4      pVf   R# \        W P                  4      pVe!   \        P	                  R4       \        V4      # R# )Úsigning_nameNz%Found token in environment variables.)r—   r   rÜ   rf   r¸   r-   )rJ   rz   rß   r0   s   &,  r   ry   Ú!ScopedEnvTokenProvider.load_tokenb  sJ   € Ø—z‘z .Ó1ˆØÒÙä*¨<¿¹ÓFˆàÒÜ�K‰KÐ?Ô@Ü" 5Ó)Ð)ñ r   )r†   rÜ   r   )
r7   r8   r9   r:   Ú__doc__rÓ   rM   ry   r<   r=   r>   s   @r   r   r   T  s    ø‡ € ñð
 €Fô÷	*ð 	*r   r   ))r)   ÚloggingrÕ   rE   r   r   Útypingr   r   Údateutil.parserr¿   Údateutil.tzr   Úbotocorer   Úbotocore.compatr	   Úbotocore.configr
   Úbotocore.exceptionsr   r   r   Úbotocore.utilsr   r   r   r   r   Ú	getLoggerr7   rf   r   r    r&   r+   r-   r@   r   r   r   r   r   r   Ú<module>rì      sœ   ðó Û Û 	Û ß (ß 'ã Ý å Ý )Ý "÷ñ ÷
õ ð 
×	Ò	˜8Ó	$€ò!ò3òò=ô*�jô *÷
^ñ ^÷Bñ ÷]
ñ ]
÷@*ó *r   