� K�gj���dZddlZddlmZmZdeedeedffd�Zded edefd �Zd edeeeffd �Zd edeedfde fd�Z dS)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)). �N)�List�Tuple�list_�return.c�j�t|��}g}d}tt|����D]u}|dzt|��kr||||dzdz kr�1||dz|dz�}|�t |d|ddz����|}�vt |��S)aRepresent 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. ������r)�sorted�range�len�append� _encode_range�tuple)r� sorted_list�ranges� last_write�i� current_ranges �^/home/asafur/pinokio/api/open-webui.git/app/env/lib/python3.11/site-packages/idna/intranges.py�intranges_from_listr s�����-�-�K� �F��J� �3�{�#�#� $� $���� �q�5�3�{�#�#� #� #��1�~��Q��U�!3�a�!7�7�7��#�J��N�Q��U�$:�;� �� � �m�M�!�$4�m�B�6G�!�6K�L�L�M�M�M�� � � ��=�=���start�endc��|dz|zS)N� �)rrs rrr"s�� �R�K�3� �r�rc��|dz |dzfS)Nrl��r)rs r� _decode_ranger&s�� ��G�q�M�*� +�+r�int_rc��t|d��}tj||��}|dkr-t||dz ��\}}||cxkr|krnndS|t |��kr t||��\}}||krdSdS)z=Determine if `int_` falls into one of the ranges in `ranges`.rr TF)r�bisect� bisect_leftrr )r r�tuple_�pos�left�right�_s r�intranges_containr)*s��� �4�� #� #�F� � �V�V� ,� ,�C� �Q�w�w�#�F�3��7�O�4�4� ��e� �4� � � � �%� � � � � ��4� �S��[�[�����s� �,�,���a� �4�<�<��4� �5r) �__doc__r"�typingrr�intrrr�boolr)rrr�<module>r.s������ � � ����������t�C�y��U�3��8�_�����,���3��3�����,�S�,�U�3��8�_�,�,�,�,��C���s�C�x���T������r
Memory