
    Y                        S r SSKJr  SSKJr  SSKJr  SSKJr  SSKrSSKrSSKrSSK	r	SSK
r
SSKrSSKrSSKrSSKrSSKrSSKrSSKrSSKJr  SSKJr  SS	KJr  SSKrSS
KJr  SSKJr  SSKJr  SSKJr  SSK J!r!  SSK"r"SSKrSSK#J$r$J%r%  SSKJ&r&   \" 5       u  r'r(\!" \(\&Rf                  Ri                  5       5      \l5        \"=Rl                  \Rj                  -  sl6        SSK7r7SSK8r8SSK9J:r:  SSK9J;r<  SSKJ=r=  SSKJ>r>  SSK?J@r@  SSK?JArA  SSK?JBrB  SSK?JCrC  SSK?JDrD  SSKEJFrF  SSKGJHs  JIs  JrJ  SS K#JKrK  SS!K#JLrL  SS"K#J$r$  SS#KMJNrN  SS$KMJOrO  SS%KMJPrP  / S&QrQ SSKRrRS'R                  5       rUS(R                  5       rVS)R                  5       rWSqXS*qYS+ rZS, r[S=S- jr\S. r] " S/ S0\	R                  5      r_\	R                  4S1 jraS2 rbS3 rcS4 rdS5 reS6 rfS7 rgS8 rhS9 ri       S>S: jrjS; rk\lS<:X  a  \Rd                  " \b" 5       5        gg! \ a  r)\)RT                  (       a  \)RV                  OS\)RV                  -  r+S\+-  r, \%RZ                  " \,S\R\                  S9  O'! \/ a    \R\                  Ra                  \,5         Of = f\)(       a  \&Rb                  " \)5        \Rd                  " S5         Sr)C)GNSr)C)ff = f! \S a     GNkf = f)?z7Main module for Google Cloud Storage command line tool.    )absolute_import)print_function)division)unicode_literalsN)configparser)range)
exceptions)CommandException)ControlCException)check_python_version_support)GetArgumentsAndOptions)GetUserAgent)system_util	text_util)metricsCommandException: %s%s
 endfile   )reauth_creds)errors)context_config)wildcard_iterator)AccessDeniedException)ArgumentException)BadRequestException)ProjectIdException)ServiceException)CommandRunner)	boto_util)	constants)r   )GetCaughtSignals)InitializeSignalHandling)RegisterSignalHandler)proxy
proxy_port
proxy_user
proxy_passa  
***************************** WARNING *****************************
*** You are running gsutil with debug output enabled.
*** Be aware that debug output includes authentication credentials.
*** Make sure to remove the value of the Authorization header for
*** each HTTP request printed to the console prior to posting to
*** a public medium such as a forum post or Stack Overflow.
***************************** WARNING *****************************
aK  
***************************** WARNING *****************************
*** You are running gsutil with trace output enabled.
*** Be aware that trace output includes authentication credentials
*** and may include the contents of any files accessed during the trace.
***************************** WARNING *****************************
a  
***************************** WARNING *****************************
*** You are running gsutil with the "https_validate_certificates" config
*** variable set to False. This option should always be set to True in
*** production environments to protect against man-in-the-middle attacks,
*** and leaking of user data.
***************************** WARNING *****************************
Fc                     [        5         [        R                  R                  R	                  5       R
                  (       a  [        R                  R                  5         gg)aH  Cleans up if process is killed with SIGINT, SIGQUIT or SIGTERM.

Note that this method is called after main() has been called, so it has
access to all the modules imported at the start of main().

Args:
  signal_num: Unused, but required in the method signature.
  cur_stack_frame: Unused, but required in the method signature.
N)_Cleanupgslibutilsparallelism_framework_util$CheckMultiprocessingAvailableAndInitis_availablecommand TeardownMultiprocessingProcesses)
signal_numcur_stack_frames     !platform/gsutil/gslib/__main__.py_CleanupSignalHandlerr8      s=     *kk,,**,\\:	MM224:    c                  z    [         R                  " 5        H  n  [        R                  " U 5        M     g !    M$  = fN)r#   GetCleanupFilesosunlink)fnames    r7   r-   r-      s0    ((*eii +
s   5:c                    [         [        R                  :  d  [        (       a7  [        R
                  " 5       nS[        R                  " SSU5      < SU < S3nOSU -  n [        R                  " US[        R                  S9  U(       a  [        R                  " U5        [        R                   " S5        g	! [         a"    [        R                  R                  U5         N_f = f)
zOutputs message to stderr and exits gsutil with code 1.

This function should only be called in single-process, single-threaded mode.

Args:
  message: Message to print to stderr.
  exception: The exception that caused gsutil to fail.
z"DEBUG: Exception stack trace:
    \n
    
r   r   r   r   N)debug_levelr$   DEBUGLEVEL_DUMP_REQUESTStest_exception_traces	traceback
format_excresubr   print_to_fdsysstderrUnicodeDecodeErrorwriter   LogFatalErrorexit)message	exceptionstack_traceerrs       r7   _OutputAndExitrV      s     I666:O:O&&(KFF5(K0';C 7
C#2CJJ7 )$((1+ 
 JJSs   !$B9 9)C%$C%c                 R    U R                  S5        [        R                  " S5        g )Nhelpr   )RunNamedCommandrL   rQ   )command_runners    r7   _OutputUsageAndExitr[      s      (((1+r9   c                   0   ^  \ rS rSrSrSU 4S jjrSrU =r$ )GsutilFormatter   z<A logging.Formatter that supports logging microseconds (%f).c                    > U(       a8  [         R                   R                  UR                  5      R                  U5      $ [        [
        U ]  XS9$ )N)datefmt)datetimefromtimestampcreatedstrftimesuperr]   
formatTime)selfrecordr`   	__class__s      r7   rf   GsutilFormatter.formatTime   sC    ,,V^^<EEgNN $262KKr9    r;   )__name__
__module____qualname____firstlineno____doc__rf   __static_attributes____classcell__)ri   s   @r7   r]   r]      s    DL Lr9   r]   c                     SnSn[        XS9n[        R                  " 5       nUR                  U5        [        R                  " 5       nUR                  U5        UR                  U 5        g)zASimilar to logging.basicConfig() except it always adds a handler.z3%(levelname)s %(asctime)s %(filename)s] %(message)sz%m%d %H:%M:%S.%f)fmtr`   N)r]   loggingStreamHandlersetFormatter	getLogger
addHandlersetLevel)level
log_formatdate_format	formatterhandlerroot_loggers         r7   _ConfigureRootLoggerr      s\    D*"+*B)!!#'	y!!!#+!ur9   c                     [        5         SS Kn SS Kn SS Kn SSKJn  SSKJn  U R                  R                  R                  5       R                  (       a5  U R                  R                  5         U R                  R                  5         OU R                  R                  5          SS Kn[         R"                  " 5       u  pEUR$                  R'                  XE5        UR$                  R)                  U R                  R                  R+                  5       5        UR-                  U R                  R                  R+                  5       5        [1        5       u  pgU(       d  [3        U5      e[8        R:                  " 5         [         R<                  " 5         [?        5       n[8        R@                  (       d.  [3        SRC                  [D        RF                  " S5      5      5      e0 n	Sn
SnSnSq$S nS nSq%S n[M        [4        RN                  5      S:X  a  [4        RN                  RQ                  S5        [R        RT                  RW                  S	S
5      (       dd  [R        RT                  RY                  S	5      (       d  [R        RT                  R[                  S	5        [R        RT                  R]                  S	S
S5        [_        5        H  n[a        U[b        5        M      [d         GH  u  nnUS;   a  [f        Rh                  q$M  US;   a<  [H        [f        Rh                  :X  a  [f        Rj                  q$MO  [f        Rh                  q$Ma  US;   a  [m        U5        Mt  US;   a<  URo                  S5      u  nnnU(       d  [m        U5        UU	URq                  5       '   M  US;   a  Sn
M  US;   a  SnM  US:X  a  UnM  US;   a  SnM  US;   a  U[f        l9        M  US:X  a  UnM  US:X  a  UnGM  US:X  a  Sq%S[f        l:        GM  US;   d  GM%  URo                  S5      u  nnnU(       d  [m        U5        URo                  S5      u  nnnU(       a  U(       d  [m        U5        [R        RT                  RY                  U5      (       d  [R        RT                  R[                  U5        [R        RT                  Rw                  UUU5        GM     [8        Rx                  " 5       [8        l=        [|        R~                  " [d        S9  [H        [        lA        U(       a#  [4        R                  R                  [        5        [H        [f        Rh                  :  Ga]  [4        R                  R                  [        5        [        [        R                  S9  UR                  SS/5        / nS  H2  n UR                  [R        RT                  R                  U5      5        M4     [        [M        U5      5       H  nUU   S   nU[        ;   d  M  US!4UU'   M      [4        R                  R                  S"S#RC                  [4        RN                  5      -  5        [4        R                  R                  S$[8        R                  " 5       -  5        [4        R                  R                  S%[        U5      -  5        OU(       a  [        R                  O[        R                  n[        R                  n[        R                  n [        US9  [        R                  R                  R                  U5        [        R                  R                  R                  R                  U 5        [        R                  R                  R                  U5        [        R                  R                  U5        SS K^n!U!R                  R                  U!l`        [8        R                  (       d#  [4        R                  R                  [        5        U(       a  S&n"OF[        (       d  Sn"O8[        S   n"U"S':w  a)  [        R                  " [        R                  " 5       5        [        5         [        R                  R                  S(S)5      S*;   a  [        U5      [        5         $ [        UU"[        SS  U	[H        UU
UUS+9	[        5         $ ! [.         a     GNmf = f! [        R                   a     GM9  f = f! [        5         f = f),Nr   )oauth2_client)credentials_libr   rC   zcYour boto configuration has is_secure = False. Gsutil cannot be run this way, for security reasons.FrX   Botohttps_validate_certificatesT)z-dz--debug)z-Dz--detailedDebug)z-?z--help)z-hz--header:)z-mz--multithreaded)z-qz--quietz-u)z-vz	--version)z-iz--impersonate-service-accountz--perf-trace-tokenz--trace-tokenz--testexceptiontracesi  )z-oz--option=)global_opts)r{   verz-l)r   GSUtilREDACTEDzCommand being run: %s
 zconfig_file_list: %s
zconfig: %s
versiontest_ARGCOMPLETE0)12)argsheadersrD   trace_tokenparallel_operationsperf_trace_tokenuser_project)nr&   gslib.boto_translationgslib.command&gslib.utils.parallelism_framework_utilgcs_oauth2_boto_pluginr   apitools.base.pyr   r/   r0   r1   r2   r3   "InitializeMultiprocessingVariablesboto_translationInitializeThreadingVariablesr   GetGsutilClientIdAndSecretoauth2_helperSetFallbackClientIdAndSecretSetLock
CreateLockSetCredentialsCacheFileLockImportErrorr   r
   rL   rQ   r#   MonkeyPatchBotoMonkeyPatchHttpr"   BOTO_IS_SECUREjointextwrapwraprD   rF   lenargvappendbotoconfig
has_optionhas_sectionadd_sectionsetboolr%   r'   r8   optsr$   rE   %DEBUGLEVEL_DUMP_REQUESTS_AND_PAYLOADSr[   	partitionlowerIMPERSONATE_SERVICE_ACCOUNTLONG_RETRY_WARN_SECsetConfigureCertsFileconfigured_certs_filer   LogCommandParamshttplib2
debuglevelrM   rO   TRACE_WARNINGDEBUG_WARNINGr   ru   DEBUGrY   extenditemsr   NoSectionErrorr   CONFIG_KEYS_TO_REDACTGetFriendlyConfigFilePathsstrWARNINGINFOERRORoauth2clientclientloggerrz   contribmultiprocess_file_storage	transport_LOGGERr   sixmovesinputCERTIFICATE_VALIDATION_ENABLEDHTTP_WARNINGr   r   create_context_configrx    _CheckAndWarnForProxyDifferencesr=   environget_PerformTabCompletionr-   #_RunNamedCommandAndHandleExceptions)#r.   r   r   r   gsutil_client_idgsutil_client_secret	supportedrU   rZ   r   r   quietr   r   r   r   r5   oahdr_name_hdr_valopt_section_name	opt_valueopt_sectionopt_nameconfig_itemsconfig_sectioniconfig_item_keyroot_logger_leveloa2c_logger_level+oa2c_multiprocess_file_storage_logger_levelr   command_names#                                      r7   mainr      s     /2.kk,,**,\\: 
MM446	==?	MM..0	!..0 +((EE0((00..99;=//..99;= 01.)	
3
  !?.		!	!
4992	34 5 5
 '
%'++, 	]aHHOOF 
		(E	F	F;;""6**
kkf%KK =tD$&j*&;< 'K1	
	88))
 )<<<!GG+!::+  N+""!"S!11g
n
-$+ !))"!!9##7701	-$$'' $ )-	%""+,;;s+;(	1i
n
-%5%?%?%D"a(
n
-{{&&{33
++
!
!+
.Xy9a h (1'C'C'EI#.%H	jj}%i888	jj}%/$$UTF3l..	


dkk//?
@ /
 S&'!&q/!,33,j9,q/ ( 
jj0388CHH3EEF	jj/ ;;=> ?	jj~L(99:-2'//
 "//4;MM1!23  ))*;<44;;DD
57 $$--.?@##$56
 		CI33	jj|$lTl!Wl		 	,,W->->-@A$& 
zz~~nc*j8">2 J /!"X/)!	# J{ 
 		l ** 	
	N JsX   &B&b, D&c Fc  .b=+c =I>c c ,
b:9b:=cc cc c%c            
      d   [         R                  R                  SSS5      n [         R                  R                  SSS 5      (       d  U (       Gaa  S GHY  nU[        R
                  ;   d  M  [        R
                  U   (       d  M4  / n[        R                  " U5      nUR                  [         R                  R                  SSS 5      :w  aG  UR                  S[         R                  R                  SSS 5      < SU< SUR                  < S	35        UR                  [         R                  R                  SS
S 5      :w  aG  UR                  S[         R                  R                  SS
S 5      < SU< SUR                  < S	35        UR                  [         R                  R                  SSS 5      :w  a  UR                  SU-  5        UR                  (       d  U (       a8  UR                  U :w  a(  UR                  SU < SU< SUR                  < S	35        U(       av  [        R                  R                  SR!                  ["        R$                  " SU-  5      5      5        [        R                  R                  SSR!                  U5      -  5        [        R
                  U	 GM\     g g )Nr   r)   r   r(   )
http_proxyhttps_proxyHTTPS_PROXYzBoto proxy host: "z" differs from z proxy host: ""r*   zBoto proxy user: "z proxy user: "r+   z2Boto proxy password differs from %s proxy passwordzBoto proxy port: "z proxy port: "rC   zWARNING: Proxy configuration is present in both the %s environment variable and boto configuration, but configuration differs. boto configuration proxy values will be used. Differences detected:z
%s
)r   r   getintr   r=   r   r#   ProxyInfoFromEnvironmentVar
proxy_hostr   r*   r+   r)   rL   rM   rO   r   r   r   )	boto_portproxy_env_vardiffering_values
proxy_infos       r7   r   r     s    kk  q9)	[[__VWd++yE	"**	$M)B)B::=I
  DKKOOFGT$JJ

!
!{{vw#%&3Z5J5JLM !!T[[__V\59&; ;

!
!{{v|#%&3Z5J5JLM !!T[[__V\59&; ;

!
!B
 ""i!!Y.

!
!-)>)>@A 
**

499mm3 6CCDE F **

8dii0@&AA
B JJ}%K F 09r9   c                     e r;   )rV   es    r7   _HandleUnknownFailurer    s    r9   c                 ~    U R                   (       a  [        U R                  U S9  g [        SU R                  -  U S9  g )NrR   rS   r   )informationalrV   reasonr  s    r7   _HandleCommandExceptionr    s+    __188q11AHH<Jr9   c           	         [         S:  af  SR                  [        R                  " [        R                  " 5       5      5      n[        SU [        R                  " SSU5      4-  [        5       S9  g[        SU -  [        5       S9  g)	zCalled when user hits ^C.

This function prints a brief message instead of the normal Python stack trace
(unless -D option is used).

Args:
  signal_num: Signal that was caught.
  cur_stack_frame: Unused.
   r   z@DEBUG: Caught CTRL-C (signal %d) - Exception stack trace:
    %srA   rB   rS   z#Caught CTRL-C (signal %d) - exitingN)	rD   r   rG   format_listextract_stackrV   rI   rJ   r   )r5   r6   rT   s      r7   _HandleControlCr    sv     A'')//	0G0G0IJKK uh DEF /02
 8:E.02r9   c                 ,    SSK nUR                  5         g)zFCalled when user hits ^\, so we can force breakpoint a running gsutil.r   N)pdb	set_trace)r5   r6   r  s      r7   _HandleSigQuitr    s    --/r9   c                 r    [         R                  R                  SS5      nSnU(       a  USU-  -  nUS-  nU$ )zConstructs a help string for an access control error.

Args:
  reason: e.reason string from caught exception.

Returns:
  Contructed help text.
r   default_project_idaX  Your request resulted in an AccountProblem (403) error. Usually this happens if you attempt to create a bucket without first having enabled billing for the project you are using. Please ensure billing is enabled for your project by following the instructions at `Google Cloud Platform Console<https://support.google.com/cloud/answer/6158867>`. zIn the project overview, ensure that the Project Number listed for your project matches the project ID (%s) from your boto config file. a  If the above doesn't resolve your AccountProblem, please send mail to buganizer-system+187143@google.com requesting assistance, noting the exact command you ran, the fact that you received a 403 AccountProblem error, and your project ID. Please do not post your project ID on StackOverflow. Note: It's possible to use Google Cloud Storage without enabling billing if you're only listing or reading objects for which you're authorized, or if you're uploading objects to a bucket billed to a project that has billing enabled. But if you're attempting to create buckets or upload objects to a bucket owned by your own project, you must first enable billing for that project.)r   r   	get_value)r  r  	acct_helps      r7   _ConstructAccountProblemHelpr    s]     {{,,X7KL[  	P
	I 
45) 
r9   c           	         [         R                  " 5       (       d  [        R                  R	                  SSS5      (       do  [
        R                  " 5       (       a&  SR                  [        R                  " S5      5      nO%SR                  [        R                  " S5      5      n[        X S9  g U R                  (       a  U R                  S:X  d   U R                  S	:X  d  S
U R                  ;   af  SR                  U5      R                  S5      S:w  aA  [        SR                  [        R                  " [        U R                  5      5      5      U S9  g g g g )NTestsbypass_anonymous_access_warningFrC   zYou are attempting to access protected data with no configured credentials. Please visit https://cloud.google.com/console#/project and sign up for an account, and then run the "gcloud auth login" command to configure gsutil to use these credentials.zYou are attempting to access protected data with no configured credentials. Please visit https://cloud.google.com/console#/project and sign up for an account, and then run the "gsutil config" command to configure gsutil to use these credentials.r	  AccountProblemzAccount disabled.z3account for the specified project has been disabled,zgs://r  )r#   HasConfiguredCredentialsr   r   r  r   InvokedViaCloudSdkr   r   r   rV   r  findr  )r  r   rR   s      r7   "_CheckAndHandleCredentialExceptionr%  >  s    
,
,
.
.t{{7L7L0%89 89 %%''		
--;<=g 		
--123g 70		
%	%5H)H	>!((	JG$*4992188<=?  	+ 
K 	r9   c	                     [        [        R                  [        SS9  [        R
                  (       d  [        [        R                  [        5        U R                  UUUUUUUSUS9	$ ! [         aJ  n	[        U	5      R                  S5      S:w  a  [        SU	S9   S	n	A	g	[        [        U	5      U	S9   S	n	A	g	S	n	A	f[         a  n	[        U	5         S	n	A	g	S	n	A	f[        R                    a(  n	[        [        U	R"                  5      5         S	n	A	g	S	n	A	f[$        R&                  R(                   a!  n	[        S
U	R*                  -  U	S9   S	n	A	g	S	n	A	f[,        R&                  R.                   a!  n	[        SU	R*                  -  U	S9   S	n	A	g	S	n	A	f[$        R0                  R2                   a  n	[        SU	S9   S	n	A	g	S	n	A	f[,        R&                  R4                   a  n	[        [        U	5      U	S9   S	n	A	g	S	n	A	f[6         a  n	U	R8                  [8        R:                  :X  dM  [        R
                  (       aS  U	R8                  [8        R<                  :X  a5  [        R>                  " 5       (       d  [@        RB                  " S5         S	n	A	g	[        SU	RD                  -  U	S9   S	n	A	g	S	n	A	f[F         a  n	U	R8                  [8        R:                  :X  dM  [        R
                  (       aS  U	R8                  [8        R<                  :X  a5  [        R>                  " 5       (       d  [@        RB                  " S5         S	n	A	g	e S	n	A	f[H        RJ                   a  n	[        U	RL                  U	S9   S	n	A	g	S	n	A	f[N         a  n	[        SU	S9   S	n	A	g	S	n	A	f[P         a.  n	U	RL                  S:X  a  [S        X5        [        XS9   S	n	A	g	S	n	A	f[T         a  n	[S        X5        [        XS9   S	n	A	g	S	n	A	f[V         a  n	[        XS9   S	n	A	g	S	n	A	f[X         a  n	[        XS9   S	n	A	g	S	n	A	f[Z        R\                  R^                  [`        Rb                  [`        Rd                  4 a=  n	[        Rf                  " 5       (       a  [        SU	S9   S	n	A	g	[        SU	S9   S	n	A	g	S	n	A	f[h        Rj                   aD  n	[        S[m        U	Rn                  SS5      < SU	Rp                  =(       d    S< 3U	S9   S	n	A	g	S	n	A	f[r        Rt                   a  n	U	Rv                  S   [8        R:                  :X  a  [        SU	S9   S	n	A	g	U	Rv                  S   [8        Rx                  :X  aW  SR{                  U5      R}                  S5      (       a2  [        SR{                  [~        R                  " S5      5      U	S9   S	n	A	g	[        U	5         S	n	A	g	S	n	A	f[Z        R\                  R                   a=  n	[        SSR{                  [~        R                  " SU	-  5      5      -  U	S9   S	n	A	g	S	n	A	f[        R                   a5    [        Rf                  " 5       (       a  [        S5         g	[        S5         g	[         ar  n	SR{                  [        R                  " 5       5      n
S [        U	5      ;   a  [        S!U
-  U	S9  OS"[        U	5      ;   a  [        S#U
-  U	S9  [        U	5         S	n	A	g	S	n	A	ff = f)$z/Runs the command and handles common exceptions.T)is_final_handler)r   collect_analyticsr   secret_access_keyr!  zdMissing credentials for the given URI(s). Does your boto config file contain all needed credentials?r  r	  NzInvalidUriError: %s.zInvalidUrlError: %s.NotReadyToAuthenticater   zOSError: %s.zYou are attempting to perform an operation that requires a project id, with none configured. Please re-run gsutil config and make sure to follow the instructions for finding and entering your default project id.MissingSecurityHeaderz<Your credentials are invalid. Please run
$ gcloud auth loginzYour credentials are invalid. For more help, see "gsutil help creds", or re-run the gsutil config command (see "gsutil help config").zHttpError: statusr   z, a<  Got a "Broken pipe" error. This can happen to clients using Python 2.x, when the server sends an error response and then closes the socket (see http://bugs.python.org/issue5542). If you are trying to upload a large object you might retry with a small (say 200k) object, and see if you get a more specific error code.r   zs3://rC   ac  Got a "Connection reset by peer" error. One way this can happen is when copying data to/from an S3 regional bucket. If you are using a regional S3 bucket you could try re-running this command using the regional S3 endpoint, for example s3://s3-<region>.amazonaws.com/your-bucket. For details about this problem see https://github.com/boto/boto/issues/2207z
%s

zFailed to retrieve valid credentials (%s). Make sure you selected and pasted the ENTIRE authorization code (including any numeric prefix e.g. '4/').zKYou must re-authenticate with your SAML IdP. Please run
$ gcloud auth loginzGYou must re-authenticate with your SAML IdP. Please run
$ gsutil configzmac verify failurezEncountered an error while refreshing access token. If you are using a service account,
please verify that the gs_service_key_file_password field in your config file(s),
%s, is correct.zasn1 encoding routineszEncountered an error while refreshing access token. If you are using a service account,
please verify that the gs_service_key_file field in your config file(s),
%s, is correct.)Hr'   signalSIGINTr  r   
IS_WINDOWSSIGQUITr  rY   AttributeErrorr   r$  rV   r
   r  getoptGetoptErrormsgr   rS   InvalidUriErrorrR   r.   InvalidUrlErrorauth_handlerr*  ExternalBinaryErrorOSErrorerrnoEPIPEEINVALIsRunningInteractivelyrL   rQ   strerrorIOErrorr   WildcardExceptionr  r    r   r%  r   r   r!   r   r   HttpAccessTokenRefreshErrorgoogle_auth_exceptions
OAuthErrorRefreshErrorr#  apitools_exceptions	HttpErrorgetattrresponsecontentsocketerrorr   
ECONNRESETr   containsr   r   r  FlowExchangeErrorreauth_errorsReauthSamlLoginRequiredError	Exceptionr#   r   )rZ   r   r   r   rD   r   r   r   r   r  config_pathss              r7   r   r   c  s   b &--4P!!FNNN;)),*.*1*5*5*=;K<@7C * E E 
 2
1v{{&'2-=
 SVq1	 A			 5,QUU344		'	' L1AII=K		(	( L1AII=K				1	1 B3qA		,	, 03q6Q/	 G 	
5;;			AGGu||$;..00
 
hhqkk^ajj8AF	 
	5;;			AGGu||$;..00
 
hhqkk		,	, 2188q1	 	8  
 +xx**(11*	 +&q/1*	 +1*	 +1*



9
9
 
+
+
 
-
-
/  %%'',
 # 	
 
	&	&   AJJ"5qyyBH  
 vvayEKK
 C
  
e&&	&388D>+B+B7+K+KTYY
--EFG  !" A				.	.  :			!   
   
	3	3 4%%'' 7 8  3 4	 99YAACDL
 s1v% !--  
"SV	+O   !)s1  A&A) )
[3(B8 B88[C[,D![0E![-F		![*
F99![G22[?BJ!J!![.BL54L55[M%%[2
N[$N77[O[*	O88[	PA [$R<
R[":S!![8+V0(A3V0 V00![3X		<[[	[A([

[c                      SSK nSSKnWR	                  SS9nU R                  U5        WR                  U[        R                  S9  g! [         a  n[        SU-  US9   SnAN[SnAff = f)z6Performs gsutil-specific tab completion for the shell.r   NzIA library required for performing tab completion was not found.
Cause: %sr  F)add_help)exit_method)	argcompleteargparser   rV   ArgumentParserConfigureCommandArgumentParsersautocompleterL   rQ   )rZ   rV  rW  r  parsers        r7   r   r     st     
 ""E"2&0086sxx8	
 
   ,./0  s   A	 	
A*A%%A*__main__r;   )NNr   NFNN)mrp   
__future__r   r   r   r   ra   r:  r2  ru   r=   rI   r-  rJ  rL   r   rG   r   	six.movesr   r   google.authr	   rB  gslib.exceptionr.   r
   r   gslib.utils.version_checkr   gslib.utils.arg_helperr   gslib.utils.user_agent_helperr   r   gslib.utilsr   r   r   r   r   r  r
  r  rU   rK   rM   rN   rO   rP   rQ   MetricsCollector
IsDisabled
USER_AGENT	UserAgentr   r   google_reauthr   r   rO  r   r   gslib.cloud_apir   r   r   r    r!   gslib.command_runnerr"   apitools.base.py.exceptionsbasepyrE  r#   r$   gslib.sig_handlingr%   r&   r'   r   r   r   lstripr   r   r   rD   rF   r8   r-   rV   r[   	Formatterr]   r   r   r   r   r  r  r  r  r  r%  r   r   rl   rk   r9   r7   <module>rr     s    > & %  '     	 	   
   
 "  <  , - B 9 6   .
 %'*$  g&>&>&I&I&KL  %"" "   & 1   # 1 - / . , . 9 9 ! ! # / 7 4K 
 FH  FH  FH   5 2
Lg'' L  '|| 	_D*&Z:K2*#L" N .2044548<A9=59od$ z((46 I  
188,BQXX,M&##2CJJ7	 JJS !((1++
Z  sN   
H K K1J<I$#J<$!JJ<J.J<<KKK