
    )i                     F   S SK r S SKrS SKrS SKJrJrJrJrJrJ	r	J
r
JrJr  S SKJr  \" S5      R                  rSrSrSrSr\R*                  R,                  rSS	 jrS
 r " S S\R2                  5      r\/\R6                  l        \\R6                  l        \\/\R<                  l        \\R<                  l        \" \5      \R<                  l        \\R@                  " \5      /\RB                  l        \\RB                  l        \" \5      \RB                  l        \\R@                  " \5      /\RD                  l        \\RD                  l        \" \5      \RD                  l        / \RF                  l        \\RF                  l        \\\/\RH                  l        \\RH                  l        \" \5      \RH                  l        \\\	\/\RJ                  l        \\RJ                  l        \" \5      \RJ                  l        \ RL                  S 5       r'S r(S r)SS jr*g)    N)	BOOLCHARDWORDHANDLELONGLPWSTRMAX_PATHPDWORDULONG)SHELL_NAMES   z      i   c                    ^  U 4S jnU$ )Nc                 >   > U T:X  a  [         R                  " 5       eU $ N)ctypesWinError)retfuncargs	error_vals      N/var/www/html/land-doc-ocr/venv/lib/python3.13/site-packages/shellingham/nt.pycheck_check_handle.<locals>.check   s    )//##
     )r   r   s   ` r   _check_handler      s    
 Lr   c                    ^  U 4S jnU$ )Nc                 x   > U (       a  g[         R                  " 5       nUT:X  a  g[         R                  " U5      e)NTF)r   GetLastErrorr   )r   r   r   codeexpecteds       r   r   _check_expected.<locals>.check(   s1    ""$8ood##r   r   )r$   r   s   ` r   _check_expectedr&   '   s    $ Lr   c                   z    \ rS rSrS\4S\4S\4S\R                  " \5      4S\4S\4S\4S	\4S
\4S\	\
-  44
rSrg)ProcessEntry323   dwSizecntUsageth32ProcessIDth32DefaultHeapIDth32ModuleID
cntThreadsth32ParentProcessIDpcPriClassBasedwFlags	szExeFiler   N)__name__
__module____qualname____firstlineno__r   r   POINTERr   r   r   r	   _fields___static_attributes__r   r   r   r(   r(   3   sf    	5	U	% 	fnnU34		u	&	4 	E	dXo&Hr   r(   c              /      #    U " U0 UD6n Uv   [         R                  U5        g ! [         R                  U5        f = f7fr   )kernel32CloseHandle)fr   kwargshandles       r   _handlerA   g   s:     F%V$V$s   	A & A =A c               #   H  #    [         R                  n [        U [        S5       n[	        5       n[
        R                  " U5      Ul        [         R                  X5      nU(       a"  Uv   [         R                  X5      nU(       a  M"  S S S 5        g ! , (       d  f       g = f7f)Nr   )
r<   CreateToolhelp32SnapshotrA   TH32CS_SNAPPROCESSr(   r   sizeofr*   Process32FirstProcess32Next)r>   snapentryr   s       r   _iter_processesrJ   p   sq     ))A	&	*d }}U+%%d2K((5C c	 
+	*	*s   "B"A"B	B"
BB"c                     [        [        5      n [        R                  " SUR                  5      n[
        R                  U SX!5      (       a  UR                  $ U=R                  S-  sl        M`  )N r   r   )r   r	   r   create_unicode_buffervaluer<   QueryFullProcessImageNameW)prochsize	path_buffs      r   _get_full_pathrS   {   sU    ?D
00TZZ@	..uaII??"

a
	 r   c                 `   [        5        Vs0 s H&  nUR                  UR                  UR                  4_M(     nnU =(       d    [        R
                  " 5       n [        SUS-   5       H  n X0   u  pV[        U[        5      (       a  UR                  SS5      nUR                  S5      S   R                  5       nU[        ;  a  Un Ma  [        n[        [         R"                  USU 5       n	U[%        U	5      4sS S S 5        s  $    g s  snf ! [         a       g f = f! , (       d  f       M  = f)Nr      mbcsreplace.)rJ   r,   r0   r3   osgetpidrangeKeyError
isinstancebytesdecode
rpartitionlowerr   !PROCESS_QUERY_LIMITED_INFORMATIONrA   r<   OpenProcessrS   )
pid	max_depthprocproc_map_ppid
executablenamekeyrP   s
             r   	get_shellrm      s"    $%%D 	T55t~~FF%   
C1i!m$	'}D j%((#**69=J$$S)!,224{"C/X))3375./0 87+ %0 =  	( +	$ 87s#   -D-D,D
DD
D-	)r   )N
   )+
contextlibr   rY   ctypes.wintypesr   r   r   r   r   r   r	   r
   r   shellingham._corer   rN   INVALID_HANDLE_VALUEERROR_NO_MORE_FILESERROR_INSUFFICIENT_BUFFERrD   rb   windllr<   r   r&   	Structurer(   r=   argtypesrestyperC   errcheckr8   rF   rG   GetCurrentProcessIdrc   rO   contextmanagerrA   rJ   rS   rm   r   r   r   <module>r|      s     	
 
 
 * bz''    $* ! ==!!	V%%  "(   #   .3U^ ! ! *,2 ! ! )-:. ! ! * %+FNN>,J#K    "&   #2$     $*6>>.+I"J   !%   "1#    )+   %',   $!&e 4   %    -!    17vv/N # # ,.2 # # +/>0 # # ,
 % %6r   