+
    im  c                   s   R t ^ RIt^ RIt^ RIt^ RIt^ RIt^ RIHt ^ RIH	t . R1Ot
]! ]R4      '       d   ]
P                  . R2O4       ]! ]R4      '       d6   ]
P                  . R3O4       ]! ]R4      '       d   ]
P                  RR.4       ]! ]R4      '       d   ]P                  tM]P                  t ! R R4      t ! R R]4      t ! R R]4      t]! ]R4      '       d    ! R R4      t ! R R]4      t ! R R 4      t ! R! R4      t]! ]R4      '       d    ! R" R]]4      t ! R# R]]4      t ! R$ R]]4      t ! R% R]]4      t]! ]R4      '       dV    ! R& R]4      t ! R' R]4      t ! R( R]]4      t ! R) R]]4      t]! ]R4      '       d    ! R* R]]4      t  ! R+ R]]4      t! ! R, R	4      t" ! R- R
]"4      t# ! R. R/]4      t$ ! R0 R]"4      t%R# )4z0.4N)BufferedIOBase)	monotonic
BaseServer	TCPServer	UDPServerThreadingUDPServerThreadingTCPServerBaseRequestHandlerStreamRequestHandlerDatagramRequestHandlerThreadingMixInforkForkingUDPServerForkingTCPServerForkingMixInAF_UNIXUnixStreamServerUnixDatagramServerThreadingUnixStreamServerThreadingUnixDatagramServerForkingUnixStreamServerForkingUnixDatagramServerPollSelectorc                   s   a  ] tR t^t o 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V tR# )r   Nc                s`    Wn         W n        \        P                  ! 4       V n        R V n        R# )FN)server_addressRequestHandlerClass	threadingZEvent_BaseServer__is_shut_down_BaseServer__shutdown_request)selfr   r      &&&%/usr/lib64/python3.14/socketserver.py__init__ZBaseServer.__init__   s%    ,#6 'oo/"'    c                    R # N r      &r   server_activateZBaseServer.server_activate        	r    c                s&   V P                   P                  4         \        4       ;_uu_ 4       pVP                  V \        P
                  4       V P                  '       gO   VP                  V4      pV P                  '       d   M*V'       d   V P                  4        V P                  4        K`  R R R 4       RV n        V P                   P                  4        R #   + '       g   i     L3; i  RT n        T P                   P                  4        i ; i)NF)r   clear_ServerSelectorregister	selectors
EVENT_READr   select_handle_request_noblockservice_actionsset)r   Zpoll_intervalselectorZreadys   &&  r   serve_foreverZBaseServer.serve_forever   s     	!!#	&
 !""h!!$	(<(<=111$OOM:E...446((* # ',D###% #" ',D###%s4   C- 2C!"CC"C/C- C*	%C- -#Dc                sH    R V n         V P                  P                  4        R# )TN)r   r   Zwaitr$   r%   r   shutdownZBaseServer.shutdown   s     #'  "r    c                r!   r"   r#   r$   r%   r   r/   ZBaseServer.service_actions  r'   r    c                s.   V P                   P                  4       pVf   V P                  pM#V P                  e   \        WP                  4      pVe   \	        4       V,           p\        4       ;_uu_ 4       pVP                  V \        P                  4        VP                  V4      '       d   V P                  4       uuR R R 4       # Vf   K8  X\	        4       ,
          pV^ 8  g   KR  V P                  4       uuR R R 4       #   + '       g   i     R # ; ir"   )socketZ
gettimeouttimeoutZmintimer)   r*   r+   r,   r-   r.   handle_timeout)r   r5   Zdeadliner1   s   &   r   handle_requestZBaseServer.handle_request  s     ++((*?llG\\%'<<0Gv'H (dI$8$89??7++779  *"*TV"3"Q;#'#6#6#8 s$   68D/D	DD)DD	c                sT    V P                  4       w  rT P                  Y4      '       d    T P                  Y4       R # T P                  T4       R #   \         d     R # i ; i  \         d'    T P                  Y4       T P                  T4        R #  T P                  T4       h ; ir"   )get_requestOSErrorverify_requestprocess_request	Exceptionhandle_errorshutdown_requestr   requestclient_address   &  r   r.   Z"BaseServer._handle_request_noblock1  s    	&*&6&6&8#G w77$$W= !!'*  		
  /!!':%%g.%%g.s"   A A$ A! A!$-B'B'c                r!   r"   r#   r$   r%   r   r7   ZBaseServer.handle_timeoutH  s    
 	r    c                r!   Tr#   r@   r   r   r;   ZBaseServer.verify_requestO  s     r    c                sJ    V P                  W4       V P                  V4       R # r"   )finish_requestr?   r@   r   r   r<   ZBaseServer.process_requestW  s      	G4g&r    c                r!   r"   r#   r$   r%   r   server_closeZBaseServer.server_close`  r'   r    c                s*    V P                  WV 4       R # r"   )r   r@   r   r   rE   ZBaseServer.finish_requesth  s      $?r    c                (    V P                  V4       R # r"   close_requestr   rA      &&r   r?   ZBaseServer.shutdown_requestl      7#r    c                r!   r"   r#   rJ   rK   r   rI   ZBaseServer.close_requestp      r    c                s    \        R\        P                  R7       \        RV\        P                  R7       ^ RIpVP	                  4        \        R\        P                  R7       R# )Z-)Zfilez4Exception occurred during processing of request fromNz(----------------------------------------)ZprintsysZstderr	tracebackZ	print_exc)r   rA   rB   rO      &&& r   r>   ZBaseServer.handle_errort  sC     	f3::&D	-f3::&r    c                s    V # r"   r#   r$   r%   r   	__enter__ZBaseServer.__enter__  s    r    c                &    V P                  4        R # r"   )rF   )r   argss   &*r   __exit__ZBaseServer.__exit__  s    r    )r   Z__is_shut_downZ__shutdown_requestr   )g      ?)__name__
__module____qualname____firstlineno__r5   r   r&   r2   r3   r/   r8   r.   r7   r;   r<   rF   rE   r?   rI   r>   rQ   rT   __static_attributes____classdictcell____classdict__   @r   r   r      sh     \ G(&:#&9:+.'@$' r    c                   s   a  ] tR tRt o ]P
                  t]P                  t^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V tR# )r   i  Fc                s   \         P                  WV4       \        P                  ! V P                  V P                  4      V n        V'       d$    V P                  4        V P                  4        R # R #    T P                  4        h ; ir"   )r   r   r4   address_familysocket_typeserver_bindr&   rF   )r   r   r   Zbind_and_activate   &&&&r   r   ZTCPServer.__init__  so    D2EFmmD$7$7$($4$46  "$$& !!#s    A4 4Bc                sp   V P                   '       dP   \        \        R 4      '       d:   V P                  P                  \        P                  \        P
                  ^4       V P                  '       d   \        \        R4      '       di   V P                  \        P                  \        P                  39   d:   V P                  P                  \        P                  \        P                  ^4       V P                  P                  V P                  4       V P                  P                  4       V n        R# )SO_REUSEADDRSO_REUSEPORTN)allow_reuse_addresshasattrr4   
setsockoptZ
SOL_SOCKETrb   allow_reuse_portr^   AF_INETZAF_INET6rc   Zbindr   Zgetsocknamer$   r%   r   r`   ZTCPServer.server_bind  s     ###(G(GKK""6#4#4f6I6I1M !!!gfn&E&E##'HHKK""6#4#4f6I6I1M,,-"kk557r    c                sP    V P                   P                  V P                  4       R # r"   )r4   Zlistenrequest_queue_sizer$   r%   r   r&   ZTCPServer.server_activate  s     	4223r    c                s:    V P                   P                  4        R # r"   )r4   closer$   r%   r   rF   ZTCPServer.server_close  s     	r    c                6    V P                   P                  4       # r"   )r4   filenor$   r%   r   rl   ZTCPServer.fileno       {{!!##r    c                rk   r"   )r4   Zacceptr$   r%   r   r9   ZTCPServer.get_request  rm   r    c                s     VP                  \        P                  4       V P	                  V4       R #   \         d     L i ; ir"   )r3   r4   ZSHUT_WRr:   rI   rJ   rK   r   r?   ZTCPServer.shutdown_request  s?    	 V^^, 	7#  		s   4 AAc                s&    VP                  4        R # r"   )rj   rJ   rK   r   rI   ZTCPServer.close_request  s    r    )r   r4   NrD   )rU   rV   rW   rX   r4   rh   r^   ZSOCK_STREAMr_   ri   rd   rg   r   r`   r&   rF   rl   r9   r?   rI   rY   rZ   r[   r]   r   r   r     s[     ` ^^N$$K8$4$$$ r    c                   s\   a  ] tR tRt o RtRt]P                  tRt	R t
R tR tR tRtV tR	# )
r   i  Fi    c                sn    V P                   P                  V P                  4      w  rWP                   3V3# r"   )r4   Zrecvfrommax_packet_size)r   ZdataZclient_addrrC   r   r9   ZUDPServer.get_request  s1     KK001E1EFkk"K//r    c                r!   r"   r#   r$   r%   r   r&   ZUDPServer.server_activate   rM   r    c                rG   r"   rH   rJ   rK   r   r?   ZUDPServer.shutdown_request$  rL   r    c                r!   r"   r#   rJ   rK   r   rI   ZUDPServer.close_request(  rM   r    r#   N)rU   rV   rW   rX   rd   rg   r4   Z
SOCK_DGRAMr_   rn   r9   r&   r?   rI   rY   rZ   r[   r]   r   r   r     s<       ##KO0$ r    c                   sb   a a ] tR tRt oRtRt^(tRtRR/R ltR t	R	 t
R
 tV 3R ltRtVtV ;t# )r   i-  i,  NTblockingFc               s   V P                   f   R # \        V P                   4      V P                  8  d8    \        P                  ! R^ 4      w  r#V P                   P                  V4       K[  V P                   P                  4        FQ  p V'       d   ^ M\        P                  p\        P                  ! W$4      w  r#V P                   P                  V4       KS  	  R #   \         d    T P                   P                  4         K  \         d     K  i ; i  \         d     T P                   P                  T4        K  \         d     K  i ; i)N)active_childrenZlenmax_childrenosZwaitpidZdiscardZChildProcessErrorr(   r:   ZcopyZWNOHANG)r   ro   pidZ_Zflagss   &$   r   collect_childrenZForkingMixIn.collect_children6  s   ##+ d**+t/@/@@ZZA.FC((005 ++002
!)ArzzEZZ3FC ((005 3 ) 1((..0  ) 6((005 s<   4C 
AD%DDDD&E?EEEc                rR   r"   ru   r$   r%   r   r7   ZForkingMixIn.handle_timeoutY      
 !!#r    c                rR   r"   rv   r$   r%   r   r/   ZForkingMixIn.service_actions`  rw   r    c                s\   \         P                  ! 4       pV'       dL   V P                  f   \        4       V n        V P                  P	                  V4       V P                  V4       R # ^p V P                  W4       ^ p V P                  V4       \         P                  ! V4       R #   \         d    T P                  Y4        LHi ; i  \         P                  ! T4       i ; i   T P                  T4       \         P                  ! T4       i   \         P                  ! T4       i ; i; ir"   )rs   r   rq   r0   ZaddrI   rE   r=   r>   r?   Z_exit)r   rA   rB   rt   Zstatuss   &&&  r   r<   ZForkingMixIn.process_requestg  s    '')C''/+.5D($$((-""7+ 	)''@F)--g6( ! ?%%g>? ()--g6((sH   ,B)  C )CC& CC& C#&D+(D9D+D((D+c                s\   < \         SV `  4        V P                  V P                  R 7       R# ))ro   N)superrF   ru   block_on_closer   	__class__   &r   rF   ZForkingMixIn.server_close  s%    G "!!4+>+>!?r    )rq   )rU   rV   rW   rX   r5   rq   rr   ry   ru   r7   r/   r<   rF   rY   rZ   __classcell__r{   r\      @@r   r   r   -  sC      !	u !	F	$	$	)2	@ 	@r    c                   sD   a a ] tR tRt oV 3R ltR tR tR tRtVt	V ;t
# )_Threadsi  c                sn   < V P                  4        VP                  '       d   R # \        SV `  V4       R # r"   )reapdaemonrx   append)r   threadr{   s   &&r   r   Z_Threads.append  s$    		===vr    c                s$    . V R ,          uV R &   pV# )NNNr#   )r   Zresult   & r   pop_allZ_Threads.pop_all  s    d1gQr    c                sT    V P                  4        F  pVP                  4        K  	  R # r"   )r   joinr   r   r   r   r   Z_Threads.join  s    llnFKKM %r    c                s    R  V  4       V R&   R# )c              3   sT   "   T F  qP                  4       '       g   K  Vx  K   	  R # 5ir"   )Zis_alive)Z.0r   r   r   Z	<genexpr>Z _Threads.reap.<locals>.<genexpr>  s     Bf0A66s   (
(r   Nr#   r$   r%   r   r   Z_Threads.reap  s    BBQr    r#   )rU   rV   rW   rX   r   r   r   r   rY   rZ   r}   r~   r   r   r   r     s      C Cr    r   c                   ,   a  ] tR tRt o R tR tRtV tR# )
_NoThreadsi  c                r!   r"   r#   r   rK   r   r   Z_NoThreads.append      r    c                r!   r"   r#   r$   r%   r   r   Z_NoThreads.join  r   r    r#   N)rU   rV   rW   rX   r   r   rY   rZ   r[   r]   r   r   r     s      r    r   c                   sT   a a ] tR tRt oRtRt]! 4       tR tR t	V 3R lt
RtVtV ;t# )r
   i  FTc                s     V P                  W4       V P                  V4       R #   \         d    T P                  Y4        L1i ; i  T P                  T4       i ; ir"   )rE   r=   r>   r?   r@   r   r   process_request_threadZ%ThreadingMixIn.process_request_thread  sU    	+8 !!'*  	7g6	7 !!'*s!   & AA AA Ac                s.   V P                   '       d$   \        V 4      P                  R \        4       4       \        P
                  ! V P                  W3R7      pV P                  Vn        V P                  P                  V4       VP                  4        R# )_threads)ZtargetrS   N)ry   ZvarsZ
setdefaultr   r   ZThreadr   daemon_threadsr   r   r   Zstart)r   rA   rB   ZtrP   r   r<   ZThreadingMixIn.process_request  sj    J!!*hj9d&A&A%,$=?&&Q		r    c                sX   < \         SV `  4        V P                  P                  4        R # r"   )rx   rF   r   r   rz   r|   r   rF   ZThreadingMixIn.server_close  s    r    r#   )rU   rV   rW   rX   r   ry   r   r   r   r<   rF   rY   rZ   r}   r~   r   r   r
   r
     s.     
 NN |H+ r    c                       ] tR tRtRtR# )r   i  r#   NrU   rV   rW   rX   rY   r#   r    r   r   r         Tr    c                   r   )r   i  r#   Nr   r#   r    r   r   r     r   r    c                   r   )r   i  r#   Nr   r#   r    r   r   r     r   r    c                   r   )r   i  r#   Nr   r#   r    r   r   r     r   r    c                   .    ] tR tRt]P
                  tRtR# )r   i  r#   NrU   rV   rW   rX   r4   r   r^   rY   r#   r    r   r   r         r    c                   r   )r   i  r#   Nr   r#   r    r   r   r     r   r    c                   r   )r   i  r#   Nr   r#   r    r   r   r         tr    c                   r   )r   i  r#   Nr   r#   r    r   r   r         4r    c                   r   )r   i  r#   Nr   r#   r    r   r   r     r   r    c                   r   )r   i  r#   Nr   r#   r    r   r   r     r   r    c                   8   a  ] tR tRt o R tR tR tR tRtV t	R# )r   i  c                s    Wn         W n        W0n        V P                  4         V P	                  4        V P                  4        R #   T P                  4        i ; ir"   )rA   rB   serversetuphandlefinish)r   rA   rB   r   ra   r   r   ZBaseRequestHandler.__init__  s<    ,

	KKMKKMDKKMs   A Ac                r!   r"   r#   r$   r%   r   r   ZBaseRequestHandler.setup  r   r    c                r!   r"   r#   r$   r%   r   r   ZBaseRequestHandler.handle  r   r    c                r!   r"   r#   r$   r%   r   r   ZBaseRequestHandler.finish  r   r    )rB   rA   r   N)
rU   rV   rW   rX   r   r   r   r   rY   rZ   r[   r]   r   r   r     s     $ r    c                   s<   a  ] tR tRt o Rt^ tRtRtR tR t	Rt
V tR# )r   i  NFc                s*   V P                   V n        V P                  e&   V P                  P                  V P                  4       V P                  '       d:   V P                  P                  \        P                  \        P                  R4       V P                  P                  RV P                  4      V n        V P                  ^ 8X  d   \        V P                  4      V n        R # V P                  P                  RV P                  4      V n        R # )NTZrbZwb)rA   
connectionr5   Z
settimeoutdisable_nagle_algorithmrf   r4   ZIPPROTO_TCPZTCP_NODELAYZmakefilerbufsizerfilewbufsize_SocketWriterwfiler$   r%   r   r   ZStreamRequestHandler.setup)  s    ,,<<#OO&&t||4'''OO&&v'9'9'-'9'94A__--dDMMB
==A&t7DJ11$FDJr    c                s   V P                   P                  '       g    V P                   P                  4        V P                   P                  4        V P                  P                  4        R #   \        P                   d     LMi ; ir"   )r   ZclosedZflushr4   Zerrorrj   r   r$   r%   r   r   ZStreamRequestHandler.finish6  sc    zz   

  "
 	



 <<  s   A. .BB)r   r   r   rp   )rU   rV   rW   rX   r   r   r5   r   r   r   rY   rZ   r[   r]   r   r   r     s0      HH G $G	 	r    c                   r   )r   iA  c                s    Wn         R # r"   _sock)r   ZsockrK   r   r   Z_SocketWriter.__init__F  s    
r    c                r!   rD   r#   r$   r%   r   writableZ_SocketWriter.writableI  s    r    c                s    V P                   P                  V4       \        V4      ;_uu_ 4       pVP                  uuR R R 4       #   + '       g   i     R # ; ir"   )r   ZsendallZ
memoryviewZnbytes)r   ZbZviews   && r   writeZ_SocketWriter.writeL  s2    

1]]d;; ]]]s   AA	c                rk   r"   )r   rl   r$   r%   r   rl   Z_SocketWriter.filenoQ  s    zz  ""r    r   N)
rU   rV   rW   rX   r   r   r   rl   rY   rZ   r[   r]   r   r   r   A  s     

# #r    r   c                   r   )r	   iT  c                s    ^ RI Hp V P                  w  V n        V n        V! V P                  4      V n        V! 4       V n        R# )i    )BytesION)ior   rA   packetr4   r   r   )r   r   r   r   r   ZDatagramRequestHandler.setupX  s0    #'<< T[T[[)
Y
r    c                s    V P                   P                  V P                  P                  4       V P                  4       R # r"   )r4   Zsendtor   ZgetvaluerB   r$   r%   r   r   ZDatagramRequestHandler.finish^  s)    4::..0$2E2EFr    )r   r   r4   r   N)rU   rV   rW   rX   r   r   rY   rZ   r[   r]   r   r	   r	   T  s     G Gr    )	r   r   r   r   r   r   r   r	   r
   )r   r   r   )r   r   r   r   )&Z__version__r4   r+   rs   rN   r   r   r    r6   r   Z__all__re   Zextendr   r)   ZSelectSelectorr   r   r   r   Zlistr   r   r
   r   r   r   r   r   r   r   r   r   r   r   r   r   r	   r#   r    r   <module>r      s  v    	 
   "7 2vNNJK
69NN 3 4 r613NOP 9n%%,,O..Oj jZE
 EP	 8 2vU@ U@pCt C, % %P 2v9<99<9 9 9 9 9
69(9 ((Y ( LN4DKOn6HOr6Kl4DKO6HO# #\+- +Z#N #&G/ Gr    