Your IP : 216.73.216.24


Current Path : /proc/self/root/opt/alt/python313/lib64/python3.13/_pyrepl/__pycache__/
Upload File :
Current File : //proc/self/root/opt/alt/python313/lib64/python3.13/_pyrepl/__pycache__/reader.cpython-313.pyc

�

{�h@l�
���%SSKJr SSKrSSKJr SSKJrJrJr SSK	J
r
Jr SSKJ
r
JrJr SSKJrJrJr SS	KJr \
R*rSS
KJrJrJrJr \"S5urrrSHSjrSIS
jr \!"/SPSPSPSPSPSPSPSPSPSPSPSPSPSPSPSPSPSP\RDS :XaS!OS"QS#PS$PS%PS&PS'PS(PS)PS*PS+PS,PS-PS.PS/PS0PS1PS2PS3PS4PS5PS6PS7PS8PS9PS:P\#"\$\"S;S<55Vs/sHoS=:wdM
US>4PM sn-\#"\$\"S?S@55Vs/sHoRK5(dMUS>4PM sn-/SAQ-5r&SB\'SC'\"SDSE9"SFSG55r(gs snfs snf)J�)�annotationsN)�contextmanager)�	dataclass�field�fields)�can_colorize�
ANSIColors�)�commands�console�input)�wlen�	unbracket�disp_str)�trace)�Callback�SimpleContextManager�KeySpec�CommandName�c��0n[[[S55Hn[X'M
 [[[S55Vs/sHo"R	5(dMUPM snHn[
X'M
 [=US'US'U$s snf)N��
� )�map�chr�range�
SYNTAX_SYMBOL�isalnum�SYNTAX_WORD�SYNTAX_WHITESPACE)�st�c�as   �5/opt/alt/python313/lib64/python3.13/_pyrepl/reader.py�make_default_syntax_tabler&.sr���B�
��e�C�j�
!�����"��S�%��*�-�
=�-�A����a�-�
=�����>�*�*�B�t�H�r�#�w�
�I��>s�B
�"B
c�N�0n[[5R5H�n[U[5(dM[U[5(dM1URSR5(dMUXUR'XURRSS5'M� U$)Nr�_�-)
�varsr�values�
isinstance�type�
issubclass�Command�__name__�islower�replace)�result�vs  r%�make_default_commandsr59sy��/1�F�
�(�^�
"�
"�
$���a����:�a��#9�#9�a�j�j��m�>S�>S�>U�>U�!"�1�:�:��34�1�:�:�%�%�c�3�/�0�%��M�)z\C-a�beginning-of-line)z\C-b�left)z\C-c�	interrupt)z\C-d�delete)z\C-e�end-of-line)z\C-f�right)z\C-g�cancel)z\C-h�	backspace)z\C-j�accept)z	\<return>r?)z\C-kz	kill-line)z\C-lzclear-screen)z\C-mr?)z\C-tztranspose-characters)z\C-uzunix-line-discard)z\C-wzunix-word-rubout)z\C-x\C-uz
upcase-region)z\C-y�yank�win32�))z\C-z�suspend)z\M-b�
backward-word)z\M-czcapitalize-word)z\M-dz	kill-word)z\M-f�forward-word)z\M-lz
downcase-word)z\M-tztranspose-words)z\M-uzupcase-word)z\M-yzyank-pop)z\M--�	digit-arg)z\M-0rF)z\M-1rF)z\M-2rF)z\M-3rF)z\M-4rF)z\M-5rF)z\M-6rF)z\M-7rF)z\M-8rF)z\M-9rF)z\M-\nr?)z\\�self-insert)z	\x1b[200~�enable_bracketed_paste)z	\x1b[201~�disable_bracketed_paste)z\x03zctrl-c� ��\rG�r))z\<up>�up)z\<down>�down)z\<left>r8)z
\C-\<left>rD)z\<right>r<)z\C-\<right>rE)z	\<delete>r:)z\x1b[3~r:)z\<backspace>r>)z\M-\<backspace>zbackward-kill-word)z\<end>r;)z\<home>r7)z\<f1>�help)z\<f2>zshow-history)z\<f3>z
paste-mode)z\EOF�end)z\EOH�home�'tuple[tuple[KeySpec, CommandName], ...]�default_keymapT)�slotsc��\rSrSr%SrS\S'\"\S9rS\S'Sr	S	\S
'Sr
S\S
'SrS\S'SrS\S'Sr
S\S'\"\S9rS\S'SrS\S'SrS\S'SrS\S'SrS\S'SrS\S'SrS\S '\"\S9rS!\S"'SrS#\S$'\"\S9rS%\S&'S'rS(\S)'\"SS*9rS+\S,'\"\S9rS-\S.'\"\S9rS\S/'\"SS*9rS0\S1'\"SS*9rS2\S3'\"SS*9r S2\S4'\"\S9r!S\S5'Sr"S\S6'Sr#S7\S8'\$"S9S:55r%\"\%S9r&S:\S;'S_S<jr'S`S=jr(SaS>jr)\*SbS?j5r+ScSdS@jjr,ScSdSAjjr-ScSdSBjjr.ScSdSCjjr/SeSDjr0SfSEjr1SgShSFjjr2SiSGjr3SjSHjr4S_SIjr5SkSJjr6SlSKjr7SmSLjr8S_SMjr9SnSNjr:S_SOjr;SoSPjr<S_SQjr=\>SpSRj5r?S_SSjr@SqSrSTjjrAS_SUjrBS_SVjrCSsSWjrDS_SXjrEStSuSYjjrFSvSZjrGScSwS[jjrHSxS\jrISyS]jrJS^rKg)z�Reader�a`The Reader class implements the bare bones of a command reader,
handling such details as editing and cursor motion.  What it does
not support are such things as completion or history support -
these are implemented elsewhere.

Instance variables of note include:

  * buffer:
    A *list* (*not* a string at the moment :-) containing all the
    characters that have been entered.
  * console:
    Hopefully encapsulates the OS dependent stuff.
  * pos:
    A 0-based index into `buffer' for where the insertion point
    is.
  * screeninfo:
    Ahem.  This list contains some info needed to move the
    insertion point around reasonably efficiently.
  * cxy, lxy:
    the position of the insertion point in screen ...
  * syntax_table:
    Dictionary mapping characters to `syntax class'; read the
    emacs docs to see what this means :-)
  * commands:
    Dictionary mapping command names to command classes.
  * arg:
    The emacs-style prefix argument.  It will be None if no such
    argument has been provided.
  * dirty:
    True if we need to refresh the display.
  * kill_ring:
    The emacs-style kill-ring; manipulated with yank & yank-pop
  * ps1, ps2, ps3, ps4:
    prompts.  ps1 is the prompt for a one-line input; for a
    multiline input it looks like:
        ps2> first line of input goes here
        ps3> second and further
        ps3> lines get ps3
        ...
        ps4> and the last one gets ps4
    As with the usual top-level, you can set these to instances if
    you like; str() will be called on them (once) at the beginning
    of each command.  Don't put really long or newline containing
    strings here, please!
    This is just the default policy; you can change it freely by
    overriding get_prompt() (and indeed some standard subclasses
    do).
  * finished:
    handle1 will set this to a true value if a command signals
    that we're done.
zconsole.Consoler��default_factory�	list[str]�bufferr�int�posz->> �str�ps1z/>> �ps2z|.. �ps3z\__ �ps4zlist[list[str]]�	kill_ring��msgN�
int | None�argF�bool�dirty�finished�
paste_mode�in_bracketed_pastezdict[str, type[Command]]rztype[Command] | None�last_command�dict[str, int]�syntax_tablerBztuple[tuple[str, str], ...]�keymap��init�input.KeymapTranslator�input_transzlist[input.KeymapTranslator]�input_trans_stack�screen�list[tuple[int, list[int]]]�
screeninfo�tuple[int, int]�cxy�lxy�scheduled_commandsr�Callback | None�threading_hookc���\rSrSr%SrS\S'\"\S9rS\S'\"SS9r	S	\S
'\"\S9r
S\S'\"SS9rS
\S'\"SS9rS\S'\"SS9r
S\S'SrS\S'SSjrSSjrSSjrSrg)�Reader.RefreshCache��FrirmrYr[rwrrrxryz	list[int]�line_end_offsetsr]r^rzr{�
dimensions�invalidatedc�.�URUlUR5UlUR5UlURUlUR
UlURRURR4Ul	SUl
g�NF)rm�copyrwryr^r{r�width�heightr�r�)�self�readerrwrys    r%�update_cache� Reader.RefreshCache.update_cache�sk��
'-�&?�&?�D�#� �+�+�-�D�K�(�o�o�/�D�O��z�z�D�H��z�z�D�H�$�n�n�2�2�F�N�N�4I�4I�I�D�O�$�D�r6c���UR(agURRURR4nX R:gnUR
UR
:gnU=(d U(+$r�)r�rr�r�r�rm)r�r�r��dimensions_changed�
paste_changeds     r%�valid�Reader.RefreshCache.valid�s]���������-�-�v�~�~�/D�/D�D�J�!+���!>��"�5�5��9P�9P�P�M�*�;�m�<�<r6c��UR(a[S5eSn[URUR5n[	UR
5nUS:�a(UR
US-
nX2:�aX$4$US-nUS:�aM(SnX$4$)NzCache is invalidatedrr
)r��
ValueError�minr^�lenr�)r�r��offset�earliest_common_pos�num_common_liness     r%�get_cached_location�'Reader.RefreshCache.get_cached_location�s������ �!7�8�8��F�"%�f�j�j�$�(�(�";��"�4�#8�#8�9��"�Q�&��.�.�/?�!�/C�D��&�/���+�+�!�A�%� �	#�Q�&����+�+r6)r{r�rmr�r^rwryN)r�rWrwr[ryrx�return�None)r�rWr�ri)r�rWr�rz)r0�
__module__�__qualname__�__firstlineno__rm�__annotations__r�listrwryr�r^r{r�r�r�r�r��__static_attributes__rBr6r%�RefreshCacher��s���#(��D�(�!�$�7��	�7�27�U�2C�
�/�C�&+�D�&A��)�A��e�$��S�$�$�%�0��_�0�&+��&7�
�O�7�!��T�!�	%�!'�	%�!*�	%�&A�	%��		%�	=�
	,r6r��last_refresh_cachec��UR5Ul[R"URSSS9UlS/4/UlUR
5UlURS4Ul	[5Ul
UR
URlURURlURURlSURlg)N�invalid-keyrG��invalid_cls�
character_clsr�rr)
�collect_keymaprqr
�KeymapTranslatorrury�pos2xyr{r^r|rr�r��r�s r%�
__post_init__�Reader.__post_init__s����)�)�+��� �1�1��K�K�]�-�
����r�7�)����;�;�=����H�H�a�=���(�N���-1�_�_����*�&*�h�h����#�&*�h�h����#�-3����*r6c��[$�N)rTr�s r%r��Reader.collect_keymap!s���r6c��SnSnURRU5(aURRU5up!URRnX1S2	URRnXAS2	URR
nXQS2	URnXb-nU=(a URUS-
S:gnSRURUS5RS5nSn	Sn
[X�5GHoup�[U5n
SUs=::aU
::aO OXk4UlSn	O(U	(a!U
S-
n
X�RR:�a GO U(aSnSnO$URX�Us=:�=(a S:�Os 5nSU;aRUR!S5unnnUR#U5 UR#U5 UR#S/45 SU;aMRXmS--nUR%U5unn['U5unn[)U5U-URR*-n[-SUS	9 US:XdU(dQX-S--
nUR#U5 UR#USRU5-5 UR#UU45 GM�UnUn[/US-5H�nSnSnUH/nUU-U-URR*:�a OUS-
nUU-
nM1 [U5U:�aUU-
nS
nS/nOUUS--
nSn/nUR#U5 USRUSU5-U-nUSUU-nUR#U5 UR#UU45 UUSnUUSnSnSnM� GMr X@lUR15UlUR4(aFUR4RS5H'nUR#U5 UR#S/45 M) URR7XU5 U$)zETranslate changes in self.buffer into changes in self.console.screen.rNr
rreFTzwrapcount = {wrapcount})�	wrapcountrL)r�r�r�rwryr�r^r\�join�split�	enumerater�r|rr��
get_prompt�	partition�append�process_promptr�sumr�rrr�r{rfr�) r�r�r�rwry�last_refresh_line_end_offsetsr^�prompt_from_cache�lines�cursor_found�lines_beyond_cursor�ln�line�line_len�prompt�
pre_promptr(�
prompt_len�chars�char_widthsr��pre�prelen�wrap�index_to_wrap_before�column�
char_width�post�after�render�
render_widths�mlines                                 r%�calc_screen�Reader.calc_screen$s�������"�"�(�(��.�.�'+�'>�'>�'R�'R�SW�'X�$�F��(�(�/�/���$�%��,�,�7�7�
��(�)�(,�(?�(?�(P�(P�%�)�*;�<��h�h���
��#�G����F�Q�J�(?�4�(G��������F�G�,�-�3�3�D�9������!�%�:�H�B��4�y�H��C�#�8�#��7���#���#�q�(�#�&���)<�)<�<�� �$)�!��������-A�-A��-A�B���&�.�(.�(8�(8��(>�%�
�A�v�-�4�4�V�<��
�
�j�)��!�!�1�b�'�*�	�&�.�

�a�<��C�!%�!4�!4�V�!<��F�J�!)�$���E�;��[�)�J�6�4�<�<�;M�;M�M�I��+�y�A��A�~�[��Q�,�&��-�4�4�V�<��
�
�f�r�w�w�u�~�5�6��!�!�:�{�";�<���#��!�)�a�-�0�D�+,�(��F�&1�
�!�J�.��7�4�<�<�;M�;M�M�!�,��1�,��*�,��	'2�
�5�z�$8�8��"6�6��#��!"����"6��":�:��!�� "��1�8�8��@� �2�7�7�5�1F�2F�+G�#H�H�4�O�F�$/�0E�1E�$F��$N�M��M�M�&�)��%�%�v�}�&=�>�!�"6�"7�8�E�"-�.B�.C�"D�K��C��F�11�G;�x%���;�;�=����8�8�������-���
�
�e�$��!�!�1�b�'�*�.�	
���,�,�T�:�F��
r6c�D�[USS9n[USS9nU[U54$)z�Return a tuple with the prompt string and its visible length.

The prompt string has the zero-width brackets recognized by shells
(\x01 and \x02) removed.  The length ignores anything between those
brackets as well as any ANSI escape sequences.
F)�including_contentT)rr)r��
out_prompt�visible_prompts   r%r��Reader.process_prompt�s,���v��?�
�"�6�T�B���4��/�/�/r6c��UcURnURnURnUS-nUS:�aMURX1[5[:wa-US-nUS:�a"URX1[5[:waM-US:�aMURX1[5[:Xa-US-nUS:�a"URX1[5[:XaM-US-$)z�Return the 0-based index of the word break preceding p most
immediately.

p defaults to self.pos; word boundaries are determined using
self.syntax_table.r
r)r^rpr\�getr �r��pr"�bs    r%�bow�
Reader.bow�s���
�9����A�
�
�
���K�K��	�Q����1�f������k�2�k�A�
��F�A��1�f������k�2�k�A��1�f������k�2�k�A�
��F�A��1�f������k�2�k�A��1�u�r6c���UcURnURnURnU[U5:aVUR	X1[
5[
:wa6US-
nU[U5:a"UR	X1[
5[
:waM6U[U5:aVUR	X1[
5[
:Xa6US-
nU[U5:a"UR	X1[
5[
:XaM6U$)z�Return the 0-based index of the word break following p most
immediately.

p defaults to self.pos; word boundaries are determined using
self.syntax_table.r
)r^rpr\r�r�r r�s    r%�eow�
Reader.eow�s���
�9����A�
�
�
���K�K���#�a�&�j�R�V�V�A�D�+�6�+�E�
��F�A��#�a�&�j�R�V�V�A�D�+�6�+�E��#�a�&�j�R�V�V�A�D�+�6�+�E�
��F�A��#�a�&�j�R�V�V�A�D�+�6�+�E��r6c��UcURnURnUS-nUS:�aX!S:waUS-nUS:�a
X!S:waMUS-$)zaReturn the 0-based index of the line break preceding p most
immediately.

p defaults to self.pos.r
rr)r^r\�r�r�r�s   r%�bol�
Reader.bol�sV��

�9����A��K�K��	�Q����1�f�����
��F�A��1�f������1�u�r6c��UcURnURnU[U5:a&X!S:waUS-
nU[U5:a
X!S:waMU$)zaReturn the 0-based index of the line break following p most
immediately.

p defaults to self.pos.rr
)r^r\r�r�s   r%�eol�
Reader.eol�sQ��

�9����A��K�K���#�a�&�j�Q�T�T�\�
��F�A��#�a�&�j�Q�T�T�\��r6c�^�URUS[URUS5-$)z#Return the last x-offset for line yrr
)ryr�)r��ys  r%�
max_column�Reader.max_column�s.�����q�!�!�$�s�4�?�?�1�+=�a�+@�'A�A�Ar6c�2�[UR5S-
$)Nr
)r�ryr�s r%�max_row�Reader.max_row�s���4�?�?�#�a�'�'r6c�8�URcU$UR$)zmReturn any prefix argument that the user has supplied,
returning `default' if there is None.  Defaults to 1.
)rh)r��defaults  r%�get_arg�Reader.get_arg�s���8�8���N��x�x�r6c���URbU(aSURS3nO�UR(aUR(dSnOxSUR;a\US:Xa
URnOUUR
(a+XRR
S5:Xa
UR
nOURnOURnUR(a$[RU[R3nU$)z@Return what should be in the left-hand margin for line
`lineno'.z(arg: z) z(paste) rr)
rhrlrmr\rarc�countrbr`rr	�BOLD_MAGENTA�RESET)r��lineno�cursor_on_liner�s    r%r��Reader.get_prompt�s����8�8��N��d�h�h�Z�r�*�F�
�_�_�T�%<�%<��F�
�T�[�[�
 ���{��������f���(9�(9�$�(?�?����������X�X�F����"�/�/�0����9I�9I�8J�K�F��
r6c�Z�URRUR5 Xlgr�)rvr�ru)r��itranss  r%�push_input_trans�Reader.push_input_trans�s"�����%�%�d�&6�&6�7�!�r6c�B�URR5Ulgr�)rv�poprur�s r%�pop_input_trans�Reader.pop_input_trans�s���1�1�5�5�7��r6c��SnSnXB:acURUupV[U5nU[U5-URR:�nU(aX7S-
-
nOX7S--
nUS-
nXB:aMcSn	URUSn
X�:aHURUSU	S:XaU	S-
n	M%X�RUSU	-
n
U	S-
n	US-
nX�:aMHX0lg)z%Set pos according to coordinates x, yrr
N)ryr�r�rr�r^)r��xr�r^�ir�r�r��in_wrapped_line�j�cur_xs           r%�setpos_from_xy�Reader.setpos_from_xy�s�����
���e�&*�o�o�a�&8�#�J���%�F�(�3�{�+;�;�t�|�|�?Q�?Q�Q�O����z�!����z�!��
��F�A��e�
������"�1�%���i����q�!�!�$�Q�'�1�,��Q�����_�_�Q�'��*�1�-�-�E�
��F�A��1�H�C�
�i��r6c�F�Sup/nURnSUs=::a[UR5::de eU[UR5:XaR[UR5S:�a9[UR5S-
nURUupU[	U5-U4$URH]up[U5nU[	U5-UR
R:�nU(aUS-nXT:�a OU(dUS-
nXE-nUS-
nM_ U[	USU5-U4$)z.Return the x, y coordinates of position 'pos'.r�rr
N)r^r�r\ryr�rr�)r�r�r�r�r^r�r
s       r%r��
Reader.pos2xys���
�
�!#���h�h���C�+�3�t�{�{�+�+�+�+�+�+��#�d�k�k�"�"�s�4�?�?�';�a�'?��D�O�O�$�q�(�A�&*�o�o�a�&8�#�J���K� 0�0�!�3�3�'+���#�J���%�F�(�3�{�+;�;�t�|�|�?Q�?Q�Q�O���!����}��"��!����M�C�
��F�A�(7��C��D�S� 1�2�2�A�5�5r6c��[U5URURUR&U=R[U5-
slSUlg)z%Insert 'text' at the insertion point.TN)r�r\r^r�rj)r��texts  r%�insert�
Reader.insert1s7��+/��:����D�H�H�t�x�x�(����C��I�����
r6c�t�UR5UlURR"UR6 g)z.Move the cursor to reflect changes in self.posN)r�r{r�move_cursorr�s r%�
update_cursor�Reader.update_cursor7s%���;�;�=������ � �$�(�(�+r6c�`�[USS5(aURbSUlSUlgg)z6This function is called to allow post command cleanup.�kills_digit_argTN)�getattrrhrj�r��cmds  r%�
after_command�Reader.after_command<s/���3�)�4�0�0��x�x�#�!��
��D�H�1r6c��URR5 SUlSUlURSS2	SUlSUlSUlUR5 UR(aAURR5nURU/45 UR(aM@gg![a UR5 ef=f)z~Get ready to run.  Call restore when finished.  You must not
write to the console in between the calls to prepare and
restore.NFrT)r�preparerhrkr\r^rjrnr��
BaseException�restorer}r�do_cmdrs  r%r$�Reader.prepareCs���	��L�L� � �"��D�H�!�D�M����A���D�H��D�J� $�D������
�%�%��)�)�-�-�/�C��K�K��b�	�"��%�%�%��	�	��L�L�N��	�s�AB1�1C
c�P�UR(dg[XR5$r�)rnr.)r��clss  r%�last_command_is�Reader.last_command_isXs��� � ���#�0�0�1�1r6c�8�URR5 g)zClean up after a run.N)rr&r�s r%r&�Reader.restore]s�������r6c	#�V# �[U5Vs0sH"oR[XR5_M$ nnUR5 Sv� SHn[	XX#5 M UR5 gs snf!SHn[	XX#5 M UR5 f=f7f)z0A context manager to delegate to another reader.N)rfr`rarbrcrl)r�namerr&�setattrr$)r��f�
prev_staterhs    r%rC�Reader.suspendas����>D�D�\�J�\��f�f�g�d�F�F�3�3�\�
�J�	��L�L�N��H����:�?�3�I��L�L�N��K��
I����:�?�3�I��L�L�N�s&�B)�)A8�B)�A=�-B)�=)B&�&B)c��g)z2Called when a command signals that we're finished.NrBr�s r%�finish�
Reader.finishms��r6c�`�SU-S-UlSUlURR5 g)Nz! rT)rfrjr�beep)r�rfs  r%�error�Reader.errorqs)���#�:��#�����
������r6c�H�UR(aUR5 ggr�)rj�refreshr�s r%�
update_screen�Reader.update_screenvs���:�:��L�L�N�r6c��UR(a%UR(aURSS:XdgUR5UlURRURUR5 SUlg)z#Recalculate and refresh the screen.���rNF)rmr\r�rwrr=r{rjr�s r%r=�Reader.refreshzsX���"�"�t�{�{�4�;�;�r�?�d�;R���&�&�(��������T�[�[�$�(�(�3���
r6c��[SUS9 [US[5(a.URR	US[R
5nO[US[5(aUSnOgU"U/UQ76nUR5 URU5 UR(aUR5 OUR5 [U[R5(dX l
[UR5UlUR (a+UR"R5 UR5 gg)z�`cmd` is a tuple of "event_name" and "event", which in the current
implementation is always just the "buffer" which happens to be a list
of single-character strings.zreceived command {cmd})r rN)rr,r_rr��invalid_commandr-�dor!rjr=r�	digit_argrnrir6rkr)r�r �command_type�commands    r%r'�
Reader.do_cmd�s���
	�&�C�0��c�!�f�c�"�"��=�=�,�,�S��V�X�5M�5M�N�L�
��A���
%�
%��q�6�L���t�*�c�*���
�
�����7�#��:�:��L�L�N���� ��#�x�1�1�2�2� ,���W�^�^�,��
��=�=��L�L���!��K�K�M�r6c��URnUc"S[R;aSSKJn U"U5 UbU"5 URRnU(a	U"5 gg![
a N3f=f![
a gf=f)N�	threadingr
)�install_threading_hook)r�sys�modules�_threading_handlerrL�	Exceptionr�
input_hook)r�rrLrQs    r%�	run_hooks�Reader.run_hooks�s����,�,���!�k�S�[�[�&@�B�"�4�(��%�
�� ��\�\�,�,�
��
�����	�
��
���
��
�s#�A$�A4�$
A1�0A1�4
B�Bc��UR(aSUlSUlUR5 URR	S5 URRSS9nU(d
U(aMUgSnURS:XaURRU5 ODURS:XaUR5 O#URS:XaUR5 OSnU(aURR5nOURUR/nUcU(aGMgURU5 g)	zHandle a single event.  Wait as long as it takes if block
is true (the default), otherwise return False if no event is
pending.reT�dF��block�key�scroll�resize)
rfrjrRr�wait�	get_event�evtru�pushr=r��datar')r�rW�event�	translater s     r%�handle1�Reader.handle1�s���
�8�8��D�H��D�J���N�N���L�L���c�"��L�L�*�*��*�7�E������I��y�y�E�!�� � �%�%�e�,����h�&��������h�&�����!�	���&�&�*�*�,���y�y�%�*�*�-���{�����K�K���r6c�X�URRU5 URSS9 g)NFrV)r�	push_charrb)r��chars  r%re�Reader.push_char�s"�������t�$����5��!r6c�*�UR5 UbU"5 UR5 UR(d#UR5 UR(dM#UR	5UR5 $!UR5 f=f)z|Read a line.  The implementation of this method also shows
how to drive Reader if you want more control over the event
loop.)r$r=rkrb�get_unicoder&)r��startup_hooks  r%�readline�Reader.readline�sb��	
����		��'����L�L�N��m�m������m�m�m��#�#�%�
�L�L�N��D�L�L�N�s�AB� B�Bc�z�URX44-Ul[R"URSSS9Ulg)Nr�rGr�)rqr
r�ru)r��specrHs   r%�bind�Reader.bind�s5���k�k�d�_�$6�6��� �1�1��K�K�]�-�
��r6c�8�SRUR5$)z.Return the current buffer as a unicode string.re)r�r\r�s r%ri�Reader.get_unicode�s���w�w�t�{�{�#�#r6)
rhrr{rjrkrurqrnr|rfr^rwry)r�r�)r�rS)r�r[)r�r_r�ztuple[str, int]r�)r�rgr�r])r�r]r�r])r�r])r
)r�r]r�r])r�r]rrir�r_)rrtr�r�)rr]r�r]r�r�)r�rz)rzstr | list[str]r�r�)r r/r�r�)r*r-r�ri)r�r)�none)rfr_r�r�)r ztuple[str, list[str]]r�r�)T)rWrir�ri)rfzint | bytesr�r�)rjr~r�r_)rnrrHrr�r�)r�r_)Lr0r�r�r��__doc__r�rr�r\r^r`rarbrcrdrfrhrjrkrlrmr5rrnr&rprqrurvrwryr{r|r}rrrr�r�r�r�r��staticmethodr�r�r�r�r�r�r�r�r�rrrr�rrr!r$r+r&rrCr6r:r>r=r'rRrbrerkrorir�rBr6r%rWrW�sN��2�h���d�3�F�I�3��C��L��C����C����C����C���!&�t�!<�I��<��C��M��C����E�4���H�d���J���$���$�).�?T�)U�H�&�U�)-�L�&�-�#(�9R�#S�L�.�S�*,�F�'�,�*/�U�*;�K�'�;�6;�D�6Q��3�Q��d�3�F�I�3�.3��.?�J�+�?� �e�,�C��,� �e�,�C��,�$)�$�$?��	�?��L�$��&*�N�O�*��,,�,,��,,�\(-�\�'J���J�4�$�b�H�	0��	0��"� �
�B�(���*"�8��46�<�,�
�#�*2�
��	��	�
��
���>�$)�V"�� 
�$r6rW)r�ro)r�z dict[CommandName, type[Command]]))�
__future__rrM�
contextlibr�dataclassesrrr�	_colorizerr	rerrr
�utilsrrrrr/�typesrrrrrr!r rr&r5�tuple�platformrr�isalpharTr�rW)r#s0r%�<module>rs���,#�
�%�0�0�.�'�&�,�,���
�
��G�G�
16�a��-��;�
���;@�,�&�,��,�	�,�	�	,�
	!�,�	�
,�	�,�	�,�	�,�	!�,�	�,�	"�,�	�,�	*�,�	'�,� 	&�!,�"	'�#,�$	�%,�&����'�"�-E�',�(	#�),�*	%�+,�,	�-,�.	"�/,�0	#�1,�2	%�3,�4	!�5,�6	�7,�8	�9,�:	�;,�<	�=,�>	�?,�@	�A,�B	�C,�D	�E,�F	�G,�H	�I,�J	�K,�L	�M,�N	�O,�P	 �Q,�R	1�S,�T	2�U,�V	�W,�Z$'�s�E�"�c�N�#;�I�#;�a�D�y���=��#;�I�[-J�\$'�s�E�#�s�O�#<�L�#<�a�	�	����=��#<�L�].M�^�_B�D;��7�D�N���r	$�r	$��r	$��5J��Ls�)	E
�6E
�E$
�0E$

?>