
    -hhAo                        S r SSKrSSKrSSKrSSKrSSKr\" \S5      (       a  \ S-  r SSKJr  SSKJ	r	  SSKJ
r
  SS	KJr  SS
KJr  SSKJr  SSKJr  SrS\S.S jjrS\S.S jjr\" \S5      (       a  S\S.S jjrS\S.S jjr " S S\R,                  5      r " S S\\R,                  5      r " S S5      r " S S5      rg))StreamReaderStreamWriterStreamReaderProtocolopen_connectionstart_server    NAF_UNIX)open_unix_connectionstart_unix_server   )
coroutines)events)
exceptions)format_helpers)	protocols)logger)sleepi   )limitc                   ^	#    [         R                  " 5       n[        X$S9n[        XTS9m	UR                  " U	4S jX40 UD6I S h  vN u  pg[        UT	XT5      nXX4$  N7f)Nr   loopr   c                     > T $ N protocols   8/opt/python-3.13.8/usr/lib/python3.13/asyncio/streams.py<lambda>!open_connection.<locals>.<lambda>1   s        )r   get_running_loopr   r   create_connectionr   )
hostportr   kwdsr   reader	transport_writerr   s
            @r   r   r      si     & ""$D1F#F6H//$.(,. .LI)Xv<F>.   AAAAc                   ^ ^^#    [         R                  " 5       mU UU4S jnTR                  " XQU40 UD6I S h  vN $  N7f)Nc                  2   > [        TTS9n [        U TTS9nU$ Nr   r   r   r   r&   r   client_connected_cbr   r   s     r   factorystart_server.<locals>.factoryN   s&    E5'0C-13r    )r   r!   create_server)r0   r#   r$   r   r%   r1   r   s   `  `  @r   r   r   6   s;     , ""$D ##G4@4@@@@s   5A?Ac                   ^#    [         R                  " 5       n[        XS9n[        XCS9mUR                  " U4S jU 40 UD6I S h  vN u  pV[        UTXC5      nXG4$  N7f)Nr   r   c                     > T $ r   r   r   s   r   r   &open_unix_connection.<locals>.<lambda>b   s    Hr    )r   r!   r   r   create_unix_connectionr   )	pathr   r%   r   r&   r'   r(   r)   r   s	           @r   r	   r	   Z   si      &&(E5':!88d,&*, ,	i6@~,r*   c                   ^ ^^#    [         R                  " 5       mU UU4S jnTR                  " XA40 UD6I S h  vN $  N7f)Nc                  2   > [        TTS9n [        U TTS9nU$ r-   r.   r/   s     r   r1   "start_unix_server.<locals>.factoryk   s&    !D9F+F4G157HOr    )r   r!   create_unix_server)r0   r8   r   r%   r1   r   s   ` `  @r   r
   r
   f   s9      &&(	 ,,WCdCCCCs   4A >A c                   <    \ rS rSrS
S jrS rS rS rS rS r	S	r
g)FlowControlMixint   Nc                     Uc  [         R                  " 5       U l        OXl        SU l        [        R
                  " 5       U l        SU l        g NF)r   get_event_loop_loop_pausedcollectionsdeque_drain_waiters_connection_lost)selfr   s     r   __init__FlowControlMixin.__init__~   s<    <..0DJJ)//1 %r    c                     SU l         U R                  R                  5       (       a  [        R                  " SU 5        g g )NTz%r pauses writing)rD   rC   	get_debugr   debugrI   s    r   pause_writingFlowControlMixin.pause_writing   s0    ::!!LL,d3 "r    c                     SU l         U R                  R                  5       (       a  [        R                  " SU 5        U R
                   H+  nUR                  5       (       a  M  UR                  S 5        M-     g )NFz%r resumes writing)rD   rC   rM   r   rN   rG   done
set_resultrI   waiters     r   resume_writingFlowControlMixin.resume_writing   sT    ::!!LL-t4))F;;==!!$' *r    c                     SU l         U R                  (       d  g U R                   HA  nUR                  5       (       a  M  Uc  UR	                  S 5        M0  UR                  U5        MC     g NT)rH   rD   rG   rS   rT   set_exceptionrI   excrV   s      r   connection_lost FlowControlMixin.connection_lost   sP     $||))F;;==;%%d+((- *r    c                 b  #    U R                   (       a  [        S5      eU R                  (       d  g U R                  R	                  5       nU R
                  R                  U5         UI S h  vN   U R
                  R                  U5        g  N ! U R
                  R                  U5        f = f7f)NzConnection lost)rH   ConnectionResetErrorrD   rC   create_futurerG   appendremoverU   s     r   _drain_helperFlowControlMixin._drain_helper   s       &'899||))+""6*	/LL&&v. &&v.s0   A$B/'B ,B-B 1B/B B,,B/c                     [         er   )NotImplementedErrorrI   streams     r   _get_close_waiter"FlowControlMixin._get_close_waiter   s    !!r    )rH   rG   rC   rD   r   )__name__
__module____qualname____firstlineno__rJ   rP   rW   r^   re   rk   __static_attributes__r   r    r   r>   r>   t   s     &4(.
/"r    r>   c                   p   ^  \ rS rSrSrSU 4S jjr\S 5       rS rS r	U 4S jr
S rS	 rS
 rS rSrU =r$ )r      Nc                 "  > [         TU ]  US9  Ub-  [        R                  " U5      U l        UR
                  U l        OS U l        Ub  Xl        SU l        S U l        S U l	        X l
        SU l        U R                  R                  5       U l        g )Nr   F)superrJ   weakrefref_stream_reader_wr_source_traceback_strong_reader_reject_connection_task
_transport_client_connected_cb	_over_sslrC   rb   _closed)rI   stream_readerr0   r   	__class__s       r   rJ   StreamReaderProtocol.__init__   s    d#$%,[[%?D"%2%D%DD"%)D"* #0"'
$7!zz//1r    c                 >    U R                   c  g U R                  5       $ r   )rx   rO   s    r   _stream_reader#StreamReaderProtocol._stream_reader   s     !!)%%''r    c                 X    U R                   nXl        UR                  S5      S LU l        g )N
sslcontext)rC   r}   get_extra_infor   )rI   r'   r   s      r   _replace_transport'StreamReaderProtocol._replace_transport   s'    zz#"11,?tKr    c                 ~  ^ ^ T R                   (       aP  SS0nT R                  (       a  T R                  US'   T R                  R                  U5        TR	                  5         g TT l        T R                  nUb  UR                  T5        TR                  S5      S LT l	        T R                  b  [        TT UT R                  5      nT R                  X45      n[        R                  " U5      (       aB  U U4S jnT R                  R                  U5      T l        T R                  R!                  U5        S T l        g g )NmessagezpAn open stream was garbage collected prior to establishing network connection; call "stream.close()" explicitly.source_tracebackr   c                    > U R                  5       (       a  TR                  5         g U R                  5       nUb0  TR                  R	                  SUTS.5        TR                  5         g g )Nz*Unhandled exception in client_connected_cb)r   	exceptionr'   )	cancelledcloser   rC   call_exception_handler)taskr]   rI   r'   s     r   callback6StreamReaderProtocol.connection_made.<locals>.callback   s_    ~~''!)..*C

99'S),)2; 
 ") 'r    )r{   ry   rC   r   abortr}   r   set_transportr   r   r~   r   r   iscoroutinecreate_taskr|   add_done_callbackrz   )rI   r'   contextr&   r)   resr   s   ``     r   connection_made$StreamReaderProtocol.connection_made   s   "" @G
 %%.2.D.D*+JJ--g6OO#$$  +"11,?tK$$0!)T64::FF++F;C%%c*** "ZZ33C8


,,X6"&D) 1r    c                 v  > U R                   nUb%  Uc  UR                  5         OUR                  U5        U R                  R	                  5       (       d:  Uc  U R                  R                  S 5        OU R                  R                  U5        [        TU ]  U5        S U l        S U l	        S U l
        S U l        g r   )r   feed_eofr[   r   rS   rT   ru   r^   rx   _stream_writerr|   r}   )rI   r]   r&   r   s      r   r^   $StreamReaderProtocol.connection_lost  s    $${!$$S)||  ""{''-**3/$!%"
r    c                 F    U R                   nUb  UR                  U5        g g r   )r   	feed_data)rI   datar&   s      r   data_received"StreamReaderProtocol.data_received  s&    $$T" r    c                 f    U R                   nUb  UR                  5         U R                  (       a  gg)NFT)r   r   r   )rI   r&   s     r   eof_received!StreamReaderProtocol.eof_received  s,    $$OO>> r    c                     U R                   $ r   )r   ri   s     r   rk   &StreamReaderProtocol._get_close_waiter&  s    ||r    c                      U R                   nUR                  5       (       a'  UR                  5       (       d  UR                  5         g g g ! [         a     g f = fr   )r   rS   r   r   AttributeError)rI   closeds     r   __del__StreamReaderProtocol.__del__)  sR    	#\\F {{}}V%5%5%7%7  " &8}  		s   A 
AA)
r~   r   r   r{   ry   rx   r   rz   r|   r}   NN)rm   rn   ro   rp   ry   rJ   propertyr   r   r   r^   r   r   rk   r   rq   __classcell__)r   s   @r   r   r      sN     2& ( (
L
%'N$#
		# 	#r    r   c                       \ rS rSrS rS r\S 5       rS rS r	S r
S rS	 rS
 rS rSS jrS rSSSS.S jr\4S jrSrg)r   i5  c                     Xl         X l        X0l        X@l        U R                  R	                  5       U l        U R
                  R                  S 5        g r   )r}   	_protocol_readerrC   rb   _complete_futrT   )rI   r'   r   r&   r   s        r   rJ   StreamWriter.__init__?  sA    #! 
!ZZ557%%d+r    c                     U R                   R                  SU R                  < 3/nU R                  b  UR	                  SU R                  < 35        SR                  SR                  U5      5      $ )N
transport=zreader=<{}> )r   rm   r}   r   rc   formatjoinrI   infos     r   __repr__StreamWriter.__repr__I  s[    '':doo5H)IJ<<#KK'$,,!123}}SXXd^,,r    c                     U R                   $ r   r}   rO   s    r   r'   StreamWriter.transportO  s    r    c                 :    U R                   R                  U5        g r   )r}   writerI   r   s     r   r   StreamWriter.writeS  s    d#r    c                 :    U R                   R                  U5        g r   )r}   
writelinesr   s     r   r   StreamWriter.writelinesV  s    ""4(r    c                 6    U R                   R                  5       $ r   )r}   	write_eofrO   s    r   r   StreamWriter.write_eofY  s    ((**r    c                 6    U R                   R                  5       $ r   )r}   can_write_eofrO   s    r   r   StreamWriter.can_write_eof\  s    ,,..r    c                 6    U R                   R                  5       $ r   )r}   r   rO   s    r   r   StreamWriter.close_  s    $$&&r    c                 6    U R                   R                  5       $ r   )r}   
is_closingrO   s    r   r   StreamWriter.is_closingb  s    ))++r    c                 V   #    U R                   R                  U 5      I S h  vN   g  N7fr   )r   rk   rO   s    r   wait_closedStreamWriter.wait_closede  s     nn..t444s   )')Nc                 8    U R                   R                  X5      $ r   )r}   r   )rI   namedefaults      r   r   StreamWriter.get_extra_infoh  s    --d<<r    c                   #    U R                   b  U R                   R                  5       nUb  UeU R                  R                  5       (       a  [	        S5      I S h  vN   U R
                  R                  5       I S h  vN   g  N' N7f)Nr   )r   r   r}   r   r   r   re   )rI   r]   s     r   drainStreamWriter.draink  sk      <<#,,((*C	??%%'' (NNnn**,,, ,s$   ABB!B>B?BB)server_hostnamessl_handshake_timeoutssl_shutdown_timeoutc          
        #    U R                   R                  S LnU R                   nU R                  5       I S h  vN   U R                  R	                  U R
                  XaXRUUS9I S h  vN nXpl        UR                  U5        g  NK N7f)N)server_sider   r   r   )r   r~   r   rC   	start_tlsr}   r   )rI   r   r   r   r   r   r   new_transports           r   r   StreamWriter.start_tls  s     
 nn99E>>jjl"jj22OOX#"7!5	 3 7 7
 (##M2 	7s!   8B
B.B
)B*B
B
c                    U R                   R                  5       (       dc  U R                  R                  5       (       a  UR                  " S[
        5        g U R                  5         UR                  " SU < 3[
        5        g g )Nzloop is closedz	unclosed )r}   r   rC   	is_closedwarnResourceWarningr   )rI   warningss     r   r   StreamWriter.__del__  sZ    ))++zz##%%.@

	$2OD ,r    )r   rC   r   r   r}   r   )rm   rn   ro   rp   rJ   r   r   r'   r   r   r   r   r   r   r   r   r   r   r   r   rq   r   r    r   r   r   5  sh    ,-  $)+/',5=-4 )-.2-13   ( Er    r   c                       \ rS rSrSr\S4S jrS rS rS r	S r
S rS	 rS
 rS rS rS rS rSS jrSS jrS rS rS rSrg)r   i  Nc                 |   US::  a  [        S5      eXl        Uc  [        R                  " 5       U l        OX l        [        5       U l        SU l        S U l        S U l	        S U l
        SU l        U R                  R                  5       (       a0  [        R                  " [        R                   " S5      5      U l        g g )Nr   zLimit cannot be <= 0Fr   )
ValueError_limitr   rB   rC   	bytearray_buffer_eof_waiter
_exceptionr}   rD   rM   r   extract_stacksys	_getframery   )rI   r   r   s      r   rJ   StreamReader.__init__  s     A:344<..0DJJ {	::!!%3%A%Aa &"D" "r    c                    S/nU R                   (       a'  UR                  [        U R                   5       S35        U R                  (       a  UR                  S5        U R                  [
        :w  a  UR                  SU R                   35        U R                  (       a  UR                  SU R                  < 35        U R                  (       a  UR                  SU R                  < 35        U R                  (       a  UR                  SU R                  < 35        U R                  (       a  UR                  S5        S	R                  S
R                  U5      5      $ )Nr   z byteseofzlimit=zwaiter=z
exception=r   pausedr   r   )r   rc   lenr   r   _DEFAULT_LIMITr   r   r}   rD   r   r   r   s     r   r   StreamReader.__repr__  s    <<KK3t||,-V4599KK;;.(KK&./<<KK'$,,!123??KK*T__$789??KK*T__$789<<KK!}}SXXd^,,r    c                     U R                   $ r   )r   rO   s    r   r   StreamReader.exception  s    r    c                     Xl         U R                  nUb/  S U l        UR                  5       (       d  UR                  U5        g g g r   )r   r   r   r[   r\   s      r   r[   StreamReader.set_exception  sD    DL##%%$$S) & r    c                     U R                   nUb/  S U l         UR                  5       (       d  UR                  S 5        g g g r   )r   r   rT   rU   s     r   _wakeup_waiterStreamReader._wakeup_waiter  s?    DL##%%!!$' & r    c                     Xl         g r   r   )rI   r'   s     r   r   StreamReader.set_transport  s    #r    c                     U R                   (       aF  [        U R                  5      U R                  ::  a"  SU l         U R                  R                  5         g g g rA   )rD   r  r   r   r}   resume_readingrO   s    r   _maybe_resume_transport$StreamReader._maybe_resume_transport  s;    <<C-< DLOO**, =<r    c                 2    SU l         U R                  5         g rZ   )r   r  rO   s    r   r   StreamReader.feed_eof  s    	r    c                 J    U R                   =(       a    U R                  (       + $ r   )r   r   rO   s    r   at_eofStreamReader.at_eof  s    yy---r    c                 j   U(       d  g U R                   R                  U5        U R                  5         U R                  b\  U R                  (       dJ  [        U R                   5      SU R                  -  :  a#   U R                  R                  5         SU l        g g g g ! [         a
    S U l         g f = f)N   T)	r   extendr  r}   rD   r  r   pause_readingrh   r   s     r   r   StreamReader.feed_data  s     D!OO'LLDLL!AO3$--/  $ 4 ! (
 ' ' #'	's   9B B21B2c                 8  #    U R                   b  [        U S35      eU R                  (       a!  SU l        U R                  R	                  5         U R
                  R                  5       U l          U R                   I S h  vN   S U l         g  N! S U l         f = f7f)NzF() called while another coroutine is already waiting for incoming dataF)r   RuntimeErrorrD   r}   r  rC   rb   )rI   	func_names     r   _wait_for_dataStreamReader._wait_for_data  s      <<#+ 4 56 6 << DLOO**,zz//1	 ,,DL DLs0   A-B0B ?B B BB 	BBc                   #    Sn[        U5      n U R                  U5      I S h  vN nU$  N! [        R                   a  nUR                  s S nA$ S nAf[        R
                   a  nU R                  R                  XR                  5      (       a  U R                  S UR                  U-   2	 OU R                  R                  5         U R                  5         [        UR                  S   5      eS nAff = f7f)N   
r   )r  	readuntilr   IncompleteReadErrorpartialLimitOverrunErrorr   
startswithconsumedclearr  r   args)rI   sepseplenlinees        r   readlineStreamReader.readline  s       S
	(,,D  --- 	99++ 	(||&&sJJ77LL!5!**v"5!56""$((*QVVAY''	(sJ   C;. ,. C;. C8AC8C;C8*B	C33C88C;c                    #    [        U[        5      (       a  [        U[        S9nOU/nU(       d  [	        S5      e[        US   5      n[        US   5      nUS:X  a  [	        S5      eU R
                  b  U R
                  eSn [        U R                  5      nXT-
  U:  a  S nS nU HB  nU R                  R                  X5      n	U	S:w  d  M&  U	[        U5      -   n
Ub  X:  d  M>  U
nU	nMD     Ub  O[        SUS-   U-
  5      nX@R                  :  a  [        R                  " SU5      eU R                  (       aF  [        U R                  5      nU R                  R                  5         [        R                  " US 5      eU R!                  S5      I S h  vN   GM  X`R                  :  a  [        R                  " S	U5      eU R                  S U nU R                  S U2	 U R#                  5         [        U5      $  Nf7f)
N)keyz-Separator should contain at least one elementr   z,Separator should be at least one-byte stringr   z2Separator is not found, and chunk exceed the limitr$  z2Separator is found, but chunk is longer than limit)
isinstancetuplesortedr  r   r   r   findmaxr   r   r'  r   bytesr*  r%  r   r  )rI   	separator
min_seplen
max_seplenoffsetbuflenmatch_start	match_endr,  isependchunks               r   r$  StreamReader.readuntil>  s    4 i''yc2I"ILMM1&
2'
?KLL??&//!*  &F *," 	$C<<,,S9Drz #SXo$,(+I*.K % ( Q
Z 78KK'$66L    yydll+""$ 44UDAA %%k222O R $..DkS S Zi(LL)$$$&U| 3s    CG>G>&B/G>G<A'G>c                   #    U R                   b  U R                   eUS:X  a  gUS:  aR  / n U R                  U R                  5      I S h  vN nU(       d  OUR                  U5        M>  SR	                  U5      $ U R
                  (       d*  U R                  (       d  U R                  S5      I S h  vN   [        [        U R
                  5      S U 5      nU R
                  S U2	 U R                  5         U$  N NH7f)Nr   r    read)r   rG  r   rc   r   r   r   r   r:  
memoryviewr  )rI   nblocksblockr   s        r   rG  StreamReader.read  s     , ??&//!6q5
 F"ii44e$	 
 88F##||DII%%f--- Z-bq12LL!$$& 5 .s&   AC<
C8A&C<1C:2AC<:C<c                   #    US:  a  [        S5      eU R                  b  U R                  eUS:X  a  g[        U R                  5      U:  a  U R                  (       aE  [        U R                  5      nU R                  R                  5         [        R                  " X!5      eU R                  S5      I S h  vN   [        U R                  5      U:  a  M  [        U R                  5      U:X  a0  [        U R                  5      nU R                  R                  5         O0[        [        U R                  5      S U 5      nU R                  S U2	 U R                  5         U$  N7f)Nr   z*readexactly size can not be less than zeror    readexactly)r   r   r  r   r   r:  r*  r   r%  r   rH  r  )rI   rI  
incompleter   s       r   rN  StreamReader.readexactly  s     q5IJJ??&//!6$,,!#yy"4<<0
""$ 44ZCC%%m444 $,,!# t||!&DLL DLL1"156DRaR $$& 5s   B5E$7E"8E$BE$c                     U $ r   r   rO   s    r   	__aiter__StreamReader.__aiter__  s    r    c                 Z   #    U R                  5       I S h  vN nUS:X  a  [        eU$  N7f)Nr    )r0  StopAsyncIteration)rI   vals     r   	__anext__StreamReader.__anext__  s*     MMO##:$$
 $s   +)+)	r   r   r   r   rC   rD   ry   r}   r   )r#  )r4  )rm   rn   ro   rp   ry   r  rJ   r   r   r[   r  r   r  r   r  r   r   r0  r$  rG  rN  rR  rW  rq   r   r    r   r   r     sf    +$ ",-$*($-
.$, 8>pd1f'Rr    r   r   r   )__all__rE   socketr   r   rv   hasattr r   r   r   r   r   logr   tasksr   r  r   r   r	   r
   Protocolr>   r   r   r   r   r    r   <module>r`     s   '   
  
69<<G         .8A+AB 69
)7
D&4D="y)) ="@~#+Y-?-? ~#BeE eENw wr    