OwlCyberSecurity - MANAGER
Edit File: ast.cpython-311.opt-1.pyc
� �����/�g����������������������������d�Z�ddlZddlT�ddlmZmZ�ddlmZmZm Z �dLddd �d �Z d��ZdMdd �d�Zd��Z d��ZdNd�Zd��Zd��ZdOd�Zd��Zd��Zdd�d�Zd��Z�G�d��de������������Z�G�d��de������������Z�eed������������s(d ��Zd!��Z�eee������������e_���������eee������������e_ ���������G�d"��d#e!������������Z"d$��Z#�G�d%��d&ee"�'������������Z$�G�d(��d)ee"�'������������Z%�G�d*��d+ee"�'������������Z&�G�d,��d-ee"�'������������Z'�G�d.��d/ee"�'������������Z(e$e)e*e+fe%e,fe&e-fe'�e!d������������e.fe(�e!d0������������fiZ/e$e.fiZ0e.d-�e!d������������d-e)d&e*d&e+d&e,d)e-d+�e!d0������������d/iZ1�G�d1��d2e2������������Z3�G�d3��d4e3������������Z4�G�d5��d6e3������������Z5�ee6d7������������sd8��Z7d9��Z8�ee7e8������������e6_9���������G�d:��d;e:������������Z;�G�d<��d=e<������������Z=�G�d>��d?e<������������Z>�G�d@��dAe<������������Z?dB�e@ejA��������jB��������dz���������������z���ZC�e e�������������G�dC��dD��������������������������ZDdEZEdFZFg�eE�eF�R�ZG�G�dG��dHe������������ZHdI��ZIdJ��ZJeKdKk����r�eJ���������������dS�dS�)PaH�� ast ~~~ The `ast` module helps Python applications to process trees of the Python abstract syntax grammar. The abstract syntax itself might change with each Python release; this module helps to find out programmatically what the current grammar looks like and allows modifications of it. An abstract syntax tree can be generated by passing `ast.PyCF_ONLY_AST` as a flag to the `compile()` builtin function or by using the `parse()` function from this module. The result will be a tree of objects whose classes all inherit from `ast.AST`. A modified abstract syntax tree can be compiled into a Python code object using the built-in `compile()` function. Additionally various helper functions are provided that make working with the trees simpler. The main intention of the helper functions and this module in general is to provide an easy to use interface for libraries that work tightly with the python syntax (template engines for example). :copyright: Copyright 2008 by Armin Ronacher. :license: Python License. �����N)�*)�contextmanager�nullcontext)�IntEnum�auto�_simple_enum� <unknown>�execF)� type_comments�feature_versionc����������������������t�����������}|r |t����������z��}t����������|t����������������������r|\��}}|}n|�d}t ����������|�||||�������������S�)z� Parse the source into an AST node. Equivalent to compile(source, filename, mode, PyCF_ONLY_AST). Pass type_comments=True to get back type comments where the syntax allows. N���)�_feature_version)� PyCF_ONLY_AST�PyCF_TYPE_COMMENTS� isinstance�tuple�compile)�source�filename�moder���r����flags�major�minors��� �*/opt/alt/python311/lib64/python3.11/ast.py�parser���!���sk������� �E���$� �#�#���/�5�)�)���&���u���� � ����6�8�T�5�$3�5��5��5��5�����c����������������������������t����������|�t����������������������r$t����������|����������������������d������������d�������������}�t����������|�t����������������������r|�j��������}�d����fd���fd������fd����|�������������S�)aT�� Evaluate an expression node or a string containing only a Python expression. The string or node provided may only consist of the following Python literal structures: strings, bytes, numbers, tuples, lists, dicts, sets, booleans, and None. Caution: A complex expression can overflow the C stack and cause a crash. z �eval�r���c������������������f�����d}t����������|�dd�������������x}r|d|���z ��}t����������|d|���z����������������)Nzmalformed node or string�linenoz on line �: )�getattr� ValueError)�node�msg�lnos��� r����_raise_malformed_nodez+literal_eval.<locals>._raise_malformed_nodeC���sL������(���$��$�/�/�/�3�� %��$�s�$�$�$�C���}�D�}�}�,�-�-�-r���c������������������������t����������|�t����������������������r(t����������|�j��������������������t����������t ����������t����������fvr��|��������������|�j��������S��N)r����Constant�type�value�int�float�complex)r&���r)���s��� �r����_convert_numz"literal_eval.<locals>._convert_numH���sJ��������$��)�)�� (�T�$�*�-=�-=�c�5�RY�EZ�-Z�-Z�!�!�$�'�'�'��z�r���c�������������������������t����������|�t����������������������rQt����������|�j��������t����������t����������f������������r0��|�j��������������������}t����������|�j��������t����������������������r| �S�|�S���|�������������S�r+���)r����UnaryOp�op�UAdd�USub�operand)r&���r8���r2���s��� �r����_convert_signed_numz)literal_eval.<locals>._convert_signed_numL���sq��������d�G�$�$�� !��D�G�d�D�\�)J�)J�� !�"�l�4�<�0�0�G��$�'�4�(�(�� !� �y� � �y� ��|�D�!�!�!r���c����������� �������������t����������|�t����������������������r|�j��������S�t����������|�t����������������������r"t ����������t�����������|�j��������������������������������S�t����������|�t����������������������r"t����������t�����������|�j��������������������������������S�t����������|�t����������������������r"t����������t�����������|�j��������������������������������S�t����������|�t����������������������rRt����������|�j��������t����������������������r8|�j��������j��������dk����r(|�j��������|�j��������cxk����rg�k����rn�nt������������������������S�t����������|�t"����������������������rxt%����������|�j��������������������t%����������|�j��������������������k����r��|��������������t+����������t-����������t�����������|�j��������������������t�����������|�j��������������������������������������������S�t����������|�t.����������������������r�t����������|�j��������t2����������t4����������f������������ru��|�j��������������������}��|�j��������������������}t����������|t:����������t<����������f������������r9t����������|t>����������������������r$t����������|�j��������t2����������������������r||z���S�||z ��S���|�������������S�)N�set) r���r,���r.����Tupler����map�elts�List�list�Setr;����Call�func�Name�id�args�keywords�Dict�len�keys�values�dict�zip�BinOpr5����Add�Sub�left�rightr/���r0���r1���)r&���rQ���rR����_convertr2���r9���r)���s��� ����r���rS���zliteral_eval.<locals>._convertT���s*�������d�H�%�%�� (��:�� ��e� $� $�� (���X�t�y�1�1�2�2�2� ��d� #� #�� (���H�d�i�0�0�1�1�1� ��c� "� "�� (��s�8�T�Y�/�/�0�0�0���t�$�$�� (��D�I�t�)D�)D�� (��i�l�e�#�#�� �T�]�(H�(H�(H�(H�b�(H�(H�(H�(H�(H��5�5�L� ��d� #� #�� (��4�9�~�~��T�[�!1�!1�1�1�%�%�d�+�+�+���C��$�)�4�4���$�+�6�6�8��8��9��9�� 9� ��e� $� $�� (��D�G�c�3�Z�)H�)H�� (�&�&�t�y�1�1�D� �L���,�,�E��$��e��-�-�� (�*�U�G�2L�2L�� (��d�g�s�+�+��(��%�<�'��%�<�'�"�"�4�(�(�(r���)r����strr����lstrip� Expression�body)�node_or_stringrS���r2���r9���r)���s��� @@@@r����literal_evalrY���6���s�������������.�#�&�&��J��~�4�4�U�;�;�&�I�I�I���.�*�-�-��-�'�,��.��.��.� ���������"��"��"��"��"�)��)��)��)��)��)��)��)�4��8�N�#�#�#r���T)�indentc���������������������������d����fd� �t����������|�t����������������������st����������d|�j��������j��������z�����������������t�����������t ����������������������sd�z�����|�������������d���������S�)a��� Return a formatted dump of the tree in node. This is mainly useful for debugging purposes. If annotate_fields is true (by default), the returned string will show the names and the values for fields. If annotate_fields is false, the result string will be more compact by omitting unambiguous field names. Attributes such as line numbers and column offsets are not dumped by default. If this is wanted, include_attributes can be set to true. If indent is a non-negative integer or string, then the tree will be pretty-printed with that indent level. None (the default) selects the single line representation. r���c���������������������������dz ���d��z��z���}d��z��z���}nd}d}t����������|�t�����������������������rzt����������|�������������}g�}d}�}|�j��������D�]�} �t ����������|�|������������} n#�t ����������$�r�d}Y��"w�xY�w| �t ����������||d�������������d}�<��| �������������\��} } |o| }|r|���������������������|�d| ����������������l|���������������������| ���������������� rt|�j��������rm|�j��������D�]e} �t ����������|�|������������} n#�t ����������$�r�Y�� w�xY�w| �t ����������||d��������������8��| �������������\��} } |o| }|���������������������|�d| ����������������f|r;t����������|������������d k����r(|�j ��������j ���������d d���������������������|�������������d�|�fS�|�j ��������j ���������d |�|���������������������|�������������d�dfS�t����������|�t����������������������r.|�sd S�d|�|�����������������������fd�|�D����������������������������d�dfS�t����������|�������������dfS�)N����� z, ���, T.�=�����(�)F)z[]T�[c��������������3����<����K����|�]}��|�������������d����������V����dS��r���N��)�.0�x�_format�levels��� ��r���� <genexpr>z(dump.<locals>._format.<locals>.<genexpr>����s4�����������/S�/S�����5�0A�0A�!�0D�/S�/S�/S�/S�/S�/Sr����])r����ASTr-����_fieldsr$����AttributeError�append�_attributesrI���� __class__�__name__�joinr@����repr)r&���rl����prefix�sep�clsrF���� allsimplerG����namer.����simplerk����annotate_fields�include_attributesrZ���s��� ` ����r���rk���zdump.<locals>._format}���s�����������Q�J�E��F�U�N�*�F��&�5�.�(�C�C��F��C��d�C� � ��% \��t�*�*�C��D��I�&�H���� '�� '���#�D�$�/�/�E�E��%�������#�H��H�������=�W�S�$��%<�%<�%D�#�H�� '���u� 5� 5� ��v�%�0�&� ���'��K�K�4�4�4��� 7�8�8�8�8��K�K��&�&�&�&�!�� 9�d�&6�� 9� �,�� 9�� 9�D�!� '��d� 3� 3����)��!��!��!� ��!�����}���d�C�)@�)@�)H� �$+�G�E�5�$9�$9�M�E�6� )� 4�f�I��K�K�4�4�4��� 7�8�8�8�8��� W�S��Y�Y�!�^�^�#'�>�#:�#:�#:�D�I�I�d�O�O�O�O�L�RV�h�V�V�!%��!8�!8�!8�&�&�#�(�(�4�.�.�.�.�Q�SX�X�X� ��d� #� #�� \��� "�!�z� "�%�v�s�x�x�/S�/S�/S�/S�/S�d�/S�/S�/S�'S�'S�'S�'S�T�V[�[�[��D�z�z�4��s$����A%�%A4�3A4�&C7�7 D�Dzexpected AST, got %rN� )r���)r���ro���� TypeErrorrt���ru���rT���)r&���r~���r���rZ���rk���s��� ```@r����dumpr����q���s�����������. ��. ��. ��. ��. ��. ��. ��. ��. �`��d�C� � ��J��.���1H�H�I�I�I� ��*�V�S�"9�"9���v����7�4�=�=���r���c������������������������dD�]]}||j���������v�rR||�j���������v�rIt����������||d������������}|�%t����������||������������r&|���������������������d������������rt ����������|�||��������������^|�S�)z� Copy source location (`lineno`, `col_offset`, `end_lineno`, and `end_col_offset` attributes) from *old_node* to *new_node* if possible, and return *new_node*. )r"���� col_offset� end_lineno�end_col_offsetN�end_)rs���r$����hasattr� startswith�setattr)�new_node�old_node�attrr.���s��� r���� copy_locationr��������s������� �G��/��/���8�'�'�'�D�H�4H�,H�,H��H�d�D�1�1�E��� ���$�'�'��!�,0�O�O�F�,C�,C��!����$��.�.�.���Or���c������������������0�������fd����|�dddd�������������|�S�)a{�� When you compile a node tree with compile(), the compiler expects lineno and col_offset attributes for every node that supports them. This is rather tedious to fill in for generated nodes, so this helper adds these attributes recursively where not already set, by setting them to the values of the parent node. It works recursively starting at *node*. c�����������������������d|�j���������v�rt����������|�d������������s||�_��������n|�j��������}d|�j���������v�r t����������|�dd��������������||�_��������n|�j��������}d|�j���������v�rt����������|�d������������s||�_��������n|�j��������}d|�j���������v�r t����������|�dd��������������||�_��������n|�j��������}t����������|�������������D�]}��|||||��������������d�S�)Nr"���r����r����r����)rs���r����r"���r$���r����r����r�����iter_child_nodes)r&���r"���r����r����r�����child�_fixs��� �r���r����z#fix_missing_locations.<locals>._fix����s�������t�'�'�'��4��*�*�� %�$��������4�+�+�+��t�\�4�0�0�8�",����!�_� ��4�+�+�+��4��.�.�� -�",����!�_� ��t�/�/�/��t�-�t�4�4�<�&4��#�#�!%�!4��%�d�+�+�� H�� H�E��D��� �J��G�G�G�G� H�� Hr���r]���r���rh���)r&���r����s��� @r����fix_missing_locationsr��������s@�������H��H��H��H��H�.� �D��q�!�Q������Kr���r]���c����������������������t����������|�������������D�]y}t����������|t����������������������rt����������|dd������������|z���|_���������1d|j��������v�rt����������|dd������������|z���|_��������d|j��������v�rt����������|dd������������x}� ||z���|_���������z|�S�)z� Increment the line number and end line number of each node in the tree starting at *node* by *n*. This is useful to "move code" to a different location in a file. r"���r���r����)�walkr���� TypeIgnorer$���r"���rs���r����)r&����nr����r����s��� r����increment_linenor��������s���������d���� .�� .����e�Z�(�(�� �"�5�(�A�6�6��:�E�L���u�(�(�(�"�5�(�A�6�6��:�E�L��E�-�-�-�&�u�l�A�>�>�>��K�)�A�~�E����Kr���c��������������#����h���K����|�j���������D�]'} �|t����������|�|������������fV����#�t����������$�r�Y��$w�xY�wdS�)zs Yield a tuple of ``(fieldname, value)`` for each field in ``node._fields`` that is present on *node*. N)rp���r$���rq���)r&����fields��� r����iter_fieldsr��������sf���������� �������� ����u�-�-�-�-�-�-�-���� �� �� ��D� ������s����"� /�/c��������������#��������K����t����������|�������������D�]R\��}}t����������|t����������������������r|V����t����������|t����������������������r|D�]}t����������|t����������������������r|V�����SdS�)z� Yield all direct child nodes of *node*, that is, all fields that are nodes and all items of fields that are lists of nodes. N)r����r���ro���r@���)r&���r|���r�����items��� r���r����r������s����������� �#�4�(�(�������e��e�S�!�!�� ��K�K�K�K� ��t� $� $�� ��� �� ���d�C�(�(����J�J�J��� ��r���c�����������������������t����������|�t����������t����������t����������t����������f������������st����������d|�j��������j��������z���������������|�j��������r t����������|�j��������d���������t����������������������sdS�|�j��������d���������j ��������}�t����������|�t����������������������r|�j��������}n9t����������|�t����������������������r"t����������|�j ��������t����������������������r|�j ��������}ndS�|rddl}|���������������������|������������}|S�)aC�� Return the docstring for the given node or None if no docstring can be found. If the node provided does not have docstrings a TypeError will be raised. If *clean* is `True`, all tabs are expanded to spaces and any whitespace that can be uniformly removed from the second line onwards is removed. z%r can't have docstringsr���N)r����AsyncFunctionDef�FunctionDef�ClassDef�Moduler����rt���ru���rW����Exprr.����Str�sr,���rT����inspect�cleandoc)r&����clean�textr����s��� r���� get_docstringr������s���������d�-�{�H�f�M�N�N��N��2�T�^�5L�L�M�M�M��9����D�I�a�L�$�7�7����t��9�Q�<��D��$�������v��� �D�(� #� #��� �4�:�s�(C�(C����z����t���&���������%�%���Kr���c������������������D����d}g�}d}|t����������|�������������k�����ro|�|���������}||z ��}|dz ��}|dk����r)|t����������|�������������k�����r|�|���������dk����r |dz ��}|dz ��}|dv�r|���������������������|�������������d}|t����������|�������������k������o|r|���������������������|�������������|S�)z}Split a string into lines ignoring form feed and other chars. This mimics how the Python parser splits source code. r���r_���r]���� r^���z )rI���rr���)r����idx�lines� next_line�cs��� r����_splitlines_no_ffr����3��s������� ��C��E��I� ��F��� � ��3�K���Q�� ��q�����9�9��s�6�{�{�*�*�v�c�{�d�/B�/B����I��1�H�C���;�;��L�L��#�#�#��I����F��� � ���� � ���Y�����Lr���c������������������2�����d}|�D�]}|dv�r||z ��}�|dz ��}�|S�)z6Replace all chars except '\f\t' in a line with spaces.r_���z r����rh���)r����resultr����s��� r����_pad_whitespacer����L��s:������ �F� ��������;�;��a�K�F�F��c�M�F�F��Mr���)�paddedc��������������������� �|j����������|j���������dS�|j��������dz ��}|j���������dz ��}|j��������}|j��������}n#�t����������$�r�Y�dS�w�xY�wt����������|�������������}||k����r4||��������������������������������������������||���������������������������������������������S�|rBt����������||��������������������������������������������d|���������������������������������������������������������}nd}|||��������������������������������������������|d���������������������������������������������z���} ||��������������������������������������������d|���������������������������������������������} ||dz���|����������}|� ��������������������d| �������������|� ��������������������| �������������d���������������������|������������S�)aB��Get source code segment of the *source* that generated *node*. If some location information (`lineno`, `end_lineno`, `col_offset`, or `end_col_offset`) is missing, return None. If *padded* is `True`, the first line of a multi-line statement will be padded with spaces to match its original position. Nr]���r_���r���)r����r����r"���r����rq���r�����encode�decoder�����insertrr���rv���)r���r&���r����r"���r����r����r����r�����padding�first�lasts��� r����get_source_segmentr����W��s��������?�"�d�&9�&A��4���q����_�q�(� ��_� ��,������������t�t������ �f�%�%�E��V����V�}�#�#�%�%�j��&?�@�G�G�I�I�I� ���!�%��-�"6�"6�"8�"8��*��"E�"L�"L�"N�"N�O�O������e�F�m�*�*�,�,�Z�[�[�9�@�@�B�B�B�E����#�#�%�%�o�~�o�6�=�=�?�?�D��&��(�:�%�&�E� �L�L��E���� �L�L����� �7�7�5�>�>�s����5��"5�� A�Ac��������������#�������K����ddl�m}��||�g������������}|r>|�����������������������������������}�|���������������������t ����������|��������������������������|�V���|�<dS�dS�)z� Recursively yield all descendant nodes in the tree starting at *node* (including *node* itself), in no specified order. This is useful if you only want to modify nodes in place and don't care about the context. r���)�dequeN)�collectionsr�����popleft�extendr����)r&���r�����todos��� r���r����r����|��s������������"�!�!�!�!�!��5�$��=�=�D� ����|�|�~�~�����$�T�*�*�+�+�+�� � � ������������r���c��������������������$�����e�Zd�ZdZd��Zd��Zd��ZdS�)�NodeVisitora<�� A node visitor base class that walks the abstract syntax tree and calls a visitor function for every node found. This function may return a value which is forwarded by the `visit` method. This class is meant to be subclassed, with the subclass adding visitor methods. Per default the visitor functions for the nodes are ``'visit_'`` + class name of the node. So a `TryFinally` node visit function would be `visit_TryFinally`. This behavior can be changed by overriding the `visit` method. If no visitor function exists for a node (return value `None`) the `generic_visit` visitor is used instead. Don't use the `NodeVisitor` if you want to apply changes to nodes during traversing. For this a special visitor exists (`NodeTransformer`) that allows modifications. c������������������b�����d|j���������j��������z���}t����������|�||�j��������������������}�||������������S�)z Visit a node.�visit_)rt���ru���r$���� generic_visit)�selfr&����method�visitors��� r����visitzNodeVisitor.visit���s3�������D�N�3�3���$���(:�;�;���w�t�}�}�r���c����������������������t����������|������������D�]t\��}}t����������|t����������������������r0|D�],}t����������|t����������������������r|����������������������|��������������-�Jt����������|t����������������������r|����������������������|��������������udS�)z9Called if no explicit visitor function exists for a node.N)r����r���r@���ro���r����)r����r&���r����r.���r����s��� r���r����zNodeVisitor.generic_visit���s�������'��-�-�� "�� "�L�E�5��%��&�&�� "�!��)��)�D�!�$��,�,��)�� � �4�(�(�(��)���E�3�'�'�� "�� � �5�!�!�!�� "�� "r���c����������������������|j���������}t�������������������������������t����������|������������������������}|�3t���������������������������������������������D�]\��}}t����������||������������r|}�n�|�Td|z���} �t ����������|�|������������}dd�l}|���������������������|��d�t����������d��������������||������������S�#�t����������$�r�Y�nw�xY�w|����������������������|������������S�)Nr����r���z" is deprecated; add visit_Constant����)r.����_const_node_type_names�getr-����itemsr���r$����warnings�warn�DeprecationWarningrq���r����) r����r&���r.���� type_namerz���r|���r����r����r����s ��� r����visit_ConstantzNodeVisitor.visit_Constant���s������ ��*�.�.�t�E�{�{�;�;� ���3�9�9�;�;�� �� � ��T��e�S�)�)��� $�I��E���� �� �)�F� %�!�$��/�/��� ����� � ��K�K�K�0�!�5��5��5��w�t�}�}�$�� �"�� �� �� ��� ������!�!�$�'�'�'s����,B*��* B7�6B7N)ru���� __module__�__qualname__�__doc__r����r����r����rh���r���r���r����r�������sK�����������������&�����"��"��"�(��(��(��(��(r���r����c�������������������������e�Zd�ZdZd��ZdS�)�NodeTransformeraC�� A :class:`NodeVisitor` subclass that walks the abstract syntax tree and allows modification of nodes. The `NodeTransformer` will walk the AST and use the return value of the visitor methods to replace or remove the old node. If the return value of the visitor method is ``None``, the node will be removed from its location, otherwise it is replaced with the return value. The return value may be the original node in which case no replacement takes place. Here is an example transformer that rewrites all occurrences of name lookups (``foo``) to ``data['foo']``:: class RewriteName(NodeTransformer): def visit_Name(self, node): return Subscript( value=Name(id='data', ctx=Load()), slice=Constant(value=node.id), ctx=node.ctx ) Keep in mind that if the node you're operating on has child nodes you must either transform the child nodes yourself or call the :meth:`generic_visit` method for the node first. For nodes that were part of a collection of statements (that applies to all statement nodes), the visitor may also return a list of nodes rather than just a single node. Usually you use the transformer like this:: node = YourTransformer().visit(node) c�����������������������t����������|������������D�]�\��}}t����������|t����������������������r|g�}|D�]o}t����������|t����������������������rC|����������������������|������������}|��/t����������|t����������������������s|���������������������|��������������Z|���������������������|��������������p||d�d��<�����t����������|t����������������������r9|����������������������|������������}|�t����������||���������������t����������|||���������������|S�r+���) r����r���r@���ro���r����r����rr����delattrr����)r����r&���r����� old_value� new_valuesr.���r����s��� r���r����zNodeTransformer.generic_visit���s����� +�D� 1� 1�� 3�� 3��E�9��)�T�*�*�� 3�� �&��-��-�E�!�%��-�-��%� $� � �5� 1� 1�� �=�$�!+�E�3�!7�!7��%�&�-�-�e�4�4�4�$��%�%�e�,�,�,�,�)� �!�!�!����I�s�+�+�� 3��:�:�i�0�0���#��D�%�(�(�(�(��D�%��2�2�2���r���N)ru���r����r����r����r����rh���r���r���r����r�������s.��������������!��!�F��������r���r����r����c�����������������������|�j���������S�)zDeprecated. Use value instead.�r.����r����s��� r����_getterr������s �������z�r���c�����������������������||�_���������d�S�r+���r�����r����r.���s��� r����_setterr������s �������� � � r���c�������������������������e�Zd�Zd��Zd��ZdS�)�_ABCc�����������������������d|�_���������d�S�)Nz3Deprecated AST node class. Use ast.Constant instead)r����)rz���rF���s��� r����__init__z _ABC.__init__��s ������O����r���c������������������4����t����������|t����������������������sdS�|�t����������v�r^ �|j��������}t����������|t����������|����������������������o)t����������|t�������������������������������|�d�������������������������S�#�t����������$�r�Y�dS�w�xY�wt�������������������������������|�|������������S�)NFrh���) r���r,����_const_typesr.����_const_types_notr����rq���r-����__instancecheck__)rz����instr.���s��� r���r����z_ABC.__instancecheck__��s��������$��)�)�� ��5��,��� �� �� ��u�l�3�&7�8�8��I�"�5�*:�*>�*>�s�B�*G�*G�H�H�H����"�� �� �� ��u�u� ������%�%�c�4�0�0�0s����A.��. A<�;A<N)ru���r����r����r����r����rh���r���r���r����r������s5��������������P��P��P� 1�� 1�� 1�� 1�� 1r���r����c�����������������������|D�]R}||�j���������vr�|�j������������������������������|������������}|t����������|������������k�����rt����������|�j����������d|����������������S|�t ����������v�rt ����������|i�|��S�t ����������j��������|�g|�R�i�|��S�)Nz" got multiple values for argument )rp����indexrI���r����ru���r����r,����__new__)rz���rF����kwargs�key�poss��� r����_newr����"��s���������X��X���c�k�!�!���k����$�$����T���?�?��s�|�V�V�s�V�V�W�W�W��� �l�����(��(�(�(���C�1�$�1�1�1�&�1�1�1r���c�������������������������e�Zd�ZdZeZdS�)�Num)r����N�ru���r����r����rp���r����r����rh���r���r���r����r����.������������������G��G�G�Gr���r����)� metaclassc�������������������������e�Zd�ZdZeZdS�)r�����r����Nr����rh���r���r���r����r����2��r����r���r����c�������������������������e�Zd�ZdZeZdS�)�Bytesr����Nr����rh���r���r���r��r��6��r����r���r��c�������������������������e�Zd�ZeZdS�)�NameConstantN)ru���r����r����r����r����rh���r���r���r��r��:��s���������������G�G�Gr���r��c�������������������������e�Zd�ZdZd��ZdS�)�Ellipsisrh���c������������������^�����|�t�����������u�rt����������dg|�R�i�|��S�t����������j��������|�g|�R�i�|��S�)N.)r��r,���r����)rz���rF���r����s��� r���r����zEllipsis.__new__@��sJ�������(�?�?��C�1�$�1�1�1�&�1�1�1����5�d�5�5�5�f�5�5�5r���N)ru���r����r����rp���r����rh���r���r���r��r��=��s(���������������G�6��6��6��6��6r���r��.c�������������������������e�Zd�ZdZdS�)�slicezDeprecated AST node class.N�ru���r����r����r����rh���r���r���r��r��[��s��������������$�$�$�$r���r��c�������������������������e�Zd�ZdZd��ZdS�)�Indexz@Deprecated AST node class. Use the index value directly instead.c�����������������������|S�r+���rh���)rz���r.���r����s��� r���r����z Index.__new__`��s�������r���N�ru���r����r����r����r����rh���r���r���r��r��^��s)��������������J�J���������r���r��c�������������������������e�Zd�ZdZdd�ZdS�)�ExtSlicez1Deprecated AST node class. Use ast.Tuple instead.rh���c������������������P�����t����������t����������|������������t������������������������fi�|��S�r+���)r<���r@����Load)rz����dimsr����s��� r���r����zExtSlice.__new__e��s$�������T�$�Z�Z����2�2�6�2�2�2r���N)rh���r ��rh���r���r���r��r��c��s.��������������;�;�3��3��3��3��3��3r���r��r��c�����������������������|�j���������S�)zDeprecated. Use elts instead.�r>���r����s��� r����_dims_getterr��m��s �������y�r���c�����������������������||�_���������d�S�r+���r��r����s��� r����_dims_setterr��q��s �������� � � r���c�������������������������e�Zd�ZdZdS�)�Suite�/Deprecated AST node class. Unused in Python 3.Nr ��rh���r���r���r��r��v�����������������9�9�9�9r���r��c�������������������������e�Zd�ZdZdS�)�AugLoadr��Nr ��rh���r���r���r��r��y��r��r���r��c�������������������������e�Zd�ZdZdS�)�AugStorer��Nr ��rh���r���r���r��r��|��r��r���r��c�������������������������e�Zd�ZdZdS�)�Paramr��Nr ��rh���r���r���r!��r!����r��r���r!���1ec������������������������e�Zd�ZdZ�e��������������Z�e��������������Z�e��������������Z�e��������������Z�e��������������Z �e��������������Z �e��������������Z�e��������������Z�e��������������Z e Z�e��������������Z�e��������������Z�e��������������Z�e��������������Z�e��������������Z�e��������������Z�e��������������Z�e��������������Z�e��������������Zd��ZdS�)�_Precedencez5Precedence table that originated from python grammar.c������������������X����� �|�����������������������|�dz���������������S�#�t����������$�r�|�cY�S�w�xY�w�Nr]���)rt���r%���r����s��� r����nextz_Precedence.next���sA������ ��>�>�$��(�+�+�+���� �� �� ��K�K�K� ���s������)�)N)ru���r����r����r����r���� NAMED_EXPR�TUPLE�YIELD�TEST�OR�AND�NOT�CMP�EXPR�BOR�BXOR�BAND�SHIFT�ARITH�TERM�FACTOR�POWER�AWAIT�ATOMr'��rh���r���r���r$��r$�����s���������������?�?�����J��D�F�F�E��D�F�F�E��4�6�6�D� ����B� �$�&�&�C� �$�&�&�C� �$�&�&�C��4�6�6�D� �C��4�6�6�D��4�6�6�D��D�F�F�E��D�F�F�E��4�6�6�D� �T�V�V�F��D�F�F�E��D�F�F�E��4�6�6�D���������r���r$��)�'�")z"""�'''c��������������������������e�Zd�ZdZdd�d�Zd��Zd��Zd��Zd�d �Zd ��Z e d�d���������������Ze dd �d���������������Ze d����������������Z d��Zd��Zd��Zd��Zd��Zd��Z��fd�Zd��Zd��Zd��Zd��Zd��Zd��Zd��Zd��Zd��Zd ��Zd!��Zd"��Z d#��Z!d$��Z"d%��Z#d&��Z$d'��Z%d(��Z&d)��Z'd*��Z(d+��Z)d,��Z*d-��Z+d.��Z,d/��Z-d0��Z.d1��Z/d2��Z0d3��Z1d4��Z2d5��Z3d6��Z4d7��Z5d8��Z6d9��Z7d:��Z8d;��Z9d<��Z:e;dd=�d>�Z<e;d?�d@�Z=dA��Z>dB��Z?dC��Z@dD��ZAdE��ZBdF��ZCdG��ZDdH��ZEdI��ZFdJ��ZGdK��ZHdL��ZIdM��ZJdN��ZKdO��ZLdP��ZMdQ��ZNdRdSdTdUdV�ZOePjQ��������ePjR��������ePjR��������ePjR��������dW�ZSdX��ZTdTdUdYdZd[d\d]d^d_d`dadbdcdd� ZUePjV��������ePjV��������ePjW��������ePjW��������ePjW��������ePjW��������ePjX��������ePjX��������ePjY��������ePjZ��������ePj[��������ePjW��������ePj\��������de� Z]�e^df������������Z_dg��Z`dhdidjdkdldmdndodpdqdr� Zads��Zbdtdudv�ZcePjd��������ePje��������dw�Zfdx��Zgdy��Zhdz��Zid{��Zjd|��Zkd}��Zld~��Zmd��Znd���Zod���Zpd���Zqd���Zrd���Zsd���Ztd���Zud���Zvd���Zwd���Zxd���Zyd���Zzd���Z{d���Z|d���Z}��xZ~S�)�� _Unparserz�Methods in this class recursively traverse an AST and output source code for the abstract syntax; original formatting is disregarded.F��_avoid_backslashesc�����������������Z�����g�|�_���������i�|�_��������i�|�_��������d|�_��������||�_��������d|�_��������d�S�)Nr���F)�_source�_precedences� _type_ignores�_indentrA���_in_try_star)r����rA��s��� r���r����z_Unparser.__init__���s6������������������"4���!����r���c�����������������������t����������|������������} ��|t����������|�������������������������|D�]}�|����������������||��������������dS�#�t����������$�r�Y�dS�w�xY�w)z7Call f on each item in seq, calling inter() in between.N)�iterr'��� StopIteration)r�����inter�f�seqrj���s��� r���� interleavez_Unparser.interleave���s~�������3�i�i�� � �A�d�3�i�i�L�L�L���� �� ���������!����� �� ����� �� �� ��D�D� ���s����A�� A�Ac�������������������������t����������|������������dk����r(�||d���������������������������������������������d�������������dS��������������������������fd�||�������������dS�)z�Traverse and separate the given *items* with a comma and append it to the buffer. If *items* is a single item sequence, a trailing comma will be added.r]���r����,c�������������������.������������������������������d������������S��Nr`�����writer����s����r����<lambda>z&_Unparser.items_view.<locals>.<lambda>�����������D�J�J�t�$4�$4��r���N)rI���rT��rN��)r����� traverserr����s���` r���� items_viewz_Unparser.items_view���sa���������u�:�:��?�?��I�e�A�h�����J�J�s�O�O�O�O�O��O�O�4�4�4�4�i��G�G�G�G�Gr���c������������������B�����|�j���������r|����������������������d�������������dS�dS�)z8Adds a newline if it isn't the start of generated sourcer^���N)rC��rT��r����s��� r���� maybe_newlinez_Unparser.maybe_newline���s.�������<�� ��J�J�t������ �� r���r_���c������������������n�����|��������������������������������������|����������������������d|�j��������z��|z����������������dS�)zXIndent a piece of text and append it, according to the current indentation levelz N)rZ��rT��rF���r����r����s��� r����fillz_Unparser.fill���s:������� ������� � �6�D�L�(�4�/�0�0�0�0�0r���c������������������:�����|�j������������������������������|�������������dS�)zAdd new source partsN)rC��r����r\��s��� r���rT��z_Unparser.write���s����������D�!�!�!�!�!r���Nc��������������#����D���K����|�g�}|�j���������}||�_���������|V���||�_���������d�S�r+���)rC��)r�����buffer�original_sources��� r����bufferedz_Unparser.buffered���s2�����������>��F��,���������&����r�����extrac�������������#�������K����|�����������������������d�������������|r|�����������������������|�������������|�xj��������dz ��c_��������dV���|�xj��������dz��c_��������dS�)a��A context manager for preparing the source for blocks. It adds the character':', increases the indentation on enter and decreases the indentation on exit. If *extra* is given, it will be directly appended after the colon character. �:r]���N)rT��rF��)r����rd��s��� r����blockz_Unparser.block���s^����������� � � �3������ ��J�J�u����������� ������������r���c��������������#����f���K����|�����������������������|�������������dV���|�����������������������|�������������dS�)z�A context manager for preparing the source for expressions. It adds *start* to the buffer and enters, after exit it adds *end*.NrS��)r�����start�ends��� r����delimitz_Unparser.delimit���s6���������� � � � �5���� ����� � �3�����r���c������������������N�����|r|�����������������������||������������S�t������������������������S�r+���)rk��r���)r����ri��rj��� conditions��� r���� delimit_ifz_Unparser.delimit_if���s(�������� !��<�<��s�+�+�+��=�=� r���c������������������^�����|�����������������������dd|����������������������|������������|k����������������S�)z,Shortcut to adding precedence related parensrc���rd���)rn���get_precedence)r����� precedencer&���s��� r����require_parensz_Unparser.require_parens��s+���������s�C��)<�)<�T�)B�)B�Z�)O�P�P�Pr���c������������������L�����|�j������������������������������|t����������j��������������������S�r+���)rD��r����r$��r+���r����r&���s��� r���rp��z_Unparser.get_precedence��s������� �$�$�T�;�+;�<�<�<r���c������������������$�����|D�]}||�j���������|<���� d�S�r+���)rD��)r����rq���nodesr&���s��� r����set_precedencez_Unparser.set_precedence��s+�������� 1�� 1�D�&0�D��d�#�#� 1�� 1r���c������������������F����t����������|t����������t����������t����������t����������f������������rt����������|j��������������������dk�����rdS�|j��������d���������}t����������|t����������������������sdS�|j��������}t����������|t����������������������rt����������|j��������t����������������������r|S�dS�dS�)z�If a docstring node is found in the body of the *node* parameter, return that docstring node, None otherwise. Logic mirrored from ``_PyAST_GetDocString``.r]���Nr���)r���r����r����r����r����rI���rW���r����r.���r,���rT���rt��s��� r����get_raw_docstringz_Unparser.get_raw_docstring��s������� ���#�[�(�F�C� �� �� � ���^�^�a� � ��4��y��|���$��%�%�� ��4��z���d�H�%�%�� �*�T�Z��*E�*E�� ��K� �� �� �� r���c������������������`�����|�j������������������������������|j��������������������p|j��������}|�d|���S�d�S�)Nz # type: )rE��r����r"����type_comment)r����r&����comments��� r����get_type_commentz_Unparser.get_type_comment��s>�������$�(�(���5�5�J��9J����(�w�(�(�(���r���c������������������������t����������|t����������������������r|D�]}|����������������������|��������������d�S�t���������������������������������������������|�������������d�S�r+���)r���r@����traverse�superr����)r����r&���r����rt���s��� �r���r��z_Unparser.traverse$��sa��������d�D�!�!�� ��� $�� $��� � �d�#�#�#�#� $�� $�� �G�G�M�M�$�����r���c������������������n�����g�|�_���������|����������������������|�������������d���������������������|�j���������������������S�)z�Outputs a source code string that, if converted back to an ast (using ast.parse) will generate an AST equivalent to *node*r_���)rC��r��rv���rt��s��� r���r����z_Unparser.visit.��s1����������� � �d�����w�w�t�|�$�$�$r���c������������������������|�����������������������|������������x}r9|����������������������|�������������|����������������������|j��������dd������������������������d�S�|����������������������|j���������������������d�S�r&��)ry���_write_docstringr��rW���)r����r&���� docstrings��� r����"_write_docstring_and_traverse_bodyz,_Unparser._write_docstring_and_traverse_body5��sm�������/�/��5�5�5�I�� %��!�!�)�,�,�,��M�M�$�)�A�B�B�-�(�(�(�(�(��M�M�$�)�$�$�$�$�$r���c�����������������������d��|j���������D���������������|�_��������|����������������������|�������������|�j��������������������������������������������d�S�)Nc������������������.�����i�|�]}|j���������d�|j�������������S�)�ignore)r"����tag)ri���r���s��� r���� <dictcomp>z*_Unparser.visit_Module.<locals>.<dictcomp>=��s7������� �� �� ��� �M�0�F�J�0�0� �� �� r���)�type_ignoresrE��r����clearrt��s��� r����visit_Modulez_Unparser.visit_Module<��sW������ �� ��+� �� �� ���� �/�/��5�5�5��� � �"�"�"�"�"r���c������������������ ������������������������������dd������������5���������������������������fd���j��������|j���������������������d�d�d��������������n#�1�swxY�w�Y��������������������������d������������������������������������|j���������������������d�S�)Nrc���rd���c�������������������.������������������������������d������������S�rR��rS��r����s����r���rU��z._Unparser.visit_FunctionType.<locals>.<lambda>G����������� � �4�(�(��r���� -> )rk��rN��r���argtypesrT���returnsrt��s���` r����visit_FunctionTypez_Unparser.visit_FunctionTypeD��s�������� �\�\�#�s� #� #�� �� ��O�O�(�(�(�(�$�-��� �� �� � �� �� �� �� �� �� �� �� �� �� ����� �� �� �� � � � � �6����� � �d�l�#�#�#�#�#s����%A � A �A c�����������������������|��������������������������������������|����������������������t����������j��������|j���������������������|����������������������|j���������������������d�S�r+���)r]��rw��r$��r*��r.���r��rt��s��� r���� visit_Exprz_Unparser.visit_ExprM��sD������� � �������K�-�t�z�:�:�:�� � �d�j�!�!�!�!�!r���c������������������`����|�����������������������t����������j��������|������������5��|����������������������t����������j��������|j��������|j���������������������|����������������������|j���������������������|����������������������d�������������|����������������������|j���������������������d�d�d��������������d�S�#�1�swxY�w�Y���d�S�)Nz := ) rr��r$��r(��rw��r:���targetr.���r��rT��rt��s��� r����visit_NamedExprz_Unparser.visit_NamedExprR��s������� � � ��!7�� >� >�� &�� &����� 0�$�+�t�z�J�J�J��M�M�$�+�&�&�&��J�J�v�����M�M�$�*�%�%�%� &�� &�� &�� &�� &�� &�� &�� &�� &�� &�� &�� &����� &�� &�� &�� &�� &�� &s����A5B#�#B'�*B'c������������������z�������������������������������d��������������������������������������fd���j��������|j���������������������d�S�)Nzimport c�������������������.������������������������������d������������S�rR��rS��r����s����r���rU��z(_Unparser.visit_Import.<locals>.<lambda>[����������� � �4� 0� 0��r���)r]��rN��r���namesrt��s���` r����visit_Importz_Unparser.visit_ImportY��s?�������� � �)�������0�0�0�0�$�-���L�L�L�L�Lr���c������������������$������������������������������d������������������������������������d|j��������pdz���������������|j��������r�����������������������|j��������������������������������������������d��������������������������������������fd���j��������|j���������������������d�S�)Nzfrom �.r���z import c�������������������.������������������������������d������������S�rR��rS��r����s����r���rU��z,_Unparser.visit_ImportFrom.<locals>.<lambda>c��r���r���)r]��rT��rl����modulerN��r��r���rt��s���` r����visit_ImportFromz_Unparser.visit_ImportFrom]��s��������� � �'����� � �3�$�*�/��*�+�+�+��;�� $��J�J�t�{�#�#�#�� � �:�������0�0�0�0�$�-���L�L�L�L�Lr���c������������������f����|��������������������������������������|j��������D�]L}|����������������������t����������j��������|�������������|����������������������|�������������|����������������������d��������������M|����������������������|j���������������������|����������������������|������������x}r|����������������������|�������������d�S�d�S�)N� = ) r]���targetsrw��r$��r)��r��rT��r.���r}��)r����r&���r���r{��s��� r����visit_Assignz_Unparser.visit_Assigne��s�������� � �����l�� �� �F����� 1�6�:�:�:��M�M�&�!�!�!��J�J�u������ � �d�j�!�!�!��0�0��6�6�6�<�� %��J�J�|�$�$�$�$�$� %�� %r���c�����������������������|��������������������������������������|����������������������|j���������������������|����������������������d|�j��������|j��������j��������j�����������������z���dz����������������|����������������������|j���������������������d�S�)Nr����z= ) r]��r��r���rT���binopr5���rt���ru���r.���rt��s��� r����visit_AugAssignz_Unparser.visit_AugAssigno��sh������� � ����� � �d�k�"�"�"�� � �3���D�G�$5�$>�?�?�$�F�G�G�G�� � �d�j�!�!�!�!�!r���c�����������������������|��������������������������������������|����������������������dd|j���������ot����������|j��������t ����������������������������������5��|����������������������|j���������������������d�d�d��������������n#�1�swxY�w�Y���|����������������������d�������������|����������������������|j���������������������|j ��������r1|����������������������d�������������|����������������������|j ���������������������d�S�d�S�)Nrc���rd���r#���r���) r]��rn��r}���r���r���rD���r��rT��� annotationr.���rt��s��� r����visit_AnnAssignz_Unparser.visit_AnnAssignu��s ������ � ���� �_�_�S�#�4�;��'X�:�d�k�SW�;X�;X� Y� Y�� '�� '��M�M�$�+�&�&�&� '�� '�� '�� '�� '�� '�� '�� '�� '�� '�� '����� '�� '�� '�� '�� � �4����� � �d�o�&�&�&��:�� &��J�J�u�����M�M�$�*�%�%�%�%�%� &�� &s����A3�3A7�:A7c�����������������������|�����������������������d�������������|j��������r1|����������������������d�������������|����������������������|j���������������������d�S�d�S�)N�returnr����)r]��r.���rT��r��rt��s��� r����visit_Returnz_Unparser.visit_Return��sQ������� � �(�����:�� &��J�J�s�O�O�O��M�M�$�*�%�%�%�%�%� &�� &r���c������������������0�����|�����������������������d�������������d�S�)N�pass�r]��rt��s��� r���� visit_Passz_Unparser.visit_Pass���s������� � �&�����r���c������������������0�����|�����������������������d�������������d�S�)N�breakr���rt��s��� r����visit_Breakz_Unparser.visit_Break���s������� � �'�����r���c������������������0�����|�����������������������d�������������d�S�)N�continuer���rt��s��� r����visit_Continuez_Unparser.visit_Continue���s������� � �*�����r���c������������������z�������������������������������d��������������������������������������fd���j��������|j���������������������d�S�)Nzdel c�������������������.������������������������������d������������S�rR��rS��r����s����r���rU��z(_Unparser.visit_Delete.<locals>.<lambda>���r���r���)r]��rN��r��r���rt��s���` r����visit_Deletez_Unparser.visit_Delete���s?�������� � �&�������0�0�0�0�$�-���N�N�N�N�Nr���c������������������������|�����������������������d�������������|����������������������|j���������������������|j��������r1|����������������������d�������������|����������������������|j���������������������d�S�d�S�)Nzassert r`���)r]��r���testr'���rT��rt��s��� r����visit_Assertz_Unparser.visit_Assert���sh������� � �)����� � �d�i� � � ��8�� $��J�J�t�����M�M�$�(�#�#�#�#�#� $�� $r���c������������������z�������������������������������d��������������������������������������fd���j��������|j���������������������d�S�)Nzglobal c�������������������.������������������������������d������������S�rR��rS��r����s����r���rU��z(_Unparser.visit_Global.<locals>.<lambda>���r���r����r]��rN��rT��r���rt��s���` r����visit_Globalz_Unparser.visit_Global���s?�������� � �)�������0�0�0�0�$�*�d�j�I�I�I�I�Ir���c������������������z�������������������������������d��������������������������������������fd���j��������|j���������������������d�S�)Nz nonlocal c�������������������.������������������������������d������������S�rR��rS��r����s����r���rU��z*_Unparser.visit_Nonlocal.<locals>.<lambda>���r���r���r���rt��s���` r����visit_Nonlocalz_Unparser.visit_Nonlocal���s?�������� � �+�������0�0�0�0�$�*�d�j�I�I�I�I�Ir���c������������������X����|�����������������������t����������j��������|������������5��|����������������������d�������������|j��������rT|����������������������d�������������|����������������������t����������j��������|j���������������������|����������������������|j���������������������d�d�d��������������d�S�#�1�swxY�w�Y���d�S�)N�awaitr����)rr��r$��r9��rT��r.���rw��r:��r��rt��s��� r����visit_Awaitz_Unparser.visit_Await����������� � � ��!2�D� 9� 9�� *�� *��J�J�w�����z�� *�� � �3�����#�#�K�$4�d�j�A�A�A�� � �d�j�)�)�)� *�� *�� *�� *�� *�� *�� *�� *�� *�� *�� *�� *����� *�� *�� *�� *�� *�� *�����A1B�B#�&B#c������������������X����|�����������������������t����������j��������|������������5��|����������������������d�������������|j��������rT|����������������������d�������������|����������������������t����������j��������|j���������������������|����������������������|j���������������������d�d�d��������������d�S�#�1�swxY�w�Y���d�S�)N�yieldr����)rr��r$��r*��rT��r.���rw��r:��r��rt��s��� r����visit_Yieldz_Unparser.visit_Yield���r���r���c������������������L����|�����������������������t����������j��������|������������5��|����������������������d�������������|j��������st����������d�������������|����������������������t����������j��������|j���������������������|����������������������|j���������������������d�d�d��������������d�S�#�1�swxY�w�Y���d�S�)Nzyield from z-Node can't be used without a value attribute.) rr��r$��r*��rT��r.���r%���rw��r:��r��rt��s��� r����visit_YieldFromz_Unparser.visit_YieldFrom���s������� � � ��!2�D� 9� 9�� &�� &��J�J�}�%�%�%��:�� R� �!P�Q�Q�Q����� 0�$�*�=�=�=��M�M�$�*�%�%�%� &�� &�� &�� &�� &�� &�� &�� &�� &�� &�� &�� &����� &�� &�� &�� &�� &�� &s����A+B�B� Bc������������������<����|�����������������������d�������������|j��������s|j��������rt����������d�������������d�S�|����������������������d�������������|����������������������|j���������������������|j��������r1|����������������������d�������������|����������������������|j���������������������d�S�d�S�)N�raisez*Node can't use cause without an exception.r����z from )r]���exc�causer%���rT��r��rt��s��� r����visit_Raisez_Unparser.visit_Raise���s�������� � �'�����x�� ��z�� P� �!N�O�O�O��F�� � �3����� � �d�h�����:�� &��J�J�x� � � ��M�M�$�*�%�%�%�%�%� &�� &r���c����������������������|�����������������������d�������������|������������������������������������5��|����������������������|j���������������������d�d�d��������������n#�1�swxY�w�Y���|j��������D�]}|����������������������|��������������|j��������r[|�����������������������d�������������|������������������������������������5��|����������������������|j���������������������d�d�d��������������n#�1�swxY�w�Y���|j��������r^|�����������������������d�������������|������������������������������������5��|����������������������|j���������������������d�d�d��������������d�S�#�1�swxY�w�Y���d�S�d�S�)N�try�else�finally)r]��rg��r��rW����handlers�orelse� finalbody)r����r&����exs��� r����do_visit_tryz_Unparser.do_visit_try���s������� � �%���� �Z�Z�\�\�� %�� %��M�M�$�)�$�$�$� %�� %�� %�� %�� %�� %�� %�� %�� %�� %�� %����� %�� %�� %�� %��-�� �� �B��M�M�"������;�� +��I�I�f���������� +�� +�� � �d�k�*�*�*� +�� +�� +�� +�� +�� +�� +�� +�� +�� +�� +����� +�� +�� +�� +��>�� .��I�I�i� � � ������� .�� .�� � �d�n�-�-�-� .�� .�� .�� .�� .�� .�� .�� .�� .�� .�� .�� .����� .�� .�� .�� .�� .�� .� .�� .s5����A�A�A�+C�C�C� D5�5D9�<D9c������������������t�����|�j���������} �d|�_���������|����������������������|�������������||�_���������d�S�#�||�_���������w�xY�w)NF�rG��r����r����r&����prev_in_try_stars��� r���� visit_Tryz_Unparser.visit_Try���sO�������,�� 1� %�D�����d�#�#�#� 0�D����� 0�D��0�0�0�0�����.�� 7c������������������t�����|�j���������} �d|�_���������|����������������������|�������������||�_���������d�S�#�||�_���������w�xY�w)NTr���r���s��� r���� visit_TryStarz_Unparser.visit_TryStar���sO�������,�� 1� $�D�����d�#�#�#� 0�D����� 0�D��0�0�0�0r���c����������������������|�����������������������|�j��������rdnd�������������|j��������r/|����������������������d�������������|����������������������|j���������������������|j��������r/|����������������������d�������������|����������������������|j���������������������|������������������������������������5��|����������������������|j���������������������d�d�d��������������d�S�#�1�swxY�w�Y���d�S�)Nzexcept*�exceptr����� as )r]��rG��r-���rT��r��r|���rg��rW���rt��s��� r����visit_ExceptHandlerz_Unparser.visit_ExceptHandler���s������ � �t�0�>�)�)�h�?�?�?��9�� %��J�J�s�O�O�O��M�M�$�)�$�$�$��9�� "��J�J�v�����J�J�t�y�!�!�!� �Z�Z�\�\�� %�� %��M�M�$�)�$�$�$� %�� %�� %�� %�� %�� %�� %�� %�� %�� %�� %�� %����� %�� %�� %�� %�� %�� %s����C�C�Cc����������������������|��������������������������������������|j��������D�],}|����������������������d�������������|����������������������|��������������-|����������������������d|j��������z����������������|����������������������dd|j��������p|j���������������������5��d}|j��������D�]1}|r|����������������������d�������������nd}|����������������������|��������������2|j��������D�]1}|r|����������������������d�������������nd}|����������������������|��������������2 �d�d�d��������������n#�1�swxY�w�Y���|�� ����������������������������������5��|�� ��������������������|�������������d�d�d��������������d�S�#�1�swxY�w�Y���d�S�) N�@zclass rc���rd���)rm��Fr`���T)rZ���decorator_listr]��r��r|���rn���basesrG���rT��rg��r���)r����r&����deco�comma�es��� r����visit_ClassDefz_Unparser.visit_ClassDef���s�������������'�� �� �D��I�I�c�N�N�N��M�M�$������ � �(�T�Y�&�'�'�'� �_�_�S�#�4�:�3N���_� O� O�� !�� !��E��Z�� !�� !����!��J�J�t�$�$�$�$� �E�� � �a� � � � ��]�� !�� !����!��J�J�t�$�$�$�$� �E�� � �a� � � � � !� !�� !�� !�� !�� !�� !�� !�� !�� !�� !�� !����� !�� !�� !�� !���Z�Z�\�\�� :�� :��3�3�D�9�9�9� :�� :�� :�� :�� :�� :�� :�� :�� :�� :�� :�� :����� :�� :�� :�� :�� :�� :s%���� A5D�D�D�+E�E�Ec������������������2�����|�����������������������|d�������������d�S�)N�def��_function_helperrt��s��� r����visit_FunctionDefz_Unparser.visit_FunctionDef��s���������d�E�*�*�*�*�*r���c������������������2�����|�����������������������|d�������������d�S�)Nz async defr���rt��s��� r����visit_AsyncFunctionDefz _Unparser.visit_AsyncFunctionDef ��s���������d�K�0�0�0�0�0r���c����������������������|��������������������������������������|j��������D�],}|����������������������d�������������|����������������������|��������������-|dz���|j��������z���}|����������������������|�������������|����������������������dd������������5��|����������������������|j���������������������d�d�d��������������n#�1�swxY�w�Y���|j��������r/|����������������������d�������������|����������������������|j���������������������|�� ��������������������|�� ��������������������|�������������������������5��|����������������������|�������������d�d�d��������������d�S�#�1�swxY�w�Y���d�S�)Nr���r����rc���rd���r���rc��)rZ��r���r]��r��r|���rk��rF���r���rT��rg��r}��r���)r����r&����fill_suffixr����def_strs��� r���r���z_Unparser._function_helper ��s�������������'�� �� �D��I�I�c�N�N�N��M�M�$�������#�d�i�/��� � �'���� �\�\�#�s� #� #�� %�� %��M�M�$�)�$�$�$� %�� %�� %�� %�� %�� %�� %�� %�� %�� %�� %����� %�� %�� %�� %��<�� (��J�J�v�����M�M�$�,�'�'�'� �Z�Z�d�3�3�D�9�9�Z� :� :�� :�� :��3�3�D�9�9�9� :�� :�� :�� :�� :�� :�� :�� :�� :�� :�� :�� :����� :�� :�� :�� :�� :�� :s$����B(�(B,�/B,�D5�5D9�<D9c������������������2�����|�����������������������d|�������������d�S�)Nzfor ��_for_helperrt��s��� r���� visit_Forz_Unparser.visit_For��s�����������&�&�&�&�&r���c������������������2�����|�����������������������d|�������������d�S�)Nz async for r���rt��s��� r����visit_AsyncForz_Unparser.visit_AsyncFor��s����������t�,�,�,�,�,r���c����������������������|�����������������������|�������������|����������������������t����������j��������|j���������������������|����������������������|j���������������������|����������������������d�������������|����������������������|j���������������������|����������������������|�� ��������������������|�������������������������5��|����������������������|j ���������������������d�d�d��������������n#�1�swxY�w�Y���|j��������r^|�����������������������d�������������|������������������������������������5��|����������������������|j���������������������d�d�d��������������d�S�#�1�swxY�w�Y���d�S�d�S�)N� in rc��r���)r]��rw��r$��r)��r���r��rT��rI��rg��r}��rW���r���)r����r]��r&���s��� r���r���z_Unparser._for_helper"��s������� � �$�������K�-�t�{�;�;�;�� � �d�k�"�"�"�� � �6����� � �d�i� � � � �Z�Z�d�3�3�D�9�9�Z� :� :�� %�� %��M�M�$�)�$�$�$� %�� %�� %�� %�� %�� %�� %�� %�� %�� %�� %����� %�� %�� %�� %��;�� +��I�I�f���������� +�� +�� � �d�k�*�*�*� +�� +�� +�� +�� +�� +�� +�� +�� +�� +�� +�� +����� +�� +�� +�� +�� +�� +� +�� +s$����-C�C�C�D7�7D;�>D;c����������������������|�����������������������d�������������|����������������������|j���������������������|������������������������������������5��|����������������������|j���������������������d�d�d��������������n#�1�swxY�w�Y���|j��������r�t ����������|j��������������������dk����r�t����������|j��������d���������t����������������������r�|j��������d���������}|�����������������������d�������������|����������������������|j���������������������|������������������������������������5��|����������������������|j���������������������d�d�d��������������n#�1�swxY�w�Y���|j��������r8t ����������|j��������������������dk����r t����������|j��������d���������t������������������������|j��������r^|�����������������������d�������������|������������������������������������5��|����������������������|j���������������������d�d�d��������������d�S�#�1�swxY�w�Y���d�S�d�S�)Nzif r]���r���zelif r���) r]��r��r���rg��rW���r���rI���r����Ifrt��s��� r����visit_Ifz_Unparser.visit_If/��sa������ � �%����� � �d�i� � � � �Z�Z�\�\�� %�� %��M�M�$�)�$�$�$� %�� %�� %�� %�� %�� %�� %�� %�� %�� %�� %����� %�� %�� %�� %���k�� )�c�$�+�.�.�!�3�3� �4�;�q�>�SU�8V�8V�3��;�q�>�D��I�I�g�����M�M�$�)�$�$�$������� )�� )�� � �d�i�(�(�(� )�� )�� )�� )�� )�� )�� )�� )�� )�� )�� )����� )�� )�� )�� )� ��k�� )�c�$�+�.�.�!�3�3� �4�;�q�>�SU�8V�8V�3���;�� +��I�I�f���������� +�� +�� � �d�k�*�*�*� +�� +�� +�� +�� +�� +�� +�� +�� +�� +�� +�� +����� +�� +�� +�� +�� +�� +� +�� +s6����A+�+A/�2A/�D,�,D0�3D0�&G�G�Gc����������������������|�����������������������d�������������|����������������������|j���������������������|������������������������������������5��|����������������������|j���������������������d�d�d��������������n#�1�swxY�w�Y���|j��������r^|�����������������������d�������������|������������������������������������5��|����������������������|j���������������������d�d�d��������������d�S�#�1�swxY�w�Y���d�S�d�S�)Nzwhile r���)r]��r��r���rg��rW���r���rt��s��� r����visit_Whilez_Unparser.visit_WhileA��sK������ � �(����� � �d�i� � � � �Z�Z�\�\�� %�� %��M�M�$�)�$�$�$� %�� %�� %�� %�� %�� %�� %�� %�� %�� %�� %����� %�� %�� %�� %��;�� +��I�I�f���������� +�� +�� � �d�k�*�*�*� +�� +�� +�� +�� +�� +�� +�� +�� +�� +�� +�� +����� +�� +�� +�� +�� +�� +� +�� +s$����A+�+A/�2A/�&C�C�Cc������������������2������������������������������d��������������������������������������fd���j��������|j�������������������������������������������������������������������|�������������������������5�������������������������|j���������������������d�d�d��������������d�S�#�1�swxY�w�Y���d�S�)Nzwith c�������������������.������������������������������d������������S�rR��rS��r����s����r���rU��z&_Unparser.visit_With.<locals>.<lambda>M��r���r���rc���r]��rN��r��r����rg��r}��rW���rt��s���` r���� visit_Withz_Unparser.visit_WithK��s��������� � �'�������0�0�0�0�$�-���L�L�L� �Z�Z�d�3�3�D�9�9�Z� :� :�� %�� %��M�M�$�)�$�$�$� %�� %�� %�� %�� %�� %�� %�� %�� %�� %�� %�� %����� %�� %�� %�� %�� %�� %�����$B�B�Bc������������������2������������������������������d��������������������������������������fd���j��������|j�������������������������������������������������������������������|�������������������������5�������������������������|j���������������������d�d�d��������������d�S�#�1�swxY�w�Y���d�S�)Nzasync with c�������������������.������������������������������d������������S�rR��rS��r����s����r���rU��z+_Unparser.visit_AsyncWith.<locals>.<lambda>S��r���r���rc��r ��rt��s���` r����visit_AsyncWithz_Unparser.visit_AsyncWithQ��s��������� � �-� � � ����0�0�0�0�$�-���L�L�L� �Z�Z�d�3�3�D�9�9�Z� :� :�� %�� %��M�M�$�)�$�$�$� %�� %�� %�� %�� %�� %�� %�� %�� %�� %�� %�� %����� %�� %�� %�� %�� %�� %r����quote_types�escape_special_whitespacec�������������������������fd�}d����������������������t����������|��������������������������|}d�v�rd��|D���������������}�fd�|D���������������}|s>t������������������������t�����������fd�|D����������������d���������������������}�dd ����������|gfS��rG|����������������������fd ���������������|d���������d����������d ���������k����r�dd ����������d z����d ���������z�����|fS�)z�Helper for writing string literals, minimizing escapes. Returns the tuple (string literal to write, possible quote types). c�������������������������s|�dv�r|�S�|�dk����s|�������������������������������������s(|����������������������d���������������������������������d������������S�|�S�)Nz �\�unicode_escape�ascii)�isprintabler����r����)r����r��s��� �r����escape_charz2_Unparser._str_literal_helper.<locals>.escape_char]��sU��������-�� ��f������D�y�y�� � ���y��x�x� 0�1�1�8�8��A�A�A��Hr���r_���r^���c������������������$�����g�|�] }|t�����������v��|��S�rh���)� _MULTI_QUOTES)ri����qs��� r���� <listcomp>z1_Unparser._str_literal_helper.<locals>.<listcomp>j��s"������P�P�P�Q�Q�-�=O�=O�q�=O�=O�=Or���c������������������������g�|�]}|�v�|�� S�rh���rh���)ri���r���escaped_strings��� �r���r ��z1_Unparser._str_literal_helper.<locals>.<listcomp>k��s#�������Q�Q�Q���.�9P�9P�1�9P�9P�9Pr���c��������������3����0����K����|�]}�d����������|v��|V����dS�rg���rh���)ri���r���strings��� �r���rm���z0_Unparser._str_literal_helper.<locals>.<genexpr>q��s+�����������C�C��F�1�I��N�N�!�N�N�N�N�C�Cr���r���r]���r���c������������������(������|�d����������d���������k����S�)Nr���r���rh���)r��r"��s��� �r���rU��z/_Unparser._str_literal_helper.<locals>.<lambda>u��s�������q��t�~�b�7I�/I��r���)r����Nr��)rv���r=���rw���r'���sort)r����r$��r��r��r���possible_quotes�quoter"��s��� ` ` @r����_str_literal_helperz_Unparser._str_literal_helperW��s7�������� �� �� �� �� ������[�&�!9�!9�:�:��%���>�!�!�P�P�/�P�P�P�O�Q�Q�Q�Q�o�Q�Q�Q���� )���&�\�\�F��C�C�C�C�[�C�C�C�V�A�Y�O�O�E��!�B�$�<�%��(�(��� Q�� � �%I�%I�%I�%I� �J�J�J���q�!�!�$��r�(:�:�:�!/����!4�t�!;�n�R�>P�!P����.�.r����r��c����������������������|�����������������������||�������������\��}}|d���������}|����������������������|��|��|����������������dS�)zKWrite string literal value with a best effort attempt to avoid backslashes.r*��r���N)r)��rT��)r����r$��r��� quote_types��� r����_write_str_avoiding_backslashesz)_Unparser._write_str_avoiding_backslashes}��sP������"�6�6�v�;�6�W�W���� ��^� �� � �j�6�&�6�*�6�6�7�7�7�7�7r���c������������������B����|�����������������������d�������������|�j��������ri|������������������������������������5�}|����������������������|�������������d�d�d��������������n#�1�swxY�w�Y���|����������������������d���������������������|������������������������S�g�}|j��������D�]�}|������������������������������������5�}|����������������������|�������������d�d�d��������������n#�1�swxY�w�Y���|���������������������d���������������������|������������t����������|t����������������������f���������������g�}t����������t����������������������}d}|D�]]\��}}|����������������������|||�������������\��}} |���������������������|�������������t����������| ���������������������������������|������������rd}�n| }�^|r]dg}|������������������������������������|D�]C\��}}t!����������d|z���������������}d} |���������������������|t#����������| ������������d ������������������������Dd���������������������|������������}|d ���������}|�����������������������|��|��|����������������d�S�)NrL��r_���Fr��Tr=��r<��z'"r���r���)rT��rA��rb���_write_fstring_innerr-��rv���rK���rr���r���r,���r@����_ALL_QUOTESr)��r;���� isdisjointr���rw���rI���)r����r&���r`��� fstring_partsr.����new_fstring_partsr���fallback_to_repr�is_constant�new_quote_types�expected_prefixr,��s��� r����visit_JoinedStrz_Unparser.visit_JoinedStr���s������� � �3�����"�� I������� 0�F��)�)�$�/�/�/� 0�� 0�� 0�� 0�� 0�� 0�� 0�� 0�� 0�� 0�� 0����� 0�� 0�� 0�� 0��7�7�������H�H�H��� ��[�� �� �E������� 1�F��)�)�%�0�0�0� 1�� 1�� 1�� 1�� 1�� 1�� 1�� 1�� 1�� 1�� 1����� 1�� 1�� 1�� 1�� � �������*�U�H�"=�"=�>� �� �� �� �����;�'�'�� ��"/�� *�� *��E�;�%)�%=�%=��'�*5��&>��&��&�"�E�?� � �$�$�U�+�+�+��?�#�#�.�.�{�;�;�� �#'� ���)�K�K��� I��!�'�K��#�#�%�%�%�&3�� I�� I�"��{��S�5�[�)�)��"'��!�(�(��s�?�/C�/C�B�/F�)G�H�H�H�H����)�*�*�� ��^� �� � �j�5�%�5��5�5�6�6�6�6�6s#����A�A�A�%C�C �C c�����������������������t����������|t����������������������r!|j��������D�]}|����������������������|��������������d�S�t����������|t����������������������r`t����������|j��������t����������������������rF|j�����������������������������dd���������������������������������dd������������}|����������������������|�������������d�S�t����������|t����������������������r|�� ��������������������|�������������d�S�t����������d|���������������)N�{z{{�}z}}z"Unexpected node inside JoinedStr, )r���� JoinedStrrK���r/��r,���r.���rT����replacerT���FormattedValue�visit_FormattedValuer%����r����r&���r.���s��� r���r/��z_Unparser._write_fstring_inner���s��������d�I�&�&�� L���� 1�� 1���)�)�%�0�0�0�0� 1�� 1� ��h� '� '�� L�J�t�z�3�,G�,G�� L��J�&�&�s�D�1�1�9�9�#�t�D�D�E��J�J�u������ ��n� -� -�� L��%�%�d�+�+�+�+�+��J�$�J�J�K�K�Kr���c������������������ ��������fd�}������������������������dd������������5���||j��������������������}d|v�rt����������d�������������|���������������������d������������r�����������������������d������������������������������������|�������������|j��������dk����r*�����������������������dt ����������|j������������������������������������|j��������r/�����������������������d ������������������������������������|j���������������������d�d�d��������������d�S�#�1�swxY�w�Y���d�S�) Nc��������������������������t�����������������������d�������������}|���������������������t����������j�������������������������������������������|��������������|���������������������|�������������S�)NTr@��)r-���rw��r$��r+��r'��r����)�inner�unparserr����s��� �r���� unparse_innerz5_Unparser.visit_FormattedValue.<locals>.unparse_inner���sR�������!�t�D�z�z�T�:�:�:�H��#�#�K�$4�$9�$9�$;�$;�U�C�C�C��>�>�%�(�(�(r���r:��r;��r��z5Unable to avoid backslash in f-string expression partr����r����!rf��) rk��r.���r%���r����rT��� conversion�chr�format_specr/��)r����r&���rE���exprs���` r���r?��z_Unparser.visit_FormattedValue���s_������ )�� )�� )�� )�� )� ��\�\�#�s� #� #�� <�� <� �=���,�,�D��t�|�|� �K����������s�#�#�� �� � �3�����J�J�t������"�$�$�� � �5�s�4�?�3�3�5�5�6�6�6���� <�� � �3�����)�)�$�*:�;�;�;� <�� <�� <�� <�� <�� <�� <�� <�� <�� <�� <�� <����� <�� <�� <�� <�� <�� <s����CC8�8C<�?C<c������������������:�����|�����������������������|j���������������������d�S�r+���)rT��rE���rt��s��� r���� visit_Namez_Unparser.visit_Name���s������� � �4�7�����r���c�����������������������|��������������������������������������|j��������dk����r|����������������������d�������������|����������������������|j��������t ������������������������d�S�)N�ur*��)r]���kindrT��r-��r.���r��rt��s��� r���r���z_Unparser._write_docstring���sL������� � �����9�����J�J�s�O�O�O��,�,�T�Z�]�,�S�S�S�S�Sr���c����������� �����������t����������|t����������t����������f������������rb|����������������������t ����������|���������������������������������dt�������������������������������������������ddt������������dt������������d��������������������������d�S�|�j��������r,t����������|t����������������������r|�� ��������������������|�������������d�S�|����������������������t ����������|�������������������������d�S�)N�inf�nanrc����-rd���) r���r0���r1���rT��rw���r=���_INFSTRrA��rT���r-��r����s��� r����_write_constantz_Unparser._write_constant���s��������e�e�W�-�.�.�� $�� �J�J��U�������(�(���� 8�G� 8� 8�g� 8� 8� 8�9�9� �� �� �� �� � �� $�� $��E�3�)?�)?�� $��0�0��7�7�7�7�7��J�J�t�E�{�{�#�#�#�#�#r���c����������������������|j���������}t����������|t����������������������rL|����������������������dd������������5��|����������������������|�j��������|�������������d�d�d��������������d�S�#�1�swxY�w�Y���d�S�|du�r|����������������������d�������������d�S�|j��������dk����r|����������������������d�������������|����������������������|j����������������������d�S�)Nrc���rd���.�...rN��)r.���r���r���rk��rX��rU��rT��rO��r@��s��� r���r����z_Unparser.visit_Constant���s������ ���e�U�#�#�� -����c�3�'�'�� =�� =����� 4�e�<�<�<� =�� =�� =�� =�� =�� =�� =�� =�� =�� =�� =�� =����� =�� =�� =�� =�� =�� =� �c�\�\��J�J�u�������y�C���� � �3����� � ���,�,�,�,�,s����A�A �#A c�������������������������������������������������dd������������5���������������������������fd���j��������|j���������������������d�d�d��������������d�S�#�1�swxY�w�Y���d�S�)Nre���rn���c�������������������.������������������������������d������������S�rR��rS��r����s����r���rU��z&_Unparser.visit_List.<locals>.<lambda>���rV��r���)rk��rN��r��r>���rt��s���` r���� visit_Listz_Unparser.visit_List���s�������� �\�\�#�s� #� #�� P�� P��O�O�4�4�4�4�d�m�T�Y�O�O�O� P�� P�� P�� P�� P�� P�� P�� P�� P�� P�� P�� P����� P�� P�� P�� P�� P�� P�����%A � A�Ac������������������������|�����������������������dd������������5��|����������������������|j���������������������|j��������D�]}|����������������������|�������������� �d�d�d��������������d�S�#�1�swxY�w�Y���d�S�)Nre���rn����rk��r���elt� generators�r����r&����gens��� r����visit_ListCompz_Unparser.visit_ListComp���������� �\�\�#�s� #� #�� #�� #��M�M�$�(�#�#�#���� #�� #��� � �c�"�"�"�"� #� #�� #�� #�� #�� #�� #�� #�� #�� #�� #�� #�� #����� #�� #�� #�� #�� #�� #�����:A�A#�&A#c������������������������|�����������������������dd������������5��|����������������������|j���������������������|j��������D�]}|����������������������|�������������� �d�d�d��������������d�S�#�1�swxY�w�Y���d�S�)Nrc���rd���r]��r`��s��� r����visit_GeneratorExpz_Unparser.visit_GeneratorExp��rc��rd��c������������������������|�����������������������dd������������5��|����������������������|j���������������������|j��������D�]}|����������������������|�������������� �d�d�d��������������d�S�#�1�swxY�w�Y���d�S�)Nr:��r;��r]��r`��s��� r���� visit_SetCompz_Unparser.visit_SetComp��rc��rd��c������������������6����|�����������������������dd������������5��|����������������������|j���������������������|����������������������d�������������|����������������������|j���������������������|j��������D�]}|����������������������|�������������� �d�d�d��������������d�S�#�1�swxY�w�Y���d�S�)Nr:��r;��r#���)rk��r��r����rT��r.���r_��r`��s��� r����visit_DictCompz_Unparser.visit_DictComp��s������� �\�\�#�s� #� #�� #�� #��M�M�$�(�#�#�#��J�J�t�����M�M�$�*�%�%�%���� #�� #��� � �c�"�"�"�"� #� #�� #�� #�� #�� #�� #�� #�� #�� #�� #�� #�� #����� #�� #�� #�� #�� #�� #s����A)B�B�Bc����������������������|j���������r|����������������������d�������������n|����������������������d�������������|����������������������t����������j��������|j���������������������|����������������������|j���������������������|����������������������d��������������|�j��������t����������j�������������������������������������������|j ��������g|j ���������R����|����������������������|j ���������������������|j ��������D�],}|����������������������d�������������|����������������������|��������������-d�S�)Nz async for z for r��� if )�is_asyncrT��rw��r$��r)��r���r��r+��r'��rI���ifs)r����r&���� if_clauses��� r����visit_comprehensionz_Unparser.visit_comprehension��s��������=�� ��J�J�}�%�%�%�%��J�J�w�������K�-�t�{�;�;�;�� � �d�k�"�"�"�� � �6�������K�,�1�1�3�3�T�Y�J���J�J�J�J�� � �d�i� � � ���� %�� %�I��J�J�v�����M�M�)�$�$�$�$� %�� %r���c������������������,����|�����������������������t����������j��������|������������5��|����������������������t����������j�������������������������������������������|j��������|j���������������������|����������������������|j���������������������|����������������������d�������������|����������������������|j���������������������|����������������������d�������������|����������������������t����������j��������|j ���������������������|����������������������|j ���������������������d�d�d��������������d�S�#�1�swxY�w�Y���d�S�)Nrl��z else ) rr��r$��r+��rw��r'��rW���r���r��rT��r���rt��s��� r����visit_IfExpz_Unparser.visit_IfExp(��s%����� � � ��!1�4� 8� 8�� '�� '����� 0� 5� 5� 7� 7���D�I�N�N�N��M�M�$�)�$�$�$��J�J�v�����M�M�$�)�$�$�$��J�J�x� � � ����� 0�$�+�>�>�>��M�M�$�+�&�&�&� '�� '�� '�� '�� '�� '�� '�� '�� '�� '�� '�� '����� '�� '�� '�� '�� '�� 's����CD � D �D c��������������������������|j���������rU�����������������������dd������������5���������������������������fd���j��������|j����������������������d�d�d��������������d�S�#�1�swxY�w�Y���d�S������������������������d�������������d�S�)Nr:��r;��c�������������������.������������������������������d������������S�rR��rS��r����s����r���rU��z%_Unparser.visit_Set.<locals>.<lambda>5��s�������� � �4�(8�(8��r���z{*()})r>���rk��rN��r��rT��rt��s���` r���� visit_Setz_Unparser.visit_Set2��s���������9�� ����c�3�'�'�� T�� T���� 8� 8� 8� 8�$�-���S�S�S� T�� T�� T�� T�� T�� T�� T�� T�� T�� T�� T�� T����� T�� T�� T�� T�� T�� T� � �J�J�w�����s����%A�A�Ac����������� ������������������fd�����fd�}������������������������dd������������5���������������������������fd�|t����������|j��������|j���������������������������������d�d�d��������������d�S�#�1�swxY�w�Y���d�S�)Nc�����������������������������������������������|������������������������������������d������������������������������������|�������������d�S��Nr#����r��rT��)�k�vr����s��� �r����write_key_value_pairz2_Unparser.visit_Dict.<locals>.write_key_value_pair<��s?��������M�M�!�����J�J�t�����M�M�!�����r���c�������������������������|�\��}}|�L�����������������������d�����������������������������������t����������j��������|�����������������������������������|�������������d�S���||�������������d�S�)N�**)rT��rw��r$��r0��r��)r����rz��r{��r����r|��s��� ��r���� write_itemz(_Unparser.visit_Dict.<locals>.write_itemA��so��������D�A�q��y��� � �4� � � ��#�#�K�$4�a�8�8�8�� � �a� � � � � �$�$�Q��*�*�*�*�*r���r:��r;��c�������������������.������������������������������d������������S�rR��rS��r����s����r���rU��z&_Unparser.visit_Dict.<locals>.<lambda>N��r���r���)rk��rN��rM���rJ���rK���)r����r&���r��r|��s���` @r���� visit_Dictz_Unparser.visit_Dict;��s��������� �� �� �� �� � +�� +�� +�� +�� +�� +���\�\�#�s� #� #�� �� ��O�O�(�(�(�(�*�c�$�)�T�[�6Q�6Q� �� �� � �� �� �� �� �� �� �� �� �� �� �� ����� �� �� �� �� �� s����3A$�$A(�+A(c����������������������|�����������������������ddt����������|j��������������������dk����p"|����������������������|������������t����������j��������k����������������5��|����������������������|�j��������|j���������������������d�d�d��������������d�S�#�1�swxY�w�Y���d�S�)Nrc���rd���r���)rn��rI���r>���rp��r$��r)��rX��r��rt��s��� r����visit_Tuplez_Unparser.visit_TupleQ��s������� �_�_����� �N�N�a��P�4�#6�#6�t�#<�#<�{�?P�#P� �� �� 6�� 6� � �O�O�D�M�4�9�5�5�5� 6�� 6�� 6�� 6�� 6�� 6�� 6�� 6�� 6�� 6�� 6�� 6����� 6�� 6�� 6�� 6�� 6�� 6s����!A?�?B�B�~�not�+rS��)�Invert�Notr6���r7���)r���r���r���rS��c����������������������|�j���������|j��������j��������j�����������������}|�j��������|���������}|����������������������||������������5��|����������������������|�������������|t����������j��������ur|����������������������d�������������|�� ��������������������||j ���������������������|����������������������|j ���������������������d�d�d��������������d�S�#�1�swxY�w�Y���d�S��Nr����)�unopr5���rt���ru����unop_precedencerr��rT��r$��r7��rw��r8���r��)r����r&����operator�operator_precedences��� r���� visit_UnaryOpz_Unparser.visit_UnaryOpa��s��������9�T�W�.�7�8��"�2�8�<�� � � �!4�d� ;� ;�� (�� (��J�J�x� � � ��#�+�*<�<�<�� � �3������� 3�T�\�B�B�B��M�M�$�,�'�'�'� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (����� (�� (�� (�� (�� (�� (s�����A.B;�;B?�B?r���r����/�%�<<�>>�|�^�&�//r~��) rO���rP����Mult�MatMult�Div�Mod�LShift�RShift�BitOr�BitXor�BitAnd�FloorDiv�Pow) r���rS��r���r���r���r���r���r���r���r���r���r���r~��)r~��c������������������(����|�j���������|j��������j��������j�����������������}|�j��������|���������}|����������������������||������������5��||�j��������v�r|�����������������������������������}|}n|}|�����������������������������������}|����������������������||j ���������������������|�� ��������������������|j ���������������������|����������������������d|��d��������������|����������������������||j���������������������|�� ��������������������|j���������������������d�d�d��������������d�S�#�1�swxY�w�Y���d�S�r���) r���r5���rt���ru����binop_precedencerr���binop_rassocr'��rw��rQ���r��rT��rR���)r����r&���r���r����left_precedence�right_precedences��� r����visit_BinOpz_Unparser.visit_BinOp���sQ������:�d�g�/�8�9��"�3�H�=�� � � �!4�d� ;� ;�� &�� &��4�,�,�,�"5�":�":�"<�"<��#6� � �"5��#6�#;�#;�#=�#=� �������;�;�;��M�M�$�)�$�$�$��J�J��8����'�'�'���� 0�$�*�=�=�=��M�M�$�*�%�%�%� &�� &�� &�� &�� &�� &�� &�� &�� &�� &�� &�� &����� &�� &�� &�� &�� &�� &s�����B:D�D�Dz==z!=�<z<=�>z>=�iszis not�inznot in) �Eq�NotEq�Lt�LtE�Gt�GtE�Is�IsNot�In�NotInc�����������������������|�����������������������t����������j��������|������������5���|�j��������t����������j�������������������������������������������|j��������g|j���������R����|����������������������|j���������������������t����������|j ��������|j��������������������D�]J\��}}|�� ��������������������d|�j��������|j��������j �����������������z���dz����������������|����������������������|��������������K �d�d�d��������������d�S�#�1�swxY�w�Y���d�S�r���)rr��r$��r/��rw��r'��rQ����comparatorsr��rM����opsrT���cmpopsrt���ru���)r����r&����or���s��� r���� visit_Comparez_Unparser.visit_Compare���s&����� � � ���$� 7� 7�� !�� !��D���� 4� 4� 6� 6�� �U�D�DT�U�U�U�U��M�M�$�)�$�$�$��D�H�d�&6�7�7�� !�� !���1�� � �3���Q�[�-A�!B�B�S�H�I�I�I�� � �a� � � � � !� !�� !�� !�� !�� !�� !�� !�� !�� !�� !�� !�� !����� !�� !�� !�� !�� !�� !s����B5C$�$C(�+C(�and�or)�And�Or)r���r���c����������������������������j���������|j��������j��������j�����������������}��j��������|�������������fd�}������������������������|������������5��d|��d����������������������������fd�||j���������������������d�d�d��������������d�S�#�1�swxY�w�Y���d�S�)Nc�������������������������������������������������������������������������������������|������������������������������������|��������������d�S�r+���)r'��rw��r��)r&���r���r����s��� ��r����increasing_level_traversez9_Unparser.visit_BoolOp.<locals>.increasing_level_traverse���sD�������"5�":�":�"<�"<����� 3�T�:�:�:��M�M�$�����r���r����c�������������������.�������������������������������������������S�r+���rS��)r����r����s�����r���rU��z(_Unparser.visit_BoolOp.<locals>.<lambda>���s�������D�J�J�q�M�M��r���)�boolopsr5���rt���ru����boolop_precedencerr��rN��rK���)r����r&���r���r���r���r����s���` @@r����visit_BoolOpz_Unparser.visit_BoolOp���s ���������<��� 1� :�;��"�4�X�>�� �� �� �� �� �� ��� � �!4�d� ;� ;�� [�� [��H����A��O�O�1�1�1�1�1�3L�d�k�Z�Z�Z� [�� [�� [�� [�� [�� [�� [�� [�� [�� [�� [�� [����� [�� [�� [�� [�� [�� [s���� 'A=�=B�Bc������������������~����|�����������������������t����������j��������|j���������������������|����������������������|j���������������������t����������|j��������t����������������������r4t����������|j��������j��������t����������������������r|����������������������d�������������|����������������������d�������������|����������������������|j ���������������������d�S�)Nr����r���) rw��r$��r:��r.���r��r���r,���r/���rT��r����rt��s��� r����visit_Attributez_Unparser.visit_Attribute���s����������K�,�d�j�9�9�9�� � �d�j�!�!�!���d�j�(�+�+�� � �4�:�;K�S�0Q�0Q�� ��J�J�s�O�O�O�� � �3����� � �4�9�����r���c�����������������������|�����������������������t����������j��������|j���������������������|����������������������|j���������������������|����������������������dd������������5��d}|j��������D�]1}|r|����������������������d�������������nd}|����������������������|��������������2|j��������D�]1}|r|����������������������d�������������nd}|����������������������|��������������2 �d�d�d��������������d�S�#�1�swxY�w�Y���d�S�)Nrc���rd���Fr`���T) rw��r$��r:��rC���r��rk��rF���rT��rG���)r����r&���r���r���s��� r���� visit_Callz_Unparser.visit_Call���sC��������K�,�d�i�8�8�8�� � �d�i� � � � �\�\�#�s� #� #�� !�� !��E��Y�� !�� !����!��J�J�t�$�$�$�$� �E�� � �a� � � � ��]�� !�� !����!��J�J�t�$�$�$�$� �E�� � �a� � � � � !� !�� !�� !�� !�� !�� !�� !�� !�� !�� !�� !�� !����� !�� !�� !�� !�� !�� !s����A5C�C� Cc����������������������d��}|�����������������������t����������j��������|j���������������������|����������������������|j���������������������|����������������������dd������������5���||j��������������������r&|����������������������|�j��������|j��������j���������������������n|����������������������|j���������������������d�d�d��������������d�S�#�1�swxY�w�Y���d�S�)Nc������������������:�����t����������|�t����������������������o|�j��������S�r+���)r���r<���r>���)�slice_values��� r����is_non_empty_tuplez5_Unparser.visit_Subscript.<locals>.is_non_empty_tuple���s�������;��.�.��%��$� r���re���rn���) rw��r$��r:��r.���r��rk��r��rX��r>���)r����r&���r���s��� r����visit_Subscriptz_Unparser.visit_Subscript���s������ �� �� �� ���K�,�d�j�9�9�9�� � �d�j�!�!�!� �\�\�#�s� #� #�� *�� *�!�!�$�*�-�-�� *����� �t�z��?�?�?�?�� � �d�j�)�)�)� *�� *�� *�� *�� *�� *�� *�� *�� *�� *�� *�� *����� *�� *�� *�� *�� *�� *s����AB7�7B;�>B;c�����������������������|�����������������������d�������������|����������������������t����������j��������|j���������������������|����������������������|j���������������������d�S�)Nr���)rT��rw��r$��r0��r.���r��rt��s��� r���� visit_Starredz_Unparser.visit_Starred���sF������� � �3�������K�,�d�j�9�9�9�� � �d�j�!�!�!�!�!r���c������������������0�����|�����������������������d�������������d�S�)NrW��rS��rt��s��� r����visit_Ellipsisz_Unparser.visit_Ellipsis���s������� � �5�����r���c������������������$����|j���������r|����������������������|j����������������������|����������������������d�������������|j��������r|����������������������|j���������������������|j��������r1|����������������������d�������������|����������������������|j���������������������d�S�d�S�)Nrf��)�lowerr��rT���upper�steprt��s��� r����visit_Slicez_Unparser.visit_Slice���s��������:�� &��M�M�$�*�%�%�%�� � �3�����:�� &��M�M�$�*�%�%�%��9�� %��J�J�s�O�O�O��M�M�$�)�$�$�$�$�$� %�� %r���c�����������������������|�����������������������d�������������|����������������������|j���������������������|������������������������������������5��|j��������D�]}|����������������������|�������������� �d�d�d��������������d�S�#�1�swxY�w�Y���d�S�)Nzmatch )r]��r���subjectrg���cases)r����r&����cases��� r����visit_Matchz_Unparser.visit_Match��s�������� � �(����� � �d�l�#�#�#� �Z�Z�\�\�� $�� $�� �� $�� $��� � �d�#�#�#�#� $� $�� $�� $�� $�� $�� $�� $�� $�� $�� $�� $�� $����� $�� $�� $�� $�� $�� $s���� A2�2A6�9A6c�����������������������|�����������������������|j���������������������|j��������r1|�����������������������d�������������|����������������������|j���������������������d�S�d�S�rx��)rT���argr���r��rt��s��� r���� visit_argz_Unparser.visit_arg��sV������� � �4�8�����?�� +��J�J�t�����M�M�$�/�*�*�*�*�*� +�� +r���c������������������8����d}|j���������|j��������z���}d�gt����������|������������t����������|j��������������������z ��z��|j��������z���}t ����������t����������||������������d������������D�]�\��}}|\��}}|rd}n|����������������������d�������������|����������������������|�������������|r*|����������������������d�������������|����������������������|�������������|t����������|j���������������������k����r|����������������������d���������������|j��������s|j ��������r�|rd}n|����������������������d�������������|����������������������d�������������|j��������r_|����������������������|j��������j ���������������������|j��������j��������r4|����������������������d�������������|����������������������|j��������j���������������������|j ��������rvt����������|j ��������|j��������������������D�][\��}}|����������������������d�������������|����������������������|�������������|r*|����������������������d�������������|����������������������|��������������\|j ��������r~|rd}n|����������������������d�������������|����������������������d |j ��������j ��������z����������������|j ��������j��������r8|����������������������d�������������|����������������������|j ��������j���������������������d�S�d�S�d�S�) NTr]���Fr`���ra���z, /r���r#���r~��)�posonlyargsrF���rI����defaults� enumeraterM���rT��r���vararg� kwonlyargsr���r����kw_defaults�kwarg) r����r&���r�����all_argsr���r�����elements�a�ds ��� r����visit_argumentsz_Unparser.visit_arguments��s���������#�d�i�/���6�S��]�]�S���-?�-?�?�@�4�=�P��(��X�x�)@�)@�!�D�D�� "�� "�O�E�8��D�A�q��� !����� � �4� � � ��M�M�!������ !�� � �3����� � �a� � � ���D�,�-�-�-�-�� � �5�!�!�!����;�� :�$�/�� :��� !����� � �4� � � ��J�J�s�O�O�O��{�� :�� � �4�;�?�+�+�+��;�)��:��J�J�t�$�$�$��M�M�$�+�"8�9�9�9���?�� %��D�O�T�-=�>�>�� %�� %���1�� � �4� � � �� � �a� � � ���%��J�J�s�O�O�O��M�M�!�$�$�$����:�� 5��� !����� � �4� � � ��J�J�t�d�j�n�,�-�-�-��z�$�� 5�� � �4� � � �� � �d�j�3�4�4�4�4�4� 5�� 5� 5�� 5r���c������������������������|j����������|����������������������d�������������n/|����������������������|j����������������������|����������������������d�������������|����������������������|j���������������������d�S�)Nr~��ra���)r���rT��r��r.���rt��s��� r���� visit_keywordz_Unparser.visit_keywordD��s\�������8���J�J�t������J�J�t�x� � � ��J�J�s�O�O�O�� � �d�j�!�!�!�!�!r���c����������������������|�����������������������t����������j��������|������������5��|����������������������d�������������|������������������������������������5�}|����������������������|j���������������������d�d�d��������������n#�1�swxY�w�Y���|r�|�j��������dg|�R����|����������������������d�������������|����������������������t����������j��������|j���������������������|����������������������|j���������������������d�d�d��������������d�S�#�1�swxY�w�Y���d�S�)N�lambdar����r#���) rr��r$��r+��rT��rb��r��rF���rw��rW���)r����r&���r`��s��� r����visit_Lambdaz_Unparser.visit_LambdaL��sh����� � � ��!1�4� 8� 8�� %�� %��J�J�x� � � ������� )�F�� � �d�i�(�(�(� )�� )�� )�� )�� )�� )�� )�� )�� )�� )�� )����� )�� )�� )�� )��� )��� �3�(��(�(�(�(��J�J�t�������� 0�$�)�<�<�<��M�M�$�)�$�$�$� %�� %�� %�� %�� %�� %�� %�� %�� %�� %�� %�� %����� %�� %�� %�� %�� %�� %s6����*C.�A2�&C.�2A6 �6C.�9A6 �:A'C.�.C2�5C2c�����������������������|�����������������������|j���������������������|j��������r|�����������������������d|j��������z����������������d�S�d�S��Nr���)rT��r|����asnamert��s��� r����visit_aliasz_Unparser.visit_aliasW��sI������� � �4�9�����;�� -��J�J�v���+�,�,�,�,�,� -�� -r���c�����������������������|�����������������������|j���������������������|j��������r1|����������������������d�������������|�����������������������|j���������������������d�S�d�S�r���)r���context_expr� optional_varsrT��rt��s��� r����visit_withitemz_Unparser.visit_withitem\��sY������� � �d�'�(�(�(���� .��J�J�v�����M�M�$�,�-�-�-�-�-� .�� .r���c������������������^����|�����������������������d�������������|����������������������|j���������������������|j��������r/|����������������������d�������������|����������������������|j���������������������|������������������������������������5��|����������������������|j���������������������d�d�d��������������d�S�#�1�swxY�w�Y���d�S�)Nzcase rl��)r]��r���pattern�guardrT��rg��rW���rt��s��� r����visit_match_casez_Unparser.visit_match_caseb��s�������� � �'����� � �d�l�#�#�#��:�� &��J�J�v�����M�M�$�*�%�%�%� �Z�Z�\�\�� %�� %��M�M�$�)�$�$�$� %�� %�� %�� %�� %�� %�� %�� %�� %�� %�� %�� %����� %�� %�� %�� %�� %�� %s����:B"�"B&�)B&c������������������:�����|�����������������������|j���������������������d�S�r+���)r��r.���rt��s��� r����visit_MatchValuez_Unparser.visit_MatchValuek��s������� � �d�j�!�!�!�!�!r���c������������������:�����|�����������������������|j���������������������d�S�r+���)rU��r.���rt��s��� r����visit_MatchSingletonz_Unparser.visit_MatchSingletonn��s���������T�Z�(�(�(�(�(r���c�������������������������������������������������dd������������5���������������������������fd���j��������|j���������������������d�d�d��������������d�S�#�1�swxY�w�Y���d�S�)Nre���rn���c�������������������.������������������������������d������������S�rR��rS��r����s����r���rU��z/_Unparser.visit_MatchSequence.<locals>.<lambda>t��r���r���)rk��rN��r���patternsrt��s���` r����visit_MatchSequencez_Unparser.visit_MatchSequenceq��s�������� �\�\�#�s� #� #�� �� ��O�O�(�(�(�(�$�-��� �� �� � �� �� �� �� �� �� �� �� �� �� �� ����� �� �� �� �� �� r[��c������������������L�����|j���������}|�d}|����������������������d|����������������d�S�)N�_r���)r|���rT��)r����r&���r|���s��� r����visit_MatchStarz_Unparser.visit_MatchStarw��s1�������y���<��D�� � �:�t�:�:�����r���c����������� �������L��������fd�}������������������������dd������������5��|j��������}�������������������������fd�|t����������||j��������d��������������������������|j��������}|�/|r�����������������������d������������������������������������d|����������������d�d�d��������������d�S�#�1�swxY�w�Y���d�S�) Nc������������������������|�\��}}�����������������������|�����������������������������������d������������������������������������|�������������d�S�rx��ry��)�pairrz���pr����s��� �r����write_key_pattern_pairz<_Unparser.visit_MatchMapping.<locals>.write_key_pattern_pair~��sH��������D�A�q��M�M�!�����J�J�t�����M�M�!�����r���r:��r;��c�������������������.������������������������������d������������S�rR��rS��r����s����r���rU��z._Unparser.visit_MatchMapping.<locals>.<lambda>���r���r���T��strictr`���r~��)rk��rJ���rN��rM���r���restrT��)r����r&���r��rJ���r��s���` r����visit_MatchMappingz_Unparser.visit_MatchMapping}��s������ �� �� �� �� ���\�\�#�s� #� #�� (�� (��9�D��O�O�(�(�(�(�&��D�$�-��5�5�5� �� �� � ��9�D�����%��J�J�t�$�$�$�� � �;��;�;�'�'�'� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (����� (�� (�� (�� (�� (�� (s����A/B�B� Bc����������� ��������������������������������������t����������j��������|j��������������������������������������������|j��������������������������������������������dd������������5��|j��������}�������������������������fd���j��������|�������������|j��������}|rK��fd�}|r��� ��������������������d��������������������������������������fd�|t����������||j��������d��������������������������d�d�d��������������d�S�#�1�swxY�w�Y���d�S�) Nrc���rd���c�������������������.������������������������������d������������S�rR��rS��r����s����r���rU��z,_Unparser.visit_MatchClass.<locals>.<lambda>���r���r���c������������������l������|�\��}}�����������������������|��d������������������������������������|�������������d�S�)Nra���)rT��r��)r ��r����r���r����s��� �r����write_attr_patternz6_Unparser.visit_MatchClass.<locals>.write_attr_pattern���s<�������$(�M�D�'��J�J�$�z�z�z�*�*�*��M�M�'�*�*�*�*�*r���r`���c�������������������.������������������������������d������������S�rR��rS��r����s����r���rU��z,_Unparser.visit_MatchClass.<locals>.<lambda>���s�������D�J�J�t�,�,��r���Tr��)rw��r$��r:��rz���r��rk��r��rN��� kwd_attrsrT��rM����kwd_patterns)r����r&���r���attrsr��s���` r����visit_MatchClassz_Unparser.visit_MatchClass���sY���������K�,�d�h�7�7�7�� � �d�h���� �\�\�#�s� #� #�� �� ��}�H��O�O�(�(�(�(�$�-�� �� �� ���N�E��� �+��+��+��+��+� ���%��J�J�t�$�$�$����,�,�,�,�&���t�0��>�>�>������ �� �� �� �� �� �� �� �� �� �� �� ����� �� �� �� �� �� s����A;C�C#�&C#c����������������������|j���������}|j��������}|�|����������������������d�������������d�S�|�|����������������������|j����������������������d�S�|����������������������t����������j��������|������������5��|����������������������t����������j��������|j���������������������|����������������������|j���������������������|����������������������d|j�������������������������d�d�d��������������d�S�#�1�swxY�w�Y���d�S�)Nr ��r���) r|���r���rT��rr��r$��r+��rw��r1��r��)r����r&���r|���r���s��� r���� visit_MatchAsz_Unparser.visit_MatchAs���s������y���,���<��J�J�s�O�O�O�O�O� �_��J�J�t�y�!�!�!�!�!��$�$�[�%5�t�<�<�� /�� /��#�#�K�O�T�\�B�B�B�� � �d�l�+�+�+�� � �-�$�)�-�-�.�.�.� /�� /�� /�� /�� /�� /�� /�� /�� /�� /�� /�� /����� /�� /�� /�� /�� /�� /s����&AC�C�Cc������������������ ������������������������������t����������j��������|������������5�����j��������t����������j�������������������������������������������g|j���������R�����������������������������fd���j��������|j���������������������d�d�d��������������d�S�#�1�swxY�w�Y���d�S�)Nc�������������������.������������������������������d������������S�)Nz | rS��r����s����r���rU��z)_Unparser.visit_MatchOr.<locals>.<lambda>���s�������D�J�J�u�$5�$5��r���)rr��r$��r1��rw��r'��r��rN��r��rt��s���` r���� visit_MatchOrz_Unparser.visit_MatchOr���s�������� � � ���$� 7� 7�� U�� U��D���� 4� 4� 6� 6�G���G�G�G�G��O�O�5�5�5�5�t�}�d�m�T�T�T� U�� U�� U�� U�� U�� U�� U�� U�� U�� U�� U�� U����� U�� U�� U�� U�� U�� Us����AB�B� B)r_���r+���)ru���r����r����r����r����rN��rX��rZ��r]��rT��r���rb��rg��rk��rn��rr��rp��rw��ry��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���r���r���r���r���r���r���r���r���r��r��r���r��r ��r��r��r0��r)��r-��r8��r/��r?��rL��r���rU��r����rZ��rb��rf��rh��rj��rp��rr��ru��r���r���r���r$��r.��r7��r���r���r���r5��r6��r4��r1��r2��r3��r8��r���� frozensetr���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��r ��r��r��r��r"��� __classcell__)rt���s���@r���r?��r?�����s�������������������.3��"��"��"��"��"� �� �� �H��H��H������ 1��1��1��1�"��"��"���'��'��'���^�'���#�����������^���������^��!��!��!�Q��Q��Q�=��=��=�1��1��1������ )��)��)� �� �� �� �� �%��%��%�%��%��%�#��#��#�$��$��$�"��"��"� &��&��&�M��M��M�M��M��M�%��%��%�"��"��"�&��&��&�&��&��&����������������O��O��O�$��$��$�J��J��J�J��J��J�*��*��*�*��*��*�&��&��&� &�� &�� &� .�� .�� .�1��1��1�1��1��1� %�� %�� %�:��:��:�0+��+��+�1��1��1� :�� :�� :�'��'��'�-��-��-�+��+��+�+��+��+�$+��+��+�%��%��%�%��%��%��&1�E�$/��$/��$/��$/��$/�L�FQ��8��8��8��8��8�17��17��17�fL��L��L�<��<��<�,�����T��T��T�$��$��$� -�� -�� -�P��P��P�#��#��#�#��#��#�#��#��#�#��#��#�%��%��%�'��'��'� �� �� ������,6��6��6���%��c�B�B�D��� � � � � � � ���O� (�� (�� (��������������� �� �E�"�� � � � � � � � � � � ����� �_� � � � ��������� ��9�W�%�%�L�&��&��&�$��������������F�!��!��!���4�(�(�G� +��{�~�F�F��[��[��[� �� �� �!��!��!�$*��*��*� "��"��"� �����%��%��%�$��$��$�+��+��+�15��15��15�f"��"��"� %�� %�� %�-��-��-� .��.��.�%��%��%�"��"��"�)��)��)�����������(��(��(�(�����./��/��/�U��U��U��U��U��U��Ur���r?��c������������������H�����t������������������������}|���������������������|�������������S�r+���)r?��r����)�ast_objrD��s��� r����unparser'�����s�������{�{�H��>�>�'�"�"�"r���c�����������������������dd�l�}�|����������������������d�������������}|���������������������d|����������������������d�������������ddd � �������������|���������������������ddd dd��������������|���������������������dddd��������������|���������������������dddd��������������|���������������������ddt����������dd��������������|�����������������������������������}|j��������5�}|�����������������������������������}d�d�d��������������n#�1�swxY�w�Y���t����������||j��������j ��������|j ��������|j��������� ������������}t����������t����������||j��������|j���������!�������������������������d�S�)"Nr���z python -m ast)�prog�infile�rbr ����?rS��z$the file to parse; defaults to stdin)r-����nargs�default�helpz-mz--moder ���)r ����singler���� func_typez(specify what kind of code must be parsed)r.���choicesr/��z--no-type-commentsT�store_falsez)don't add information about type comments)r.���actionr/��z-az--include-attributes� store_truez:include attributes such as line numbers and column offsets)r4��r/��z-iz--indentrb���z'indentation of nodes (number of spaces))r-���r.��r/��)r���)r���rZ���)�argparse�ArgumentParser�add_argument�FileTyper/���� parse_argsr*���readr���r|���r����no_type_comments�printr����r���rZ���)r6���parserrF���r*��r����trees��� r����mainr@�����s�������O�O�O� � $� $�/� $� :� :�F� ����x�'8�'8�d�'8�'C�'C�3� #�C����E��E��E������h�� G�G����I��I��I�����,�d�=�H����J��J��J� ����4�\�.����/��/��/������j�s�A�F����H��H��H������D� �����������������������������������������������)�4�9�D�DY�Z�Z�Z�D� �$�t��(?��� T� T� T�U�U�U�U�Us����C0�0C4�7C4�__main__)r ���r ���)TF)r]���)T)Lr�����sys�_ast� contextlibr���r����enumr���r���r���r���rY���r����r����r����r����r����r����r����r����r����r����r�����objectr����r����r����r,���r����r�����propertyr����r����r-���r����r����r����r����r��r��r��r/���r0���r1���rT����bytes�boolr����r����r����ro���r��r��r��r<���r��r��r���modr���expr_contextr��r��r!��rw���� float_info� max_10_exprT��r$���_SINGLE_QUOTESr��r0��r?��r'��r@��ru���rh���r���r����<module>rO�����sH�������4�� � � ����������2��2��2��2��2��2��2��2��,��,��,��,��,��,��,��,��,��,�5��t�5��5��5��5��5�*8$��8$��8$�v@���@��@��@��@��@�F�����" �� �� �F�������. �� �� �������������4�����2������05��"��"��"��"��"�J�����7(��7(��7(��7(��7(�&��7(��7(��7(�t8��8��8��8��8�k��8��8��8�x��w�x�����,��������������'�7�+�+�H�J���'�7�+�+�H�J�1��1��1��1��1�4��1��1��1�( 2�� 2�� 2����������(�d������������������(�d������������������H�������������������8�t���������6��6��6��6��6�x�4��6��6��6��6���#�u�g� ��#�� �E�8��4�4��:�:�t�$��t�t�C�y�y�l�����$����� � �.��D��J�J���� �5��U��� �7��D��I�I�z� ���%��%��%��%��%�C��%��%��%����������E������� 3��3��3��3��3�u��3��3��3���w�u�f����6��������������,��5�5�E�J�:��:��:��:��:�C��:��:��:�:��:��:��:��:�l��:��:��:�:��:��:��:��:�|��:��:��:�:��:��:��:��:�L��:��:��:�����c�n�/�!�3�4�4� 4�� ��g��������������������>���� �/��/��/�/��MU��MU��MU��MU��MU���MU��MU��MU�^ #��#��#� V��V��V�0��z����D�F�F�F�F�F���r���