ó
è¾bc           @   st   d  Z  d d d „ Z e Z d d d „ Z e Z d d d „ Z d d d „ Z y d d l TWn e	 k
 ro n Xd S(	   s   Bisection algorithms.i    c         C   sŽ   | d k  r t  d ƒ ‚ n  | d k r6 t |  ƒ } n  xA | | k  ry | | d } | |  | k  rl | } q9 | d } q9 W|  j | | ƒ d S(   sï   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.
    i    s   lo must be non-negativei   i   N(   t
   ValueErrort   Nonet   lent   insert(   t   at   xt   lot   hit   mid(    (    s   /usr/lib/python2.7/bisect.pyt   insort_right   s    	 	c         C   s~   | d k  r t  d ƒ ‚ n  | d k r6 t |  ƒ } n  xA | | k  ry | | d } | |  | k  rl | } q9 | d } q9 W| S(   s€  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.
    i    s   lo must be non-negativei   i   N(   R    R   R   (   R   R   R   R   R   (    (    s   /usr/lib/python2.7/bisect.pyt   bisect_right   s     	c         C   sŽ   | d k  r t  d ƒ ‚ n  | d k r6 t |  ƒ } n  xA | | k  ry | | d } |  | | k  rp | d } q9 | } q9 W|  j | | ƒ d S(   sí   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.
    i    s   lo must be non-negativei   i   N(   R    R   R   R   (   R   R   R   R   R   (    (    s   /usr/lib/python2.7/bisect.pyt   insort_left/   s    	 
c         C   s~   | d k  r t  d ƒ ‚ n  | d k r6 t |  ƒ } n  xA | | k  ry | | d } |  | | k  rp | d } q9 | } q9 W| S(   s€  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.
    i    s   lo must be non-negativei   i   N(   R    R   R   (   R   R   R   R   R   (    (    s   /usr/lib/python2.7/bisect.pyt   bisect_leftC   s     
iÿÿÿÿ(   t   *N(
   t   __doc__R   R	   t   insortR
   t   bisectR   R   t   _bisectt   ImportError(    (    (    s   /usr/lib/python2.7/bisect.pyt   <module>   s   