+
    O×iÇC  ã                   óÈ  € R t ^ RIt^ RIt^ RIt^ RIt^ RIt^ RIt^ RIt^ RIt^ RI	t	^ RI
t
^ RIt^ RIt^ RIHt ^ RIHtHtHt ^RIHtHt ]P,                  ! R4      P.                  tR R lt^t]P4                  ! ]4      tRt ! R R	]P<                  4      t ! R
 R]P@                  4      t! ! R R4      t" ! R R]]PF                  4      t# ! R R]4      t$ ! R R4      t%R# )zKBi-directional asyncio.Transport implementations based on file descriptors.N)ÚThread)ÚAnyÚClassVarÚSequence)Ú
JsonObjectÚget_intc                ó(   € V ^8„  d   QhR\         RR/# )é   ÚargsÚreturnN©Úint)Úformats   "Ú4/usr/lib/python3/dist-packages/cockpit/transports.pyÚ__annotate__r      s   € ÷ (ñ (”ð (˜ñ (ó    c                  ó8   € \        V !  ^ 8w  d   \        R4      hR# )é    zprctl() failedN)Ú	sys_prctlÚOSError)r
   s   *r   Úprctlr      s    € Ü�$Ñ˜1ÔÜÐ&Ó'Ð'ñ r   i   c                   óê  a a€ ] tR t^*t oR2tRtR3V3R lV 3R llltV3R lR ltV3R lR ltV3R lR	 lt	V3R
 lR lt
V3R lR ltV3R lR ltR4V3R lR lltV3R lR ltV3R lR ltV3R lR ltV3R lR ltR5V3R lR lltV3R lR ltV3R lR ltV3R  lR! ltV3R" lR# ltV3R$ lR% ltV3R& lR' ltV3R( lR) ltV3R* lR+ ltV3R, lR- ltV3R. lR/ ltV3R0 ltR1tVtV ;t # )6Ú
_TransportFc          
      ó^   <€ V ^8„  d   QhRS[ P                  RS[ P                  RS[RS[RR/# )r	   ÚloopÚprotocolÚin_fdÚout_fdÚextrazdict[str, object] | None©ÚasyncioÚAbstractEventLoopÚProtocolr   )r   Ú__classdict__s   "€r   r   Ú_Transport.__annotate__9   sG   ø€ ÷ ñ Ù×0Ñ0ðá"×+Ñ+ðñ ðñ +.ðð 3ñ	r   c                óz  <€ \         SV `  V4       Wn        W n        \        P                  R WW44       RV n        RV n        RV n        RV n	        W0n
        W@n        \        P                  ! VR4       WC8w  d   \        P                  ! VR4       V P                  P                  V 4       V P                  4        R# )z/Created transport %s for protocol %s, fds %d %dNF)ÚsuperÚ__init__Ú_loopÚ	_protocolÚloggerÚdebugÚ_queueÚ_is_readingÚ_eofÚ_closingÚ_in_fdÚ_out_fdÚosÚset_blockingÚconnection_madeÚresume_reading)Úselfr   r   r   r   r   Ú	__class__s   &&&&&&€r   r'   Ú_Transport.__init__9   s”   ø€ ô
 	‰Ñ˜ÔàŒ
Ø!Œä�‰ÐFÈÐX]ÔfàˆŒØ ˆÔØˆŒ	ØˆŒàŒØŒä
�Š˜˜uÔ%ØŒ?Ü�OŠO˜F EÔ*à�‰×&Ñ& tÔ,Ø×ÑÖr   c                ó   <€ V ^8„  d   QhRR/# ©r	   r   N© )r   r#   s   "€r   r   r$   T   s   ø€ ÷ ñ ˜Tñ r   c                óÒ  € \         P                  R W P                  V P                  4        \        P
                  ! V P                  \        P                  4      pTR8w  d=   \         P                  R\        T4      4       T P                  P                  T4       R# \         P                  R4       T P!                  4        T P                  P#                  4       pT'       g   T P%                  4        R# R#   \         d     R# \         dU   pT P                  '       d'   TP                  \        P                  8X  d   Rp Rp?LîT P                  T4        Rp?R# Rp?ii ; i)zRead ready on %s %s %dNr   z  read %d bytesz	  got EOF)r*   r+   r)   r0   r2   Úreadr   Ú
BLOCK_SIZEÚBlockingIOErrorr   Ú_eio_is_eofÚerrnoÚEIOÚabortÚlenÚdata_receivedÚ_close_readerÚeof_receivedÚclose)r6   ÚdataÚexcÚ	keep_opens   &   r   Ú_read_readyÚ_Transport._read_readyT   sð   € Ü�‰Ð-¨t·^±^ÀTÇ[Á[ÔQð	Ü—7’7˜4Ÿ;™;¬
×(=Ñ(=Ó>ˆDð �3Œ;Ü�L‰LÐ*¬C°«IÔ6Ø�N‰N×(Ñ(¨Ö.ä�L‰L˜Ô%Ø×ÑÔ ØŸ™×3Ñ3Ó5ˆIßØ—
‘
–ñ øô% ô 	ÚÜô 	Ø××Ð C§I¡I´·±Ô$:à•ð —
‘
˜3”Ýûð	ús)   ­/C: Ã:E&ÄE&ÄE&Ä3E!Å
E!Å!E&c                ó    <€ V ^8„  d   QhRS[ /# ©r	   r   ©Úbool)r   r#   s   "€r   r   r$   m   s   ø€ ÷  ñ  ™Dñ  r   c                ó   € V P                   # ©N)r-   ©r6   s   &r   Ú
is_readingÚ_Transport.is_readingm   ó   € Ø×ÑÐr   c                ó   <€ V ^8„  d   QhRR/# r:   r;   )r   r#   s   "€r   r   r$   p   s   ø€ ÷ ñ ˜tñ r   c                ó4   € V P                  4        RV n        R# ©é   Néÿÿÿÿ)Úpause_readingr0   rT   s   &r   rF   Ú_Transport._close_readerp   s   € Ø×ÑÔØˆŽr   c                ó   <€ V ^8„  d   QhRR/# r:   r;   )r   r#   s   "€r   r   r$   t   s   ø€ ÷ %ñ %˜tñ %r   c                ó†   € V P                   '       d/   V P                  P                  V P                  4       R V n         R# R# )FN)r-   r(   Úremove_readerr0   rT   s   &r   r]   Ú_Transport.pause_readingt   s1   € Ø××ÐØ�J‰J×$Ñ$ T§[¡[Ô1Ø$ˆDÖñ r   c                ó   <€ V ^8„  d   QhRR/# r:   r;   )r   r#   s   "€r   r   r$   y   s   ø€ ÷ $ñ $ ñ $r   c                óÂ   € V P                   '       gM   V P                  R8w  d:   V P                  P                  V P                  V P                  4       RV n         R# R# R# )r[   TNr\   )r-   r0   r(   Ú
add_readerrL   rT   s   &r   r5   Ú_Transport.resume_readingy   sI   € ð ××Ð D§K¡K°2Ô$5Ø�J‰J×!Ñ! $§+¡+¨t×/?Ñ/?Ô@Ø#ˆDÖñ %6Ñr   c                ó   <€ V ^8„  d   QhRR/# r:   r;   )r   r#   s   "€r   r   r$   �   s   ø€ ÷ ñ ˜ñ r   c                ó   € R # rS   r;   rT   s   &r   Ú_closeÚ_Transport._close�   s   € Ùr   c                ó"   <€ V ^8„  d   QhRRRR/# )r	   rJ   zException | Noner   Nr;   )r   r#   s   "€r   r   r$   „   s   ø€ ÷ ñ Ð+ð °tñ r   c                óÔ   € R V n         V P                  4        V P                  4        V P                  P	                  V P
                  P                  V4       V P                  4        R# )TN)r/   rF   Ú_remove_write_queuer(   Ú	call_soonr)   Úconnection_lostri   )r6   rJ   s   &&r   rC   Ú_Transport.abort„   sH   € ØˆŒØ×ÑÔØ× Ñ Ô"Ø�
‰
×Ñ˜TŸ^™^×;Ñ;¸SÔAØ�‰Žr   c                ó    <€ V ^8„  d   QhRS[ /# rO   rP   )r   r#   s   "€r   r   r$   ‹   s   ø€ ÷ "ñ "™tñ "r   c                ó   € \         hrS   ©ÚNotImplementedErrorrT   s   &r   Úcan_write_eofÚ_Transport.can_write_eof‹   ó   € Ü!Ð!r   c                ó   <€ V ^8„  d   QhRR/# r:   r;   )r   r#   s   "€r   r   r$   Ž   s   ø€ ÷ Oñ O˜4ñ Or   c                óÔ   € V P                   '       d   Q hR V n         V P                  f)   \        P                  RV 4       V P	                  4        R# \        P                  RV 4       R# )TNz%s got EOF.  closing backend.z,%s got EOF.  bytes in queue, deferring close)r.   r,   r*   r+   Ú_write_eof_nowrT   s   &r   Ú	write_eofÚ_Transport.write_eofŽ   sK   € Ø—9—9�9Ðˆ}ØˆŒ	Ø�;‰;ÒÜ�L‰LÐ8¸$Ô?Ø×ÑÖ!ä�L‰LÐGÈÖNr   c                ó    <€ V ^8„  d   QhRS[ /# rO   r   )r   r#   s   "€r   r   r$   —   s   ø€ ÷ 8ñ 8¡sñ 8r   c                óZ   € V P                   f   ^ # \        R V P                    4       4      # )Nc              3   ó8   "  € T F  p\        V4      x € K  	  R # 5irS   )rD   )Ú.0Úblocks   & r   Ú	<genexpr>Ú3_Transport.get_write_buffer_size.<locals>.<genexpr>š   s   é € Ð7©; %”3�u—:�:«;ùs   ‚)r,   ÚsumrT   s   &r   Úget_write_buffer_sizeÚ _Transport.get_write_buffer_size—   s$   € Ø�;‰;ÒÙÜÑ7¨4¯;ª;Ó7Ó7Ð7r   c                ó   <€ V ^8„  d   QhRR/# )r	   r   ztuple[int, int]r;   )r   r#   s   "€r   r   r$   œ   s   ø€ ÷ ñ Ð):ñ r   c                ó   € R# )r   )r   r   r;   rT   s   &r   Úget_write_buffer_limitsÚ"_Transport.get_write_buffer_limitsœ   s   € Øˆr   c                ó&   <€ V ^8„  d   QhRRRRRR/# )r	   Úhighú
int | NoneÚlowr   Nr;   )r   r#   s   "€r   r   r$   Ÿ   s#   ø€ ÷ 'ñ '¨Lð 'Àlð 'Ð^bñ 'r   c                ó>   € Ve
   V^ 8X  g   Q hVe   V^ 8X  g   Q hR # R # rS   r;   )r6   rŒ   rŽ   s   &&&r   Úset_write_buffer_limitsÚ"_Transport.set_write_buffer_limitsŸ   s(   € ØŠ|˜t qœyÐ(Ð(ØŠ{˜c QœhÐ&Ð&™h‰{r   c                ó   <€ V ^8„  d   QhRR/# r:   r;   )r   r#   s   "€r   r   r$   £   s   ø€ ÷ "ñ " ñ "r   c                ó   € \         hrS   rs   rT   s   &r   rz   Ú_Transport._write_eof_now£   rw   r   c                ó   <€ V ^8„  d   QhRR/# r:   r;   )r   r#   s   "€r   r   r$   ¦   s   ø€ ÷ ñ ˜dñ r   c                óŽ  € \         P                  R V 4       V P                  f   Q h \        P                  ! V P
                  V P                  4      p\         P                  RT4       T'       dˆ   T P                  P                  4       p\        T4      T8”  d4   \         P                  R4       T P                  P                  Y1R 4       M*T\        T4      ,          p\         P                  RT4       K�  T P                  '       gƒ   \         P                  R4       T P                  4        T P                  '       d&   \         P                  R4       T P                  4        T P                  '       d   T P                  4        R# R# R#   \         d    ^ p ELK\         d   pT P                  T4        Rp?R# Rp?ii ; i)z%s _write_readyNz,  successfully wrote %d bytes from the queuez  incomplete block.  Stop.z&  removed complete block.  %d remains.z%s queue drained.z'%s queue drained.  closing backend now.)r*   r+   r,   r2   Úwritevr1   r?   r   rC   ÚpopleftrD   Ú
appendleftrm   r.   rz   r/   )r6   Ún_bytesrJ   r�   s   &   r   Ú_write_readyÚ_Transport._write_ready¦   s@  € Ü�‰Ð&¨Ô-Ø�{‰{Ò&Ð&Ð&ð	Ü—i’i §¡¨d¯k©kÓ:ˆGô 	�‰ÐCÀWÔMçØ—K‘K×'Ñ'Ó)ˆEÜ�5‹z˜GÔ#ä—‘Ð9Ô:Ø—‘×&Ñ& u¨X Ô7ØØ”s˜5“zÕ!ˆGÜ�L‰LÐAÀ7ÖKà�{�{ˆ{Ü�L‰LÐ,Ô-Ø×$Ñ$Ô&Ø�y�yˆyÜ—‘ÐFÔGØ×#Ñ#Ô%Ø�}�}ˆ}Ø—
‘
–ñ ñ øô% ô 	Ø‹GÜô 	Ø�J‰J�sŒOÝûð	ús#   ¨+F ÆGÆGÆ'GÆ(F?Æ?Gc                ó   <€ V ^8„  d   QhRR/# r:   r;   )r   r#   s   "€r   r   r$   Ç   s   ø€ ÷ ñ  Tñ r   c                ó²   € V P                   eI   V P                  P                  4        V P                  P	                  V P
                  4       R V n         R # R # rS   )r,   r)   Úresume_writingr(   Úremove_writerr1   rT   s   &r   rm   Ú_Transport._remove_write_queueÇ   s>   € Ø�;‰;Ò"Ø�N‰N×)Ñ)Ô+Ø�J‰J×$Ñ$ T§\¡\Ô2ØˆDŽKñ #r   c                ó$   <€ V ^8„  d   QhRS[ RR/# ©r	   rI   r   N©Úbytes)r   r#   s   "€r   r   r$   Í   s   ø€ ÷ 'ñ '©ð '°$ñ 'r   c                ó2  € \         P                  R W P                  4       V P                  e   Q hV P                  P                  V P                  V P                  4       \        P                  ! V34      V n        V P                  P                  4        R# )z!%s creating write queue for fd %sN)r*   r+   r1   r,   r(   Ú
add_writerr›   ÚcollectionsÚdequer)   Úpause_writing©r6   rI   s   &&r   Ú_create_write_queueÚ_Transport._create_write_queueÍ   sg   € Ü�‰Ð8¸$ÇÁÔMØ�{‰{Ò"Ð"Ð"Ø�
‰
×Ñ˜dŸl™l¨D×,=Ñ,=Ô>Ü!×'Ò'¨¨Ó0ˆŒØ�‰×$Ñ$Ö&r   c                ó$   <€ V ^8„  d   QhRS[ RR/# r£   r¤   )r   r#   s   "€r   r   r$   Ô   s   ø€ ÷ 5ñ 5™%ð 5 Dñ 5r   c                óÆ  € V P                   '       d#   \        P                  R V P                  4       R# V P                  '       d   Q hV P
                  eŒ   V P
                  P                  V4       \        V P
                  4      \        8”  dQ   RP                  V P
                  4      pV P
                  P                  4        V P
                  P                  V4       R#  \        P                  ! V P                  V4      pT\        T4      8w  d   T P!                  YR 4       R# R#   \         d    ^ p L6\         d   pT P                  T4        Rp?R# Rp?ii ; i)z+ignoring write() to closing transport fd %iNr   )r/   r*   r+   r1   r.   r,   ÚappendrD   ÚIOV_MAXÚjoinÚclearr2   Úwriter?   r   rC   r¬   )r6   rI   Úall_datarš   rJ   s   &&   r   r´   Ú_Transport.writeÔ   s  € ð �=�=ˆ=Ü�L‰LÐFÈÏÉÔUÙà—9—9�9Ðˆ}à�;‰;Ò"Ø�K‰K×Ñ˜tÔ$ô �4—;‘;Ó¤'Ô)ØŸ8™8 D§K¡KÓ0�Ø—‘×!Ñ!Ô#Ø—‘×"Ñ" 8Ô,áð	Ü—h’h˜tŸ|™|¨TÓ2ˆGð ”c˜$“iÔØ×$Ñ$ T¨( ^Ö4ñ  øô ô 	ØŠGÜô 	Ø�J‰J�sŒOÝûð	ús$   Ã#!D+ Ä+E Ä:E ÅE ÅEÅE c                ó   <€ V ^8„  d   QhRR/# r:   r;   )r   r#   s   "€r   r   r$   ô   s   ø€ ÷ ñ �tñ r   c                óœ   € V P                   '       d   R # RV n         V P                  4        V P                  e   R # V P                  4        R # )NT)r/   rF   r,   rC   rT   s   &r   rH   Ú_Transport.closeô   s7   € Ø�=�=ˆ=ÙàˆŒØ×ÑÔà�;‰;Ò"áà�
‰
Žr   c                ó4   <€ V ^8„  d   QhRS[ P                  /# rO   ©r    ÚBaseProtocol)r   r#   s   "€r   r   r$     s   ø€ ÷ ñ ™g×2Ñ2ñ r   c                ó   € V P                   # rS   )r)   rT   s   &r   Úget_protocolÚ_Transport.get_protocol  s   € Ø�~‰~Ðr   c                ó    <€ V ^8„  d   QhRS[ /# rO   rP   )r   r#   s   "€r   r   r$     s   ø€ ÷ ñ ™Dñ r   c                ó   € V P                   # rS   )r/   rT   s   &r   Ú
is_closingÚ_Transport.is_closing  s   € Ø�}‰}Ðr   c                ó8   <€ V ^8„  d   QhRS[ P                  RR/# )r	   r   r   Nr»   )r   r#   s   "€r   r   r$     s!   ø€ ÷ "ñ "¡W×%9Ñ%9ð "¸dñ "r   c                ó   € \         hrS   rs   )r6   r   s   &&r   Úset_protocolÚ_Transport.set_protocol  rw   r   c                ó   <€ V ^8„  d   QhRR/# r:   r;   )r   r#   s   "€r   r   r$   
  s   ø€ ÷ ñ ˜ñ r   c                ó&   € V P                  4        R # rS   )ri   rT   s   &r   Ú__del__Ú_Transport.__del__
  s   € Ø�‰Žr   c                óÈ   <€ V ^8„  d   Qh/ S[ S[,          ;R&   S[P                  ;R&   S[P                  ;R&   R;R&   S[;R&   S[;R&   S[;R&   S[;R	&   S[;R
&   S[;R&   # )r	   r>   r(   r)   zcollections.deque[bytes] | Noner,   r0   r1   r/   r-   r.   r@   )r   r   r    r!   r"   rQ   )r   r#   s   "€r   r   r$   *   s‘   ø‡ ‚ Ù™•Ñ+ñ ñ ×$Ñ$Ñ$ñ	 ñ
 ×ÑÑñ ð .Ñ-ñ ñ �Kñ ñ �Lñ ñ �Nñ ñ Ññ ñ �Jñ ñ Ñò r   )r/   r.   r0   r-   r(   r1   r)   r,   i   )r\   r\   NrS   )NN)!Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__r>   r@   r'   rL   rU   rF   r]   r5   ri   rC   ru   r{   r…   r‰   r�   rz   r›   rm   r¬   r´   rH   r¾   rÂ   rÆ   rÊ   Ú__annotate_func__Ú__static_attributes__Ú__classdictcell__Ú__classcell__©r7   r#   s   @@r   r   r   *   s  ù‡ € Ø +€Jð €K÷õ ÷6ð ÷2 ð  ÷ð ÷%ð %÷
$ð $÷ð ÷ò ÷"ð "÷Oð O÷8ð 8÷
ð ÷'ò '÷"ð "÷ð ÷Bð ÷'ð '÷5ð 5÷@ð ÷ð ÷ð ÷"ð "÷ð ÷A … r   r   c                   ó6   a € ] tR tRt o RtV 3R lR ltRtV tR# )ÚSubprocessProtocoli  zBAn extension to asyncio.Protocol for use with SubprocessTransport.c                ó   <€ V ^8„  d   QhRR/# r:   r;   )r   r#   s   "€r   r   ÚSubprocessProtocol.__annotate__  s   ø€ ÷ "ñ " ñ "r   c                ó   € \         h)z"Called when subprocess has exited.rs   rT   s   &r   Úprocess_exitedÚ!SubprocessProtocol.process_exited  s   € ä!Ð!r   r;   N)rÍ   rÎ   rÏ   rÐ   Ú__doc__rÛ   rÒ   rÓ   ©r#   s   @r   r×   r×     s   ø‡ € ÙL÷"ö "r   r×   c                   ó2   a € ] tR tRt o V 3R lR ltRtV tR# )Ú
WindowSizei  c                ó    <€ V ^8„  d   QhRS[ /# )r	   Úvalue)r   )r   r#   s   "€r   r   ÚWindowSize.__annotate__  s   ø€ ÷ +ñ +™jñ +r   c                óJ   € \        VR 4      V n        \        VR4      V n        R# )ÚrowsÚcolsN)r   rå   ræ   )r6   râ   s   &&r   r'   ÚWindowSize.__init__  s   € Ü˜E 6Ó*ˆŒ	Ü˜E 6Ó*ˆŽ	r   )ræ   rå   N)rÍ   rÎ   rÏ   rÐ   r'   rÒ   rÓ   rÞ   s   @r   rà   rà     s   ø‡ € ÷+ö +r   rà   c                   óF  a a€ ] tR tRt oRtRtRtRtRR/V3R lR lltV3R lR	 lt	R
RRR/V3R lV 3R lllt
V3R lR ltV3R lR ltV3R lR ltV3R lR ltV3R lR ltV3R lR ltV3R lR ltV3R lR ltV3R lR ltV3R  lR! ltV3R" ltR#tVtV ;t# )$ÚSubprocessTransporti  a½  A bi-directional transport speaking with stdin/out of a subprocess.

Note: this is not really a normal SubprocessTransport.  Although it
implements the entire API of asyncio.SubprocessTransport, it is not
designed to be used with asyncio.SubprocessProtocol objects.  Instead, it
pair with normal Protocol objects which also implement the
SubprocessProtocol defined in this module (which only has a
process_exited() method).  Whatever the protocol writes is sent to stdin,
and whatever comes from stdout is given to the Protocol via the
.data_received() function.

If stderr is configured as a pipe, the transport will separately collect
data from it, making it available via the .get_stderr() method.
NÚresetFc                ó&   <€ V ^8„  d   QhRS[ RS[/# ©r	   rê   r   )rQ   Ústr)r   r#   s   "€r   r   Ú SubprocessTransport.__annotate__0  s   ø€ ÷ ñ ¡4ð ±Cñ r   c               óz   € V P                   e-   V P                   P                  VR7      P                  RR7      # R# )N)rê   Úreplace)ÚerrorsÚ )Ú_stderrÚgetÚdecode)r6   rê   s   &$r   Ú
get_stderrÚSubprocessTransport.get_stderr0  s5   € Ø�<‰<Ò#Ø—<‘<×#Ñ#¨%Ð#Ó0×7Ñ7¸yÐ7ÓIÐIár   c                ó"   <€ V ^8„  d   QhRRRR/# )r	   Úprocesszsubprocess.Popen[bytes]r   Nr;   )r   r#   s   "€r   r   rî   6  s    ø€ ÷ fñ fÐ";ð fÀñ fr   c                óL  a aaa€ R  VV 3R lloR VVVV 3R llpR VVV 3R llp \         P                  ! SP                  4      oS P                  P	                  SV4       R	#   \
        \        3 d.    \        RSP                   2TRR7      P                  4         R	# i ; i)
c                ó4   € V ^8„  d   QhR\         R\         RR/# )r	   ÚpidÚstatusr   Nr   )r   s   "r   r   Ú4SubprocessTransport.watch_exit.<locals>.__annotate__7  s!   € ÷ 	0ñ 	0œcð 	0¬3ð 	0°4ñ 	0r   c                 óv  <€ V SP                   8X  g   Q h\        SP                  \        4      '       g   Q h \        P
                  ! V4      Sn        \        P                  R SP                  4       SP                  '       g   SP                  P                  4        R# R#   \         d    TSn         Ldi ; i)zProcess exited with status %dN)rü   Ú
isinstancer)   r×   r2   Úwaitstatus_to_exitcodeÚ_returncodeÚ
ValueErrorr*   r+   r/   rÛ   )rü   rý   rù   r6   s   &&€€r   Úchild_exitedÚ4SubprocessTransport.watch_exit.<locals>.child_exited7  s“   ø€ Ø˜'Ÿ+™+Ô%Ð%Ð%Ü˜dŸn™nÔ.@×AÒAÐAÐAð*Ü#%×#<Ò#<¸VÓ#D�Ô ô �L‰LÐ8¸$×:JÑ:JÔKØ—=—=�=Ø—‘×-Ñ-Ö/ñ !øô	 ô *Ø#)�Ö ð*ús   ¸B# Â#B8Â7B8c                ó   € V ^8„  d   QhRR/# r:   r;   )r   s   "r   r   rþ   D  s   € ÷ 	&ñ 	&˜Tñ 	&r   c                  óÀ   <€ \         P                  ! SP                  ^ 4      w  rSP                  P	                  S4       \         P
                  ! S4       S! W4       R# ©r   N)r2   Úwaitpidrü   r(   ra   rH   )rü   rý   r  Úpidfdrù   r6   s     €€€€r   Úpidfd_readyÚ3SubprocessTransport.watch_exit.<locals>.pidfd_readyD  s>   ø€ ÜŸ*š* W§[¡[°!Ó4‰KˆCØ�J‰J×$Ñ$ UÔ+Ü�HŠH�UŒOÙ˜Ö%r   c                ó   € V ^8„  d   QhRR/# r:   r;   )r   s   "r   r   rþ   J  s   € ÷ 	Gñ 	G ñ 	Gr   c                  ó†   <€ \         P                  ! SP                  ^ 4      w  rSP                  P	                  SW4       R# r  )r2   r	  rü   r(   Úcall_soon_threadsafe)rü   rý   r  rù   r6   s     €€€r   Úwaitpid_threadÚ6SubprocessTransport.watch_exit.<locals>.waitpid_threadJ  s-   ø€ ÜŸ*š* W§[¡[°!Ó4‰KˆCØ�J‰J×+Ñ+¨L¸#ÖFr   zcockpit-waitpid-T)ÚnameÚtargetÚdaemonN)	r2   Ú
pidfd_openrü   r(   re   ÚAttributeErrorr   r   Ústart)r6   rù   r  r  r  r
  s   ff  @@r   Ú
watch_exitÚSubprocessTransport.watch_exit6  s‡   û€ ÷	0ñ 	0÷	&ó 	&÷	Gò 	Gð	fÜ—M’M '§+¡+Ó.ˆEØ�J‰J×!Ñ! %¨Ö5øÜ¤Ð(ô 	fÜÐ*¨7¯;©;¨-Ð8ÀÐX\Ô]×cÑc×eð	fús   §<A% Á%:B#Â"B#ÚptyÚwindowc                ó`   <€ V ^8„  d   QhRS[ P                  RS[RS[S[,          RS[RRRS[/# )r	   r   r   r
   r  r  zWindowSize | NoneÚkwargs)r    r!   r×   r   rí   rQ   r   )r   r#   s   "€r   r   rî   V  sO   ø€ ÷ ,'ñ ,'Ù×0Ñ0ð,'á-ð,'ñ  ¡•}ð,'ñ
 ð,'ð -ð,'ñ ñ,'r   c               óÈ  <a€ R  V3R llpS'       d�   \         P                  ! 4       w  V n        pVe   V P                  V4       W†R&   \        P
                  ! V3RVRVRVRR/VB V n        \         P                  ! V4       V P                  V P                  r©RV n        MÂ\        P
                  ! V3R\        P                  R\        P                  RV/VB V n        V P                  P                  '       g   Q hV P                  P                  '       g   Q hV P                  P                  P                  4       p	V P                  P                  P                  4       p
V P                  P                  e4   \        WP                  P                  P                  4       4      V n        MRV n        \         SV `E  WWš4       V P%                  V P                  4       R# )	c                ó   € V ^8„  d   QhRR/# r:   r;   )r   s   "r   r   Ú2SubprocessTransport.__init__.<locals>.__annotate__`  s   € ÷ 	5ñ 	5˜Dñ 	5r   c                  ó¤   <€ \        \        \        P                  4       S '       d)   \        P
                  ! ^ \        P                  ^ 4       R# R# r  )r   ÚSET_PDEATHSIGÚsignalÚSIGTERMÚfcntlÚioctlÚtermiosÚ	TIOCSCTTY)r  s   €r   Ú
preexec_fnÚ0SubprocessTransport.__init__.<locals>.preexec_fn`  s/   ø€ Ü”-¤§¡Ô0ßÜ—’˜Aœw×0Ñ0°!Ö4ñ r   NÚstderrÚstdinÚstdoutr)  Ústart_new_sessionT)r2   ÚopenptyÚ_pty_fdÚset_window_sizeÚ
subprocessÚPopenÚ_processrH   r@   ÚPIPEr,  r-  Úfilenor+  ÚSpoolerró   r&   r'   r  )r6   r   r   r
   r  r  r  r)  Ú
session_fdr   r   r7   s   &&&&d$,    €r   r'   ÚSubprocessTransport.__init__V  sœ  ù€ ÷	5ð 	5÷
 Ü')§z¢z£|Ñ$ˆDŒL˜*àÒ!Ø×$Ñ$ VÔ,à)�8ÑÜ&×,Ò,¨Tñ fØ3=ðfØFPðfà8BðfàVZðfà^dñfˆDŒMô �HŠH�ZÔ à ŸL™L¨$¯,©,�6Ø#ˆDÕô '×,Ò,¨Tñ N¼¿¹ð NÔQ[×Q`ÑQ`ð NØ8BðNØFLñNˆDŒMà—=‘=×&×&Ð&Ð&Ð&Ø—=‘=×'×'Ð'Ð'Ð'Ø—M‘M×(Ñ(×/Ñ/Ó1ˆEØ—]‘]×(Ñ(×/Ñ/Ó1ˆFà�=‰=×ÑÒ+Ü" 4¯©×)=Ñ)=×)DÑ)DÓ)FÓGˆD�LàˆDŒLä‰Ñ˜¨Ô7Ø�‰˜Ÿ™Ö&r   c                ó$   <€ V ^8„  d   QhRS[ RR/# )r	   Úsizer   N)rà   )r   r#   s   "€r   r   rî   „  s   ø€ ÷ Wñ W¡Jð W°4ñ Wr   c           	     ó0  € V P                   f   Q h\        ^ \        VP                  R4      4      p\        ^ \        VP                  R4      4      p\
        P                  ! V P                   \        P                  \        P                  ! RW#4      4       R # )NÚ2H4xiÿÿ  )r0  ÚmaxÚminrå   ræ   r%  r&  r'  Ú
TIOCSWINSZÚstructÚpack)r6   r;  rå   ræ   s   &&  r   r1  Ú#SubprocessTransport.set_window_size„  se   € Ø�|‰|Ò'Ð'Ð'Ü�1”c˜$Ÿ)™) YÓ/Ó0ˆÜ�1”c˜$Ÿ)™) YÓ/Ó0ˆÜ�Š�D—L‘L¤'×"4Ñ"4´f·k²kÀ&È$Ó6UÖVr   c                ó    <€ V ^8„  d   QhRS[ /# rO   rP   )r   r#   s   "€r   r   rî   Š  s   ø€ ÷ /ñ /™tñ /r   c                óR   € V P                   f   Q hV P                   P                  R J# rS   )r4  r,  rT   s   &r   ru   Ú!SubprocessTransport.can_write_eofŠ  s'   € Ø�}‰}Ò(Ð(Ð(Ø�}‰}×"Ñ"¨$Ð.Ð.r   c                ó   <€ V ^8„  d   QhRR/# r:   r;   )r   r#   s   "€r   r   rî   Ž  s   ø€ ÷ ñ  ñ r   c                ó°   € V P                   f   Q hV P                   P                  f   Q hV P                   P                  P                  4        RV n        R # )Nr\   )r4  r,  rH   r1   rT   s   &r   rz   Ú"SubprocessTransport._write_eof_nowŽ  sE   € Ø�}‰}Ò(Ð(Ð(Ø�}‰}×"Ñ"Ò.Ð.Ð.Ø�‰×Ñ×!Ñ!Ô#ØˆŽr   c                ó    <€ V ^8„  d   QhRS[ /# rO   r   )r   r#   s   "€r   r   rî   ”  s   ø€ ÷ !ñ !™ñ !r   c                óN   € V P                   f   Q hV P                   P                  # rS   )r4  rü   rT   s   &r   Úget_pidÚSubprocessTransport.get_pid”  s"   € Ø�}‰}Ò(Ð(Ð(Ø�}‰}× Ñ Ð r   c                ó   <€ V ^8„  d   QhRR/# )r	   r   r�   r;   )r   r#   s   "€r   r   rî   ˜  s   ø€ ÷  ñ   ñ  r   c                ó   € V P                   # rS   )r  rT   s   &r   Úget_returncodeÚ"SubprocessTransport.get_returncode˜  rW   r   c                ó:   <€ V ^8„  d   QhRS[ RS[P                  /# )r	   Úfdr   )r   r    Ú	Transport)r   r#   s   "€r   r   rî   ›  s!   ø€ ÷ "ñ "¡Sð "©W×->Ñ->ñ "r   c                ó   € \         hrS   rs   )r6   rS  s   &&r   Úget_pipe_transportÚ&SubprocessTransport.get_pipe_transport›  rw   r   c                ó8   <€ V ^8„  d   QhRS[ P                  RR/# )r	   Úsigr   N)r#  ÚSignals)r   r#   s   "€r   r   rî   ž  s#   ø€ ÷ hñ h™vŸ~™~ð h°$ñ hr   c                ó¾  € V P                   f   Q hV P                  e-   \        P                  RWP                   P                  4       R #  \
        P                  ! V P                   P                  V4       \        P                  RWP                   P                  4       R #   \         d/    \        P                  RYP                   P                  4        R # i ; i)Nz3won't attempt %s to process %i.  It exited already.zsent %s to process %iz3can't send %s to process %i.  It's exited just now.)r4  r  r*   r+   rü   r2   ÚkillÚProcessLookupError)r6   rY  s   &&r   Úsend_signalÚSubprocessTransport.send_signalž  s£   € Ø�}‰}Ò(Ð(Ð(ð ×ÑÒ'Ü�L‰LÐNÐPS×UbÑUb×UfÑUfÔgÙð	hÜ�GŠG�D—M‘M×%Ñ% sÔ+Ü�L‰LÐ0°#·}±}×7HÑ7HÖIøÜ!ô 	hä�L‰LÐNÐPS×UbÑUb×UfÑUf×gð	hús   ÁAB# Â#5CÃCc                ó   <€ V ^8„  d   QhRR/# r:   r;   )r   r#   s   "€r   r   rî   ¶  s   ø€ ÷ )ñ )˜4ñ )r   c                óD   € V P                  \        P                  4       R # rS   )r^  r#  r$  rT   s   &r   Ú	terminateÚSubprocessTransport.terminate¶  ó   € Ø×ÑœŸ™Ö(r   c                ó   <€ V ^8„  d   QhRR/# r:   r;   )r   r#   s   "€r   r   rî   ¹  s   ø€ ÷ )ñ )�dñ )r   c                óD   € V P                  \        P                  4       R # rS   )r^  r#  ÚSIGKILLrT   s   &r   r\  ÚSubprocessTransport.kill¹  rd  r   c                ó   <€ V ^8„  d   QhRR/# r:   r;   )r   r#   s   "€r   r   rî   ¼  s   ø€ ÷ Nñ N˜ñ Nr   c                óÄ  € V P                   e(   \        P                  ! V P                   4       R V n         V P                  ea   V P                  P                  e6   V P                  P                  P                  4        R V P                  n         V P                  4        R # R #   \         d/    \        P                  RT P                  P                  4        R # i ; i)Nzcan't kill %i due to EPERM)
r0  r2   rH   r4  r,  rb  ÚPermissionErrorr*   r+   rü   rT   s   &r   ri   ÚSubprocessTransport._close¼  s    € Ø�<‰<Ò#Ü�HŠH�T—\‘\Ô"ØˆDŒLà�=‰=Ò$Ø�}‰}×"Ñ"Ò.Ø—‘×#Ñ#×)Ñ)Ô+Ø&*�—‘Ô#ðNØ—‘Ö ñ %øô #ô NÜ—‘Ð9¸4¿=¹=×;LÑ;L×MðNús   ÂB& Â&5CÃCc                óB   <€ V ^8„  d   Qh/ R;R&   R;R&   R;R&   R;R&   # )r	   r�   r0  zsubprocess.Popen[bytes] | Noner4  r  zSpooler | Noneró   r;   )r   r#   s   "€r   r   rî     s9   ø‡ ‚ ð  Ñ ñ! ð" /Ñ5ñ# ð$ Ñ$ñ% ð& Ñò' r   )r@   r1   r4  r0  r  ró   )rÍ   rÎ   rÏ   rÐ   rÝ   r0  r4  r  rö   r  r'   r1  ru   rz   rL  rP  rV  r^  rb  r\  ri   rÑ   rÒ   rÓ   rÔ   rÕ   s   @@r   ré   ré     sÊ   ù‡ € ñð !€GØ15€HØ $€Kð¨%÷ ò ÷fð fð@,'ð
 #ð,'ð 04÷,'õ ,'÷\Wð W÷/ð /÷ð ÷!ð !÷ ð  ÷"ð "÷hð h÷0)ð )÷)ð )÷Nð N÷C … r   ré   c                   ój   a a€ ] tR tRt oRtR
V3R lV 3R llltV3R lR ltV3R lR ltR	tVt	V ;t
# )ÚStdioTransportiË  z°A bi-directional transport that corresponds to stdin/out.

Can talk to just about anything:
    - files
    - pipes
    - character devices (including terminals)
    - sockets
c                óZ   <€ V ^8„  d   QhRS[ P                  RS[ P                  RS[RS[/# )r	   r   r   r,  r-  r   )r   r#   s   "€r   r   ÚStdioTransport.__annotate__Õ  s7   ø€ ÷ 8ñ 8™W×6Ñ6ð 8Á'×BRÑBRð 8Ñ[^ð 8Ñloñ 8r   c                ó(   <€ \         SV `  WW44       R # rS   )r&   r'   )r6   r   r   r,  r-  r7   s   &&&&&€r   r'   ÚStdioTransport.__init__Õ  s   ø€ Ü‰Ñ˜¨Ö7r   c                ó    <€ V ^8„  d   QhRS[ /# rO   rP   )r   r#   s   "€r   r   rq  Ø  s   ø€ ÷ ñ ™tñ r   c                ó   € R # )Fr;   rT   s   &r   ru   ÚStdioTransport.can_write_eofØ  s   € Ùr   c                ó   <€ V ^8„  d   QhRR/# r:   r;   )r   r#   s   "€r   r   rq  Û  s   ø€ ÷ 8ñ 8 ñ 8r   c                ó   € \        R 4      h)zCan't write EOF to stdout)ÚRuntimeErrorrT   s   &r   rz   ÚStdioTransport._write_eof_nowÛ  s   € ÜÐ6Ó7Ð7r   r;   )r   r[   )rÍ   rÎ   rÏ   rÐ   rÝ   r'   ru   rz   rÒ   rÓ   rÔ   rÕ   s   @@r   ro  ro  Ë  s-   ù‡ € ñ÷8õ 8÷ð ÷8÷ 8ð 8r   ro  c                   ó¤   a € ] tR tRt o RtV 3R lR ltV 3R lR ltV 3R lR ltR	R
/V 3R lR lltV 3R lR lt	V 3R lR lt
V 3R ltRtV tR# )r7  iß  z‚Consumes data from an fd, storing it in a buffer.

This makes a copy of the fd, so you don't have to worry about holding it
open.
c                ó:   <€ V ^8„  d   QhRS[ P                  RS[/# )r	   r   rS  ©r    r!   r   )r   r#   s   "€r   r   ÚSpooler.__annotate__ê  s!   ø€ ÷ 4ñ 4™W×6Ñ6ð 4¹Cñ 4r   c                óò   € Wn         RV n        . V n        \        P                  ! V4      V n        \        P
                  ! V P                  R4       VP                  V P                  V P                  4       R# )r[   FNr\   )r(   Ú_fdÚ	_contentsr2   Údupr3   re   rL   )r6   r   rS  s   &&&r   r'   ÚSpooler.__init__ê  sN   € ØŒ
ØˆŒØˆŒä—6’6˜"“:ˆŒä
�Š˜Ÿ™ %Ô(Ø�‰˜Ÿ™ $×"2Ñ"2Ö3r   c                ó   <€ V ^8„  d   QhRR/# r:   r;   )r   r#   s   "€r   r   r~  ô  s   ø€ ÷ ñ ˜Tñ r   c                óò   €  \         P                  ! V P                  R 4      pTR8w  d   T P
                  P                  T4       R# T P                  4        R#   \         d     R# \         d    Rp LRi ; i)i    Nr   )r2   r=   r€  r?   r   r�  r°   rH   r«   s   & r   rL   ÚSpooler._read_readyô  s`   € ð	Ü—7’7˜4Ÿ8™8 TÓ*ˆDð �3Œ;Ø�N‰N×!Ñ! $Ö'à�J‰JŽLøô ô 	ÚÜô 	àŠDð	ús   ‚!A ÁA6Á'A6Á0A6Á5A6c                ó    <€ V ^8„  d   QhRS[ /# rO   rP   )r   r#   s   "€r   r   r~    s   ø€ ÷ Dñ D™4ñ Dr   c                ó|   € V P                   R8X  d   R# \        P                  ! V P                   .. . ^ 4      . . . 38g  # )r[   Fr\   )r€  ÚselectrT   s   &r   Ú	_is_readyÚSpooler._is_ready  s6   € Ø�8‰8�rŒ>ÙÜ�}Š}˜dŸh™h˜Z¨¨R°Ó3¸¸BÀ°|ÑCÐCr   rê   Fc                ó&   <€ V ^8„  d   QhRS[ RS[/# rì   )rQ   r¥   )r   r#   s   "€r   r   r~    s   ø€ ÷ ñ ™Dð ©Uñ r   c               óª   € V P                  4       '       d   V P                  4        K(  R P                  V P                  4      pV'       d   . V n        V# )r   )rŠ  rL   r²   r�  )r6   rê   Úresults   &$ r   rô   ÚSpooler.get  s<   € Ø�n‰n×ÒØ×ÑÖà—‘˜$Ÿ.™.Ó)ˆßØˆDŒNØˆr   c                ó   <€ V ^8„  d   QhRR/# r:   r;   )r   r#   s   "€r   r   r~    s   ø€ ÷ ñ �tñ r   c                óÄ   € V P                   R8w  dO   V P                  P                  V P                   4       \        P                  ! V P                   4       RV n         R# R# rZ   )r€  r(   ra   r2   rH   rT   s   &r   rH   ÚSpooler.close  s?   € Ø�8‰8�rŒ>Ø�J‰J×$Ñ$ T§X¡XÔ.Ü�HŠH�T—X‘XÔØˆDŽHñ r   c                ó   <€ V ^8„  d   QhRR/# r:   r;   )r   r#   s   "€r   r   r~    s   ø€ ÷ ñ ˜ñ r   c                ó&   € V P                  4        R # rS   )rH   rT   s   &r   rÊ   ÚSpooler.__del__  s   € Ø�
‰
Žr   c                óP   <€ V ^8„  d   Qh/ S[ P                  ;R&   S[;R&   R;R&   # )r	   r(   r€  zlist[bytes]r�  r}  )r   r#   s   "€r   r   r~  ß  s1   ø‡ ‚ ñ ×$Ñ$Ñ$ñ ñ 
�Hñ ð Ñò r   )r�  r€  r(   N)rÍ   rÎ   rÏ   rÐ   rÝ   r'   rL   rŠ  rô   rH   rÊ   rÑ   rÒ   rÓ   rÞ   s   @r   r7  r7  ß  sW   ø‡ € ñ÷4ð 4÷ð ÷Dð Dð
 5÷ ò ÷ð ÷ð ÷o ƒ r   r7  )&rÝ   r    r¨   ÚctypesrA   r%  Úloggingr2   r‰  r#  rA  r2  r'  Ú	threadingr   Útypingr   r   r   Újsonutilr   r   ÚCDLLr   r   r"  Ú	getLoggerrÍ   r*   r±   rT  r   r"   r×   rà   ré   ro  r7  r;   r   r   Ú<module>rž     sÔ   ðñ Rã Û Û Û Û Û Û 	Û Û Û Û Û Ý ß *Ñ *ç )à�KŠK˜Ó×#Ñ#€	õ(ð
 €ð 
×	Ò	˜8Ó	$€ð €ôa�×"Ñ"ô aôH"˜×)Ñ)ô "÷+ñ +ômN˜* g×&AÑ&Aô mNô`8�Zô 8÷(8ó 8r   