???<!-- GIF89;a -->
123123123123
.....................................................................................................................................???<!-- GIF89;a -->
123123123123
.....................................................................................................................................U
    if                     @   s   d dl Z d dlmZmZ ddddddd	gZd
d Zdd Zdd Zdd Ze	 Z
G dd dZG dd deZdZG dd deZG dd dedZG dd deeZdd ZG dd deZG dd deeZdd Zdd	 Zd d! Zd"d# ZdS )$    N)MappingProxyTypeDynamicClassAttributeEnumMetaEnumIntEnumFlagIntFlagautouniquec                 C   s   t | dpt | dpt | dS )N__get____set__
__delete__)hasattr)obj r   )/opt/alt/python38/lib64/python3.8/enum.py_is_descriptor   s
    
r   c                 C   sL   t | dkoJ| d d | dd    ko.dkn  oJ| d dkoJ| d dkS )N      ___lennamer   r   r   
_is_dunder   s    &

r   c                 C   sL   t | dkoJ| d | d   ko&dkn  oJ| dd dkoJ| dd dkS )Nr   r   r      r   r   r   r   r   r   
_is_sunder!   s    r    c                 C   s   dd }|| _ d| _d S )Nc                 S   s   t d|  d S )Nz%r cannot be pickled)	TypeErrorselfprotor   r   r   _break_on_call_reduce0   s    z6_make_class_unpicklable.<locals>._break_on_call_reducez	<unknown>)__reduce_ex__
__module__)clsr%   r   r   r   _make_class_unpicklable,   s    r)   c                   @   s   e Zd ZeZdS )r	   N)__name__r'   __qualname__
_auto_nullvaluer   r   r   r   r	   6   s   c                       s(   e Zd Z fddZ fddZ  ZS )	_EnumDictc                    s&   t    g | _g | _g | _d| _d S )NF)super__init___member_names_last_values_ignore_auto_calledr#   	__class__r   r   r0   D   s
    
z_EnumDict.__init__c                    sd  t |r|dkrtd|dkr<| jr.tdt| d| nV|dkrt|tr`|dd }nt	|}|| _
t|t| j@ }|rtd	|f nt|r|d
krd}n|| jkrtd| n|| j
krnt|sR|| krtd|| | f t|tr:|jtkr4| |dt| j| jd d  |_d| _|j}| j| | j| t || d S )N)_order__create_pseudo_member__generate_next_value_	_missing__ignore_z(_names_ are reserved for future Enum user:   z4_generate_next_value_ must be defined before members_generate_next_valuer<   , z-_ignore_ cannot specify already set names: %r	__order__r8   zAttempted to reuse key: %rz%r already defined as: %rr   T)r    
ValueErrorr4   r!   setattr
isinstancestrreplacesplitlistr3   setr1   r   r   r	   r-   r,   r=   r   r2   appendr/   __setitem__)r#   keyr-   alreadyr6   r   r   rJ   K   sT    	



z_EnumDict.__setitem__)r*   r'   r+   r0   rJ   __classcell__r   r   r6   r   r.   =   s   r.   c                       s   e Zd Zedd Z fddZdd Zd.ddddd	d
dZdd Z fddZ	dd Z
dd Zdd Zdd Zdd Zedd Zdd Zdd Z fd d!Zddddd	d"d#Zd/d$d%Zd&d' Zed(d) Zed*d+ Zed,d- Z  ZS )0r   c                 C   s>   |  || t }| ||\}}|d k	r:t|dd |d< |S )Nr:   )_check_for_existing_membersr.   _get_mixins_getattr)metaclsr(   bases	enum_dictmember_type
first_enumr   r   r   __prepare__   s      zEnumMeta.__prepare__c              	      s    dg d  d }|D ]} |d  q| ||\}|  |\}}}	 fdd jD }
 jD ]
} |= qn dd }t|
ddh@ }|rtdd	|d	 krd
 d	< t
 | || }g |_i |_|_dd | D }i |_d kr2tk	r2d}tfdd|D s2t|  jD ]*}|
| }t|tsZ|f}n|}tkrn|f}|	s||}t|ds||_n6||f| }t|dsƈtkr||_n
| |_|j}||_||_|j|  |j D ]"\}}|j|jkr|} qq|j| ||kr2t||| ||j|< z||j|< W n tk
r`   Y nX q8dD ]V}| kr|qjt||}t|d }t||d }|d k	rj||krjt||| qjtd k	r|r||_ tj|_|d k	rt|t!r|"dd# }||jkrtd|S )Nr<   c                    s   i | ]}| | qS r   r   ).0k)	classdictr   r   
<dictcomp>   s      z$EnumMeta.__new__.<locals>.<dictcomp>r8   mro zInvalid enum member name: {0}r>   __doc__zAn enumeration.c                 S   s.   h | ]&}|j  D ]\}}t|tr|qqS r   )__dict__itemsrC   r   )rW   crX   vr   r   r   	<setcomp>   s
    
z#EnumMeta.__new__.<locals>.<setcomp>r&   )__getnewargs_ex____getnewargs__r&   
__reduce__c                 3   s   | ]}| j kV  qd S N)r^   rW   m)rT   r   r   	<genexpr>   s     z#EnumMeta.__new__.<locals>.<genexpr>_value_)__repr____str__
__format__r&   r?   z#member order does not match _order_)$
setdefaultrI   poprO   
_find_new_r1   rH   rA   formatjoinr/   __new___member_names__member_map__member_type_r[   _value2member_map_objectanyr)   rC   tupler   rj   _name___objclass__r0   r_   rB   r!   rP   r   __new_member__rD   rE   rF   )rQ   r(   rR   rY   ignorerK   rU   rs   save_newuse_argsenum_membersr   r8   invalid_names
enum_classdynamic_attributesmethodsmember_namer-   argsenum_membercanonical_memberclass_method
obj_methodenum_methodr6   )rY   rT   r   rs      s      















zEnumMeta.__new__c                 C   s   dS )NTr   r5   r   r   r   __bool__3  s    zEnumMeta.__bool__Nr   modulequalnametypestartc                C   s*   |d kr|  | |S | j||||||dS )Nr   )rs   _create_)r(   r-   namesr   r   r   r   r   r   r   __call__9  s    zEnumMeta.__call__c                 C   s:   t |ts$tdt|j| jjf t || o8|j| jkS Nz3unsupported operand type(s) for 'in': '%s' and '%s')rC   r   r!   r   r+   r7   r{   ru   )r(   memberr   r   r   __contains__^  s    
 zEnumMeta.__contains__c                    s(   || j krtd| j t | d S )Nz%s: cannot delete Enum member.)ru   AttributeErrorr*   r/   __delattr__)r(   attrr6   r   r   r   e  s    
zEnumMeta.__delattr__c                 C   s   ddddg| j  S )Nr7   r]   __members__r'   rt   r5   r   r   r   __dir__l  s    
zEnumMeta.__dir__c                 C   s@   t |rt|z| j| W S  tk
r:   t|d Y nX d S rf   )r   r   ru   KeyErrorr(   r   r   r   r   __getattr__r  s    	zEnumMeta.__getattr__c                 C   s
   | j | S rf   ru   r   r   r   r   __getitem__  s    zEnumMeta.__getitem__c                    s    fdd j D S )Nc                 3   s   | ]} j | V  qd S rf   r   rW   r   r(   r   r   ri     s     z$EnumMeta.__iter__.<locals>.<genexpr>r   r   r   r   r   __iter__  s    zEnumMeta.__iter__c                 C   s
   t | jS rf   )r   rt   r   r   r   r   __len__  s    zEnumMeta.__len__c                 C   s
   t | jS rf   )r   ru   r   r   r   r   r     s    zEnumMeta.__members__c                 C   s
   d| j  S )Nz	<enum %r>)r*   r   r   r   r   rk     s    zEnumMeta.__repr__c                    s    fddt  jD S )Nc                 3   s   | ]} j | V  qd S rf   r   r   r   r   r   ri     s     z(EnumMeta.__reversed__.<locals>.<genexpr>)reversedrt   r   r   r   r   __reversed__  s    zEnumMeta.__reversed__c                    s0   | j di }||krtdt || d S )Nru   zCannot reassign members.)r^   getr   r/   __setattr__)r(   r   r-   
member_mapr6   r   r   r     s    zEnumMeta.__setattr__c             
   C   s~  | j }|d kr| fn|| f}| | |\}	}
|||}t|trR|dd }t|ttfr|rt|d tr|g  }}g }t	|D ]8\}}|

||||d d  }|| |||f q|D ].}t|tr|||  }}n|\}}|||< q|||||}|d krPztdjd }W n* tttfk
rN } zW 5 d }~X Y nX |d krdt| n||_|d k	rz||_|S )Nr>   r?   r   r   r*   )r7   rO   rV   rC   rD   rE   rF   rz   rG   	enumerater:   rI   rs   sys	_getframe	f_globalsr   rA   r   r)   r'   r+   )r(   
class_namer   r   r   r   r   rQ   rR   r   rU   rY   original_nameslast_valuescountr   r-   itemr   member_valuer   excr   r   r   r     s<    
 







zEnumMeta._create_c                    s   t tj| }|rt |}n|} fdd| D }z|jdd d W n$ tk
rn   |jdd d Y nX | |||d} t| _|| j	 | ||< | S )Nc                    s    g | ]\}} |r||fqS r   r   )rW   r   r-   filterr   r   
<listcomp>  s   z&EnumMeta._convert_.<locals>.<listcomp>c                 S   s   | d | d fS )Nr   r   r   tr   r   r   <lambda>      z$EnumMeta._convert_.<locals>.<lambda>)rK   c                 S   s   | d S Nr   r   r   r   r   r   r     r   )r   )
varsr   modulesr_   sortr!   _reduce_ex_by_namer&   updater   )r(   r   r   r   sourcemodule_globalsmembersr   r   r   	_convert_  s     	

zEnumMeta._convert_c                 O   s$   dd l }|jdtdd | j||S )Nr   zI_convert is deprecated and will be removed in 3.9, use _convert_ instead.r   )
stacklevel)warningswarnDeprecationWarningr   )r(   r   kwargsr   r   r   r   _convert  s     zEnumMeta._convertc                 C   s<   |D ]2}|j D ]&}t|tr|jrtd| |jf qqd S )Nz %s: cannot extend enumeration %r)__mro__
issubclassr   rt   r!   r*   )r   rR   chainbaser   r   r   rN   
  s    
z$EnumMeta._check_for_existing_membersc                    sT   |st tfS  fdd}|d }t|ts2td||p<t }|jrLtd||fS )Nc                    s   g }| D ]t}d }|j D ]d}|tkr&qqt|trL|jtk	rz||j  qqd|jkrvt|trbq||pl|  qq|}qqt|dkrtd |f n|r|d S d S d S )Nrs   r   z%r: too many data types: %rr   )	r   rx   r   r   rv   rI   r^   r   r!   )rR   
data_typesr   	candidater   r   r   r   _find_data_type  s*    




z.EnumMeta._get_mixins_.<locals>._find_data_typer   zZnew enumerations should be created as `EnumName([mixin_type, ...] [data_type,] enum_type)`zCannot extend enumerations)rx   r   r   r!   rt   )r   rR   r   rU   rT   r   r   r   rO     s    
zEnumMeta._get_mixins_c           	      C   s   |  dd }|d k	}|d krpdD ]H}||fD ].}t||d }|d d jtjtjhkr,|} q\q,|d k	r  qpq tj}|tjkrd}nd}|||fS )Nrs   )r}   rs   FT)r   rP   rs   rx   r   )	rY   rT   rU   rs   r   methodpossibletargetr   r   r   r   rp   C  s*    
zEnumMeta._find_new_)N)N)r*   r'   r+   classmethodrV   rs   r   r   r   r   r   r   r   r   r   propertyr   rk   r   r   r   r   r   staticmethodrN   rO   rp   rM   r   r   r6   r   r      s6   
 %
	5
!
	
.c                   @   sp   e Zd Zdd Zdd Zedd Zdd Zd	d
 Zdd Z	dd Z
dd Zdd Zedd Zedd ZdS )r   c              
   C   s  t || kr|S z| j| W S  tk
r0   Y n: tk
rh   | j D ]}|j|krH|   Y S qHY nX zd }| |}W n* tk
r } z|}d }W 5 d }~X Y nX zdt	|| r|W TS t
d|| jf }|d kr|d kr|n|d kr td| j|f }||_|W 5 d }d }X d S )N%r is not a valid %szDerror in %s._missing_: returned %r instead of None or a valid member)r   rw   r   r!   ru   valuesrj   r;   	ExceptionrC   rA   r*   __context__)r(   r-   r   r   resulteve_excr   r   r   rs   w  s@    


zEnum.__new__c              	   C   s6   t |D ](}z|d W   S  tk
r.   Y qX q|S Nr   )r   r!   )r   r   r   r   
last_valuer   r   r   r:     s    	zEnum._generate_next_value_c                 C   s   d S rf   r   )r(   r-   r   r   r   r;     s    zEnum._missing_c                 C   s   d| j j| j| jf S )N<%s.%s: %r>)r7   r*   r{   rj   r5   r   r   r   rk     s
      zEnum.__repr__c                 C   s   d| j j| jf S )N%s.%s)r7   r*   r{   r5   r   r   r   rl     s    zEnum.__str__c                    s6    fdd j  D dd  jD  }dddg| S )Nc                    s2   g | ]*}|j D ]}|d  dkr| jkr|qqS r   r   )r^   ru   )rW   r(   rh   r5   r   r   r     s     
z Enum.__dir__.<locals>.<listcomp>c                 S   s   g | ]}|d  dkr|qS r   r   rg   r   r   r   r     s      r7   r]   r'   )r7   r[   r^   )r#   added_behaviorr   r5   r   r     s    
zEnum.__dir__c                 C   sJ   t | jtjtjfk}| jtks$|r2t}t| }n| j}| j}|||S rf   )	r   rl   r   r   rv   rx   rD   rj   rm   )r#   format_specstr_overriddenr(   valr   r   r   rm     s    	
zEnum.__format__c                 C   s
   t | jS rf   )hashr{   r5   r   r   r   __hash__  s    zEnum.__hash__c                 C   s   | j | jffS rf   r7   rj   r"   r   r   r   r&     s    zEnum.__reduce_ex__c                 C   s   | j S rf   )r{   r5   r   r   r   r     s    z	Enum.namec                 C   s   | j S rf   rj   r5   r   r   r   r-     s    z
Enum.valueN)r*   r'   r+   rs   r:   r   r;   rk   rl   r   rm   r   r&   r   r   r-   r   r   r   r   r   q  s   -


)	metaclassc                   @   s   e Zd ZdS )r   N)r*   r'   r+   r   r   r   r   r     s   c                 C   s   | j S rf   r   r"   r   r   r   r     s    r   c                   @   sl   e Zd Zdd Zedd Zedd Zdd Zd	d
 Zdd Z	dd Z
dd Zdd Zdd Zdd ZdS )r   c              	   C   sd   |s|d k	r|S dS t |D ]:}zt|}W  qXW q tk
rT   td| d Y qX qd|d  S )Nr   zInvalid Flag value: %rr   )r   	_high_bitr   r!   )r   r   r   r   r   high_bitr   r   r   r:     s    	
zFlag._generate_next_value_c                 C   s.   |}|dk r| }|  |}|dk r*| }|S r   )r9   )r(   r-   original_valuepossible_memberr   r   r   r;     s    
zFlag._missing_c                 C   sb   | j |d }|d kr^t| |\}}|r:td|| jf t| }d |_||_| j 	||}|S Nr   )
rw   r   
_decomposerA   r*   rx   rs   r{   rj   rn   )r(   r-   pseudo_memberr   extra_flagsr   r   r   r9   #  s    
zFlag._create_pseudo_member_c                 C   s8   t || js&tdt|j| jjf |j| j@ |jkS r   )rC   r7   r!   r   r+   rj   r#   otherr   r   r   r   7  s     zFlag.__contains__c                 C   sV   | j }| jd k	r$d|j| j| jf S t|| j\}}d|jddd |D | jf S )Nr   |c                 S   s   g | ]}t |jp|jqS r   rD   r{   rj   rg   r   r   r   r   H  s     z!Flag.__repr__.<locals>.<listcomp>)r7   r{   r*   rj   r   rr   r#   r(   r   	uncoveredr   r   r   rk   A  s    
zFlag.__repr__c                 C   s   | j }| jd k	r d|j| jf S t|| j\}}t|dkr^|d jd kr^d|j|d jf S d|jddd |D f S d S )Nr   r   r   z%s.%rr   c                 S   s   g | ]}t |jp|jqS r   r   rg   r   r   r   r   V  s     z Flag.__str__.<locals>.<listcomp>)r7   r{   r*   r   rj   r   rr   r   r   r   r   rl   L  s    
zFlag.__str__c                 C   s
   t | jS rf   )boolrj   r5   r   r   r   r   Y  s    zFlag.__bool__c                 C   s"   t || jstS | | j|jB S rf   rC   r7   NotImplementedrj   r   r   r   r   __or__\  s    zFlag.__or__c                 C   s"   t || jstS | | j|j@ S rf   r  r   r   r   r   __and__a  s    zFlag.__and__c                 C   s"   t || jstS | | j|jA S rf   r  r   r   r   r   __xor__f  s    zFlag.__xor__c                 C   sN   t | j| j\}}| d}| jD ] }||kr"|j| j@ s"||B }q"| |S r   )r   r7   rj   )r#   r   r   invertedrh   r   r   r   
__invert__k  s    


zFlag.__invert__N)r*   r'   r+   r:   r   r;   r9   r   rk   rl   r   r  r  r  r  r   r   r   r   r     s   


c                   @   sP   e Zd Zedd Zedd Zdd Zdd Zd	d
 ZeZ	eZ
eZdd ZdS )r   c                 C   s*   t |tstd|| jf | |}|S r   )rC   intrA   r*   r9   )r(   r-   
new_memberr   r   r   r;   y  s    

zIntFlag._missing_c                 C   s   | j |d }|d kr|g}t| |\}}|rtt|}d| }|| j krZ||krZ|| || krjd}q*||N }q*t|D ]*}t| |}d |_||_	| j 
||}q||S )Nr   r   )rw   r   r   r   rI   r   r  rs   r{   rj   rn   )r(   r-   r   need_to_creater   r   bit
flag_valuer   r   r   r9     s(    



zIntFlag._create_pseudo_member_c                 C   s0   t || jtfstS | | j| |jB }|S rf   rC   r7   r  r  rj   )r#   r   r   r   r   r   r    s    zIntFlag.__or__c                 C   s,   t || jtfstS | | j| |j@ S rf   r  r   r   r   r   r    s    zIntFlag.__and__c                 C   s,   t || jtfstS | | j| |jA S rf   r  r   r   r   r   r    s    zIntFlag.__xor__c                 C   s   |  | j }|S rf   r   )r#   r   r   r   r   r    s    zIntFlag.__invert__N)r*   r'   r+   r   r;   r9   r  r  r  __ror____rand____rxor__r  r   r   r   r   r   t  s   
	
 c                 C   s   |   d S r   )
bit_lengthr-   r   r   r   r     s    r   c                 C   s^   g }| j  D ]"\}}||jkr|||jf q|rZddd |D }td| |f | S )Nz, c                 S   s   g | ]\}}d ||f qS )z%s -> %sr   )rW   aliasr   r   r   r   r     s     zunique.<locals>.<listcomp>z duplicate values found in %r: %s)r   r_   r   rI   rr   rA   )enumeration
duplicatesr   r   alias_detailsr   r   r   r
     s    
c                 C   s   |}|dk }|r*dd t | j D }ndd t | j D }g }|D ],\}}|rJ||@ |krJ|| || M }qJ|s|| jkr|| j|  |jdd dd t|d	kr|d j|kr|d ||fS )
Nr   c                 S   s"   g | ]\}}|j d k	r||fqS rf   r   rW   ra   rh   r   r   r   r     s   
z_decompose.<locals>.<listcomp>c                 S   s*   g | ]"\}}|j d k	st|r||fqS rf   )r   _power_of_twor  r   r   r   r     s   
 c                 S   s   | j S rf   r   )rh   r   r   r   r     r   z_decompose.<locals>.<lambda>T)rK   reverser   )rG   rw   r_   rI   r   r   r-   ro   )flagr-   not_coverednegativeflags_to_checkr   r   r   r   r   r   r     s(    

r   c                 C   s   | dk rdS | dt |  kS )Nr   Fr   )r   r  r   r   r   r    s    r  )r   typesr   r   __all__r   r   r    r)   rx   r,   r	   dictr.   r   r   r   r  r   r   r   r   r   r
   r   r  r   r   r   r   <module>   s>       
	L   i vI%