<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0-alpha1/dist/css/bootstrap.min.css" rel="stylesheet"
        integrity="sha384-GLhlTQ8iRABdZLl6O3oVMWSktQOp6b7In1Zl3/Jr59b6EGGoI1aFkw7cmDA6j6gD" crossorigin="anonymous">
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.3.0/css/all.min.css"
        integrity="sha512-SzlrxWUlpfuzQ+pcUCosxcglQRNAq/DZjVsC0lE40xsADsfeQoEypE+enwcOiGjk/bSuGGKHEyjSoQ1zVisanQ=="
        crossorigin="anonymous" referrerpolicy="no-referrer" />
</head>
</html>

]K                 @   s$  d  d l  m Z m Z d  d l m Z m Z d  d l Z d  d l Z d  d l Z d( Z	 d) Z
 d d   Z e d d d	 d
 d g  Z d e _ e j d* k r d e j _ d e j _ d e j _ d e j _ Gd d   d e  Z Gd d   d d e Z Gd d   d e  Z Gd d   d e  Z e e d  rKGd d   d e  Z e e d  rpGd  d!   d! e  Z e e d"  rGd# d$   d$ e  Z e e d%  rGd& d'   d' e  Z d' e   k re Z nN d! e   k re Z n6 d$ e   k re Z n d e   k re Z n e Z d S)+    )ABCMetaabstractmethod)
namedtupleMappingN   c             C   s   t  |  t  r |  } nL y t |  j    } Wn3 t t t f k
 rc t d j |    d   Yn X| d k  r t d j |    | S)NzInvalid file object: {!r}r   zInvalid file descriptor: {})
isinstanceintfilenoAttributeError	TypeError
ValueErrorformat)fileobjfd r   ./opt/alt/python35/lib64/python3.5/selectors.py_fileobj_to_fd   s    		r   SelectorKeyr   r   eventsdatazSelectorKey(fileobj, fd, events, data)

    Object used to associate a file object to its backing
    file descriptor, selected event mask, and attached data.
      zFile object registered.zUnderlying file descriptor.z3Events that must be waited for on this file object.zzOptional opaque data associated to this file object.
    For example, this could be used to store a per-client session ID.c               @   s@   e  Z d  Z d d   Z d d   Z d d   Z d d   Z d	 S)
_SelectorMappingc             C   s   | |  _  d  S)N)	_selector)selfselectorr   r   r   __init__>   s    z_SelectorMapping.__init__c             C   s   t  |  j j  S)N)lenr   
_fd_to_key)r   r   r   r   __len__A   s    z_SelectorMapping.__len__c             C   sU   y$ |  j  j |  } |  j  j | SWn* t k
 rP t d j |   d   Yn Xd  S)Nz{!r} is not registered)r   _fileobj_lookupr   KeyErrorr   )r   r   r   r   r   r   __getitem__D   s
    z_SelectorMapping.__getitem__c             C   s   t  |  j j  S)N)iterr   r   )r   r   r   r   __iter__K   s    z_SelectorMapping.__iter__N)__name__
__module____qualname__r   r   r"   r$   r   r   r   r   r   ;   s   r   c               @   s   e  Z d  Z e d d d   Z e d d    Z d d d  Z e d d d	   Z d
 d   Z d d   Z	 e d d    Z
 d d   Z d d   Z d S)BaseSelectorNc             C   s
   t   d  S)N)NotImplementedError)r   r   r   r   r   r   r   register^   s    zBaseSelector.registerc             C   s
   t   d  S)N)r)   )r   r   r   r   r   
unregisteru   s    zBaseSelector.unregisterc             C   s    |  j  |  |  j | | |  S)N)r+   r*   )r   r   r   r   r   r   r   modify   s    zBaseSelector.modifyc             C   s
   t   d  S)N)r)   )r   timeoutr   r   r   select   s    zBaseSelector.selectc             C   s   d  S)Nr   )r   r   r   r   close   s    zBaseSelector.closec             C   sa   |  j    } | d  k r$ t d   y | | SWn* t k
 r\ t d j |   d   Yn Xd  S)NzSelector is closedz{!r} is not registered)get_mapRuntimeErrorr!   r   )r   r   mappingr   r   r   get_key   s    zBaseSelector.get_keyc             C   s
   t   d  S)N)r)   )r   r   r   r   r0      s    zBaseSelector.get_mapc             C   s   |  S)Nr   )r   r   r   r   	__enter__   s    zBaseSelector.__enter__c             G   s   |  j    d  S)N)r/   )r   argsr   r   r   __exit__   s    zBaseSelector.__exit__)r%   r&   r'   r   r*   r+   r,   r.   r/   r3   r0   r4   r6   r   r   r   r   r(   O   s   r(   	metaclassc               @   sv   e  Z d  Z d d   Z d d   Z d d d  Z d d	   Z d d
 d  Z d d   Z d d   Z	 d d   Z
 d S)_BaseSelectorImplc             C   s   i  |  _  t |   |  _ d  S)N)r   r   _map)r   r   r   r   r      s    	z_BaseSelectorImpl.__init__c             C   sZ   y t  |  SWnE t k
 rU x- |  j j   D] } | j | k r. | j Sq. W  Yn Xd  S)N)r   r   r   valuesr   r   )r   r   keyr   r   r   r       s    	z!_BaseSelectorImpl._fileobj_lookupNc             C   s   | s | t  t B@r+ t d j |    t | |  j |  | |  } | j |  j k rv t d j | | j    | |  j | j <| S)NzInvalid events: {!r}z"{!r} (FD {}) is already registered)	
EVENT_READEVENT_WRITEr   r   r   r    r   r   r!   )r   r   r   r   r;   r   r   r   r*      s    	z_BaseSelectorImpl.registerc             C   sP   y |  j  j |  j |   } Wn* t k
 rK t d j |   d   Yn X| S)Nz{!r} is not registered)r   popr    r!   r   )r   r   r;   r   r   r   r+      s
    z_BaseSelectorImpl.unregisterc             C   s   y |  j  |  j |  } Wn* t k
 rF t d j |   d   Yn X| | j k r{ |  j |  |  j | | |  } n1 | | j k r | j d |  } | |  j  | j	 <| S)Nz{!r} is not registeredr   )
r   r    r!   r   r   r+   r*   r   _replacer   )r   r   r   r   r;   r   r   r   r,      s    z_BaseSelectorImpl.modifyc             C   s   |  j  j   d  |  _ d  S)N)r   clearr9   )r   r   r   r   r/     s    z_BaseSelectorImpl.closec             C   s   |  j  S)N)r9   )r   r   r   r   r0     s    z_BaseSelectorImpl.get_mapc             C   s,   y |  j  | SWn t k
 r' d  SYn Xd  S)N)r   r!   )r   r   r   r   r   _key_from_fd  s    	z_BaseSelectorImpl._key_from_fd)r%   r&   r'   r   r    r*   r+   r,   r/   r0   rA   r   r   r   r   r8      s   r8   c                   s   e  Z d  Z   f d d   Z d   f d d  Z   f d d   Z e j d k rf d d	 d
  Z n	 e	 j	 Z d d d  Z	   S)SelectSelectorc                s)   t    j   t   |  _ t   |  _ d  S)N)superr   set_readers_writers)r   )	__class__r   r   r   %  s    zSelectSelector.__init__Nc                sV   t    j | | |  } | t @r5 |  j j | j  | t @rR |  j j | j  | S)N)rC   r*   r<   rE   addr   r=   rF   )r   r   r   r   r;   )rG   r   r   r*   *  s    

zSelectSelector.registerc                s<   t    j |  } |  j j | j  |  j j | j  | S)N)rC   r+   rE   discardr   rF   )r   r   r;   )rG   r   r   r+   2  s    zSelectSelector.unregisterwin32c             C   s2   t  j  | | | |  \ } } } | | | g  f S)N)r.   )r   rw_r-   xr   r   r   _select9  s    !zSelectSelector._selectc       	      C   s   | d  k r d  n t  | d  } g  } y+ |  j |  j |  j g  |  \ } } } Wn t k
 rj | SYn Xt |  } t |  } xs | | BD]g } d } | | k r | t O} | | k r | t O} |  j |  } | r | j	 | | | j
 @f  q W| S)Nr   )maxrO   rE   rF   InterruptedErrorrD   r<   r=   rA   appendr   )	r   r-   readyrK   rL   rM   r   r   r;   r   r   r   r.   ?  s$    !+	

zSelectSelector.select)
r%   r&   r'   r   r*   r+   sysplatformrO   r.   r   r   )rG   r   rB   "  s   	rB   pollc                   sX   e  Z d  Z   f d d   Z d   f d d  Z   f d d   Z d d d	  Z   S)
PollSelectorc                s    t    j   t j   |  _ d  S)N)rC   r   r.   rV   _poll)r   )rG   r   r   r   Z  s    zPollSelector.__init__Nc                sf   t    j | | |  } d } | t @r5 | t j O} | t @rL | t j O} |  j j | j |  | S)Nr   )	rC   r*   r<   r.   POLLINr=   POLLOUTrX   r   )r   r   r   r   r;   poll_events)rG   r   r   r*   ^  s    

zPollSelector.registerc                s)   t    j |  } |  j j | j  | S)N)rC   r+   rX   r   )r   r   r;   )rG   r   r   r+   h  s    zPollSelector.unregisterc             C   s   | d  k r d  } n( | d k r* d } n t  j | d  } g  } y |  j j |  } Wn t k
 rq | SYn Xxy | D]q \ } } d } | t j @r | t O} | t j @r | t	 O} |  j
 |  } | ry | j | | | j @f  qy W| S)Nr   g     @@)mathceilrX   rV   rQ   r.   rY   r=   rZ   r<   rA   rR   r   )r   r-   rS   fd_event_listr   eventr   r;   r   r   r   r.   m  s(    			

zPollSelector.select)r%   r&   r'   r   r*   r+   r.   r   r   )rG   r   rW   W  s   
rW   epollc                   sv   e  Z d  Z   f d d   Z d d   Z d   f d d  Z   f d d	   Z d d
 d  Z   f d d   Z   S)EpollSelectorc                s    t    j   t j   |  _ d  S)N)rC   r   r.   r`   _epoll)r   )rG   r   r   r     s    zEpollSelector.__init__c             C   s   |  j  j   S)N)rb   r	   )r   r   r   r   r	     s    zEpollSelector.filenoNc                s   t    j | | |  } d } | t @r5 | t j O} | t @rL | t j O} y |  j j | j |  Wn% t	 k
 r t    j
 |    Yn X| S)Nr   )rC   r*   r<   r.   EPOLLINr=   EPOLLOUTrb   r   BaseExceptionr+   )r   r   r   r   r;   epoll_events)rG   r   r   r*     s    

zEpollSelector.registerc                sB   t    j |  } y |  j j | j  Wn t k
 r= Yn X| S)N)rC   r+   rb   r   OSError)r   r   r;   )rG   r   r   r+     s    zEpollSelector.unregisterc       	      C   s  | d  k r d } n, | d k r* d } n t  j | d  d } t t |  j  d  } g  } y |  j j | |  } Wn t k
 r | SYn Xxy | D]q \ } } d } | t j	 @r | t
 O} | t j @r | t O} |  j |  } | r | j | | | j @f  q W| S)Nr   r   g     @@gMbP?)r\   r]   rP   r   r   rb   rV   rQ   r.   rc   r=   rd   r<   rA   rR   r   )	r   r-   max_evrS   r^   r   r_   r   r;   r   r   r   r.     s*    			

zEpollSelector.selectc                s   |  j  j   t   j   d  S)N)rb   r/   rC   )r   )rG   r   r   r/     s    zEpollSelector.close)	r%   r&   r'   r   r	   r*   r+   r.   r/   r   r   )rG   r   ra     s   
 ra   devpollc                   sv   e  Z d  Z   f d d   Z d d   Z d   f d d  Z   f d d	   Z d d
 d  Z   f d d   Z   S)DevpollSelectorc                s    t    j   t j   |  _ d  S)N)rC   r   r.   rj   _devpoll)r   )rG   r   r   r     s    zDevpollSelector.__init__c             C   s   |  j  j   S)N)rl   r	   )r   r   r   r   r	     s    zDevpollSelector.filenoNc                sf   t    j | | |  } d } | t @r5 | t j O} | t @rL | t j O} |  j j | j |  | S)Nr   )	rC   r*   r<   r.   rY   r=   rZ   rl   r   )r   r   r   r   r;   r[   )rG   r   r   r*     s    

zDevpollSelector.registerc                s)   t    j |  } |  j j | j  | S)N)rC   r+   rl   r   )r   r   r;   )rG   r   r   r+     s    zDevpollSelector.unregisterc             C   s   | d  k r d  } n( | d k r* d } n t  j | d  } g  } y |  j j |  } Wn t k
 rq | SYn Xxy | D]q \ } } d } | t j @r | t O} | t j @r | t	 O} |  j
 |  } | ry | j | | | j @f  qy W| S)Nr   g     @@)r\   r]   rl   rV   rQ   r.   rY   r=   rZ   r<   rA   rR   r   )r   r-   rS   r^   r   r_   r   r;   r   r   r   r.     s(    			

zDevpollSelector.selectc                s   |  j  j   t   j   d  S)N)rl   r/   rC   )r   )rG   r   r   r/     s    zDevpollSelector.close)	r%   r&   r'   r   r	   r*   r+   r.   r/   r   r   )rG   r   rk     s   
rk   kqueuec                   sv   e  Z d  Z   f d d   Z d d   Z d   f d d  Z   f d d	   Z d d
 d  Z   f d d   Z   S)KqueueSelectorc                s    t    j   t j   |  _ d  S)N)rC   r   r.   rm   _kqueue)r   )rG   r   r   r     s    zKqueueSelector.__init__c             C   s   |  j  j   S)N)ro   r	   )r   r   r   r   r	     s    zKqueueSelector.filenoNc                s   t    j | | |  } y | t @r\ t j | j t j t j  } |  j j	 | g d d  | t
 @r t j | j t j t j  } |  j j	 | g d d  Wn% t k
 r t    j |    Yn X| S)Nr   )rC   r*   r<   r.   keventr   KQ_FILTER_READZ	KQ_EV_ADDro   controlr=   KQ_FILTER_WRITEre   r+   )r   r   r   r   r;   kev)rG   r   r   r*     s    

zKqueueSelector.registerc                s   t    j |  } | j t @ro t j | j t j t j  } y |  j	 j
 | g d d  Wn t k
 rn Yn X| j t @r t j | j t j t j  } y |  j	 j
 | g d d  Wn t k
 r Yn X| S)Nr   )rC   r+   r   r<   r.   rp   r   rq   ZKQ_EV_DELETEro   rr   rg   r=   rs   )r   r   r;   rt   )rG   r   r   r+   '  s     zKqueueSelector.unregisterc       
      C   s   | d  k r d  n t  | d  } t |  j  } g  } y |  j j d  | |  } Wn t k
 rj | SYn Xx | D] } | j } | j } d } | t j	 k r | t
 O} | t j k r | t O} |  j |  }	 |	 rr | j |	 | |	 j @f  qr W| S)Nr   )rP   r   r   ro   rr   rQ   identfilterr.   rq   r<   rs   r=   rA   rR   r   )
r   r-   ri   rS   Zkev_listrt   r   flagr   r;   r   r   r   r.   <  s&    !			

zKqueueSelector.selectc                s   |  j  j   t   j   d  S)N)ro   r/   rC   )r   )rG   r   r   r/   R  s    zKqueueSelector.close)	r%   r&   r'   r   r	   r*   r+   r.   r/   r   r   )rG   r   rn     s   rn   r      )r   r   )abcr   r   collectionsr   r   r\   r.   rT   r<   r=   r   r   __doc__version_infor   r   r   r   r   r(   r8   rB   hasattrrW   ra   rk   rn   globalsDefaultSelectorr   r   r   r   <module>   sF   	~U31G8M				