File: //usr/lib64/python3.6/__pycache__/bisect.cpython-36.pyc
3
  \#
  �               @   sZ   d Z ddd�ZeZd
dd�ZeZddd�Zdd	d
�ZyddlT W n ek
rT   Y nX dS )zBisection algorithms.�    Nc             C   sd   |dk rt d��|dkr t| �}x2||k rR|| d }|| | k rH|}q"|d }q"W | j||� dS )z�Insert item x in list a, and keep it sorted assuming a is sorted.
    If x is already in a, insert it to the right of the rightmost x.
    Optional args lo (default 0) and hi (default len(a)) bound the
    slice of a to be searched.
    r   zlo must be non-negativeN�   �   )�
ValueError�len�insert)�a�x�lo�hi�mid� r   �/usr/lib64/python3.6/bisect.py�insort_right   s    	
 r   c             C   sX   |dk rt d��|dkr t| �}x2||k rR|| d }|| | k rH|}q"|d }q"W |S )a�  Return the index where to insert item x in list a, assuming a is sorted.
    The return value i is such that all e in a[:i] have e <= x, and all e in
    a[i:] have e > x.  So if x already appears in the list, a.insert(x) will
    insert just after the rightmost x already there.
    Optional args lo (default 0) and hi (default len(a)) bound the
    slice of a to be searched.
    r   zlo must be non-negativeNr   r   )r   r   )r   r   r	   r
   r   r   r   r
   �bisect_right   s    
 r   c             C   sd   |dk rt d��|dkr t| �}x2||k rR|| d }| | |k rL|d }q"|}q"W | j||� dS )z�Insert item x in list a, and keep it sorted assuming a is sorted.
    If x is already in a, insert it to the left of the leftmost x.
    Optional args lo (default 0) and hi (default len(a)) bound the
    slice of a to be searched.
    r   zlo must be non-negativeNr   r   )r   r   r   )r   r   r	   r
   r   r   r   r
   �insort_left/   s    	
 
r   c             C   sX   |dk rt d��|dkr t| �}x2||k rR|| d }| | |k rL|d }q"|}q"W |S )a�  Return the index where to insert item x in list a, assuming a is sorted.
    The return value i is such that all e in a[:i] have e < x, and all e in
    a[i:] have e >= x.  So if x already appears in the list, a.insert(x) will
    insert just before the leftmost x already there.
    Optional args lo (default 0) and hi (default len(a)) bound the
    slice of a to be searched.
    r   zlo must be non-negativeNr   r   )r   r   )r   r   r	   r
   r   r   r   r
   �bisect_leftC   s    
 
r   )�*)r   N)r   N)r   N)r   N)	�__doc__r   Zinsortr   Zbisectr   r   Z_bisect�ImportErrorr   r   r   r
   �<module>   s