
    h"                         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Jr  S SKJr  \R                  S:X  a  S SKJr  Sq Sq / r S rS rS	 rS
 rS rg)    N)launcher)log	messaging)outputwin32)winapic                  *    S[         R                   S3$ )NzDebuggee[PID=])processpid     lC:\Users\julio\OneDrive\Documentos\Trabajo\Ideas Frescas\venv\Lib\site-packages\debugpy/launcher/debuggee.pydescriber   $   s    7;;-q))r   c           
      @	   [         R                  " SUU5        [        5       n U(       a?  [        R                  " 5       u  pV[        R                  " 5       u  pxXEXgU1-  n[        XhS9n	O0 n	[        R                  S:w  a0  [        R                  R                  S:w  a  S n
U	R                  U
S9   [        R                  " U4USS.U	D6q[         R                  " S
[%        5       5        [        R                  S:X  Ga   [&        R(                  R+                  S S 5      q[&        R.                  " 5       n[&        R0                  " [2        R4                  " U5      5      n[&        R(                  R7                  [,        [&        R8                  [2        R:                  " U5      U[2        R:                  " U5      5        UR<                  =R>                  [&        R@                  [&        RB                  -  -  sl        [&        R(                  RE                  [,        [&        R8                  [2        R:                  " U5      U5        [&        R(                  RG                  [&        RH                  [&        RJ                  -  S[        RL                  5      n[&        R(                  RO                  [,        U5        [R        RT                  " [V        5        [X        RZ                  R]                  SSS[        RL                  U [^        R`                  " S5      S-  S.5        U(       ac  SW[        Rb                  4SW[        Rd                  44 H9  u  nnn[f        Rh                  " [%        5       UUU5        URk                  U5        M;     [l        Rn                  " [p        SS9nSUl9        URu                  5         U H  n [        Rv                  " U5        M     g ! [         a*  n[        R                   " S	R#                  X5      5      eS nAff = f! [         a    [         RP                  " SSS9   GNyf = f! [         a    [         RP                  " SS9   M  f = f! U H?  n [        Rv                  " U5        M  ! [         a    [         RP                  " SS9   M=  f = f   f = f)NzOSpawning debuggee process:

Command line: {0!r}

Environment variables: {1!r}

)stdoutstderrr   graalpyc                      [         R                  " 5         [        R                  " [        R                  [        R                  5      n  [         R
                  " S[         R                  5      n [         R                  " U[         R                  " 5       5        [         R                  " U5         [        R                  " [        R                  U 5        g ! [         R                  " U5        f = f! [        R                  " [        R                  U 5        f = f! [         a    [        R                  " SSS9   g f = f)Nz/dev/ttyzFailed to set up process groupinfolevel)ossetpgrpsignalSIGTTOUSIG_IGNopenO_RDWR	tcsetpgrpgetpgrpclose	Exceptionr   swallow_exception)old_handlerttys     r   
preexec_fnspawn.<locals>.preexec_fn@   s     JJL
 #)--"OKC ggj"))<*LLbjjl;HHSMfnnkB HHSMfnnkB  ))8sB   AD %C3 1*C C3 2%D C00C3 3'DD D?>D?)r'   r   )envbufsizez0Couldn't spawn debuggee: {0}

Command line:{1!r}zSpawned {0}.FzFailed to set up job objectwarningr   r   launchTP   )startMethodisLocalProcesssystemProcessIdnamepointerSizer   r   zwait_for_exit())targetr2   )<r   r   setr   pipedictsysplatformimplementationr2   update
subprocessPopenr   r#   r   MessageHandlingErrorformatr   r   kernel32CreateJobObjectA
job_handle$JOBOBJECT_EXTENDED_LIMIT_INFORMATIONDWORDctypessizeofQueryInformationJobObject!JobObjectExtendedLimitInformationpointerBasicLimitInformation
LimitFlags"JOB_OBJECT_LIMIT_KILL_ON_JOB_CLOSEJOB_OBJECT_LIMIT_BREAKAWAY_OKSetInformationJobObjectOpenProcessPROCESS_TERMINATEPROCESS_SET_QUOTAr   AssignProcessToJobObjectr$   atexitregisterkillr   channel
send_eventstructcalcsizer   r   r   CaptureOutputremove	threadingThreadwait_for_exitdaemonstartr"   )process_namecmdliner)   redirect_output	close_fdsstdout_rstdout_wstderr_rstderr_wkwargsr'   excjob_infojob_info_sizeprocess_handlecategoryfdteewait_threads                      r   spawnrr   (   s   HH	+ 	 I}7 "$H!#HHAAI;FF<<7"s'9'9'>'>)'K0 MMZM0	 &&wMCMfMG 	,<<7"&V#__==dDI
!FFH &V]]8-D E99<<NN8,!NN=1 ..99 == 8899 77<<NN8,!	 "(!<!<,,v/G/GGKK" 88^T
 	##'"&#*;;$%s3a7		
 8SZZ08SZZ0&!"c $$XZ2sC  $&  &&mBST! B7 ]  	00DKK 	b  V%%&C9UV@  7%%I67 B7 7%%I67 s   BQ 1O 4Q  F4P 4C?Q 9P1
P%PPQ P.*Q -P..Q 1QQRQ53R5R	RR	Rc                     [         c  g  [         R                  5       c  [        R                  " S[	        5       5        [
        R                  S:X  a%  [        R                  R                  [        S5        g [        R                  " [         R                  [        R                  5        g g ! [          a"    [        R"                  " S[	        5       5         g f = f)NzKilling {0}r   r   zFailed to kill {0})r   pollr   r   r   r8   r9   r   r@   TerminateJobObjectrB   r   killpgr   r   SIGKILLr#   r$   r   r   r   rU   rU      s    @<<>!HH]HJ/||w&22:qA 		'++v~~6 "  @2HJ?@s   A,B, 73B, ,)CCc                  B  ^  [         R                  5       m[        R                  S:w  a  TS:  a  TS-  m[
        R                  " S[        5       T5        [        R                  " 5         [        U4S j[         5       5      n  [        R                  R                  SS	T05        U (       a
  [!        5          [        R                  R                  S
5        g ! [         a    [
        R                  " S5        Sm Nf = f! [         a     Nff = f! [         a     g f = f)Nr   r      z$Couldn't determine process exit codez{0} exited with code {1}c              3   2   >#    U  H  o" T5      v   M     g 7f)Nr   ).0predcodes     r   	<genexpr> wait_for_exit.<locals>.<genexpr>   s     E-DTd4jj-Ds   exitedexitCode
terminated)r   waitr8   r9   r#   r   r$   r   r   r   wait_for_remaining_outputanywait_on_exit_predicatesr   rV   rW   _wait_for_user_input)should_waitr~   s    @r   r^   r^      s    
||~<<7"tax
 DLD
 HH'T:
$$& E-DEEK##Hz4.@A ##L1)  DE    s5   3C "D 9D "C>=C>
DD
DDc                     [         R                  (       Ga  [         R                  (       Ga  [         R                  R                  5       (       a  SSKJn    SS KnSnU(       a`  U R                  " S5        [         R                  R                  S5        [         R                  R                  5         WR                  5         g U R                  " S5        [         R                  R                  S5        [         R                  R                  5         [         R                  R                  S	5        g g g g ! [         a    Sn Nf = f)
Nr   )r   TFz5msvcrt available - waiting for user input via getch()z Press any key to continue . . . z8msvcrt not available - waiting for user input via read()zPress Enter to continue . . .    )r8   r   stdinisattydebugpy.commonr   msvcrtImportErrordebugwriteflushgetchread)r   r   	can_getchs      r   r   r      s    
zzzciiiCII$4$4$6$6&	 IIIMNJJ?@JJLLNIIPQJJ=>JJIINN1' %7iz
  	I	s   D6 6EE)rS   rE   r   r   rX   r<   r8   r\   debugpyr   r   r   r   debugpy.launcherr   r9   r   r   rB   r   r   rr   rU   r^   r   r   r   r   <module>r      sq   
   	    
   ) #<<7'  9
 R *G7T@$Dr   