+
    KV-j;  ã                   óB   € R t ^ RItR R ltR R ltR R ltR R	 ltR# )
a	  
Given a list of integers, made up of (hopefully) a small number of long runs
of consecutive integers, compute a representation of the form
((start1, end1), (start2, end2) ...). Then answer the question "was x present
in the original list?" in time O(log(# runs)).
Nc                ó`   € V ^8„  d   QhR\         \        ,          R\        \        R3,          /# )é   Úlist_Úreturn.)ÚlistÚintÚtuple)Úformats   "Ú_/Volumes/fast/ai/experiments/ui-tars-smoke/.venv/lib/python3.14/site-packages/idna/intranges.pyÚ__annotate__r      s&   € ÷ ñ œt¤C�yð ¬U´3¸°8­_ñ ó    c                óh  € \        V 4      p. pRp\        \        V4      4       F�  pV^,           \        V4      8  d$   W,          W^,           ,          ^,
          8X  d   K=  W^,           V^,            pVP                  \	        V^ ,          VR,          ^,           4      4       TpKƒ  	  \        V4      # )a  Represent a list of integers as a sequence of ranges:
((start_0, end_0), (start_1, end_1), ...), such that the original
integers are exactly those x such that start_i <= x < end_i for some i.

Ranges are encoded as single integers (start << 32 | end), not as tuples.
éÿÿÿÿ)ÚsortedÚrangeÚlenÚappendÚ_encode_ranger   )r   Úsorted_listÚrangesÚ
last_writeÚiÚcurrent_ranges   &     r
   Úintranges_from_listr      s™   € ô ˜“-€KØ€FØ€JÜ”3�{Ó#Ö$ˆØˆq�5”3�{Ó#Ô#¨­¸+È!ÅeÕ:LÈqÕ:PÔ(PÙØ#°¥N°Q¸µUÐ;ˆØ�‰”m M°!Õ$4°mÀBÕ6GÈ!Õ6KÓLÔMØŠ
ñ %ô �‹=Ðr   c                ó<   € V ^8„  d   QhR\         R\         R\         /# )r   ÚstartÚendr   )r   )r	   s   "r
   r   r       s!   € ÷ ñ œð ¤3ð ¬3ñ r   c                 ó"   € V ^ ,          V,          # )é    © )r   r   s   &&r
   r   r       s   € Ø�R�K˜3ÕÐr   c                óR   € V ^8„  d   QhR\         R\        \         \         3,          /# )r   Úrr   )r   r   )r	   s   "r
   r   r   $   s"   € ÷ ,ñ ,”Sð ,œU¤3¬ 8�_ñ ,r   c                 ó&   € V ^ ,	          V R,          3# )r   l   ÿÿ r   )r!   s   &r
   Ú_decode_ranger#   $   s   € Ø��G�q˜MÕ*Ð+Ð+r   c                óV   € V ^8„  d   QhR\         R\        \         R3,          R\        /# )r   Úint_r   .r   )r   r   Úbool)r	   s   "r
   r   r   (   s)   € ÷ ñ œCð ¬¬s°C¨x­ð ¼Tñ r   c                ó  € \        V ^ 4      p\        P                  ! W4      pV^ 8”  d-   \        W^,
          ,          4      w  rEY@u;8:  d
   V8  d    R#  V\	        V4      8  d   \        W,          4      w  rFW@8X  d   R# R# )z=Determine if `int_` falls into one of the ranges in `ranges`.TF)r   ÚbisectÚbisect_leftr#   r   )r%   r   Útuple_ÚposÚleftÚrightÚ_s   &&     r
   Úintranges_containr/   (   ss   € ä˜4 Ó#€FÜ
×
Ò
˜VÓ
,€Cð ˆQ„wÜ# F°­7¥OÓ4‰ˆØÖ˜%ÕÙð  ð ŒS�‹[ÔÜ ¥Ó,‰ˆØŒ<ÙÙr   )Ú__doc__r(   r   r   r#   r/   r   r   r
   Ú<module>r1      s#   ðñó õõ*õ,÷r   