ok

Mini Shell

Direktori : /opt/cloudlinux/venv/lib64/python3.11/site-packages/guppy/heapy/__pycache__/
Upload File :
Current File : //opt/cloudlinux/venv/lib64/python3.11/site-packages/guppy/heapy/__pycache__/Prof.cpython-311.pyc

�

�܋f�i���ddlTddlZddlZddlmZGd�de��ZdZd�Zd�Z	d	�Z
Gd
�de��ZGd�d
e��ZGd�de
��ZGd�de��ZGd�d��ZGd�d��ZGd�d��ZdZGd�d��ZGd�d��ZGd�d��ZGd�d ��ZGd!�d"��ZGd#�d$��ZGd%�d&��ZGd'�d(��ZGd)�d*��ZGd+�d(��ZGd,�d-��ZGd.�d/��ZGd0�d1��Z Gd2�d3��Z!Gd4�d5��Z"dS)6�)�*N)�property_nondatac��eZdZdZd�ZdS)�MyVar�c�B�t�|d|z��dS)N�%.2g)�	StringVar�set)�self�values  �c/builddir/build/BUILD/cloudlinux-venv-1.0.6/venv/lib64/python3.11/site-packages/guppy/heapy/Prof.pyrz	MyVar.sets ���
�
�d�F�U�N�+�+�+�+�+�N��__name__�
__module__�__qualname__�_defaultr�rrrrs(�������H�,�,�,�,�,rr)��K�M�G�Tc��t|��}d}|dkrd}|}d}|dkr|dz}|dz
}|dk�ttt|������t|z}|�dt|z��r=ttt|dz������t|dzz}|dkrd|z}|S)N�r���i�����000�-)�float�str�int�round�suffixes�endswith)r
�sign�i�ss    r�
sizestringr*s����%�L�L�E��D��q�y�y������	�A�
�%�-�-�
��
��	�Q����%�-�-�	�C��e�������x��{�*�A��z�z�%����#�$�$�6���E�%��*�%�%�&�&�'�'���1��
�5���r�z�z��!�G���Hrc��t|��}d|cxkrdkrnndt|��zSd|cxkrdkrnnd|zS|dkrdSd|zS)	N�
i'�%dg{�G�z�?r	g�����|�=�0z%.0e)�absr$)r
�as  r�
percentstringr1$sr���E�
�
�A�	�Q�����$�������e�E�l�l�"�"�	
������b��������~��	
�e����s���~�rc��|���rt|��S|dd����}d}tdd�D]}||krn
|dz}�t�t|dd���|zS)Nrrr)�isdigitr#�upperr%�
ValueError)r)�suf�mult�sus    r�
stringsizer90s����y�y�{�{���1�v�v�
�
�B�C�C�&�,�,�.�.�C��D��q�r�r�l����
��9�9��E���������q��"��v�;�;�t��rc��eZdZdd�ZdS)�MenuNc��|�|}g}t|�|��|�|��dz��D]C}t|�|d����}||jvr|�|���D|j�|jd||��|D]}|�	|���dS)z7Delete menu items between INDEX1 and INDEX2 (included).Nr�command�delete)
�range�indexr"�	entrycget�_tclCommands�append�tk�call�_w�
deletecommand)r�index1�index2�cmdsr(�cs      rr>zMenu.deleteBs����>��F����t�z�z�&�)�)�4�:�:�f�+=�+=�a�+?�@�@�	�	�A��D�N�N�1�i�0�0�1�1�A��D�%�%�%����A���������T�W�h���7�7�7��	"�	"�A����q�!�!�!�!�	"�	"r�N)rrrr>rrrr;r;>s(������"�"�"�"�"�"rr;c��eZdZdZd�ZdS)�SizeVarrc�h�||_t|��}t�||��dSrL)�_valuer*r
r)rr
r)s   rrzSizeVar.setYs0������u�����
�
�d�A�����rNrrrrrNrNVs(�������H�����rrNc��eZdZd�ZdS)�
ValueLabelc�:�d|d<tj|g|�Ri|��dS)Nr,�width)�Label�__init__)r�args�kwdss   rrVzValueLabel.__init__`s1����W�
�
��t�+�d�+�+�+�d�+�+�+�+�+rN�rrrrVrrrrRrR_s#������,�,�,�,�,rrRc�$�eZdZdd�Zdd�Zd�ZdS)	�ClickButton���c���tj||fi|��||_||_||_|�d|j��|�d|j��dS)N�
<Button-1>�<ButtonRelease-1>)�ButtonrV�_command�_firstdelay�
_thendelay�bind�
_event_button�_event_release)r�masterr=�
firstdelay�	thendelayrXs      rrVzClickButton.__init__hsg�����f�-�-��-�-�-���
�%���#����	�	�,�� 2�3�3�3��	�	�%�t�':�;�;�;�;�;rNc��|���|�|j}n|j}|�||j��|_dSrL)rbrcrd�afterrf�_after)r�event�delays   rrfzClickButton._event_buttonpsB���
�
�������$�E�E��O�E��j�j���(:�;�;����rc�>�|�|j��|`dSrL)�after_cancelrm�rrns  rrgzClickButton._event_releasexs!�����$�+�&�&�&��K�K�Kr)r\r]rL)rrrrVrfrgrrrr[r[esK������<�<�<�<�<�<�<�<�����rr[c�^�eZdZdd�Zd�Zd�Zee��Zd�Zd�Z	d
d�Z
d	�Zd
�Zd�Z
dS)�StatsNc�R�||_|j|_|j|_||_dSrL)�mod�os�hashlib�fn)rrvrys   rrVzStats.__init__~s&������&����{�������rc��d|_|`dSrL��stats�rs r�clear_cachezStats.clear_cache�s����
��J�J�Jrc�D�|�|j��|jSrL)�openryr|r}s r�	get_statszStats.get_stats�s���	�	�$�'�����z�rc��|jsdS|j�|j��}||jkrt	|��dfSt|j��5}|�|j��}|j�	|�
d����}|���}||jkrt	|��}n|�
|d���d}|���}|j�|�����|_ddd��n#1swxYwY|jj|_|�|�
d����|���|_|�
|��t	|j��|z
}||fS)N)rrr�utf-8r��reset)ryrw�stat�laststat�lenr��read�lastfilesizerx�md5�encode�digest�
lastdigest�loadstr�fstat�fileno�st_size�updater|)rr��fr"r�r��numoldstats�numnewstatss        r�collectz
Stats.collect�s����w�	��4��w�|�|�D�G�$�$���4�=� � ��t�9�9�a�<��
�$�'�]�]�	6�a��&�&��*�+�+�C��,�"�"�3�:�:�g�#6�#6�7�7�C��Z�Z�\�\�F����(�(�!�$�i�i������S���*�*�*����&�&�(�(�C� �G�M�M�!�(�(�*�*�5�5�D�M�	6�	6�	6�	6�	6�	6�	6�	6�	6�	6�	6����	6�	6�	6�	6�!�M�1����
�
�3�:�:�g�&�&�'�'�'��*�*�,�,������S�����$�*�o�o�k�1���K�'�'s�CD:�:D>�D>c��|sd|_g|_d|_||_dSt	|��5}|���}|j�|�d�����	��}|j
�|�����}ddd��n#1swxYwY|�
|d���||_||_||_|j|_dS)Nrr�rr�)�	len_statsr|�max_sizeryr�r�rxr�r�r�rwr�r�r�r�r�r�r�)rryr�r"r�r�s      rr�z
Stats.open�s���	��D�N��D�J��D�M��D�G��F�
�"�X�X�	1���&�&�(�(�C���)�)�#�*�*�W�*=�*=�>�>�E�E�G�G�J��w�}�}�Q�X�X�Z�Z�0�0�H�	1�	1�	1�	1�	1�	1�	1�	1�	1�	1�	1����	1�	1�	1�	1�	
���S���"�"�"����$��� ��
�$�,����s�BB<�<C�Crc���g}|�d��}~t|��}d}		|jj�|��}n#t
$rYn,wxYw|�|��|j|kr|j}�Y|rg|_d|_	t|j	|��|_	|j�|��t|j��|_
dS)N�
r)�split�iterrv�Use�load�
StopIterationrC�sizer|r��max�extendr�r�)rr"r�r|�lines�	linesiterr��sts        rr�z
Stats.loadstr�s������	�	�$�������K�K�	���	#�
��X�\�&�&�y�1�1���� �
�
�
���
�����L�L������w��!�!��7��	#��	��D�J��D�M��D�M�8�4�4��
��
���%� � � ��T�Z������s�A�
A�Ac��|j|SrLr{)r�idxs  r�__getitem__zStats.__getitem__�s���z�#��rc�r�	|jS#t$r#t|j��|_|jcYSwxYwrL)r��AttributeErrorr�r|r}s r�__len__z
Stats.__len__�sG��	"��>�!���	"�	"�	"� ���_�_�D�N��>�!�!�!�	"���s�	�*6�6c��|jSrL)r�r}s r�get_max_sizezStats.get_max_size�s
���}�rrL�r)rrrrVr~r�rr|r�r�r�r�r�r�rrrrtrt}s�����������������
��Y�'�'�E�(�(�(�>-�-�-�()�)�)�)�2���"�"�"�����rrtc�2�eZdZdZd	d�Zd�Zd�Zd�Zd�ZdS)
�
ProfileRow�rc��||_||_|rpt|dddt���}t	|dddt���|_|j�dd���|�|dt���t��|_	t	||j	dt�	��|_t��|_
t	||j
d
t�	��|_t��|_t	||jdt�	��|_t��|_t	||jd
t�	��|_t��|_t	||jt|jt*���|_|j�|dt.���|j�|dt.���|j�|d
t.���|j�|d
t.���|j�|dt���dS)N�blackr)rh�bgrT�borderwidth�relief�whiter��row�column�r�r��sticky�)rh�textvariablerT�anchor�)rhr�r�rT�justify���)rhr��Frame�GROOVErU�color�grid�NWrN�rsizevar�E�rsizer
�rpercentvar�rpercent�dsizevar�dsize�dpercentvar�dpercent�kindvar�	kindwidth�LEFT�kind�NE)rrhr��usecolor�colbgs     rrVzProfileRow.__init__�s���������	5���G�1�&'��8�8�8�E��e��%&�A�f�F�F�F�D�J��J�O�O��!�O�,�,�,��J�J�3�q��J�4�4�4��	�	��
����
�Q�q�J�J�J��
�$�;�;������(8��!�M�M�M��
��	�	��
����
�Q�q�J�J�J��
�$�;�;������(8��!�M�M�M��
� �{�{�����d�l�2� $���>�>�>��	�	
�
���C��"��5�5�5��
���s�1�R��8�8�8��
���C��"��5�5�5��
���s�1�R��8�8�8��	���3�q���4�4�4�4�4rc��|�|��|�|�|��|j�|��|�d}n)tt	t|������}|j�|��|j�|��tt	t|������}|j�|��|�	|��dS)Nr)
�	set_colorr�rr"r#r$r�r�r��set_kind)rr�r�r�r�r�r�s       r�set_color_size_percent_kindz&ProfileRow.set_color_size_percent_kinds������u�������N�N�5�!�!�!��
���%� � � ����H�H��3�u�X���/�/�0�0�H�����X�&�&�&��
���%� � � ��s�5��?�?�+�+�,�,������X�&�&�&��
�
�d�����rc�<�|j�|���dS)N)r�)r��	configure)rr�s  rr�zProfileRow.set_colors!���
�����&�&�&�&�&rc��||_t|��|jkr ddl}|�||j���}|j�|��dS)Nr�rT)�kindtextr�r��textwrap�fillr�r)rr�r�s   rr�zProfileRow.set_kind"sX����
��t�9�9�t�~�%�%��O�O�O��=�=��T�^�=�<�<�D����������rc�P�|�|jdddddd��dS)Nr�rz--)r�rhr}s r�clearzProfileRow.clear*s-���(�(���T�):�A�q�!�Q��M�M�M�M�MrN�r)	rrrr�rVr�r�r�r�rrrr�r��so�������I�5�5�5�5�B���"'�'�'����N�N�N�N�Nrr�c���eZdZgd�Zeddkr*e�eddz��eddk�*	dd�Zd�Zd	�Zd
�Zd�Z	d�Z
d
�Zd�Zd�Z
d�ZdS)�AxisControl)rr�r�rg��mB���r,Nc		����d}	|�_|�_|�_|�_t	|dt
���x�_}
t���_�j�	|��t�jd�jdd���}|�d�j��t|
|d	t�
��}t|��}
|
|d<|rit!���_�j�	d��|
�d
�j|���t'|
d
�j|t(���}nd�_�rpt!���_�j�	|��|
�d�j��fd����t'|
d�j��fd�t(���}t-|
d���}|dkr|	rd}d}nd}d}t	|
��}t/|d||d�fd����}t/|d||d�fd����}|�dd���|�dd���d}|	r�|dkr�|�ddd� ��|�ddt�!��|�dd���|�ddt�!��|�dddtdd�"��dS|	rx|d#krr|�dd���|�ddtdd�$��|�ddt�!��|�ddt�!��dS|�|dt2tzdddd�%��|�|dt�!��|�|dd�&��|dz
}�r|�|dt�!��|�|ddd�'��|r	|�|d���dSdS)(Nrr��r�r�r�)�fixed�14z#fdd)rhrT�textvar�fontr�z<KeyPress-Return>�raised)�textr�r��menuT�Auto��label�variabler=�r�r�r=r��Gridc�H����j�����SrL��gridvar�get��gridcommandrs��r�<lambda>z&AxisControl.__init__.<locals>.<lambda>ss�����D�L�,<�,<�,>�,>� ?� ?�rc�H����j�����SrLr�rs��rrz&AxisControl.__init__.<locals>.<lambda>ys$���[�[�)-��)9�)9�);�);�6=�6=�r�Range�r��Yr�r��+)r��c�.����d��S�Nr��range_buttonr}s�rrz&AxisControl.__init__.<locals>.<lambda>�s���d�.?�.?��.B�.B�r)r��pady�padxr�r=r c�.����d��S�Nrrr}s�rrz&AxisControl.__init__.<locals>.<lambda>�s����0A�0A�"�0E�0E�rr�r)r��rowspanr�r��r�r��
columnspanr�rr
�X�r�r�r�rr
)r�r�r��ipadx�ipadyrr
)r�r�r�r�r�rr
)�name�unitr?�rangecommandr�r��framerN�rangevarr�Entryre�event_range_enter�
Menubutton�Wr;�
BooleanVar�autovar�add_checkbutton�Checkbutton�RAISEDr�rUr[r��N)rrhrr?r�rrr�autocommand�smallr�rangeval�	namelabel�namemenu�
autobutton�
gridbutton�
rangelabelrr
�ud�rangeup�	rangedownr�s`      `               rrVzAxisControl.__init__3s���������	���	���
�(���"�6�q��H�H�H�H��
�U��	�	��
��
���%� � � ���
� �!%��.�"�
�
�
��	�
�
�)�4�+A�B�B�B��u�4���K�K�K�	��	�?�?��$�	�&���	 �%�<�<�D�L��L���T�"�"�"��$�$����#�	
%�
�
�
�%�U�*0�.2�l�-8�,2�	'�'�'�J�J� �D�L��	'�%�<�<�D�L��L���T�"�"�"��$�$����?�?�?�?�?�
%�
�
�
�%�U�*0�.2�l�.=�.=�.=�.=�.=�,2�'�'�'�J��5�w�/�/�/�
��3�;�;�5�;��D��D�D��D��D�
�5�\�\���b�s�#'�d�#/�&B�&B�&B�&B�D�D�D��
 ���%)��%1�(E�(E�(E�(E�G�G�G�	�
	���1�Q��'�'�'�����1��%�%�%����	3�T�S�[�[��N�N�q�!�A�N�6�6�6��L�L�Q�q��L�3�3�3��O�O��!�O�,�,�,��N�N�q��1�N�5�5�5��M�M�a��a�!"���
�
4�
4�
4�
4�
4��	3�t�s�{�{��N�N�q��N�+�+�+��M�M�a��!�!�!�M�D�D�D��N�N�q��1�N�5�5�5��L�L�Q�q��L�3�3�3�3�3�
�N�N�s�1�Q�q�S�!"�!�!�!�
�
=�
=�
=��O�O��A�a�O�8�8�8��G�G��A�A�G�.�.�.��1�H�C��
=����C��!��<�<�<��M�M�c�!�!�!�M�<�<�<��
3�����C���2�2�2�2�2�
3�
3rc��dSrLrr}s r�	cmd_rangezAxisControl.cmd_range�����rc���|j���}	t|��}||jvr!d|cxkr|jdks	nt�|jr|j�d��|�|��dS#t$rQ|j�	��|�
d��|j�|j��YdSwxYw)NrrFz�Invalid range entry.
It should be a positive integer with an optional multiplier:
K, M, G, or T
(1000, 1e6, 1e9, 1e12)
Maximum range is 1T.)rr�r9�scale_tabler5r#r�setranger�bell�errorboxr?)rrnr"�rngs    rrzAxisControl.event_range_enter�s���m���!�!��	��S�/�/�C��$�*�*�*��C�7�7�7�7�4�#3�B�#7�7�7�7�7�$�$��|�
(��� � ��'�'�'��M�M�#��������		*�		*�		*��J�O�O�����M�M��
�
�
�
�M���d�j�)�)�)�)�)�)�		*���s�9B�AC'�&C'c��dSrLrr}s r�auto_commandzAxisControl.auto_command�r5rc�R�tj�|j|���dS)N�rh�message)�tkinter�
messagebox�	showerrorr)r�msgs  rr:zAxisControl.errorbox�s&����$�$�D�J��$�D�D�D�D�Drc�Z�|�|��}|�|��dSrL)�scale_by_tabler8�rr?s  r�fitzAxisControl.fit�s-���#�#�E�*�*���
�
�e�����rc�r�|jr|j�d��|�|��dS)NF)r#r�range_change)r�ds  rrzAxisControl.range_button�s<���<�	$��L���U�#�#�#����!�����rc�L�|j}|�|��}||kr|dkr|dz}|j�|��}||z
}|t	|j��krt	|j��dz
}|dkrd}|�|j|��dS�Nrr)r?rFr7r@r�r8)rrKr?�sranger(s     rrJzAxisControl.range_change�s����
���$�$�U�+�+���E�>�>��1�u�u��Q�����"�"�6�*�*��	�Q�����D�$�%�%�%�%��D�$�%�%��)�A��q�5�5��A��
�
�d�&�q�)�*�*�*�*�*rc��||jkr8||_|j�|��|�|��dSdSrL)r?rrrrGs  rr8zAxisControl.setrange�sN���D�J����D�J��M���e�$�$�$����e�$�$�$�$�$��rc�D�|jD]}||kr|cS�
|jdSr)r7)rr)�tss   rrFzAxisControl.scale_by_table�s9���"�	�	�B��Q�w�w��	�	�	�����#�#rrL)rrrr7rCrVr4rr=r:rHrrJr8rFrrrr�r�.s�������)�)�K�
�b�/�D�
 �
 ����;�r�?�R�/�0�0�0��b�/�D�
 �
 �"�3�3�3�3�B
�
�
����,
�
�
�E�E�E�������

+�
+�
+�%�%�%�$�$�$�$�$rr�rc��eZdZdd�Zd�Zd�Zd�Zd�Zd�Zd�Z	d	�Z
d
�Zd�Zd�Z
d
�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�ZdS)�MarkerNc��||_||_||_||_d|_|j|_|j|_d|_d|_d|_	d|_
d|_d|_d|_
|���dS�Nr)rK�tagr�xmarker�butdown�ocursor�cursor�
poscommand�intpos�moving�selected�entered�butdownselected�	motion_id�create)rrKrVr�posr[s      rrVzMarker.__init__�sz����������	��������y����l��������������
���� ���������
�
�
�
�
rc���|j}|jj�|||��tr|j�||��dS|jj�|||��dSrL)rVrK�drawingarea�tag_bind�WM�xlabelre�xmarks)r�sequence�functionrVs    rrezMarker.bindsn���h�����#�#�C��8�<�<�<�
�	<��K���X�x�0�0�0�0�0��F�M�"�"�3��(�;�;�;�;�;rc	���|jj�|j|d|t	|jj����|jj�|j|d��dS)Nrr,)rKre�coordsrVr#�botyri�r�canxs  rrmz
Marker.coordssb�����!�!�$�(�"&��"&��T�V�[�)9�)9�(9�	;�	;�	;�	
��
���T�X�t�R�0�0�0�0�0rc	��|j}|j}d}|jj�|d|d|jjz
dd|f���trOt|jj|ddt���x}|_
|jj�|d||f���n$|jj�|d||f�	��|�
d
|j��|�
d|j��|�
d|j��|�
d
|j��|jj�
d|jd���|jj�
d
|jd���dS)Nr��gray12r�)�stipplerT�tagsr�)r�rr
r�)�windowru)r�rur_r`z<Enter>z<Leave>r��add)rVrrKre�create_linernrgrUrir&rh�
create_window�create_textre�event_button_1�event_button_1_release�event_enter�event_leave�event_enter_movearea�event_button_1_movearea)rrVr�rcr�s     rrbz
Marker.creates����h���y�������&�&�s�A�s�B�t�v�{�N�H�-.�c�V�	'�	=�	=�	=�
�	F�"'���
�D�q�q��#I�#I�#I�
I�E�D�K��F�M�'�'��Q�u�C�6�'�J�J�J�J��F�M�%�%�c�1�4�s�f�%�E�E�E��	�	�,�� 3�4�4�4��	�	�%�t�'B�C�C�C��	�	�)�T�-�.�.�.��	�	�)�T�-�.�.�.������	�4�+D�#��N�N�N�������$�6�C�	 �	A�	A�	A�	A�	Arc���d|_|jr$d|_|jr|�|��nd|_d|_|�|��|�|��dS�Nrr)rXr^r`r]�event_stop_move�	has_moved�event_selected�event_start_moverrs  rr|zMarker.event_button_14sw������=�	%�#$�D� ��{�
,��$�$�U�+�+�+��#$�D� �������E�"�"�"����e�$�$�$�$�$rc�B�|js|�|��dSdSrL)r_�event_deselectedrrs  rr�zMarker.event_button_1_moveareaAs0���|�	)��!�!�%�(�(�(�(�(�	)�	)rc�N�d|_|j|jkrx|jrU|jrM|j|jcxkr|jks1n|�d��|�	|j
��n|�	|j
��dS|�|��dSrU)rXr�r`r^r]�disloy�y_root�dishiyr��	setcursorrYr�rrs  rr}zMarker.event_button_1_releaseEs�������>�T�1�1�1��}�
-��;�1���u�|�(Q�(Q�(Q�(Q�d�k�(Q�(Q�(Q�(Q��(�(��.�.�.��N�N�4�<�0�0�0�����t�|�,�,�,��F����e�$�$�$�$�$rc��|jr4d|_t|jd<|jr|�|��dSdSdS)Nrr�)r^r&rhr]r�rrs  rr�zMarker.event_deselectedQsW���=�	,��D�M�$*�D�K��!��{�
,��$�$�U�+�+�+�+�+�		,�	,�
,�
,rc��d|_|js5|jr|�|��dS|�d��dSdS)Nr�hand2)r_r]r^r�r�rrs  rr~zMarker.event_enterXsY������{�	(��}�
(��%�%�e�,�,�,�,�,����w�'�'�'�'�'�		(�	(rc�T�|jr|js|�|��dSdSdSrL)r^r]r�rrs  rr�zMarker.event_enter_movearea`sC���=�	)���	)��!�!�%�(�(�(�(�(�	)�	)�	)�	)rc��d|_|js|�|j��dS|j|jcxkr|jksndSdSrU)r_r]r�rY�fraloyr��frahiyrrs  rrzMarker.event_leaveds_������{�	��N�N�4�<�(�(�(�(�(��+���;�;�;�;���;�;�;�;��D�<�;rc��d|_|j|jcxko
|jknc}||jkr||_|sX||_|�d��|jr4|�d��|j	�
|j��n||_|�
|��dS|r+|�|��|���dSdS)Nr�circle)r�r�r�r��inside�	out_eventr�rXr�rK�bind_motion�event_motion_downout�in_eventr��moved�setxvars�rrnr�s   r�event_motionzMarker.event_motionks�������+���;�;�;�;���;�;�;�;���T�[� � � �D�K��

�!&����$�$�T�*�*�*��<�B��N�N�8�,�,�,��F�&�&�t�'@�A�A�A�� %��
��%�%�e�,�,�,����	��J�J�u�����M�M�O�O�O�O�O�	�	rc��|j|jcxko
|jknc}|r6|j�|j��|�|��dSdSrL)r�r�r�rK�
unbind_motionr�r�r�s   rr�zMarker.event_motion_downout�sp���+���;�;�;�;���;�;�;�;���	-��F� � ��!:�;�;�;��%�%�e�,�,�,�,�,�	-�	-rc�z�|jjD]}|�|���d|_t|jd<dS)Nrr�)rK�marksr�r^�SUNKENrh)rrn�ms   rr�zMarker.event_selected�sE�����	&�	&�A�
���u�%�%�%�%���
� &���H���rc��d|_|jj���|_|j|jj���z|_|jj���|_|j|jj�	��z|_
|jj���|_|j|jj���z|_
|jj���|_|j|jj�	��z|_||_||_|j|_|jj���d|_d|_d|_|���|j�|j��|_|�|��dSr�)r]rKr�winfo_rootx�fralox�winfo_width�frahix�winfo_rootyr��winfo_heightr�re�dislox�dishixr�r��
down_event�
prev_eventrW�down_xmarker�xview�down_xvfracr��delta�liftr�r�rar�rrs  rr�zMarker.event_start_move�sd������f�l�.�.�0�0����k�D�F�L�$<�$<�$>�$>�>����f�l�.�.�0�0����k�D�F�L�$=�$=�$?�$?�?����f�(�4�4�6�6����k�D�F�$6�$B�$B�$D�$D�D����f�(�4�4�6�6����k�D�F�$6�$C�$C�$E�$E�E��������� �L����6�-�3�3�5�5�a�8��������
��	�	������+�+�D�,=�>�>����
�
�5�����rc�8�|jsJ�d|_|j�|j��|�)|�|��|���|jr|js|�d��dS|�|j	��dS)Nrr�)
r]rKr�rar�r�r_r^r�rYrrs  rr�zMarker.event_stop_move�s����{���{��������T�^�,�,�,����J�J�u�����M�M�O�O�O��<�	)��
�	)��N�N�7�#�#�#�#�#��N�N�4�<�(�(�(�(�(rc���|jj�|j��tr|j���|jj�|j��dSrL)rKri�	tag_raiserVrgrhr�rer}s rr�zMarker.lift�sY����
�����)�)�)�
�	��K���������$�$�T�X�.�.�.�.�.rc���|j�|��}|j�|��|�|��||_|���dSrL)rK�
canxscaled�	xview_posrmrWr�)r�samplerps   r�movezMarker.move�sW���v� � ��(�(�������������D��������	�	�����rc���|j}|j}|jj}||jkr||jkr|j}n||jkr||jkr|j}|j�|j��|jj�	d��z
|jz}||z
}dx}}|j|jj
dz
krd}|jdkrd}d}	|dkr||ks|dkr
||krdx}}|jr||jkrd}nG||jkrd}n9|j|cxkr|jkrnn|j|cxkr|j
ksndx}}d}	|r|r|�d��nW|r|�d��|dkrd}n7|r|�d��|dkrd}n|�d��d}||_|j�|j||jjzz��}
|j�|
��}|j�|��|�|��|
|_|	r|jr|�d��dSdSdS)Nrr�sb_h_double_arrow�
sb_left_arrow�sb_right_arrow�dot)�x_rootr�r�r�r�rKr�rWre�canvasx�numstatsrXr�r�r��limitx�xscaler�rmr]r�)rrn�curx�cury�prevx�markx�dx�l�r�stopr�rps            rr�zMarker.moved�s����|���|����&���4�;���4�$�+�#5�#5��K�E�E�
�T�[�
 �
 �T�D�K�%7�%7��K�E���!�!�$�,�/�/��F��&�&�q�)�)�*�,0�K�8���E�\���	��A��<�4�6�?�1�,�,�,��A��<�1����A����!�V�V��u���!�q�&�&�T�E�\�\��I�A���<�		��d�k�!�!�������#�#�����K�4�5�5�5�5�$�+�5�5�5�5�5��K�4�5�5�5�5�$�+�5�5�5�5��	��A����	��	��N�N�.�/�/�/�/�
�
	��N�N�?�+�+�+��A�v�v����
�	��N�N�+�,�,�,��A�v�v�����N�N�5�!�!�!��B��������t�|�b�4�6�=�.@�@�A�A���v� � ��(�(�������������D��������	'�D�K�	'�� � ��&�&�&�&�&�	'�	'�	'�	'rc��|j�|j��}|�|��|���dSrL)rKr�rWrmr�ros  rrz
Marker.sets<���v� � ���.�.�����D�����	�	�����rc�"�||_d|_dSrL)r[r\)rr=s  r�set_poscommandzMarker.set_poscommands��!�������rc�r�||jkr||jd<||_|j�|��dS�NrZ)rZrhrKr��rrZs  rr�zMarker.setcursors>���T�[� � �$*�D�K��!� �D�K������ � � � � rc��|jrJtt|j����}||jkr ||_|�|��dSdSdSrL)r[r#r$rWr\)rr\s  rr�zMarker.setxvarss_���?�	(���t�|�,�,�-�-�F����$�$�$�������'�'�'�'�'�		(�	(�$�$rrL)rrrrVrermrbr|r�r}r�r~r�rr�r�r�r�r�r�r�r�rr�r�r�rrrrSrS�sy����������"<�<�<�1�1�1�A�A�A�.%�%�%�)�)�)�
%�
%�
%�,�,�,�(�(�(�)�)�)�������.-�-�-�'�'�'����0)�)�)�/�/�/����A'�A'�A'�F���
���!�!�!�(�(�(�(�(rrSc��eZdZdZdZdZdZ						d.d�Zd�Zd	�Z	d
�Z
d/d
�Zd�Zd�Z
d�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd0d�Zd�Zd�Zd�Zd�Zd1d�Zd�Zd �Zd!�Zd"�Zd#�Z d$�Z!d%�Z"d&�Z#d'�Z$d(�Z%d)�Z&d*�Z'd+�Z(d,�Z)d2d-�Z*dS)3�Display�,r��dF�Bars�Sizec	�j	�||_||_||_||_||_||_||_||_t��|_	|j	�
|��t��|_|j�
|��|	|_|
|_
d|_g|_g|_d|_i|_d|_t)|dt*���x|_}d}d}
d}t)|j��}|�dd���t1||j|j||
d|j���x|_}t;|t<d	�
��|_t1||dd|d|�
��|_ t1||dd|d|�
��|_!t1||ddd|���|_"t;|tF|j$d|���|_%t1|ddd|���}tM��}||_'d}tQ||dtR|����|dtTtVztXztZz���|j%�|dtVtTz���|dz
}tQ|ddtR|���|_.|j.�|dtTtVztXztZz���|j!�|dtTtVztXz���|dz
}|j"�|d���|�|dtTtVz���|dz
}|�|d���|j �|dtTtVztXz���t_|d��|_0t_|d��|_1|�2��|_3d|_4d|_5|j0|jz|_6|j1|jz|_7d|_8|�9dddd��|�9dddd��|�:ddd� ��|�;��|jd!|_<|j<|_=g|_>dS)"Nrrr�r��#ccc�#e0e0e0r�)rT�height�xscrollincrement�
background�bd�xscrollcommandr,)�orientrTrTrr)rTr�r�r�r�r��2)r�rTr�r��)r�r=rTr�)rTr�r�r�)r�r�r�r�r��Bytes)r�r�r�r�r��,�1r�����SamplerrZ)?rhr7�numkindrows�getkindcolor�xrange�yrange�xgrid�ygridr"�	var_xgridr�	var_ygrid�	graphtype�statyper��ymaxs�ymins�ymax�
bound_motions�event_motion_idr�r�rr��Canvas�orgwidth�	orgheight�xscrollbar_setre�	Scrollbar�VERTICAL�
yscrollbar�xaxisri�yaxis�
HORIZONTAL�drawingarea_xview�
xscrollbarrN�
var_yrangerU�FLATr!r�r'�S�yunitr!�botxrn�getchdim�chdim�canx0�tmaxr��yscale�xi0ryr{�setscrollregionrYrZr�)rrhr7r�r�r�r�r�r�r�r�r�bordercolor�screencolorr��C�xyrr�s                   rrVzDisplay.__init__#s������&���&���(�����������
���
�#���������5�!�!�!�#���������5�!�!�!�"��������
���
���
���	� ���#���#�6�/0�*0�%�%�%�	%��
�U��������d�j�!�!��
�
�
�q��
�#�#�#� &�e�,0�M�-1�^�7G�1<�)*�59�5H�	 (�	 (�	 (�		(���1�$�E�(�"�E�E�E����E�"#�G�*�#%�-=� �'2�����
��U�#$�W�:�$&�.>� !�(3�������E�!�H�+�R� �'2�����
�
$�E�*�,0�,B�*,�/:�&�&�&����E��B�1�*������Y�Y�
�$�����
�e� ���$�		&�	&�	&�'+�d����1��Q��q��'+�'"�'"�'"�
	
�����Q�q��s��;�;�;��q����5� '��"&�&1�	3�3�3��
�
	
�
������Q�3�q�5��7�	�	�	�	�
	
����S��1�Q�3�q�5��9�9�9��q����
���C���*�*�*�	���3�q��1���-�-�-��q���
���C���"�"�"��
���C��!�A�#�a�%��8�8�8��!�G�*�%�%��	��!�H�+�&�&��	��]�]�_�_��
���
���	��i�$�+�-����i�$�+�-������
���q�!�R��#�#�#�
���r�1�b�"�%�%�%�
���r�2�H��-�-�-��������'��1����l�����
�
�
rc��|jdkr'|j�d|jd���|_|j�|d��dz|j|<|S)Nz<Motion>rrwrr)r�r�bind_allr�r�r�)rrks  rr�zDisplay.bind_motion�sc����4�'�'�#'�:�#6�#6��D�-�3�$7�$8�$8�D� �'+�'9�'=�'=�h��'J�'J�Q�'N���8�$��rc�n�t|j�����D]
}||���dSrL)�listr��keys)rrnr�s   rr�zDisplay.event_motion�sA���d�(�-�-�/�/�0�0�	�	�A�
�A�e�H�H�H�H�	�	rc�Z�|j|dz
}|dkr
|j|=dS||j|<dSr�)r�)r�funcid�ns   rr�zDisplay.unbind_motion�sA����v�&��*����6�6��"�6�*�*�*�)*�D��v�&�&�&rNrc��dt|j��z}|�|}t||||��}|j�|��|S)NzM%d)r�r�rSrC)rrrcrVr�s     r�new_xmarkerzDisplay.new_xmarker�sL���c�$�*�o�o�%���<��D��4��d�C�(�(���
���!�����rc�&�||jz|jzSrL)r�r)r�xs  rr�zDisplay.canxscaled�s���4�;����+�+rc��||jzSrL)r)r�ys  r�
canyscaledzDisplay.canyscaled�s���s�T�[� � rc�j�|j���|_|���dSrL)r�r�r��	drawxaxisr}s r�	cmd_xgridzDisplay.cmd_xgrid��-���^�'�'�)�)��
��������rc�j�|j���|_|���dSrL)r�r�r��	drawyaxisr}s r�	cmd_ygridzDisplay.cmd_ygrid�r-rc�<�d|_|���dSrL)r��yrange_autor}s r�cmd_yrange_autozDisplay.cmd_yrange_auto�s!����	��������rc�Z�d}td|jdz
��}||kr|S||kr|S|SrM)r�r�)rr&�lo�his    rr�zDisplay.limitx�s=��
��
��D�M�!�O�
$�
$���r�6�6��I��r�6�6��I��rc���|j|z}|j|z}||jkr|j}||jz
}||jkr|j}||jz
}|j���}|j���}|j�||���|j�|���|j	�|���|j
�|���t|��|jz}t|��|j
z}|j�d��}	d}
||jz}||jz}|j�d|	|
||��|	|j|	z
|zz|_||_||_||_||_|���|���|���|d|_||fS)N�rTr�r�)r�r�all)rrn�minwidth�	minheightrer��yviewr�rrirr!r�r�r�r�r�scalerr+r/r�	wantedpos)
rr��dyr&r(�xv�yvr�r�	xscaleorg�	yscaleorg�xq�yqs
             r�resizezDisplay.resize�s����I��N���I��N���t�}����
�A��T�Y��B��t�~�����A��T�Y��B�
�
�
#�
#�
%�
%��
�
�
#�
#�
%�
%����"�"��1�"�5�5�5��
���1��%�%�%�����A��&�&�&��
���A��&�&�&��q���D�K�'���q���D�K�'���$�,�,�Q�/�/�	��	�
�d�k�
!��
�d�k�
!������u�i��B��C�C�C��$�*�y�"8�B�!>�>��
���	���	��������������������������A�����2�v�
rc�x�|j���|�t|j��dSrL)r�update_idletasksr��MOVETOr>r}s r�movebackzDisplay.moveback/s2���
�#�#�%�%�%��
�
�6�4�>�*�*�*�*�*rc�j�t���t���dSrL)rr+r/rrr�drawzDisplay.draw3s(���������������rc��|j}|j}|�|j|��}|dkrt	d�|D����}nt	d�|D����}d�|D��}|���|j}||_|j}	|j}
|j	}||zd|zz
|j
z}||z}
d}d}d}d|z}d}|D�]*}|�|d��}|s�|�|��}|dkr_|	�
||z||
z|
|z
||z|
z||dd	�
��}||kr#|	�|||
z|
||
zdd�
��|}||z
}��|dkr�||kr|}n||kr|}|�|��}|�|}|}n1|d|zz
}|	�|||
z|
d|zz
||
z|d	�
��|	�|
d|zz
||
z|
d|zz
||
z|dd	�����,|dkr||kr|}n||kr|}|t|j��cxkrt|j��ksnJ�|j�|��|j�|��||jkr	||_dSdS)Nr�c�*�g|]}|j|jf��Sr)rr���.0r�s  r�
<listcomp>z%Display.draw_stat.<locals>.<listcomp>=s!��;�;�;��Q�V�Q�V�,�;�;�;rc�*�g|]}|j|jf��Sr)r�countrOs  rrQz%Display.draw_stat.<locals>.<listcomp>?s!��<�<�<�!�Q�V�Q�W�-�<�<�<rc��g|]	}|j��
Sr�rrOs  rrQz%Display.draw_stat.<locals>.<listcomp>@s��&�&�&�A���&�&�&r��?rg�������?r�)r0)r��outlinerTrur�)�barsep)r�ru�Linesg�������?g333333�?r�)r�rTru)r�r��get_rows_n_and_otherr��dict�reverse�lastkindvalrerr�rr�r��create_rectangleryr�r�r�rCr)rr�r�r�r��rows�kindval�orderr]rrr��x0�x1r��yminr(�bw�ocolor�kr?r��line�y0�x00s                         r�	draw_statzDisplay.draw_stat7sf���N�	��,���(�(��)9�7�C�C���f����;�;�d�;�;�;�<�<�G�G��<�<�t�<�<�<�=�=�G�&�&��&�&�&��
�
�
�����&��"������������
�6�\�C�&�L�
(�4�:�
5��
�&�[������
��
�&�[�����(	+�(	+�A����Q��"�"�B��
���%�%�a�(�(�E��F�"�"��)�)�"�R�%�!��F��*,�R�%�1�R�4����/4�27�01�/5�*�7�7���F�?�?��M�M�"��d�6�k�"$��d�6�k�'.�'2�"�4�4�4����R�����g�%�%���9�9��D�D��$�Y�Y��D� �_�_�Q�'�'���:��B��C�C��s�V�|�+�C��M�M�#�"��v�
�"$�s�V�|�"3��d�V�m�',�'-�"�/�/�/�
�
�
�b�3��<�/�B�$��-� �3��<�/�B�$��-�#(�$%�#)�	�+�+�+�������4�x�x�����T������c�$�*�o�o�8�8�8�8��T�Z���8�8�8�8�8�8��
���$�����
���$�������?�?��D�I�I�I��?rc��|dkr8|dkr2ttd|j��t|��z��}|�|||��dS)N�scroll�unitsr�)r#r�r�r�)r�cmd�whatrs    rr	zDisplay.drawingarea_xview�sS���(�?�?�t�w����s�1�d�k�*�*�3�t�9�9�4�5�5�D��
�
�3��d�#�#�#�#�#rc�V�||jkr||jd<||jd<||_dSdSr�)rZrerhr�s  rr�zDisplay.setcursor�s;���T�[� � �)/�D��X�&�$*�D�K��!� �D�K�K�K�!� rc�B�|jD]}|����dSrL)r�r)rr�s  r�xmarkers_setzDisplay.xmarkers_set�s,����	�	�A�
�E�E�G�G�G�G�	�	rc��|s|j���S|jj|�|jj|�|jj|�dSrL)rer�rri�rrWs  rr�z
Display.xview�s\���	,��#�)�)�+�+�+������%�%���
��$�������4� � � � rc�<�|�t|��dSrL)r�rI)r�fractions  r�xview_movetozDisplay.xview_moveto�s���
�
�6�8�$�$�$�$�$rr�c�$�|�|���d}|j\}}}}||||z
zz}	||	z
}
|}|j|z
}|
|kr|
|z
}
|}
n|
|kr|
|z
}
|}
nd}
||
t||z
��zz}|�|��dSrU)r��scrollregionrr!rx)rrcrw�
leftmargin�rightmarginrc�y1�x2�y2�cc�xmr5r6r�r�s               rr�zDisplay.xview_pos�s������z�z�|�|�A��H��*���B��B�
�(�b�2�g�&�
&��
�2�X��
��
�Y��
$��
��7�7��b��B��B�B�
�2�X�X��r�'�B��B�B��B��r�E�"�r�'�N�N�*�*�����!�����rc
��|j}|j�d��|j�d��|j\}}}}|j\}}d}|||jztdtt|||j
z������|zkrR|dz
}|||jztdtt|||j
z������|zk�R|||_d}	|	D]\}
}|j|
krn�|
|_||_
d|_|���dS)Nr9r�rr�r))�J)�z%dT)�ʚ;z%dG)�@Bz%dM)rz%dK)rr-)r7rr>rerzrr��minr�r"r�xstep�xdivi�xformr�updatexaxis)rr7rcr}r~r�chdx�chdyr(�divisuf�divi�forms            rr+zDisplay.drawxaxis�s_���&���
���%� � � ������(�(�(��*���B��B��Z�
��d�
���1�~���+��1�c�#�k�!�n�t�y�8�9�9�:�:�;�;�d�B�C�C�
��F�A��1�~���+��1�c�#�k�!�n�t�y�8�9�9�:�:�;�;�d�B�C�C�!��^��
�
��"�	�	�J�D�$��z�T�!�!���"���
���
�����������rc
�0�|j\}}|j}|j}t|j|j|z|��D]�}|j||jzz}|j�	|d|d��|r'|j
�	|d||jddd���|j||j
zz}|j�|||�����|j�	|j|j|jzzd||jzd��||_|���dS)	Nrr�)r�r��gray25)rurTrtrr)rr�r�r?rrrr�rryrernr�r�r{rs)rr�r��step�gridonr(r&r�s        rr�zDisplay.updatexaxis�s?���Z�
��d��z������t�x���4���6�6�	8�	8�A��
�Q�t�{�]�*�A��J�"�"�1�a��A�.�.�.��
Y�� �,�,�Q��1�t�y�j�2<�A�x�-�Y�Y�Y��:��T�Z��0�D��J�"�"�1�d�$�"�7�7�7�7��
���t�z�D�H�#�{�-+� +�,-�q���}�a�	A�	A�	A�����������rc	�x�|j}|j�d��|j�d��|���\}}t|jd��}d}|j}|j||jzd|zkr!|dz
}|j||jzd|zk�!|j|}d}|D]
\}	}
||	krn�td||z|��D]�}||jz}|j�
|dz
||dz
|��|r6|j�
|jd||jd	|d
d���|
||	zz}|j�|d
z|d|zz
|�����|j�
|dz
d|dz
|j
��|���dS)Nr9r�rTr��?r))r�z%4dT)r�z%4dG)r�z%4dM)rz%4dK)rz%5dr�r�r�)r�)rtrug@rVr)r�rr>rerr#r�r7rr?ryrzr{rnrs)
rr�r�r�rTr(�maxvalr�r�r�r�r(r�s
             rr/zDisplay.drawyaxis�s������
���%� � � ������(�(�(��]�]�_�_�
��d��D�J�w�'�(�(��
��������"�T�[�0�3��:�=�=�
��F�A����"�T�[�0�3��:�=�=����"��
��"�	�	�J�D�$��t�|�|�����q�&��+�t�,�,�		E�		E�A���D�K��A��J�"�"�5��7�A�u�Q�w��:�:�:��
>�� �,�,�T�->�q�-A�1�-1�->�q�-A�1�5=�2<�-�>�>�>��1�t�8�$�D��J�"�"�4��8�Q�s�4�x�Z�t�"�D�D�D�D�	
�
���u�Q�w��5��7�T�Y�J�?�?�?��������rc��|j�ddd���}|j�|��\}}}}|j�|��t	||z
��}t	||z
��}||fS)Nrr.r)rr{�bboxr>r/)r�chrcr}r~rr�r�s        rrzDisplay.getchdim(sw��
�Z�
#�
#�A�q�s�
#�
3�
3�������,�,���B��B��
���"�����2��7�|�|���2��7�|�|���T�z�rc�J�|j���d}	d|j���d<|j���t|��|_i|_d|_d|_g|_g|_	|j
}|�d��|�d��t|��D]\}}|�
||���	|j
�dd��n#t$rYnwxYw|���|���|���|���||j���d<dS#||j���d<wxYw)NrZ�watchrrXr0)r�winfo_toplevelr�r�r�r]rr�r�r�rer>�	enumeraterkr��TclErrorr+r/rsr2)rr|rYrr(r�s      r�
load_statszDisplay.load_stats1s����*�+�+�-�-�h�7��	<�4;�D�J�%�%�'�'��1��J��������J�J�D�M�!�D���D�I��D�I��D�J��D�J�� �A�
�H�H�X����
�H�H�S�M�M�M�$�U�+�+�
&�
&���B����q�"�%�%�%�%�
�� �*�*�8�S�9�9�9�9���
�
�
���
����
�N�N�����N�N����������������4;�D�J�%�%�'�'��1�1�1��G�D�J�%�%�'�'��1�;�;�;�;s1�CF�*D�F�
D�F�D�AF�F"c��t|��D]#\}}|�||jz|���$|xjt|��z
c_|���|���dSrL)r�rkr�r�r�r)rr|r(r�s    r�	add_statszDisplay.add_statsTsz�� ��'�'�	0�	0�G�Q���N�N�1�T�]�?�B�/�/�/�/��
�
��U���#�
�
��������������rc�<�||_|���dSrL)r�r+�rr�s  r�setxgridzDisplay.setxgrid[�����
��������rc�<�||_|���dSrL)r�r/r�s  r�setygridzDisplay.setygrid_r�rc��|�d��\}}||jks||jkrN||_||_|dkrd|jd<n|dkrd|jd<nt�|�|��dSdS)N� r�r�r��Count�Objects)r�r�r�rr5r�)r�gmoder|r�r�s     r�setgraphtypezDisplay.setgraphtypecs���"�[�[��-�-��	�7����&�&�'�T�\�*A�*A�&�D�N�"�D�L��&� � �%,��
�6�"�"��G�#�#�%.��
�6�"�"� � ��O�O�E�"�"�"�"�"�+B�*Arc���|j}|j}|j}|j|jz|jz}|dzdz}|dzdz}||z}||z
}d|jz
}d}||||f|_|�|j���|j�|d|df���|j	�|d|df���|j
�d|d|f���|j�td��dS)Nr�r)rzrr,rrr)
rerrrr�rnrzr�rrirr<rI)	rrrrcr~�x1extra�x2extrar}rs	         rrzDisplay.setscrollregionps������y��
�Z��
�Y���
$�t�z�
1����(�Q�,����(�Q�,��
�g�
��
�g�
��
�t�y�[��
����R��,���	����!2��3�3�3��
���2�q�"�b�/��:�:�:�����B��2�r�?��;�;�;��
���1�b�"�b�/��:�:�:�����v�s�+�+�+�+�+rc�
�|jt|��z}||_|j�|jdz��}|j�d|d|d��|j�d|d|d��||j|z
|zz|_|jt|j��z|_|�td|j����|�
��|���dS)Nr�r0r��?rX)r�r!rer�rr=rr��setxscrollincrementr�r+r)rr��dxrangerBs    r�	setxrangezDisplay.setxrange�s����+��f�
�
�-������$�,�,�T�Y�q�[�9�9�	�����s�I�q�'�3�?�?�?�����x��A�w��D�D�D��$�*�y�"8�G�!C�C��
��i�%���"4�"4�4���� � ��Q���!4�!4�5�5�5��������������rc��dSrL)rer�rri)rr�s  rr�zDisplay.setxscrollincrement�s���rc��t|j��|z}||_|j�|��|j�dddd|��|j�dddd|��t|j��|jz|_|j�td��|�
��dS)Nr0rr�rXr)r!r�rrrer=rnrr<rIr/)rr��dyranges   r�	setyrangezDisplay.setyrange�s������$�$�v�-���������F�#�#�#�����s�A�q�#�w�7�7�7�����x��A�s�G�<�<�<��D�I�&�&���4�������v�s�+�+�+��������rc�d�|j�||��|���dSrL)r
rr2)r�first�lasts   rrzDisplay.xscrollbar_set�s2������E�4�(�(�(��������rc	�>�|s|jj���r�tdt	d|j�d��|jz
|jzz����}tt|j��t	d|j�|j��|jz
|jzz����}||krd}nt|j||���}||j
kr%||_
|j�|��dSdSdS)NrrVr�r)�ycontrolr#r�r�r#rer�rr�r�r�r�rr�rH)r�forcer5r6r�s     rr2zDisplay.yrange_auto�s���	(�D�M�)�-�-�/�/�	(��Q���d�.�6�6�q�9�9�D�J�F�$�+�U�U�V�V�X�X�B��S���_�_���d�.�6�6�t�y�A�A�D�J�N�RV�R]�]�]�^�^�`�`�B��R�x�x�����4�:�b��e�,�-�-���t�y� � � ��	��
�!�!�$�'�'�'�'�'�	(�	(�!� r)r�r�FFr�r�rUrL)Nr�r�r�)+rrrrrr:r;rVr�r�r�r$r�r)r,r0r3r�rFrJrLrkr	r�rsr�rxr�r+r�r/rr�r�r�r�r�rr�r�r�rr2rrrr�r�s~�������H��I��H��I�����!��b�b�b�b�H������+�+�+�����,�,�,�!�!�!�������������1�1�1�f+�+�+����T�T�T�l$�$�$�$�!�!�!����!�!�!�%�%�%�����<���@���,+�+�+�Z���!<�!<�!<�F���������#�#�#�,�,�,�.
�
�
�3�3�3�
�
�
����(�(�(�(�(�(rr�c�:�eZdZd�fd�Zd�Zd�Zd�Zd�Zd	d�ZdS)
�
MarkerControlc��dSrUrrrrrzMarkerControl.<lambda>�s��A�rc	����d�_d�_|�_|�_|j�_t|dt���x}�_t���_	t|d|jz����dd���t|�j	ddd	�
���dddd�
��t|ddd�fd�����ddt���t|ddd�fd�����ddt���t���_t#|dd�jt$�jd����_�j�ddd���dS)Nrr�r�z	%s samplerr�)�terminal�16�boldr��yellow)r�r�r��fgrr�rr r�c�.����d��Sr��changesampler}s�rrz(MarkerControl.__init__.<locals>.<lambda>�s���D�$5�$5�b�$9�$9�r)r�r
rr=r�rc�.����d��Sr
r�r}s�rrz(MarkerControl.__init__.<locals>.<lambda>�s���D�$5�$5�a�$8�$8�r�Track)r�rr�r�r=�indicatoron)r�r�r)r��
numsamples�
setcommand�markerrr�r�rrN�	samplevarrUr�r[r�r!r"�trackingvarr%r&�settracking�trackbutton)rrhr�r��sfs`    rrVzMarkerControl.__init__�s����������$�������K��	���A�f�E�E�E�E��T�Z� �����
�b�{�V�[�0�1�1�1�6�6�1�Q�6�G�G�G�
�b��>�-��X�	�	�	����1�1�1��5�5�5��B�S���9�9�9�9�	;�	;�	;�;?�4�A�a�XY�4�;Z�;Z�;Z��B�S���8�8�8�8�	:�	:�	:�:>�$�1�Q�WX�$�:Y�:Y�:Y�%�<�<���&��W���%���$��
�
�
���	
����!�A�!��<�<�<�<�<rc�t�|j|z}d|cxkr|jkrndS|�|��dSdSrU)r�r��	setmarker)rrKr�s   rr�zMarkerControl.changesample�sT����q�����(�(�(�(���(�(�(�(�(�(��N�N�6�"�"�"�"�"�)�(rc�d�|j�|��|�|��dSrL)r�r��	setsample�rr�s  rr�zMarkerControl.setmarker�s0������� � � ����v�����rc��||_|j���s|j|jkr-|�td|jdz
����dSdSrM)r�r�r�r�r�r�)r�nums  r�
setnumsampleszMarkerControl.setnumsamples�s`���������!�!�	6�T�[�D�O�%C�%C��N�N�3�q�$�/�!�"3�4�4�5�5�5�5�5�&D�%Crc�p�||_|j�|��|���dSrL)r�r�rr�r�s  rr�zMarkerControl.setsample�s5���������6�"�"�"��������rNc���|�|j�|��n|j���}|r-|�t	d|jdz
����dSdSrM)r�rr�r�r�r�)r�trackings  rr�zMarkerControl.settracking�sq������ � ��*�*�*�*��'�+�+�-�-�H��	6��N�N�3�q�$�/�!�"3�4�4�5�5�5�5�5�	6�	6rrL)	rrrrVr�r�r�r�r�rrrr�r��s�������&�I�!=�!=�!=�!=�F#�#�#�
���6�6�6�
���
6�6�6�6�6�6rr�c�(�eZdZdd�Zd�Zd�Zd�ZdS)�WindowNc��||_||_||_|���|_d|_|j|_|j|_dSrU)	�appr�
windowmenu�title�wtitle�
_is_destroyed�destroy�old_destroy�new_destroy)rr�rr�s    rrVzWindow.__init__�sH�������
�$����k�k�m�m������!�=����(��
�
�
rc��|jrdSd|_|j�|��	|���dS#t$rYdSwxYwr
)r�r��
del_windowr�r�r}s rr�zWindow.new_destroysq����	��F��������D�!�!�!�	�����������	�	�	�
�D�D�		���s�A�
A�Ac��|j�|��|j�|��||_|j�|��dSrL)rr��iconnamer�r��
chg_window)rr�s  rr�zWindow.titlesQ���
��������
���E�"�"�"��������D�!�!�!�!�!rc��|j}	|���dkr|���|���dS#t$rYdSwxYw)N�iconic)r�wm_state�wm_deiconify�tkraiser�)rrs  r�wakeupz
Window.wakeupsl���
��		��~�~���8�+�+��"�"�$�$�$��M�M�O�O�O�O�O���	�	�	�
�D�D�	���s�AA�
A�ArL)rrrrVr�r�r�rrrr�r��sU������
)�
)�
)�
)����"�"�"�����rr�c�&�eZdZd�Zd�Zd�Zd�ZdS)�
WindowMenuc��t|d���|_t|j��|_|j|jd<||_i|_dS)Nr�rr�)r �buttonr;r�r��wmap)rrr�s   rrVzWindowMenu.__init__'sG�� ��X�6�6�6������%�%��	�"�i���F�� ��
���	�	�	rc���|j�|jd|j|jfz|j|j���|j�t��|j|j<dS�Nz%d %s)r=r�r
r�)	r��add_radiobuttonr��widr�r�r@�ENDr��rrvs  r�
add_windowzWindowMenu.add_window.se���	�!�!��M��V�Z���7�7��*��]�		"�	$�	$�	$�
!%�	���� 4� 4��	�&�*���rc���|j�|j|j��|j�|j|j|jd|j|jfz|j|j���dSr�)r�r>r�r�insert_radiobuttonr�r�r�rs  rr�zWindowMenu.chg_window6sv���	�����6�:�.�/�/�/��	�$�$��I�f�j�!��M��V�Z���7�7��*��]�	%�	$�	$�	$�	$�	$rc�:�|j|j}|j|j=	|j�|��n#t$rYnwxYwt|j�����D](}|j||kr|j|xxdzcc<�)dSr
)r�rr�r>r�rr)rrvr�rs    rr�zWindowMenu.del_window?s����i��
�#���I�f�j�!�	��I���S�!�!�!�!���	�	�	�
�D�	������	���(�(�)�)�	$�	$�C��y��~��#�#��	�#����!�#�����	$�	$s�<�
A	�A	N)rrrrVrr�r�rrrr�r�&sP���������5�5�5�$�$�$�$�$�$�$�$rr�c�@�eZdZd�Zd�Zd
d�Zd�Zd�Zd�Zd�Z	d	�Z
dS)�
ProfileAppc��||_t��}||_|���i|_i|_t
|��|_dSrL)rv�Tk�root�withdraw�windows�windowmenus�IntVar�
var_window)rrvrs   rrVzProfileApp.__init__NsF������t�t����	��
�
���������� ��,�,����rc����tdgt�j�����z��dz�_��j�j<t�dd��}|rQ|�j�j<t�j�����D]}|�ur|�|���t�j�����D]}|������j	�
�j���j�d��fd�d����j�d�fd	�d���dS)
Nrrr�z	<FocusIn>c�B���j��j��SrL)rrr)rnrrvs ��rrz'ProfileApp.add_window.<locals>.<lambda>ds�����(;�(;�F�J�(G�(G�rrrwz<Deactivate>c�8���j�d��SrU)rr)rnrs �rrz'ProfileApp.add_window.<locals>.<lambda>fs�����(;�(;�A�(>�(>�r)
r�rr
rr�getattrr�valuesrrrrre)rrv�wm�ws``  rrzProfileApp.add_windowWsr�����!��T�$�,�"3�"3�"5�"5�6�6�6�7�7��9��
�#)���V�Z� �
�V�\�4�
0�
0��
�	%�+-�D��V�Z�(��$�,�-�-�/�/�0�0�
%�
%���F�?�?��M�M�!�$�$�$���t�'�.�.�0�0�1�1�	"�	"�B��M�M�&�!�!�!�!�����F�J�'�'�'�����+�G�G�G�G�G�S�	�	R�	R�	R�����.�>�>�>�>�C�	�	I�	I�	I�	I�	IrNc�R�t|||��}|�|��|SrL)r�r)rrr�rs    r�add_window_framezProfileApp.add_window_framehs*���4��
�+�+����������rc��t|j�����D]}|�|���dSrL)rrrr�)rrvrs   rr�zProfileApp.chg_windowmsG���t�'�.�.�0�0�1�1�	"�	"�B��M�M�&�!�!�!�!�	"�	"rc��|j}t|dd��r|j|=|j|=t	|j�����D]}|�|���|js|���dSdS)Nr�)rrrr
rrr��exit)rrvrrs    rr�zProfileApp.del_windowqs����j���6�<��.�.�	&�� ��%��L����t�'�.�.�0�0�1�1�	"�	"�B��M�M�&�!�!�!�!��|�	��I�I�K�K�K�K�K�	�	rc��	|j���n#t$rYnwxYw|j���dSrL)rr�r��quitr}s rrzProfileApp.exit{sV��	��I���������	�	�	��D�	�����	�������s��
)�)c�4�|j���SrL)r�mainloopr}s rr zProfileApp.mainloop�s���y�!�!�#�#�#rc�"�t||��SrL)�ProfileBrowser)r�filenames  r�new_profile_browserzProfileApp.new_profile_browser�s���d�H�-�-�-rrL)rrrrVrrr�r�rr r$rrrrrMs�������'�'�'�I�I�I�"����
"�"�"�������$�$�$�.�.�.�.�.rrc�&�eZdZd�Zd�Zd�Zd�ZdS)�PaneDivc��t|��x|_}||_dx|_}|dzdzx}|_d}t|d|���|_|j�|d||dd�	��|j�|dzd|dz|d
d�	��t|d|j|jtd���|_	t|dd
d���|_
|j�ddt���|j	�ddt���|j
�ddt���|j	�
d|j��|j	�
d|j��dS)Nr�r�r�r,r8r�#808080r�r�rTr��	crosshair)rZrTr�r�r�r�)rTr�r�r�r_r`)r�r�movecommand�butsize�butcentr��topryr&�rsbut�botr�r're�but_down�but_up)rrhr+r�bs�bc�hs       rrVzPaneDiv.__init__�s���"�6�]�]�*��
�U�&�������r���F�Q�J�&��T�\�������
�
�
���	
������2�q�y��	�	3�	3�	3������q�D�!�R��T�1�7�!�	�	5�	5�	5�����,��<���

�
�
��
������	
�
�
���	
��
�
�!�A�a�
�0�0�0��
���A�a���2�2�2���
�
�!�A�a�
�0�0�0��
����d�m�4�4�4��
���+�T�[�9�9�9�9�9rc�T�||_|j�t���dS�N)r�)r�r/r�r�rrs  rr1zPaneDiv.but_down�s(������
���F��+�+�+�+�+rc��|j�t���|j|jjz
}|�|��dSr7)r/r�r&r&r�r+)rrnr�s   rr2zPaneDiv.but_up�sF���
���F��+�+�+�
�W�t��(�
(����������rc��|dz
}||jd<|j}|j�|d||dd���|j�|dzd|dz|dd���dS)N�r�rr(rr)r�)r0r-ry)rr�r5r4s    r�	setheightzPaneDiv.setheight�s����R�K�������
�\��������2�q�y��	�	3�	3�	3������q�D�!�R��T�1�7�!�	�	5�	5�	5�	5�	5rN)rrrrVr1r2r;rrrr&r&�sQ������':�':�':�R,�,�,����
	5�	5�	5�	5�	5rr&c� �eZdZd�Zd�Zd�ZdS)�
TableFramec��||_|j|_t|dt���x}|_d}t��|_t��|_t��|_	|j	�
d��t|��}t||j	ddd��}|�ddt���t|d�	���dd
t���t||dd�
���ddtd���t|d�	���ddt���t||j����ddt���t|d�	���d
ddt���t||j����d
ddt���|�|dt���|d
z
}|}	t|��}
d}t|
d�	���|d���t|
d�	���|d
t���t|
d�	���|dt���t|
d�	���|dt���t|
d�	���|dt���t|
d�	���|dt���|d
z
}g|_t#|
|��|_|j�|j��|d
z
}t)|d
z��D]1}t#|
|��}|j�|��|d
z
}�2|	}|
�|dt���|d
z
}d|_t"j|_dS)Nr�r�r�R�LzR-Lr�r�rrr�r�)r�r��
foregroundr�)r�r�r�r
�at)r�r�z
Total size = )r�r�rr�)r�rr�z%Rz%L�Kindr�)�graphrvr�r�rr
�marktimerN�
totsizevar�samplerr�
OptionMenur�r!rUr��profrowsr��totrowrCr?�	totresizer�)
rrDrhr�r�rr��fr�om�orow�tbr(�profrows
             rrVzTableFrame.__init__�s�����
��9���"�6�q��H�H�H�H���
���!����
�!�)�)��� �{�{�����������
�5�\�\��
��D�L�#�s�E�
:�
:��
���A�a���*�*�*�
�b�x� � � �%�%�!�A�a�%�@�@�@�
�b�y�W��	�	�	����1�Q�Q��7�7�7�
�b�t����!�!�a��!�!�<�<�<�
�b�t�}�-�-�-�2�2��!�A�	3�	'�	'�	'�
�b��'�'�'�,�,��!��!�	-�	5�	5�	5�
�b�$�/�*�*�*�/�/��!��!�	0�	5�	5�	5�
���C��!��,�,�,��q�����
�5�\�\����
�b�r������C���2�2�2�
�b�s����"�"�s�1�Q�"�?�?�?�
�b�t����!�!�c�!�A�!�>�>�>�
�b�u����$�$��Q�q�$�A�A�A�
�b�t����!�!�c�!�A�!�>�>�>�
�b�v����#�#��A�a�#�@�@�@��q�����
� ��S�)�)����
���T�[�)�)�)��q����{�1�}�%�%�	�	�A� ��S�)�)�G��M� � ��)�)�)��1�H�C�C���
���C��!��,�,�,�	�q������#�-����rc��t|��}|xj|z
c_t|jd��\}}tj|z}|jdjd}|dkr
d}||z
dz|z}|jD]_}||jd<||_|dz|jd<ddl}|�|j	|j���}	|�
|j	���`||fS)N�rrTr,r�rr�)r#rK�divmodr�r�rIr�r�r�r�r�)
rr�r?�
charresize�extra�newwidth�oldwidth�prr�r�s
          rrFzTableFrame.resizes���
��W�W�����"����"�4�>�1�5�5��
�E��'�*�4���=��#�(��1���b�=�=��H��X�%��*�U�2�B��-�	%�	%�B�'�B�G�G��#�B�L�#�a�i�B�G�F�O��O�O�O��}�}�R�[���}�E�E�H��K�K���$�$�$�$��2�v�
rc���|j�|jj�|jj�|jj������dSrL)rErrv�time�asctime�	localtimer��timemaderIr�r!r�rJr�r�r_�kindrowsrrDr�)	r�lsamp�rsamprX�rdiv�ldivr(r�r�s	         rr�zTableFrame.updatesS���
���$�(�-�/�/��H�M�#�#�E�J�$7�8�8�:�:�	;�	;�	;�	�rN)rrrrVrFr�rrrr=r=�sB������8.�8.�8.�t���&����rr=c��eZdZdd�Zd�ZdS)�ColSpecrc�h�||_||_||_||_||_||_||_dSrL)�tf�headerrrTrc�renderr�)rrfrgrTrcrhr�s       rrVzColSpec.__init__8s7����������	���
�����������rc���d|jt|��z
z}|jtkr||z}n#|jtkr|dd�|zdz}nJ�t|��|jksJ�|S)Nr�r)rTr�rcr��RIGHT)rr��sps   r�alignz
ColSpec.alignAsy��
�$�*�s�4�y�y�(�
)���8�t����"�9�D�D�
�X��
�
��c�r�c�7�T�>�C�'�D�D��1��4�y�y�D�J�&�&�&�&��rN)r)rrrrVrlrrrrdrd7s7����������	�	�	�	�	rrdc�l�eZdZd�Zd�Zd�Zd�Zd�Zd�Zd�Z	d�Z
d	�Zd
�Zd�Z
d�Zd
�Zdd�Zdd�ZdS)r=c�z��|�_|j�_t|dt���x}�_i�_g�_d�f�fd�	}|ddt�jd���|dd	t�j
�jg��|d
d	t�jd���|dd	t�j
�j
�jgd
���|d
d	t�jd���|ddt�j��d}�jD]}||z
}�d�_d�_�jd�_�jj�_|�jz
�_d�_d�_|dz
}|x�_�_t2}|d}t4}	d�_t9|||dd�j|	|����_t9|||dd�j|	|����_t|���_d�_ t9�j||dd|	d|�j�j ��
�
�_!tE�jdtF�j!j$����_%tM�j%d��dz�_'d�_(d�_)tM�j!d���_*d}
d}�j�+tXtZz|
|����j�+tXtZz|
|����j!�+ttXtZz|
|� ���j�+tXtZz|
|���dS)!Nr�r�c��dS)Nrr�r&s rrz%TableFrame.__init__.<locals>.<lambda>[s��R�rc���t|��r|gt|��z}�j�|��t	||��D],\}}t�||||||����}|�j|<�-dSrL)�callabler��	colwidthsrC�ziprd�colspecs)�namesrTrc�put�idxfuncr�specrs       �r�defcolz#TableFrame.__init__.<locals>.defcol[s������}�}�
'��e�C��J�J�&���N�!�!�%�(�(�(� ���_�_�
+�
+�	��c��t�T�5�#�s�G�G�D�M�M�J�J��&*��
�d�#�#�
+�
+r��A�Br�c��|SrLrrps rrz%TableFrame.__init__.<locals>.<lambda>cs��Q�r�r�r�rR�z%A:Totz%B:Totc��|dSr
rrUs rrz%TableFrame.__init__.<locals>.<lambda>f�
��T�!�W�r)�B-A�A-B�Cumulc�@�d|�d��gd|vS)Nrr )r�rUs rrz%TableFrame.__init__.<locals>.<lambda>hs��R����C���1�#��+�>�rc��|dSr
rrUs rrz%TableFrame.__init__.<locals>.<lambda>jr�r�rCrrrrCr,rrZr�)rT�wrapr�r�rr�rZ�r�)	rTr�r�r�r��	takefocusrZrr
)rTr�r=rTr�r�)r�rr
)�sider�rr
).rDrvr�r�rrursr��putcolorrj�putsize�putcount�
putpercent�putdiff�putcumul�putkind�
totxresize�
totyresize�kindcolrT�orgkindwidth�widthbeforekind�minkindwidth�
mintextheightr�NONEr�minpadx�Text�tothead�rowhead�tsframe�textminpadyr�rrr<�	scrollbarr#�scrollbar_totwidth�uses_scrollbar�auto_scrollbar�
orgtextheight�packr'r!)rrDrhrrzrTrr�rZr�rr
s`           rrVzTableFrame.__init__Ns������
��9���"����
�
�
�	
���
���
����3?�<�	+�	+�	+�	+�	+�	+�	��z�1�d�D�M�;�;�?�?�?��� �!�U�T�\�4�=�,I�J�J�J���#�Q���� 4� 4�	6�	6�	6���&��5�4�<���t�}�2]�>�>�	@�	@�	@���#�Q���� 4� 4�	6�	6�	6���y�"�d�D�L�1�1�1�����	�	�A��Q�J�E�E��������}�V�,��� �L�.���$�t�'8�8���������
��
��%*�*��
�T�]�����!�����������������	
�	
�	
�������������	
�	
�	
����U�|�|��������L���� �������!�
�
�
��	�#��L����I�O�	
�
�
���#&��N�7�#�#%�#%�'(�#)��� ������ ���8�!4�5�5������������1��4�d��;�;�;������1��4�d��;�;�;��	���D��1��4�d��C�C�C������1��4�d��;�;�;�;�;rc���|j���t|j�����|jz|_t|j�����|jz|_tt|j����|_tt|j����|_|j|jz|_|j|jz|_dSrL)
r�r�r!r�rTr�r�r�r�r#r$�pixwidth�	pixheightr}s r�setchdimzTableFrame.setchdim�s����	�������$�)�/�/�1�1�2�2�T�Z�?��	��$�)�0�0�2�2�3�3�d�6H�H��	���d�i�(�(�)�)��	���d�i�(�(�)�)��	��
�T�Y�.��
���d�i�/����rc�@�|jjdkr|�d��}d}n:|j�|jj��f}|�d��}|j�d||f��|j�||dd���dS)N�<Total>r�r��@�end)r��12r�)rAr�r�)�colorowrrlrDr�r��insert�
tag_config)r�colr�r�s    rr�zTableFrame.putcolor�s����<��	�)�)��9�9�S�>�>�D��E�E��J�+�+�D�L�,=�>�>�?�E��9�9�S�>�>�D��	�����u�h�/�/�/��	���U�u��"<�	�	?�	?�	?�	?�	?rc�x�d|_|jj}|xj|z
c_|�||��dS)Nr�)�valmoder�rS�cumulval�putval)rr�rSs   rr�zTableFrame.putcount�s=�������"���
�
���
�
����C������rc�x�d|_|jj}|xj|z
c_|�||��dS)Nr�)r�r�r�r�r�)rr�r�s   rr�zTableFrame.putsize�s=������|� ���
�
���
�
����C������rc�~�||_|�|�t|������dSrL)�curval�aprlr*)rr��vals   rr�zTableFrame.putval�s3���������	�	�*�S�/�/�*�*�+�+�+�+�+rc��|j|j}|jdkr|j}n|jdkr|j}|rt|jdz|z��}nd}|�|�|����dS)Nr�r�gY@z---)	�
statbynamer�r�rSr�r1r�r�rl)rr�r0�ref�pss     rr�zTableFrame.putpercent�s����O�C�G�$���<�7�"�"��'�C�C�
�\�V�
#�
#��&�C��	��t�{�U�2�S�8�9�9�B�B��B�����	�	�"�
�
�����rc��|j|jd|j|jd}}|jdkr|j|j}}n|jdkr|j|j}}|�|||z
��dS)Nrrr�r�)�	rowbynamer�r�rSr�r�)rr�r0�bs    rr�zTableFrame.putdiff�sy���~�c�g�a�j�)�4�>�#�'�!�*�+E�1���<�7�"�"��7�A�G�q�A�A�
�\�V�
#�
#��6�1�6�q�A����C��Q������rc�<�|�||j��dSrL)r�r�)rr�s  rr�zTableFrame.putcumul�s�����C���'�'�'�'�'rc�j�ddl}|�|jj|j���}|�|�|d����t|��dkrEdd|jzz}|dd�D]/}|�||�|��z���.dSdS)Nrr�rr�r�)	r�r�r�rrTr�rlr�r�)rr�r��	wraplines�initialrhs      rr�zTableFrame.putkind�s��������M�M�$�,�"3�3�9�M�E�E�	�����	�	�)�A�,�'�'�(�(�(��y�>�>�A����3�� 4�5�5�G�!�!�"�"�
�
1�
1�������	�	�$���/�0�0�0�0���
1�
1rc�v��|�_|�_�jj�_�jj�_�fd�|�d��D���_i�_�jdj	}�j|�_
d�j|<�j
g�_dg�_t�j��D]�\}}|j	}t|tt f��s|f}|D]T}|�jvrI�j��j|��d�j|<�j�d���U��dS)Nc�v��g|]5}|�����j|�����6Sr)�stripru)rPr&rs  �rrQz&TableFrame.setmode.<locals>.<listcomp>sD���<�<�<�������<�T�]�1�7�7�9�9�-�<�<�<rr�rr)�moder�rD�mcontrolbyname�	mcontrolsr|r��cols�controlnamesr��colorcontrol�controls�lastidxsr��
isinstance�tuplerrC)rr�r�rr(�cor�s`      r�setmodezTableFrame.setmodesT�����	�&�����2����Z�%��
�<�<�<�<�"�j�j��o�o�<�<�<��	�����y��|��� �N�4�0���"#���$���*�+��
����
��t�y�)�)�	/�	/�E�A�r��&�C��c�E�4�=�1�1�
��f���
/�
/���d�/�/�/��M�(�(����)<�=�=�=�-.�D�%�c�*��M�(�(��.�.�.��	
/�		/�	/rc�`�||jkrdS||_|j}|rU|�|dd���|j�t
t���|jj|jd<dS|�|dd���|j�	��d|jd<dS)Nr)�setscrollbar)r�r��yscrollcommand)
r�r�rFr�r�r�rrr��pack_forget)r�sbrs   rr�zTableFrame.setscrollbars���
��$�$�$��F� ����#��
�	/��K�K���A�A�K�.�.�.��N���T���2�2�2�*.�.�*<�D�I�&�'�'�'��K�K��1�1�K�-�-�-��N�&�&�(�(�(�*.�D�I�&�'�'�'rc��|j}|�dd��|�dt|j����dS)N�1.0z100.0)r�r>r�r"r�)rr_r`�ts    r�
update_simplezTableFrame.update_simple's?���I��	����� � � �	�����E�J���(�(�(�(�(rrrc
�
���|j��fd�|jD��}||jkr|sdS||_tx|jd<x|jd<|jd<|j�dt��|j�dt��|j�dt���s@|j�	dd��tx|jd<x|jd<|jd<dSi|_g}t|j��D]7\}}�||}|�
|��||j|j<�8t|j|d|jdjj|d|j|jjj���gx}|_|d|_t1|j��dkr`|�
t|j|d|jdjj|d|d�	����|d|_|j�t5d
�|D����}	|D]`}
��	dd|
jz����	dd|	z|
jzd
����	dd|
jz���a��dd���|j�d�|D��|_|jD]1}��	d|� |j!��d���2��	dd��|j��fd�|_"tG|dj$|dj%d��|_&|j|_'d|_(|jD]}|�)|���|�"d��d|_(t|dj*��D]�\}}||_&t1|��dkr7|dj||dj|dj+|ji|_'|jD]}|�)|���|�"d����|r�|j,r�t[|j�d���.d��d��dz
}
t[|jd��}|
|k}||j/kr|�0|��tx|jd<x|jd<|jd<dS)Nc�v��g|]5}tdt|jt���dz
������6S�rr)r�r�r�r�)rP�controlr|s  �rrQz%TableFrame.update.<locals>.<listcomp>0sI���.�.�.���A�s�7�>�3�u�:�:�a�<�8�8�9�9�.�.�.r�stater�r�z-- No Sample --r)r�r�r)�relativec�P�g|]#}tt|j������$Sr)r�r"r@�rP�samps  rrQz%TableFrame.update.<locals>.<listcomp>Xs(��8�8�8�$��S���_�_�%�%�8�8�8rzSample %s: z%%%dd)r@z at %s
r@r�)r�c�@�g|]}t|jj����Sr)r!r�r�r�s  rrQz%TableFrame.update.<locals>.<listcomp>bs$��>�>�>��e�D�I�N�+�+�>�>�>r)rgr�c�0����d|��S)Nr�)r�)r�r�s �rrz#TableFrame.update.<locals>.<lambda>js���q�x�x��t�4�4�rr�z

�.r�r�)1r|r�r��NORMALr�r�r�r>rr��DISABLEDr�r�rCrr�rvr�r�rD�displayr��samps�	colorsampr��relsampr�r@�datetime�
tag_configure�sizesr�rlrgr��RowrSr�r�r�r�rhr_r^r�r#r�r�r�)rr�r��idxs�	statbyidxr(r�r�r�r"r�r�r0�numrowsr5�needs_scrollbarr|r�s                @@rr�zTableFrame.update,s�����
��.�.�.�.�#�}�.�.�.���D�M�!�!�5�!��F���
�MS�S��	�'��S�T�\�'�2�T�\�'�5J��	�����$�$�$�����E�3�'�'�'�����E�3�'�'�'��	��L����'8�9�9�9�QY�Y�D�I�g��Y���g�!6���g�9N��F�����	�#�D�M�2�2�	1�	1�J�A�w���a��>�D����T�"�"�"�,0�D�O�G�L�)�)�
�4�8�Y�q�\�4�=��+;�+B�+G��a��#�/��:�-�5�
�
�
��	���
��q�����t�}����!�!��L�L����)�A�,��
�a�8H�8O�8T�VZ�[\�V]�).�q��3�3�3�
4�
4�
4�!��8�D�L��L���8�8�%�8�8�8�9�9���	:�	:�D�
�H�H�U�M�D�I�5�6�6�6�
�H�H�U�W�q�[�D�J�6�
�C�C�C�
�H�H�U�J�$�-�8�9�9�9�9�	����I��6�6�6��L��>�>��>�>�>��
��9�	@�	@�C�
�H�H�U�C�I�I�c�j�1�1�;�?�?�?�?�	���������I��4�4�4�4����5��8�>�5��8�=�)�D�D���������
��9�	�	�C��J�J�s�O�O�O�O����������
��e�A�h�m�,�,�		�		�D�A�q��D�L��5�z�z�A�~�~��!�H�M�1��!�H�M�5��8�#4�Q�V�#<�"����y�
 �
 ���
�
�3������G�G�D�M�M�M�M��	3�D�/�	3��$�)�/�/�%�0�0�6�6�s�;�;�A�>�?�?��A�G��D�I�h�'�(�(�A�%��k�O��$�"5�5�5��!�!�/�2�2�2�MU�U��	�'��U�T�\�'�2�T�\�'�5J�5J�5Jrc��t|��}|j}|j|z}||jdzkr
|jdz}||_||z
}t||j��\}}t	||jz
dz
|j��|j_|xj	|z
c_	|j
|j|jfD]}||d<|j
|dzz|d<�t|��}t|j|z|j��\}	}|j|	z}
t|jd��}|
|jkr|j}
|
|z
|jz|z}|xj|z
c_|
|jd<|j|dzz|jd<|�dd���||fS)Nr�rrTrr�r
�r�r�)r#r�r�rSr�r�r�r�rTr�r�r�r�r�r�r�r�r�r�r�)rr�r?r�rWrV�	charwidthrUr��	rowresize�	newheight�	oldheights            rrFzTableFrame.resize�s���
��W�W���=���=�2�%���d�i�!�m�#�#��y�1�}�H� ��
�
��
 ��!�(�D�I�6�6��	�5� ���,�,�q�0�$�2C�E�E����	
���2�����,���d�i�8�	1�	1�A�"�A�g�J���u�q�y�0�A�f�I�I�
��W�W��!�$�/�B�"6��	�B�B��	�5��&��2�	���	�(�+�,�,�	��t�)�)�)��*�I��i�'�4�9�4�u�<�B����2����'��	�(�� �,�u�q�y�8��	�&�����!�!��,�,�,��2�v�
rNr�r�)rrrrVr�r�r�r�r�r�r�r�r�r�r�r�r�rFrrrr=r=Ms������i<�i<�i<�V0�0�0�	?�	?�	?� � � ����,�,�,���� � � �(�(�(�1�1�1�/�/�/�./�/�/�)�)�)�
ZV�ZV�ZV�ZV�x#�#�#�#�#�#rc�&�eZdZd�Zd�Zd�Zd�ZdS)�Fillerc�B�t|dd���x|_|_dS)Nrr8)r�r�can)rrhs  rrVzFiller.__init__�s.�� &����	!�!�!�	��
�T�X�X�Xrc�j�t|jd��t|jd��fS)NrTr�)r#rr}s r�getsizezFiller.getsize�s+���4�8�G�$�%�%�s�4�8�H�+=�'>�'>�?�?rc�>�|j�||���dS)Nr8)rr�)rrr5s   r�setsizezFiller.setsize�s1��������	�	
�	
�	
�	
�	
rc��|���\}}|�td||z��td||z����dSrU)rrr�)r�dw�dhrr5s     rrFz
Filler.resize�sE���|�|�~�~���1����S��A��F�^�^�S��A��F�^�^�4�4�4�4�4rN)rrrrVrrrFrrrrr�sS���������@�@�@�
�
�
�5�5�5�5�5rrc��eZdZd�ZdS)r�c�0�||_||_||_dSrL)rSr�r)rrSr�rs    rrVzRow.__init__�s����
���	���	�	�	rNrYrrrr�r��s#����������rr�c��eZdZdd�ZdS)r�Nr�c��||_|j|_|j|_||_||_|j�|j�|j����|_	i|_
|�+|�||��}|D]}	|	|j
|	j<�n�g}
d}|jD]7}|jdkrt|
��}�|
�|j���8|�|
��}d}
d}t!|��D]>\}}|
|}|�t#dd|��}||j
|<|
|jz
}
||jz
}�?|�3t#|j|z
|j|
z
d��}|g|||�<||j
d<||_dS)N�<Other>r)r�r�rSrr@rZr[r\r]r�r^rZr_r�rC�get_rows_of_kindsr�r�)rrvr�rr@r�r�r�r_r��kinds�oidxr�r�rSr(r��others                  rrVzSample.__init__�s�����	��I��	��Z��
���	���
���(�(���);�);�D�M�)J�)J�K�K��
���
��"��,�,�[�'�B�B�D��
*�
*��()��
�a�f�%�%�
*��E��D��}�
+�
+���8�y�(�(��u�:�:�D���L�L���*�*�*�*��)�)�%�0�0�D��D��E�#�D�/�/�
#�
#���3��Q�x���;��a��D�/�/�C�&)��
�d�#���� �����"������D�J��.��	�D�0@�)�L�L��#(�'��T�$�Y��+0��
�i�(���	�	�	r)Nr�NrYrrrr�r��s(������)�)�)�)�)�)rr�c���eZdZdZdZd�Zd�Zd(d�Zd�Zd�Z	d	�Z
d
�Zd�Zd�Z
d
�Zd�Zd�Zd�Zd�ZeZd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Z d�Z!d �Z"d!�Z#d"�Z$d#�Z%d$�Z&d%�Z'd&�Z(d'S))r")�red�green�bluer��magenta�cyanr�r,c
�\��
�d�_|�_|jx�_}|jx�_}|r:|j�|��}|j�|���_n|j	�
���_t|��x�_�
t�jtd����_t!�jd����_t%�j���_�j�jd<�j�d�j����j�d	�j����j�d
�j����j�d�j����j�d�j���t!�jd
����_t%�j���_�j�jd<ddg}t9���_���jd|�j�j���_ gd�}t9���_!t!�jd����_"t%�j"���_#�j#�j"d<t%�j"d����_$��%�j$|�j!�j&���j#�'d�j$���t9���_(t%�j"d����_)��%�j)dg�j(�j*���j#�'d�j)���tW�j�jj,���_-|�.�j�j-���_/t!�jd����_0t%�j0���_1�j1�j0d<�j1�d�j2����j1�d�j3���t�jdth����_5tm�j5d�jd����_7��8|��d�_9tu���_;�j;�<d��t{�j5d�j;�j>t� ���_?t��j���_At�j���_Bt��jBt�jE�jF�jG�!���_Ht��j5d"�jHjI�jHjJd#�jHjK�jHjL�$���_Mt��j5d%�jHjN�jHjOd&�jHjP�jHjQ�jHjR�'���_S�jM�jH_M�jS�jH_Sg�_Ti�_Ud(D]u}�jH�V|��}t��j5|�jX��}|�Y|jZ���jT�[|��|�jU|<�vt����_]�j]�<d)���j�^d*�j]�j_�+��t����_`�j`�<d)���j�^d,�j`�ja�+��t����_b�jb�<d)���j�^d-�jb�jc�+��t���jB��x}	�_et��jB�jg�.��x}
�_h�jMj�iddd/d/t��0���jSj�id)dd/d/�1���jTdj�idd)d)t�d/d/�2���jTd)j�id)d)d)t�d/d/�2���j7�iddd/d/�1���j?�idd/d/d/�1��t��j���_l�j�mt��3���j�mt��3���j �mt��3���j"�mt��3���j-jo�mt��3���j0�mt��3���j�idd4t�t�zt�z�5����r���
�sd6�jt���je�u�j!�v���jF����w|��|
j�x��|
�yt��jHj�{��|	j�{������|
j�x��d7�_|�j�}���j�~��f�_d8d9d:d:d;�}������
�fd<�}|��dS)=Nrr�)r�r��Filerr�zNew Profile Browser)r�r=zOpen ProfilezClose WindowzClear Cache�Exit�Pane)r�rYr�Graph)r{rr�)r�r�r�r�r��TablezTable header)r��Header)r�r�zTable scrollbar)r��On�Offr�Help�About)r�r�r)r�r=r��Collectr�)r7r�r�r�samples)rr?r�rrrr�bytes)rr?r�rrrr(r{rzShow Control Panelr�z
Show Graphz
Show Table)r+r�)r�r�rr
r�rr)r�r�)r�rr��<Map>)r\i�)�r�)ik�=)r*�))rrr)rrr)rrr)rrrc�����j����j����j���z}|�jj����jj���zz
�_�j����_�j����_d�_	��
d�j��d�_dS)Nrz<Configure>r)
rfr�rr�r��tf_wanted_margin�lastwr��lasth�in_configurere�event_configure�inited)�rxrrs ��r�	initfinalz*ProfileBrowser.__init__.<locals>.initfinal�	s�����G��������'�'�)�)�D�J�,B�,B�,D�,D�D�B�$&����*�*�,�,�t�w�}�/H�/H�/J�/J�J�%L�D�!���/�/�1�1�D�J���0�0�2�2�D�J� !�D���J�J�}�d�&:�;�;�;��D�K�K�Kr)�r3r�rvrrh�path�abspath�dirname�
initialdirrw�getcwd�Toplevelrr�r&�menubarr �
filebuttonr;�filemenu�add_command�cmd_new�cmd_open�	cmd_close�cmd_clear_cache�cmd_exit�
panebutton�panemenur
�graphtypevar�modechooser�
cmd_graphtype�graphbutton�
var_tablemode�tablebutton�	tablemenu�
headermenu�addmodechooser�
cmd_tablemode�add_cascade�var_tablescrollbar�tablescrollbarmenu�cmd_tablescrollbarr�rr�rrv�
helpbutton�helpmenu�	cmd_about�cmd_helpr��	ctrlframera�
exitbutton�set_filename�
id_collectr�
collectingrr%�cmd_collect�
collectbuttonrtr|�disptabr�r�r7r�r�r�r�r�r�r��xcontrolr�r�r�r�r3r�r�r�r$r��update_tableframer�r�rCr"�var_showcontrolr$�cmd_showcontrol�
var_showgraph�
cmd_showgraph�
var_showtable�
cmd_showtabler=rfr&�cmd_dt_moved�d_tr�r!r�fillerr�r�r�r'r��gridmainre�	event_mapr�r��
load_filenamerHr;r�r��minsize�winfo_screenwidth�winfo_screenheight�maxsize�setusergeometry)rr�r#rvrh�choicesrr�r�rfrj�minsizesr5rs`            @rrVzProfileBrowser.__init__�sm
������������ ���3�"�x�'���f��	.��x�'�'��1�1�H�!�h�.�.�x�8�8�D�O�O�!�f�m�m�o�o�D�O�%��
�
�	
��
�U��T�Z��1�=�=�=���$�T�\��?�?�?����T�_�-�-��
�"&�-������
�!�!�'���	"�	?�	?�	?��
�!�!���
�!�N�N�N��
�!�!����!�O�O�O��
�!�!���)=�	"�	?�	?�	?��
�!�!���
�!�F�F�F�$�T�\��?�?�?����T�_�-�-��
�"&�-�����
��
��
&�K�K����+�+��L�'�7���t�1�3�3���
�
�
��'�[�[���%�d�l��A�A�A����d�.�/�/���#'�>���� ��t�/�~�F�F�F�������O������		
�	
�	
�	
��"�"����"�H�H�H�"+�+�+���"&���$5�#7�#7�#7���	
����#�
"�#��#��#�		
�	
�	
�	
��"�"���(�	#�	*�	*�	*�%�T�\�4�8�3F�G�G����*�*�4�:�t��G�G���$�T�\��?�?�?����T�_�-�-��
�"&�-������
�!�!����!�H�H�H��
�!�!���
�!�F�F�F���J���
�
�
���!���f�d�m�,1�3�3�3���	
���(�#�#�#���� �(�(�������A����(���i�26�/�15�1A�06�8�8�8���
�4�8�_�_��
��T�Z�����
�t�|�+6�+B�+/�+;�,0�,=�!�!�!���$�D�N�),�*.�,�*=�)-��);�)2�15��1G�04��0E�
&�&�&��
�$�D�N�),�*.�,�*=�)-��);�)0�15��1G�04��0E�04��0L�&�&�&��
�!%�
���� $�
������� ����	0�	0�D��\�-�-�d�3�3�F�#�����(>�@�@�G��!�!�'�"3�4�4�4��N�!�!�'�*�*�*�(/�D���%�%�)�|�|����� � ��#�#�#��
�%�%�&��)��(�	&�	*�	*�	*�
(�\�\�������q�!�!�!��
�%�%���'��&�	&�	(�	(�	(�
(�\�\�������q�!�!�!��
�%�%���'��&�	&�	(�	(�	(�
"�$���5�5�5��T�W� ���4�;L�M�M�M�M��d�h��
�� � �Q�q�q�q�� �K�K�K��
�� � �Q�q�q�q� �A�A�A���q���$�$��!��!�!�!�	%�	E�	E�	E���q���$�$��!��!�!�!�	%�	E�	E�	E������1�1�1��=�=�=�����A�a�a�a��@�@�@��T�Z�(�(�������$��'�'�'�����$��'�'�'�����4��(�(�(�����4��(�(�(����#�#��#�.�.�.�����$��'�'�'������q��1��Q���?�?�?��
�
����
�
�
�7�D�N�+�+�+������*�.�.�0�0�$�2B�C�C�C����8�$�$�$��	�"�"�$�$�$��
�
�c�$�,�,�9�9�;�;��(�/�/�1�1�3�3�	4�	4�	4�	�	�"�"�$�$�$�!����
�4�4�6�6��
�5�5�7�7�9���!� �!�!�
�
��	
������	�	�	�	�	�	�	�	�����rc�0�|�d��dS)N�about)rXr}s rrWzProfileBrowser.cmd_about�	s���
�
�g�����r�helpc���|jj}|j���d}	d|j���d<|j���|jj�|jt|jj|�����}|j	�
|��||j���d<dS#||j���d<wxYw)NrZr�)�inpickle)rvrwrr�r�r��
gsltextviewerr�pbhelpr�r)r�picknamerwrYr�s     rrXzProfileBrowser.cmd_help�	s���
�X�[���*�+�+�-�-�h�7��	<�4;�D�J�%�%�'�'��1��J��������
�+�+��
� ����(�;�;�,���A�
�H�%�%�a�(�(�(�4;�D�J�%�%�'�'��1�1�1��G�D�J�%�%�'�'��1�;�;�;�;s�B
C�C6c�8�|j���dSrL)r|r~r}s rrCzProfileBrowser.cmd_clear_cache
s���
��� � � � � rc�8�|j���dSrL)rr�r}s rrBzProfileBrowser.cmd_close
s���
�������rc���|j���r|���dS|j�(|j�|j��d|_dSdSrL)r]r��
event_collectr\rrqrus  rr^zProfileBrowser.cmd_collect
se���?��� � �	'���� � � � � ���*��
�'�'���8�8�8�"&�����+�*rc��|j���\}}|r�||jjkr |j�|j��n*|j|d�}|j�|��|jD])}|�t|j�����*|j	�
d|j��|_dS)Nr)
r|r�r�r�r�r�r�r�r�rrlr�r\)r�or"r�rKs     rr�zProfileBrowser.event_collect
s����z�!�!�#�#���1��	1��D�L�)�)�)���'�'��
�3�3�3�3��Z�����_����&�&�r�*�*�*��^�
1�
1������D�J���0�0�0�0��*�*�*�4��1C�D�D����rc��|xjdz
c_|j���|j���z}||jj���|jj���zz
}t||��}||jj���|jj���zz
}|j�|d��\}}|j	}||z}|j�||z
d��|j�
��|xjdzc_dSr�)r1rr�r�rjr�rfr�rFr.rJ)rr�r4�mx�_�
wanted_margins      rrizProfileBrowser.cmd_dt_moved
s(��	
���Q�����Z�
#�
#�
%�
%��
�(>�(>�(@�(@�
@���4�8�>�-�-�/�/�$�(�.�2L�2L�2N�2N�N�
O����R�[�[���4�7�=�,�,�.�.����1J�1J�1L�1L�L�
M����#�#�B��*�*���A��-�
�	�b�������r�M�)�1�-�-�-�����������Q�����rc�8�|j���dSrL)r�rr}s rrDzProfileBrowser.cmd_exit?
s����
�
�����rc��|j�|j���|j��|���dSrL)r�r�rGr�r|rPr}s rrIzProfileBrowser.cmd_graphtypeB
sC����!�!�$�"3�"7�"7�"9�"9�4�:�F�F�F��������rc�D�|j�|j��dSrL)r�r$r#r}s rr@zProfileBrowser.cmd_newF
s ����$�$�T�]�3�3�3�3�3rc��tj�|j|jddg���}|���}|r|�|��dSdS)N)zHeapy data filesz.hpy)z	All filesr)r9�	filetypes)rA�
filedialog�Openrr9�showrn)r�opr#s   rrAzProfileBrowser.cmd_openI
sp��
�
�
$�
$�T�Z�15��0L�0B�02�	%�'�'���7�7�9�9���	)����x�(�(�(�(�(�	)�	)rc�.�|���dSrL)�grid_thingsr}s rrdzProfileBrowser.cmd_showcontrolV
s���������rc�t�|j���r�|j���rq|j�|jjd��|j�|jj|jjz
d��|j�	��|�
��dSrU)rer�rgrfrFr�r�rrrJr�r}s rrfzProfileBrowser.cmd_showgraphY
s�����!�!�#�#�	$��(:�(>�(>�(@�(@�	$��G�N�N�D�G�.�.��2�2�2��L����� 5���8I� I�1�M�M�M��L�!�!�#�#�#��������rc��|j�|j���|j��|j���dSrL)rfr�rKr�r�r�r}s rrPzProfileBrowser.cmd_tablemodeb
sB�������*�.�.�0�0�$�2B�C�C�C���������rc�"�|j}|j���}|dkr d|_|�dd���dS|dkrd|_|�d��dS|dkrd|_|�d��dSJ�)Nr�rr�r"rr#)rfrRr�r�r�r�)rrfr)s   rrTz!ProfileBrowser.cmd_tablescrollbarf
s���
�W���#�'�'�)�)����;�;� !�B���I�I�A�A�I�.�.�.�.�.�
�$�Y�Y� !�B���O�O�A������
�%�Z�Z� !�B���O�O�A�������1rc�6�|j���d|j���|j���|j���|j���fz}|j�|��dS)Nz%dx%d+%d+%d)rr�r�r�r�r��geometry)r�gs  rrszProfileBrowser.setusergeometryu
s���	
�
��������J�"�"�$�$��J�#�#�%�%��J�"�"�$�$��J�"�"�$�$�	&�
&��
	
�
���A�����rc��t||���}t|��}||d<|�||||��|S)Nrr�)r r;rO)rrrrt�cmdvarr=r�r�s        rrHzProfileBrowser.modechooser�
sG���E��-�-�-���F�|�|����v�����D�'�6�7�;�;�;��
rc����	�
���
fd��	��	fd�}g�
|D]i}t��}�
�|��|�|d��|D]&}|�||||||dk����'�j�	��dS)Nc�l����d�d��D������dS)Nr�c�6�g|]}|�����Sr)r�)rP�vs  rrQzDProfileBrowser.addmodechooser.<locals>.setcmdvar.<locals>.<listcomp>�
s �� 7� 7� 7�Q������ 7� 7� 7r)r�join)r��varss��r�	setcmdvarz0ProfileBrowser.addmodechooser.<locals>.setcmdvar�
s6����J�J�s�x�x� 7� 7�$� 7� 7� 7�8�8�9�9�9�9�9rc�0��������dSrLr)r=r�s��rroz*ProfileBrowser.addmodechooser.<locals>.cmd�
s����I�K�K�K��G�I�I�I�I�Irr)r=r�r
r��columnbreak)r
rCrr�)rr�rtr�r=ror��varr0r�r�s   ``    @@rrOzProfileBrowser.addmodechooser�
s�������	:�	:�	:�	:�	:�	:�	�	�	�	�	�	����
	�
	�B��+�+�C��K�K������G�G�B�q�E�N�N�N��	
�	
���$�$���� �"#�b��e��%�����	
�	�	�����rc�@�|j���}|j���}|j���|jj���|jj���|jj���|j���|j	j���|�
��|j���|���dSrL)
rr�r�rY�grid_forgetr�rjrfr`rkrlrH�sizewidgets)r�ow�ohs   rr�zProfileBrowser.grid_things�
s���
�Z�
#�
#�
%�
%��
�Z�
$�
$�
&�
&����"�"�$�$�$����&�&�(�(�(����"�"�$�$�$���
�!�!�#�#�#��� � �"�"�"����%�%�'�'�'��
�
�����
�#�#�%�%�%��������rc�z�d}|j���}|r*|j�|ddddt���|dz
}d}|j���}|j���}||f}|r6|jj�d|ttzdd���|dz
}|r6|r4|j
j�d|ttz���|dz
}|r1|jj�d|ttzdd���|s|r/|j�|dttz���|dz
}|j
�dd��|j
j�|dttz���|j�dd��dS)Nrrr�)r�r�rrr
r�rr�)rcr�rYr�r!rergr�rr'rjrfr`rkr�	resizable)rr�rKr�r�r��gts       rrlzProfileBrowser.gridmain�
s������ �$�$�&�&���	��N���C��+,�1�1�Q�
 �
H�
H�
H��1�H�C�����"�"�$�$����"�"�$�$����V���	��L��#�#��&��1��)*��
$�
&�
&�
&�
�a�K�F��	��	��H�N���A�f�Q�q�S��A�A�A��a�K�F��	!��G�M���1�V�A�a�C�a�a��
!�
!�
!��	��	��L���#�a�%&�q�S�
�
 �
 �
 �
�1�H�C�����A�q�!�!�!������3�q��1���=�=�=��
���Q��"�"�"�"�"rc�b�|j|jurdS|jsdS|jrdS|j���}|j���}||jkr
||jkrdS|xjdz
c_||_||_|���|xjdzc_dSr
)	�widgetrr3r1r�r�r/r0r�)rrn�curw�curhs    rr2zProfileBrowser.event_configure�
s����<�t�z�)�)��F��{�	��F���	��F��z�%�%�'�'���z�&�&�(�(���4�:���$�$�*�"4�"4��F����Q������
���
����������Q�����rc�8	�|j���|j���}|j���}|j���}|j���}g}|j���r|�	|j
��|j���r|�	|j��|s|�	|j
��i}d}|D]J}|j}	|	���}
|	���}|
|z
|z}||z
dz
}
|p|
}|
||<�K|j���r
|jj}	n2|j���r
|j
j}	n|j
j}	|	���}|	���}||z
|z}||z
dz
}|	|j
jur>|j���s%||j
���dz
dz
}|s|�rd|j����r8|j����rt!|j
j�����}|||jj���zz}|j
�||z||j
��\}}
|j�||z
||j��|j���|j�t+|j
j���|jj�������n�|j���r'|j
�|||j
��n�|j���r'|j�|||j��n^|j
�|||j
��|j
�|j
���dd��|j���r|j
���dSdSdS)NrrRr�r�r)rr�r�r�r<r�r�rer�rCr�rgrfrkrcrr!rFrHrjr;r�rrJ)rr�r��mbx�mby�sfs�dys�didhr�r��diy�dihr�r?�fx�fw�cw�fdw�dpropr�s                    rr�zProfileBrowser.sizewidgets�
s:���
�������z�%�%�'�'���z�&�&�(�(���l�&�&�(�(���l�&�&�(�(������!�!�#�#�	%��J�J�t�|�$�$�$���!�!�#�#�	 ��J�J�t�w�����	$��J�J�t�{�#�#�#������	�	�B���A��-�-�/�/�C��.�.�"�"�C��s��S��B����Q��B��:�2�D��C��G�G���!�!�#�#�	"���
�A�A�
�
�
#�
#�
%�
%�	"���"�A�A���!�A�
�]�]�_�_��
�]�]�_�_��
�#�X��]���R�i�!�m�����!�!�!�$�*>�*B�*B�*D�*D�!����,�,�.�.�q�1�1�A�5�C��	(�3�	(��!�%�%�'�'�
D�D�,>�,B�,B�,D�,D�
D��d�l�0�<�<�>�>�?�?�������)B�)B�)D�)D�!D�E����,�,�S�5�[�#�d�l�:K�L�L���B�����s�R�x��T�W��6�6�6��
�+�+�-�-�-���"�"�3�t�|�'9�'F�'F�'H�'H�'+�w�}�'A�'A�'C�'C�$E�$E�F�F�F�F��#�'�'�)�)�
D���#�#�C��T�\�):�;�;�;�;��#�'�'�)�)�
D�����s�C���L�1�1�1�1���"�"�3��D�K�(8�9�9�9���#�#�D�K�$7�$7�$9�$9�!�$<�d�C�C�C��!�%�%�'�'�
(���%�%�'�'�'�'�'�%	(�	(�"
(�
(rc�<�|j�||��dSrL)r�rF)rr
rs   rrFzProfileBrowser.resize=s ������B��#�#�#�#�#rc��|j�d��|j�d|j��|j���dS)Nr)�<Unmap>)r�unbindre�event_unmapr�rrs  rrmzProfileBrowser.event_mapAsI���
���'�"�"�"��
���	�4�#3�4�4�4��
�������rc�z�|j�d��|j�d|j��dS)Nr�r))rr�rermrrs  rr�zProfileBrowser.event_unmapFs6���
���)�$�$�$��
������0�0�0�0�0rc�n�|j���d}	d|j���d<|j���|r|jj�|��}	|j�|��|j�	|j��|j
D])}|�t|j�����*|�
|��|���|j�d��|j
d�d��|j
d�d��|���|j�d���|r$|jj�|��|_n�#t*$r�t-d�����|jjj���\}}}t6j�|jd|zdd	�|jjj� ||����zz�
��YnwxYw||j���d<dS#||j���d<wxYw)NrZr�rr�r��	tracebackzError when loading
%r:
z%srr?)!rr�r�rvr6r7r|r�r�r�r�r�r�r[�
xrange_fitrxr��
yrange_fitrfr8r9�	Exception�
__import__�	print_exc�_root�sys�exc_inforArBrCr�r��format_exception_only)rr#rYrK�etyper
rOs       rrnzProfileBrowser.load_filenameJs����*�+�+�-�-�h�7��#	<�4;�D�J�%�%�'�'��1��J�������
;��8�=�0�0��:�:��
F��
����)�)�)���'�'��
�3�3�3���5�5�A��O�O�C��
�O�O�4�4�4�4��!�!�(�+�+�+����!�!�!���)�)�!�,�,�,���q�!�-�-�a�0�0�0���q�!�-�-�a�0�0�0����!�!�!�����Q��'�'�'��F�&*�h�m�&;�&;�H�&E�&E�D�O���3�	
�	
�	
��;�'�'�1�1�3�3�3�#'�8�>�#5�#>�#>�#@�#@� ��u�b��"�,�,��:�3�h�>��r�w�w�t�x�~�'?�'U�'U�!�5�(*�(*� +� +�+�+�-������	
����85<�D�J�%�%�'�'��1�1�1��G�D�J�%�%�'�'��1�;�;�;�;s2�AJ�8F;�D)J�;B7I5�2J�4I5�5J�J4c�8�|j���dSrL)rfr�r}s rrbz ProfileBrowser.update_tableframeqs����������rc��|dkrdS|jtt|����t|j��zS)Nrr�)�colorsr/�hashr�)rr�s  rr�zProfileBrowser.getkindcolorts:���9����7��;�s�4��:�:����T�[�1A�1A�A�B�Brc�Z�||_|sd}d|z}|j�|��dS)Nz	<No File>zHeapy Profile Browser: %s)r#rvr�)rr#r�s   rr[zProfileBrowser.set_filenamezs<�� ��
��	#�"�H�+�h�6������%� � � � � rc��|���|j|jkr|���|j�|���n|���|���dSrL)rr�r�r�rr+r��trackr}s r�
setnormposzProfileBrowser.setnormpos�sq���������9���#�#��O�O�����8���N�N������������
�
�����rc��dSrLrr}s r�
redraw_allzProfileBrowser.redraw_all�r5rc�:�|j�d��dSrU)�rcontrolr�r}s r�trackoffzProfileBrowser.trackoff�s���
�!�!�!�$�$�$�$�$rc�^�|j�t|j����dSrL)rarHr�r|r}s rr�zProfileBrowser.xrange_fit�s&���
���#�d�j�/�/�*�*�*�*�*rc�<�|j�d���dS)Nrr�)r�r2r}s rr�zProfileBrowser.yrange_fit�s!���� � �q� �)�)�)�)�)rN)rx))rrrr�r�rVrWrXrCrBr^r�rirDrIr@rArdrfrhrPrTrsrHrOr�rlr2r�rFrmr�rnrbr�r[r�r�r�r�r�rrrr"r"�sH������
K�F��K�n�n�n�b���<�<�<�<� !�!�!����	'�	'�	'�E�E�E����B������4�4�4�)�)�)�������"�M����
�
�
����$������6��� $#�$#�$#�L���0@(�@(�@(�H$�$�$����
1�1�1�%<�%<�%<�N���C�C�C�!�!�!�	�	�	�
�
�
�%�%�%�+�+�+�*�*�*�*�*rr"c� �eZdZdZdd�Zd�ZdS)�_GLUECLAMP_)z_parent:Usez_parent:pbhelpz_root.guppy.etc:textViewz
_root:hashlibz_root:osz
_root.os:pathz
_root:timez_root.guppy.gsl:TextNc�v�t|��}|�|��|���dS)a=pb( [filename: profilefilename+])

Create a Profile Browser window.

Argument
    filename: profilefilename+
        The name of a file containing profile data.
See also
    Heapy Profile Browser[1]
    Screenshot[2]
References
    [0] heapy_Use.html#heapykinds.Use.pb
    [1] ProfileBrowser.html
    [2] pbscreen.jpgN)rr$r )rr#�pas   r�pbz_GLUECLAMP_.pb�s6�� ��
�
��
���x�(�(�(�
���
�
�
�
�
rc��|d��dS)Nz
/tmp/x.hpyrr}s r�tpgz_GLUECLAMP_.tpg�s����\�����rrL)rrr�	_imports_r�r�rrrr�r��s>������	�I�����(����rr�)#rA�tkinter.filedialog�tkinter.messagebox�guppy.etc.Descriptorrr
rr%r*r1r9r;rNrUrRrar[rtr�r�rgrSr�r�r�r�rr&r=rdrr�r�r"r�rrr�<module>r�sx��������������1�1�1�1�1�1�,�,�,�,�,�I�,�,�,�$��
�
�
�$	�	�	����"�"�"�"�"�4�"�"�"�0�����i����,�,�,�,�,��,�,�,������&����0j�j�j�j�j�j�j�j�ZAN�AN�AN�AN�AN�AN�AN�AN�HH$�H$�H$�H$�H$�H$�H$�H$�V��^(�^(�^(�^(�^(�^(�^(�^(�B	X
(�X
(�X
(�X
(�X
(�X
(�X
(�X
(�v=6�=6�=6�=6�=6�=6�=6�=6�@+�+�+�+�+�+�+�+�\$$�$$�$$�$$�$$�$$�$$�$$�N9.�9.�9.�9.�9.�9.�9.�9.�x<5�<5�<5�<5�<5�<5�<5�<5�~l�l�l�l�l�l�l�l�^��������,^�^�^�^�^�^�^�^�B5�5�5�5�5�5�5�5�,��������*�*�*�*�*�*�*�*�Z^
*�^
*�^
*�^
*�^
*�^
*�^
*�^
*�B!�!�!�!�!�!�!�!�!�!r

Zerion Mini Shell 1.0