
    E0jyn                     x   d dl Z d dlZd dlZd dlZd dlmZmZ d dlZ ej                    dk    r	d dl	Z	dZ
dZndZ
	 d dlZdZn# e$ r dZY nw xY w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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e)defdZ*de)defdZ+ G d de!          Z,dS )    N)AnyDictWindowsTF   )StaticAKCredentialsProvider)EcsRamRoleCredentialsProvider)RamRoleArnCredentialsProvider)OIDCRoleArnCredentialsProvider)StaticSTSCredentialsProvider)CloudSSOCredentialsProvider)OAuthCredentialsProviderOAuthTokenUpdateCallbackOAuthTokenUpdateCallbackAsync)Credentials)ICredentialsProvider)auth_constant)	auth_util)CredentialException	file_pathreturnc                    K   t          j        | d          4 d {V }|                                 d {V }d d d           d {V  n# 1 d {V swxY w Y   t          j        |          S Nr)mode)aiofilesopenreadjsonloadsr   fcontents      u/home/rurouni/.hermes/hermes-agent/venv/lib/python3.11/site-packages/alibabacloud_credentials/provider/cli_profile.py_load_config_asyncr$   (   s      }YS111 ! ! ! ! ! ! !Q......! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! !:gs   A
AAc                     t          | d          5 }|                                }d d d            n# 1 swxY w Y   t          j        |          S r   )r   r   r   r   r    s      r#   _load_configr&   .   s    	ic	"	"	" a&&((              :gs   377c                   X   e Zd ZdddddededefdZdefd	Zdefd
ZdefdZ	de
dedefdZdefdZdedededededededdfdZdede
ddfdZdedede
ddfdZdede
ddfdZdefdZdede
ddfdZdedede
ddfdZdede
ddfd Zdedededededededdfd!Zdefd"ZdS )#CLIProfileCredentialsProviderNF)profile_nameprofile_fileallow_config_force_rewriter)   r*   r+   c                    |p)t           j                            t          j        d          | _        |pt          j        | _        || _	        d | _
        t          j                    | _        d S )Nz.aliyun/config.json)ospathjoinacHOME_profile_fileauenvironment_profile_name_profile_name_allow_config_force_rewrite-_CLIProfileCredentialsProvider__innerProvider	threadingRLock
_file_lock)selfr)   r*   r+   s       r#   __init__z&CLIProfileCredentialsProvider.__init__6   sW     *YRW\\"'CX-Y-Y)HR-H+E(##/++    r   c                     | j         dS dS )NTF)r7   r;   s    r#   #_should_reload_credentials_providerzACLIProfileCredentialsProvider._should_reload_credentials_providerA   s    '4ur=   c           	         t           j                                        dk    rt          d          |                                 r t
          j                            | j                  r$t
          j        	                    | j                  st          d| j                   	 t          | j                  }n)# t          $ r}t          d| j                   d }~ww xY w|t          d| j                   | j        }| j        | j        dk    r|                    d          }|                     ||          | _        | j                                        }t#          |                                |                                |                                |                                  d|                                           }|S 	Ntruez cli credentials file is disabledz!unable to open credentials file: z6failed to parse credential form cli credentials file:  current/)access_key_idaccess_key_secretsecurity_tokenprovider_name)r3    environment_cli_profile_disabledlowerr   r@   r-   r.   existsr2   isfiler&   	Exceptionr5   get_get_credentials_providerr7   get_credentialsr   get_access_key_idget_access_key_secretget_security_tokenget_provider_namer;   configer)   crecredentialss         r#   rR   z-CLIProfileCredentialsProvider.get_credentialsF   s   .4466&@@%&HIII3355 	X7>>$"455 dRW^^DL^=_=_ d)*bdN`*b*bcccc%d&899 c c c)aTM_aac c cc ~)aTM_aac c c  -L!)T-?2-E-E%zz)44#'#A#A&,#W#WD "2244!//11!77991133!3355QQ8M8M8O8OQQ	
 
 
 s   'B< <
C"CC"c           	        K   t           j                                        dk    rt          d          |                                 rt
          j                            | j                  r$t
          j        	                    | j                  st          d| j                   	 t          | j                   d {V }n)# t          $ r}t          d| j                   d }~ww xY w|t          d| j                   | j        }| j        | j        dk    r|                    d          }|                     ||          | _        | j                                         d {V }t#          |                                |                                |                                |                                  d|                                           }|S rB   )r3   rK   rL   r   r@   r-   r.   rM   r2   rN   r$   rO   r5   rP   rQ   r7   get_credentials_asyncr   rS   rT   rU   rV   rW   s         r#   r]   z3CLIProfileCredentialsProvider.get_credentials_asyncd   s     .4466&@@%&HIII3355 	X7>>$"455 dRW^^DL^=_=_ d)*bdN`*b*bcccc1$2DEEEEEEEE c c c)aTM_aac c cc ~)aTM_aac c c  -L!)T-?2-E-E%zz)44#'#A#A&,#W#WD (>>@@@@@@@@!//11!77991133!3355QQ8M8M8O8OQQ	
 
 
 s   )C 
C*C%%C*rX   c                 
   ||dk    rt          d          |                    dg           }|st          d| d          |D ]}|                    d          |d         |k    r|                    d          }|dk    r9t          |                    d	          |                    d
                    c S |dk    rMt          |                    d	          |                    d
          |                    d                    c S |dk    rt          |                    d	          |                    d
                    }t	          ||                    d          |                    d          |                    d          |                    d          |                    d          |                    d          |                    d                    c S |dk    r%t          |                    d                    c S |dk    rt          |                    d          |                    d          |                    d          |                    d          |                    d          |                    d          |                    d          |                    d                    c S |d k    r|                     ||                    d!                    }t	          ||                    d          |                    d          |                    d          |                    d          |                    d          |                    d          |                    d                    c S |d"k    rut          |                    d#          |                    d$          |                    d%          |                    d&          |                    d'          (          c S |d)k    r|                    d*d+          }d,d-d.}	|	                    |	                                          }
|
st          d/          d0d1d.}|                    |	                                          }|st          d/          t          ||
|                    d2          |                    d3          |                    d4          |                                 |                                 5          c S t          d6| d          t          d| d          )7NrD   zinvalid profile nameprofileszunable to get profile with 'z' form cli credentials file.namer   AKrG   rH   )rG   rH   StsToken	sts_token)rG   rH   rI   
RamRoleArnram_role_arnram_session_nameexpired_secondspolicyexternal_id
sts_region
enable_vpc)credentials_providerrole_arnrole_session_nameduration_secondsrh   ri   sts_region_idrk   
EcsRamRoleram_role_name)	role_nameOIDCoidc_provider_arnoidc_token_filern   )rm   ru   oidc_token_file_pathrn   ro   rh   rp   rk   ChainableRamRoleArnsource_profileCloudSSOcloud_sso_sign_in_urlcloud_sso_account_idcloud_sso_access_configaccess_tokencloud_sso_access_token_expire)sign_in_url
account_idaccess_configr~   access_token_expireOAuthoauth_site_typeCNzhttps://oauth.aliyun.comzhttps://oauth.alibabacloud.com)r   INTLz+Invalid OAuth site type, support CN or INTL40381819545577480084103531455503354461oauth_access_tokenoauth_access_token_expireoauth_refresh_token)	client_idr   r~   r   refresh_tokentoken_update_callbacktoken_update_callback_asynczunsupported profile mode ')r   rP   r   r   r	   r   r
   rQ   r   upperr    _get_oauth_token_update_callback&_get_oauth_token_update_callback_async)r;   rX   r)   r_   profiler   pre_providerprevious_provider	site_typeoauth_base_url_mapr   oauth_client_mapr   s                r#   rQ   z7CLIProfileCredentialsProvider._get_credentials_provider   s   <2#5#5%&<===::j"-- 	q%&o\&o&o&oppp ]	o ]	oG{{6"".76?l3R3R{{6**4<<6&-kk/&B&B*1++6I*J*J      Z''7&-kk/&B&B*1++6I*J*J'.{{;'?'?     
 \))#>&-kk/&B&B*1++6I*J*J$ $ $L 9-9!(^!<!<*1++6H*I*I)05F)G)G&{{844$+KK$>$>&-kk,&?&?#*;;|#<#<	 	 	 	 	 	 \))8")++o">">      V^^9!(^!<!<*1++6I*J*J-4[[9J-K-K*1++6I*J*J)05F)G)G&{{844&-kk,&?&?#*;;|#<#<	 	 	 	 	 	 222(,(F(Fvw{{[kOlOl(m(m%8->!(^!<!<*1++6H*I*I)05F)G)G&{{844$+KK$>$>&-kk,&?&?#*;;|#<#<	 	 	 	 	 	 Z''6$+KK0G$H$H#*;;/E#F#F&-kk2K&L&L%,[[%@%@,3KK8W,X,X      W__ ',=t D DI8 @* *& #5"8"89J9J"K"KK& a12_``` 4 5( ($ !1 4 4Y__5F5F G GI$ a12_```3"+$/%,[[1E%F%F,3KK8S,T,T&-kk2G&H&H.2.S.S.U.U484_4_4a4a      ..m4.m.m.mnnn!"k"k"k"klllr=   c                     dS )Ncli_profile r?   s    r#   rV   z/CLIProfileCredentialsProvider.get_provider_name   s    }r=   r   r~   
access_keysecretrI   r   
sts_expirec                    dt           dt          dt           ffd| j        5  	 t          | j                  }| j        p|                    d          }	|	st          d           ||	          }
||
d<   ||
d<   ||
d	<   ||
d
<   ||
d<   ||
d<   ||
d<   |                     | j        |           n$# t          $ r}t          d|           d}~ww xY w	 ddd           dS # 1 swxY w Y   dS )u(   更新 OAuth 令牌并写回配置文件rX   r)   r   c                 6   |                      dg           }t          fd|D             d           }|st          d d          |                     d          dk    r|S |                     d          }|r | |          S t          d d          )	Nr_   c              3   N   K   | ]}|                     d           k    |V   dS r`   NrP   .0pr)   s     r#   	<genexpr>ziCLIProfileCredentialsProvider._update_oauth_tokens.<locals>._find_source_oauth_profile.<locals>.<genexpr>   7      QQ!155==L3P3PA3P3P3P3PQQr=   !unable to get profile with name '' from cli credentials file.r   r   ry   'unable to get OAuth profile with name 'rP   nextr   rX   r)   r_   r   ry   _find_source_oauth_profiles    `   r#   r   zVCLIProfileCredentialsProvider._update_oauth_tokens.<locals>._find_source_oauth_profile       zz*b11HQQQQxQQQSWXXG z)*xl*x*x*xyyy{{6""g--!(-=!>!>! N55fnMMM%&zP\&z&z&z{{{r=   rE   !unable to get profile to updated.r   r   r   rG   rH   rc   sts_expiration.failed to update OAuth tokens in config file: N)
dictstrr:   r&   r2   r5   rP   r   &_write_configuration_to_file_with_lockrO   r;   r   r~   r   r   rI   r   r   rX   r)   ry   rY   r   s               @r#   _update_oauth_tokensz2CLIProfileCredentialsProvider._update_oauth_tokens   s   	|t 	|3 	|4 	| 	| 	| 	| 	| 	|  _ 	` 	``%d&899  $1JVZZ	5J5J# T-.RSSS!;!;FL!Q!Q 9F457C34>Q:;2</6<23.<{+3=/0;;D<NPVWWWW ` ` `)*^[\*^*^___` X-	` 	` 	` 	` 	` 	` 	` 	` 	` 	` 	` 	` 	` 	` 	` 	` 	` 	`s5   C$BB21C$2
C<CCC$$C(+C(config_pathc                    d}t           j                            |          rt          j        |          j        }ddl}|dz   t          t          |                                dz                      z   }d}	 |                     |||           t          j
                    dk    rY| j        rRt           j                            |          r3|dz   }ddl}|                    ||           t          j        |           t          j        ||           |r5t           j                            |          rt          j        |           dS dS dS # t           $ r}|r|t           j                            |          r]	 t           j                            |          st          j        ||           n'# t           $ r}	t#          d|	 d	|           d}	~	ww xY w|d}~ww xY w)
u?   将配置写入文件，使用原子写入确保数据完整性  r   N.tmp-@B r   .backup3Failed to restore original file after write error: . Original error: )r-   r.   rM   statst_modetimer   int_write_config_fileplatformsystemr6   shutilcopy2removerenamerO   r   
r;   r   rX   	file_moder   	temp_filebackup_filer   rY   restore_errors
             r#   _write_configuration_to_filez:CLIProfileCredentialsProvider._write_configuration_to_file  s    	7>>+&& 	5,,4I 	')CDIIKK'4I0J0J,K,KK		##Iy&AAA   I--$2R-7>>+.. +"-	"9K!MMMLLk:::Ik***Ii---  'rw~~k:: '	+&&&&&' ' ' '  
	 
	 
	 trw~~k:: tt7>>+66 <	+{;;;  t t t-rmrroprrt t tt G
	s=   9CE 
G!G<4F10G1
G;GGGGfilenamer   c                     	 t          |dd          5 }t          j        ||dd           d d d            n# 1 swxY w Y   t          j        ||           d S # t
          $ r}t          d|           d }~ww xY wNwzutf-8)encoding   Findentensure_asciizFailed to write config file: )r   r   dumpr-   chmodrO   r   r;   r   r   rX   r!   rY   s         r#   r   z0CLIProfileCredentialsProvider._write_config_fileK  s    	Khg666 C!	&!AEBBBBC C C C C C C C C C C C C C C HXy))))) 	K 	K 	K%&Ia&I&IJJJ	Ks4   A 9A =A  =A 
A<%A77A<c                    d}t           j                            |          rt          j        |          j        }d}	 t           j                            |          s=t          |d          5 }t          j        i |           ddd           n# 1 swxY w Y   t          j	                    dk    rE| j
        r>t           j                            |          r|dz   }ddl}|                    ||           t          |d          5 }t          r3t          j        |                                t          j        d           n8t$          r1t'          j        |                                t&          j                   	 t          j	                    dk    r]| j
        rV|                    d           |                                 t          j        ||d	d
           |                                 ngddl}|dz   t5          t7          |                                dz                      z   }|                     |||           t          j        ||           	 t          r3t          j        |                                t          j        d           n8t$          r1t'          j        |                                t&          j                   n# t@          tB          f$ r Y nw xY w# 	 t          r3t          j        |                                t          j        d           w t$          r2t'          j        |                                t&          j                   w w # t@          tB          f$ r Y w w xY wxY wddd           n# 1 swxY w Y   |r5t           j                            |          rt          j"        |           dS dS dS # tF          $ r}	|r|t           j                            |          r]	 t           j                            |          st          j        ||           n'# tF          $ r}
tI          d|
 d|	           d}
~
ww xY w|	d}	~	ww xY w)u6   使用操作系统级别的文件锁写入配置文件r   Nr   r   r   r   r+r   r   Fr   r   r   r   r   )%r-   r.   rM   r   r   r   r   r   r   r   r6   r   r   
HAS_MSVCRTmsvcrtlockingfilenoLK_NBLCK	HAS_FCNTLfcntlflockLOCK_EXseektruncateflushr   r   r   r   r   LK_UNLCKLOCK_UNOSErrorPermissionErrorr   rO   r   r;   r   rX   r   r   r!   r   r   r   rY   r   s              r#   r   zDCLIProfileCredentialsProvider._write_configuration_to_file_with_lockV  s    	7>>+&& 	5,,4IA	7>>+.. %+s++ %qIb!$$$% % % % % % % % % % % % % % %   I--$2R-WYW^WeWefqWrWr-)I5[+666 k4(( #A ;N188::vBBBB ;K

EM:::((I55$:Z5q			

	&!AEJJJJ				 $$/'$9CDIIKKRYDY@Z@Z<[<[$[	//	9fMMM	)[999% C"N188::vJJJJ& C!K

EMBBB#_5    % C"N188::vJJJJ& C!K

EMBBBBC#_5    A# # # # # # # # # # # # # # #L  'rw~~k:: '	+&&&&&' ' ' '  
	 
	 
	 trw~~k:: tt7>>+66 <	+{;;;  t t t-rmrroprrt t tt G
	s   /O -BO BO BA/O A3M<:CK A2K	M<	KM<KM< M-"9MM-8MM-M*	'M-)M*	*M--M<0O <N  O N 8O 
Q!Q.4P#"Q#
Q-QQQQc                       fdS )u%   获取 OAuth 令牌更新回调函数c           	      :                         | ||||||          S N)r   r   r~   r   r   rI   r   r   r;   s          r#   <lambda>zPCLIProfileCredentialsProvider._get_oauth_token_update_callback.<locals>.<lambda>  s3    x|  yR  yR<V^M`bly
 y
 r=   r   r?   s   `r#   r   z>CLIProfileCredentialsProvider._get_oauth_token_update_callback      
 
 
 
 	
r=   c                   K   d}t           j                            |          rt          j        |          j        }ddl}|dz   t          t          |                                dz                      z   }d}	 |                     |||           d{V  t          j
                    dk    rY| j        rRt           j                            |          r3|dz   }ddl}|                    ||           t          j        |           t          j        ||           |r5t           j                            |          rt          j        |           dS dS dS # t           $ r}|r|t           j                            |          r]	 t           j                            |          st          j        ||           n'# t           $ r}	t#          d|	 d	|           d}	~	ww xY w|d}~ww xY w)
uE   异步将配置写入文件，使用原子写入确保数据完整性r   r   Nr   r   r   r   r   r   )r-   r.   rM   r   r   r   r   r   _write_config_file_asyncr   r   r6   r   r   r   r   rO   r   r   s
             r#   "_write_configuration_to_file_asyncz@CLIProfileCredentialsProvider._write_configuration_to_file_async  s'      	7>>+&& 	5,,4I 	')CDIIKK'4I0J0J,K,KK		//	9fMMMMMMMMM   I--$2R-7>>+.. +"-	"9K!MMMLLk:::Ik***Ii---  'rw~~k:: '	+&&&&&' ' ' '  
	 
	 
	 trw~~k:: tt7>>+66 <	+{;;;  t t t-rmrroprrt t tt G
	s=   ;CE 
G'"!G"4F98G"9
GGGG""G'c                 `  K   	 t          j        |dd          4 d {V }|                    t          j        |dd                     d {V  d d d           d {V  n# 1 d {V swxY w Y   t          j        ||           d S # t          $ r}t          d|           d }~ww xY wr   )	r   r   writer   dumpsr-   r   rO   r   r   s         r#   r   z6CLIProfileCredentialsProvider._write_config_file_async  sz     	K}XsWEEE P P P P P P PggdjNNNOOOOOOOOOP P P P P P P P P P P P P P P P P P P P P P P P P P P HXy))))) 	K 	K 	K%&Ia&I&IJJJ	Ks:   B 1A$B $
A..B 1A.2B 
B-B((B-c                   K   d}t           j                            |          rt          j        |          j        }d}	 t           j                            |          s=t          |d          5 }t          j        i |           ddd           n# 1 swxY w Y   t          j	                    dk    rE| j
        r>t           j                            |          r|dz   }ddl}|                    ||           t          |d          5 }t          r3t          j        |                                t          j        d           n8t$          r1t'          j        |                                t&          j                   	 t          j	                    dk    r]| j
        rV|                    d           |                                 t          j        ||d	d
           |                                 nmddl}|dz   t5          t7          |                                dz                      z   }|                     |||           d{V  t          j        ||           	 t          r3t          j        |                                t          j        d           n8t$          r1t'          j        |                                t&          j                   n# t@          tB          f$ r Y nw xY w# 	 t          r3t          j        |                                t          j        d           w t$          r2t'          j        |                                t&          j                   w w # t@          tB          f$ r Y w w xY wxY wddd           n# 1 swxY w Y   |r5t           j                            |          rt          j"        |           dS dS dS # tF          $ r}	|r|t           j                            |          r]	 t           j                            |          st          j        ||           n'# tF          $ r}
tI          d|
 d|	           d}
~
ww xY w|	d}	~	ww xY w)u<   异步使用操作系统级别的文件锁写入配置文件r   Nr   r   r   r   r   r   r   Fr   r   r   r   r   )%r-   r.   rM   r   r   r   r   r   r   r   r6   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   rO   r   r   s              r#   ,_write_configuration_to_file_with_lock_asynczJCLIProfileCredentialsProvider._write_configuration_to_file_with_lock_async  s      	7>>+&& 	5,,4IA	7>>+.. %+s++ %qIb!$$$% % % % % % % % % % % % % % %   I--$2R-WYW^WeWefqWrWr-)I5[+666 k4(( #A ;N188::vBBBB ;K

EM:::((I55$:Z5q			

	&!AEJJJJ				 $$/'$9CDIIKKRYDY@Z@Z<[<[$[	";;IyRXYYYYYYYYY	)[999% C"N188::vJJJJ& C!K

EMBBB#_5    % C"N188::vJJJJ& C!K

EMBBBBC#_5    A# # # # # # # # # # # # # # #L  'rw~~k:: '	+&&&&&' ' ' '  
	 
	 
	 trw~~k:: tt7>>+66 <	+{;;;  t t t-rmrroprrt t tt G
	s    /O
 /BO
 BO
 BA/O
 A3N<C!K(A2KNK%"N$K%%N(M5*9M#M5$8MM5M2	/M51M2	2M55N8O
 NO
 N8O
 

Q!Q64P+*Q+
Q5Q

QQQc                   K   dt           dt          dt           ffd| j        5  	 t          | j                   d{V }| j        p|                    d          }	|	st          d           ||	          }
||
d<   ||
d	<   ||
d
<   ||
d<   ||
d<   ||
d<   ||
d<   |                     | j        |           d{V  n$# t          $ r}t          d|           d}~ww xY w	 ddd           dS # 1 swxY w Y   dS )u.   异步更新 OAuth 令牌并写回配置文件rX   r)   r   c                 6   |                      dg           }t          fd|D             d           }|st          d d          |                     d          dk    r|S |                     d          }|r | |          S t          d d          )	Nr_   c              3   N   K   | ]}|                     d           k    |V   dS r   r   r   s     r#   r   zoCLIProfileCredentialsProvider._update_oauth_tokens_async.<locals>._find_source_oauth_profile.<locals>.<genexpr>2  r   r=   r   r   r   r   ry   r   r   r   s    `   r#   r   z\CLIProfileCredentialsProvider._update_oauth_tokens_async.<locals>._find_source_oauth_profile0  r   r=   NrE   r   r   r   r   rG   rH   rc   r   r   )
r   r   r:   r$   r2   r5   rP   r   r   rO   r   s               @r#   _update_oauth_tokens_asyncz8CLIProfileCredentialsProvider._update_oauth_tokens_async,  s     	|t 	|3 	|4 	| 	| 	| 	| 	| 	| _ 	` 	``1$2DEEEEEEEE  $1JVZZ	5J5J# T-.RSSS!;!;FL!Q!Q 9F457C34>Q:;2</6<23.<{+3=/0GGHZ\bcccccccccc ` ` `)*^[\*^*^___` d-	` 	` 	` 	` 	` 	` 	` 	` 	` 	` 	` 	` 	` 	` 	` 	` 	` 	`s5   C2BC ?C2 
C!
CC!!C22C69C6c                       fdS )u+   获取异步 OAuth 令牌更新回调函数c           	      :                         | ||||||          S r   )r  r   s          r#   r   zVCLIProfileCredentialsProvider._get_oauth_token_update_callback_async.<locals>.<lambda>\  s3    x|  yX  yX<V^M`bly
 y
 r=   r   r?   s   `r#   r   zDCLIProfileCredentialsProvider._get_oauth_token_update_callback_asyncZ  r   r=   )__name__
__module____qualname__r   boolr<   r@   r   rR   r]   r   r   rQ   rV   r   r   r   r   r   r   r   r   r   r   r  r   r   r   r=   r#   r(   r(   4   s!        &*%)49	, 	, 	,"	,"	, .2	, 	, 	, 	,T    
    <[    <hm hmC hmL` hm hm hm hmT3    -`# -`S -`VY -`cf -`-0-`GJ-`X[-``d-` -` -` -`^+ +T +d + + + +Z	K3 	K3 	K 	KQU 	K 	K 	K 	KJ# Jt JX\ J J J JX
2J 
 
 
 
+C +QU +Z^ + + + +Z	Ks 	Ks 	KTX 	K]a 	K 	K 	K 	KJc J[_ Jdh J J J JX,`c ,`QT ,`be ,`or ,`9<,`SV,`dg,`lp,` ,` ,` ,`\
8U 
 
 
 
 
 
r=   r(   )-r-   r   r8   r   typingr   r   r   r   r   r   r   r   ImportError	static_akr   ecs_ram_roler   re   r	   oidcr
   
static_stsr   	cloud_ssor   oauthr   r   r   refreshabler   alibabacloud_credentials_apir   alibabacloud_credentials.utilsr   r0   r   r3   #alibabacloud_credentials.exceptionsr   r   r$   r&   r(   r   r=   r#   <module>r     s"   				                8?	!!MMMJII J		   			 3 2 2 2 2 2 7 7 7 7 7 7 7 7 7 7 7 7 0 0 0 0 0 0 4 4 4 4 4 4 2 2 2 2 2 2 d d d d d d d d d d $ $ $ $ $ $ = = = = = = > > > > > > : : : : : : C C C C C C     C C    j
 j
 j
 j
 j
$8 j
 j
 j
 j
 j
s   A AA