shell bypass 403

GrazzMean Shell

: /lib64/python3.11/__pycache__/ [ drwxr-xr-x ]
Uname: Linux web3.us.cloudlogin.co 5.10.226-xeon-hst #2 SMP Fri Sep 13 12:28:44 UTC 2024 x86_64
Software: Apache
PHP version: 8.1.31 [ PHP INFO ] PHP os: Linux
Server Ip: 162.210.96.117
Your Ip: 18.218.42.199
User: edustar (269686) | Group: tty (888)
Safe Mode: OFF
Disable Function:
NONE

name : turtle.cpython-311.opt-2.pyc
�

�f�3����	dZddlZddlZddlZddlZddlZddlZddlZddl	m
Z
mZmZddl
mZddlmZgd�Zgd�Zgd�Zd	d
gZeezezezdgzZgd�Zid
d�dd�dd�dd�dd�dd�dd�dd�dd�dd�dd �d!d"�d#d"�d$d%�d&d'�d(d)�d*d+�d,d-d.d/��Zd0�Zd1�Z	ee��n#e$red2��YnwxYwGd3�d4e��Zd5�Zd6�Zd7Zdid9�Z Gd:�d;ej!��Z"e e"ej#d<��Gd=�d>ej$��Z%ej#Z#Gd?�d@e&��Z'GdA�de��Z(GdB�dCe��Z)GdD�dEe&��Z*GdF�dGe&��Z+GdH�dIe'��Z,GdJ�dKe&��Z-GdL�dMe&��Z.GdN�dOe&��Z/GdP�dQe.e-��Z0e0Z1dR�Z2GdS�dTe,��Z3GdU�dVe0��Z4e4Z5djdX�Z6dY�Z7ed(Z8	e8d)kre7e8��n+#e9$redZe8��Yne$red[e8z��YnwxYwd\�Z:d]�Z;d^�Z<d_Z=d`�Z>e>ee3dadbe<��e>ee4dcdde;��e?Z@eAdekr)df�ZBdg�ZCdh�ZDeC��eD��eE��dSdS)kz-turtle 1.1b- - for Python 3.1   -  4. 5. 2009�N)�isfile�split�join)�deepcopy)�simpledialog)	�ScrolledCanvas�TurtleScreen�Screen�	RawTurtle�Turtle�RawPen�Pen�Shape�Vec2D)�addshape�bgcolor�bgpic�bye�clearscreen�	colormode�delay�exitonclick�	getcanvas�	getshapes�listen�mainloop�mode�numinput�onkey�
onkeypress�onkeyrelease�
onscreenclick�ontimer�register_shape�resetscreen�
screensize�setup�setworldcoordinates�	textinput�title�tracer�turtles�update�
window_height�window_width)O�back�backward�
begin_fill�
begin_poly�bk�circle�clear�
clearstamp�clearstamps�clone�color�degrees�distance�dot�down�end_fill�end_poly�fd�	fillcolor�filling�forward�get_poly�getpen�	getscreen�
get_shapepoly�	getturtle�goto�heading�
hideturtle�home�ht�isdown�	isvisible�left�lt�onclick�ondrag�	onrelease�pd�pen�pencolor�pendown�pensize�penup�pos�position�pu�radians�right�reset�
resizemode�rt�seth�
setheading�setpos�setposition�settiltangle�
setundobuffer�setx�sety�shape�	shapesize�shapetransform�shearfactor�
showturtle�speed�st�stamp�tilt�	tiltangle�towards�
turtlesize�undo�undobufferentries�up�width�write�xcor�ycor�write_docstringdict�done�
Terminator)rr1r4rArNrRrVr\r^rcrdrfrgrrrwrzr{r{��?�heightg�?�	canvwidthi��
canvheighti,�	leftright�	topbottomr�standardr��?r�
�undobuffersizei�rl�classicrX�blackrBrb�noresize�visibleT�language�english�
exampleturtle�turtle�screenzPython Turtle GraphicsF)�
examplescreenr*�
using_IDLEc�P�	t|d��5}|���}ddd��n#1swxYwYi}|D]�}|���}|r|�d��r�.	|�d��\}}n%#t
$rt
d|�d|����Y�iwxYw|���}|���}|dvrt|��}n5	d|vrt|��}nt|��}n#t
$rYnwxYw|||<��|S)N�r�#�=zBad line in config-file z:
)�True�False�Nonez''z""�.)
�open�	readlines�strip�
startswithr�
ValueError�print�eval�float�int)�filename�f�cfglines�cfgdict�line�key�values       �/usr/lib64/python3.11/turtle.py�config_dictr��s���9�	
�h��	�	�!���;�;�=�=��!�!�!�!�!�!�!�!�!�!�!����!�!�!�!��G������z�z�|�|���	�t���s�+�+�	��	����C���J�C�����	�	�	��E�x�x�x���E�F�F�F��H�	�����i�i�k�k�����
�
���9�9�9���K�K�E�E�
��%�<�<�!�%�L�L�E�E���J�J�E����
�
�
���
����������Ns0�3�7�7�1B
�
B,�+B,�,#D�
D�Dc��	d}i}i}t|��rt|��}d|vrd|dz}	tt��\}}t	||��}n#t
$rd}YnwxYwt|��rt|��}t�|��t�|��dS)Nz
turtle.cfg�importconfigz
turtle_%s.cfg�)rr�r�__file__r�	Exception�_CFGr-)r��default_cfg�cfgdict1�cfgdict2�head�tail�	cfg_file2s       r��
readconfigr��s�����K��H��H�
�k���,��{�+�+����!�!�%���(@�@����8�_�_�
��d���{�+�+�	�	�������	�	�	�����
�i���*��y�)�)���K�K������K�K������s�'A�A-�,A-z"No configfile read, reason unknownc�L�eZdZ	d�Zd�Zd�Zd�Zd�Zd�Zd�Z	d�Z
d	�Zd
�ZdS)rc�<�t�|||f��S�N)�tuple�__new__)�cls�x�ys   r�r�z
Vec2D.__new__�s���}�}�S�1�a�&�)�)�)�c�^�t|d|dz|d|dz��S�Nr��r��self�others  r��__add__z
Vec2D.__add__��,���T�!�W�U�1�X�%�t�A�w�u�Q�x�'7�8�8�8r�c��t|t��r#|d|dz|d|dzzSt|d|z|d|z��Sr�)�
isinstancerr�s  r��__mul__z
Vec2D.__mul__�sY���e�U�#�#�	5���7�5��8�#�D��G�E�!�H�$4�4�4��T�!�W�U�]�D��G�E�M�2�2�2r�c��t|t��st|t��r"t|d|z|d|z��StSr�)r�r�r�r�NotImplementedr�s  r��__rmul__zVec2D.__rmul__sK���e�S�!�!�	7�Z��u�%=�%=�	7���a�����Q���
�6�6�6��r�c�^�t|d|dz
|d|dz
��Sr�r�r�s  r��__sub__z
Vec2D.__sub__r�r�c�>�t|d|d��Sr�r��r�s r��__neg__z
Vec2D.__neg__	s���d�1�g�X��Q��x�(�(�(r�c��tj|�Sr�)�math�hypotr�s r��__abs__z
Vec2D.__abs__s���z�4� � r�c�*�	t|d|d��}tj|��}tj|��tj|��}}t|d|z|d|zz|d|z|d|zz��S)Nr�r)rr�r_�cos�sin)r��angle�perp�c�ss     r��rotatezVec2D.rotate
s���	��d�1�g�X�t�A�w�'�'����U�#�#���x���������1���T�!�W�Q�Y�t�A�w�q�y�(�$�q�'�!�)�D��G�A�I�*=�>�>�>r�c�"�|d|dfSr��r�s r��__getnewargs__zVec2D.__getnewargs__s���Q���a��!�!r�c��d|zS)Nz(%.2f,%.2f)r�r�s r��__repr__zVec2D.__repr__s
���t�#�#r�N)
�__name__�
__module__�__qualname__r�r�r�r�r�r�r�r�r�r�r�r�r�rr�s��������*�*�*�9�9�9�3�3�3����9�9�9�)�)�)�!�!�!�?�?�?�"�"�"�$�$�$�$�$r�rc��	t|j��}|���|D]}t||���|j���D]'\}}t
|��tjkr|||<�(dSr�)	�list�	__bases__�reverse�__methodDict�__dict__�items�type�types�FunctionType)r��_dict�baseList�_superr�r�s      r�r�r�"s���-��C�M�"�"�H��������$�$���V�U�#�#�#�#��l�(�(�*�*���
��U���;�;�%�,�,�,��E�#�J���r�c�P�	i}t||��|���Sr�)r��keys)r�r�s  r��	__methodsr�,s(��-��E���e�����:�:�<�<�r�zTdef %(method)s(self, *args, **kw): return self.%(attribute)s.%(method)s(*args, **kw)r�c��i}t||��i}t|��}|���D]2}|dd�dks|dd�dks||vs||vr�'||||<�3|���D]S\}}	||	d�}
t	|t
��r
t||d�z}t||
��t|||
|���TdS)Nr��_���)�method�func)r�	attribute)	r�r�r�r�r��str�__stringBody�exec�setattr)�	fromClass�toClass�toPart�exclude�_dict_1r��mfc�exrr�d�
execStrings            r��__forwardmethodsr6s���G���'�"�"�"��E�
�I�
�
�C��l�l�n�n�$�$��
�b�q�b�6�S�=�=�B�r�s�s�G�s�N�N�b�G�m�m�r�S�y�y�����E�"�I�I����
�
�.�.�����t�,�,���f�c�"�"�	I��6��H�H�H�
��Z������	�6�1�V�9�-�-�-�-�
.�.r�c�T�eZdZ			dd�Zdd�Zd�Zd�Zd	�Zd
�Zd�Z	d�Z
d
�Zd�ZdS)r���^�Xc
���tj�||||���|���|_||c|_|_||c|_|_d|_	tj
||||j	tjd���|_tj
||jjtj���|_tj
||jj���|_|j�|jj|jj���|�dd	d�
��|�dd	d�
��|j�d	|d	ddd	d	d���|j�d	|d	dd	d	d	d���|j�d	|d	d	dd	d	d���|���|j�d
|j��dS)N)r{r��white�)r{r��bg�relief�borderwidth)�command�orient)r)�xscrollcommand�yscrollcommandrr�)�weight�minsize�news��padx�in_�pady�row�column�rowspan�
columnspan�stickyz<Configure>)�TK�Frame�__init__�winfo_toplevel�_rootwindowr{r�r�r�r�Canvas�SUNKEN�_canvas�	Scrollbar�xview�
HORIZONTAL�hscroll�yview�vscroll�	configure�set�rowconfigure�columnconfigure�gridra�bind�onResize)r��masterr{r�r�r�s      r�r/zScrolledCanvas.__init__Qs���
����$��e�F��C�C�C��.�.�0�0���"'����
�D�K�*3�Z�'���������y��u�V�$(�G�B�I�1�N�N�N����|�F�D�L�4F�+-�=�:�:�:����|�F�D�L�4F�G�G�G�������d�l�.>�.2�l�.>�	�	@�	@�	@����!�A�q��1�1�1����Q�q�!��4�4�4�����q��1�!��!��&�	�	B�	B�	B�����q��1�!��!��&�	�	B�	B�	B�����q��1�!��!��&�	�	B�	B�	B��
�
��������m�T�]�;�;�;�;�;r�Nc��	|r||_|r||_|r||_|j�||jdz|jdz|jdz|jdzf���|j�d|j|jz
dzz|jz��|j�d|j|jz
dzz|jz��|�	��dS)Nr)r�scrollregionr��)
r�r�rr4�config�xview_movetor{�yview_movetor��
adjustScrolls�r�r�r�rs    r�razScrolledCanvas.resetjs��J��	'�&�D�N��	)�(�D�O�
�	��D�G�����r�'+�~�o�q�&8�4�?�:J�A�:M�'+�~�q�'8�$�/�1�:L�&N�	�	O�	O�	O�	
��!�!�#�t�~��
�'B�R�'G�"H�?C�~�#N�	O�	O�	O���!�!�#�t����'C�b�'H�"I�>B�o�#N�	O�	O�	O��������r�c
�<�	|j���}|j���}|j�d|j|z
z|jz��|j�d|j|z
z|jz��||jks||jkrF|j�d|dddddd���|j	�d|dddddd���dS|j�
��|j	�
��dS)Nr�r�rr#r$)r4�winfo_width�winfo_heightrGr�rHr�r8r?r:�grid_forget)r��cwidth�cheights   r�rIzScrolledCanvas.adjustScrolls|s:��	���)�)�+�+���,�+�+�-�-����!�!�#�t�~�f�'<�"=�d�n�"L�M�M�M���!�!�#�t��w�'>�"?���"O�P�P�P��D�N�"�"�g���&?�&?��L���1�D�q�a�%&��a��
�
P�
P�
P��L���1�D�q�a�%&��a��
�
P�
P�
P�
P�
P�
�L�$�$�&�&�&��L�$�$�&�&�&�&�&r�c�0�	|���dSr�)rI)r��events  r�rAzScrolledCanvas.onResize�s����������r�c�"�	|jj|�Sr�)r4�bbox�r��argss  r�rTzScrolledCanvas.bbox�s��	� �t�|� �$�'�'r�c�(�	|jj|i|��Sr�)r4�cget�r�rV�kwargss   r�rXzScrolledCanvas.cget�s!��	� �t�|� �$�1�&�1�1�1r�c�,�	|jj|i|��dSr�)r4rFrYs   r�rFzScrolledCanvas.config��'��	�����T�,�V�,�,�,�,�,r�c�,�	|jj|i|��dSr�)r4r@rYs   r�r@zScrolledCanvas.bind�s'��	�����4�*�6�*�*�*�*�*r�c�,�	|jj|i|��dSr�)r4�unbindrYs   r�r_zScrolledCanvas.unbind�r\r�c�:�	|j���dSr�)r4�focus_forcer�s r�razScrolledCanvas.focus_force�s!��	��� � �"�"�"�"�"r�)rrrr�NNN)
r�r�r�r/rarIrArTrXrFr@r_rar�r�r�rrKs��������
25�DG�<�<�<�<�2����$'�'�'� ���(�(�(�
2�2�2�
-�-�-�
+�+�+�
-�-�-�
#�#�#�#�#r�rr4c�:�eZdZ	d�Zd�Zd�Zd�Zd�Zd�Zd�Z	dS)	�_Rootc�D�tj�|��dSr�)r-�Tkr/r�s r�r/z_Root.__init__�s��
����t�����r�c�n�t|||||��|_|j�dd���dS)Nr��both)�expand�fill)rr4�pack)r�r{r�rOrPs     r��setupcanvasz_Root.setupcanvas�s:��%�d�E�6�6�7�K�K����������0�0�0�0�0r�c��|jSr�)r4r�s r��
_getcanvasz_Root._getcanvas�s
���|�r�c�>�|�d||||fz��dS)Nz%dx%d%+d%+d)�geometry)r�r{r��startx�startys     r��set_geometryz_Root.set_geometry�s(���
�
�m�U�F�F�F�$C�C�D�D�D�D�Dr�c�2�|�d|��dS)N�WM_DELETE_WINDOW)�wm_protocol)r��destroys  r��	ondestroyz_Root.ondestroy�s�����+�W�5�5�5�5�5r�c�*�|���Sr�)�winfo_screenwidthr�s r��	win_widthz_Root.win_width�s���%�%�'�'�'r�c�*�|���Sr�)�winfo_screenheightr�s r��
win_heightz_Root.win_height�s���&�&�(�(�(r�N)
r�r�r�r/rlrnrsrxr{r~r�r�r�rdrd�s�������1����1�1�1����E�E�E�6�6�6�(�(�(�)�)�)�)�)r�rdc���eZdZ	d�Zd�Zd�Zd�Z		d%d�Zd�Z		d%d	�Z	d
�Z
d�Zd�Zd
�Z
d&d�Zd�Zd'd�Zd'd�Zd'd�Zd'd�Zd�Zd&d�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd(d �Zd!�Z d"�Z!d#�Z"d(d$�Z#dS))�TurtleScreenBasec�h�	tjdd|j���}|���|S)Nr�)r{r�rB)r-�
PhotoImage�cv�blank)r��imgs  r��_blankimagezTurtleScreenBase._blankimage�s1��	��m�!�A�d�g�>�>�>���	�	�����
r�c�:�	tj||j���S)N)�filerB)r-r�r�)r�r�s  r��_imagezTurtleScreenBase._image�s ��	��}�(�4�7�;�;�;�;r�c��||_t|t��r|jj}|jj}n{t|j�d����}t|j�d����}|j�|dz|dz|dz|dzf���||_||_dx|_|_	dS)Nr{r�r�rDr�)
r�r�rr�r�r�rXrF�xscale�yscale)r�r��w�hs    r�r/zTurtleScreenBase.__init__�s�������b�.�)�)�	G���!�A���"�A�A��D�G�L�L��)�)�*�*�A��D�G�L�L��*�*�+�+�A��G�N�N�A�2�q�5�1�"�a�%��A��q�!�t�*E�N�F�F�F�������$'�'���d�k�k�kr�c�>�	|j�ddd���S)N)rrrrrrr��rj�outline)r��create_polygonr�s r��_createpolyzTurtleScreenBase._createpoly�s%��	��w�%�%�&8�r�2�%�N�N�Nr�NFc��	g}|D]@\}}	|�||jz��|�|	|jz���A|jj|g|�R�|�|j�||���|�|j�||���|�|j�||���|r|j�|��dSdS)N�rj)r��r{��appendr�r�r��coords�
itemconfigure�	tag_raise)
r��polyitem�	coordlistrjr�r{�top�clr�r�s
          r��	_drawpolyzTurtleScreenBase._drawpoly�s��	����	(�	(�D�A�q��I�I�a�$�+�o�&�&�&��I�I�q�b�4�;�&�'�'�'�'�����x�%�"�%�%�%�%����G�!�!�(��!�6�6�6����G�!�!�(�G�!�<�<�<����G�!�!�(�%�!�8�8�8��	(��G���h�'�'�'�'�'�	(�	(r�c	�Z�	|j�ddddddtj���S)Nrr�r)rjr{�capstyle)r��create_liner-�ROUNDr�s r��_createlinezTurtleScreenBase._createlines7��	��w�"�"�1�a��A�B�a�.0�h�#�8�8�	8r�c�p�	|�Xg}|D]@\}}|�||jz��|�||jz���A|jj|g|�R�|�|j�||���|�|j�||���|r|j�|��dSdS)Nr�r�r�)	r��lineitemr�rjr{r�r�r�r�s	         r��	_drawlinezTurtleScreenBase._drawlines���	�� ��B�!�
,�
,���1��	�	�!�d�k�/�*�*�*��	�	�1�"�t�{�*�+�+�+�+��D�G�N�8�)�b�)�)�)�)����G�!�!�(��!�6�6�6����G�!�!�(�%�!�8�8�8��	(��G���h�'�'�'�'�'�	(�	(r�c�<�	|j�|��dSr�)r��delete�r��items  r��_deletezTurtleScreenBase._delete)s#��	�	
����t�����r�c�:�	|j���dSr�)r�r-r�s r��_updatezTurtleScreenBase._update/s��	���������r�c�<�	|j�|��dSr�)r��after�r�rs  r��_delayzTurtleScreenBase._delay4s��;���
�
�e�����r�c�r�		|j�|��}d}n#tj$rd}YnwxYw|S)NTF)r��	winfo_rgbr-�TclError)r�r:�rgb�oks    r��_iscolorstringzTurtleScreenBase._iscolorstring8sS��	�	��'�#�#�E�*�*�C��B�B���{�	�	�	��B�B�B�	�����	s� �4�4c��	|�1|j�|���|���dS|j�d��S)N)rr)r�rFr�rX)r�r:s  r��_bgcolorzTurtleScreenBase._bgcolorBsH��	(����G�N�N��N�&�&�&��L�L�N�N�N�N�N��7�<�<��%�%�%r�c���	|\}}||jz}||jz}dddd�}|j�|dz
||||||���}	|j�|	��\}
}}}
|	|dz
fS)N�swr��se)rQ�centerr`r�)�text�anchorrj�font)r�r�r��create_textrT)r�r\�txt�alignr�rXr�r�r�r��x0�y0�x1�y1s              r��_writezTurtleScreenBase._writeKs���	#����1�
���O��
���O����T�;�;���w�"�"�1�Q�3���3����/7��#�F�F������d�+�+���B��B��R��T�z�r�r�c����	�� �j�|d|z��dS��fd�}�j�|d|z||��dS)N�<Button-%s>c����j�|j���jz�j�|j���jz}}�||��dSr��r��canvasxr�r��canvasyr�r��rRr�r��funr�s   ��r��eventfunz+TurtleScreenBase._onclick.<locals>.eventfune�T���������0�0���<�������1�1�1�$�+�=�����A�q�	�	�	�	�	r��r��
tag_unbind�tag_bind�r�r�r��num�addr�s` `   r��_onclickzTurtleScreenBase._onclick\sz����	�
�;��G���t�]�S�%8�9�9�9�9�9�
�
�
�
�
�
�
�G���T�=�3�#6��#�F�F�F�F�Fr�c����	�� �j�|d|z��dS��fd�}�j�|d|z||��dS)Nz<Button%s-ButtonRelease>c����j�|j���jz�j�|j���jz}}�||��dSr�r�r�s   ��r�r�z-TurtleScreenBase._onrelease.<locals>.eventfunwr�r�r�r�s` `   r��
_onreleasezTurtleScreenBase._onreleaseks�����	��;��G���t�%?�#�%E�F�F�F�F�F�
�
�
�
�
�
�
�G���T�#=��#C�%�s�
,�
,�
,�
,�
,r�c����	�� �j�|d|z��dS��fd�}�j�|d|z||��dS)Nz<Button%s-Motion>c����	�j�|j���jz�j�|j���jz}}�||��dS#t$rYdSwxYwr�)r�r�r�r�r�r�r�r�r�s   ��r�r�z*TurtleScreenBase._ondrag.<locals>.eventfun�s{���� �G�O�O�E�G�4�4�T�[�@� �G�O�O�E�G�4�4�4�T�[�@��A��C��1�I�I�I�I�I�� �����D�D����s�AA � 
A.�-A.r�r�s` `   r��_ondragzTurtleScreenBase._ondrag~s|����	��;��G���t�%8�3�%>�?�?�?�?�?�
�
�
�
�
�
�
�G���T�#6��#<�h��L�L�L�L�Lr�c����	���j�d|z��dS��fd�}�j�d|z||��dS)Nr�c����j�|j���jz�j�|j���jz}}�||��dSr�r�r�s   ��r�r�z1TurtleScreenBase._onscreenclick.<locals>.eventfun�r�r��r�r_r@)r�r�r�r�r�s``   r��_onscreenclickzTurtleScreenBase._onscreenclick�sr����	��;��G�N�N�=�3�.�/�/�/�/�/�
�
�
�
�
�
�
�G�L�L���,�h��<�<�<�<�<r�c���	�� |j�d|zd��dS�fd�}|j�d|z|��dS)Nz<KeyRelease-%s>c������dSr�r��rRr�s �r�r�z0TurtleScreenBase._onkeyrelease.<locals>.eventfun�����������r�r��r�r�r�r�s `  r��
_onkeyreleasezTurtleScreenBase._onkeyrelease�sl���	��;��G�N�N�,�s�2�D�9�9�9�9�9�
�
�
�
�
��G�L�L�*�S�0�(�;�;�;�;�;r�c���	��?|�|j�dd��dS|j�d|zd��dS�fd�}|�|j�d|��dS|j�d|z|��dS)Nz
<KeyPress>z
<KeyPress-%s>c������dSr�r�r�s �r�r�z.TurtleScreenBase._onkeypress.<locals>.eventfun�r�r�r�r�s `  r��_onkeypresszTurtleScreenBase._onkeypress�s����	��;��{�����|�T�2�2�2�2�2�������4�d�;�;�;�;�;�
�
�
�
�
��{�����\�8�4�4�4�4�4�����_�s�2�H�=�=�=�=�=r�c�:�	|j���dSr�)r�rar�s r��_listenzTurtleScreenBase._listen�s!��	���������r�c��	|dkr|j�|��dS|j�||��dS�Nr)r��
after_idler��r�r��ts   r��_ontimerzTurtleScreenBase._ontimer�sH��	���6�6��G���s�#�#�#�#�#��G�M�M�!�S�!�!�!�!�!r�c�>�	|j�dd|���S)Nr��image)r��create_image)r�r�s  r��_createimagezTurtleScreenBase._createimage�s$��	��w�#�#�A�q��#�6�6�6r�c��	|\}}|j�|||jz||jzf��|j�||���dS�Nr�)r�r�r�r��
itemconfig)r�r�r\r�r�r�s      r��
_drawimagezTurtleScreenBase._drawimage�s]��	����1�����t�a�$�+�o��r�D�K�/?�@�A�A�A�����4�u��-�-�-�-�-r�c�t�	|j�||���|j�|��dSr�)r�r��	tag_lower)r�r�r�s   r��	_setbgpiczTurtleScreenBase._setbgpic�s@��	�	
����4�u��-�-�-�����$�����r�c�8�	|j�|��Sr�)r�r�r�s  r��_typezTurtleScreenBase._type�s��	��w�|�|�D�!�!�!r�c���	|j�|����fd�tdt���d��D��}|S)Nc�8��g|]}�|�|dzf��S)r�r�)�.0�ir�s  �r��
<listcomp>z/TurtleScreenBase._pointlist.<locals>.<listcomp>�s,���
>�
>�
>�A�r�!�u�r�!�A�#�w�h��
>�
>�
>r�rr)r�r��range�len)r�r��plr�s   @r��
_pointlistzTurtleScreenBase._pointlist�sM���	��W�^�^�D�
!�
!��
>�
>�
>�
>��q�#�b�'�'�1�)=�)=�
>�
>�
>���
r�c�D�|j�||||f���dS)Nr�)r�rF)r��srx1�sry1�srx2�sry2s     r��_setscrollregionz!TurtleScreenBase._setscrollregion�s'������T�4��t�$<��=�=�=�=�=r�c�P�|j���}|D]�}t|j�|����}g}|rI|dd�\}}|�||z��|�||z��|dd�}|�I|jj|g|�R���dS)Nr)r��find_allr�r�r�)	r��xscalefactor�yscalefactorr�r��coordinates�newcoordlistr�r�s	         r��_rescalezTurtleScreenBase._rescale�s����� � �"�"���	0�	0�D��t�w�~�~�d�3�3�4�4�K��L��
.�"�2�A�2����1��#�#�A��$4�5�5�5��#�#�A��$4�5�5�5�)�!�"�"�o��	�
.�

�D�G�N�4�/�,�/�/�/�/�/�	0�	0r�c��	t|jt��s|j|jfS||cxur|cxur�nn|jj|jjfS|�||_|�||_|j�|||��dSr�)r�r�rr�r�rarJs    r��_resizezTurtleScreenBase._resizes���	��$�'�>�2�2�	3��>�4�?�2�2��
�0�0�0�0�b�0�0�0�0�0�0�0�0��7�$�d�g�&8�8�8�� �&�D�N��!�(�D�O���
�
�i��R�0�0�0�0�0r�c��	|j���}|dkr
|jd}|j���}|dkr
|jd}||fS)Nr�r{r�)r�rLrM)r�r{r�s   r��_window_sizezTurtleScreenBase._window_sizesa��	���#�#�%�%���A�:�:��G�G�$�E���%�%�'�'���Q�;�;��W�X�&�F��f�}�r�c�D�	|jj���dSr�)r��tkrr�s r�rzTurtleScreenBase.mainloops%��	�	
��
�������r�c�<�	tj|||j���S)N)�parent)r�	askstringr�)r�r*�prompts   r�r)zTurtleScreenBase.textinput.s#��	��%�e�V�D�G�D�D�D�Dr�c�B�	tj||||||j���S)N)�initialvalue�minvalue�maxvaluer#)r�askfloatr�)r�r*r%�default�minval�maxvals      r�rzTurtleScreenBase.numinput=s3��	�"�$�U�F��.4�v�,0�G�5�5�5�	5r�)NNNFr��r�Nrb)$r�r�r�r�r�r/r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�rrrrrrrrrr)rr�r�r�r�r��sX����������<�<�<�(�(�(�O�O�O�
37�05�(�(�(�(�28�8�8�-1�-2�(�(�(�(�.������
������&�&�&�&����"
G�
G�
G�
G�,�,�,�,�&M�M�M�M�*=�=�=�=�$	<�	<�	<�>�>�>�>�$���
"�"�"�7�7�7�
.�.�.� � � �"�"�"�
�
�
�>�>�>�
0�
0�
0�
1�
1�
1�
1�	�	�	�
�
�
�
E�
E�
E�5�5�5�5�5�5r�r�c��eZdZ	dS)r�N�r�r�r�r�r�r�r�r�Ys�������
	�Dr�c��eZdZdS)�TurtleGraphicsErrorNr0r�r�r�r2r2bs�������r�r2c� �eZdZ	dd�Zdd�ZdS)rNc��||_|dkr%t|t��rt|��}n�|dkrft|t��rP|����d��r)t|��rt�	|��}n|dkrg}ntd|z���||_dS)N�polygonr��.gif�compoundzThere is no shape type %s)rr�r�r�r�lower�endswithrr	r�r2�_data)r��type_�datas   r�r/zShape.__init__ns�����
��I����$��%�%�
#��T�{�{���
�g�
�
��$��$�$�
5��:�:�<�<�(�(��0�0�5�V�D�\�\�5�'�.�.�t�4�4�D��
�j�
 �
 ��D�D�%�&A�E�&I�J�J�J���
�
�
r�c��	|jdkrtd|jz���|�|}|j�|||g��dS)Nr7z Cannot add component to %s Shape)rr2r:r�)r��polyrjr�s    r��addcomponentzShape.addcomponent~sf��	��:��#�#�%�&H�BF�*�'M�N�N�
N��?��G��
���4��w�/�0�0�0�0�0r�r�)r�r�r�r/r?r�r�r�rrgsA����������� 1�1�1�1�1�1r�rc�8�eZdZ	d	d�Zd
d�Zd�Zd�Zd�Zd�ZdS)�Tbufferr�c�H�||_dgg|z|_d|_d|_dS)NrF)�bufsize�buffer�ptr�cumulate)r�rCs  r�r/zTbuffer.__init__�s+������v�h��(��������
�
�
r�Nc��|�#t|j��D]
}dg|j|<�n||_dgg|z|_d|_dS)Nr)rrCrDrE)r�rCr	s   r�raz
Tbuffer.reset�sX���?��4�<�(�(�
(�
(��"&����A���
(�#�D�L� �6�(�W�,�D�K�����r�c���|jdkrV|js(|jdz|jz|_||j|j<dS|j|j�|��dSdSr�)rCrFrErDr�r�s  r��pushzTbuffer.push�sl���<�!����=�
3� �H�q�L�D�L�8���(,���D�H�%�%�%���D�H�%�,�,�T�2�2�2�2�2��r�c��|jdkr?|j|j}|�dSdg|j|j<|jdz
|jz|_|SdSr�)rCrDrEr�s  r��popzTbuffer.pop�sX���<�!����;�t�x�(�D��|��t�)-����D�H�%� �H�q�L�D�L�8����
��r�c�H�|j|j�dg��z
Sr�)rCrD�countr�s r��nr_of_itemszTbuffer.nr_of_items�s!���|�d�k�/�/���7�7�7�7r�c�Z�t|j��dzt|j��zS)N� )rrDrEr�s r�r�zTbuffer.__repr__�s$���4�;���#�%��D�H�
�
�5�5r�)r�r�)	r�r�r�r/rarIrKrNr�r�r�r�rArA�s{������?�����
����3�3�3����8�8�8�6�6�6�6�6r�rAc��eZdZ	dZedededfd�Zd�Zd"d�Zd	�Zd"d
�Z	d�Z
d�Zd"d
�Zd�Z
d�Zd�Zd#d�Zd"d�Zd�Zd�Zd�Zd�Zd�Zd�Zd$d�Zd�Zd"d�Zd#d�Zd%d�Zd"d �Zd&d!�ZeZe
Z eZ!e	Z"eZ#dS)'r	Trrrc�z�t�||��tdd��tdd��tdd��tdd��tdd��tdd��td|�����d	�|_d
di|_||_||_td|_	g|_
|���tj
d
krH|���}|�ddddd��|�ddddd��dSdS)Nr5)����r�r�r�rr�))r�)����)rr�)����)����	)����)����)r\r�)������)���r`)r`rd)rZrb�rr\)�rb)�rd)r_r`)rarc)r[r�)rgra)r]r_)r[r])rfr[)r�r�)rrY)rU)��Q�#@���Q�@)�G�z. @��Q��@)rkrj)rirhrV)���Q��rh)��Q���rj)�G�z. �rk)��Q�#�rirS)rorl)rnrm)rmrn)rlro)g�g$�)riro)rkrn)rjrm)rhrl))r�rT)r�r�)rTr�)rTrT))r���G�z�)rg�����'@)rTrp)�rr)rbr^re)rar^r�)�arrowr�r5�square�triangler�r��nopicr�r�darwin�wm�
attributesr�z-topmost�1�0)r�r/rr��_shapes�_bgpics�_mode�_delayvaluer��
_colormode�_keysr6�sys�platformr0�call)r�r�rrr�
rootwindows      r�r/zTurtleScreen.__init__�sR���!�!�$��+�+�+�#�9�.G�H�H�"�9�/&�'�'�
#�9�/H�I�I�#�9�/)�*�*�"�9�/+�,�,�"�9�.K�L�L�"�7�D�,<�,<�,>�,>�?�?�%����* �"�~�����
� ����{�+�����
��
�
�����<�8�#�#��*�*�,�,�J��O�O�D�,��Z��E�E�E��O�O�D�,��Z��E�E�E�E�E�
$�#r�c��	td|_td|_|�d��|�d��|_d|_d|_d|_g|_	|�
d��d	D]}|�d|���|�d��|j
dd�D].}|�d|��|�d|���/dt_dS)
Nrr�allr�rur�rr)r�r�)r�r~rr�r��_bgpic�
_bgpicname�_tracing�_updatecounter�_turtlesrrSr r�rr�_pen)r��btnr�s   r�r6zTurtleScreen.clear�s���	� ��=����{�+������U�����'�'��+�+���!�����
������
����W�����	$�	$�C��L�L��s�#�#�#�#���������:�a�a�a�=�	'�	'�C��J�J�t�S�!�!�!��O�O�D�#�&�&�&�&�����r�Nc�<�	|�|jS|���}|dvrtd|z���||_|dvrH|�|jdz|jdz|jdz|jdz��dx|_|_|���dS)N�r��logo�worldzNo turtle-graphics-mode %s)r�r�rr�)	r}r8r2rr�r�r�r�ra�r�rs  r�rzTurtleScreen.modes���	�*�<��:���z�z�|�|���4�4�4�%�&B�T�&I�J�J�J���
��'�'�'��!�!�4�>�/�1�"4�t��6F��6I�'+�~�q�'8�$�/�1�:L�
N�
N�
N�(+�+�D�K�$�+��
�
�����r�c�^�	|���dkr|�d��t||z
��}t||z
��}|���\}}|�|dz
|dz
��|j|j}
}	|j|z|_|j|z|_||jz}||jz}|j|z}
|j|z}|�|||
|��|�	|j|	z|j|
z��|�
��dS)Nr��)rr�rr&r�r�r�r�rrr-)r��llx�lly�urx�ury�xspan�yspan�wx�wy�	oldxscale�	oldyscalerrrrs               r�r(z TurtleScreen.setworldcoordinates-s)��	�*�9�9�;�;�'�!�!��I�I�g�����c�C�i� � ���c�C�i� � ���"�"�$�$���B�����2��r�"�u�%�%�%�#�{�D�K�9�	��n�u�,����o��-����T�[� ���t�d�k�!���~��$�����%�����d�D�$��5�5�5��
�
�d�k�)�+�T�[��-B�C�C�C����
�
�
�
�
r�c��	|�Z|����d��r$td|�|����}n4t	d���t|t��rtd|��}||j|<dS)Nr6r�z;Bad arguments for register_shape.
Use  help(register_shape)r5)r8r9rr�r2r�r�r{)r��namerls   r�r$zTurtleScreen.register_shapeTs���	�,�=��z�z�|�|�$�$�V�,�,�
J��g�t�{�{�4�'8�'8�9�9���)�+H�J�J�J�
��u�
%�
%�	,��)�U�+�+�E�"���T���r�c�<�	t|��dkr|d}t|t��r<|�|��s|dkr|St	dt|��z���	|\}}}n4#t
tf$r t	dt|��z���wxYw|jdkrd�|||fD��\}}}d|cxkrdkr"nnd|cxkrdkrnnd|cxkrdks!nt	d	t|��z���d
|||fzS)Nr�rr�zbad color string: %s�bad color arguments: %sr�c�2�g|]}td|z����S�g�o@��round�rr�s  r�r
z*TurtleScreen._colorstr.<locals>.<listcomp>��"��9�9�9�!�u�U�1�W�~�~�9�9�9r���bad color sequence: %s�
#%02x%02x%02x)rr�rr�r2�	TypeErrorr�r)r�r:r��g�bs     r��	_colorstrzTurtleScreen._colorstrwsa��	��u�:�:��?�?��!�H�E��e�S�!�!�	O��"�"�5�)�)�
O�U�b�[�[���)�*@�3�u�:�:�*M�N�N�N�	N��G�A�q�!�!���:�&�	N�	N�	N�%�&?�#�e�*�*�&L�M�M�M�	N�����?�c�!�!�9�9��1�a�y�9�9�9�G�A�q�!��a�����3������Q�!�]�]�]�]�s�]�]�]�]�]��a�����3�����%�&>��U���&K�L�L�L��!�Q���*�*s�/A6�61B'c�&�����d��s�St���dkr�fd�dD��}n<t���dkr�fd��dd�D��}ntd�z���t�fd	�|D����S)
Nr�r[c�F��g|]}t�||dz�d����S)rrW�r�)rr	�cstrs  �r�r
z'TurtleScreen._color.<locals>.<listcomp>�s/���:�:�:�1�#�d�1�Q�q�S�5�k�2�&�&�:�:�:r�)r�r�rarfc�B��g|]}dt�|d��z��S)rWr�)rr�r�s  �r�r
z'TurtleScreen._color.<locals>.<listcomp>�s,���8�8�8�!�"�S��a��"�%�%�%�8�8�8r�r�zbad colorstring: %sc3�2�K�|]}|�jzdzV��dS)r�N)r)rr�r�s  �r��	<genexpr>z&TurtleScreen._color.<locals>.<genexpr>�s/�����9�9��Q���(��,�9�9�9�9�9�9r�)r�rr2r�)r�r�r�s`` r��_colorzTurtleScreen._color�s��������s�#�#�	��K��t�9�9��>�>�:�:�:�:�	�:�:�:�B�B�
��Y�Y�!�^�^�8�8�8�8�t�A�B�B�x�8�8�8�B�B�%�&;�d�&B�C�C�C��9�9�9�9�b�9�9�9�9�9�9r�c��	|�|jS|dkrt|��|_dS|dkrt|��|_dSdS)Nr�r�)rr�r�)r��cmodes  r�rzTurtleScreen.colormode�sQ��	��=��?�"��C�<�<�#�E�l�l�D�O�O�O�
�c�\�\�!�%�j�j�D�O�O�O��\r�c�x�	|jD]0}|�|j��|����1dSr�)r��_setmoder}ra)r�r�s  r�razTurtleScreen.reset�sG��	��m�	�	�F��O�O�D�J�'�'�'��L�L�N�N�N�N�	�	r�c��	|jSr�)r�r�s r�r,zTurtleScreen.turtles�s��	��}�r�c��	|r|�|��}nd}|�|��}|�|�|��}|Sr�)r�r�r��r�rVr:s   r�rzTurtleScreen.bgcolor�sV��	��	��N�N�4�(�(�E�E��E��
�
�e�$�$�����K�K��&�&�E��r�c��	|�|jSt|��|_d|_|�t|��|_|jr|���dSdSr�)r�r�r�r~r-)r��nrs   r�r+zTurtleScreen.tracer�sd��	�$
�9��=� ��A����
������"�5�z�z�D���=�	��K�K�M�M�M�M�M�	�	r�c�B�	|�|jSt|��|_dSr�)r~r�r�s  r�rzTurtleScreen.delay�s+��		��=��#�#��u�:�:����r�c��	tjsdt_t�|jdkr'|xjdz
c_|xj|jzc_dSdS)NTrr�)r	�_RUNNINGr�r�r�r�s r��
_incrementudczTurtleScreen._incrementudc	sc��'��$�	�$(�L�!����=�1������1�$������4�=�0������r�c���	|j}d|_|���D]*}|���|����+||_|���dS�NT)r�r,�_update_data�_drawturtler�)r��tracingr�s   r�r-zTurtleScreen.updatesc��	��-����
������	�	�A�
�N�N����
�M�M�O�O�O�O���
��������r�c�8�	|���dSr��rr�s r�r/zTurtleScreen.window_width� ��	�� � �"�"�1�%�%r�c�8�	|���dS�Nr�r�r�s r�r.zTurtleScreen.window_height&r�r�c��	|jSr�)r�r�s r�rzTurtleScreen.getcanvas/s��	��w�r�c�P�	t|j�����Sr�)�sortedr{r�r�s r�rzTurtleScreen.getshapes;s%��	��d�l�'�'�)�)�*�*�*r�r�c�6�	|�|||��dSr�)r��r�r�r�r�s    r�rSzTurtleScreen.onclickFs'��
	�	
���C��c�*�*�*�*�*r�c���	|�$||jvr|j�|��n#||jvr|j�|��|�||��dSr�)r��remover�r��r�r�r�s   r�rzTurtleScreen.onkeyWsq��	�,�;��d�j� � ��
�!�!�#�&�&�&��
��
�
"�
"��J���c�"�"�"����3��$�$�$�$�$r�c���	|�$||jvr|j�|��n%|�#||jvr|j�|��|�||��dSr�)r�r�r�r�r�s   r�r zTurtleScreen.onkeypressusu��	�0�;��d�j� � ��
�!�!�#�&�&�&��
�_��D�J�!6�!6��J���c�"�"�"�����c�"�"�"�"�"r�c�0�	|���dSr�)r�)r��xdummy�ydummys   r�rzTurtleScreen.listen�s��	�	
�������r�rc�4�	|�||��dSr�)r�r�s   r�r#zTurtleScreen.ontimer�s#��	�$	
�
�
�c�1�����r�c��	|�|jS||jvr|�|��|j|<|�|j|j|��||_dSr�)r�r|r�rr�)r��picnames  r�rzTurtleScreen.bgpic�sc��	� �?��?�"��$�,�&�&�$(�K�K��$8�$8�D�L��!����t�{�D�L��$9�:�:�:�!����r�c�2�	|�|||��Sr�)rrJs    r�r&zTurtleScreen.screensize�s��	� �|�|�I�z�2�6�6�6r�r��NNr.�rrb)$r�r�r�r�r�r/r6rr(r$r�r�rrar,rr+rr�r-r/r.rrrSrr rr#rr&r"r%rrr!r�r�r�r	r	�s��������H� $�V����,�D��M�&F�&F�&F�&F�P���< � � � �D%�%�%�N!#�!#�!#�!#�F+�+�+�6	:�	:�	:�)�)�)�)�*
�
�
�������.����8
&�
&�
&�
&�1�1�1�	�	�	�&�&�&�&�&�&�
�
�
�	+�	+�	+�+�+�+�+�"%�%�%�<#�#�#�#�@
�
�
�
�����*"�"�"�"�07�7�7�7�&�M��K��K��H��L�L�Lr�r	c�F�eZdZ	edd��edd��edd��d�ZdZdZdZefd�Zd�Z	d%d
�Z
d�Zd&d
�Zd�Z
d�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd%d�Zd�Zd�Zd�Zd%d�Zd%d�Zd�Zd �Zd'd!�Z d(d"�Z!d'd#�Z"d%d$�Z#eZ$eZ%eZ&eZ'eZ(eZ)eZ*eZ+eZ,d	S))�
TNavigatorr��)r�r�r�r�rr�c���|j|_|j|_||_d|_|���d|_|�|��t�	|��dSr�)
�DEFAULT_ANGLEOFFSET�_angleOffset�DEFAULT_ANGLEORIENT�_angleOrientr}�
undobufferr;r�r�rar�s  r�r/zTNavigator.__init__�sf�� �4��� �4�����
������������
��
�
�d������������r�c�j�	tdd��|_tj|j|_dS)Nr�)r�	_positionr��START_ORIENTATIONr}�_orientr�s r�razTNavigator.reset�s-��	��s�C�����"�4�T�Z�@����r�Nc��	|�|jS|dvrdS||_|dvrd|_d|_dS|jdz|_d|_dS)Nr�)r�r�rr��@r)r}r�r��_fullcircler�s  r�r�zTNavigator._setmodesl��	��<��:���4�4�4��F���
��(�(�(� !�D�� !�D���� $� 0�� 3�D�� "�D���r�c�f�	||_d|z|_|jdkr	d|_dS|dz|_dS)Nihr�rr�)r��
_degreesPerAUr}r��r��
fullcircles  r��_setDegreesPerAUzTNavigator._setDegreesPerAUsF��9�%��� ��^����:��#�#� !�D���� *�2�
�D���r���v@c�2�	|�|��dSr�)r�r�s  r�r;zTNavigator.degreess#��	�*	
���j�)�)�)�)�)r�c�F�	|�tj��dSr�)r�r��taur�s r�r_zTNavigator.radians5s%��
	�	
���d�h�'�'�'�'�'r�c�V�	|j|j|zz}|�|��dSr�)r�r��_goto)r�r<�endes   r��_gozTNavigator._goCs0��7��~���x� 7�7���
�
�4�����r�c�Z�	||jz}|j�|��|_dSr�)r�r�r��r�r�s  r��_rotatezTNavigator._rotateHs-��K�
��#�#���|�*�*�5�1�1����r�c��	||_dSr��r�)r��ends  r�r�zTNavigator._gotoMs��*�����r�c�2�	|�|��dSr��r��r�r<s  r�rDzTNavigator.forwardQs!��	�(	
��������r�c�4�	|�|��dSr�rrs  r�r0zTNavigator.backhs#��	�"	
���(������r�c�4�	|�|��dSr��rrs  r�r`zTNavigator.right|s#��	�$	
���e�V�����r�c�2�	|�|��dSr�r
rs  r�rQzTNavigator.left�s!��	�$	
���U�����r�c��	|jSr�rr�s r�r\zTNavigator.pos�s��		��~�r�c��	|jdSr�rr�s r�r}zTNavigator.xcor����
	��~�a� � r�c��	|jdSr�rr�s r�r~zTNavigator.ycor�rr�c��	|�|�t|���dS|�t||����dSr�)r�r)r�r�r�s   r�rJzTNavigator.goto�sJ��	�:
�9��J�J�u�a�y�!�!�!�!�!��J�J�u�Q��{�{�#�#�#�#�#r�c�^�	|�dd��|�d��dSr�)rJrer�s r�rMzTNavigator.home�s2��		�	
�	�	�!�Q������������r�c�d�	|�t||jd����dSr��r�rr�)r�r�s  r�rjzTNavigator.setxs2��	�	
�
�
�5��D�N�1�-�.�.�/�/�/�/�/r�c�d�	|�t|jd|����dSr�r)r�r�s  r�rkzTNavigator.setys2��	�	
�
�
�5����*�A�.�.�/�/�/�/�/r�c��	|�t||��}t|t��r|}n;t|t��r
t|�}nt|t��r|j}t||jz
��Sr�)rr�r�r�r��abs)r�r�r�r\s    r�r<zTNavigator.distance%s��	�*
�=���1�+�+�C��a����	��C�C�
��5�
!�
!�	���)�C�C�
��:�
&�
&�	��+�C��3���'�(�(�(r�c��	|�t||��}t|t��r|}n;t|t��r
t|�}nt|t��r|j}||jz
\}}tt
jt
j||����d��dz}||j	z}|j
|j|zz|jzS�Nr�r�)
rr�r�r�r�r�r�r;�atan2r�r�r�r�)r�r�r�r\�results     r�rvzTNavigator.towardsEs���	�*
�=���1�+�+�C��a����	��C�C�
��5�
!�
!�	���)�C�C�
��:�
&�
&�	��+�C��T�^�#���1��t�|�D�J�q�!�$4�$4�5�5�r�:�:�U�B���$�$�$���!�D�$5�f�$<�<��@P�P�Pr�c���	|j\}}ttjtj||����d��dz}||jz}|j|j|zz|jzSr)	r�r�r�r;rr�r�r�r�)r�r�r�rs    r�rKzTNavigator.headinghsi��	��|���1��t�|�D�J�q�!�$4�$4�5�5�r�:�:�U�B���$�$�$���!�D�$5�f�$<�<��@P�P�Pr�c��	||���z
|jz}|j}||dzz|z|dzz
}|�|��dS)N�@)rKr�r�r)r��to_angler��fulls    r�rezTNavigator.setheadingws^��	�,�D�L�L�N�N�*�D�,=�=������t�B�w���$�t�B�w�.�����U�����r�c	�>�	|jr'|j�dg��d|j_|���}|�|j}|�Mt|��|jz}dt
tdt|��dzzd��|z��z}d|z|z}d|z}d	|ztj	tj
|��|jz��z}|d
kr	|||}}}|���}	|�
��}
|d
kr|�d
d
��n|�d
��|�|��t|��D]V}|�|��|�|��|�d
��|�|���W|�|��|d
kr|�|	|
��|�|��|jrd|j_dSdS)N�seqTr��g@g�M@r�r�rrF)r�rIrFrqr�rr��minr�r�r_r��_tracerr�rrr�)r��radius�extent�stepsrq�fracr��w2�l�tr�dlr	s            r�r5zTNavigator.circle�s��	�:�?�	,��O� � �%��)�)�)�'+�D�O�$��
�
�����>��%�F��=��v�;�;�t�/�/�D��c�#�b��V���S��0�$�7�7��<�=�=�=�E��&�L�5� ��
�1�W���&�L�4�8�D�L��$4�$4�T�5G�$G�H�H�H���A�:�:��r�A�2��s�"�q�A�
�\�\�^�^��
�[�[�]�]���A�:�:��L�L��A������J�J�q�M�M�M����R�����u���	�	�A��J�J�u�����H�H�Q�K�K�K��J�J�q�M�M�M��L�L��O�O�O�O����b�S�����A�:�:��L�L��R� � � ��
�
�5�����?�	-�',�D�O�$�$�$�	-�	-r�c��dSr�r�)r�r�s  r�rqzTNavigator.speed����=�=r�c��dSr�r�)r��ar�s   r�r$zTNavigator._tracer�r.r�c��dSr�r�)r�r�s  r�r�zTNavigator._delay�r.r�r�)r�r�r�)-r�r�r�rr��DEFAULT_MODEr�r�r/rar�r�r;r_r�rr�rDr0r`rQr\r}r~rJrMrjrkr<rvrKrer5rqr$r�rAr4r1rcrRr]rfrgrdr�r�r�r�r��sr��������E�#�s�O�O��E�#�s�O�O��E�#�s�O�O�'�'���L�����(�����A�A�A�
#�
#�
#�
#�.�.�.�*�*�*�*�0(�(�(����
2�2�2�
������.���(���*���*���!�!�!�!�!�!�!$�!$�!$�!$�F���0�0�0�$0�0�0�$)�)�)�)�@!Q�!Q�!Q�!Q�F
Q�
Q�
Q����8=-�=-�=-�=-�B>�>�>�>�>�>�>�>�>�>�>�>�
�B�	
�B��H�	�B�	
�B��H�
�F��K��D�D�Dr�r�c���eZdZ	edfd�Zededfd�Zdd�Zdd�Zd	�Zd
�Z	d�Z
dd�Zd
�Zd�Z
d�Zd�Zd�Zd�Zdd�Zdd�Zdd�Zd�Zd�ZeZeZeZe	Ze	ZeZeZdS)�TPenrbc�V�||_d|_t�|��dSr�)�_resizemoder�r4�_reset)r�rbs  r�r/z
TPen.__init__�s)��%���������D�����r�rXrBc��d|_d|_||_||_d|_d|_d|_d|_d|_d|_	d|_
dS)Nr�Tr�)r�r�r�)r�r�r�r�)�_pensize�_shown�	_pencolor�
_fillcolor�_drawing�_speed�_stretchfactor�_shearfactor�_tilt�_shapetrafo�
_outlinewidth)r�rXrBs   r�r7zTPen._reset�sY����
����!���#�����
����&��������
�+�������r�Nc�z�	|�|jS|���}|dvr|�|���dSdS)N)�auto�userr��rb)r6r8rW)r��rmodes  r�rbzTPen.resizemode�sR��	�*�=��#�#����
�
���0�0�0��H�H��H�&�&�&�&�&�1�0r�c�F�	|�|jS|�|���dS)N)rZ)r9rW)r�r{s  r�rZzTPen.pensizes0��	�"�=��=� ����������r�c�F�	|jsdS|�d���dS)NF�rY�r=rWr�s r�r[z
TPen.penup0s2��	��}�	��F����������r�c�F�	|jrdS|�d���dS)NTrKrLr�s r�rYzTPen.pendown>s2��	��=�	��F����������r�c��	|jSr�)r=r�s r�rOzTPen.isdownLs��	��}�r�c���	dddddd�}|�|jS||vr	||}n/d|cxkrdkr nntt|����}nd}|�|�	��dS)
Nrr�rgr�r�)�fastest�fast�normal�slow�slowestr�g%@)rq)r>r�r�rW)r�rq�speedss   r�rqz
TPen.speed[s���	�4�b�1�Q�!�M�M���=��;���F�?�?��5�M�E�E�
�5�
�
�
�
�4�
�
�
�
�
���e���%�%�E�E��E����u������r�c�b�	|ryt|��}|dkr|dx}}n|dkr|\}}n
|dkr|x}}|�|��}|�|��}|�||���dS|�|j��|�|j��fS)Nr�rrr�)rXrB)rr�rWr�r;r<)r�rVr*�pcolor�fcolors     r�r:z
TPen.color�s���	�>�	M��D�	�	�A��A�v�v�"&�q�'�)�����a���!%������a���"&�&����^�^�F�+�+�F��^�^�F�+�+�F��H�H�f��H�7�7�7�7�7��;�;�t�~�.�.����D�O�0L�0L�L�Lr�c��	|r:|�|��}||jkrdS|�|���dS|�|j��S)N)rX)r�r;rWr�r�s   r�rXz
TPen.pencolor�sb��	�8�	/��N�N�4�(�(�E����&�&����H�H�e�H�$�$�$�$�$��;�;�t�~�.�.�.r�c��	|r:|�|��}||jkrdS|�|���dS|�|j��S)N)rB)r�r<rWr�r�s   r�rBzTPen.fillcolor�sb��	�6�	0��N�N�4�(�(�E����'�'����H�H�u�H�%�%�%�%�%��;�;�t��/�/�/r�c�4�	|�d���dS)NT��shown�rWr�s r�rpzTPen.showturtle�s#��		�	
���t������r�c�4�	|�d���dS)NFr\r^r�s r�rLzTPen.hideturtle	s#��	�	
���u������r�c��	|jSr�)r:r�s r�rPzTPen.isvisible	s��	��{�r�c���	|j|j|j|j|j|j|j|j|j|j	|j
d�}|s|s|St|t��r|}ni}|�
|��i}|D]
}||||<�|jr|j�d|f��d}d|vr|j|dkrd}d|vrMt|dt ��r|�|df��|d<|j|dkrd}d|vr|j|dkrd}|r|���d|vr
|d|_d|vr
|d|_d|vr
|d|_d|vrGt|dt ��r|�|df��|d<|d|_d	|vr
|d	|_d
|vr
|d
|_d|vr/|d}t|t&t(f��r||f}||_d|vr
|d|_d
|vr
|d
|_	d|vr
|d|_d|vr
|d|_
d|vsd|vsd|vrg|j\}	}
|j}t+j|j
��t+j|j
��}
}|	|
z|
||
z|zz|	|z|
|
||zz
zf|_|���dS)N)r]rYrXrBrZrqrb�
stretchfactorror�rtrWFrYTrXrZrBrqrbrbror�r]rt)r:r=r;r<r9r>r6r?r@rCrAr��dictr-r�rIr�r��_newLiner�r�r�r�r�rBr�)r�rW�pendict�_pd�p�_p_bufr��newLine�sf�scx�scy�shf�sa�cas              r�rWzTPen.pen!	sd��-	�\#'�+�"&�-�"&�.�"&�/�"&�-�"&�+�"&�"2�"&�"5�"&�"3�"&�"4�"&�*�����	�w�	��J��c�4� � �	��A�A��A�	����������	#�	#�C��c�(�F�3�K�K��?�	2��O� � �%���1�1�1�����>�>��}��)��,�,�����?�?��!�J�-��/�/�
A� $����*�
�/?� @� @��*�
��~��:��.�.�����>�>��}��)��,�,����	��M�M�O�O�O���>�>��i�L�D�M���?�?��z�]�D�N���>�>��i�L�D�M��!����!�K�.�%�0�0�
C�!%����;��0A�!B�!B��+����n�D�O��a�<�<��G�*�D�K��1��� ���D���a����?�#�B��"�s�E�l�+�+�
��"�X��"$�D���A��� !�-� 0�D����>�>�!"�9��D���a�<�<��G�*�D�K��Q�;�;��6��D�J��a���6�Q�;�;�-�1�2D�2D��*�H�C���#�C��X�d�j�)�)�4�8�D�J�+?�+?��B�!$�R���c�"�f�r�k�):�!$��R���b�3�r�6�k�):� <�D���������r�Tc��dSr�r��r��usePoss  r�rdz
TPen._newLine�	r.r�Fc��dSr�r�)r�rM�forceds   r�r�zTPen._update�	r.r�c��dSr�r�rUs  r�r�zTPen._color�	r.r�c��dSr�r�rUs  r�r�zTPen._colorstr�	r.r�r��T)TF)r�r�r�r�r/r7rbrZr[rYrOrqr:rXrBrprLrPrWrdr�r�r�r{rzr^rVr>rrrNr�r�r�r4r4�s��������#'�|�"4�����
#�:�.�#�K�0�����'�'�'�'�8 � � � �. � � ����
�
�
�$�$�$�$�L,M�,M�,M�\#/�#/�#/�J"0�"0�"0�H������ 
�
�
�{�{�{�{�~>�>�>�>�>�>�>�>�>�>�>�>�>�>�
�E�	�B�	�B�	�B��D�	�B�	�B�B�Br�r4c��eZdZ	d�Zd�ZdS)�_TurtleImagec�L�||_d|_|�|��dSr�)r�r�	_setshape)r�r��
shapeIndexs   r�r/z_TurtleImage.__init__�	s(�������
����z�"�"�"�"�"r�c���|j�||_|jdcxkr�j|jkrnndS|jdcxkr�j|jkrnndS|jdvr��|j��n*|jdkr|jD]}��|����j|j|_|jdkr����|_dS|jdkr,���jdj��|_dS|jdkr%�fd��j|jD��|_dSdS)Nr5r�)r�r5r7r�c�8��g|]}������Sr��r��rr�r�s  �r�r
z*_TurtleImage._setshape.<locals>.<listcomp>�	s7���L�L�L�4�&�,�,�.�.�L�L�Lr�)	r�r|rr{r��_itemr�r�r:)r�r|r�r�s   @r�r{z_TurtleImage._setshape�	s�������$����:��F�F�F�F�f�n�Z�&@�&F�F�F�F�F�F��F��:��D�D�D�D�F�N�:�$>�$D�D�D�D�D�D��F��:�-�-�-��N�N�4�:�&�&�&�&�
�Z�:�
%�
%��
�
%�
%�����t�$�$�$�$��^�J�/�5��
��:��"�"��+�+�-�-�D�J�J�J�
�Z�7�
"�
"��,�,�V�^�G�-D�-J�K�K�D�J�J�J�
�Z�:�
%�
%�L�L�L�L�*0�.��*D�*J�L�L�L�D�J�J�J�&�
%r�N)r�r�r�r/r{r�r�r�ryry�	s<�������#�#�#�
L�L�L�L�Lr�ryc��eZdZ	gZdedededfd�Zd�Zd�Zd�Zd	�Z	d
�Z
d�Zd�Zd;d
�Z
d�Zd�Zd�Zd�Zd<d�Zd=d�Zd<d�Zd�Zd<d�Zd�Zd>d�Zd�Zd�Zd?d�Zd�Zd�Zd�Zd �Zd<d!�Z d"�Z!d#�Z"d$�Z#d@d&�Z$d'�Z%d(�Z&d)�Z'd<d*�Z(d+�Z)dAd.�Z*d/�Z+d0�Z,d1�Z-d2�Z.d3�Z/e/Z0d<d4�Z1dBd6�Z2dBd7�Z3dBd8�Z4d9�Z5d:�Z6eZ7dS)CrNrlr�r�c�:�t|t��r||_n�t|t��r5|tjvrtj�|��||_n�t|ttf��r\tjD]}|j	|kr	||_n9�t|��|_tj�|j��ntd|z���|j}t�||�
����t�|��|j�|��|���|_t%||��|_d|_d|_dx|_|_||_d|_|���|_|jg|_|jg|_g|_||_tA|��|_!|�"��dS)Nzbad canvas argument %sF)#r��_Screenr�r	r�screensr�rr2r�r2r�r/rr4r�r��drawingLineItemryr��_poly�
_creatingPoly�	_fillitem�	_fillpathr:�_hidden_from_screen�currentLineItemr��currentLiner��
stampItems�_undobuffersizerAr�r�)r��canvasrlr�r�r�s      r�r/zRawTurtle.__init__�	s����f�g�&�&�	I� �D�K�K�
���
-�
-�
	I��Y�.�.�.��!�(�(��0�0�0� �D�K�K�
���� 8�
9�
9�		I�#�+�
6�
6���9��&�&�"(�D�K��E�'�+�6�2�2����!�(�(���5�5�5��%�&>��&G�H�H�H�������D�&�+�+�-�-�0�0�0��
�
�d��������t�$�$�$�%�1�1�3�3���"�6�5�1�1�����
�"���*.�.��������#(�� �%�1�1�3�3��� �N�+����*�+��
����-���!�.�1�1����������r�c���	t�|��t�|��|���|���|���dSr�)r�rar4r7�_clearr�r�r�s r�razRawTurtle.reset
s_��	�$	����������D�������
�
�
��������������r�c�R�	|�|dkr	d|_dSt|��|_dSr�)r�rA)r��sizes  r�rizRawTurtle.setundobuffer
s2��	��<�4�1�9�9�"�D�O�O�O�%�d�m�m�D�O�O�Or�c�H�	|j�dS|j���Sr�)r�rNr�s r�ryzRawTurtle.undobufferentries,
s*��	��?�"��1���*�*�,�,�,r�c�x�	dx|_|_|jD]}|j�|���|j���|_g|_|jr|j�	|j
��|jg|_|���|�|j
��dSr�)r�r�r�r�r�r�r�r�r=r�r�r8rir�r�s  r�r�zRawTurtle._clear9
s���*�*.�.������J�	&�	&�D��K����%�%�%�%�#�{�6�6�8�8�������=�	4���#�#�D�N�3�3�3��*�+��
����������4�/�0�0�0�0�0r�c�X�	|���|���dSr�)r�r�r�s r�r6zRawTurtle.clearG
s'��
	�	
���
�
�
��������r�c���|j���|jjdkrdSt|j��dkr3|j�|j|j|j|j��dSdSr�)	r�r�r�rr�r�r�r;r9r�s r�r�zRawTurtle._update_dataV
s�����!�!�#�#�#��;�%��*�*��F��t�� � ��"�"��K�!�!�$�"6��8H�"&�.�$�-�
A�
A�
A�
A�
A�#�"r�c��	|j}|jdkrdS|jdkrX|���|���|���|�|j��dS|���|jdkrA|���D]}|����|���dSdSr�)	r�r�r�r�r�r�r~r�r,)r�r�r�s   r�r�zRawTurtle._update^
s���	�����?�a����F�
�_��
!�
!��������������N�N�����M�M�&�,�-�-�-�-�-��������$��)�)����)�)�$�$�A��M�M�O�O�O�O���� � � � � �*�)r�c�:�	|j�||��Sr�)r�r+)r��flagrs   r�r$zRawTurtle._tracerp
s!��	�$�{�!�!�$��.�.�.r�c�6�|j�|��Sr�)r�r�rUs  r�r�zRawTurtle._color�
s���{�!�!�$�'�'�'r�c�6�|j�|��Sr�)r�r�rUs  r�r�zRawTurtle._colorstr�
s���{�$�$�T�*�*�*r�c��	t|t��r|S	|\}}}n4#ttf$r t	dt|��z���wxYw|jjdkrd�|||fD��\}}}d|cxkrdkr"nnd|cxkrdkrnnd|cxkrdks!nt	dt|��z���d|||fzS)Nr�r�c�2�g|]}td|z����Sr�r�r�s  r�r
z!RawTurtle._cc.<locals>.<listcomp>�
r�r�rr�r�r�)r�rr�r�r2r�r)r�rVr�r�r�s     r��_ccz
RawTurtle._cc�
s��	��d�C� � �	��K�	M��G�A�q�!�!���:�&�	M�	M�	M�%�&?�#�d�)�)�&K�L�L�L�	M�����;�!�S�(�(�9�9��1�a�y�9�9�9�G�A�q�!��a�����3������Q�!�]�]�]�]�s�]�]�]�]�]��a�����3�����%�&>��T���&J�K�K�K��!�Q���*�*s	�!�1Ac����	|j�|�|j��|j}d|_d|_t	|��}�|_||_�|_t�|jj��|_�j�|���j	|jjj
}|dkr����|j_nn|dkr0��
�j	dj��|j_n8|dkr2�fd��j	|jjjD��|j_����|_|���|S)Nr5r�r�r7c�8��g|]}������Sr�rr�s  �r�r
z#RawTurtle.clone.<locals>.<listcomp>�
s7���L�L�L�t�f�0�0�2�2�L�L�Lr�)r�rdr=r�rryr|r�r�r{rr�r�r�r:r�r�r�)r�r��q�ttyper�s    @r�r9zRawTurtle.clone�
s]���
	�����
�
�d�m�$�$�$�����������T�N�N���������������(>�?�?�������q�!�!�!���t�{�5�6�<���I���#�/�/�1�1�A�H�N�N�
�g�
�
�#�0�0����1H�1N�O�O�A�H�N�N�
�j�
 �
 �L�L�L�L�$�n�T�[�-C�D�J�L�L�L�A�H�N�"�.�.�0�0���	�	�	�����r�c���	|�|jjS||j���vrt	d|z���|j�|��|���dS)NzThere is no shape named %s)r�r|r�rr2r{r�)r�r�s  r�rlzRawTurtle.shape�
sm��	�&�<��;�)�)��t�{�,�,�.�.�.�.�%�&B�T�&I�J�J�J�����d�#�#�#��������r�c��	||cxur|cxur�nn|j\}}|||jfS|dks|dkrtd���|�|�||f}n||f}n|�|jd|f}n|j}|�|j}|�d||���dS)Nrz(stretch_wid/stretch_len must not be zerorF)rbrbr�)r?rCr2rW)r��stretch_wid�stretch_lenr�rbs     r�rmzRawTurtle.shapesize�
s���	�(�+�8�8�8�8��8�8�8�8�8�8�8�8�'+�':�$�K����T�-?�?�?��!���{�a�/�/�%�&P�Q�Q�Q��"��"� +�[� 8�
�
� +�[� 8�
�
�
�
$� �/��2�K�?�M�M� �/�M��?��(�G����F�,�g�	�	?�	?�	?�	?�	?r�c�H�	|�|jS|�d|���dS)NrF)rbro)r@rW)r��shears  r�rozRawTurtle.shearfactors3��	�$�=��$�$����F���6�6�6�6�6r�c�`�	tjddd���|�|��dS)Nzturtle.RawTurtle.settiltangle()zn{name!r} is deprecated since Python 3.1 and scheduled for removal in Python {remove}. Use tiltangle() instead.)r��
)r�)�warnings�_deprecatedrurs  r�rhzRawTurtle.settiltanglesI��	�(	��>�X�$+�	-�	-�	-�	-�	
���u�����r�c�
�	|�4tj|j��|jz}||jz|jzS||jz|jz}tj|��tjz}|�d|���dS)NrF)rbrt)	r�r;rAr�r�r�r_r�rW)r�r�rts   r�ruzRawTurtle.tiltangle7s���	�<�=��L���,�,�,�t�/@�@�D��4�-�-��1A�A�A��6�D�.�.��1B�B�D��<��%�%���0�D��H�H��T�H�2�2�2�2�2r�c�\�	|�||���z��dSr�)rurs  r�rtzRawTurtle.tilt^s0��	� 	
���u�t�~�~�/�/�/�0�0�0�0�0r�c��	||cxur|cxur|cxur�
nn|jS|j\}}}}|�|}|�|}|�|}|�|}||z||zz
dkrtd���||||f|_tj||��tjz}	tj|	��tj|	��}}
||z|
|zz
||z|
|zz
|
|z||zz|
|z||zzf\}}
}}||f|_|
|z|_|	|_	|�
d���dS)Nrz0Bad shape transform matrix: must not be singularrFrG)rBr2r�rr�r�r�r?r@rArW)r��t11�t12�t21�t22�m11�m12�m21�m22�alfarnro�a11�a12�a21�a22s                r�rnzRawTurtle.shapetransformqso��	�&�#�+�+�+�+��+�+�+�+��+�+�+�+�+�+�+�+��#�#�!�-���S�#�s��?�#�C��?�#�C��?�#�C��?�#�C���9�s�S�y� �A�%�%�%�&X�Y�Y�Y���c�3�/����z�3�$��$�$�t�x�/����$�����$���B�� ��f�r�#�v�o�r�#�v��3��� ��f�r�#�v�o�r�#�v��3���@���S�#�s�!�3�h�����G�����
����F��#�#�#�#�#r�c��������	|j�|j\��|j\��t���jz�jz��}dt
|��z|z\�������fd�|D��S)Nr�c�p��g|]2\}}��|z�|zz�jzz��|z�|zz�jzzf��3Sr�)r�r�)rr�r��e0�e1�p0�p1r�s   �����r�r
z(RawTurtle._polytrafo.<locals>.<listcomp>�sj���O�O�O�?E��1��R��T�"�Q�$�Y��
�-�-�r�B�3�q�5��A��:�v�}�2L�/L�M�O�O�Or�)r�r�r�rr�r�r)r�r>�er�r�r�r�r�s   @@@@@r��
_polytrafozRawTurtle._polytrafo�s��������	��������B�����B��"�b�6�=�(�6�=�8�9�9����A���,�!�#���B�O�O�O�O�O�O�O�O�IM�O�O�O�	Or�c��	|jj|jj}|jdkr$|�|j|jdk��SdS)Nr5r7)r�r{r�r|r�
_getshapepolyr:)r�rls  r�rHzRawTurtle.get_shapepoly�sQ��
	���#�D�K�$:�;���;�)�#�#��%�%�e�k�5�;�*�3L�M�M�M�$�#r�Fc�������	|jdks|r
|j\����n<|jdkr$td|jdz��}|dd|f\����n
|jdkr|St	����fd�|D����S)NrFrEr�g@rr�c3�J�K�|]\}}�|z�|zz�|z�|zzfV��dSr�r�)rr�r�r�r�r�r�s   ����r�r�z*RawTurtle._getshapepoly.<locals>.<genexpr>�sD�����J�J���A�c�!�e�c�!�e�m�S��U�S��U�]�3�J�J�J�J�J�Jr�)r6rB�maxr9r�)r�r5r7r*r�r�r�r�s    @@@@r�r�zRawTurtle._getshapepoly�s�������	���v�%�%��%�!%�!1��C��c�3�3�
�
��
'�
'��A�t�}�S�(�)�)�A�!"�A�q�!���C��c�3�3�
�
��
+�
+��N��J�J�J�J�J�J�J�'�J�J�J�J�J�Jr�c	�@�	|j}|j|jj}|j}|jj}|j�r^|jdk�rR|jdk�rFd|_	|j
}|dkr{|jdkrd}n|jdkr|j}n|j
}|�|�|����}|j|j}}|�|||||d���dS|d	kr|�||j|��dS|d
kr�t+||��D]z\}	\}
}}|�|�|
d����}
|�|	|
|�|��|�|��|j
d����ydSdS|j	rdS|dkr|�|ddd��nV|d	kr-|�||j|jd
j
��n#|d
kr|D]}	|�|	ddd���d|_	dS)NrFr5r�r�rET�rjr�r{r�r�r7�rqrqrqr�r�)r�r{r�r|rr�r:r�r�r�r:r6r9rCr�r�r<r;r�rr��zipr�)r�r�rlr��titem�tshaper��fc�ocr�r>s           r�r�zRawTurtle._drawturtle�s���	8������t�{�5�6�������!���;�	,�6�0�A�5�5�&�/�A�:M�:M�',�D�$��[�F��	�!�!��#�z�1�1�q�1�1��%��/�/�T�]����+�a�����(:�(:�6�(B�(B�C�C����$�.�B��� � ���B��<=�4�!�I�I�I�I�I��'�!�!��!�!�%����@�@�@�@�@��*�$�$�,/��v�,>�,>�_�_�(�D�.�4��R��?�?�4�+=�+=�d�D�+I�+I�J�J�D��$�$�T�4�d�h�h�r�l�l�-1�X�X�b�\�\��AS�Y]�%�_�_�_�_�%�$�_�_�
�'�
����	�!�!�� � ��(@�"�b�I�I�I�I��'�!�!��!�!�%���*0�.��*A�*G�I�I�I�I��*�$�$�!�M�M�D��$�$�T�+C�R��L�L�L�L�'+�D�$�$�$r�c	��	|j}|j|jj}|j}|j}|dkr�|���}|jdkrd}n|jdkr|j}n|j	}|�
|�|����}|j|j
}}|�|||||d����n|dkr2|�d��}|�||j|��n�|d	kr�g}|D]+}	|���}
|�|
���,t'|��}t)||��D]x\}
\}}}|�
|�|d����}|�|
||�|��|�|��|j	d����y|j�|��|j�d
|f��|S)Nr5r�r�rETr�r�r�r7rs)r�r{r�r|rr:r�r6r9rCr�r�r<r;r�r�rr�r�r�r�r�r�r�rI)r�r�rlr�r��stitemr�r�r��elementr�r>s            r�rszRawTurtle.stamp�s/��
	������t�{�5�6���������I����'�'�)�)�F���:�-�-�1�q�q��!�V�+�+���Q�Q��'�!��O�O�D�$6�$6�v�$>�$>�?�?�E��_�d�n��B����V�U��R�89�t�
�
E�
E�
E�
E�
�g�
�
��(�(��,�,�F����f�d�n�f�=�=�=�=�
�j�
 �
 ��F�!�
$�
$���)�)�+�+���
�
�d�#�#�#�#��6�]�]�F�(+�F�F�(;�(;�
[�
[�$��n�t�R�����t�'9�'9�$��'E�'E�F�F��� � ��t�$�(�(�2�,�,�)-���"���T�=O�UY�!�[�[�[�[�����v�&�&�&�����g�v�.�/�/�/��
r�c��	||jvrit|t��r |D]}|j�|���n|j�|��|j�|��d|f}|j}||jvrdS|j�|��}|j�|��||j	kr|j	dz
|j
z|_	|j�|j	dz|j
zdg��dS)Nrsr�)r�r�r�r�r�r�r�rD�indexrErC�insert)r��stampid�subitemr��bufr�s      r��_clearstampzRawTurtle._clearstamps��	��d�o�%�%��'�5�)�)�
-�&�1�1�G��K�'�'��0�0�0�0�1���#�#�G�,�,�,��O�"�"�7�+�+�+���!���o���s�z�!�!��F��
� � ��&�&���
���$�����C�G����w��{�c�k�1�C�G��
���3�7�1�9�c�k�1�D�6�:�:�:�:�:r�c�Z�	|�|��|���dSr�)r�r�)r�r�s  r�r7zRawTurtle.clearstamp.s.��
	�	
����!�!�!��������r�c���	|�|jdd�}n%|dkr|jd|�}n|j|d�}|D]}|�|���|���dSr�)r�r�r�)r�r��toDeleter�s    r�r8zRawTurtle.clearstamps=s���	�"
�9���q�q�q�)�H�H�
�!�V�V���r��r�*�H�H���q�r�r�*�H��	#�	#�D����T�"�"�"�"��������r�c
���	|j|j|jt|jt
��f}|j}d|j|||j|j	dd�|�
|j��|jdd�ff}|jr|j�
|��|j}|j�r	|jdkr�||z
}|d|jzdz|d|jzdzz}dt%|dzdd|jzz|jzz��z}|d|zz}	t'd|��D]d}
|
dkrd	}nd
}||	|
zz|_|jr/|�|j||jf|j|j|��|����e|jr#|�|jdd|j�
��|jr|j	�|��t|jt
��r|j�|��||_|jr|j�|��t5|j	��dkr|���|���dS)N�gor�rrr�r�皙�����?r�TF�rqrqr��rjr{�*)r=r;r9r�r�r�r�r�r�r�rr�r�rIr>r�r�r�r�rr�r�r�r�r�r�rrd)r�r�go_modesr��
undo_entry�start�diff�diffsq�nhops�deltar�r�s            r�r�zRawTurtle._gotoYs���	�
�]��^��]�����5�5�7������D�N�C���+��&�q�q�q�)��'�'��(<�=�=��j����m�%��
��?�	-��O� � ��,�,�,�����;�	M�6�?�a�/�/���I�D��1�g�f�m�+�a�/�4��7�6�=�3H�1�2L�L�F��c�6�3�;��C���,<�)=�d�k�)I�J�K�K�K�E��C��I�&�E��1�e�_�_�

�

����6�6��C�C��C�!&����!2����=�I��$�$�T�%9�&+�T�^�%<�%)�^�T�]�C�I�I�I���������}�
M�� � ��!5�7G�46�d�m�!�M�M�M��=�	)���#�#�C�(�(�(��d�n�d�+�+�	'��N�!�!�#�&�&�&������	#��J���c�"�"�"��t�� � �2�%�%��M�M�O�O�O��������r�c�����	|\}}}}|\}}}}	|\}
}}�|j�t|j|z
��dkrtd��|
|_||_|ddgkrd}
n|}
��|
||
|�����fd�|jD��}|D]1}��|��|j�	|���2|}|j
r�jdkr�||z
}|d�jzd	z|d�j
zd	zz}dt|dzd
d|j
zz|j
zz��z}|d|zz}td|��D]U}|dkrd
}nd}|||zz|_|r%��|j||jf|||��|����V|r��|jdd|���||_|jrJt'|j��dkr|j���|jgkrd|_d|_|	rB|jgkrd|_td��n |j�|j���|���dS)Nr�z$undogoto: HALLO-DA-STIMMT-WAS-NICHT!rqr�r�c�N��g|]!}|�vr��|��dk�|��"S)r�)r)rr	r�r�s  ��r�r
z'RawTurtle._undogoto.<locals>.<listcomp>�sB���D�D�D�!�a�u�n�n�(.���Q���6�(A�(A��(A�(A�(Ar�r�rrr�r�r�TFr�zUnwahrscheinlich in _undogoto!)r�rr�r�r�r�r�r�r�r�r>r�r�r�r�rr�r�r�rr�rKr�)r��entry�old�newr��coodata�drawing�pc�psrC�cLI�cLr
�usepc�todeleter	r�r�r�r�r�r�r�r�r�s                       @@r��	_undogotozRawTurtle._undogoto�s����	�&+�#��S�(�G�#+� ���R��$���R��U�����t�~��#�$�$�s�*�*��9�:�:�:�"������
�&�&�!�!�!��E�E��E�����b�u�B��7�7�7�D�D�D�D�D�t�z�D�D�D���	!�	!�A��N�N�1�����J���a� � � � ����;�	B�6�?�a�/�/���9�D��1�g�f�m�+�a�/�4��7�6�=�3H�1�2L�L�F��c�6�3�;��C���,<�)=�d�k�)I�J�K�K�K�E��C��I�&�E��1�e�_�_�

�

����6�6��C�C��C�!$�u�q�y�����2��$�$�T�%9�&+�T�^�%<�%'��S�2�2�2���������
B�� � ��!5�7G�46�b�!�B�B�B����
��	"��4�:����"�"��
��� � � ��z�R���%*��"�!��
��	%��~��#�#�!%����6�7�7�7�7���+���"�"�$�$�$��������r�c��	|jr"|j�d||jf��||jz}|j�|��}|jj}|dkr�|jdkryd|jz}dtt|��|z��z}d|z|z}t|��D]5}|j�|��|_|����6||_|���dS)N�rotr�rg@r�)r�rIr�r�r�r�r�r>r�rrr�)r�r��	neworientr��anglevelr'r�rs        r�rzRawTurtle._rotate�s���	��?�	E��O� � �%���0B�!C�D�D�D�
��#�#���L�'�'��.�.�	��+�&���a�<�<�D�K�!�O�O��T�[�(�H���C��J�J�x�/�0�0�0�E���I�e�O�E��5�\�\�
�
��#�|�2�2�5�9�9���������� ����������r�Tc��	t|j��dkro|j�|j|j|j|j��|j���|_|j�	|j��n!|j�|jd���g|_|r|j
g|_dSdS)Nr�T)r�)rr�r�r�r�r;r9r�r�r�r�rqs  r�rdzRawTurtle._newLine�s���	��t�� � �1�$�$��K�!�!�$�"6��8H�&*�n�d�m�
E�
E�
E�#'�;�#:�#:�#<�#<�D� ��J���d�2�3�3�3�3��K�!�!�$�"6�D�!�A�A�A�����	0� $��/�D����	0�	0r�c�8�	t|jt��Sr�)r�r�r�r�s r�rCzRawTurtle.filling�s��
	��$�.�$�/�/�/r�c�d�	|���s=|j���|_|j�|j��|jg|_|���|j	r!|j	�
d|jf��|���dS)N�	beginfill)rCr�r�r�r�r�r�r�rdr�rIr�r�s r�r2zRawTurtle.begin_fill�s���		��|�|�~�~�	.�!�[�4�4�6�6�D�N��J���d�n�-�-�-��.�)����
�
�����?�	@��O� � �+�t�~�!>�?�?�?��������r�c�P�	|���r�t|j��dkrT|j�|j|j|j���|jr!|j�d|jf��dx|_|_|�	��dSdS)Nrr��dofill)
rCrr�r�r�r�r<r�rIr�r�s r�r?zRawTurtle.end_fill
s���		��<�<�>�>�	��4�>�"�"�Q�&�&���%�%�d�n�d�n�+/�?�&�<�<�<��?�E��O�(�(�(�D�N�)C�D�D�D�.2�2�D�N�T�^��L�L�N�N�N�N�N�	�	r�c�\�	|svt|ttf��r3|�|��}|jt|jd��z}n[|j}|s|jt|jd��z}n4|�|jt|jd��z}|�|��}t|jd��rb|j�	|j
||��}|j�|��|j
r|j
�d|f��dSdS|���}|j
r'|j
�dg��d|j
_	|���dkr|���|���|�|��|�|��|�d��|�|��n#|�|��wxYw|j
rd|j
_dSdS)	Nrf�_dotr=r!TrErF)r�rr�r�r9r�r;�hasattrr�rr�r�r�r�rIrWrFrbrNrYrZrXrD)r�r�r:r�rWs     r�r=z
RawTurtle.dot(
s��	��	*��$��e��-�-�
A����t�,�,���}�s�4�=�!�'<�'<�<�������A��=�3�t�}�a�+@�+@�@�D���|��}�s�4�=�!�'<�'<�<���N�N�5�)�)�E��4�;��'�'�	1��;�#�#�D�N�D�%�@�@�D��J���d�#�#�#���
4���$�$�e�T�]�3�3�3�3�3�
4�
4��(�(�*�*�C���
0���$�$�e�W�-�-�-�+/���(�
��?�?�$�$��.�.��G�G�I�I�I����������T�"�"�"��
�
�e�$�$�$����Q��������
�
�
�
������
�
�
�
������
1�+0���(�(�(�
1�
1s
�(A?G=�=Hc��	|j�|j||||j��\}}|���|j�|��|jr|j�d|f��|S)N�wri)	r�r�r�r;r�r�r�r�rI)r�r�r�r�r�rs      r�r�zRawTurtle._writeX
s��	��K�&�&�t�~�s�E�4�:>�.�J�J�	��c��������
���$�����?�	0��O� � �%���/�/�/��
r�rQ��Arialr_rRc�X�	|jr'|j�dg��d|j_|�t	|��|���|��}|r-|���\}}|�||��|jrd|j_dSdS)Nr!TF)r�rIrFr�rr8r\rf)r��arg�mover�r�rr�r�s        r�r|zRawTurtle.writec
s���	�$�?�	,��O� � �%��)�)�)�'+�D�O�$��k�k�#�c�(�(�E�K�K�M�M�4�8�8���	 ��8�8�:�:�D�A�q��K�K��Q�����?�	-�',�D�O�$�$�$�	-�	-r�c�0�	|jg|_d|_dSr�)r�r�r�r�s r�r3zRawTurtle.begin_poly�
s#��		��n�%��
�!����r�c��	d|_dS�NF)r�r�s r�r@zRawTurtle.end_poly�
s��		�#����r�c�>�	|j�t|j��SdSr�)r�r�r�s r�rEzRawTurtle.get_poly�
s)��	��:�!����$�$�$�"�!r�c��	|jSr�)r�r�s r�rGzRawTurtle.getscreen�
s��	��{�r�c��	|Sr�r�r�s r�rIzRawTurtle.getturtle�
s��
	��r�c�8�	|j�|��Sr�)r�rr�s  r�r�zRawTurtle._delay�
s��	��{� � ��'�'�'r�r�c�~�	|j�|jj|||��|���dSr�)r�r�r�r�r�r�s    r�rSzRawTurtle.onclick�
s;��	�"	
����T�[�.��S�#�>�>�>��������r�c�~�	|j�|jj|||��|���dSr�)r�r�r�r�r�r�s    r�rUzRawTurtle.onrelease�
s;��	�*	
����t�{�0�#�s�C�@�@�@��������r�c�V�	|j�|jj|||��dSr�)r�r�r�r�r�s    r�rTzRawTurtle.ondrags0��	�"	
����D�K�-�s�C��=�=�=�=�=r�c�J�	|j�dS|dkrA|\}}|�||z|jz��|j���}dS|dkr|d}|�|��dS|dkr|�|��dS|dvr>|d}|j�|��|j�	|��dS|dkr(|d}|j�
|ddd�	��dS|d
krW|d}dx|_|_||jvr6|j�|��|j�	|��dSdS|dkr<t�||d��|j���dSdS)Nr�rsrr�)r
r=rr�r�r�rrW)r�rr�rKr7r�r�r�r�r�r�r�r�r4rW)r��actionr<r��degPAU�dummyr�r�s        r��_undozRawTurtle._undos���	��?�"��F��U�?�?� �M�E�6��L�L�%����t�'9�9�:�:�:��O�'�'�)�)�E�E�E�
�w�
�
��!�W�F��O�O�F�#�#�#�#�#�
�t�^�^��N�N�4� � � � � �
�~�
%�
%���7�D��K����%�%�%��J���d�#�#�#�#�#�
�x�
�
���7�D��K�!�!�$�(>�')�2�
"�
7�
7�
7�
7�
7�
�{�
"�
"���7�D�.2�2�D�N�T�^��t�z�!�!���#�#�D�)�)�)��
�!�!�$�'�'�'�'�'�"�!��u�_�_��H�H�T�4��7�#�#�#��O���!�!�!�!�!��_r�c�(�	|j�dS|j���}|d}|dd�}|dkr@|r<|���}|�|d|dd���|�:dSdS|�||��dS)Nrr�r!)r�rKr)r�r�rr<s    r�rxzRawTurtle.undo8s���	� �?�"��F���"�"�$�$���a����A�B�B�x���U�?�?��
.��x�x�z�z���
�
�4��7�D����H�-�-�-��
.�
.�
.�
.�
.�
�J�J�v�t�$�$�$�$�$r�r�r�rb)NNNN)Frw)FrQrr.)8r�r�r�r�r�r/rariryr�r6r�r�r$r�r�r�r9rlrmrorhrurtrnr�rHr�r�rsr�r7r8r�r�rrdrCr2r?r=r�r|r3r@rErGrIrFr�rSrUrTrrxrwr�r�r�rr�	s���������G�"��G�}� $�%5� 6��i��&�&�&�&�P���2,�,�,�&-�-�-�1�1�1�
�
�
�A�A�A�!�!�!�$/�/�/�/�*(�(�(�+�+�+�
+�
+�
+�&�&�&�P����6&?�&?�&?�&?�P7�7�7�7�.���6%3�%3�%3�%3�N1�1�1�&%$�%$�%$�%$�P
O�
O�
O�N�N�N�"K�K�K�K�$,�$,�$,�P+�+�+�Z;�;�;�,
�
�
�����83�3�3�j?�?�?�B���$0�0�0�0� 0�0�0����*���(.1�.1�.1�.1�`	�	�	�-�-�-�-�:"�"�"�#�#�#�%�%�%���� ���"�F�(�(�(�(�
����*����2>�>�>�>�*"�"�"�@%�%�%�:�J�J�Jr�rc�d�	tj�t��t_tjSr�)r�_screenr�r�r�r�r
r
[s$��%��~�� ������>�r�c��eZdZdZdZedZd�Zededededfd�Zd	�Z	d
�Z
d�Zd�ZdS)
r�Nr*c��tj�bt��xt_|_|j�tj��|j�|j��tj��td}td}td}td}td}td}|j�	||||��|j�
��t_t�|tj��|�
||||��dSdS)Nr{r�r�r�r�r�)r��_rootrdr*�_titlerx�_destroyr4r�rlrnr	r/r')r�r{r�r�r�r�r�s       r�r/z_Screen.__init__is����=� �).���0�G�M�D�J��J���W�^�,�,�,��J� � ���/�/�/��?�"���M�E��(�^�F��[�)�I��l�+�J��[�)�I��[�)�I��J�"�"�5�&�)�Z�H�H�H�"�j�3�3�5�5�G�O��!�!�$���8�8�8��J�J�u�f�i��;�;�;�;�;�#�"r�r{r�r�r�c���	t|jd��sdS|j���}|j���}t	|t
��rd|cxkrdkrnn||z}|�||z
dz}t	|t
��rd|cxkrdkrnn||z}|�||z
dz}|j�||||��|���dS)Nrsrr�r)rr$r{r~r�r�rsr-)r�r{r�rqrrr��shs       r�r'z
_Screen.setups
��	�.�t�z�>�2�2�	��F�
�Z�
!�
!�
#�
#��
�Z�
"�
"�
$�
$���e�U�#�#�	��U�����a�������u�H�E��>��5�j�A�%�F��f�e�$�$�	��f�)9�)9�)9�)9��)9�)9�)9�)9�)9���Y�F��>��6�k�Q�&�F��
����v�v�v�>�>�>����
�
�
�
�
r�c�v�	tj�tj�|��|t_dSr�)r�r$r*r%)r��titlestrings  r�r*z
_Screen.title�s2��	��=�$��M����,�,�,�$����r�c���|j}|tjur0dt_dt_dt_dt_dt_|���dSr)	r$r�rr�r!r4r	r�rw)r��roots  r�r&z_Screen._destroy�sK���z���7�=� � ��F�K�!�F�N� �G�M�"�G�O� %����������r�c�0�	|���dSr�)r&r�s r�rz_Screen.bye�s��	�
	
�
�
�����r�c���	�fd�}��|��tdrdS	t��dS#t$rt	d��YdSwxYw)Nc�2��	����dSr�)r)r�r�r�s  �r��exitGracefullyz+_Screen.exitonclick.<locals>.exitGracefully�s���8��H�H�J�J�J�J�Jr�r�r)rSr�r�AttributeError�exit)r�r0s` r�rz_Screen.exitonclick�s����	�$	�	�	�	�	�	
���^�$�$�$����	��F�	��J�J�J�J�J���	�	�	���G�G�G�G�G�G�	���s�=�A�A)
r�r�r�r$r4r�r%r/r'r*r&rrr�r�r�r�r�cs��������E��G�
�'�]�F�<�<�<�,�w�-��X���+�&�t�K�/@�&�&�&�&�P%�%�%�"����������r�r�c�J�eZdZ	dZdZedededfd�ZdS)rNrlr�r�c��tj�t��t_t�|tj|||���dS)N)rlr�r�)rr!r
rr/)r�rlr�r�s    r�r/zTurtle.__init__�sM���>�!�#�X�X�F�N����4���!&�*8�#*�	�	,�	,�	,�	,�	,r�)r�r�r�r�r!r�r/r�r�r�rr�sR�������
�D��G��G�}� $�%5� 6��i��	,�	,�	,�	,�	,�	,r�r�turtle_docstringdictc���	i}tD]}d|z}t|��j||<�tD]}d|z}t|��j||<�t	d|zd��5}td�|D����}|�d��|dd�D]E}|�dt|��z��|�d	||z���F|d}|�dt|��z��|�d
||z��|�d��|���ddd��dS#1swxYwYdS)Nz_Screen.zTurtle.z%s.pyr�c3�^K�|](}|�d��dtv�$|V��)dS)r�r�N)r�_alias_listr�s  r�r�z&write_docstringdict.<locals>.<genexpr>sF����=�=�A�������a���;�;��;�;�;�;�=�=r�zdocsdict = {

rz%s :
z        """%s
""",

z        """%s
"""

z}
)	�_tg_screen_functionsr��__doc__�_tg_turtle_functionsr�r�r|�repr�close)r��docsdict�
methodnamer�r�r�s      r�rr�s���
��H�*�*�*�
���#���S�	�	�)���
�
�*�*�*�
��
�"���S�	�	�)���
�
�	
�g�� ��	%�	%����=�=��=�=�=�=�=��	���"�#�#�#�����9�	?�	?�C�
�G�G�H�t�C�y�y�(�)�)�)�
�G�G�-���
�=�>�>�>�>��2�h��	����4��9�9�$�%�%�%�	���(�8�C�=�8�9�9�9�	�������	���	�	�	���������������������s�#C3E#�#E'�*E'c���	dd|���iz}t|��}|j}|D]?}	||t|��_�#t
$rt
d|z��Y�<wxYwdS)Nz!turtle_docstringdict_%(language)sr�zBad docstring-entry: %s)r8�
__import__r>r�r:r�r�)�lang�modname�moduler>r�s     r��read_docstringsrE s����2�Z��
�
���4M�M�G�
��
 �
 �F���H��3�3��	3� (��
�D��I�I�����	3�	3�	3��+�c�1�2�2�2�2�2�	3����	3�3s�A�A0�/A0zCannot find docsdict forz;Unknown Error when trying to import %s-docstring-dictionaryc�P�	dx}}tj|j��\}}}|dd�}|dd�}|jpg}d�|D��}dgt	|��t	|��z
z|z}d�t||��D��}	|�0|	�d|z��|�d|z��|�0|	�d|z��|�d|z��d�|	��}d|z}d�|��}d|z}||fS)	Nr�r�c��g|]}d|����S)r�r�)rr�s  r�r
z"getmethparlist.<locals>.<listcomp>Ms��7�7�7�U�U��� �7�7�7r�c��g|]
\}}||z��Sr�r�)rr�dflts   r�r
z"getmethparlist.<locals>.<listcomp>Os ��
B�
B�
B�Y�S�$�c�D�j�
B�
B�
Br��*z**z, z(%s))�inspect�getargs�__code__�__defaults__rr�r�r)
�ob�defText�callTextrV�varargs�varkw�items2�realArgs�defaults�items1s
          r��getmethparlistrX=sJ�����G�h�#�?�2�;�7�7��D�'�5�
�!�"�"�X�F��A�B�B�x�H���$�"�H�7�7�h�7�7�7�H��t�s�8�}�}�S��]�]�2�3�h�>�H�
B�
B�#�h��*A�*A�
B�
B�
B�F����
�
�c�G�m�$�$�$��
�
�c�G�m�$�$�$����
�
�d�U�l�#�#�#��
�
�d�U�l�#�#�#��i�i����G��w��G��y�y�� � �H��� �H��H��r�c��	ddl}|�dStd}|�d|zd��}|�d|z��}|�d|��}|S)Nrr��%s.r�� \(.+ %s\):�:��rer��replace�compile�sub)�docstrr^�
turtlename�	newdocstr�parexps     r��_turtle_docreviserf\�k���
�I�I�I�
�~��t��o�&�J����u�z�1�"�5�5�I�
�Z�Z���3�
4�
4�F��
�
�3�	�*�*�I��r�c��	ddl}|�dStd}|�d|zd��}|�d|z��}|�d|��}|S)Nrr�rZr�r[r\r])rbr^�
screennamerdres     r��_screen_docreviserjhrgr�ardef {name}{paramslist}:
    if {obj} is None:
        if not TurtleScreen._RUNNING:
            TurtleScreen._RUNNING = True
            raise Terminator
        {obj} = {init}
    try:
        return {obj}.{name}{argslist}
    except TK.TclError:
        if not TurtleScreen._RUNNING:
            TurtleScreen._RUNNING = True
            raise Terminator
        raise
c�H�|D]�}t||��}t|��\}}|dkrtd||���<t�|||||���}	t|	t
����||j��t
��|_��dS)Nr�z>>>>>>)�obj�initr��
paramslist�argslist)�getattrrXr��__func_body�formatr�globalsr:)
�	functionsr�rlrm�	docreviser?r�pl1�pl2�defstrs
          r��_make_global_funcsry�s����	B�	B�
���j�)�)��!�&�)�)���S��"�9�9��(�C��%�%�%���#�#��$�Z�/2�S�$�B�B���V�W�Y�Y����(1�	�&�.�(A�(A��	�	�*��%�%�	B�	Br�zTurtle._screenzScreen()zTurtle._penzTurtle()�__main__c�^�t��rt��dSt��dSr�)rOr^rVr�r�r��	switchpenr|�s(���8�8�	��D�D�D�D�D��D�D�D�D�Dr�c��	t��td��t��td��t	��td��t
d��D]�}|dkrt��t
d��D] }td��td���!|dkrtd��t��t��td	��t	����td
��td��td��t��td��td��td��td��td
��t	��tdd
��tdd
��td��t
d��D]>}td��td��td��td���?td��t��t
d��D]>}td��td��td��td���?t��dS)NT�dr�rrfr��Z�maroonrEr�r�F��
startstartr��redra)rar+rzr1r>r{rr2rDrQr:r?r`r|)r	rs  r��demo1r��s
��,�
�����t����
������
�
�
�����
�a�����q���	�	�A��A�v�v������1�X�X�
�
��������R������A�v�v��h�����
�
�
��D�D�D��B�K�K�K��F�F�F�F�
�a����
�g�����u�
�
�
�
����
�b�	�	�	������
�b�	�	�	������
�c�
�
�
�����
�l�A����
�g�q����
�e�����q���	�	�A��B�K�K�K���H�H�H��B�K�K�K��"�I�I�I�I��t���������q���	�	�A��B�K�K�K���H�H�H��B�K�K�K��"�I�I�I�I��
�
�
�
�
r�c�<�	td��t��td��tt	dd����tdd��dz}t
d��td��D] }t��t|d���!td��t��rt��t���t��td��td	��d}t!d
��td��td��tdd
��D]�}|dkr(t#��t%d	d|zz
dd|z��td��D] }t'|��td���!t)��|dz
}td��tt��dzdz����td��t+��t'd��t
d��t-��t/dd��td��t#��td��D]?}tdd��t
d��t'd��t
d���@t)��td��t+��t'd��t-��t1d��t3��}|�d��t7��}|�d��|�d��|�
��|�d��|�d��|���|�dd��|�d��|���|�d��|�dd��|�d��|�d��tt	|����d}|�|��dkr�|�d��|�d ��|�|�|����|�d��|d!zdkr6|� ��|� ��t��|dz
}|�|��dk��|�
d"d#d$�%��|�d&��|�d��d'�}tCj"d��t��r6|���|���t���6|�d��|�
d(d)�*��|�#|d��dS)+Nr�r�rrr�r�zwait a moment...r��greenr�rXrW��x��FrEr��yellowrf�2r�rEi�(rg�blue�orangerg@g333333�?r�zCAUGHT! )rrW�boldr`)r�r�r�c�>�t��t��dSr�)rr)r�r�s  r��babazdemo2.<locals>.baba.s���M�M�M��E�E�E�E�Er�z  Click me!)�Courierr�r�)r�)$rqrrrZrervr<rcrr|r5r|ryrxrarRrrXr2rBrAr?r^rVr:rlrIrbrrQrzrJr>rs�time�sleeprS)r%r�laenger	�trir�rMr�s        r��demo2r��s(��(�
�a����
������
�
�
��7�1�a�=�=�!�!�!��!�Q����#��
�2�����r���	�	�A��K�K�K��6�2�����
� �!�!�!��!�!�	��F�F�F� �!�!�	�
����
�2�����#�������������
�
�
�
�3�����r�2���
	"�
	"�A��1�u�u������#�b��d�(�A�r�!�t�,�,�,��1�X�X�
�
���6�
�
�
��3������J�J�J��b�L�F��r�F�F�F��5�7�7�1�9�b�.�!�!�!�!�	�3����
����
�2����
�2����
����
�e�H����
�a���������q���	�	�A��2�r�N�N�N��r�F�F�F��r�F�F�F��r�F�F�F�F��
�
�
�
�2����
����
�2����
����
�h�����k�k�����v�����������&�!�!�!����X�������������B�������Q�����	�	�������C������	�	�"�
�
�
����
�
�
����Q�������V�H�%�%�%����q�����	�	�!�����7�6�?�?�#�#�#����l�l�6�"�"�Q�&�&��I�I�c�N�N�N��I�I�c�N�N�N��N�N�3�;�;�v�.�.�/�/�/��F�F�1�I�I�I��r�z�Q����������	�	���������Q�J�E��l�l�6�"�"�Q�&�&�	�	�	�*�#8��	�H�H�H����W�������U����	�	�	�	
�
�1�
�
�
��!�!�	��H�H�J�J�J��K�K�M�M�M� �!�!�	�	���r�
�
�
��	�	�-�(?�	�A�A�A����D�!�����r�)r�)r5)F�_ver�tkinterr-r�r�r�rKr�r��os.pathrrr�copyrr�_tg_classesr9r;�
_tg_utilities�__all__r8r�r�r�r�r�r�rr�r�rrr.rr2rfrd�objectr�r�r2rrAr	r�r4ryrr
r
r�rrrrE�	_LANGUAGE�ImportErrorrXrfrjrqryrr�r�r|r�r�rr�r�r��<module>r�sr��2L�\7����������������������
�
�
�
�����'�'�'�'�'�'�'�'�'�'������� � � � � � �I�I�I��)�)�)��!�!�!��'��/�
��-�-�0D�D���(�>�*��,�,�,��	��#�	��4�	��c�	�	�c�	�	�T�		�
	�T�	�	�
�
	�	�S�	�	��	�	�$�	�	��	�	�W�	�	�g�	�	�z�	�	�D�	�	�I�	� 	��!	�""�)��'	�	�	��,���:���<1��J�t�������1�1�1�	�E�/�0�0�0�0�0�1����*$�*$�*$�*$�*$�E�*$�*$�*$�j������1�
�.�.�.�.�*a#�a#�a#�a#�a#�R�X�a#�a#�a#�F�����I�6�6�6�)�)�)�)�)�B�E�)�)�)�0
���E5�E5�E5�E5�E5�v�E5�E5�E5�Z	�	�	�	�	�)�	�	�	������)����
,1�,1�,1�,1�,1�F�,1�,1�,1�^"6�"6�"6�"6�"6�f�"6�"6�"6�Li�i�i�i�i�#�i�i�i�V|�|�|�|�|��|�|�|�~I�I�I�I�I�6�I�I�I�XL�L�L�L�L�6�L�L�L�>D�D�D�D�D��j�D�D�D�L$
�����C�C�C�C�C�l�C�C�C�J,�,�,�,�,�Y�,�,�,�(
�� � � � �D3�3�3�"
���	�M��I�����	�"�"�"����1�1�1�	�E�
$�i�0�0�0�0�0��M�M�M�	�E�H�BK�L�M�M�M�M�M�M����
���>
�
�
�
�
�
� �� 
B�
B�
B���'��#�Z�1B�D�D�D���'�� �*�.?�A�A�A����z������2�2�2�ja�a�a�F
�E�G�G�G�	�E�G�G�G��K�M�M�M�M�M�C�s*�B'�'B:�9B:�G(�(H�;H�H
© 2025 GrazzMean