ó
    F\hì  ã                   ój   • S 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 jr " S S5      rg)
z.
Helper to run a script in a pseudo-terminal.
é    N)Ú	ExitStack)ÚEIO)Úimport_modulec                 ó¼  • [        S5      n[        5       nUR                  5       u  pV[        R                  SU 4n[
        R                  " XvXfUS9n[        R                  " U5        [        5        n	U	R                  U5        S n
U	R                  X¨5        U	R                  [        R                  U5        U	R                  [        R                  " 5       5      nUR                  U[        R                  [        R                   -  5        [        R"                  " US5         UR%                  5        H·  u  pÍU[        R                  -  (       a=   [        R&                  " US5      nU(       d  Us  sS S S 5        $ UR/                  U5        U[        R                   -  (       d  Mt   U[        R0                  " XQ5      S  nU(       a  M—  UR3                  U[        R                  5        M¹     MÍ  ! [(         a!  nUR*                  [,        :w  a  e Sn S nAN®S nAff = f! [(         a!  nUR*                  [,        :w  a  e Sn S nANƒS nAff = f! , (       d  f       g = f)NÚptyz-c)ÚstdinÚstdoutÚstderrÚenvc                 óF   •  U R                  5         g ! [         a     g f = f©N)Ú	terminateÚProcessLookupError)Úprocs    Ú./usr/lib/python3.13/test/support/pty_helper.pyr   Úrun_pty.<locals>.terminate   s#   € ðØ—‘Õ øÜ%ó áðús   ‚ “
 Ÿ Fi   ó    )r   Ú	bytearrayÚopenptyÚsysÚ
executableÚ
subprocessÚPopenÚosÚcloser   Úenter_contextÚcallbackÚ	selectorsÚSelectSelectorÚregisterÚ
EVENT_READÚEVENT_WRITEÚset_blockingÚselectÚreadÚOSErrorÚerrnor   ÚextendÚwriteÚmodify)ÚscriptÚinputr   r   ÚoutputÚmasterÚslaveÚargsr   Úcleanupr   ÚselÚ_ÚeventsÚchunkÚerrs                   r   Úrun_ptyr7      sÌ  € Ü
˜Ó
€CÜ‹[€FØ—k‘k“m�O€VÜ�N‰N˜D &Ð)€DÜ×Ò˜D°eÈsÑS€DÜ‡H‚HˆU„OÜ	Œ˜Ø×Ñ˜dÔ#ò	ð 	×Ñ˜Ô)Ø×ÑœŸ™ 6Ô*ð ×#Ñ#¤I×$<Ò$<Ó$>Ó?ˆØ�‰�VœY×1Ñ1´I×4IÑ4IÑIÔJÜ
�Š˜ Ô&ØØ"Ÿz™zž|‘�ØœI×0Ñ0×0ð$Ü "§¢¨°Ó 8˜ö !Ø%™÷; 
‰ð< —M‘M %Ô(ØœI×1Ñ1×1Ñ1ð$Ø %¤b§h¢h¨vÓ&=Ð&>Ð ?˜÷ !˜5ØŸ
™
 6¬9×+?Ñ+?Ö@ñ+  ,ñ øô
 #ó $àŸ9™9¬Ó+Ø!Ø #�ûð	$ûô #ó $àŸ9™9¬Ó+Ø!Ø #�ûð	$ú÷E 
�úsm   Á1C IÅG1Å)
IÅ='IÆ)HÇIÇ&IÇ1
HÇ;HÈIÈHÈIÈ
I
È)IÉ IÉI
É
IÉ
Ic                   ó$   • \ rS rSrSrS rS rSrg)Ú	FakeInputéC   zó
A fake input stream for pdb's interactive debugger.  Whenever a
line is read, print it (to simulate the user typing it), and then
return it.  The set of lines to return is specified in the
constructor; they should not have trailing newlines.
c                 ó   • Xl         g r   ©Úlines)Úselfr=   s     r   Ú__init__ÚFakeInput.__init__J   s   € Ø�
r   c                 óX   • U R                   R                  S5      n[        U5        US-   $ )Nr   Ú
)r=   ÚpopÚprint)r>   Úlines     r   ÚreadlineÚFakeInput.readlineM   s%   € Ø�z‰z�~‰~˜aÓ ˆÜˆdŒØ�d‰{Ðr   r<   N)Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__r?   rF   Ú__static_attributes__© r   r   r9   r9   C   s   † ñòõr   r9   )s   dummy inputN)rL   r   r   r   r   Ú
contextlibr   r'   r   Útest.support.import_helperr   r7   r9   rN   r   r   Ú<module>rQ      s2   ðñó 
Û Û Û 
Ý  Ý å 4ô/A÷lò r   