
    6hY              
         % S SK Jr  S SK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
JrJrJrJr  SSKJrJr  \R$                  R&                  r\R$                  R*                  r\R$                  R.                  r\R$                  R2                  r\R6                  r\R:                  r\R>                  r \RB                  r"\R6                  r#\RH                  =r%r&\RN                  r(\(r)\RN                  r*\RV                  r,\(" S5      RZ                  r.S r/Sr0Sr1S	r2S
r3Sr4\Rj                  " \R6                  5      \Rj                  " \RN                  5      :X  a  \R>                  r6\R6                  r7OR\Rj                  " \Rp                  5      \Rj                  " \RN                  5      :X  a  \Rr                  r6\Rp                  r7 " S S\Rt                  5      r; " S S\Rt                  5      r<Sr=Sr>Sr?Sr@SrASrBSrCSrDSrE " S S\Rt                  5      rF " S S\Rt                  5      rGSrHS rI " S S\Rt                  5      rJ " S S \Rt                  5      rK " S! S"\Rt                  5      rL\ " S#5      RZ                  rM\ " S$5      RZ                  rNS%rOSrPS%rQ " S& S'\Rt                  5      rR " S( S)\Rt                  5      rS " S* S+\Rt                  5      rT\ \RH                  \ /\R                  lV        \*\R                  lW        \RN                  \*\RN                  \RN                  \RN                  \ \RN                  \RN                  /\R                  lV        \\R                  lW        \*/\R                  lV        \\R                  lW        \%\ \ \RN                  \ \ \(/\R                  lV        \(\R                  lW        \(\RN                  /\R                  lV        \\R                  lW        \(/\R                  lV        \\R                  lW         \%\%\RN                  /\R                  lV        \\R                  lW        \%\ /\R                  lV        \\R                  lW        S r`SraSrbSrcSrdS,reS-rf\%/\R                  lV        \"\R                  lW        \%\RN                  \ \RN                  \RN                  \RN                  \RN                  \ /\R                  lV        \\R                  lW        \%\RN                  \ /\R                  lV        \\R                  lW        \ \\ /\R                  lV        \(\R                  lW        \(\RN                  /\R                  lV        \\R                  lW        / \R                  lV        \ \R                  lW        \(\RN                  \ /\R                  lV        \ \R                  lW        \%\%\RN                  \RN                  \\ \RN                  \%\RN                  \RN                  /
\R                  lV        \\R                  lW        \"/\R                  lV        S\R                  lW        / \R                  lV        \ \R                  lW        \R                  " \\ 5      rr\r\/\R                  lV        \\R                  lW        \(\ /\R                  lV        \\R                  lW        \(\RN                  /\R                  lV        \\R                  lW        \ /\R                  lV        \(\R                  lW        \(\RN                  /\R                  lV        \\R                  lW        \RN                  \RN                  /\R                  lV        \\R                  lW        \(\RN                  /\R                  lV        \ \R                  lW        \(\R                  /\R                  lV        \\R                  lW        \R                  " \\)\75      r|\|\7/\R                  lV        \\R                  lW        \(\RN                  \ \RN                  \RN                  \RN                  /\R                  lV        \\R                  lW        SES. jrSFS/ jrSGSHS0 jjrSIS1 jrSJS2 jrSKS3 jrSKS4 jrSLS5 jrSMS6 jrSNS7 jrSOS8 jrSPS9 jrSPS: jrSOS; jr/ rS<\S='   SQS> jrSQS? jrSRS@ jrSMSA jrSSSB jrSTSC jrSUSD jrg! \^ a     GNf = f)V    )annotationsN)ListNoReturnOptionalTuple   )encodingpycompat   W   m   z      c                  $    \ rS rSrS\4S\4/rSrg)	_FILETIMED   dwLowDateTimedwHighDateTime N)__name__
__module____qualname____firstlineno___DWORD_fields___static_attributes__r       1/usr/lib/python3/dist-packages/mercurial/win32.pyr   r   D   s     &),<f+EFHr   r   c                  T    \ rS rSrS\4S\4S\4S\4S\4S\4S\4S	\4S
\4S\4/
rSrg)_BY_HANDLE_FILE_INFORMATIONH   dwFileAttributesftCreationTimeftLastAccessTimeftLastWriteTimedwVolumeSerialNumbernFileSizeHighnFileSizeLownNumberOfLinksnFileIndexHighnFileIndexLowr   N)r   r   r   r   r   r   r   r   r   r   r   r!   r!   H   sY    	V$	9%	Y'	I&	(	&!	 	6"	6"	&!Hr   r!            i      i    i   i  c                      \ rS rSrS\4S\4S\4S\4S\4S\4S\4S	\4S
\4S\4S\4S\4S\4S\4S\R                  4S\	4S\	4S\	4/r
Srg)_STARTUPINFOk   cb
lpReserved	lpDesktoplpTitledwXdwYdwXSizedwYSizedwXCountCharsdwYCountCharsdwFillAttributedwFlagswShowWindowcbReserved2lpReserved2	hStdInput
hStdOutput	hStdErrorr   N)r   r   r   r   r   _LPSTR_WORDctypesc_char_p_HANDLEr   r   r   r   r   r2   r2   k   s    	v	v	f	F			F	F	&!	&!	F#	F			(	g	w	g%Hr   r2   c                  0    \ rS rSrS\4S\4S\4S\4/rSrg)_PROCESS_INFORMATION   hProcesshThreaddwProcessId
dwThreadIdr   N)r   r   r   r   rJ   r   r   r   r   r   r   rL   rL      s)    	W	G		v	Hr   rL   i   c                  L    \ rS rSrS\R
                  4S\R
                  4/rSrg)_COORD   XYr   Nr   r   r   r   rH   c_shortr   r   r   r   r   rS   rS      s    fnn%V^^'<=Hr   rS   c                      \ rS rSrS\R
                  4S\R
                  4S\R
                  4S\R
                  4/rSrg)_SMALL_RECT   LeftTopRightBottomr   NrW   r   r   r   rZ   rZ      s9    	 		&..!	6>>"	Hr   rZ   c                  6    \ rS rSrS\4S\4S\4S\4S\4/rSrg)	_CONSOLE_SCREEN_BUFFER_INFO   dwSizedwCursorPositionwAttributessrWindowdwMaximumWindowSizer   N)	r   r   r   r   rS   rG   rZ   r   r   r   r   r   ra   ra      s1    	6	V$		[!	'Hr   ra   iii   c            
      v    \ rS rSrS\4S\4S\4S\4S\R                  4S\4S\R                  4S	\4S
\44	rSr	g)CERT_CHAIN_CONTEXT   cbSizedwErrorStatusdwInfoStatuscChainrgpChaincLowerQualityChainContextrgpLowerQualityChainContextfHasRevocationFreshnessTimedwRevocationFreshnessTimer   N)
r   r   r   r   r   rH   c_void_p_BOOLr   r   r   r   r   ri   ri      sY    	6	&!	 	6	V__%	$f-	&8	&.	$f-Hr   ri   c                  >    \ rS rSrS\4S\4S\R                  44rSrg)CERT_USAGE_MATCH   dwTypecUsageIdentifierrgpszUsageIdentifierr   N)	r   r   r   r   r   rH   rt   r   r   r   r   r   rw   rw      s%    	6	V$	1	Hr   rw   c            
      v    \ rS rSrS\4S\4S\4S\4S\4S\4S\R                  4S	\R                  4S
\44	r	Sr
g)CERT_CHAIN_PARA   rk   RequestedUsageRequestedIssuancePolicydwUrlRetrievalTimeoutfCheckRevocationFreshnessTimers   pftCacheResyncpStrongSignParadwStrongSignFlagsr   N)r   r   r   r   r   rw   ru   rH   rt   r   r   r   r   r   r}   r}      s[    	6	+,	"$45	 &)	(%0	$f-	6??+	FOO,	f%
Hr   r}         c                    [         R                  5       nUS:  a  US-  n[        R                  " US9n[	        UR
                  [        R                  " U 5      < SUR                  < 35      e)Nil        )codez: )		_kernel32GetLastErrorrH   WinErrorOSErrorerrnor	   strfromlocalstrerror)namer   errs      r   _raiseoserrorr   p  s[     !!#Dj
//t
$C
		x44T:CLLI r   c           	        [         R                  U S[        [        -  [        -  S [
        [        S 5      nU[        :X  a  [        U 5         [        5       n[         R                  U[        R                  " U5      5      (       d  [        U 5        U[         R                  U5        $ ! [         R                  U5        f = fNr   )r   CreateFileA_FILE_SHARE_READ_FILE_SHARE_WRITE_FILE_SHARE_DELETE_OPEN_EXISTING_FILE_FLAG_BACKUP_SEMANTICS_INVALID_HANDLE_VALUEr   r!   GetFileInformationByHandlerH   byrefCloseHandle)r   fhfis      r   _getfileinfor   |  s    				,,/AA#
B 
""d"(*33BR8HII$b!	b!s   AB' 'B>c                   [         R                  " [        5      nU" 5       n[        [         R                  " [        5      [        5       S9n[        R                  [        U [        U 5      5      nUc  [        S5        SnU(       d  US-  n [        R                  SUSS[         R                  " U5      US[         R                  " U5      5      (       d  [        S5        UR                  nUR                  [        -  S:H  U(       a  [        R!                  U5        [        R#                  U5        $ ! U(       a  [        R!                  U5        [        R#                  U5        f = f)al  Tests the given certificate to see if there is a complete chain to a
trusted root certificate.  As a side effect, missing certificates are
downloaded and installed unless ``build=False``.  True is returned if a
chain to a trusted root exists (even if built on the fly), otherwise
False.  NB: A chain to a trusted root does NOT imply that the certificate
is valid.
)rk   r   Ns   CertCreateCertificateContextr      s   CertGetCertificateChain)rH   POINTERri   r}   sizeofrw   _crypt32CertCreateCertificateContextX509_ASN_ENCODINGlenr   CertGetCertificateChainr   contentsrl   CERT_TRUST_IS_PARTIAL_CHAINCertFreeCertificateChainCertFreeCertificateContext)certbuildchainctxptr	pchainctx	chainparacertctxflagschainctxs           r   checkcertificatechainr     s"    ..!34KI}}_->N>PI 334TG 56E5//LL#LL#	
 	
 45%%%%(CCqH--i8++G4 --i8++G4s   A5D4 43E'c                     [         R                  XS 5      (       d  [        U 5        g g ! [         a    [        U 5         g f = fN)r   CreateHardLinkAr   AttributeError)srcdsts     r   oslinkr     s>    ((488# 9 cs   &* AAc                ,    [        U 5      R                  $ )z-return number of hardlinks for the given file)r   r*   )r   s    r   nlinksr     s    ,,,r   c                    [        U 5      n[        U5      nUR                  UR                  :H  =(       a9    UR                  UR                  :H  =(       a    UR                  UR                  :H  $ )zFReturns whether fpath1 and fpath2 refer to the same file or directory.)r   r'   r+   r,   fpath1fpath2res1res2s       r   samefiler     sa    DD!!T%>%>> 	54#6#66	5$"4"44r   c                `    [        U 5      n[        U5      nUR                  UR                  :H  $ )z9Returns whether fpath1 and fpath2 are on the same device.)r   r'   r   s       r   
samedevicer     s-    DD$$(A(AAAr   c           	     F   [         R                  " U R                  5       5      n[        5       n[        R                  US SS [        R                  " U5      S 5      (       d5  [        R                  5       nU[        :X  a  g[        R                  " U5      eUR                  $ r   )msvcrtget_osfhandlefilenor   r   PeekNamedPiperH   r   r   _ERROR_BROKEN_PIPEr   value)pipehandleavailr   s       r   peekpiper     s}    !!$++-0FHE""av||E2D  $$&$$ooc"";;r   c                    U R                   [         R                  :w  a  g[        R                  5       n U [        :H  =(       d	    U [
        :H  $ )NF)r   EINVALr   r   r   _ERROR_NO_DATA)r   s    r   lasterrorwaspipeerrorr     s9    
yyELL 

 
 
"C$$=~(==r   c                   [         R                  [        SU 5      nU(       ax   [        5       n[         R	                  U[
        R                  " U5      5      (       a(  UR                  [        :H  [         R                  U5        $  [         R                  U5        [         R                  5       [        :g  $ ! [         R                  U5        f = f)zKreturn True if pid is still running or unable to
determine, False otherwiseF)r   OpenProcess_PROCESS_QUERY_INFORMATIONr   GetExitCodeProcessrH   r   r   _STILL_ACTIVEr   r   _ERROR_INVALID_PARAMETER)pidhstatuss      r   testpidr     s     	8%EA	%XF++Av||F/CDD||}4!!!$ E !!!$!!#'??? !!!$s   AB6 6Cc                    Sn [         R                  " U S-   5      n[        R                  S[         R                  " U5      U 5      nUS:X  a  [         R
                  " 5       eX :X  a  [         R
                  " [        5      eUR                  $ )zreturn full path of hg.exeiX  r   Nr   )rH   create_string_bufferr   GetModuleFileNameAr   r   _ERROR_INSUFFICIENT_BUFFERr   )sizebufr   s      r   executablepathr     sk    D

%
%dQh
/C

&
&tV\\#->
EC
axoo	oo89999r   c                F   [         R                  R                  U 5      n[        [	        U5      [
        5      S-   n[        R                  " U5      n[        R                  U[        R                  " U5      U5      (       d  [        R                  " 5       eUR                  $ )zGet the mount point of the filesystem from a directory or file
(best-effort)

Returns None if we are unsure. Raises OSError on ENOENT, EPERM, etc.
r   )ospathrealpathmaxr   	_MAX_PATHrH   r   r   GetVolumePathNameAr   r   r   )r   r   r   r   s       r   getvolumenamer     st     ww%H s8}i(1,D

%
%d
+C''&,,s2CTJJoo99r   c                x   [        U 5      n[        R                  U5      nU[        :X  a  gU[        [
        [        [        4;  a  g[        S-   n[        R                  " U5      n[        R                  USSSSS[        R                  " U5      U5      (       d  [        R                  " 5       eUR                  $ )zGet the filesystem type name from a directory or file (best-effort)

Returns None if we are unsure. Raises OSError on ENOENT, EPERM, etc.
s   cifsNr   r   )r   r   GetDriveTypeA_DRIVE_REMOTE_DRIVE_REMOVABLE_DRIVE_FIXED_DRIVE_CDROM_DRIVE_RAMDISKr   rH   r   GetVolumeInformationAr   r   r   )r   volumetr   r   s        r   	getfstyper   )  s    
 4 F'AM	
	 
 q=D&&t,D**atT6<<+=t  oo::r   c                 &   [        S5      n [        R                  " U R                  S-   5      n[        R                  [        R                  " U5      [        R                  " U 5      5      (       d  [        R                  " 5       eUR                  $ )zreturn name of current useri,  r   )r   rH   r   r   	_advapi32GetUserNameAr   r   )r   r   s     r   getuserr  H  s_    #;D

%
%djj1n
5C!!&,,s"3V\\$5GHHoo99r   zList[_SIGNAL_HANDLER]_signalhandlerc                     S n [         (       a  g[        U 5      n[         R                  U5        [        R	                  US5      (       d  [
        R                  " 5       eg)zRegister a termination handler for console events including
CTRL+C. python signal handlers do not work well with socket
operations.
c                .    [         R                  S5        g )Nr   )r   ExitProcess)events    r   handler!setsignalhandler.<locals>.handlerZ  s    a r   NT)r  _SIGNAL_HANDLERappendr   SetConsoleCtrlHandlerrH   r   )r  r   s     r   setsignalhandlerr  T  sN    ! ~ A!**1d33oo 4r   c                 p    S n [         R                  5       n[        R                  [	        U 5      U5        g )Nc                    [        5       n[        R                  U [        R                  " U5      5        XR
                  :X  a  [        R                  U [        5        gg)NFT)r   _user32GetWindowThreadProcessIdrH   r   r   
ShowWindow_SW_HIDE)hwndr   wpids      r   callbackhidewindow.<locals>.callbackf  sB    x((v||D/AB**tX.r   )r   GetCurrentProcessIdr  EnumWindows_WNDENUMPROC)r  r   s     r   
hidewindowr  e  s,     
'
'
)CX.4r   c                    Sn Sn[         R                  [        5      nUb
  U[        :X  a  X4$ [	        5       n[         R                  U[        R                  " U5      5      (       d  X4$ UR                  R                  UR                  R                  -
  n UR                  R                  UR                  R                  -
  S-   nX4$ )NO      r   )r   GetStdHandle_STD_ERROR_HANDLEr   ra   GetConsoleScreenBufferInforH   r   rf   r^   r\   r_   r]   )widthheight	screenbufcsbis       r   termsizer%  r  s    
 EF&&I I)>>}&(D//	6<<;MNN}MM$--"4"44E]]!!DMM$5$559F=r   c                 L   Sn [         R                  [        5      nU[        :X  a  g[	        S5      n[         R                  U[        R                  " U5      5      (       d  gUR                  U -  S:X  a0  U=R                  U -  sl        [         R                  X5      (       d  gg)z]Enable virtual terminal mode for the associated console.  Return True if
enabled, else False.r.   Fr   T)
r   r  _STD_OUTPUT_HANDLEr   r   GetConsoleModerH   r   r   SetConsoleMode)"ENABLE_VIRTUAL_TERMINAL_PROCESSINGr   modes      r   enablevtmoder,    s     *-&##F &&!9D##FFLL,>??

77A=

88
''55r   c                   [        5       n[        R                  " [         5      Ul        [	        5       nSn[
        R                   H  nUSU[
        R                  U   4-  -  nM      U(       d  SnUS-  n[        R                  " [        R                  " [
        R                  U 5      5      n [        R                  S [
        R                  " U 5      S S S[        U[
        R                   " 5       [        R"                  " U5      [        R"                  " U5      5
      nU(       d  [        R$                  " 5       e[        R'                  UR(                  5        [        R'                  UR*                  5        UR,                  $ )Nr   s   %s=%s     F)r2   rH   r   r4   rL   r	   environ
subprocesslist2cmdliner
   rapplyr   r   CreateProcessA
strtolocal_CREATE_NO_WINDOWgetcwdr   r   r   rN   rO   rP   )argssipienvkress         r   spawndetachedr=    s    
BMM,'BE		B
CzQ 0 0 3444 5LC""8??83H3H$#OPD 
"
"D!RRC oo"++&"**%>>r   c                `   [         R                  R                  U 5      (       a1  [        [        R
                  S[        R                  " U 5      -  5      e[        S5       H6  nSU [        R                  " SS5      4-  n [         R                  " X5          O   [        [        R                  S5      e [         R                  " U5        g! [         a     My  f = f! [         aE    [        R!                  U["        5         [         R                  " U5         g! [         a      gf = ff = f)z3try to implement POSIX' unlink semantics on Windowsz'Unlinking directory not permitted: '%s'
   s   %s-%08xr   l    z"No usable temporary filename foundN)r   r   isdirr   r   EPERMr	   r   rangerandomrandintrenameFileExistsErrorEEXISTunlinkr   SetFileAttributesA_FILE_ATTRIBUTE_NORMAL)r   triestemps      r   rH  rH    s     
ww}}T KK6##D)*
 	
. rT6>>!Z#@AA	IId!	  ell$HII
		$  		   	$$T+AB	IIdO 	 		s<   C6C 
CC$D-D
D)%D-(D))D-c                t    [         R                  " U 5        U(       a  [        R                  U [        5        g g r   )r   mkdirr   rI  #_FILE_ATTRIBUTE_NOT_CONTENT_INDEXED)r   
notindexeds     r   makedirrQ    s&    HHTN$$T+NO r   )r   bytesreturnr   )r   rR  rS  r!   )T)r   rR  r   boolrS  rT  )r   rR  r   rR  rS  None)r   rR  rS  int)r   rR  r   rR  rS  rT  )rS  rV  )rS  rT  )r   rV  rS  rT  )rS  rR  )r   rR  rS  zOptional[bytes])rS  rU  )rS  zTuple[int, int])r7  zList[bytes]rS  rV  )r   rR  rS  rU  )r   rR  rP  rT  rS  rU  )
__future__r   rH   ctypes.wintypeswintypesr   r   r   rC  r0  typingr   r   r   r    r	   r
   windllkernel32r   advapi32r   user32r  crypt32r   c_longru   c_ushortrG   c_ulongr   c_uint_UINT_LONGrI   _LPCSTRrF   rt   rJ   _HWND_PCCERT_CONTEXTMAX_PATHr   r   r   _ERROR_SUCCESS_ERROR_NO_MORE_FILESr   r   r   r   r   _WPARAM_LPARAM
c_longlongc_ulonglong	Structurer   r!   r   r   r   r   r   rJ  rO  r   r   r2   rL   r5  r  rS   rZ   ra   r'  r  r   r   PKCS_7_ASN_ENCODINGri   rw   r}   r   argtypesrestyper   r   r   r   r   r   r   rI  _DRIVE_UNKNOWN_DRIVE_NO_ROOT_DIRr   r   r   r   r   r   r   r   r   r   r   r   r3  r  r  WINFUNCTYPEr	  r  r)  r(  r  r   r   r  c_intr  r  r  r   r   r   r   r   r   r   r   r   r   r   r   r   r   r  r  __annotations__r  r  r%  r,  r=  rH  rQ  r   r   r   <module>rz     s"   #  "   	    MM""	MM""	
--

==   		?? "&
////	))        
==6==#AAnnGmmG]]6$$%v)GG  GGG   G&"2"2      (   &, # $  6## .6++   >V >&"" &"2"2  C[&& 3K%%  &     )) v'' f&& " 
OO
2 % % .
 1@ % % - OO
OO
OO
OO

OO
OO	-     ) ,1     (0?/@ # # ,.3 # # + 


OO

"	    !(	   18&//0J	 $ $ -/4	 $ $ ,")	    %	   	*17FOO)LI&(-I% *1&(9	   %',	   $  $+9	    "'	    
OO

OO
OO
OO
OO
	,	   ( +0	   ')0&//6(J	   %',	   $"(%!8	    '	   )0&//(B	   %',	   $"$	   !'	   )0&//6(J	   %'-	   $ 
OO
OO	

OO
OO
OO%	   ! $)	    "'	    $	   )+	   &(.	   % $$UF3,;U+C	   (*/	   '%,f$5	   !#(	    %,foo$>	   !#(	    #)(	   !(	   18&//0J	 $ $ -/4	 $ $ ,#)??FOO"D	   !&	   -4foo,F     )+1     (&5   "    !!%8 ,g6   #    
OO

OO
OO
OO$	     #(	   	"*/5d-
B>@*> )+% * "
5*4'T4nP}  		s   /c cc