§
    Ètºf$  ã                   óÎ   — d Z ddlZddlZddlmZ ddlmZ da	d\  a
adZi dd“d	d
“dd“dd“dd“dd“dd“dd“dd“dd“dd“dd“dd “d!d"“d#d$“d%d&“Z G d'„ d(ej        ¦  «        ZdS ))zHModule to emulate a VT100 terminal in Tkinter.

Maintainer: Paul Swartz
é    Né   )Úansi)NN)ÚbÚrÚgÚyÚlÚmÚcÚwÚBÚRÚGÚYÚLÚMÚCÚWr   ú#000000r   z#c40000r   z#00c400r   z#c4c400r	   z#000080r
   z#c400c4r   z#00c4c4r   z#c4c4c4r   z#626262r   z#ff0000r   z#00ff00r   z#ffff00r   z#0000ffr   z#ff00ffr   z#00ffffr   z#ffffffc                   óV   — e Zd Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z	d„ Z
d	„ Zd
„ Zd„ Zd„ ZdS )Ú
VT100Framec                 ó¶  — t          j        dd¬¦  «        at          t	          t          j        t          j        t          j        z   ¦  «        ¦  «        a	t          t                               ¦   «         d         ¦  «        a|                     dd¦  «        | _        |                     dd¦  «        | _        |d	         | _        |d	= t          | j        z  x|d<   }t          | j        z  x|d<   }t#          j        j        | g|¢R i |¤Ž t#          j        d
||¬¦  «        | _        | j                             t"          j        t"          j        d¬¦  «         | j                             d| j        ¦  «         | j                             dd„ ¦  «         | j                             d| j        ¦  «         | j                             d| j        ¦  «         | j                             d| j        ¦  «         | j                             d| j        ¦  «         | j                             ¦   «          tA          j!        t@          j"        j#        t@          j"        j$        ¦  «        | _%        | j&        | j%        _&        | j'        | j%        _'        | j(        | j%        _(        d| _)        d| _*        | j         +                    ddt          dz
  t          dz
  dd¬¦  «        | _,        d S )NÚCourieré
   )ÚfamilyÚsizeÚ	linespaceÚwidthéP   Úheighté   Úcallbackr   )Úbgr   r    r   )ÚsideÚfillÚexpandz<Key>z<1>c                 ó   — dS ©NÚbreak© )Úxs    úW/var/www/surfInsights/venv3-11/lib/python3.11/site-packages/twisted/conch/ui/tkvt100.pyú<lambda>z%VT100Frame.__init__.<locals>.<lambda>N   s   € ¨'€ ó    z<Up>z<Down>z<Left>z<Right>r   Úgreen©r%   Úoutline)-ÚtkFontÚFontÚttyFontÚmaxÚmapÚmeasureÚstringÚascii_lettersÚdigitsÚ	fontWidthÚintÚmetricsÚ
fontHeightÚgetr   r    r"   ÚTkinterÚFrameÚ__init__ÚCanvasÚcanvasÚpackÚTOPÚBOTHÚbindÚ
keyPressedÚ	upPressedÚdownPressedÚleftPressedÚrightPressedÚfocusr   Ú
AnsiParserÚ	ColorTextÚWHITEÚBLACKÚ
ansiParserÚwriteStringÚparseCursorÚ
parseEraser+   r   Úcreate_rectangleÚcursor)ÚselfÚargsÚkwr   Úhs        r,   rB   zVT100Frame.__init__?   sV  € å”+ Y°RÐ8Ñ8Ô8ˆÝ��GœO­VÔ-AÅFÄMÑ-QÑRÔRÑSÔSˆ	Ý�ŸšÑ*Ô*¨;Ô7Ñ8Ô8ˆ
Ø—V’V˜G RÑ(Ô(ˆŒ
Ø—f’f˜X rÑ*Ô*ˆŒØ˜:œˆŒØˆzˆNÝ# d¤jÑ0Ð0ˆˆ7‰�aÝ%¨¬Ñ3Ð3ˆˆ8‰�qÝŒÔ˜tÐ1 dÐ1Ð1Ð1¨bÐ1Ð1Ð1Ý”n¨	¸À1ÐEÑEÔEˆŒØŒ×Ò�gœkµ´ÀQÐÑGÔGÐGØŒ×Ò˜ $¤/Ñ2Ô2Ð2ØŒ×Ò˜Ð 1Ð 1Ñ2Ô2Ð2ØŒ×Ò˜ ¤Ñ0Ô0Ð0ØŒ×Ò˜ 4Ô#3Ñ4Ô4Ð4ØŒ×Ò˜ 4Ô#3Ñ4Ô4Ð4ØŒ×Ò˜ DÔ$5Ñ6Ô6Ð6ØŒ×ÒÑÔÐåœ/­$¬.Ô*>ÅÄÔ@TÑUÔUˆŒØ&*Ô&6ˆŒÔ#Ø&*Ô&6ˆŒÔ#Ø%)¤_ˆŒÔ"ð ˆŒØˆŒØ”k×2Ò2Øˆq•)˜a‘-¥¨a¡°gÀwð 3ñ 
ô 
ˆŒˆˆr.   c                 óæ   — |t           z  dz   }|t          z  dz   }|t           z  dz   }|t          z  dz   }| j                             ||||¦  «        }	|	D ]}
| j                             |
¦  «         Œd S )Nr   é   )r;   r>   rD   Úfind_overlappingÚdelete)rY   ÚsxÚsyÚexÚeyÚcsxÚcsyÚcexÚceyÚitemsÚitems              r,   Ú_deletezVT100Frame._deleted   s‡   € Ø•9‰n˜qÑ ˆØ•:‰o Ñ!ˆØ•9‰n˜qÑ ˆØ•:‰o Ñ!ˆØ”×,Ò,¨S°#°s¸CÑ@Ô@ˆØð 	%ð 	%ˆDØŒK×Ò˜tÑ$Ô$Ð$Ð$ð	%ð 	%r.   c                 ó|  ‡ — ‰ j         ‰ j        k    r\d‰ _         ‰ xj        dz  c_        ‰ j        ‰ j        k    r5ˆ fd„‰ j                             ¦   «         D ¦   «          ‰ xj        dz  c_        ‰ j         t          z  dz   }‰ j        t          z  dz   }‰ j                             |||dz   |dz   ¦  «        }|rˆ fd„|D ¦   «          |r6‰ j         	                    |||t          z   dz
  |t          z   dz
  ||¬¦  «         ‰ j         
                    ||t          j        t          ||¬¦  «         ‰ xj         dz  c_         d S )Nr   r   c                 óT   •— g | ]$}‰j                              |d t           ¦  «        ‘Œ%S ©r   ©rD   Úmover>   ©Ú.0r+   rY   s     €r,   ú
<listcomp>z%VT100Frame._write.<locals>.<listcomp>r   s/   ø€ ÐUÐUÐU¸�”×!Ò! ! Q­¨Ñ4Ô4ÐUÐUÐUr.   é   c                 óD   •— g | ]}‰j                              |¦  «        ‘ŒS r*   )rD   r`   )rr   rj   rY   s     €r,   rs   z%VT100Frame._write.<locals>.<listcomp>x   s)   ø€ Ð8Ð8Ð8¨$ˆTŒ[×Ò Ñ%Ô%Ð8Ð8Ð8r.   r0   )ÚanchorÚfontÚtextr%   )r+   r   r   r    rD   Úfind_allr;   r>   r_   rW   Úcreate_textr@   ÚNWr4   )rY   ÚchÚfgr#   ÚcanvasXÚcanvasYri   s   `      r,   Ú_writezVT100Frame._writem   sh  ø€ ØŒ6�T”ZÒÐØˆDŒFØˆFŒF�a‰KˆFŒFØŒv˜œÒ$Ð$ØUÐUÐUÐU¸d¼k×>RÒ>RÑ>TÔ>TÐUÑUÔUÐUØ�”˜!‘�”Ø”&�9Ñ$ qÑ(ˆØ”&�:Ñ%¨Ñ)ˆØ”×,Ò,¨W°g¸wÈ¹{ÈGÐVWÉKÑXÔXˆØð 	9Ø8Ð8Ð8Ð8°%Ð8Ñ8Ô8Ð8Øð 	ØŒK×(Ò(ØØØ�)Ñ# aÑ'Ø�*Ñ$ qÑ(ØØð )ñ ô ð ð 	Œ×ÒØ�W¥W¤ZµgÀBÈRð 	 ñ 	
ô 	
ð 	
ð 	ˆŒ�!‰ˆŒˆˆr.   c                 ót  — | j                              |¦  «         | j                             | j        ¦  «         | j        t          z  dz   }| j        t          z  dz   }| j         	                    |||t          z   dz
  |t          z   dz
  dd¬¦  «        | _        | j         
                    | j        ¦  «         d S )Nr   r/   r0   )rS   ÚparseStringrD   r`   rX   r+   r;   r   r>   rW   Úlower)rY   Údatar~   r   s       r,   ÚwritezVT100Frame.write‡   s¶   € ØŒ×#Ò# DÑ)Ô)Ð)ØŒ×Ò˜4œ;Ñ'Ô'Ð'Ø”&�9Ñ$ qÑ(ˆØ”&�:Ñ%¨Ñ)ˆØ”k×2Ò2ØØØ•iÑ !Ñ#Ø•jÑ  1Ñ$ØØð 3ñ 
ô 
ˆŒð 	Œ×Ò˜$œ+Ñ&Ô&Ð&Ð&Ð&r.   c                 ó°  ‡ ‡‡— |j         sd S t          |j                 Š|j        dk    ot          |j                 Š|j        D �]}t          |¦  «        }|dk    r‰                      ¦   «          Œ-|dk    r‰ j        r‰ xj        dz  c_        ŒK|dk    rˆˆˆ fd„t          d¦  «        D ¦   «          Œo|dk    rg‰ j	        ‰ j
        dz
  k    rC‰                      dd‰ j        d¦  «         ˆ fd	„‰ j                             ¦   «         D ¦   «          ŒË‰ xj	        dz  c_	        ŒÜ|d
k    rd‰ _        Œêd|cxk    rdk     rn Œú‰                      |‰‰¦  «         �Œd S )Nr   é   é   r   é	   c                 ó>   •— g | ]}‰                      d ‰‰¦  «        ‘ŒS )ú )r€   )rr   Úindexr#   r}   rY   s     €€€r,   rs   z*VT100Frame.writeString.<locals>.<listcomp>£   s)   ø€ Ð@Ð@Ð@¨e�—’˜S " bÑ)Ô)Ð@Ð@Ð@r.   r   r   c                 óT   •— g | ]$}‰j                              |d t           ¦  «        ‘Œ%S rn   ro   rq   s     €r,   rs   z*VT100Frame.writeString.<locals>.<listcomp>§   s?   ø€ ð ð ð àð œ×(Ò(¨¨Aµ
¨{Ñ;Ô;ðð ð r.   é   é    é   )ÚdisplayÚcolorMapr}   r#   rx   ÚordÚbellr+   Úranger   r    rk   r   rD   ry   r€   )rY   Úir|   r   r#   r}   s   `   @@r,   rT   zVT100Frame.writeString–   s‘  øøø€ ØŒyð 	ØˆFÝ�a”dŒ^ˆØŒT�SŠ[Ð+�X a¤dœ^ˆØ”&ð 	(ñ 	(ˆBÝ�B‘”ˆAØ�AŠvˆvØ—	’	‘”��Ø�a’�Ø”6ð  Ø�F”F˜a‘K�F”FøØ�a’�Ø@Ð@Ð@Ð@Ð@Ð@µu¸Q±x´xÐ@Ñ@Ô@Ð@Ð@Ø�b’�Ø”6˜Tœ[¨1™_Ò,Ð,Ø—L’L  A t¤z°1Ñ5Ô5Ð5ðð ð ð à!%¤×!5Ò!5Ñ!7Ô!7ðñ ô ð ð ð
 �F”F˜a‘K�F”F�FØ�b’�Ø�”�Ø�q��’�˜3’����Ø—’˜B  BÑ'Ô'Ð'ùð+	(ð 	(r.   c                 ó  ‡ ‡— d|v r6|d         Š|d d…                               d¦  «        }ˆˆ fd„|D ¦   «          d S d}‰ j        ‰ j        }}t          |¦  «        dk    rt	          |d d…         ¦  «        }|d         dk    r\|dk    r$‰                      ||‰ j        ‰ j        ¦  «         d S ‰                      dd‰ j        ‰ j        ¦  «         d‰ _        d‰ _        d S |d         dk    rr|dk    r‰                      ||‰ j        |¦  «         d S |dk    r!‰                      d|||¦  «         d‰ _        d S ‰                      d|‰ j        |¦  «         d‰ _        d S |d         dk    r‰                      ||||z   |¦  «         d S d S )	Nú;éÿÿÿÿc                 ó@   •— g | ]}‰                      |‰z   ¦  «        ‘ŒS r*   )rV   )rr   r+   ÚendrY   s     €€r,   rs   z)VT100Frame.parseErase.<locals>.<listcomp>¶   s)   ø€ Ð5Ð5Ð5¨!ˆT�_Š_˜Q ™WÑ%Ô%Ð5Ð5Ð5r.   r   r   ÚJÚKÚP)Úsplitr+   r   Úlenr<   rk   r   r    )rY   ÚeraseÚpartsÚstartr+   r   r›   s   `     @r,   rV   zVT100Frame.parseErase²   s±  øø€ Ø�%ˆ<ˆ<Ø˜”)ˆCØ˜#˜2˜#”J×$Ò$ SÑ)Ô)ˆEØ5Ð5Ð5Ð5Ð5¨uÐ5Ñ5Ô5Ð5ØˆFØˆØŒv�t”vˆ1ˆÝˆu‰:Œ:˜Š>ˆ>Ý˜˜c˜r˜cœ
‘O”OˆEØ�Œ9˜ÒÐØ˜ŠzˆzØ—’˜Q  4¤:¨t¬{Ñ;Ô;Ð;Ð;Ð;à—’˜Q  4¤:¨t¬{Ñ;Ô;Ð;Ø�”Ø�”��Ø�2ŒY˜#ÒÐØ˜ŠzˆzØ—’˜Q  4¤:¨qÑ1Ô1Ð1Ð1Ð1Ø˜!’�Ø—’˜Q  1 aÑ(Ô(Ð(Ø�”��à—’˜Q  4¤:¨qÑ1Ô1Ð1Ø�”��Ø�2ŒY˜#ÒÐØ�LŠL˜˜A˜q 5™y¨!Ñ,Ô,Ð,Ð,Ð,ð Ðr.   c                 ó2  — d}t          |¦  «        dk    r#|d         dk    rt          |d d…         ¦  «        }|d         dk    r| xj        |z  c_        d S |d         dk    r| xj        |z  c_        d S |d         dk    r|dz
  | _        d S |d         dk    r|dz
  | _        d S |d         dk    rft          |¦  «        dk    r>t	          t          |d d…                              d¦  «        ¦  «        \  }}|dz  }|dz  }nd	\  }}|| _        || _        d S d S )
Nr   r™   ÚHr   ÚDÚdr   r˜   )r   r   )r    r<   r+   r   r6   rŸ   )rY   rX   r£   r   r+   s        r,   rU   zVT100Frame.parseCursorÏ   s9  € ð ˆÝˆv‰;Œ;˜Š?ˆ?˜v bœz¨SÒ0Ð0Ý˜˜s ˜sœÑ$Ô$ˆEØ�"Œ:˜ÒÐØˆFŒF�e‰OˆFŒFˆFˆFØ�BŒZ˜3ÒÐØˆFŒF�e‰OˆFŒFˆFˆFØ�BŒZ˜3ÒÐØ˜Q‘YˆDŒFˆFˆFØ�BŒZ˜3ÒÐØ˜Q‘YˆDŒFˆFˆFØ�BŒZ˜3ÒÐÝ�6‰{Œ{˜QŠˆÝ�3  s¨ s¤× 1Ò 1°#Ñ 6Ô 6Ñ7Ô7‘��1Ø�Q‘�Ø�Q‘��à‘��1ØˆDŒFØˆDŒFˆFˆFð Ðr.   c                 óV   — | j         r!|j        r|                       |j        ¦  «         dS r(   )r"   Úchar©rY   Úevents     r,   rI   zVT100Frame.keyPressedê   s.   € ØŒ=ð 	&˜UœZð 	&Ø�MŠM˜%œ*Ñ%Ô%Ð%Øˆwr.   c                 ó0   — |                       d¦  «         d S )NzOA©r"   rª   s     r,   rJ   zVT100Frame.upPressedï   ó   € Ø�Š�hÑÔÐÐÐr.   c                 ó0   — |                       d¦  «         d S )NzOBr­   rª   s     r,   rK   zVT100Frame.downPressedò   r®   r.   c                 ó0   — |                       d¦  «         d S )NzOCr­   rª   s     r,   rM   zVT100Frame.rightPressedõ   r®   r.   c                 ó0   — |                       d¦  «         d S )NzODr­   rª   s     r,   rL   zVT100Frame.leftPressedø   r®   r.   N)Ú__name__Ú
__module__Ú__qualname__rB   rk   r€   r…   rT   rV   rU   rI   rJ   rK   rM   rL   r*   r.   r,   r   r   >   sÉ   € € € € € ð#
ð #
ð #
ðJ%ð %ð %ðð ð ð4'ð 'ð 'ð(ð (ð (ð8-ð -ð -ð:ð ð ð6ð ð ð
 ð  ð  ð ð  ð  ð ð  ð  ð ð  ð  ð  ð  r.   r   )Ú__doc__r8   Útkinterr@   Útkinter.fontrw   r2   Ú r   r4   r;   r>   Ú	colorKeysr’   rA   r   r*   r.   r,   ú<module>rº      se  ððð ð
 €€€Ø Ð Ð Ð Ø Ð Ð Ð Ð Ð à Ð Ð Ð Ð Ð à
€ðÑ €	ˆ:ð
€	ð&Øˆðàˆðð ˆðð ˆð	ð
 ˆðð ˆðð ˆðð ˆðð ˆðð ˆðð ˆðð ˆðð ˆðð ˆðð ˆðð  ˆð!€ð({ ð { ð { ð { ð { �”ñ { ô { ð { ð { ð { r.   