Ë
    V.j²L  ã                  ó  — d dl mZ d dlmZ d dlmZmZmZ d dlm	Z	 d dl
mZmZmZmZmZmZmZmZmZmZ d dlmZ d dlmZ d dlmZ d d	lmZ d
dlmZmZm Z  ddl!m"Z" g d¢Z#eZ$edd„«       Z%edd„«       Z&dd„Z'dd„Z(dd„Z)y)é    )Úannotations)Úget_app)ÚBufferÚindentÚunindent)ÚCompleteEvent)
Ú	ConditionÚemacs_insert_modeÚ
emacs_modeÚhas_argÚhas_selectionÚin_paste_modeÚis_multilineÚis_read_onlyÚshift_selection_modeÚvi_search_direction_reversed)ÚBinding)ÚKeyPressEvent)ÚKeys)ÚSelectionTypeé   )ÚConditionalKeyBindingsÚKeyBindingsÚKeyBindingsBaseé   )Úget_by_name)Úload_emacs_bindingsÚload_emacs_search_bindingsÚ#load_emacs_shift_selection_bindingsc                 ó>   — t        «       j                  j                  S ©N)r   Úcurrent_bufferÚis_returnable© ó    úkC:\xampp\htdocs\tradingbinance\backend\.venv\Lib\site-packages\prompt_toolkit/key_binding/bindings/emacs.pyr#   r#   $   s   € ä‹9×#Ñ#×1Ñ1Ð1r%   c                 óD   — t        «       j                  j                  dk(  S )NÚ-)r   Úkey_processorÚargr$   r%   r&   Úis_argr+   )   s   € ä‹9×"Ñ"×&Ñ&¨#Ñ-Ð-r%   c                 ó4  ‡‡— t        «       } | j                  Št        } ‰d«      dmd„«       }  ‰d«      t        d«      «         ‰d«      t        d«      «         ‰d|¬«      t        d	«      «         ‰d
«      t        d«      «         ‰d«      t        d«      «         ‰d«      t        d«      «         ‰d«      t        d«      «         ‰ddd|¬«      t        d«      «         ‰d|¬«      t        d«      «         ‰dd«      t        d«      «         ‰dd|¬«      t        d«      «         ‰dd|¬«      t        d	«      «         ‰dd«      t        d«      «         ‰dd|¬«      t        d«      «         ‰dd|¬«      t        d«      «         ‰dd|¬«      t        d «      «         ‰dd!|¬«      t        d"«      «         ‰dd#|¬«      t        d$«      «         ‰d%«      t        d&«      «         ‰d'«      t        d(«      «         ‰d)d*„ |¬+«      t        d,«      «         ‰dd-d.„ |¬+«      t        d,«      «         ‰dd/t         ¬«      t        d0«      «         ‰dd1t         ¬«      t        d2«      «         ‰dd3|¬«      t        d4«      «         ‰dd5|¬«      t        d4«      «         ‰dd|¬«      t        d6«      «         ‰dd7|¬«      t        d8«      «         ‰d9«      t        d:«      «         ‰d;t         ¬«      t        d<«      «         ‰dd=«      t        d>«      «         ‰dd?«      t        d@«      «         ‰ddA«      t        dB«      «        ‰dC«      dmdD„«       } ‰dE«      dmdF„«       }dnˆfdG„}dHD ]
  } ||«       Œ  ‰ddIt
         ¬«      dmdJ„«       } ‰dIt        ¬«      dmdK„«       }  ‰ddL|t        z  ¬«      t        dM«      «         ‰dL|t        z  t         z  ¬«      t        dM«      «       dodN„Š ‰dOt        j                  «      dmˆfdP„«       }	 ‰ddOt        j                  «      dmˆfdQ„«       }
 ‰ddR«      dmdS„«       } ‰ddA«      dmdT„«       } ‰ddU|¬«      dmdV„«       } ‰ddW|¬«      dmdX„«       } ‰dd«      dmdY„«       } ‰dZ«      dmd[„«       } ‰d\t         ¬«      dmd]„«       } ‰d\t        ¬«      dmd^„«       } ‰d_t        ¬«       ‰ddd`t        ¬«      dmda„«       «       } ‰ddbt        ¬«      dmdc„«       } ‰ddd«      dmde„«       } ‰ddf«      dmdg„«       } ‰ddh|¬«      dmdi„«       } ‰djd1t        ¬«      dmdk„«       } ‰djd/t        ¬«      dmdl„«       }t        | t        «      S )pz!
    Some e-macs extensions.
    Úescapec                 ó   — y)a\  
        By default, ignore escape key.

        (If we don't put this here, and Esc is followed by a key which sequence
        is not handled, we'll insert an Escape character in the input stream.
        Something we don't want and happens to easily in emacs mode.
        Further, people can always use ControlQ to do a quoted insert.)
        Nr$   ©Úevents    r&   Ú_escz!load_emacs_bindings.<locals>._esc9   s   € ð 	r%   zc-aúbeginning-of-linezc-búbackward-charzc-delete©Úfilterz	kill-wordzc-eúend-of-linezc-fúforward-charúc-leftúbackward-wordúc-rightúforward-wordzc-xÚrÚyÚyankúc-yÚbÚczcapitalize-wordÚdÚfÚlzdowncase-wordÚuzuppercase-wordzyank-popÚ	backspacezbackward-kill-wordÚ\zdelete-horizontal-spaceúc-homeúbeginning-of-bufferúc-endúend-of-bufferzc-_c                 ó   — y©NFr$   ©Úes    r&   Ú<lambda>z%load_emacs_bindings.<locals>.<lambda>[   s   € ¨r%   )Úsave_beforer5   Úundozc-uc                 ó   — yrM   r$   rN   s    r&   rP   z%load_emacs_bindings.<locals>.<lambda>_   s   € °r%   Ú<zbeginning-of-historyÚ>zend-of-historyÚ.zyank-last-argÚ_zyank-nth-argÚ#zinsert-commentzc-ozoperate-and-get-nextzc-qzquoted-insertÚ(zstart-kbd-macroÚ)zend-kbd-macrorO   zcall-last-kbd-macrozc-nc                ó8   — | j                   j                  «        y)z
Next line.N)r"   Ú	auto_downr/   s    r&   Ú_nextz"load_emacs_bindings.<locals>._nextu   s   € ð 	×Ñ×&Ñ&Õ(r%   zc-pc                óP   — | j                   j                  | j                  ¬«       y)zPrevious line.©ÚcountN)r"   Úauto_upr*   r/   s    r&   Ú_prevz"load_emacs_bindings.<locals>._prevz   s   € ð 	×Ñ×$Ñ$¨5¯9©9Ð$Õ5r%   c                óN   •‡ —  ‰‰ t         ¬«       ‰d‰ «      dˆ fd„«       «       }y)ze
        Handle input of arguments.
        The first number needs to be preceded by escape.
        r4   r-   c                ó(   •— | j                  ‰«       y r!   )Úappend_to_arg_count)r0   rA   s    €r&   rW   z4load_emacs_bindings.<locals>.handle_digit.<locals>._…   s   ø€ ð ×%Ñ% aÕ(r%   N©r0   ÚEÚreturnÚNone)r   )rA   rW   Úhandles   ` €r&   Úhandle_digitz)load_emacs_bindings.<locals>.handle_digit   s-   ù€ ñ 
�œ'Ô	"Ù	�˜!Ó	ô	)ó 
ó 
#ñ	)r%   Ú
0123456789r(   c                ó@   — | j                   €| j                  d«       yy)Ú Nr(   )Ú_argre   r/   s    r&   Ú
_meta_dashz'load_emacs_bindings.<locals>._meta_dash�   s!   € ð �:‰:ÐØ×%Ñ% cÕ*ð r%   c                ó:   — d| j                   j                  _        y)zp
        When '-' is typed again, after exactly '-' has been given as an
        argument, ignore this.
        r(   N)Úappr)   r*   r/   s    r&   Ú_dashz"load_emacs_bindings.<locals>._dash“   s   € ð '*ˆ�	‰	×ÑÕ#r%   Úenterzaccept-linec                óº   — |dk  r | j                   j                  |d| ¬«      }n| j                   j                  |d|¬«      }|�| xj                  |z  c_        y y )Nr   T)Úin_current_liner`   )ÚdocumentÚfind_backwardsÚfindÚcursor_position)ÚbuffÚcharr`   Úmatchs       r&   Úcharacter_searchz-load_emacs_bindings.<locals>.character_search¥   sd   € Ø�1Š9Ø—M‘M×0Ñ0Ø d°5°&ð 1ó ‰Eð —M‘M×&Ñ& t¸TÈÐ&ÓOˆEàÐØ× Ò  EÑ)Ö ð r%   zc-]c                óV   •—  ‰| j                   | j                  | j                  «       y)z:When Ctl-] + a character is pressed. go to that character.N©r"   Údatar*   ©r0   r~   s    €r&   Ú
_goto_charz'load_emacs_bindings.<locals>._goto_char°   s   ø€ ñ 	˜×-Ñ-¨u¯z©z¸5¿9¹9ÕEr%   c                óX   •—  ‰| j                   | j                  | j                   «       y)zLike Ctl-], but backwards.Nr€   r‚   s    €r&   Ú_goto_char_backwardsz1load_emacs_bindings.<locals>._goto_char_backwards¶   s!   ø€ ñ 	˜×-Ñ-¨u¯z©z¸E¿I¹I¸:ÕFr%   Úac                 ó   — y)zPrevious sentence.Nr$   r/   s    r&   Ú_prev_sentencez+load_emacs_bindings.<locals>._prev_sentence¼   ó   � r%   c                 ó   — y)zMove to end of sentence.Nr$   r/   s    r&   Ú_end_of_sentencez-load_emacs_bindings.<locals>._end_of_sentenceÁ   r‰   r%   Útc                 ó   — y)z<
        Swap the last two words before the cursor.
        Nr$   r/   s    r&   Ú_swap_charactersz-load_emacs_bindings.<locals>._swap_charactersÆ   r‰   r%   Ú*c                óæ   — | j                   }t        dd¬«      }t        |j                  j	                  |j
                  |«      «      }dj                  d„ |D «       «      }|j                  |«       y)zR
        `meta-*`: Insert all possible completions of the preceding text.
        FT)Útext_insertedÚcompletion_requestedÚ c              3  ó4   K  — | ]  }|j                   –— Œ y ­wr!   )Útext)Ú.0rA   s     r&   Ú	<genexpr>zGload_emacs_bindings.<locals>._insert_all_completions.<locals>.<genexpr>Û   s   è ø€ Ð!>±+¨Q !§&¥&±+ùs   ‚N)r"   r   ÚlistÚ	completerÚget_completionsrw   ÚjoinÚinsert_text)r0   r{   Úcomplete_eventÚcompletionsÚtext_to_inserts        r&   Ú_insert_all_completionsz4load_emacs_bindings.<locals>._insert_all_completionsÍ   sd   € ð
 ×#Ñ#ˆô '°UÐQUÔVˆÜØ�N‰N×*Ñ*¨4¯=©=¸.ÓIó
ˆð
 Ÿ™Ñ!>±+Ó!>Ó>ˆØ×Ñ˜Õ(r%   c                ó  — | j                   }|j                  j                  r0|xj                  |j                  j	                  d¬«      z  c_        y|xj                  |j                  j                  «       z  c_        y)zc
        Move cursor back and forth between the start and end of the current
        line.
        F©Úafter_whitespaceN)r"   rw   Úis_cursor_at_the_end_of_linerz   Úget_start_of_line_positionÚget_end_of_line_position©r0   Úbuffers     r&   Ú_toggle_start_endz.load_emacs_bindings.<locals>._toggle_start_endÞ   sg   € ð ×%Ñ%ˆà�?‰?×7Ò7Ø×"Ò" f§o¡o×&PÑ&PØ!&ð 'Qó 'ñ Ö"ð ×"Ò" f§o¡o×&NÑ&NÓ&PÑPÖ"r%   zc-@c                óv   — | j                   }|j                  r!|j                  t        j                  ¬«       yy)zN
        Start of the selection (if the current buffer is not empty).
        ©Úselection_typeN)r"   r•   Ústart_selectionr   Ú
CHARACTERS©r0   r{   s     r&   Ú_start_selectionz-load_emacs_bindings.<locals>._start_selectioní   s2   € ð ×#Ñ#ˆØ�9Š9Ø× Ñ ´×0HÑ0HÐ ÕIð r%   úc-gc                óH   — d| j                   _        d| j                   _        y)zK
        Control + G: Cancel completion menu and validation state.
        N)r"   Úcomplete_stateÚvalidation_errorr/   s    r&   Ú_cancelz$load_emacs_bindings.<locals>._cancel÷   s    € ð
 /3ˆ×ÑÔ+Ø04ˆ×ÑÕ-r%   c                ó8   — | j                   j                  «        y)ú#
        Cancel selection.
        N)r"   Úexit_selectionr/   s    r&   Ú_cancel_selectionz.load_emacs_bindings.<locals>._cancel_selectionÿ   s   € ð
 	×Ñ×+Ñ+Õ-r%   zc-wÚkc                ó‚   — | j                   j                  «       }| j                  j                  j	                  |«       y)z$
        Cut selected text.
        N)r"   Úcut_selectionrr   Ú	clipboardÚset_data©r0   r�   s     r&   Ú_cutz!load_emacs_bindings.<locals>._cut  s0   € ð ×#Ñ#×1Ñ1Ó3ˆØ�	‰	×Ñ×$Ñ$ TÕ*r%   Úwc                ó‚   — | j                   j                  «       }| j                  j                  j	                  |«       y)z%
        Copy selected text.
        N)r"   Úcopy_selectionrr   r½   r¾   r¿   s     r&   Ú_copyz"load_emacs_bindings.<locals>._copy  s0   € ð
 ×#Ñ#×2Ñ2Ó4ˆØ�	‰	×Ñ×$Ñ$ TÕ*r%   Úleftc                ó–   — | j                   }|xj                  |j                  j                  | j                  ¬«      xs dz  c_        y)z3
        Cursor to start of previous word.
        r_   r   N)r"   rz   rw   Úfind_previous_word_beginningr*   r§   s     r&   Ú_start_of_wordz+load_emacs_bindings.<locals>._start_of_word  s>   € ð
 ×%Ñ%ˆØ×ÒØ�O‰O×8Ñ8¸u¿y¹yÐ8ÓIÒNÈQñ	
Ör%   Úrightc                óÆ   — | j                   }|xj                  |j                  j                  | j                  ¬«      xs |j                  j                  «       z  c_        y)z/
        Cursor to start of next word.
        r_   N)r"   rz   rw   Úfind_next_word_beginningr*   Úget_end_of_document_positionr§   s     r&   Ú_start_next_wordz-load_emacs_bindings.<locals>._start_next_word!  sN   € ð
 ×%Ñ%ˆØ×ÒØ�O‰O×4Ñ4¸5¿9¹9Ð4ÓEò >Ø�‰×;Ñ;Ó=ñ	
Ör%   Ú/c                óz   — | j                   }|j                  r|j                  «        y|j                  d¬«       y)z 
        M-/: Complete.
        T)Úselect_firstN)r"   r³   Úcomplete_nextÚstart_completion)r0   r@   s     r&   Ú	_completez&load_emacs_bindings.<locals>._complete,  s3   € ð
 × Ñ ˆØ×ÒØ�O‰OÕà×Ñ¨DÐÕ1r%   úc-cc                ód  — | j                   }|xj                  |j                  j                  d¬«      z  c_        |j                  j	                  «       \  }}|j                  j                  |«      \  }}|j                  j                  |«      \  }}t        |||dz   | j                  ¬«       y)z'
        Indent selected text.
        Tr¢   r   r_   N)r"   rz   rw   r¥   Úselection_rangeÚtranslate_index_to_positionr   r*   ©r0   r¨   Úfrom_ÚtorW   s        r&   Ú_indentz$load_emacs_bindings.<locals>._indent7  s˜   € ð
 ×%Ñ%ˆà×Ò &§/¡/×"LÑ"LØ!ð #Mó #
ñ 	
Õð —O‘O×3Ñ3Ó5‰	ˆˆrØ—?‘?×>Ñ>¸uÓE‰ˆˆqØ—‘×;Ñ;¸BÓ?‰ˆˆAäˆv�u˜b 1™f¨E¯I©IÖ6r%   c                ó  — | j                   }|j                  j                  «       \  }}|j                  j                  |«      \  }}|j                  j                  |«      \  }}t	        |||dz   | j
                  ¬«       y)z)
        Unindent selected text.
        r   r_   N)r"   rw   rÖ   r×   r   r*   rØ   s        r&   Ú	_unindentz&load_emacs_bindings.<locals>._unindentH  sk   € ð
 ×%Ñ%ˆà—O‘O×3Ñ3Ó5‰	ˆˆrØ—?‘?×>Ñ>¸uÓE‰ˆˆqØ—‘×;Ñ;¸BÓ?‰ˆˆAä�˜  Q¡¨e¯i©iÖ8r%   rf   )rA   Ústrrh   ri   )r{   r   r|   rÞ   r`   Úintrh   ri   )r   Úaddr
   r   r   r   r+   r#   r   r   ÚAnyr   r   )Úkey_bindingsÚinsert_moder1   r]   rb   rk   rA   rp   rs   rƒ   r…   rˆ   r‹   rŽ   r    r©   r°   rµ   r¹   rÀ   rÄ   rÈ   rÍ   rÓ   rÛ   rÝ   r~   rj   s                             @@r&   r   r   .   s  ù€ ô “=€LØ×Ñ€Fä#€KáˆHÓò	ó ð	ð �Fˆ5ƒM”+Ð1Ó2Ô3Ø�Fˆ5ƒM”+˜oÓ.Ô/Ø*�Fˆ:˜kÔ*¬;°{Ó+CÔDØ�Fˆ5ƒM”+˜mÓ,Ô-Ø�Fˆ5ƒM”+˜nÓ-Ô.Ø�Fˆ8Ó”[ Ó1Ô2Ø�Fˆ9Ó”k .Ó1Ô2Ø/�Fˆ5�#�s ;Ô/´¸FÓ0CÔDØ%�Fˆ5˜Ô%¤k°&Ó&9Ô:Ø�Fˆ8�SÓœ+ oÓ6Ô7Ø-�Fˆ8�S Ô-¬kÐ:KÓ.LÔMØ-�Fˆ8�S Ô-¬k¸+Ó.FÔGØ�Fˆ8�SÓœ+ nÓ5Ô6Ø-�Fˆ8�S Ô-¬k¸/Ó.JÔKØ-�Fˆ8�S Ô-¬kÐ:JÓ.KÔLØ-�Fˆ8�S Ô-¬k¸*Ó.EÔFØ5�Fˆ8�[¨Ô5´kÐBVÓ6WÔXØ.�Fˆ8�T +Ô.¬{Ð;TÓ/UÔVà�Fˆ8Ó”[Ð!6Ó7Ô8Ø�Fˆ7ƒO”K Ó0Ô1àD�Fˆ5™¸ÔDÜ�FÓôð L�Fˆ5�%¡o¸{ÔKÜ�FÓôð 1�Fˆ8�S¤- Ô0´Ð=SÓ1TÔUØ0�Fˆ8�S¤- Ô0´Ð=MÓ1NÔOà-�Fˆ8�S Ô-¬k¸/Ó.JÔKØ-�Fˆ8�S Ô-¬k¸/Ó.JÔKØ/�Fˆ8�U ;Ô/´¸NÓ0KÔLØ-�Fˆ8�S Ô-¬kÐ:JÓ.KÔLØ�Fˆ5ƒM”+Ð4Ó5Ô6ð
 )�Fˆ5œ-˜Ô(¬°_Ó)EÔFà�Fˆ5�#Ó”{Ð#4Ó5Ô6Ø�Fˆ5�#Ó”{ ?Ó3Ô4Ø�Fˆ5�#Ó”{Ð#8Ó9Ô:áˆEƒ]ò)ó ð)ñ ˆEƒ]ò6ó ð6õ	)ó ˆÙ�Q�ð ñ ˆH�c¤7 (Ô+ò+ó ,ð+ñ
 ˆCœÔò*ó  ð*ð B�Fˆ8�W [´=Ñ%@ÔAÜ�MÓ"ôð
 H�Fˆ7˜;¬Ñ6¼,¸ÑFÔGÜ�MÓ"ôó	*ñ ˆE”4—8‘8ÓôFó ðFñ
 ˆH�eœTŸX™XÓ&ôGó 'ðGñ
 ˆH�cÓòó ðñ ˆH�cÓò#ó ð#ñ ˆH�c +Ô.òó /ðñ ˆH�c +Ô.ò)ó /ð)ñ  ˆE�5ÓòQó ðQñ ˆEƒ]òJó ðJñ ˆEœ=˜.Ô)ò5ó *ð5ñ ˆEœ-Ô(ò.ó )ð.ñ ˆEœ-Ô(ÙˆE�3˜¤MÔ2ò+ó 3ó )ð+ñ ˆH�c¤-Ô0ò+ó 1ð+ñ ˆH�fÓò
ó ð
ñ ˆH�gÓò
ó ð
ñ ˆH�c +Ô.ò2ó /ð2ñ ˆE�3œ}Ô-ò7ó .ð7ñ  ˆE�3œ}Ô-ò
9ó .ð
9ô " ,´
Ó;Ð;r%   c                 ó¾  — t        «       } | j                  }ddlm}   |d«      |j                  «         |d«      |j
                  «         |d«      |j                  «         |d«      |j                  «         |d«      |j                  «         |d«      |j                  «         |d«      |j                  «         |d«      |j                  «         |d	«      |j                  «         |d
d¬«      |j                  «         |dt        t         z  ¬«      |j                  «         |dt        t         z  ¬«      |j
                  «         |dt        t        z  ¬«      |j
                  «         |dt        t        z  ¬«      |j                  «        |dt        ¬«      dd„«       } |dt        ¬«      dd„«       }t        | t        «      S )Nr   )Úsearchzc-rzc-srÔ   r±   ÚupÚdownrt   r-   T)ÚeagerÚ?r4   rÎ   Únc                ó|   — | j                   j                  | j                  j                  d| j                  ¬«       y)zJump to next match.F©Úinclude_current_positionr`   N©r"   Úapply_searchrr   Úcurrent_search_stater*   r/   s    r&   Ú
_jump_nextz.load_emacs_search_bindings.<locals>._jump_next…  s4   € ð 	×Ñ×)Ñ)Ø�I‰I×*Ñ*Ø%*Ø—)‘)ð 	*õ 	
r%   ÚNc                ó~   — | j                   j                  | j                  j                   d| j                  ¬«       y)zJump to previous match.Frì   Nrî   r/   s    r&   Ú
_jump_prevz.load_emacs_search_bindings.<locals>._jump_prevŽ  s7   € ð 	×Ñ×)Ñ)Ø�Y‰Y×+Ñ+Ð+Ø%*Ø—)‘)ð 	*õ 	
r%   rf   )r   rà   rn   rå   Ú start_reverse_incremental_searchÚ start_forward_incremental_searchÚabort_searchÚreverse_incremental_searchÚforward_incremental_searchÚaccept_searchr   r   r   r   )râ   rj   rå   rñ   rô   s        r&   r   r   X  s½  € Ü“=€LØ×Ñ€FÝð �Fˆ5ƒM�&×9Ñ9Ô:Ø�Fˆ5ƒM�&×9Ñ9Ô:à�Fˆ5ƒM�&×%Ñ%Ô&Ø�Fˆ5ƒM�&×%Ñ%Ô&Ø�Fˆ5ƒM�&×3Ñ3Ô4Ø�Fˆ5ƒM�&×3Ñ3Ô4Ø�Fˆ4ƒL�×2Ñ2Ô3Ø�Fˆ6ƒN�6×4Ñ4Ô5Ø�Fˆ7ƒO�F×(Ñ(Ô)ð !�Fˆ8˜4Ô  ×!5Ñ!5Ô6ð E�Fˆ3”|Ô'CÐ&CÑCÔDØ×/Ñ/ôð E�Fˆ3”|Ô'CÐ&CÑCÔDØ×/Ñ/ôð D�Fˆ3”|Ô&BÑBÔCØ×/Ñ/ôð D�Fˆ3”|Ô&BÑBÔCØ×/Ñ/ôñ ˆCœÔ%ò
ó &ð
ñ ˆCœÔ%ò
ó &ð
ô " ,´
Ó;Ð;r%   c                 óZ  ‡	— t        «       } | j                  }d!d„Š	 |dt         ¬«       |dt         ¬«       |dt         ¬«       |dt         ¬«       |dt         ¬«       |dt         ¬«       |d	t         ¬«       |d
t         ¬«       |dt         ¬«       |dt         ¬«      d!ˆ	fd„«       «       «       «       «       «       «       «       «       «       } |dt        ¬«       |dt        ¬«       |dt        ¬«       |dt        ¬«       |dt        ¬«       |dt        ¬«       |d	t        ¬«       |d
t        ¬«       |dt        ¬«       |dt        ¬«      d!ˆ	fd„«       «       «       «       «       «       «       «       «       «       } |t        j
                  t        ¬«      d!d„«       } |dt        t        z  ¬«      d!d„«       } |dt        ¬«      d!d„«       } |dt        ¬«      d!d„«       } |dt        ¬«       |dt        ¬«       |dt        ¬«       |dt        ¬«       |dt        ¬«       |dt        ¬«       |dt        ¬«       |dt        ¬«       |dt        ¬«       |dt        ¬«      d!d „«       «       «       «       «       «       «       «       «       «       }t        | t        «      S )"z?
    Bindings to select text with shift + cursor movements
    c                ó¢  — | j                   d   j                  }|t        j                  k(  r'| j                  j                  | j                  ¬«       y|t        j                  k(  r'| j                  j                  | j                  ¬«       yt        j                  dt        j                  dt        j                  dt        j                  dt        j                  dt        j                  d	t        j                  d
t        j                   di}	 t#        ||   «      }t%        |t&        «      r|j)                  | «       yy# t*        $ r Y yw xY w)z¦
        Used for the shift selection mode. When called with
        a shift + movement key press event, moves the cursor
        as if shift is not pressed.
        r   r_   Nr3   r7   r2   r6   r9   r;   rI   rK   )Úkey_sequenceÚkeyr   ÚShiftUpr"   ra   r*   Ú	ShiftDownr\   Ú	ShiftLeftÚ
ShiftRightÚ	ShiftHomeÚShiftEndÚControlShiftLeftÚControlShiftRightÚControlShiftHomeÚControlShiftEndr   Ú
isinstancer   ÚcallÚKeyError)r0   rþ   Úkey_to_commandÚbindings       r&   Úunshift_movez9load_emacs_shift_selection_bindings.<locals>.unshift_move¢  s  € ð × Ñ  Ñ#×'Ñ'ˆà”$—,‘,ÒØ× Ñ ×(Ñ(¨u¯y©yÐ(Ô9ØØ”$—.‘.Ò Ø× Ñ ×*Ñ*°·±Ð*Ô;Øô �N‰N˜OÜ�O‰O˜^Ü�N‰NÐ/Ü�M‰M˜=Ü×!Ñ! ?Ü×"Ñ" NÜ×!Ñ!Ð#8Ü× Ñ  /ð	1
ˆð	$ä! .°Ñ"5Ó6ˆGô ˜'¤7Ô+à—‘˜UÕ#ð ,øô ò 	Ùð	ús   ÄE Å	EÅEzs-leftr4   zs-rightzs-upzs-downzs-homezs-endzc-s-leftz	c-s-rightzc-s-homezc-s-endc                ó,  •— | j                   }|j                  r{|j                  t        j                  ¬«       |j
                  �|j
                  j                  «        |j                  } ‰| «       |j                  |k(  r|j                  «        yyy)z8
        Start selection with shift + movement.
        r«   N)	r"   r•   r­   r   r®   Úselection_stateÚenter_shift_moderz   r¸   )r0   r{   Úoriginal_positionr  s      €r&   r°   z=load_emacs_shift_selection_bindings.<locals>._start_selectionÇ  s‹   ø€ ð ×#Ñ#ˆØ�9Š9Ø× Ñ ´×0HÑ0HÐ ÔIà×#Ñ#Ð/ð ×$Ñ$×5Ñ5Ô7ð !%× 4Ñ 4ÐÙ˜ÔØ×#Ñ#Ð'8Ò8ð ×#Ñ#Õ%ð 9ð r%   c                ó°   •—  ‰| «       | j                   }|j                  �5|j                  |j                  j                  k(  r|j	                  «        yyy)z&
        Extend the selection
        N)r"   r  rz   Úoriginal_cursor_positionr¸   )r0   r{   r  s     €r&   Ú_extend_selectionz>load_emacs_shift_selection_bindings.<locals>._extend_selectionç  sU   ø€ ñ 	�UÔØ×#Ñ#ˆà×ÑÐ+Ø×#Ñ# t×';Ñ';×'TÑ'TÒTà×#Ñ#Õ%ð Uð ,r%   c                ól   — | j                   j                  «        t        d«      j                  | «       y)z4
        Replace selection by what is typed
        zself-insertN)r"   r¼   r   r
  r/   s    r&   Ú_replace_selectionz?load_emacs_shift_selection_bindings.<locals>._replace_selectionþ  s)   € ð
 	×Ñ×*Ñ*Ô,Ü�MÓ"×'Ñ'¨Õ.r%   rt   c                ó‚   — | j                   j                  «        | j                   j                  t        «        ¬«       y)z2
        A newline replaces the selection
        )Úcopy_marginN)r"   r¼   Únewliner   r/   s    r&   Ú_newlinez5load_emacs_shift_selection_bindings.<locals>._newline  s2   € ð
 	×Ñ×*Ñ*Ô,Ø×Ñ×$Ñ$´]³_Ð1DÐ$ÕEr%   rF   c                ó8   — | j                   j                  «        y)z#
        Delete selection.
        N)r"   r¼   r/   s    r&   Ú_deletez4load_emacs_shift_selection_bindings.<locals>._delete  s   € ð
 	×Ñ×*Ñ*Õ,r%   r?   c                óˆ   — | j                   }|j                  r|j                  «        t        d«      j	                  | «       y)zS
        In shift selection mode, yanking (pasting) replace the selection.
        r>   N)r"   r  r¼   r   r
  r¯   s     r&   Ú_yankz2load_emacs_shift_selection_bindings.<locals>._yank  s7   € ð
 ×#Ñ#ˆØ×ÒØ×ÑÔ Ü�FÓ× Ñ  Õ'r%   rÅ   rÉ   ræ   rç   ÚhomeÚendr8   r:   rH   rJ   c                ó�   — | j                   j                  «        | j                  d   }| j                  j	                  |d¬«       y)r·   r   T)ÚfirstN)r"   r¸   rý   r)   Úfeed)r0   Ú	key_presss     r&   rµ   z4load_emacs_shift_selection_bindings.<locals>._cancel   s?   € ð 	×Ñ×+Ñ+Ô-à×&Ñ& qÑ)ˆ	Ø×Ñ× Ñ  °$Ð Õ7r%   rf   )	r   rà   r   r   r   rá   r   r   r   )
râ   rj   r°   r  r  r  r  r  rµ   r  s
            @r&   r   r   š  s¶  ø€ ô
 “=€LØ×Ñ€Fó#$ñJ ˆHœm˜^Ô,ÙˆIœ}˜nÔ-ÙˆFœM˜>Ô*ÙˆHœm˜^Ô,ÙˆHœm˜^Ô,ÙˆGœ]˜NÔ+ÙˆJ¤˜~Ô.ÙˆK¤ Ô/ÙˆJ¤˜~Ô.ÙˆIœ}˜nÔ-ô&ó .ó /ó 0ó /ó ,ó -ó -ó +ó .ó -ð&ñ, ˆHÔ1Ô2ÙˆIÔ2Ô3ÙˆFÔ/Ô0ÙˆHÔ1Ô2ÙˆHÔ1Ô2ÙˆGÔ0Ô1ÙˆJÔ3Ô4ÙˆKÔ 4Ô5ÙˆJÔ3Ô4ÙˆIÔ2Ô3ô&ó 4ó 5ó 6ó 5ó 2ó 3ó 3ó 1ó 4ó 3ð&ñ ŒD�H‰HÔ1Ô2ò/ó 3ð/ñ ˆGÔ0´<Ñ?Ô@òFó AðFñ ˆKÔ 4Ô5ò-ó 6ð-ñ ˆEÔ.Ô/ò(ó 0ð(ñ ˆFÔ/Ô0ÙˆGÔ0Ô1ÙˆDÔ-Ô.ÙˆFÔ/Ô0ÙˆFÔ/Ô0ÙˆEÔ.Ô/ÙˆHÔ1Ô2ÙˆIÔ2Ô3ÙˆHÔ1Ô2ÙˆGÔ0Ô1ò8ó 2ó 3ó 4ó 3ó 0ó 1ó 1ó /ó 2ó 1ð8ô " ,´
Ó;Ð;r%   N)rh   Úbool)rh   r   )*Ú
__future__r   Ú"prompt_toolkit.application.currentr   Úprompt_toolkit.bufferr   r   r   Úprompt_toolkit.completionr   Úprompt_toolkit.filtersr	   r
   r   r   r   r   r   r   r   r   Ú'prompt_toolkit.key_binding.key_bindingsr   Ú(prompt_toolkit.key_binding.key_processorr   Úprompt_toolkit.keysr   Úprompt_toolkit.selectionr   râ   r   r   r   Únamed_commandsr   Ú__all__rg   r#   r+   r   r   r   r$   r%   r&   Ú<module>r2     sƒ   ðå "å 6ß :Ñ :Ý 3÷÷ ÷ õ <Ý BÝ $Ý 2ç OÑ OÝ 'ò€ð €ð ò2ó ð2ð ò.ó ð.óg<óT	?<ôDY<r%   