<!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>

]+                 @   sw   d  d l  Z d  d l Z d  d l Z d  d l Z d d g Z d Z e	 Z
 Gd d   d e j  Z d d d	 d  Z d S)
    Nerroropeni   c               @   s!  e  Z d  Z e Z e Z d d d  Z d d   Z d d   Z d d	   Z e 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 d   Z d d   Z d d   Z e Z d  d!   Z d" d#   Z e Z d$ d%   Z d& d'   Z d( d)   Z d* S)+	_Databasecc             C   sc   | |  _  | d k |  _ | d |  _ | d |  _ | d |  _ d  |  _ |  j |  |  j   d  S)Nrz.dirz.datz.bak)_mode	_readonly_dirfile_datfile_bakfile_index_create_update)selfZfilebasenamemodeflag r   )/opt/alt/python35/lib64/python3.5/dumb.py__init__0   s    		z_Database.__init__c             C   s   | d k rU xF |  j  |  j |  j f D], } y t j |  Wq% t k
 rP Yq% Xq% Wy t j |  j  d d d } WnG t k
 r t j |  j  d d d  } |  j |  j   Wd  QRXYn X| j	   d  S)Nnr   encodingzLatin-1w)
r
   r   r	   _osremoveOSError_ior   _chmodclose)r   r   filenamefr   r   r   r   I   s    	z_Database._createc             C   s   i  |  _  y t j |  j d d d } Wn t k
 rI |  j |  _ Ynf Xd |  _ | S xK | D]C } | j   } t j	 |  \ } } | j
 d  } | |  j  | <qa WWd  QRXd  S)Nr   r   zLatin-1F)r   r   r   r	   r   r   	_modifiedrstrip_astZliteral_evalencode)r   r   linekeypos_and_siz_pairr   r   r   r   Z   s    		z_Database._updatec             C   s   |  j  d  k s |  j r d  Sy |  j j |  j  Wn t k
 rH Yn Xy |  j j |  j |  j  Wn t k
 rz Yn X|  j j	 |  j d d d ] } |  j
 |  j  xC |  j  j   D]2 \ } } d | j d  | f } | j |  q WWd  QRXd  S)Nr   r   zLatin-1z%r, %r
)r   r    r   unlinkr   r   renamer	   r   r   r   itemsdecodewrite)r   r   r%   r&   entryr   r   r   _commitl   s    !z_Database._commitc             C   s   |  j  d  k r t d   d  S)Nz"DBM object has already been closed)r   r   )r   r   r   r   _verify_open   s    z_Database._verify_openc          	   C   sz   t  | t  r | j d  } |  j   |  j | \ } } t j |  j d  # } | j |  | j	 |  } Wd  QRX| S)Nzutf-8rb)

isinstancestrr#   r.   r   r   r   r
   seekread)r   r%   possizr   Zdatr   r   r   __getitem__   s    
z_Database.__getitem__c             C   s   t  j |  j d  g } | j d d  t | j    } | t d t t } | j d | |  | } | j |  Wd  QRX| t |  f S)Nzrb+r         s    )	r   r   r
   r2   inttell
_BLOCKSIZEr+   len)r   valr   r4   Znposr   r   r   _addval   s    z_Database._addvalc          
   C   sI   t  j |  j d  ! } | j |  | j |  Wd  QRX| t |  f S)Nzrb+)r   r   r
   r2   r+   r<   )r   r4   r=   r   r   r   r   _setval   s    z_Database._setvalc             C   sf   | |  j  | <t j |  j d d d 7 } |  j |  j  | j d | j d  | f  Wd  QRXd  S)Nar   zLatin-1z%r, %r
)r   r   r   r	   r   r+   r*   )r   r%   r&   r   r   r   r   _addkey   s    z_Database._addkeyc             C   sA  t  | t  r! | j d  } n! t  | t t f  sB t d   t  | t  rc | j d  } n! t  | t t f  s t d   |  j   d |  _ | |  j k r |  j	 | |  j
 |   n{ |  j | \ } } | t d t } t |  t d t } | | k r'|  j | |  |  j | <n |  j
 |  |  j | <d  S)Nzutf-8zkeys must be bytes or stringszvalues must be bytes or stringsTr8   )r0   r1   r#   bytes	bytearray	TypeErrorr.   r    r   rA   r>   r;   r<   r?   )r   r%   r=   r4   r5   Z	oldblocksZ	newblocksr   r   r   __setitem__   s$    
	z_Database.__setitem__c             C   sI   t  | t  r | j d  } |  j   d |  _ |  j | =|  j   d  S)Nzutf-8T)r0   r1   r#   r.   r    r   r-   )r   r%   r   r   r   __delitem__   s    
	
z_Database.__delitem__c             C   s9   y t  |  j  SWn! t k
 r4 t d  d   Yn Xd  S)Nz"DBM object has already been closed)listr   rD   r   )r   r   r   r   keys   s    z_Database.keysc                s*     j      f d d     j j   D S)Nc                s    g  |  ] } |   | f  q Sr   r   ).0r%   )r   r   r   
<listcomp>   s   	 z#_Database.items.<locals>.<listcomp>)r.   r   rH   )r   r   )r   r   r)      s    
z_Database.itemsc             C   sl   t  | t  r | j d  } y | |  j k SWn6 t k
 rg |  j d  k r` t d  d   n   Yn Xd  S)Nzutf-8z"DBM object has already been closed)r0   r1   r#   r   rD   r   )r   r%   r   r   r   __contains__   s    z_Database.__contains__c             C   s9   y t  |  j  SWn! t k
 r4 t d  d   Yn Xd  S)Nz"DBM object has already been closed)iterr   rD   r   )r   r   r   r   iterkeys   s    z_Database.iterkeysc             C   s9   y t  |  j  SWn! t k
 r4 t d  d   Yn Xd  S)Nz"DBM object has already been closed)r<   r   rD   r   )r   r   r   r   __len__  s    z_Database.__len__c             C   s4   z |  j    Wd  d  |  _ |  _ |  _ |  _ Xd  S)N)r-   r   r
   r	   r   )r   r   r   r   r     s    z_Database.closec             C   s,   t  |  j d  r( |  j j | |  j  d  S)Nchmod)hasattrr   rO   r   )r   filer   r   r   r     s    z_Database._chmodc             C   s   |  S)Nr   )r   r   r   r   	__enter__  s    z_Database.__enter__c             G   s   |  j    d  S)N)r   )r   argsr   r   r   __exit__  s    z_Database.__exit__N)__name__
__module____qualname__r   r   r   r   r   r-   syncr.   r6   r>   r?   rA   rE   rF   rH   r)   rK   rM   __iter__rN   r   __del__r   rR   rT   r   r   r   r   r   #   s2   
	#r   r   i  c             C   sS   y  t  j d  } t  j |  Wn t k
 r4 Yn X| | @} t |  | d | S)Nr   r   )r   umaskAttributeErrorr   )rQ   r   r   Zumr   r   r   r     s    )Zastr"   ior   osr   collections__all__r;   r   r   MutableMappingr   r   r   r   r   r   <module>   s   