§
    XIŒjR²  ã                   óN  — d dl Z d dlZd dlmZ d dlZd dlZd dlZd dlZd dl	Z	d dl
Zd dlZ
d dlZ
d dlZ
d dlmZ d dlZd dlmZmZ d dlZd dlmZmZmZ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&m'Z'm(Z(m)Z)m*Z* d dl+m,Z, 	 dd	l-m.Z. dd
l.m/Z/m0Z0 nˆ# e1$ r€Z2 e3e2dd¦  «        Z4 e3e4dd¦  «        Z5 e6e4e1¦  «        rT e6e5e7¦  «        rHd e8e5¦  «        v r;dej9         :                    e	j;        ¦  «        v Z<e<r e1d¦  «        e2‚ e1d¦  «        e2‚‚ dZ2[2ww xY w ej=        e>¦  «        Z?e#j@        de#jA        de#jB        de#jC        de#jD        de#jE        de#jF        diZGed„ ¦   «         ZHi ZId e jJ        ¦   «         jK        z   ZLd„ ZMd0d„ZN G d„ de!¦  «        ZO G d„ de¦  «        ZP G d„ d e¦  «        ZQ G d!„ d"e ejR        ¦  «        ZSd#„ ZT ejU        eP¦  «         G d$„ d%ejV        ¦  «        ¦   «         ZW G d&„ d'e"ejR        ¦  «        ZX ejU        eP¦  «         G d(„ d)ejY        ¦  «        ¦   «         ZZ ejU        eP¦  «         G d*„ d+ej[        ¦  «        ¦   «         Z\ ejU        eP¦  «         G d,„ d-ej]        ¦  «        ¦   «         Z^eXZ_eSeQ_`        eXeQ_a        ejb         G d.„ d/e¦  «        ¦   «         ZcdS )1é    N)Úcontextmanager)ÚSimpleDialog)ÚImageÚImageTk)Ú_apiÚbackend_toolsÚcbookÚ_c_internal_utils)Ú_BackendÚFigureCanvasBaseÚFigureManagerBaseÚNavigationToolbar2Ú	TimerBaseÚToolContainerBaseÚcursorsÚ_ModeÚMouseButtonÚ
CloseEventÚKeyEventÚLocationEventÚ
MouseEventÚResizeEvent)ÚGcfé   )Ú_tkagg)ÚTK_PHOTO_COMPOSITE_OVERLAYÚTK_PHOTO_COMPOSITE_SETÚ	__cause__z&'_tkinter' has no attribute '__file__'z
/uv/pythonzñFailed to import tkagg backend. You appear to be using an outdated version of uv's managed Python distribution which is not compatible with Tk. Please upgrade to the latest uv version, then update Python with: `uv python upgrade --reinstall`a  Failed to import tkagg backend. This is likely caused by using a Python executable based on python-build-standalone, which is not compatible with Tk. Recent versions of python-build-standalone should be compatible with Tk. Please update your python version or select another backend.ÚfleurÚhand2ÚarrowÚ	crosshairÚwatchÚsb_h_double_arrowÚsb_v_double_arrowc               #   óð   K  — t          j        ¦   «         } 	 d V — | r(t          j        d         rt          j        | ¦  «         d S d S d S # | r't          j        d         rt          j        | ¦  «         w w w xY w)Nztk.window_focus)r
   ÚWin32_GetForegroundWindowÚmplÚrcParamsÚWin32_SetForegroundWindow)Ú
foregrounds    úMC:\Projects\DSCons\.venv\Lib\site-packages\matplotlib\backends\_backend_tk.pyÚ!_restore_foreground_window_at_endr-   E   s§   è è € å"Ô<Ñ>Ô>€JðDØˆˆˆàð 	D�#œ,Ð'8Ô9ð 	DÝÔ7¸
ÑCÔCÐCÐCÐCð	Dð 	Dð 	Dð 	Døˆ:ð 	D�#œ,Ð'8Ô9ð 	DÝÔ7¸
ÑCÔCÐCÐCð	Dð 	Døøøs   —A	 Á	,A5Ú	mpl_blit_c                 óü   — t                                | ¦  «        \  }}}}}|j                             dd|¦  «        sdS t	          j        |j                             ¦   «         t          |¦  «        ||||¦  «         dS )zÍ
    Thin wrapper to blit called via tkapp.call.

    *argsid* is a unique string identifier to fetch the correct arguments from
    the ``_blit_args`` dict, since arguments cannot be passed directly.
    ÚinfoÚcommandsN)Ú
_blit_argsÚpopÚtkÚcallr   ÚblitÚ
interpaddrÚstr)ÚargsidÚ
photoimageÚdataÚoffsetsÚbboxÚ	comp_rules         r,   Ú_blitr?   T   s€   € õ 2<·²ÀÑ1GÔ1GÑ.€J��g˜t YØŒ=×Ò˜f j°*Ñ=Ô=ð ØˆÝ
„K�
”×(Ò(Ñ*Ô*­C°
©O¬O¸TÀ9ÈgØñô ð ð ð ó    c                 óv  — t          j        |¦  «        }|j        dd…         \  }}|�Á|                     ¦   «         \  \  }}\  }	}
t	          t          j        |¦  «        d¦  «        }t          t          j        |	¦  «        |¦  «        }	t	          t          j        |¦  «        d¦  «        }t          t          j        |
¦  «        |¦  «        }
||	k    s||
k    rdS ||	||
f}t          }nd|d|f}t          }| ||||f}t          t          |¦  «        ¦  «        }|t          |<   	 | j                             t           |¦  «         dS # t          j        $ rb}dt          |¦  «        vr‚ | j                             t           t&          ¦  «         | j                             t           |¦  «         Y d}~dS d}~ww xY w)aÂ  
    Blit *aggimage* to *photoimage*.

    *offsets* is a tuple describing how to fill the ``offset`` field of the
    ``Tk_PhotoImageBlock`` struct: it should be (0, 1, 2, 3) for RGBA8888 data,
    (2, 1, 0, 3) for little-endian ARBG32 (i.e. GBRA8888) data and (1, 2, 3, 0)
    for big-endian ARGB32 (i.e. ARGB8888) data.

    If *bbox* is passed, it defines the region that gets blitted. That region
    will be composed with the previous data according to the alpha channel.
    Blitting will be clipped to pixels inside the canvas, including silently
    doing nothing if the *bbox* region is entirely outside the canvas.

    Tcl events must be dispatched to trigger a blit from a non-Tcl thread.
    Né   r   zinvalid command name)ÚnpÚasarrayÚshapeÚ	__array__ÚmaxÚmathÚfloorÚminÚceilr   r   r8   Úidr2   r4   r5   Ú_blit_tcl_nameÚTclErrorÚcreatecommandr?   )r:   Úaggimager<   r=   r;   ÚheightÚwidthÚx1Úy1Úx2Úy2Úbboxptrr>   Úargsr9   Úes                   r,   r6   r6   b   s«  € õ  Œ:�hÑÔ€DØ”J˜r ˜r”N�M€FˆEØÐØ!Ÿ^š^Ñ-Ô-Ñ‰ˆˆR‘(�2�rÝ•”˜B‘” Ñ#Ô#ˆÝ•”˜2‘” Ñ&Ô&ˆÝ•”˜B‘” Ñ#Ô#ˆÝ•”˜2‘” Ñ'Ô'ˆØ�ŠGˆG˜˜bš˜ØˆFØ�r˜2˜rÐ"ˆÝ.ˆ	ˆ	à�e˜Q Ð'ˆÝ*ˆ	ð �t˜W g¨yÐ8€Dõ •�D‘”‰]Œ]€FØ…JˆvÑð3ØŒ×Ò�>¨6Ñ2Ô2Ð2Ð2Ð2øÝŒ;ð 3ð 3ð 3Ø!­¨Q©¬Ð/Ð/ØØŒ×#Ò#¥NµEÑ:Ô:Ð:ØŒ×Ò�>¨6Ñ2Ô2Ð2Ð2Ð2Ð2Ð2Ð2Ð2øøøøð	3øøøs   Ä% E ÅF8ÅAF3Æ3F8c                   ó8   ‡ — e Zd ZdZˆ fd„Zd„ Zd„ Zˆ fd„Zˆ xZS )ÚTimerTkz<Subclass of `backend_bases.TimerBase` using Tk timer events.c                 óV   •— d | _          t          ¦   «         j        |i |¤Ž || _        d S ©N)Ú_timerÚsuperÚ__init__Úparent)Úselfra   rX   ÚkwargsÚ	__class__s       €r,   r`   zTimerTk.__init__›   s1   ø€ ØˆŒØ�‰ŒÔ˜$Ð) &Ð)Ð)Ð)ØˆŒˆˆr@   c                 ó‚   — |                       ¦   «          | j                             | j        | j        ¦  «        | _        d S r]   )Ú_timer_stopra   ÚafterÚ	_intervalÚ	_on_timerr^   ©rb   s    r,   Ú_timer_startzTimerTk._timer_start    s5   € Ø×ÒÑÔÐØ”k×'Ò'¨¬¸¼ÑGÔGˆŒˆˆr@   c                 ó`   — | j         �| j                             | j         ¦  «         d | _         d S r]   )r^   ra   Úafter_cancelrj   s    r,   rf   zTimerTk._timer_stop¤   s-   € ØŒ;Ð"ØŒK×$Ò$ T¤[Ñ1Ô1Ð1ØˆŒˆˆr@   c                 ó*  •‡ — t          ¦   «                              ¦   «          ‰ j        sb‰ j        r[‰ j        dk    r,‰ j                             ‰ j        ‰ j        ¦  «        ‰ _        d S ‰ j                             ˆ fd„¦  «        ‰ _        d S d ‰ _        d S )Nr   c                  óN   •— ‰ j                              ‰ j        ‰ j        ¦  «        S r]   )ra   rg   rh   ri   rj   s   €r,   ú<lambda>z#TimerTk._on_timer.<locals>.<lambda>¸   s   ø€ ˜DœK×-Ò-¨d¬n¸d¼nÑMÔM€ r@   )r_   ri   Ú_singler^   rh   ra   rg   Ú
after_idle)rb   rd   s   `€r,   ri   zTimerTk._on_timer©   s•   øø€ Ý‰Œ×ÒÑÔÐð
 Œ|ð 	 ¤ð 	ØŒ~ Ò!Ð!Ø"œk×/Ò/°´ÀÄÑOÔO�”��ð #œk×4Ò4ØMÐMÐMÐMñô �”��ð ˆDŒKˆKˆKr@   )	Ú__name__Ú
__module__Ú__qualname__Ú__doc__r`   rk   rf   ri   Ú__classcell__©rd   s   @r,   r[   r[   ˜   sx   ø€ € € € € ØFÐFðð ð ð ð ð
Hð Hð Hðð ð ð
ð ð ð ð ð ð ð ð r@   r[   c                   ó  ‡ — e Zd ZdZ ej        d„ ¦  «        Zd ˆ fd„	Zd!d„Zd„ Z	d„ Z
d„ Zd	„ Zd
„ Zd„ Zd„ Zd„ Zd"d„Zd„ Zd„ Zd„ Zd„ Zed„ ¦   «         Zeddœd„¦   «         Zd„ Zd„ Zd„ Zd„ Zd„ Zd#d„Zd„ Zd„ Z ˆ xZ!S )$ÚFigureCanvasTkr4   c                 ó   — t           S r]   )ÚFigureManagerTk)Úclss    r,   rp   zFigureCanvasTk.<lambda>À   s   € µ?€ r@   Nc                 óª  •‡	‡
‡‡— t          ¦   «                              |¦  «         d | _        d | _        |                      d¬¦  «        \  }}t          j        |d||dd¬¦  «        | _        t          j        | j        ||¬¦  «        | _	        | j         
                    |dz  |dz  | j	        ¬¦  «        | _        | j                             d	| j        ¦  «         | j                             d
| j        ¦  «         | j                             d| j        ¦  «         | j                             d| j        ¦  «         | j                             d| j        ¦  «         | j                             d| j        ¦  «         | j                             d| j        ¦  «         dD ]"}| j                             || j        ¦  «         Œ#dD ]"}| j                             || j        ¦  «         Œ#dD ]"}| j                             || j        ¦  «         Œ#dD ]"}| j                             || j        ¦  «         Œ#| j                             ¦   «         }t3          j        | ¦  «        Št3          j        |¦  «        Šˆ
ˆˆfd„}|                     d|d¦  «        Š
ˆ	ˆˆfd„}|                     d|d¦  «        Š	| j                             ¦   «          d | _        d | _        d S )NT©ÚphysicalÚwhiter   )ÚmasterÚ
backgroundrR   rQ   ÚborderwidthÚhighlightthickness)r‚   rR   rQ   rB   ©Úimagez<Configure>z<Map>z<Key>z<Motion>ú<Enter>ú<Leave>z<KeyRelease>)z
<Button-1>z
<Button-2>z
<Button-3>)z<Double-Button-1>z<Double-Button-2>z<Double-Button-3>)z<ButtonRelease-1>z<ButtonRelease-2>z<ButtonRelease-3>)z
<Button-4>z
<Button-5>c                 óŽ   •—  ‰¦   «         }|€$ ‰¦   «         }|�|                      d‰¦  «         d S |                     | ¦  «        S )Nú<MouseWheel>)ÚunbindÚscroll_event_windows)Úeventrb   ÚrootÚscroll_event_windows_idÚweakrootÚweakselfs      €€€r,   r�   z5FigureCanvasTk.__init__.<locals>.scroll_event_windowsë   sR   ø€ Ø�8‘:”:ˆDØˆ|Ø�x‘z”z�ØÐ#Ø—K’K Ð0GÑHÔHÐHØ�Ø×,Ò,¨UÑ3Ô3Ð3r@   r‹   ú+c                 óÌ   •—  ‰¦   «         }|€$ ‰¦   «         }|�|                      d‰¦  «         d S | j        |j        u r$t          d|¦  «                             ¦   «          d S d S )Nú	<Destroy>Úclose_event)rŒ   ÚwidgetÚ	_tkcanvasr   Ú_process)rŽ   rb   r�   Úfilter_destroy_idr‘   r’   s      €€€r,   Úfilter_destroyz/FigureCanvasTk.__init__.<locals>.filter_destroy÷   sw   ø€ Ø�8‘:”:ˆDØˆ|Ø�x‘z”z�ØÐ#Ø—K’K Ð->Ñ?Ô?Ð?Ø�ØŒ|˜tœ~Ð-Ð-Ý˜=¨$Ñ/Ô/×8Ò8Ñ:Ô:Ð:Ð:Ð:ð .Ð-r@   r•   )r_   r`   Ú_idle_draw_idÚ_event_loop_idÚget_width_heightr4   ÚCanvasr˜   Ú
PhotoImageÚ_tkphotoÚcreate_imageÚ_tkcanvas_image_regionÚbindÚresizeÚ_update_device_pixel_ratioÚ	key_pressÚmotion_notify_eventÚenter_notify_eventÚleave_notify_eventÚkey_releaseÚbutton_press_eventÚbutton_dblclick_eventÚbutton_release_eventÚscroll_eventÚwinfo_toplevelÚweakrefÚrefÚ	focus_setÚ_rubberband_rect_blackÚ_rubberband_rect_white)rb   Úfigurer‚   ÚwÚhÚnamer�   r�   r›   rš   r�   r‘   r’   rd   s            @@@@€r,   r`   zFigureCanvasTk.__init__Â   s  øøøøø€ Ý‰Œ×Ò˜Ñ Ô Ð Ø!ˆÔØ"ˆÔØ×$Ò$¨dÐ$Ñ3Ô3‰ˆˆ1ÝœØ gØ˜A¨1ÀðDñ Dô DˆŒõ œØ”>¨°1ð6ñ 6ô 6ˆŒà&*¤n×&AÒ&AØˆq‰D�!�Q‘$˜dœmð 'Bñ '-ô '-ˆÔ#àŒ×Ò˜M¨4¬;Ñ7Ô7Ð7ØŒ×Ò˜G TÔ%DÑEÔEÐEØŒ×Ò˜G T¤^Ñ4Ô4Ð4ØŒ×Ò˜J¨Ô(@ÑAÔAÐAØŒ×Ò˜I tÔ'>Ñ?Ô?Ð?ØŒ×Ò˜I tÔ'>Ñ?Ô?Ð?ØŒ×Ò˜N¨DÔ,<Ñ=Ô=Ð=Ø>ð 	?ð 	?ˆDØŒN×Ò  dÔ&=Ñ>Ô>Ð>Ð>ðOð 	Bð 	BˆDàŒN×Ò  dÔ&@ÑAÔAÐAÐAðOð 	Að 	AˆDàŒN×Ò  dÔ&?Ñ@Ô@Ð@Ð@ð /ð 	9ð 	9ˆDØŒN×Ò  dÔ&7Ñ8Ô8Ð8Ð8ð
 Œ~×,Ò,Ñ.Ô.ˆõ ”;˜tÑ$Ô$ˆÝ”;˜tÑ$Ô$ˆð	4ð 	4ð 	4ð 	4ð 	4ð 	4ð 	4ð #'§)¢)¨NÐ<PÐRUÑ"VÔ"VÐð	;ð 	;ð 	;ð 	;ð 	;ð 	;ð 	;ð !ŸIšI k°>À3ÑGÔGÐàŒ× Ò Ñ"Ô"Ð"à&*ˆÔ#Ø&*ˆÔ#Ð#Ð#r@   c                 ó  — d }t           j        dk    r2t          | j        j                             dd¦  «        dz  d¦  «        }n-t           j        dk    r| j                             d¦  «        dz  }|��|                      |¦  «        r}|                      d	¬
¦  «        \  }}| j         	                    ||¬¦  «         |  
                    | j                             ¦   «         | j                             ¦   «         ¦  «         d S d S d S )NÚwin32r4   ÚscalinggUUUUUUõ?rB   ÚlinuxÚ1ié`   Tr   ©rR   rQ   )ÚsysÚplatformÚroundr˜   r4   r5   Úwinfo_fpixelsÚ_set_device_pixel_ratiorž   Ú	configureÚ_resize_figure_for_canvas_sizeÚwinfo_widthÚwinfo_height)rb   rŽ   Úratior·   r¸   s        r,   r¦   z)FigureCanvasTk._update_device_pixel_ratio  s
  € ØˆÝŒ<˜7Ò"Ð"õ ˜$œ.Ô+×0Ò0°°yÑAÔAÀWÑMÈqÑQÔQˆEˆEÝŒ\˜WÒ$Ð$Ø”N×0Ò0°Ñ6Ô6¸Ñ;ˆEØÐ ×!=Ò!=¸eÑ!DÔ!DÐð ×(Ò(°$Ð(Ñ7Ô7‰DˆAˆqØŒN×$Ò$¨1°QÐ$Ñ7Ô7Ð7Ø×/Ò/Ø”×*Ò*Ñ,Ô,Ø”×+Ò+Ñ-Ô-ñ/ô /ð /ð /ð /ð ÐÐÐr@   c                 óF   — |                       |j        |j        ¦  «         d S r]   )rÇ   rR   rQ   ©rb   rŽ   s     r,   r¥   zFigureCanvasTk.resize  s"   € Ø×+Ò+¨E¬K¸¼ÑFÔFÐFÐFÐFr@   c                 ó,  — |dk    s|dk    rdS | j         j        }||z  }||z  }| j                              ||d¬¦  «         | j                             | j        ¦  «         | j                             t          |¦  «        t          |¦  «        ¬¦  «         | j         	                    t          |dz  ¦  «        t          |dz  ¦  «        | j        ¬¦  «        | _        t          d| ¦  «                             ¦   «          |                      ¦   «          dS )	z;Update figure size and redraw based on a given canvas size.r   NF)ÚforwardrÀ   rB   r†   Úresize_event)r¶   ÚdpiÚset_size_inchesr˜   Údeleter£   r¡   rÆ   Úintr¢   r   r™   Ú	draw_idle)rb   rR   rQ   ÚdpivalÚwinchÚhinchs         r,   rÇ   z-FigureCanvasTk._resize_figure_for_canvas_size  s  € à�AŠ:ˆ:˜ 1š˜ØˆFð ””ˆØ˜‘ˆØ˜‘ˆØŒ×#Ò# E¨5¸%Ð#Ñ@Ô@Ð@àŒ×Ò˜dÔ9Ñ:Ô:Ð:ØŒ×Ò¥c¨%¡j¤j½¸V¹¼ÐÑEÔEÐEØ&*¤n×&AÒ&AÝ�˜‘	‰NŒN�C ¨¡
™OœO°4´=ð 'Bñ 'Bô 'BˆÔ#å�N DÑ)Ô)×2Ò2Ñ4Ô4Ð4Ø�ŠÑÔÐÐÐr@   c                 ób   ‡ — ‰ j         rd S ˆ fd„}‰ j                             |¦  «        ‰ _         d S )Nc                  óX   •— 	 ‰                      ¦   «          d ‰_        d S # d ‰_        w xY wr]   )Údrawrœ   ©rX   rb   s    €r,   Ú	idle_drawz+FigureCanvasTk.draw_idle.<locals>.idle_draw6  s7   ø€ ð*Ø—	’	‘”�à%)�Ô"Ð"Ð"ø T�Ô"Ð)Ð)Ð)Ð)s   ƒ   	))rœ   r˜   rr   )rb   rÜ   s   ` r,   rÔ   zFigureCanvasTk.draw_idle1  sL   ø€ àÔð 	ØˆFð	*ð 	*ð 	*ð 	*ð 	*ð "œ^×6Ò6°yÑAÔAˆÔÐÐr@   c                 ó   — | j         S )z¿
        Return the Tk widget used to implement FigureCanvasTkAgg.

        Although the initial implementation uses a Tk canvas,  this routine
        is intended to hide that fact.
        )r˜   rj   s    r,   Úget_tk_widgetzFigureCanvasTk.get_tk_widget>  s   € ð Œ~Ðr@   c                 ó¼   — |                       d¬¦  «        d         }| j                             |j        ¦  «        || j                             |j        ¦  «        z
  fS )NTr   r   )rž   r˜   ÚcanvasxÚxÚcanvasyÚy)rb   rŽ   rQ   s      r,   Ú_event_mpl_coordsz FigureCanvasTk._event_mpl_coordsG  sX   € ð ×&Ò&°Ð&Ñ5Ô5°aÔ8ˆØ”×&Ò& u¤wÑ/Ô/à˜œ×/Ò/°´Ñ8Ô8Ñ8ð:ð 	:r@   c                 óÂ   — t          d| g|                      |¦  «        ¢R |                      |¦  «        |                      |¦  «        |dœŽ                     ¦   «          d S )Nr¨   )ÚbuttonsÚ	modifiersÚguiEvent)r   rä   Ú_mpl_buttonsÚ_mpl_modifiersr™   rÌ   s     r,   r¨   z"FigureCanvasTk.motion_notify_eventO  so   € ÝÐ(¨$ð 	#Ø×*Ò*¨5Ñ1Ô1ð	#ð 	#à×,Ò,¨UÑ3Ô3Ø!×0Ò0°Ñ7Ô7Ø!ð		#ð 	#ð 	#÷ $,¢8¡:¤: : : :r@   c                 óš   — t          d| g|                      |¦  «        ¢R |                      |¦  «        |dœŽ                     ¦   «          d S )NÚfigure_enter_event©rç   rè   ©r   rä   rê   r™   rÌ   s     r,   r©   z!FigureCanvasTk.enter_notify_eventV  ó^   € ÝÐ*¨Dð 	&Ø×-Ò-¨eÑ4Ô4ð	&ð 	&à $× 3Ò 3°EÑ :Ô :Ø$ð	&ð 	&ð 	&÷ '/¢h¡j¤j j j jr@   c                 óš   — t          d| g|                      |¦  «        ¢R |                      |¦  «        |dœŽ                     ¦   «          d S )NÚfigure_leave_eventrí   rî   rÌ   s     r,   rª   z!FigureCanvasTk.leave_notify_event\  rï   r@   Fc                 óF  — | j                              ¦   «          t          |dd ¦  «        }t          j        dk    rdddœ                     ||¦  «        }t          d| g|                      |¦  «        ¢|‘R ||                      |¦  «        |dœŽ 	                    ¦   «          d S )NÚnumÚdarwiné   rB   ©rB   rõ   r¬   )Údblclickrç   rè   )
r˜   r³   ÚgetattrrÁ   rÂ   Úgetr   rä   rê   r™   )rb   rŽ   r÷   ró   s       r,   r¬   z!FigureCanvasTk.button_press_eventb  s¶   € àŒ× Ò Ñ"Ô"Ð"å�e˜U DÑ)Ô)ˆÝŒ<˜8Ò#Ð#Ø˜A�,�,×"Ò" 3¨Ñ,Ô,ˆCÝÐ'¨ð 	#Ø×*Ò*¨5Ñ1Ô1ð	#Ø36ð	#ð 	#ØAIØ!×0Ò0°Ñ7Ô7Ø!ð	#ð 	#ð 	#÷ $,¢8¡:¤: : : :r@   c                 ó4   — |                       |d¬¦  «         d S )NT)r÷   )r¬   rÌ   s     r,   r­   z$FigureCanvasTk.button_dblclick_eventn  s!   € Ø×Ò °ÐÑ5Ô5Ð5Ð5Ð5r@   c                 ó  — t          |dd ¦  «        }t          j        dk    rdddœ                     ||¦  «        }t	          d| g|                      |¦  «        ¢|‘R |                      |¦  «        |dœŽ                     ¦   «          d S )Nró   rô   rõ   rB   rö   r®   rí   )rø   rÁ   rÂ   rù   r   rä   rê   r™   )rb   rŽ   ró   s      r,   r®   z#FigureCanvasTk.button_release_eventq  sŸ   € Ý�e˜U DÑ)Ô)ˆÝŒ<˜8Ò#Ð#Ø˜A�,�,×"Ò" 3¨Ñ,Ô,ˆCÝÐ)¨4ð 	#Ø×*Ò*¨5Ñ1Ô1ð	#Ø36ð	#ð 	#à!×0Ò0°Ñ7Ô7Ø!ð	#ð 	#ð 	#÷ $,¢8¡:¤: : : :r@   c                 óâ   — t          |dd ¦  «        }|dk    rdn	|dk    rdnd}t          d| g|                      |¦  «        ¢R ||                      |¦  «        |dœŽ                     ¦   «          d S )	Nró   é   r   é   éÿÿÿÿr   r¯   ©Ústeprç   rè   )rø   r   rä   rê   r™   )rb   rŽ   ró   r  s       r,   r¯   zFigureCanvasTk.scroll_eventz  sŽ   € Ý�e˜U DÑ)Ô)ˆØ˜1’H�Hˆqˆq¨¨qª¨ " "°aˆÝ�> 4ð 	#Ø×*Ò*¨5Ñ1Ô1ð	#ð 	#Ø8<Ø!×0Ò0°Ñ7Ô7Ø!ð	#ð 	#ð 	#÷ $,¢8¡:¤: : : :r@   c           
      óþ  — |j                              |j        |j        ¦  «        }|| j        k    rdS | j                             |j        |                     ¦   «         z
  ¦  «        }|                      d¬¦  «        d         | j                             |j        | 	                    ¦   «         z
  ¦  «        z
  }|j
        dz  }t          d| ||||                      |¦  «        |¬¦  «                             ¦   «          dS )zMouseWheel event processorNTr   r   éx   r¯   r   )r—   Úwinfo_containingÚx_rootÚy_rootr˜   rà   Úwinfo_rootxrž   râ   Úwinfo_rootyÚdeltar   rê   r™   )rb   rŽ   r·   rá   rã   r  s         r,   r�   z#FigureCanvasTk.scroll_event_windows‚  sã   € ð ŒL×)Ò)¨%¬,¸¼ÑEÔEˆØ�”ÒÐØˆFØŒN×"Ò" 5¤<°!·-²-±/´/Ñ#AÑBÔBˆØ×"Ò"¨DÐ"Ñ1Ô1°!Ô4ØŒ~×%Ò% e¤l°Q·]²]±_´_Ñ&DÑEÔEñFˆàŒ{˜SÑ ˆÝ�> 4Ø�a˜d¨d×.AÒ.AÀ%Ñ.HÔ.HØ!ð	#ñ 	#ô 	#ç#+¢8¡:¤: : : :r@   c                 óL  ‡ — t           j        dk    rCt          j        dft          j        dft          j        dft          j        dft          j        dfgnBt          j        dft          j        dft          j        dft          j        dft          j        dfg}ˆ fd„|D ¦   «         S )Nrô   é   i   i   i   i   c                 ó.   •— g | ]\  }}‰j         |z  ¯|‘ŒS © ©Ústate)Ú.0r¹   ÚmaskrŽ   s      €r,   ú
<listcomp>z/FigureCanvasTk._mpl_buttons.<locals>.<listcomp>¤  s)   ø€ ÐGÐGÐG™˜˜t°E´KÀ$Ñ4FÐG�ÐGÐGÐGr@   )rÁ   rÂ   r   ÚLEFTÚRIGHTÚMIDDLEÚBACKÚFORWARD)rŽ   rç   s   ` r,   ré   zFigureCanvasTk._mpl_buttons�  sµ   ø€ õ Œ\˜XÒ%Ð%õ Ô˜vÐ&ÝÔ Ð'ÝÔ Ð)ÝÔ˜wÐ'ÝÔ  'Ð*ð
ð 
õ Ô˜vÐ&ÝÔ Ð(ÝÔ Ð(ÝÔ˜wÐ'ÝÔ  'Ð*ð,
ð 	ð  HÐGÐGÐG yÐGÑGÔGÐGr@   ©Úexcludec                ó|   ‡ ‡— t           j        dk    rg d¢nt           j        dk    rg d¢ng d¢}ˆ ˆfd„|D ¦   «         S )Nr»   )©Úctrlrý   Úcontrol)Úalti   r  ©Úshiftr   r   rô   )r  )r  é   r  r  )Úcmdé   r"  )r  )r  r#  r  r  )r_   é@   r_   c                 ó<   •— g | ]\  }}}‰j         |z  r‰|k    ¯|‘ŒS r  r  )r  r¹   r  ÚkeyrŽ   r  s       €€r,   r  z1FigureCanvasTk._mpl_modifiers.<locals>.<listcomp>½  s>   ø€ ð :ð :ð :™˜˜t SØ”; Ñ%ð:Ø*1°Sª.¨.ð Ø*8¨.¨.r@   )rÁ   rÂ   )rŽ   r  rç   s   `` r,   rê   zFigureCanvasTk._mpl_modifiers¦  s�   øø€ õ Œ\˜WÒ$Ð$ð	
ð 
ð 
ð 
õ Œ\˜XÒ%Ð%ð+
ð +
ð +
ð +
ð
,
ð ,
ð ,
ð 	ð:ð :ð :ð :ð :¨Ið :ñ :ô :ð 	:r@   c                 óâ   — |j         }t          j        ||j        ¦  «        }|�K|                      ||¬¦  «        }d|v r|r|                     d¦  «         d                     g |¢|‘¦  «        S d S )Nr  r   r“   )Úcharr	   Ú_unikey_or_keysym_to_mplkeyÚkeysymrê   ÚremoveÚjoin)rb   rŽ   Úunikeyr&  Úmodss        r,   Ú_get_keyzFigureCanvasTk._get_keyÀ  sz   € Ø”ˆÝÔ/°¸¼ÑEÔEˆØˆ?Ø×&Ò& u°cÐ&Ñ:Ô:ˆDà˜$ˆˆ 6ˆØ—’˜GÑ$Ô$Ð$Ø—8’8˜L˜d˜L C˜LÑ)Ô)Ð)ð ˆ?r@   c                 óš   — t          d| |                      |¦  «        g|                      |¦  «        ¢R d|iŽ                     ¦   «          d S )NÚkey_press_eventrè   ©r   r/  rä   r™   rÌ   s     r,   r§   zFigureCanvasTk.key_pressÊ  sZ   € ÝÐ" DØ—’˜uÑ%Ô%ð	!Ø(,×(>Ò(>¸uÑ(EÔ(Eð	!ð 	!ð 	!àð	!ð 	!ç!)¢¡¤   r@   c                 óš   — t          d| |                      |¦  «        g|                      |¦  «        ¢R d|iŽ                     ¦   «          d S )NÚkey_release_eventrè   r2  rÌ   s     r,   r«   zFigureCanvasTk.key_releaseÏ  sZ   € ÝÐ$ dØ—’˜uÑ%Ô%ð	!Ø(,×(>Ò(>¸uÑ(EÔ(Eð	!ð 	!ð 	!àð	!ð 	!ç!)¢¡¤   r@   c                 ó,   — t          | j        g|¢R i |¤ŽS r]   )r[   r˜   )rb   rX   rc   s      r,   Ú	new_timerzFigureCanvasTk.new_timerÔ  s"   € å�t”~Ð7¨Ð7Ð7Ð7°Ð7Ð7Ð7r@   c                 ó8   — | j                              ¦   «          d S r]   )r˜   Úupdaterj   s    r,   Úflush_eventszFigureCanvasTk.flush_eventsØ  s   € àŒ×ÒÑÔÐÐÐr@   r   c                 ó  — |dk    rbt          d|z  ¦  «        }|dk    r&| j                             || j        ¦  «        | _        n$| j                             | j        ¦  «        | _        | j                             ¦   «          d S )Nr   iè  )rÓ   r˜   rg   Ústop_event_loopr�   rr   Úmainloop)rb   ÚtimeoutÚmillisecondss      r,   Ústart_event_loopzFigureCanvasTk.start_event_loopÜ  sˆ   € à�QŠ;ˆ;Ý˜t g™~Ñ.Ô.ˆLØ˜aÒÐØ&*¤n×&:Ò&:Ø  $Ô"6ñ'8ô '8�Ô#Ð#ð '+¤n×&?Ò&?ØÔ(ñ'*ô '*�Ô#àŒ×ÒÑ!Ô!Ð!Ð!Ð!r@   c                 ó’   — | j         r&| j                             | j         ¦  «         d | _         | j                             ¦   «          d S r]   )r�   r˜   rm   Úquitrj   s    r,   r;  zFigureCanvasTk.stop_event_loopè  sH   € àÔð 	'ØŒN×'Ò'¨Ô(;Ñ<Ô<Ð<Ø"&ˆDÔØŒ×ÒÑÔÐÐÐr@   c                 ó€   — 	 | j                              t          |         ¬¦  «         d S # t          j        $ r Y d S w xY w)N)Úcursor)r˜   rÆ   ÚcursordÚtkinterrN   )rb   rC  s     r,   Ú
set_cursorzFigureCanvasTk.set_cursorï  sO   € ð	ØŒN×$Ò$­G°F¬OÐ$Ñ<Ô<Ð<Ð<Ð<øÝÔð 	ð 	ð 	ØˆDˆDð	øøøs   ‚&* ª=¼=)NNr]   )F)r   )"rs   rt   ru   Úrequired_interactive_frameworkr   ÚclasspropertyÚmanager_classr`   r¦   r¥   rÇ   rÔ   rÞ   rä   r¨   r©   rª   r¬   r­   r®   r¯   r�   Ústaticmethodré   rê   r/  r§   r«   r6  r9  r?  r;  rF  rw   rx   s   @r,   rz   rz   ¾   s  ø€ € € € € Ø%)Ð"Ø&�DÔ&Ð'BÐ'BÑCÔC€MðC+ð C+ð C+ð C+ð C+ð C+ðJ/ð /ð /ð /ð*Gð Gð Gðð ð ð$Bð Bð Bðð ð ð:ð :ð :ð.ð .ð .ð1ð 1ð 1ð1ð 1ð 1ð
.ð 
.ð 
.ð 
.ð6ð 6ð 6ð.ð .ð .ð.ð .ð .ð.ð .ð .ð ðHð Hñ „\ðHð* Ø)-ð :ð :ð :ð :ñ „\ð:ð2*ð *ð *ð,ð ,ð ,ð
,ð ,ð ,ð
8ð 8ð 8ð ð  ð  ð
"ð 
"ð 
"ð 
"ðð ð ðð ð ð ð ð ð r@   rz   c                   ó€   ‡ — e Zd ZdZdZˆ fd„Zed„ ¦   «         Zed„ ¦   «         Zd„ Z	d„ Z
d„ Zˆ fd	„Zd
„ Zd„ Zd„ Zˆ xZS )r|   zí
    Attributes
    ----------
    canvas : `FigureCanvas`
        The FigureCanvas instance
    num : int or str
        The Figure number
    toolbar : tk.Toolbar
        The tk.Toolbar
    window : tk.Window
        The tk.Window
    Fc                 ó8  •— || _         t          ¦   «                              ||¦  «         | j                              ¦   «          | j        j                             t          j        t          j	        d¬¦  «         t          |                     ¦   «         d¦  «        }t          j        |dd|› �¬¦  «        | _        d| _        t          j        ||j                             ¦   «         ¦  «        r%| j                             d| j        ¦  «        | _        d	| _        d S )
Nr   )ÚsideÚfillÚexpandr!  r¿   Ú
window_dpi)r‚   Úvaluer¹   Ú ÚwriteF)Úwindowr_   r`   ÚwithdrawÚcanvasr˜   Úpackr4   ÚTOPÚBOTHrÓ   Úwm_frameÚIntVarÚ_window_dpiÚ_window_dpi_cbnamer   Úenable_dpi_awarenessr7   Ú	trace_addÚ_update_window_dpiÚ_shown)rb   rV  ró   rT  Úwindow_framerd   s        €r,   r`   zFigureManagerTk.__init__  sÿ   ø€ ØˆŒÝ‰Œ×Ò˜ Ñ%Ô%Ð%ØŒ×ÒÑÔÐð 	ŒÔ×"Ò"­¬µR´WÀQÐ"ÑGÔGÐGõ
 ˜6Ÿ?š?Ñ,Ô,¨bÑ1Ô1ˆÝœ9¨F¸"Ø*E°|Ð*EÐ*EðGñ Gô GˆÔà"$ˆÔÝÔ& |°V´Y×5IÒ5IÑ5KÔ5KÑLÔLð 	2Ø&*Ô&6×&@Ò&@Ø˜Ô0ñ'2ô '2ˆDÔ#ð ˆŒˆˆr@   c                 óÎ  — t          ¦   «         5  t          j        ¦   «         €&t          j        ¦   «          t	          j        ¦   «          t          j        d¬¦  «        }|                     ¦   «          t          t          j
        d¦  «        ¦  «        }t          j        ||¬¦  «        }t          t          j
        d¦  «        ¦  «        }t          j        ||¬¦  «        }|                     d||¦  «          |||¬¦  «        }	 | |	||¦  «        }
t          j        ¦   «         r(|
                     ¦   «          |	                     ¦   «          |
cd d d ¦  «         S # 1 swxY w Y   d S )NÚ
matplotlib)Ú	classNamezimages/matplotlib.png)Úfiler‚   zimages/matplotlib_large.pngF©r‚   )r-   r	   Ú"_get_running_interactive_frameworkÚ_setup_new_guiappr
   Ú Win32_SetProcessDpiAwareness_maxr4   ÚTkrU  r8   Ú_get_data_pathr   r    Ú	iconphotor(   Úis_interactiveÚshowrÔ   )r}   Úcanvas_classr¶   ró   rT  Ú
icon_fnameÚicon_imgÚicon_fname_largeÚicon_img_largerV  Úmanagers              r,   Úcreate_with_canvasz"FigureManagerTk.create_with_canvas  s­  € õ /Ñ0Ô0ð 	ð 	ÝÔ7Ñ9Ô9ÐAÝÔ'Ñ)Ô)Ð)Ý!ÔBÑDÔDÐDÝ”U \Ð2Ñ2Ô2ˆFØ�OŠOÑÔÐõ �UÔ1Ø'ñ)ô )ñ *ô *ˆJåÔ)¨zÀ&ÐIÑIÔIˆHå"¥5Ô#7Ø-ñ$/ô $/ñ  0ô  0Ðå$Ô/Ø%¨fð6ñ 6ô 6ˆNð ×Ò˜U N°HÑ=Ô=Ð=à!�\ &°Ð8Ñ8Ô8ˆFØ�c˜& # vÑ.Ô.ˆGÝÔ!Ñ#Ô#ð #Ø—’‘”�Ø× Ò Ñ"Ô"Ð"Øð;	ð 	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	ð 	ð 	s   �D>EÅEÅ!Ec                 óÜ   — t          j        ¦   «         }|rV|d         }t          |¦  «        }|j        rd S d|_        	 |j                             ¦   «          d|_        d S # d|_        w xY wd S )Nr   TF)r   Úget_all_fig_managersÚtypeÚ_owns_mainlooprT  r<  )r}   ÚmanagersÚfirst_managerrI  s       r,   Ústart_main_loopzFigureManagerTk.start_main_loop=  sŒ   € åÔ+Ñ-Ô-ˆØð 		5Ø$ QœKˆMÝ  Ñ/Ô/ˆMØÔ+ð Ø�Ø+/ˆMÔ(ð5ØÔ$×-Ò-Ñ/Ô/Ð/à/4�Ô,Ð,Ð,ø¨u�Ô,Ð4Ð4Ð4Ð4ð		5ð 		5s   ¾A  Á 	A)c                 ó  — | j                              ¦   «         }| j                             dd|dz  ¦  «         | j        r.t          | j        d¦  «        r| j                             ¦   «          | j                             ¦   «          d S )Nr4   r¼   éH   Ú_rescale)	r\  rù   rT  r5   ÚtoolbarÚhasattrr€  rV  r¦   )rb   rX   Únewdpis      r,   r`  z"FigureManagerTk._update_window_dpiK  s   € ØÔ!×%Ò%Ñ'Ô'ˆØŒ×Ò˜˜y¨&°2©+Ñ6Ô6Ð6ØŒ<ð 	$�G D¤L°*Ñ=Ô=ð 	$ØŒL×!Ò!Ñ#Ô#Ð#ØŒ×.Ò.Ñ0Ô0Ð0Ð0Ð0r@   c           	      ó¶   — d}||k    s||k    r)t           j        dk    rt          d|› d|› d|› d�¦  «        ‚| j        j                             ||¬¦  «         d S )NiÀ\ r½   z/You have requested to resize the Tk window to (z, z), one of which is bigger than zÔ.  At larger sizes xorg will either exit with an error on newer versions (~1.20) or cause corruption on older version (~1.19).  We do not expect a window over a million pixel wide or tall to be intended behavior.rÀ   )rÁ   rÂ   Ú
ValueErrorrV  r˜   rÆ   )rb   rR   rQ   Úmax_sizes       r,   r¥   zFigureManagerTk.resizeR  s‘   € Øˆà�HÒÐ ¨Ò 1Ð 1µs´|ÀwÒ7NÐ7NÝð+Ø!&ð+ð +Ø*0ð+ð +à"*ð+ð +ð +ñ,ô ,ð ,ð 	ŒÔ×'Ò'¨e¸FÐ'ÑCÔCÐCÐCÐCr@   c                 ó  ‡ — t          ¦   «         5  ‰ j        sXˆ fd„}‰ j                             d|¦  «         ‰ j                             ¦   «          ‰ j        j                             ¦   «          n‰ j                             ¦   «          t          j
        d         rJ‰ j        j        j                             dd¦  «         ‰ j        j        j                             dd¦  «         d‰ _        d d d ¦  «         d S # 1 swxY w Y   d S )Nc                  ó0   •— t          j        ‰¦  «         d S r]   )r   ÚdestroyrÛ   s    €r,   r‰  z%FigureManagerTk.show.<locals>.destroyc  s   ø€ Ý”K Ñ%Ô%Ð%Ð%Ð%r@   ÚWM_DELETE_WINDOWzfigure.raise_windowz-topmostr   r   T)r-   ra  rT  ÚprotocolÚ	deiconifyrV  r˜   r³   rÔ   r(   r)   ru  Ú
attributes)rb   r‰  s   ` r,   ro  zFigureManagerTk.show`  sE  ø€ Ý.Ñ0Ô0ð 	ð 	Ø”;ð (ð&ð &ð &ð &ð &à”×$Ò$Ð%7¸ÑAÔAÐAØ”×%Ò%Ñ'Ô'Ð'Ø”Ô%×/Ò/Ñ1Ô1Ð1Ð1à”×%Ò%Ñ'Ô'Ð'ÝŒ|Ð1Ô2ð EØ”Ô#Ô*×5Ò5°jÀ!ÑDÔDÐDØ”Ô#Ô*×5Ò5°jÀ!ÑDÔDÐDØˆDŒKð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	ð 	ð 	s   �CC9Ã9C=Ä C=c                 ó8  •‡ — ‰ j         j        r)‰ j         j                             ‰ j         j        ¦  «         ‰ j         j        r)‰ j         j                             ‰ j         j        ¦  «         ‰ j        r ‰ j                             d‰ j        ¦  «         ˆ fd„}t          j	        ¦   «         dk    r'‰ j
                             ‰ j
        j        d|¦  «         n#‰ j
                             ¦   «           |¦   «          t          ¦   «                              ¦   «          d S )NrS  c                  ó¨   •— ‰ j                              ¦   «          ‰ j        r.t          j        ¦   «         s‰ j                              ¦   «          d S d S d S r]   )rT  r‰  rz  r   Úget_num_fig_managersrA  rj   s   €r,   Údelayed_destroyz0FigureManagerTk.destroy.<locals>.delayed_destroy|  s`   ø€ ØŒK×ÒÑ!Ô!Ð!àÔ"ð #­3Ô+CÑ+EÔ+Eð #Ø”× Ò Ñ"Ô"Ð"Ð"Ð"ð#ð #ð #ð #r@   r4   r   )rV  rœ   r˜   rm   r�   r]  r\  Útrace_remover	   rh  rT  rr   rg   r8  r_   r‰  )rb   rX   r‘  rd   s   `  €r,   r‰  zFigureManagerTk.destroyo  s  øø€ ØŒ;Ô$ð 	JØŒKÔ!×.Ò.¨t¬{Ô/HÑIÔIÐIØŒ;Ô%ð 	KØŒKÔ!×.Ò.¨t¬{Ô/IÑJÔJÐJØÔ"ð 	LØÔ×)Ò)¨'°4Ô3JÑKÔKÐKð	#ð 	#ð 	#ð 	#ð 	#õ Ô3Ñ5Ô5¸Ò=Ð=àŒK×"Ò" 4¤;Ô#4°a¸ÑIÔIÐIÐIàŒK×ÒÑ Ô Ð ØˆOÑÔÐÝ‰Œ�ŠÑÔÐÐÐr@   c                 ó4   — | j                              ¦   «         S r]   ©rT  Úwm_titlerj   s    r,   Úget_window_titlez FigureManagerTk.get_window_titleŠ  s   € ØŒ{×#Ò#Ñ%Ô%Ð%r@   c                 ó:   — | j                              |¦  «         d S r]   r”  )rb   Útitles     r,   Úset_window_titlez FigureManagerTk.set_window_title�  s   € ØŒ×Ò˜UÑ#Ô#Ð#Ð#Ð#r@   c                 óŒ   — t          | j                             d¦  «        ¦  «        }| j                             d| ¦  «         d S )Nz-fullscreen)ÚboolrT  r�  )rb   Úis_fullscreens     r,   Úfull_screen_togglez"FigureManagerTk.full_screen_toggle�  s@   € Ý˜Tœ[×3Ò3°MÑBÔBÑCÔCˆØŒ×Ò˜}°-Ð.?Ñ@Ô@Ð@Ð@Ð@r@   )rs   rt   ru   rv   rz  r`   Úclassmethodrv  r}  r`  r¥   ro  r‰  r–  r™  r�  rw   rx   s   @r,   r|   r|   ö  sý   ø€ € € € € ðð ð €Nðð ð ð ð ð* ðð ñ „[ððB ð5ð 5ñ „[ð5ð1ð 1ð 1ðDð Dð Dðð ð ðð ð ð ð ð6&ð &ð &ð$ð $ð $ðAð Að Að Að Að Að Ar@   r|   c                   ór   ‡ — e Zd Zdddœd„Zd„ Zd„ Zˆ fd„Zˆ fd„Zd	„ Zd
„ Z	d„ Z
d„ Zd„ Zd„ Zd„ Zd„ Zˆ xZS )ÚNavigationToolbar2TkNT)Úpack_toolbarc                ó4  — |€|                      ¦   «         j        }t          j                             | |d|                     ¦   «         d         d¬¦  «         |                      d¦  «         i | _        | j        D ]†\  }}}}|€|  	                    ¦   «          Œ|  
                    |t          t          j        d|› d�¦  «        ¦  «        |d	v t          | |¦  «        ¬
¦  «        x| j        |<   }|�t          ||¦  «         Œ‡t           j                             |d¬¦  «        | _        t          j        | | j        d¬¦  «        }	|	                     t          j        ¬¦  «         t          j        | ¬¦  «        | _        t          j        | | j        | j        t          j        ¬¦  «        | _        | j                             t          j        ¬¦  «         t5          j        | |¦  «         |r-|                      t          j        t          j        ¬¦  «         dS dS )a  
        Parameters
        ----------
        canvas : `FigureCanvas`
            The figure canvas on which to operate.
        window : tk.Window
            The tk.Window which owns this toolbar.
        pack_toolbar : bool, default: True
            If True, add the toolbar to the parent's pack manager's packing
            list during initialization with ``side="bottom"`` and ``fill="x"``.
            If you want to use the toolbar with a different layout manager, use
            ``pack_toolbar=False``.
        NrB   r   é2   )r‚   r„   rR   rQ   Fzimages/ú.png)ÚzoomÚpan)ÚtoggleÚcommandé
   )r�   Úsizeõ   Â 
Â ©r‚   ÚfontÚtext©rM  rg  )r‚   r­  ÚtextvariableÚjustify©rM  rN  )rÞ   r‚   r4   ÚFramer`   rž   Úpack_propagateÚ_buttonsÚ	toolitemsÚ_SpacerÚ_Buttonr8   r	   rl  rø   Úadd_tooltiprE  r­  ÚFontÚ_label_fontÚLabelrW  r  Ú	StringVarÚmessageÚ_message_labelr   ÚBOTTOMÚX)
rb   rV  rT  r¡  r®  Útooltip_textÚ
image_fileÚcallbackÚbuttonÚlabels
             r,   r`   zNavigationToolbar2Tk.__init__–  s  € ð ˆ>Ø×)Ò)Ñ+Ô+Ô2ˆFÝ
Œ×Ò˜$ v¸1Ø &× 7Ò 7Ñ 9Ô 9¸!Ô <ÀRð 	ñ 	Iô 	Ið 	Ið 	×Ò˜EÑ"Ô"Ð"àˆŒØ8<¼ð 	6ð 	6Ñ4ˆD�, 
¨HØˆ|à—’‘”��à/3¯|ª|ØÝ�Ô,Ð-G°zÐ-GÐ-GÐ-GÑHÔHÑIÔIØ# Ð6Ý# D¨(Ñ3Ô3ð	 0<ñ 0ô 0ð �”˜dÑ# fð  Ð+Ý ¨Ñ5Ô5Ð5øå"œ<×,Ò,°&¸rÐ,ÑBÔBˆÔõ ” ¨4Ô+;ØFðHñ Hô Hˆà�
Š
�œˆ
Ñ!Ô!Ð!å”|¨4Ð0Ñ0Ô0ˆŒÝ œh¨d¸Ô9IØ48´LÝ/1¬xð9ñ 9ô 9ˆÔð 	Ô× Ò ¥b¤hÐ Ñ/Ô/Ð/åÔ# D¨&Ñ1Ô1Ð1Øð 	1Ø�IŠI�2œ9­2¬4ˆIÑ0Ô0Ð0Ð0Ð0ð	1ð 	1r@   c                 ó  — |                       ¦   «         D ]×}t          |t          j        t          j        f¦  «        r-t          |d¦  «        rt                               | |¦  «         ŒTŒUt          |t          j        ¦  «        r-| 	                    d¬¦  «         | 
                    d¬¦  «         Œœt          |t          j        ¦  «        rŒ·t                               d|j        ¦  «         ŒØ| j         	                    d¬¦  «         d	S )
a¬  
        Scale all children of the toolbar to current DPI setting.

        Before this is called, the Tk scaling setting will have been updated to
        match the new DPI. Tk widgets do not update for changes to scaling, but
        all measurements made after the change will match the new scaling. Thus
        this function re-applies all the same sizes in points, which Tk will
        scale correctly to pixels.
        Ú_image_fileÚ18p)rQ   Ú3p)ÚpadxzUnknown child class %sr©  ©rª  N)Úwinfo_childrenÚ
isinstancer4   ÚButtonÚCheckbuttonr‚  r   Ú_set_image_for_buttonr³  rÆ   Úpack_configurer¼  Ú_logÚwarningÚwinfo_classr»  )rb   r—   s     r,   r€  zNavigationToolbar2Tk._rescaleÕ  s  € ð ×)Ò)Ñ+Ô+ð 	Kð 	KˆFÝ˜&¥2¤9­b¬nÐ"=Ñ>Ô>ð KÝ˜6 =Ñ1Ô1ð å(×>Ò>¸tÀVÑLÔLÐLÐLð Ý˜F¥B¤HÑ-Ô-ð KØ× Ò ¨Ð Ñ.Ô.Ð.Ø×%Ò%¨4Ð%Ñ0Ô0Ð0Ð0Ý˜F¥B¤HÑ-Ô-ð KØå—’Ð5°vÔ7IÑJÔJÐJÐJØÔ×"Ò"¨Ð"Ñ+Ô+Ð+Ð+Ð+r@   c                 óð   — dt           j        fdt           j        ffD ]X\  }}|| j        v rJ| j        |k    r | j        |                              ¦   «          Œ9| j        |                              ¦   «          ŒYd S )NÚZoomÚPan)r   ÚZOOMÚPANrµ  ÚmodeÚselectÚdeselect)rb   r®  rÛ  s      r,   Ú_update_buttons_checkedz,NavigationToolbar2Tk._update_buttons_checkedð  s‚   € à"¥E¤JÐ/°%½¼Ð1CÐDð 	3ð 	3‰JˆD�$Ø�t”}Ð$Ð$Ø”9 Ò$Ð$Ø”M $Ô'×.Ò.Ñ0Ô0Ð0Ð0à”M $Ô'×0Ò0Ñ2Ô2Ð2øð	3ð 	3r@   c                 ó\   •—  t          ¦   «         j        |Ž  |                      ¦   «          d S r]   )r_   r¦  rÞ  ©rb   rX   rd   s     €r,   r¦  zNavigationToolbar2Tk.panù  s.   ø€ Ø�‰ŒŒ�TÐÐØ×$Ò$Ñ&Ô&Ð&Ð&Ð&r@   c                 ó\   •—  t          ¦   «         j        |Ž  |                      ¦   «          d S r]   )r_   r¥  rÞ  rà  s     €r,   r¥  zNavigationToolbar2Tk.zoomý  s.   ø€ Ø�‰ŒŒ�dÐÐØ×$Ò$Ñ&Ô&Ð&Ð&Ð&r@   c                 ó:   — | j                              |¦  «         d S r]   )r¾  Úset©rb   Úss     r,   Úset_messagez NavigationToolbar2Tk.set_message  s   € ØŒ×Ò˜ÑÔÐÐÐr@   c                 óê  — | j         j        r)| j         j                             | j         j        ¦  «         | j         j        r)| j         j                             | j         j        ¦  «         | j                              d¬¦  «        d         }||z
  }||z
  }| j         j                             ||||d¬¦  «        | j         _        | j         j                             ||||dd¬¦  «        | j         _        d S )	NTr   r   Úblack)Úoutliner�   )rõ   rõ   )ré  Údash)rV  rµ   r˜   rÒ   r´   rž   Úcreate_rectangle)rb   rŽ   Úx0Úy0rS   rT   rQ   s          r,   Údraw_rubberbandz$NavigationToolbar2Tk.draw_rubberband  s÷   € àŒ;Ô-ð 	MØŒKÔ!×(Ò(¨¬Ô)KÑLÔLÐLØŒ;Ô-ð 	MØŒKÔ!×(Ò(¨¬Ô)KÑLÔLÐLØ”×-Ò-°tÐ-Ñ<Ô<¸QÔ?ˆØ�b‰[ˆØ�b‰[ˆàŒKÔ!×2Ò2Ø�B˜˜B¨ð 3ñ 1ô 1ð 	ŒÔ*ð ŒKÔ!×2Ò2Ø�B˜˜B¨°fð 3ñ >ô >ð 	ŒÔ*Ð*Ð*r@   c                 ó  — | j         j        r5| j         j                             | j         j        ¦  «         d | j         _        | j         j        r7| j         j                             | j         j        ¦  «         d | j         _        d S d S r]   )rV  rµ   r˜   rÒ   r´   rj   s    r,   Úremove_rubberbandz&NavigationToolbar2Tk.remove_rubberband  s|   € ØŒ;Ô-ð 	6ØŒKÔ!×(Ò(¨¬Ô)KÑLÔLÐLØ15ˆDŒKÔ.ØŒ;Ô-ð 	6ØŒKÔ!×(Ò(¨¬Ô)KÑLÔLÐLØ15ˆDŒKÔ.Ð.Ð.ð	6ð 	6r@   c           	      óh  ‡‡— ‰j         €dS t          j        d‰j         ¦  «        }|                     |j                             dd¦  «        ¦  «        }‰                     d¦  «        }ˆfd„Šˆfd„}d„ }t          j        |d	k    r| 	                    ¦   «         r|n|¦  «        5 }| 
                    d
¦  «        }t          j        |                     ||f¦  «        | ¬¦  «        }|‰_        dt          j        ‰                     ‰                     d¦  «        ¦  «        ¦  «        z  }	 |||	¦  «        }
t          j        |
                     ||f¦  «        | ¬¦  «        }|‰_        ddd¦  «         n# 1 swxY w Y    |d¦  «        rd|i}nd|i}t)          ‰t*          j        ¦  «        rr‰                     d¦  «        dk    rY| j        dk    rd}n5 ‰d¦  «        \  }}} ‰d¦  «        \  }}}||z   dz  ||z   dz  ||z   dz  f} ||¦  «        r||d<   n||d<    ‰j        di |¤dddœ¤Ž dS )z�
        Set the image for a button based on its pixel size.

        The pixel size is determined by the DPI scaling of the window.
        NÚimagesr¤  z
_large.pngrÉ  c                 óT   •— ‰                      ‰                     | ¦  «        ¦  «        S r]   )Ú	winfo_rgbÚcget)Ú
color_namerÅ  s    €r,   Ú
_get_colorz>NavigationToolbar2Tk._set_image_for_button.<locals>._get_color-  s#   ø€ à×#Ò# F§K¢K°
Ñ$;Ô$;Ñ<Ô<Ð<r@   c                 ój   •— t          | t          ¦  «        r ‰| ¦  «        } t          | ¦  «        dk     S )Ng    àÿß@)rÎ  r8   rG   )Úcolorr÷  s    €r,   Ú_is_darkz<NavigationToolbar2Tk._set_image_for_button.<locals>._is_dark1  s5   ø€ Ý˜%¥Ñ%Ô%ð *Ø"˜
 5Ñ)Ô)�Ý�u‘:”: 	Ò)Ð)r@   c                 óÐ   — t          j        | ¦  «                             ¦   «         }|dd d…f         dk                         d¬¦  «        }|||d d…f<   t	          j        |¦  «        S )N.rõ   r   rÿ   )Úaxis)rC   rD   ÚcopyÚallr   Ú	fromarray)r‡   rù  Ú
image_dataÚ
black_masks       r,   Ú_recolor_iconzANavigationToolbar2Tk._set_image_for_button.<locals>._recolor_icon6  sg   € Ýœ EÑ*Ô*×/Ò/Ñ1Ô1ˆJØ$ S¨"¨1¨" WÔ-°Ò2×7Ò7¸RÐ7Ñ@Ô@ˆJØ).ˆJ�z 2 A 2�~Ñ&Ý”? :Ñ.Ô.Ð.r@   é   ÚRGBArg  g ààào?r+   rƒ   r‡   ÚselectcolorrR  Úx11ÚactivebackgroundrB   Úselectimage)rQ   rR   r  )rÈ  r	   rl  Ú	with_namer¹   ÚreplaceÚwinfo_pixelsr   ÚopenÚexistsÚconvertr   r    r¥   Ú_ntimagerC   Úarrayrô  rõ  Ú_ntimage_altrÎ  r4   rÐ  Ú_windowingsystemrÆ   )rb   rÅ  Úpath_regularÚ
path_largerª  rú  r  Úimr‡   r+   Úim_altÚ	image_altÚimage_kwargsr  Úr1Úg1Úb1Úr2Úg2Úb2r÷  s    `                  @r,   rÑ  z*NavigationToolbar2Tk._set_image_for_button  sý  øø€ ð ÔÐ%ØˆFõ Ô+¨H°fÔ6HÑIÔIˆØ!×+Ò+ØÔ×%Ò% f¨lÑ;Ô;ñ=ô =ˆ
à×"Ò" 5Ñ)Ô)ˆð	=ð 	=ð 	=ð 	=ð 	=ð	*ð 	*ð 	*ð 	*ð 	*ð
	/ð 	/ð 	/õ ŒZ t¨b¢y y°Z×5FÒ5FÑ5HÔ5H y˜
˜
Ø)ñ+ô +ð 	,Ø.0à—’˜FÑ#Ô#ˆBÝÔ& r§y¢y°$¸°Ñ'>Ô'>ÀtÐLÑLÔLˆEØ#ˆFŒOð &­¬Ø× Ò  §¢¨\Ñ!:Ô!:Ñ;Ô;ñ*=ô *=ñ =ˆJà"�] 2 zÑ2Ô2ˆFÝÔ*Ø—’˜t T˜lÑ+Ô+°Dð:ñ :ô :ˆIà"+ˆFÔð	,ð 	,ð 	,ñ 	,ô 	,ð 	,ð 	,ð 	,ð 	,ð 	,ð 	,øøøð 	,ð 	,ð 	,ð 	,ð ˆ8�LÑ!Ô!ð 	,ð
 $ YÐ/ˆLˆLà# UÐ+ˆLõ
 �v�rœ~Ñ.Ô.ð	4à—’˜MÑ*Ô*¨bÒ0Ð0àÔ$¨Ò-Ð-Ø+��ð
 (˜Z¨Ñ6Ô6‘
��B˜Ø'˜ZÐ(:Ñ;Ô;‘
��B˜Ø " 2¡ q™y¨2¨b©5°!©)°b¸±e¸Q±YÐ?�Øˆx˜Ñ$Ô$ð 4Ø.7�˜]Ñ+Ð+à.3�˜]Ñ+àˆÔÐCÐC˜<ÐC°¸UÐCÐCÐCÐCÐCÐCÐCs   Â&CE5Å5E9Å<E9c           
      óp  — |st          j        | ||ddd¬¦  «        }n8t          j        | ¬¦  «        }t          j        | ||d|ddd¬¦  «        }||_        ||_        |�t                               | |¦  «         n|                     | j	        ¬¦  «         | 
                    t           j        ¬	¦  «         |S )
NÚflatÚgroover   )r‚   r®  r¨  ÚreliefÚ
overreliefr„   rg  F)r‚   r®  r¨  ÚindicatoronÚvariableÚ	offreliefr#  r„   )r­  r¯  )r4   rÏ  r[  rÐ  ÚvarrÈ  r   rÑ  rÆ   r»  rW  r  )rb   r®  rÃ  r§  r¨  Úbr'  s          r,   r¸  zNavigationToolbar2Tk._Buttonk  sÎ   € Øð 	Ý”	Ø $°Ø¨(Àðñ ô ˆAˆAõ ”) 4Ð(Ñ(Ô(ˆCÝ”Ø $°ÀUØ¨¸8Øðñ ô ˆAð
 ˆAŒEØ"ˆŒØÐ!å ×6Ò6°t¸QÑ?Ô?Ð?Ð?à�KŠK˜TÔ-ˆKÑ.Ô.Ð.Ø	�Š•B”GˆÑÔÐØˆr@   c                 óŒ   — t          j        | dt           j        d¬¦  «        }|                     t           j        d¬¦  «         |S )NrÉ  ÚDarkGray)r‚   rQ   r"  ÚbgrÊ  )rM  rË  )r4   r³  ÚRIDGErW  r  rä  s     r,   r·  zNavigationToolbar2Tk._Spacer‡  s9   € åŒH˜D¨µr´xÀJÐOÑOÔOˆØ	�Š•B”G $ˆÑ'Ô'Ð'Øˆr@   c           	      ó„  — | j                              ¦   «         }d„ t          |                     ¦   «         ¦  «        D ¦   «         }| j                              ¦   «         }| j                              ¦   «         |         }t          j        | j                              ¦   «         |¦  «        }d}t          j
                             t          j        d         ¦  «        }t          j        | j                              ¦   «         ¦  «        j        }	t$          j                             | j                              ¦   «         j        d||||	|¬¦  «        }
|
dv rd S |dk    r9t          j
                             t/          |
¦  «        ¦  «        t          j        d<   t          j        |
¦  «        j        dd …         dk    rd }n ||                     ¦   «                  d         }	 | j         j                             |
|¬	¦  «         |
S # t8          $ r8}t$          j                             d
t/          |¦  «        ¦  «         Y d }~d S d }~ww xY w)Nc                 óV   — g | ]&\  }}|d                       d„ |D ¦   «         ¦  «        f‘Œ'S )ú c              3   ó    K  — | ]	}d |› �V — Œ
dS )z*.Nr  )r  Úexts     r,   ú	<genexpr>z>NavigationToolbar2Tk.save_figure.<locals>.<listcomp>.<genexpr>�  s(   è è € Ð7Ð7¨3˜J ˜J˜JÐ7Ð7Ð7Ð7Ð7Ð7r@   )r,  )r  r¹   Úextss      r,   r  z4NavigationToolbar2Tk.save_figure.<locals>.<listcomp>�  sL   € ð 
ð 
ð 
á��dð �3—8’8Ð7Ð7°$Ð7Ñ7Ô7Ñ7Ô7Ð8ð
ð 
ð 
r@   rR  zsavefig.directoryzSave the figure)r‚   r˜  Ú	filetypesÚdefaultextensionÚ
initialdirÚinitialfileÚtypevariable)rR  r  r   r   )ÚformatzError saving file)rV  Úget_supported_filetypes_groupedÚsortedÚitemsÚget_default_filetypeÚget_supported_filetypesr4   r½  rÞ   ÚosÚpathÚ
expanduserr(   r)   ÚpathlibÚPathÚget_default_filenameÚstemrE  Ú
filedialogÚasksaveasfilenamer‚   Údirnamer8   Úsuffixrù   r¶   ÚsavefigÚ	ExceptionÚ
messageboxÚ	showerror)rb   rX   r4  Útk_filetypesÚdefault_extensionÚdefault_filetypeÚfiletype_variabler5  r6  r7  ÚfnameÚ	extensionrY   s                r,   Úsave_figurez NavigationToolbar2Tk.save_figure�  s%  € Ø”K×?Ò?ÑAÔAˆ	ð
ð 
å$ Y§_¢_Ñ%6Ô%6Ñ7Ô7ð
ñ 
ô 
ˆð
 !œK×<Ò<Ñ>Ô>ÐØœ;×>Ò>Ñ@Ô@ÐARÔSÐÝœL¨¬×)BÒ)BÑ)DÔ)DÐFVÑWÔWÐð ÐÝ”W×'Ò'­¬Ð5HÔ(IÑJÔJˆ
õ ”l 4¤;×#CÒ#CÑ#EÔ#EÑFÔFÔKˆÝÔ"×4Ò4Ø”;×,Ò,Ñ.Ô.Ô5Ø#Ø"Ø-Ø!Ø#Ø*ð 5ñ ô ˆð �HÐÐØ�4à˜ÒÐå”—’¥ E¡
¤
Ñ+Ô+õ ŒLÐ,Ñ-õ
 Œ<˜ÑÔÔ% a b bÔ)¨RÒ/Ð/ØˆIˆIà!Ð"3×"7Ò"7Ñ"9Ô"9Ô:¸1Ô=ˆIð	FØŒKÔ×&Ò& u°YÐ&Ñ?Ô?Ð?ØˆLøÝð 	Fð 	Fð 	FÝÔ×(Ò(Ð)<½cÀ!¹f¼fÑEÔEÐEÐEÐEÐEÐEÐEÐEøøøøð	Føøøs   Ç"G= Ç=
H?È-H:È:H?c                 ó"  — t           j        t           j        dœ}| j        j        dk    }| j        j        t          | j        ¦  «        dz
  k     }d| j        v r||         | j        d         d<   d| j        v r||         | j        d         d<   d S d S )N)TFr   r   ÚBackr  ÚForward)r4   ÚNORMALÚDISABLEDÚ
_nav_stackÚ_posÚlenrµ  )rb   Ú	state_mapÚcan_backÚcan_forwards       r,   Úset_history_buttonsz(NavigationToolbar2Tk.set_history_buttonsÁ  s”   € Ýœ9­R¬[Ð9Ð9ˆ	Ø”?Ô'¨!Ò+ˆØ”oÔ*­S°´Ñ-AÔ-AÀAÑ-EÒEˆØ�T”]Ð"Ð"Ø-6°xÔ-@ˆDŒM˜&Ô! 'Ñ*Ø˜œÐ%Ð%Ø09¸+Ô0FˆDŒM˜)Ô$ WÑ-Ð-Ð-ð &Ð%r@   r]   )rs   rt   ru   r`   r€  rÞ  r¦  r¥  ræ  rî  rð  rÑ  r¸  r·  rT  r`  rw   rx   s   @r,   r   r   •  s  ø€ € € € € ð=1¸Dð =1ð =1ð =1ð =1ð =1ð~,ð ,ð ,ð63ð 3ð 3ð'ð 'ð 'ð 'ð 'ð'ð 'ð 'ð 'ð 'ðð ð ð?ð ?ð ?ð 6ð 6ð 6ðMDð MDð MDð^ð ð ð8ð ð ð2Fð 2Fð 2FðhGð Gð Gð Gð Gð Gð Gr@   r   c                 ó€   ‡ ‡‡— d Šˆˆˆ fd„}ˆfd„}‰                       d|¦  «         ‰                       d|¦  «         d S )Nc                 óP  •— ‰s‰sdS ‰                      d¦  «        \  }}}}|‰                     ¦   «         z   ‰                     ¦   «         z   }|‰                     ¦   «         z   }t	          j        ‰¦  «        Š‰                     d¦  «         ‰                     d|› d|› �¦  «         	 ‰j                             dd‰j	        dd¦  «         n# t          j
        $ r Y nw xY wt	          j        ‰‰t          j        t          j        d¬	¦  «        }|                     d¬
¦  «         dS )zDisplay text in tooltip window.NÚinsertr   r“   z!::tk::unsupported::MacWindowStyleÚstyleÚhelpÚnoActivates)r®  r±  r"  r„   )Úipadx)r=   r  rÈ   r  r4   ÚToplevelÚoverrideredirectÚgeometryr5   Ú_wrN   r¼  r  ÚSOLIDrW  )rŽ   rá   rã   Ú_rÆ  r®  Ú	tipwindowr—   s        €€€r,   Úshowtipzadd_tooltip.<locals>.showtipÎ  sH  ø€ ð ð 	˜Dð 	ØˆFØ—[’[ Ñ*Ô*‰
ˆˆ1ˆa�Ø�×"Ò"Ñ$Ô$Ñ$ v×'9Ò'9Ñ';Ô';Ñ;ˆØ�×"Ò"Ñ$Ô$Ñ$ˆÝ”K Ñ'Ô'ˆ	Ø×"Ò" 1Ñ%Ô%Ð%Ø×Ò˜;˜q˜;˜; 1˜;˜;Ñ'Ô'Ð'ð	ØŒL×ÒÐAØ% y¤|Ø$ mñ5ô 5ð 5ð 5øõ Œ{ð 	ð 	ð 	ØˆDð	øøøå”˜¨µr´wÝ "¤°að9ñ 9ô 9ˆà�
Š
˜ˆ
ÑÔÐÐÐs   Â*#C ÃC ÃC c                 ó8   •— ‰r‰                      ¦   «          d Šd S r]   )r‰  )rŽ   rn  s    €r,   Úhidetipzadd_tooltip.<locals>.hidetipã  s&   ø€ àð 	 Ø×ÒÑÔÐØˆ	ˆ	ˆ	r@   rˆ   r‰   )r¤   )r—   r®  ro  rq  rn  s   ``  @r,   r¹  r¹  Ë  sv   øøø€ Ø€Iðð ð ð ð ð ð ð*ð ð ð ð ð ‡K‚K�	˜7Ñ#Ô#Ð#Ø
‡K‚K�	˜7Ñ#Ô#Ð#Ð#Ð#r@   c                   ó   — e Zd Zd„ Zd„ ZdS )ÚRubberbandTkc                 óh   — t                                |                      ¦   «         d ||||¦  «         d S r]   )r   rî  Ú"_make_classic_style_pseudo_toolbar)rb   rì  rí  rS   rT   s        r,   rî  zRubberbandTk.draw_rubberbandï  sB   € Ý×,Ò,Ø×3Ò3Ñ5Ô5°t¸RÀÀRÈñ	Mô 	Mð 	Mð 	Mð 	Mr@   c                 ó^   — t                                |                      ¦   «         ¦  «         d S r]   )r   rð  ru  rj   s    r,   rð  zRubberbandTk.remove_rubberbandó  s3   € Ý×.Ò.Ø×3Ò3Ñ5Ô5ñ	7ô 	7ð 	7ð 	7ð 	7r@   N)rs   rt   ru   rî  rð  r  r@   r,   rs  rs  í  s5   € € € € € ðMð Mð Mð7ð 7ð 7ð 7ð 7r@   rs  c                   óF   — e Zd Zdd„Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z	d	„ Z
d
„ ZdS )Ú	ToolbarTkNc                 ó>  — t          j        | |¦  «         |€#| j        j                             ¦   «         j        }| j        j        j        j        j        \  }}d||z
  }}t          j
                             | |t          |¦  «        t          |¦  «        d¬¦  «         t          j                             d¬¦  «        | _        t          j        | | j        d¬¦  «        }|                     t          j        ¬¦  «         t          j        | ¬	¦  «        | _        t          j        | | j        | j        ¬
¦  «        | _        | j                             t          j        ¬¦  «         i | _        |                      t          j        t          j        ¬¦  «         i | _        d S )Nr£  rB   )r‚   rR   rQ   r„   r©  rÌ  r«  r¬  r¯  rg  )r‚   r­  r°  r²  )r   r`   ÚtoolmanagerrV  rÞ   r‚   r¶   r=   Ú	intervalxr4   r³  rÓ   rE  r­  rº  r»  r¼  rW  r  r½  Ú_messager¿  Ú
_toolitemsrX  rÁ  Ú_groups)rb   rz  rT  ÚxminÚxmaxrQ   rR   rÆ  s           r,   r`   zToolbarTk.__init__ù  sl  € ÝÔ" 4¨Ñ5Ô5Ð5Øˆ>ØÔ%Ô,×:Ò:Ñ<Ô<ÔCˆFØÔ%Ô,Ô3Ô8ÔB‰
ˆˆdØ˜D 4™K�ˆÝ
Œ×Ò˜$ vÝ # E¡
¤
µ3°v±;´;Ø&'ð 	ñ 	)ô 	)ð 	)õ #œ<×,Ò,°"Ð,Ñ5Ô5ˆÔõ
 ” ¨4Ô+;ØFðHñ Hô Hˆà�
Š
�œˆ
Ñ!Ô!Ð!Ýœ¨DÐ1Ñ1Ô1ˆŒÝ œh¨d¸Ô9IØ48´MðCñ Cô CˆÔàÔ× Ò ¥b¤hÐ Ñ/Ô/Ð/ØˆŒØ�	Š	•r”v¥B¤Dˆ	Ñ)Ô)Ð)ØˆŒˆˆr@   c                 ó6   — t                                | ¦  «        S r]   )r   r€  rj   s    r,   r€  zToolbarTk._rescale  s   € Ý#×,Ò,¨TÑ2Ô2Ð2r@   c                 ó®  ‡ ‡— ‰                       |¦  «        }|                     ¦   «         }|t          |¦  «        k    s|dk     rd }	n||         }	t                               |‰||ˆˆ fd„¦  «        }
|
                     |	¬¦  «         |�t          |
|¦  «         ‰ j                             ‰g ¦  «         ‰ j        ‰          	                    |
¦  «         d S )Nr   c                  ó.   •— ‰                      ‰ ¦  «        S r]   )Ú_button_click)r¹   rb   s   €€r,   rp   z(ToolbarTk.add_toolitem.<locals>.<lambda>  s   ø€ °d×6HÒ6HÈÑ6NÔ6N€ r@   )Úbefore)
Ú_get_groupframeÚpack_slavesr\  r   r¸  rÒ  r¹  r}  Ú
setdefaultÚappend)rb   r¹   ÚgroupÚpositionrÃ  Údescriptionr§  Úframeræ   r…  rÅ  s   ``         r,   Úadd_toolitemzToolbarTk.add_toolitem  sæ   øø€ à×$Ò$ UÑ+Ô+ˆØ×#Ò#Ñ%Ô%ˆØ•s˜7‘|”|Ò#Ð# x°!¢| |ØˆFˆFà˜XÔ&ˆFÝ%×-Ò-¨e°T¸:ÀvØ.NÐ.NÐ.NÐ.NÐ.NñPô Pˆà×Ò VÐÑ,Ô,Ð,ØÐ"Ý˜ Ñ,Ô,Ð,ØŒ×"Ò" 4¨Ñ,Ô,Ð,ØŒ˜Ô×$Ò$ VÑ,Ô,Ð,Ð,Ð,r@   c                 ó  — || j         vrr| j         r|                      ¦   «          t          j        | d¬¦  «        }|                     t          j        t          j        ¬¦  «         | j        |_        || j         |<   | j         |         S )Nr   )r‚   r„   r²  )r~  Ú_add_separatorr4   r³  rW  r  ÚYr»  )rb   rŠ  r�  s      r,   r†  zToolbarTk._get_groupframe%  s}   € Ø˜œÐ$Ð$ØŒ|ð &Ø×#Ò#Ñ%Ô%Ð%Ý”H D°aÐ8Ñ8Ô8ˆEØ�JŠJ�BœG­"¬$ˆJÑ/Ô/Ð/Ø $Ô 0ˆEÔØ"'ˆDŒL˜ÑØŒ|˜EÔ"Ð"r@   c                 ó6   — t                                | ¦  «        S r]   )r   r·  rj   s    r,   r�  zToolbarTk._add_separator/  s   € Ý#×+Ò+¨DÑ1Ô1Ð1r@   c                 ó0   — |                       |¦  «         d S r]   )Útrigger_tool)rb   r¹   s     r,   r„  zToolbarTk._button_click2  s   € Ø×Ò˜$ÑÔÐÐÐr@   c                 ó’   — || j         vrd S | j         |         D ]-}|r|                     ¦   «          Œ|                     ¦   «          Œ.d S r]   )r}  rÜ  rÝ  )rb   r¹   ÚtoggledÚtoolitems       r,   Útoggle_toolitemzToolbarTk.toggle_toolitem5  sd   € Ø�t”Ð&Ð&ØˆFØœ¨Ô-ð 	$ð 	$ˆHØð $Ø—’Ñ!Ô!Ð!Ð!à×!Ò!Ñ#Ô#Ð#Ð#ð		$ð 	$r@   c                 ój   — | j                              |g ¦  «        D ]}|                     ¦   «          Œd S r]   )r}  r3   Úpack_forget)rb   r¹   r—  s      r,   Úremove_toolitemzToolbarTk.remove_toolitem>  sB   € Øœ×+Ò+¨D°"Ñ5Ô5ð 	#ð 	#ˆHØ× Ò Ñ"Ô"Ð"Ð"ð	#ð 	#r@   c                 ó:   — | j                              |¦  «         d S r]   )r|  rã  rä  s     r,   ræ  zToolbarTk.set_messageB  s   € ØŒ×Ò˜!ÑÔÐÐÐr@   r]   )rs   rt   ru   r`   r€  rŽ  r†  r�  r„  r˜  r›  ræ  r  r@   r,   rx  rx  ø  s    € € € € € ðð ð ð ð23ð 3ð 3ð-ð -ð -ð #ð #ð #ð2ð 2ð 2ð ð  ð  ð$ð $ð $ð#ð #ð #ðð ð ð ð r@   rx  c                   ó   — e Zd Zd„ ZdS )ÚSaveFigureTkc                 ó^   — t                                |                      ¦   «         ¦  «         d S r]   )r   rT  ru  ©rb   rX   s     r,   ÚtriggerzSaveFigureTk.triggerH  s3   € Ý×(Ò(Ø×3Ò3Ñ5Ô5ñ	7ô 	7ð 	7ð 	7ð 	7r@   N©rs   rt   ru   r¡  r  r@   r,   rž  rž  F  s#   € € € € € ð7ð 7ð 7ð 7ð 7r@   rž  c                   ó   — e Zd Zd„ ZdS )ÚConfigureSubplotsTkc                 ó:   — t                                | ¦  «         d S r]   )r   Úconfigure_subplotsr   s     r,   r¡  zConfigureSubplotsTk.triggerO  s   € Ý×/Ò/°Ñ5Ô5Ð5Ð5Ð5r@   Nr¢  r  r@   r,   r¤  r¤  M  s#   € € € € € ð6ð 6ð 6ð 6ð 6r@   r¤  c                   ó   — e Zd Zd„ ZdS )ÚHelpTkc                 ó‚   ‡— t          | j        j        j        |                      ¦   «         dg¦  «        Šˆfd„‰_        d S )NÚOKc                 ó@   •— ‰j         j                             ¦   «         S r]   )r�  r‚   rU  )ró   Údialogs    €r,   rp   z HelpTk.trigger.<locals>.<lambda>X  s   ø€  &¤,Ô"5×">Ò">Ñ"@Ô"@€ r@   )r   r¶   rV  r˜   Ú_get_help_textÚdone)rb   rX   r¬  s     @r,   r¡  zHelpTk.triggerU  sE   ø€ ÝØŒKÔÔ(¨$×*=Ò*=Ñ*?Ô*?À$ÀñIô Iˆà@Ð@Ð@Ð@ˆŒˆˆr@   Nr¢  r  r@   r,   r¨  r¨  S  s(   € € € € € ðAð Að Að Að Ar@   r¨  c                   ó2   — e Zd Zej        ZeZeZ	ej
        ZdS )Ú
_BackendTkN)rs   rt   ru   r4   Ú	TkVersionÚbackend_versionrz   ÚFigureCanvasr|   ÚFigureManagerr}  r<  r  r@   r,   r°  r°  `  s'   € € € € € à”l€OØ!€LØ#€MØÔ.€H€H€Hr@   r°  r]   )dÚuuidr±   Ú
contextlibr   ÚloggingrH   Úos.pathr?  rB  rÁ   rE  r4   Útkinter.filedialogÚtkinter.fontÚtkinter.messageboxÚtkinter.simpledialogr   ÚnumpyrC   ÚPILr   r   rd  r(   r   r   r	   r
   Úmatplotlib.backend_basesr   r   r   r   r   r   r   r   r   r   r   r   r   r   Úmatplotlib._pylab_helpersr   rR  r   r   r   ÚImportErrorrY   rø   Úcause1Úcause2rÎ  ÚAttributeErrorr8   r@  ÚrealpathÚ
executableÚis_uv_pythonÚ	getLoggerrs   rÓ  ÚMOVEÚHANDÚPOINTERÚSELECT_REGIONÚWAITÚRESIZE_HORIZONTALÚRESIZE_VERTICALrD  r-   r2   Úuuid4ÚhexrM   r?   r6   r[   rz   r|   r³  r   r¹  Ú_register_tool_classÚRubberbandBasers  rx  ÚSaveFigureBaserž  ÚConfigureSubplotsBaser¤  ÚToolHelpBaser¨  ÚToolbarÚ_toolbar2_classÚ_toolmanager_toolbar_classÚexportr°  r  r@   r,   ú<module>rÛ     s(  ðØ €€€Ø €€€Ø %Ð %Ð %Ð %Ð %Ð %Ø €€€Ø €€€Ø €€€Ø €€€Ø 
€
€
€
Ø Ð Ð Ð Ø Ð Ð Ð Ø Ð Ð Ð Ø Ð Ð Ð Ø -Ð -Ð -Ð -Ð -Ð -à Ð Ð Ð Ø Ð Ð Ð Ð Ð Ð Ð à Ð Ð Ð Ø DÐ DÐ DÐ DÐ DÐ DÐ DÐ DÐ DÐ DÐ DÐ DðBð Bð Bð Bð Bð Bð Bð Bð Bð Bð Bð Bð Bð Bð Bð Bð Bð Bð Bð Bð Bð Bð Bð Bð Bð Bð Bð Bð Bð Bð Bð Bð *Ð )Ð )Ð )Ð )Ð )ðØÐÐÐÐÐØJÐJÐJÐJÐJÐJÐJÐJÐJøØð ð ð àˆW�Q˜ TÑ*Ô*€FØˆW�V˜[¨$Ñ/Ô/€FØˆ
�6˜;Ñ'Ô'ð ØˆJ�v˜~Ñ.Ô.ðà4¸¸¸F¹¼ÐCÐCà#¨¬×(8Ò(8¸¼Ñ(HÔ(HÐIˆØð 	Ø�+ð?ñô ð
 ðð �+ð-ñô ð ðð 	øøøøð3øøøð8 €wÔ˜Ñ"Ô"€à„L�'Ø„L�'Ø„O�WØÔ˜;Ø„L�'ØÔÐ2ØÔÐ0ð€ð ðDð Dñ „ðDð €
à˜z˜tœz™|œ|Ô/Ñ/€ðð ð ð33ð 33ð 33ð 33ðl#ð #ð #ð #ð #ˆiñ #ô #ð #ðLuð uð uð uð uÐ%ñ uô uð uðp	\Að \Að \Að \Að \AÐ'ñ \Aô \Að \Að~sGð sGð sGð sGð sGÐ-¨r¬xñ sGô sGð sGðl	$ð $ð $ðD $€Ô# NÑ3Ô3ð7ð 7ð 7ð 7ð 7�=Ô/ñ 7ô 7ñ 4Ô3ð7ðKð Kð Kð Kð KÐ! 2¤8ñ Kô Kð Kð\ $€Ô# NÑ3Ô3ð7ð 7ð 7ð 7ð 7�=Ô/ñ 7ô 7ñ 4Ô3ð7ð $€Ô# NÑ3Ô3ð6ð 6ð 6ð 6ð 6˜-Ô=ñ 6ô 6ñ 4Ô3ð6ð
 $€Ô# NÑ3Ô3ðAð Að Að Að Aˆ]Ô'ñ Aô Añ 4Ô3ðAð €Ø"6€Ô Ø-6€Ô *ð 
„ð/ð /ð /ð /ð /�ñ /ô /ñ „ð/ð /ð /s   Á<B ÂDÂA;DÄD