§
    �ŸjQS  ã            
       óH  — d Z ddlZddlZddlZddlZddlZddlmZ ddlmZm	Z	m
Z
mZmZmZmZmZ  ee¦  «        Z ee¦  «        Z ee¦  «        Z G d„ dej        ¦  «        Z ee¦  «        Z G d„ dej        ¦  «        Z ee¦  «        Z G d	„ d
ej        ¦  «        Z ee¦  «        ZdZdZdZdZdZdZdZ dZ!dZ"dZ#dZ$dZ%dZ&dZ'dZ(dZ)ej*        j+        j,        Z,g e,_-        ee,_.        ej*        j+        j/        Z0eeee
eeege0_-        ee0_.        ej*        j+        j1        Z1 ee¦  «         ee¦  «        eege1_-        ee1_.        ej*        j+        j2        Z3eeeeeee
eeeg
e3_-        ee3_.        ej*        j+        j4        Z4eege4_-        ee4_.        ej*        j+        j5        Z5g e5_-        ee5_.        ej*        j+        j6        Z6ege6_-        ee6_.        ej*        j+        j7        Z7ee
eee
ge7_-        ee7_.        ej*        j+        j8        Z8ee
eee
ge8_-        ee8_.        ej*        j+        j9        Z9eege9_-        ee9_.        ej*        j+        j:        Z:eege:_-        ee:_.        ej*        j+        j;        Z;ege;_-        ee;_.        ej*        j+        j<        Z<eege<_-        ee<_.        ej*        j+        j=        Z=eeeeeeege=_-        ee=_.        ej*        j+        j>        Z>eeege>_-        ee>_.        ej*        j+        j?        Z?ege?_-        ee?_.        ej*        j@        jA        ZAe eejB        ¦  «        geA_-         ee¦  «        eA_.        ej*        j+        jC        ZCe	geC_-        e	eC_.         G d„ deD¦  «        ZE G d„ deD¦  «        ZFd„ ZGeHdk    r# eId¦  «          eGd¦  «          eId¦  «         dS dS ) zvWindows-specific implementation of process utilities with direct WinAPI.

This file is meant to be used by process.py
é    N)ÚPOINTER)ÚHANDLEÚHLOCALÚLPVOIDÚWORDÚDWORDÚBOOLÚULONGÚLPCWSTRc                   ó$   — e Zd ZdefdefdefgZdS )ÚSECURITY_ATTRIBUTESÚnLengthÚlpSecurityDescriptorÚbInheritHandleN)Ú__name__Ú
__module__Ú__qualname__r   r   r	   Ú_fields_© ó    út/var/www/finuniver-perm.ru/html/student/venv/lib/python3.11/site-packages/IPython/utils/_process_win32_controller.pyr   r      s-   € € € € € Ø˜EÐ"Ø'¨Ð0Ø! 4Ð(ð*€H€H€Hr   r   c                   ó~   — e Zd Zdefdefdefdefdefdefdefdefd	efd
efdefdefdefdefdefdefdefdefgZdS )ÚSTARTUPINFOÚcbÚ
lpReservedÚ	lpDesktopÚlpTitleÚdwXÚdwYÚdwXSizeÚdwYSizeÚdwXCountCharsÚdwYCountCharsÚdwFillAttributeÚdwFlagsÚwShowWindowÚcbReserved2ÚlpReserved2Ú	hStdInputÚ
hStdOutputÚ	hStdErrorN)	r   r   r   r   r   r   r   r   r   r   r   r   r   r      s¢   € € € € € Ø�u�Ø˜wÐ'Ø˜gÐ&Ø˜GÐ$Ø˜�Ø˜�Ø˜EÐ"Ø˜EÐ"Ø  %Ð(Ø  %Ð(Ø" EÐ*Ø˜EÐ"Ø Ð%Ø Ð%Ø Ð'Ø˜fÐ%Ø˜vÐ&Ø˜fÐ%ð#'€H€H€Hr   r   c                   ó*   — e Zd ZdefdefdefdefgZdS )ÚPROCESS_INFORMATIONÚhProcessÚhThreadÚdwProcessIdÚ
dwThreadIdN)r   r   r   r   r   r   r   r   r   r-   r-   2   s5   € € € € € Ø˜VÐ$Ø˜FÐ#Ø Ð&Ø˜uÐ%ð'€H€H€Hr   r-   é&   ém   éè   é   é   é   é   i   i  i  ì   ÿÿ é   c                   ó   — e Zd ZdZd„ Zd„ ZdS )ÚAvoidUNCPathaÂ  A context manager to protect command execution from UNC paths.

    In the Win32 API, commands can't be invoked with the cwd being a UNC path.
    This context manager temporarily changes directory to the 'C:' drive on
    entering, and restores the original working directory on exit.

    The context manager returns the starting working directory *if* it made a
    change and None otherwise, so that users can apply the necessary adjustment
    to their system calls in the event of a change.

    Examples
    --------
    ::
        cmd = 'dir'
        with AvoidUNCPath() as path:
            if path is not None:
                cmd = '"pushd %s &&"%s' % (path, cmd)
            os.system(cmd)
    c                 ó¸   — t          j        ¦   «         | _        | j                             d¦  «        | _        | j        rt          j        d¦  «         | j        S d S )Nz\\zC:)ÚosÚgetcwdÚpathÚ
startswithÚis_unc_pathÚchdir©Úselfs    r   Ú	__enter__zAvoidUNCPath.__enter__¬   sN   € Ý”I‘K”KˆŒ	Øœ9×/Ò/°Ñ6Ô6ˆÔØÔð 	åŒH�T‰NŒNˆNØ”9Ðð �4r   c                 óJ   — | j         rt          j        | j        ¦  «         d S d S ©N)rB   r>   rC   r@   ©rE   Úexc_typeÚ	exc_valueÚ	tracebacks       r   Ú__exit__zAvoidUNCPath.__exit__¸   s/   € ØÔð 	 ÝŒH�T”YÑÔÐÐÐð	 ð 	 r   N)r   r   r   Ú__doc__rF   rM   r   r   r   r<   r<   ˜   s<   € € € € € ðð ð&
ð 
ð 
ð ð  ð  ð  ð  r   r<   c                   óX   — e Zd ZdZdd„Zd„ Zd„ Zd„ Zdd„Zd	„ Z	d
„ Z
d„ Zd„ Zd„ Zd„ ZdS )ÚWin32ShellCommandControllera  Runs a shell command in a 'with' context.

    This implementation is Win32-specific.

    Example:
        # Runs the command interactively with default console stdin/stdout
        with ShellCommandController('python -i') as scc:
            scc.run()

        # Runs the command using the provided functions for stdin/stdout
        def my_stdout_func(s):
            # print or save the string 's'
            write_to_stdout(s)
        def my_stdin_func():
            # If input is available, return it as a string.
            if input_available():
                return get_input()
            # If no input available, return None after a short delay to
            # keep from blocking.
            else:
                time.sleep(0.01)
                return None
      
        with ShellCommandController('python -i') as scc:
            scc.run(my_stdout_func, my_stdin_func)
    Tc                 ó"   — || _         || _        dS )aU  Initializes the shell command controller.

        The cmd is the program to execute, and mergeout is
        whether to blend stdout and stderr into one output
        in stdout. Merging them together in this fashion more
        reliably keeps stdout and stderr in the correct order
        especially for interactive shell usage.
        N)ÚcmdÚmergeout)rE   rR   rS   s      r   Ú__init__z$Win32ShellCommandController.__init__Ù   s   € ð ˆŒØ ˆŒˆˆr   c                 óÜ  ‡— | j         }| j        }d\  | _        | _        | _        d | _        	 d gdz  \  }}}}}}t          ¦   «         Št          j        ‰¦  «        ‰_	        d‰_
        d ‰_        ˆfd„}	 |	d¬¦  «        \  }}|rft          ¦   «         }t          t          ¦   «         |t          ¦   «         t          j        |¦  «        ddt           ¦  «        st          j        ¦   «         ‚n |	d¬¦  «        \  }} |	d¬¦  «        \  }}t%          ¦   «         }
t'          ¦   «         }t          j        |¦  «        |_        ||_        ||_        ||_        t0          |_        t4          t6          z  }t9          d d|z   d d d|d d t          j        |¦  «        t          j        |
¦  «        ¦
  «
        st          j        ¦   «         ‚t;          |¦  «         d }t;          |¦  «         d }|�t;          |¦  «         d }|| _        d }|| _        d }|s	|| _        d }|
| _        |rt;          |¦  «         |rt;          |¦  «         |rt;          |¦  «         |rt;          |¦  «         |rt;          |¦  «         |rt;          |¦  «         nl# |rt;          |¦  «         |rt;          |¦  «         |rt;          |¦  «         |rt;          |¦  «         |rt;          |¦  «         |rt;          |¦  «         w w xY w| S )	N©NNNé   Tc                 óœ  •— t          ¦   «         t          ¦   «         f}t          t          j        |d         ¦  «        t          j        |d         ¦  «        t          j        ‰¦  «        d¦  «        st          j        ¦   «         ‚t          ||          t          d¦  «        st          j        ¦   «         ‚|d         j        |d         j        fS )z¿Creates a Windows pipe, which consists of two handles.

                The 'uninherit' parameter controls which handle is not
                inherited by the child process.
                r   r5   )r   Ú
CreatePipeÚctypesÚbyrefÚWinErrorÚSetHandleInformationÚHANDLE_FLAG_INHERITÚvalue)Ú	uninheritÚhandlesÚsaAttrs     €r   Úcreate_pipez:Win32ShellCommandController.__enter__.<locals>.create_pipeõ   s­   ø€ õ !™(œ(¥F¡H¤HÐ,�Ý!¥&¤,¨w°q¬zÑ":Ô":Ý"œL¨°¬Ñ4Ô4µf´lÀ6Ñ6JÔ6JÈAñOô Oð ,å œ/Ñ+Ô+Ð+Ý+¨G°IÔ,>Ý/°ñ4ô 4ð ,å œ/Ñ+Ô+Ð+Ø˜q”zÔ'¨°¬Ô)9Ð9Ð9r   r   )r`   r5   zcmd.exe /c )rR   rS   ÚhstdoutÚhstdinÚhstderrÚ
piProcInfor   rZ   Úsizeofr   r   r   r   ÚDuplicateHandleÚGetCurrentProcessr[   ÚDUPLICATE_SAME_ACCESSr\   r-   r   r   r)   r*   r+   ÚSTARTF_USESTDHANDLESr%   ÚCREATE_SUSPENDEDÚCREATE_NO_WINDOWÚCreateProcessÚCloseHandle)rE   rR   rS   Ú	p_hstdoutÚ	c_hstdoutÚ	p_hstderrÚ	c_hstderrÚp_hstdinÚc_hstdinrc   rg   ÚsiStartInfoÚdwCreationFlagsrb   s                @r   rF   z%Win32ShellCommandController.__enter__å   s{  ø€ ØŒhˆØ”=ˆà2BÑ/ˆŒ�d”k 4¤<ØˆŒðV	'à59°F¸1±Hñ2ˆI�y )Ø˜x¨õ )Ñ*Ô*ˆFÝ#œ]¨6Ñ2Ô2ˆFŒNØ$(ˆFÔ!Ø*.ˆFÔ'ð:ð :ð :ð :ð :ð $/ ;¸Ð#;Ñ#;Ô#;Ñ ˆI�yð ð @Ý"™HœH�	Ý&Õ'8Ñ':Ô':¸IÝ 1Ñ 3Ô 3µV´\À)Ñ5LÔ5LØ ! 4Õ)>ñ@ô @ð ,õ !œ/Ñ+Ô+Ð+ð,ð
 (3 {¸QÐ'?Ñ'?Ô'?Ñ$�	˜9Ø#. ;¸Ð#;Ñ#;Ô#;ÑˆH�xõ -Ñ.Ô.ˆJÝ%™-œ-ˆKÝ#œ]¨;Ñ7Ô7ˆKŒNØ$,ˆKÔ!Ø%.ˆKÔ"Ø$-ˆKÔ!Ý"6ˆKÔÝ.Õ1AÑAˆOå  Ø" SÑ(Ø˜$  oØ˜$¥¤¨[Ñ 9Ô 9Ý”L Ñ,Ô,ñ	.ô .ð (õ
 ”oÑ'Ô'Ð'õ ˜Ñ!Ô!Ð!ØˆHÝ˜	Ñ"Ô"Ð"ØˆIØÐ$Ý˜IÑ&Ô&Ð&Ø �	ð #ˆDŒKØˆHØ$ˆDŒLØˆIØð !Ø(�”Ø �	Ø(ˆDŒOð ð &Ý˜HÑ%Ô%Ð%Øð &Ý˜HÑ%Ô%Ð%Øð 'Ý˜IÑ&Ô&Ð&Øð 'Ý˜IÑ&Ô&Ð&Øð 'Ý˜IÑ&Ô&Ð&Øð 'Ý˜IÑ&Ô&Ð&øøð ð &Ý˜HÑ%Ô%Ð%Øð &Ý˜HÑ%Ô%Ð%Øð 'Ý˜IÑ&Ô&Ð&Øð 'Ý˜IÑ&Ô&Ð&Øð 'Ý˜IÑ&Ô&Ð&Øð 'Ý˜IÑ&Ô&Ð&Ð&ð'øøøð ˆs   ­G,J  Ê A)K)c                 ó\  — t          ¦   «         }t          d¦  «        }	  |¦   «         }|€€t          |t          j        |¦  «        ¦  «        st          j        ¦   «         ‚|j        t          k    rd S t          |ddt          j        |¦  «        d ¦  «        st          j        ¦   «         ‚Œ�t          |t          ¦  «        r| 
                    d¦  «        }t          |t          ¦  «        st          d¦  «        ‚t          |¦  «        dk    rd S  ||¦  «         t          |¦  «        dk    r€t          ||t          |¦  «        t          j        |¦  «        d ¦  «        s,t          ¦   «         t          k    rd S t          j        ¦   «         ‚||j        d …         }t          |¦  «        dk    °€�Œ�)Nr   TÚ Úutf_8z$internal stdin function string error)r   ÚGetExitCodeProcessrZ   r[   r\   r_   ÚSTILL_ACTIVEÚ	WriteFileÚ
isinstanceÚunicodeÚencodeÚstrÚRuntimeErrorÚlenÚGetLastErrorÚERROR_NO_DATA)rE   ÚhandleÚhprocessÚfuncÚstdout_funcÚexitCodeÚbytesWrittenÚdatas           r   Ú_stdin_threadz)Win32ShellCommandController._stdin_threadE  s   € Ý‘7”7ˆÝ˜Q‘x”xˆð-	1ð �4‘6”6ˆDð ˆ|å)¨(µF´LÀÑ4JÔ4JÑKÔKð ,Ý œ/Ñ+Ô+Ð+Ø”>¥\Ò1Ð1Ø�Få  ¨¨QÝœ \Ñ2Ô2°Dñ:ô :ð ,å œ/Ñ+Ô+Ð+Øõ ˜$¥Ñ(Ô(ð ,Ø—{’{ 7Ñ+Ô+�õ ˜d¥CÑ(Ô(ð KÝ"Ð#IÑJÔJÐJõ �4‰yŒy˜AŠ~ˆ~Ø�ð ˆK˜ÑÔÐõ �d‘)”)˜q’.�.å  ¨­s°4©y¬yÝœ \Ñ2Ô2°Dñ:ô :ð ,õ $‘~”~­Ò6Ð6Ø˜Ý œ/Ñ+Ô+Ð+à˜LÔ.Ð/Ð/Ô0�õ �d‘)”)˜q’.�.ñI-	1r   c                 óX  — t          j        d¦  «        }	 t          d¦  «        }t          ||dt          j        |¦  «        d ¦  «        s.t          ¦   «         }|t          k    rd S t          j        ¦   «         ‚|j        d|j        …         } || 	                    dd¦  «        ¦  «         Œ–)Ni   Tr   r{   Úreplace)
rZ   Úcreate_string_bufferr   ÚReadFiler[   r…   ÚERROR_BROKEN_PIPEr\   r_   Údecode)rE   r‡   r‰   r�   Ú	bytesReadÚleÚss          r   Ú_stdout_threadz*Win32ShellCommandController._stdout_threadw  s§   € åÔ*¨4Ñ0Ô0ˆð	/Ý˜a™œˆIÝ˜F D¨$Ýœ YÑ/Ô/°ñ7ô 7ð ,å!‘^”^�ØÕ*Ò*Ð*Ø�Få œ/Ñ+Ô+Ð+à”
˜1˜Yœ_Ð,Ô-ˆAàˆD�—’˜' 9Ñ-Ô-Ñ.Ô.Ð.ð	/r   Nc                 óR  — |€|€|€|                       ¦   «         S |�| j        rt          d¦  «        ‚d}g }|r.t          j        | j        | j        | j        j        ||f¬¦  «        }| 	                    t          j        | j
        | j        |f¬¦  «        ¦  «         | j        s9|€|}| 	                    t          j        | j
        | j        |f¬¦  «        ¦  «         t          | j        j        ¦  «        dk    rt          j        ¦   «         ‚|�|                     ¦   «          |D ]}|                     ¦   «          Œt%          | j        j        t&          ¦  «        t(          k    rt          j        ¦   «         ‚|D ]}|                     ¦   «          Œ|�|                     ¦   «          dS dS )a¨  Runs the process, using the provided functions for I/O.

        The function stdin_func should return strings whenever a
        character or characters become available.
        The functions stdout_func and stderr_func are called whenever
        something is printed to stdout or stderr, respectively.
        These functions are called from different threads (but not
        concurrently, because of the GIL).
        NzqShell command was initiated with merged stdin/stdout, but a separate stderr_func was provided to the run() method)ÚtargetÚargsr9   )Ú
_run_stdiorS   rƒ   Ú	threadingÚThreadrŽ   re   rg   r.   Úappendr˜   rd   rf   ÚResumeThreadr/   rZ   r\   ÚstartÚWaitForSingleObjectÚINFINITEÚWAIT_FAILEDÚjoin)rE   rŠ   Ú
stdin_funcÚstderr_funcÚstdin_threadÚthreadsÚthreads          r   ÚrunzWin32ShellCommandController.runˆ  sõ  € ð Ð :Ð#5¸+Ð:MØ—?’?Ñ$Ô$Ð$àÐ" t¤}Ð"Ýð  7ñ 8ô 8ð 8ð
 ˆØˆØð 	:Ý$Ô+°4Ô3EØ&*¤k°4´?Ô3KØ *¨Kð&9ð:ñ :ô :ˆLð 	�Š•yÔ'¨tÔ/BØ*.¬,¸Ð)DðFñ Fô Fñ 	Gô 	Gð 	GàŒ}ð 	KØÐ"Ø)�Ø�NŠN�9Ô+°4Ô3FØ.2¬l¸KÐ-HðJñ Jô Jñ Kô Kð Kõ ˜œÔ/Ñ0Ô0°JÒ>Ð>Ý”/Ñ#Ô#Ð#ØÐ#Ø×ÒÑ Ô Ð Øð 	ð 	ˆFØ�LŠL‰NŒNˆNˆNå˜tœÔ7½ÑBÔBÝò ð  å”/Ñ#Ô#Ð#àð 	ð 	ˆFØ�KŠK‰MŒMˆMˆMð Ð#Ø×ÒÑÔÐÐÐð $Ð#r   c                 óœ  — t          j        t          j                             ¦   «         ¦  «        }t          |d¦  «        }|t          k    rt          j        ¦   «         ‚|t          k    rt          dd¬¦  «         dS t          j        d¦  «        }t          d¦  «        }t          dd¬¦  «         t          ||dt          j        |¦  «        d¦  «        st          j        ¦   «         ‚t          |¦  «         |j        }|                     d	d
¦  «        }|                     dd
¦  «        }t          t%          |¦  «        dz   d¬¦  «         |S )z>Use the raw Win32 handle of sys.stdin to do non-blocking readséd   ú.rz   )ÚendNr6   r   ú?z
ú
úú )ÚmsvcrtÚget_osfhandleÚsysÚstdinÚfilenor¢   r¤   rZ   r\   ÚWAIT_TIMEOUTÚprintr‘   r   r’   r[   ÚFlushConsoleInputBufferr_   r�   Úrepr)rE   r‡   Úresultr�   r•   s        r   Ú_stdin_raw_nonblockz/Win32ShellCommandController._stdin_raw_nonblock»  s0  € õ
 Ô%¥c¤i×&6Ò&6Ñ&8Ô&8Ñ9Ô9ˆÝ$ V¨SÑ1Ô1ˆØ•[Ò Ð Ý”/Ñ#Ô#Ð#Ø•|Ò#Ð#Ý�#˜2ÐÑÔÐØ�4åÔ.¨sÑ3Ô3ˆDÝ˜a™œˆIÝ�#˜2ÐÑÔÐå˜F D¨#Ýœ YÑ/Ô/°ñ7ô 7ð (å”oÑ'Ô'Ð'õ $ FÑ+Ô+Ð+à”:ˆDØ—<’< ¨Ñ-Ô-ˆDØ—<’<  dÑ+Ô+ˆDÝ•$�t‘*”*˜sÑ"¨Ð+Ñ+Ô+Ð+ØˆKr   c                 óÆ   — 	 t           j                             d¦  «        }|                     dd¦  «        }|S # t          $ r}|j        t          k    rY d}~dS |‚d}~ww xY w)zUse a blocking stdin readr5   r²   r±   N)r¶   r·   Úreadr�   ÚWindowsErrorÚwinerrorr†   )rE   r�   Úwes      r   Ú_stdin_raw_blockz,Win32ShellCommandController._stdin_raw_blockÚ  sr   € ð

	Ý”9—>’> !Ñ$Ô$ˆDØ—<’<  dÑ+Ô+ˆDØˆKøÝð 	ð 	ð 	ØŒ{�mÒ+Ð+à�t�t�t�t�tð �øøøøð	øøøs   ‚69 ¹
A ÁAÁAÁA c                 óz   — t          |dt          j        ¬¦  «         t          j                             ¦   «          dS ©zWrites the string to stdoutrz   )r¯   ÚfileN)rº   r¶   ÚstdoutÚflush©rE   r—   s     r   Ú_stdout_rawz'Win32ShellCommandController._stdout_rawë  ó3   € åˆa�R�cœjÐ)Ñ)Ô)Ð)ÝŒ
×ÒÑÔÐÐÐr   c                 óz   — t          |dt          j        ¬¦  «         t          j                             ¦   «          dS rÆ   )rº   r¶   ÚstderrrÉ   rÊ   s     r   Ú_stderr_rawz'Win32ShellCommandController._stderr_rawð  rÌ   r   c                 ó    — | j         r!|                      | j        | j        ¬¦  «        S |                      | j        | j        | j        ¬¦  «        S )zôRuns the process using the system standard I/O.

        IMPORTANT: stdin needs to be asynchronous, so the Python
                   sys.stdin object is not used. Instead,
                   msvcrt.kbhit/getwch are used asynchronously.
        )rŠ   r¦   )rŠ   r¦   r§   )rS   r«   rË   rÄ   rÏ   rD   s    r   rœ   z&Win32ShellCommandController._run_stdioõ  sb   € ð  Œ=ð 	4Ø—8’8¨$Ô*:Ø!%Ô!6ð ñ 8ô 8ð 8ð —8’8¨$Ô*:Ø!%Ô!6Ø"&Ô"2ð ñ 4ô 4ð 4r   c                 óV  — | j         rt          | j         ¦  «         d | _         | j        rt          | j        ¦  «         d | _        | j        rt          | j        ¦  «         d | _        | j        �;t          | j        j        ¦  «         t          | j        j        ¦  «         d | _        d S d S rH   )re   rp   rd   rf   rg   r.   r/   rI   s       r   rM   z$Win32ShellCommandController.__exit__  s¦   € ØŒ;ð 	Ý˜œÑ$Ô$Ð$ØˆDŒKØŒ<ð 	 Ý˜œÑ%Ô%Ð%ØˆDŒLØŒ<ð 	 Ý˜œÑ%Ô%Ð%ØˆDŒLØŒ?Ð&Ý˜œÔ0Ñ1Ô1Ð1Ý˜œÔ/Ñ0Ô0Ð0Ø"ˆDŒOˆOˆOð 'Ð&r   )TrV   )r   r   r   rN   rT   rF   rŽ   r˜   r«   r¾   rÄ   rË   rÏ   rœ   rM   r   r   r   rP   rP   ½   sÓ   € € € € € ðð ð6
!ð 
!ð 
!ð 
!ð^ð ^ð ^ð@01ð 01ð 01ðd/ð /ð /ð"1 ð 1 ð 1 ð 1 ðfð ð ð>ð ð ð"ð ð ð
ð ð ð
4ð 4ð 4ð:#ð #ð #ð #ð #r   rP   c                 óÞ   — t          ¦   «         5 }|�d|›d| ›�} t          | ¦  «        5 }|                     ¦   «          ddd¦  «         n# 1 swxY w Y   ddd¦  «         dS # 1 swxY w Y   dS )a×  Win32 version of os.system() that works with network shares.

    Note that this implementation returns None, as meant for use in IPython.

    Parameters
    ----------
    cmd : str
        A command to be executed in the system shell.

    Returns
    -------
    None : we explicitly do NOT return the subprocess status code, as this
    utility is meant to be used extensively in IPython, where any return value
    would trigger : func:`sys.displayhook` calls.
    Nz"pushd z &&")r<   rP   r«   )rR   r@   Úsccs      r   ÚsystemrÔ   "  sõ   € õ  
‰Œð ˜4ØÐÐØ'+ t t¨S¨SÐ1ˆCÝ(¨Ñ-Ô-ð 	°Ø�GŠG‰IŒIˆIð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	ðð ð ñ ô ð ð ð ð ð ð ð øøøð ð ð ð ð ð s3   �A"©A
¾A"Á
A	ÁA"ÁA	ÁA"Á"A&Á)A&Ú__main__zTest starting!z	python -izTest finished!)JrN   r>   r¶   r�   rZ   r´   r   Úctypes.wintypesr   r   r   r   r   r	   r
   r   ÚLPDWORDÚLPHANDLEÚ	ULONG_PTRÚ	Structurer   ÚLPSECURITY_ATTRIBUTESr   ÚLPSTARTUPINFOr-   ÚLPPROCESS_INFORMATIONÚERROR_HANDLE_EOFr“   r†   r^   rl   rm   ÚCREATE_NEW_CONSOLErn   r}   r¹   r¤   r£   rk   ÚENABLE_ECHO_INPUTÚENABLE_LINE_INPUTÚENABLE_PROCESSED_INPUTÚwindllÚkernel32r…   ÚargtypesÚrestypeÚCreateFileWÚ
CreateFilerY   ÚCreateProcessWro   r|   rj   r    r’   r~   ÚGetConsoleModeÚSetConsoleModer»   r¢   ri   r]   rp   Úshell32ÚCommandLineToArgvWÚc_intÚ	LocalFreeÚobjectr<   rP   rÔ   r   rº   r   r   r   ú<module>rñ      sŠ  ððð ð Ð Ð Ð Ð Ð Ð Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ð Ð ð Ð Ð Ð Ð Ð ðð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð à
ˆ'�%‰.Œ.€Øˆ7�6‰?Œ?€ØˆG�E‰NŒN€	ð*ð *ð *ð *ð *˜&Ô*ñ *ô *ð *ð  ˜Ð 3Ñ4Ô4Ð ð'ð 'ð 'ð 'ð '�&Ô"ñ 'ô 'ð 'ð& �˜Ñ$Ô$€ð'ð 'ð 'ð 'ð '˜&Ô*ñ 'ô 'ð 'ð
  ˜Ð 3Ñ4Ô4Ð ð Ð ØÐ Ø€ØÐ ØÐ ØÐ ØÐ ØÐ Ø€Ø€Ø€Ø€Ø"Ð ØÐ ØÐ ØÐ ð Œ}Ô%Ô2€Ø€Ô Ø€Ô àŒ]Ô#Ô/€
Ø  u¨f°e¸UÀFÐK€
Ô Ø€
Ô àŒ]Ô#Ô.€
Ø�w˜v‘”¨¨°©¬Ø˜uð&€
Ô à€
Ô à”Ô&Ô5€Ø! 7Ð,AØ˜t U¨F°G¸]Øð€Ô ð €Ô à”]Ô+Ô>Ð Ø% wÐ/Ð Ô Ø!Ð Ô à”MÔ*Ô<Ð ØÐ Ô Ø"Ð Ô àŒ}Ô%Ô2€Ø˜€Ô Ø€Ô àŒ=Ô!Ô*€Ø˜V U¨G°VÐ<€Ô Ø€Ô àŒMÔ"Ô,€	Ø˜f e¨W°fÐ=€	Ô Ø€	Ô à”Ô'Ô6€Ø! 7Ð+€Ô Ø€Ô à”Ô'Ô6€Ø! 5˜/€Ô Ø€Ô à œ-Ô0ÔHÐ Ø$* 8Ð Ô  Ø"&Ð Ô à”mÔ,Ô@Ð Ø &¨˜Ð Ô Ø#Ð Ô à”-Ô(Ô8€Ø" F¨F°HØˆt�Uð€Ô à€Ô à”}Ô-ÔBÐ Ø!'¨°Ð 6Ð Ô Ø#Ð Ô àŒmÔ$Ô0€Ø�x€Ô Ø€Ô à”]Ô*Ô=Ð Ø&¨¨°´Ñ(=Ô(=Ð>Ð Ô Ø$˜W WÑ-Ô-Ð Ô àŒMÔ"Ô,€	Ø�X€	Ô Ø€	Ô ð" ð " ð " ð " ð " �6ñ " ô " ð " ðJb#ð b#ð b#ð b#ð b# &ñ b#ô b#ð b#ðJð ð ð. ˆzÒÐØ	€EÐ
ÑÔÐà
€Fˆ;ÑÔÐØ	€EÐ
ÑÔÐÐÐð	 Ðr   