+
     Bi}|                        ^ RI t ^ RIt^ RIt ^ RIt^RIHt ^RIHt ^RIHt ^RIH	t	 ^RI
Ht ]e   ]P                  ]P                  3t ! R R]P                  4      t ! R	 R
]P                  4      tR tR t ! R R]	P(                  ]	P*                  4      t ! R R]P.                  4      tR#   ] d    Rt Li ; i)    N)	constants)
exceptions)	protocols)
transports)loggerc                   *    ] tR t^tRtRtRtRtRtRt	R# )SSLProtocolState	UNWRAPPEDDO_HANDSHAKEWRAPPEDFLUSHINGSHUTDOWN N)
__name__
__module____qualname____firstlineno__r
   r   r   r   r   __static_attributes__r       '/usr/lib/python3.14/asyncio/sslproto.pyr	   r	      s    I!LGHHr   r	   c                   &    ] tR t^tRtRtRtRtRtR# )AppProtocolState
STATE_INITSTATE_CON_MADE	STATE_EOFSTATE_CON_LOSTr   N)	r   r   r   r   r   r   r   r   r   r   r   r   r   r      s     J%NI%Nr   r   c                 t    V '       d   \        R 4      h\        P                  ! 4       pV'       g   RVn        V# )z(Server side SSL needs a valid SSLContextF)
ValueErrorsslcreate_default_contextcheck_hostname)server_sideserver_hostname
sslcontexts   && r   _create_transport_contextr%   /   s2    CDD ++-J$)
!r   c                     V f   Vf   VR,          pMTp^V,          pMT pVf   V^,          pMTpY4u;8  d   ^ 8  g   M \        RV: RV: R24      hW43# )Ni   zhigh (z) must be >= low (z) must be >= 0)r   )highlowkbhilos   &&&  r   add_flowcontrol_defaultsr,   =   sd    |;dBBRB
{1W=q=b" # 	# 6Mr   c                      a  ] tR t^Rt o Rt]P                  P                  tR t	RR lt
R tR tR tR t]3R	 ltR
 tR tR tRR ltR tR tRR ltR tR t]R 4       tR tR tR tR tR t R t!R t"Rt#V t$R# )_SSLProtocolTransportTc                ,    Wn         W n        R V n        R# FN)_loop_ssl_protocol_closed)selfloopssl_protocols   &&&r   __init___SSLProtocolTransport.__init__X   s    
)r   Nc                8    V P                   P                  W4      # N)r2   _get_extra_infor4   namedefaults   &&&r   get_extra_info$_SSLProtocolTransport.get_extra_info]   s    !!11$@@r   c                <    V P                   P                  V4       R # r:   )r2   _set_app_protocol)r4   protocols   &&r   set_protocol"_SSLProtocolTransport.set_protocola   s    ,,X6r   c                .    V P                   P                  # r:   )r2   _app_protocolr4   s   &r   get_protocol"_SSLProtocolTransport.get_protocold   s    !!///r   c                ^    V P                   ;'       g    V P                  P                  4       # r:   )r3   r2   _is_transport_closingrH   s   &r   
is_closing _SSLProtocolTransport.is_closingg   s#    ||IIt11GGIIr   c                ~    V P                   '       g$   R V n         V P                  P                  4        R# RV n        R# TN)r3   r2   _start_shutdownrH   s   &r   close_SSLProtocolTransport.closej   s.     |||DL..0!%Dr   c                h    V P                   '       g    R V n         VP                  R\        4       R# R# )Tz9unclosed transport <asyncio._SSLProtocolTransport object>N)r3   warnResourceWarning)r4   	_warningss   &&r   __del___SSLProtocolTransport.__del__x   s+    |||DLNN*, r   c                8    V P                   P                  '       * # r:   )r2   _app_reading_pausedrH   s   &r   
is_reading _SSLProtocolTransport.is_reading   s    %%9999r   c                :    V P                   P                  4        R # r:   )r2   _pause_readingrH   s   &r   pause_reading#_SSLProtocolTransport.pause_reading   s     	))+r   c                :    V P                   P                  4        R # r:   )r2   _resume_readingrH   s   &r   resume_reading$_SSLProtocolTransport.resume_reading   s     	**,r   c                p    V P                   P                  W4       V P                   P                  4        R # r:   )r2   _set_write_buffer_limits_control_app_writingr4   r'   r(   s   &&&r   set_write_buffer_limits-_SSLProtocolTransport.set_write_buffer_limits   s*    & 	33D>//1r   c                Z    V P                   P                  V P                   P                  3# r:   )r2   _outgoing_low_water_outgoing_high_waterrH   s   &r   get_write_buffer_limits-_SSLProtocolTransport.get_write_buffer_limits   *    ""66""779 	9r   c                6    V P                   P                  4       # r:   )r2   _get_write_buffer_sizerH   s   &r   get_write_buffer_size+_SSLProtocolTransport.get_write_buffer_size   s    !!88::r   c                p    V P                   P                  W4       V P                   P                  4        R # r:   )r2   _set_read_buffer_limits_control_ssl_readingri   s   &&&r   set_read_buffer_limits,_SSLProtocolTransport.set_read_buffer_limits   s*    & 	224=//1r   c                Z    V P                   P                  V P                   P                  3# r:   )r2   _incoming_low_water_incoming_high_waterrH   s   &r   get_read_buffer_limits,_SSLProtocolTransport.get_read_buffer_limits   rq   r   c                6    V P                   P                  4       # r:   )r2   _get_read_buffer_sizerH   s   &r   get_read_buffer_size*_SSLProtocolTransport.get_read_buffer_size   s    !!7799r   c                .    V P                   P                  # r:   )r2   _app_writing_pausedrH   s   &r   _protocol_paused&_SSLProtocolTransport._protocol_paused   s     !!555r   c                    \        V\        \        \        34      '       g"   \	        R \        V4      P                   24      hV'       g   R# V P                  P                  V34       R# )z+data: expecting a bytes-like instance, got N)	
isinstancebytes	bytearray
memoryview	TypeErrortyper   r2   _write_appdatar4   datas   &&r   write_SSLProtocolTransport.write   s[     $	: >?? ##':#6#6"79 : :))4'2r   c                <    V P                   P                  V4       R # r:   )r2   r   )r4   list_of_datas   &&r   
writelines _SSLProtocolTransport.writelines   s     	)),7r   c                    \         hr:   )NotImplementedErrorrH   s   &r   	write_eof_SSLProtocolTransport.write_eof   s
    
 "!r   c                    R # )Fr   rH   s   &r   can_write_eof#_SSLProtocolTransport.can_write_eof   s    r   c                (    V P                  R 4       R # r:   )_force_closerH   s   &r   abort_SSLProtocolTransport.abort   s     	$r   c                j    R V n         V P                  e   V P                  P                  V4       R# R# rP   )r3   r2   _abortr4   excs   &&r   r   "_SSLProtocolTransport._force_close   s.    )%%c* *r   c                    V P                   P                  P                  V4       V P                   ;P                  \	        V4      ,          un        R # r:   )r2   _write_backlogappend_write_buffer_sizelenr   s   &&r   _test__append_write_backlog1_SSLProtocolTransport._test__append_write_backlog  s7    ))006--T:-r   )r3   r1   r2   r:   NN)%r   r   r   r   _start_tls_compatibler   _SendfileModeFALLBACK_sendfile_compatibler7   r?   rD   rI   rM   rR   warningsrX   r\   r`   rd   rj   ro   rt   ry   r~   r   propertyr   r   r   r   r   r   r   r   r   __classdictcell____classdict__s   @r   r.   r.   R   s      !$22;;
A70J& !) ,:,-2,9;2,9: 6 638" +
; ;r   r.   c                   8  a  ] tR tRt o R,tRtRtRtR-R ltR t	R.R lt
R tR tR tR	 tR
 tR tR tR.R ltR tR tR tR tR tR tR tR tR tR tR tR tR tR t R t!R t"R t#R t$R  t%R! t&R/R" lt'R# t(R$ t)R% t*R/R& lt+R' t,R( t-R) t.R0R* lt/R+t0V t1R# )1SSLProtocoli  Nc
                   \         f   \        R4      h\        V P                  4      V n        \        V P                  4      V n        Vf   \        P                  pMV^ 8:  d   \        RV 24      hV	f   \        P                  p	MV	^ 8:  d   \        RV	 24      hV'       g   \        WV4      pWPn        V'       d   V'       g   W`n        MR V n        W0n        \        VR7      V n        \"        P$                  ! 4       V n        ^ V n        W@n        Wn        V P/                  V4       R V n        RV n        R V n        Wn        Wn        \         P:                  ! 4       V n        \         P:                  ! 4       V n        \@        PB                  V n"        ^ V n#        V'       d   \H        PJ                  V n&        M\H        PN                  V n&        V P                  PQ                  V P<                  V P>                  V P                  V P                  R7      V n)        RV n*        RV n+        RV n,        ^ V n-        ^ V n.        V P_                  4        RV n0        RV n1        ^ V n2        ^ V n3        V Pi                  4        V Pk                  4        R # )Nzstdlib ssl module not availablez7ssl_handshake_timeout should be a positive number, got z6ssl_shutdown_timeout should be a positive number, got )r$   F)r"   r#   )6r   RuntimeErrorr   max_size_ssl_bufferr   _ssl_buffer_viewr   SSL_HANDSHAKE_TIMEOUTr   SSL_SHUTDOWN_TIMEOUTr%   _server_side_server_hostname_sslcontextdict_extracollectionsdequer   r   _waiterr1   rB   _app_transport_app_transport_created
_transport_ssl_handshake_timeout_ssl_shutdown_timeout	MemoryBIO	_incoming	_outgoingr	   r
   _state
_conn_lostr   r   
_app_stater   wrap_bio_sslobj_ssl_writing_pausedr[   _ssl_reading_pausedr}   r|   rw   _eof_receivedr   rn   rm   rg   _get_app_transport)
r4   r5   app_protocolr$   waiterr"   r#   call_connection_madessl_handshake_timeoutssl_shutdown_timeouts
   &&&&&&&&&&r   r7   SSLProtocol.__init__  s5   
 ;@AA$T]]3 *4+;+; < ($-$C$C!"a',-/0 0  '#,#A#A !Q&+,./ / 2.J (;$3!$(D!% j1 *//1"#
|,"&+#&;#%9"&00.99DO.==DO''00NNDNN)) 11 1 3 $) #( #( $%!#$ $$&"#( $%!#$ %%'!r   c                    Wn         \        VR 4      '       dL   \        V\        P                  4      '       d,   VP
                  V n        VP                  V n        RV n	        R# RV n	        R# )
get_bufferTFN)
rG   hasattrr   r   BufferedProtocolr   _app_protocol_get_bufferbuffer_updated_app_protocol_buffer_updated_app_protocol_is_buffer)r4   r   s   &&r   rB   SSLProtocol._set_app_protocola  sT    )L,//<)C)CDD,8,C,CD)0<0K0KD-+/D(+0D(r   c                    V P                   f   R # V P                   P                  4       '       g<   Ve   V P                   P                  V4       MV P                   P                  R 4       R V n         R # r:   )r   	cancelledset_exception
set_resultr   s   &&r   _wakeup_waiterSSLProtocol._wakeup_waiterl  sR    <<||%%''**3/''-r   c                    V P                   f@   V P                  '       d   \        R4      h\        V P                  V 4      V n         RV n        V P                   # )Nz$Creating _SSLProtocolTransport twiceT)r   r   r   r.   r1   rH   s   &r   r   SSLProtocol._get_app_transportv  sM    &***"#IJJ"7

D"ID*.D'"""r   c                b    V P                   R J;'       d    V P                   P                  4       # r:   )r   rM   rH   s   &r   rL   !SSLProtocol._is_transport_closing~  s&    d*KKt/I/I/KKr   c                2    Wn         V P                  4        R # r:   )r   _start_handshake)r4   	transports   &&r   connection_madeSSLProtocol.connection_made  s    
 $r   c                |   V P                   P                  4        V P                  P                  4        V ;P                  ^,          un        V P
                  e   RV P
                  n        V P                  \        P                  8w  d   V P                  \        P                  8X  g    V P                  \        P                  8X  dF   \        P                  V n
        V P                  P!                  V P"                  P$                  V4       V P'                  \        P(                  4       RV n        RV n        RV n        V P-                  V4       V P.                  '       d"   V P.                  P1                  4        RV n        V P2                  '       d$   V P2                  P1                  4        RV n        R# R# )   NT)r   clearr   readr   r   r3   r   r	   r   r   r   r   r   r   r1   	call_soonrG   connection_lost
_set_stater
   r   r   _shutdown_timeout_handlecancel_handshake_timeout_handler   s   &&r   r   SSLProtocol.connection_lost  s?    	!!#1 **.D';;*777#3#B#BB#3#=#=="2"A"A

$$T%7%7%G%GM(223"!C ((())002,0D))))**113-1D* *r   c                    TpV^ 8:  g   W P                   8  d   V P                   p\        V P                  4      V8  d+   \        V4      V n        \	        V P                  4      V n        V P
                  # )r   )r   r   r   r   r   r   )r4   nwants   && r   r   SSLProtocol.get_buffer  s^    19}},==Dt 4'(D$.t/?/?$@D!$$$r   c                   V P                   P                  V P                  R V 4       V P                  \        P
                  8X  d   V P                  4        R # V P                  \        P                  8X  d   V P                  4        R # V P                  \        P                  8X  d   V P                  4        R # V P                  \        P                  8X  d   V P                  4        R # R # r:   )r   r   r   r   r	   r   _do_handshaker   _do_readr   	_do_flushr   _do_shutdown)r4   nbytess   &&r   r   SSLProtocol.buffer_updated  s    T227F;<;;*777 [[,444MMO[[,555NN[[,555 6r   c                .   R V n          V P                  P                  4       '       d   \        P                  ! RV 4       V P
                  \        P                  8X  d   V P                  \        4       R# V P
                  \        P                  8X  dF   V P                  \        P                  4       V P                  '       d   R # V P                  4        R# V P
                  \        P                  8X  dB   V P                  4        V P                  \        P                   4       V P#                  4        R# V P
                  \        P                   8X  d   V P#                  4        R# R#   \$         d    T P&                  P)                  4        h i ; i)Tz%r received EOFN)r   r1   	get_debugr   debugr   r	   r   _on_handshake_completeConnectionResetErrorr   r   r   r[   r  	_do_writer   r  	Exceptionr   rR   rH   s   &r   eof_receivedSSLProtocol.eof_received  s    "	zz##%%.5{{.;;;++,@A 0 8 88 0 9 9:+++NN$ 0 9 99  0 9 9:!!# 0 9 99!!# :  	OO!!#	s+   E- AE- 6AE- E- AE- :/E- -'Fc                    WP                   9   d   V P                   V,          # V P                  e   V P                  P                  W4      # V# r:   )r   r   r?   r<   s   &&&r   r;   SSLProtocol._get_extra_info  s?    ;;;;t$$__(??11$@@Nr   c                V   R pV\         P                  8X  d   RpMV P                  \         P                  8X  d   V\         P                  8X  d   RpMV P                  \         P                  8X  d   V\         P                  8X  d   RpMmV P                  \         P                  8X  d   V\         P
                  8X  d   RpM6V P                  \         P
                  8X  d   V\         P                  8X  d   RpV'       d	   Wn        R# \        RP                  V P                  V4      4      h)FTz!cannot switch state from {} to {}N)	r	   r
   r   r   r   r   r   r   format)r4   	new_statealloweds   && r   r   SSLProtocol._set_state  s    (222G KK+555)666G KK+888)111G KK+333)222G KK+444)222G#K 3::KK,- -r   c                   V P                   P                  4       '       d8   \        P                  ! R V 4       V P                   P	                  4       V n        MRV n        V P                  \        P                  4       V P                   P                  V P                  V P                  4      V n        V P                  4        R# )z%r starts SSL handshakeN)r1   r  r   r  time_handshake_start_timer   r	   r   
call_laterr   _check_handshake_timeoutr  r	  rH   s   &r   r   SSLProtocol._start_handshake  s    ::!!LL2D9)-):D&)-D&(556 JJ!!$"="="&"?"?A 	& 	r   c                    V P                   \        P                  8X  d-   R V P                   R2pV P	                  \        V4      4       R# R# )z$SSL handshake is taking longer than z! seconds: aborting the connectionN)r   r	   r   r   _fatal_errorConnectionAbortedError)r4   msgs   & r   r#  $SSLProtocol._check_handshake_timeout(  sN    ;;*7776../ 0*+ 
 4S9: 8r   c                     V P                   P                  4        V P                  R 4       R #   \         d    T P	                  4         R # \
        P                   d   pT P                  T4        R p?R # R p?ii ; ir:   )r   do_handshaker  SSLAgainErrors_process_outgoingr   SSLErrorr   s   & r   r	  SSLProtocol._do_handshake1  sb    	.LL%%' ''-  	%""$|| 	-'',,	-s!   / A=A= A=!A88A=c                .   V P                   e"   V P                   P                  4        R V n         V P                  p Vf!   V P                  \        P
                  4       MVhVP                  4       pT P                  P                  4       '       dJ   T P                  P!                  4       T P"                  ,
          p\$        P&                  ! RYR,          4       T P(                  P+                  TTP-                  4       TP/                  4       TR7       T P0                  \2        P4                  8X  d?   \2        P6                  T n        T P8                  P;                  T P=                  4       4       T P                  4        T P?                  4        R #   \         dt   pR pT P                  \        P                  4       \        T\        P                  4      '       d   RpMRpT P                  YE4       T P                  T4        R p?R # R p?ii ; i)Nz1SSL handshake failed on verifying the certificatezSSL handshake failedz%r: SSL handshake took %.1f msg     @@)peercertciphercompression
ssl_object) r  r  r   r   r	   r   getpeercertr  r
   r   r   CertificateErrorr&  r   r1   r  r   r!  r   r  r   updater2  r3  r   r   r   r   rG   r   r   r
  )r4   handshake_excsslobjr1  r   r(  dts   &&     r   r  "SSLProtocol._on_handshake_complete;  s   ))5**113-1D*	$ 0 8 89##))+H ::!!"T%?%??BLL94cJ 	H"(--/'-'9'9';&, 	 	. ??.999.==DO..t/F/F/HI1  		 MOO,667#s3344I,c'$		s   6F H!A(HHc                   V P                   \        P                  \        P                  \        P                  39   d   R # V P
                  e   RV P
                  n        V P                   \        P                  8X  d   V P                  R 4       R # V P                  \        P                  4       V P                  P                  V P                  V P                  4      V n        V P                  4        R # )NT)r   r	   r   r   r
   r   r3   r   r   r   r1   r"  r   _check_shutdown_timeoutr   r  rH   s   &r   rQ   SSLProtocol._start_shutdownd  s    KK )) )) **  **.D';;*777KKOO,556,0JJ,A,A**,,-D) NNr   c                    V P                   \        P                  \        P                  39   d2   V P                  P                  \        P                  ! R 4      4       R# R# )zSSL shutdown timed outN)r   r	   r   r   r   r   r   TimeoutErrorrH   s   &r   r=  #SSLProtocol._check_shutdown_timeouty  sN    KK )) )) 
 OO((''(@ACr   c                    V P                  4        V P                  \        P                  4       V P	                  4        R # r:   )r
  r   r	   r   r  rH   s   &r   r  SSLProtocol._do_flush  s*    (112r   c                d    V P                   '       g   V P                  P                  4        V P                  4        V P	                  4        V P                  R 4       R #   \         d    T P                  4         R # \        P                   d   pT P                  T4        R p?R # R p?ii ; ir:   )	r   r   unwrapr-  _call_eof_received_on_shutdown_completer,  r   r.  r   s   & r   r  SSLProtocol._do_shutdown  s    
	-%%%##% ""$##%&&t,  	%""$|| 	,&&s++	,s(   A! A! !B/?B/B/B**B/c                    V P                   e"   V P                   P                  4        R V n         V'       d   V P                  V4       R # V P                  P	                  V P
                  P                  4       R # r:   )r   r  r&  r1   r   r   rR   )r4   shutdown_excs   &&r   rG  !SSLProtocol._on_shutdown_complete  sU    ((4))002,0D)l+JJ  !6!67r   c                    V P                  \        P                  4       V P                  e   V P                  P	                  V4       R # R # r:   )r   r	   r
   r   r   r   s   &&r   r   SSLProtocol._abort  s6    (223??&OO((- 'r   c                h   V P                   \        P                  \        P                  \        P                  39   dQ   V P
                  \        P                  8  d   \        P                  ! R 4       V ;P
                  ^,          un        R# V F@  pV P                  P                  V4       V ;P                  \        V4      ,          un        KB  	   V P                   \        P                  8X  d   V P                  4        R# R#   \          d   pT P#                  TR4        Rp?R# Rp?ii ; i)zSSL connection is closedNFatal error on SSL protocol)r   r	   r   r   r
   r   r   !LOG_THRESHOLD_FOR_CONNLOST_WRITESr   warningr   r   r   r   r   r  r  r&  )r4   r   r   exs   &&  r   r   SSLProtocol._write_appdata  s    KK )) )) **  )"M"MM9:OOq O D&&t,##s4y0# !	A{{.666  7  	Ab"?@@	As   /D	 	D1D,,D1c                    V P                   '       d   V P                   ^ ,          pV P                  P                  V4      p\        V4      pW#8  d-   WR V P                   ^ &   V ;P                  V,          un        K}  V P                   ^  V ;P                  V,          un        K   V P                  4        R#   \
         d     Li ; ir   N)r   r   r   r   r   r,  r-  )r4   r   countdata_lens   &   r   r  SSLProtocol._do_write  s    	%%%**1-**40t9#-1&\D''*++u4+++A.++x7+ & 	   		s   B: BB: :CCc                    V P                   '       gG   V P                  P                  4       p\        V4      '       d   V P                  P                  V4       V P                  4        R # r:   )r   r   r   r   r   r   rh   r   s   & r   r-  SSLProtocol._process_outgoing  sG    '''>>&&(D4yy%%d+!!#r   c                   V P                   \        P                  \        P                  39  d   R #  V P                  '       gg   V P
                  '       d   V P                  4        MV P                  4        V P                  '       d   V P                  4        MV P                  4        V P                  4        R #   \         d   pT P                  TR4        R p?R # R p?ii ; i)NrO  )r   r	   r   r   r[   r   _do_read__buffered_do_read__copiedr   r  r-  rx   r  r&  )r4   rR  s   & r   r
  SSLProtocol._do_read  s    KK (( ))  
 	A+++///++-))+&&&NN$**,%%' 	Ab"?@@	As)   B= B= 2B= 
1B= =C%C  C%c                   ^ p^pV P                  V P                  4       4      p\        V4      p V P                  P	                  WC4      pV^ 8  dd   TpW8  d7   V P                  P	                  WA,
          W1R 4      pV^ 8  d   W,          pK;  M%V P
                  P                  V P                  4       V^ 8  d   V P                  V4       V'       g#   V P                  4        V P                  4        R# R#   \         d     LQi ; irU  )r   r   r   r   r   r1   r   r
  r,  r   rF  rQ   )r4   offsetrV  bufwantss   &    r   r\  SSLProtocol._do_read__buffered  s    ++D,F,F,HIC	LL%%e1Eqyn LL--enc'lKEqyJJ((7 A:--f5##%  " 	  		s   AC9 %C9 9DDc                   R pRpRp  V P                   P                  V P                  4      pV'       g   M3V'       d	   RpRpTpK?  V'       d	   RpXV.pKO  XP                  V4       Kb  V'       d   V P
                  P                  X4       M2V'       g+   V P
                  P                  RP                  X4      4       V'       g#   V P                  4        V P                  4        R# R#   \         d     Li ; i)   1TFr   N)
r   r   r   r   r,  rG   data_receivedjoinrF  rQ   )r4   chunkzeroonefirstr   s   &     r   r]  SSLProtocol._do_read__copied
  s    	))$--8 DC!EC!5>DKK& ,,U3,,SXXd^<##%  "   		s!   -C, C, C, C, ,C:9C:c                `    V P                   \        P                  8X  dR   \        P                  V n         V P                  P                  4       pV'       d   \        P                  ! R 4       R# R# R#   \        \        3 d    h \         d   pT P                  TR4        Rp?R# Rp?ii ; i)z?returning true from eof_received() has no effect when using sslzError calling eof_received()N)r   r   r   r   rG   r  r   rQ  KeyboardInterrupt
SystemExitBaseExceptionr&  )r4   	keep_openrR  s   &  r   rF  SSLProtocol._call_eof_received(  s    
	B"2"A"AA"2"<"< ..;;=	NN $B C  B ":. 	 	Bb"@AA	Bs$   AA4 A4 4B-B-B((B-c                   V P                  4       pWP                  8  d7   V P                  '       g%   R V n         V P                  P	                  4        R# WP                  8:  d9   V P                  '       d%   RV n         V P                  P                  4        R# R# R#   \
        \        3 d    h \         d9   pT P                  P                  RRRTRT P                  RT /4        Rp?R# Rp?ii ; i  \
        \        3 d    h \         d9   pT P                  P                  RRRTRT P                  RT /4        Rp?R# Rp?ii ; i)	Tmessagezprotocol.pause_writing() failed	exceptionr   rC   NFz protocol.resume_writing() failed)rs   rn   r   rG   pause_writingrn  ro  rp  r1   call_exception_handlerr   rm   resume_writing)r4   sizer   s   &  r   rh    SSLProtocol._control_app_writing7  s8   **,,,,T5M5M5M'+D$
""002 ---$2J2J2J',D$
""113 3K- &z2   

11@!4!4	3   &z2   

11A!4!4	3  s;   B! C8 !C5<C5=-C00C58EE-EEc                P    V P                   P                  V P                  ,           # r:   )r   pendingr   rH   s   &r   rs   "SSLProtocol._get_write_buffer_sizeT  s    ~~%%(?(???r   c                V    \        W\        P                  4      w  rWn        W n        R # r:   )r,   r   !FLOW_CONTROL_HIGH_WATER_SSL_WRITErn   rm   ri   s   &&&r   rg   $SSLProtocol._set_write_buffer_limitsW  s&    ,yBBD	$(!#& r   c                    R V n         R# rP   )r[   rH   s   &r   r_   SSLProtocol._pause_reading_  s
    #' r   c                   a  S P                   '       d+   R S n         V 3R lpS P                  P                  V4       R# R# )Fc                  .  < S P                   \        P                  8X  d   S P                  4        R # S P                   \        P                  8X  d   S P                  4        R # S P                   \        P                  8X  d   S P                  4        R # R # r:   )r   r	   r   r
  r   r  r   r  rH   s   r   resume+SSLProtocol._resume_reading.<locals>.resumef  s`    ;;"2":"::MMO[[$4$=$==NN$[[$4$=$==%%' >r   N)r[   r1   r   )r4   r  s   f r   rc   SSLProtocol._resume_readingb  s5    ###',D$( JJ  ( $r   c                >   V P                  4       pWP                  8  d6   V P                  '       g$   R V n        V P                  P	                  4        R# WP
                  8:  d8   V P                  '       d$   RV n        V P                  P                  4        R# R# R# )TFN)r   r}   r   r   r`   r|   rd   )r4   ry  s   & r   rx    SSLProtocol._control_ssl_readingq  sw    ))+,,,T5M5M5M'+D$OO))+---$2J2J2J',D$OO**, 3K-r   c                V    \        W\        P                  4      w  rWn        W n        R # r:   )r,   r    FLOW_CONTROL_HIGH_WATER_SSL_READr}   r|   ri   s   &&&r   rw   #SSLProtocol._set_read_buffer_limitsz  s&    ,yAAC	$(!#& r   c                .    V P                   P                  # r:   )r   r|  rH   s   &r   r   !SSLProtocol._get_read_buffer_size  s    ~~%%%r   c                    R V n         R# rP   )r   rH   s   &r   rv  SSLProtocol.pause_writing  s    
 $( r   c                4    R V n         V P                  4        R# r0   )r   r-  rH   s   &r   rx  SSLProtocol.resume_writing  s    
 $)  r   c           
        V P                   '       d   V P                   P                  V4       \        V\        4      '       d>   V P                  P                  4       '       d   \        P                  ! R WRR7       R# R# \        V\        P                  4      '       g0   V P                  P                  RVRVRV P                   RV /4       R# R# )z%r: %sT)exc_infort  ru  r   rC   N)r   r   r   OSErrorr1   r  r   r  r   CancelledErrorrw  )r4   r   rt  s   &&&r   r&  SSLProtocol._fatal_error  s    ???OO((-c7##zz##%%XttD &C!:!:;;JJ--7ST__D	/  <r   )%rG   r   r   r   r[   r   r   r   r   r   r   r   r!  r  r   r}   r|   r1   r   rn   rm   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   i   )FNTNNr:   r   )zFatal error on transport)2r   r   r   r   r   r!  r  r   r7   rB   r   r   rL   r   r   r   r   r  r;   r   r   r#  r	  r  rQ   r=  r  r  rG  r   r   r  r-  r
  r\  r]  rF  rh   rs   rg   r_   rc   rx   rw   r   rv  rx  r&  r   r   r   s   @r   r   r     s     H  $#Q"f	1#L "2H% !F$-P ;.%R*C
-8.A0! $A,#:#<B:@'()-'&
(! r   r   )r   enumr   r   ImportError r   r   r   r   logr   SSLWantReadErrorSSLSyscallErrorr,  Enumr	   r   r%   r,   _FlowControlMixin	Transportr.   r   r   r   r   r   <module>r     s   
        ?**C,?,?@Ntyy &tyy & *r;J88&00r;jZ
),, Z
{  
Cs   B3 3	B?>B?