§
    ŒŸj¡e  ã                   óP  — U d Z ddlmZ ddlZddlZddlZddlmZ ddl	m
Z
mZmZmZmZmZmZmZmZ ddlmZ ddlmZmZmZ dZej        Zej        Zej        Zej        Zej        Zej        Zej         Z ej!        Z!ej"        Z"ej#        Z#ej$        Z$ej%        Z%ej&        Z& G d	„ d
e
¦  «        Z' ej(        d¦  «        Z)i Z*eee+e+f         e'f         e,d<   ddœd„Z-d„ Z.dddœd„Z/d„ Z0d„ Z1dZ2 e0de2z   dz   ¦  «        Z3 e0de2z   dz   ¦  «        Z4 e0d¦  «        Z5 e0d¦  «        Z6d„ Z7 G d„ de
¦  «        Z8 G d„ de8¦  «        Z9 G d „ d!¦  «        Z:d"„ Z;d#„ Z<d$d%œd&e=d'ee+e+f         d(ee+e+f         d)ee9         fd*„Z>d+„ Z?dd$d,d-œd.ee=         d'ee+e+f         d/ee+         d(ee+e+f         d)ee9         f
d0„Z@d1„ ZAeBd2k    rhejC        d3         ZD eEeD¦  «        5 ZFeF G                    ¦   «         ZHddd¦  «         n# 1 swxY w Y    e>eH ed4¦  «        ¬5¦  «        D ]ZI eJeI¦  «         ŒdS dS )6a¼  
This tokenizer has been copied from the ``tokenize.py`` standard library
tokenizer. The reason was simple: The standard library tokenizer fails
if the indentation is not right. To make it possible to do error recovery the
    tokenizer needed to be rewritten.

Basically this is a stripped down version of the standard library module, so
you can read the documentation there. Additionally we included some speed and
memory optimizations here.
é    )Úabsolute_importN)ÚBOM_UTF8)	Ú
NamedTupleÚTupleÚIteratorÚIterableÚListÚDictÚPatternÚSetÚAny)ÚPythonTokenTypes)Úsplit_linesÚPythonVersionInfoÚparse_version_stringu   ô�¿¿c                   óš   — e Zd ZU eed<   ee         ed<   ee         ed<   eeef         ed<   eed<   eeef         ed<   ee         ed<   dS )	ÚTokenCollectionÚpseudo_tokenÚsingle_quotedÚtriple_quotedÚendpatsÚ
whitespaceÚfstring_pattern_mapÚalways_break_tokensN)Ú__name__Ú
__module__Ú__qualname__r   Ú__annotations__r   Ústrr
   © ó    úb/var/www/finuniver-perm.ru/html/student/venv/lib/python3.11/site-packages/parso/python/tokenize.pyr   r   +   sƒ   € € € € € € ØÐÐÑØ�s”8ÐÐÑØ�s”8ÐÐÑØ�#�w�,ÔÐÐÑØÐÐÑØ˜c 3˜hœÐ'Ð'Ñ'Ø˜SœÐ!Ð!Ñ!Ð!Ð!r!   r   zutf-8Ú_token_collection_cacheF©Úcapturec                 óR   — |rJ ‚d}| s|dz  }|d                      |¦  «        z   dz   S )Nú(z?:ú|ú))Újoin)r%   ÚchoicesÚkwargsÚstarts       r"   Úgroupr.   :   s@   € ØÐÐÐà€EØð Ø�‰ˆØ�3—8’8˜GÑ$Ô$Ñ$ sÑ*Ð*r!   c                  ó   — t          | Ž dz   S )Nú?)r.   )r+   s    r"   Úmayber1   C   s   € Ý�'ˆ?˜SÑ Ð r!   ©Úinclude_fstringÚonly_fstringc                 óì   — d„ }g d¢}dh}| rddg}|r|}t          ¦   «         }n||z  }n|rt          ¦   «         S |D ]7}t          j        |¦  «        D ] }|                      ||¦  «        ¦  «         Œ!Œ8|S )Nc              3   ón   K  — t          j        d„ | D ¦   «         Ž D ]}d                     |¦  «        V — Œd S )Nc                 ó:   — g | ]}||                      ¦   «         f‘ŒS r    )Úupper)Ú.0Úcs     r"   ú
<listcomp>zI_all_string_prefixes.<locals>.different_case_versions.<locals>.<listcomp>J   s$   € Ð%EÐ%EÐ%E¸ q¨!¯'ª'©)¬) nÐ%EÐ%EÐ%Er!   Ú )Ú
_itertoolsÚproductr*   )ÚprefixÚss     r"   Údifferent_case_versionsz5_all_string_prefixes.<locals>.different_case_versionsI   sO   è è € ÝÔ#Ð%EÐ%E¸fÐ%EÑ%EÔ%EÐFð 	ð 	ˆAØ—'’'˜!‘*”*ÐÐÐÐð	ð 	r!   )ÚbÚrÚuÚbrr<   ÚfÚfr)Úsetr=   ÚpermutationsÚupdate)r3   r4   rA   Úvalid_string_prefixesÚresultrF   r?   Úts           r"   Ú_all_string_prefixesrN   H   sÉ   € ðð ð ð 2Ð1Ð1ÐàˆT€FØð Ø�$ˆKˆØð 	'Ø$%Ð!Ý‘U”UˆFˆFà! QÑ&Ð!Ð!Ø	ð Ý‰uŒuˆð (ð 6ð 6ˆÝÔ(¨Ñ0Ô0ð 	6ð 	6ˆAð �MŠMÐ1Ð1°!Ñ4Ô4Ñ5Ô5Ð5Ð5ð	6ð €Mr!   c                 ó@   — t          j        | t           j        ¦  «        S ©N)ÚreÚcompileÚUNICODE)Úexprs    r"   Ú_compilerU   e   s   € ÝŒ:�d�BœJÑ'Ô'Ð'r!   c                 ó¨   — 	 t           t          | ¦  «                 S # t          $ r+ t          | ¦  «        xt           t          | ¦  «        <   }|cY S w xY wrP   )r#   ÚtupleÚKeyErrorÚ_create_token_collection)Úversion_inforL   s     r"   Ú_get_token_collectionr[   i   s`   € ðÝ&¥u¨\Ñ':Ô':Ô;Ð;øÝð ð ð å$ \Ñ2Ô2ð	3Õ¥ lÑ 3Ô 3Ñ4°vàˆˆˆðøøøs   ‚ œ2AÁAz"[A-Za-z0-9\-]+(?: [A-Za-z0-9\-]+)*z(?:\{\{|\}\}|\\N\{z*\}|\\(?:\r\n?|\n)|\\[^\r\nN]|[^{}\r\n\\])+z\}|\\[^N]|[^{}\\])+z(?:\\(?:\r\n?|\n)|[^{}\r\n])+z[^{}]+c                 óè  — d}t          |¦  «        }d}dt          z   dz   }d}d}d}d}t          ||||¦  «        }	d	}
t          d
d¦  «        t          |
¦  «        z   }d|
z   }t          ||¦  «        }t          d|dz   ¦  «        }t          |||	¦  «        }t	          ¦   «         }t          |Ž }t          t	          d¬¦  «        Ž }t	          dd¬¦  «        }t          |Ž }d}d}d}d}t          |dz   |dz   ¦  «        }t          ddddddd¦  «        }d}g d ¢}| d!k    r|                     d"d#¦  «         n|                     d"d$¦  «         t          |Ž }t          |||¦  «        }t          |d%z   t          d&d'¦  «        z   |d(z   t          d)d'¦  «        z   ¦  «        }||g} d*}!|r|                      |t          |!Ž z   ¦  «         t          d+g| ¢R Ž }"t          |d¬,¦  «        t          |"||||d¬,¦  «        z   }#i }$|D ]V}%t          |¦  «        |$|%d&z   <   t          |¦  «        |$|%d)z   <   t          |¦  «        |$|%dz   <   t          |¦  «        |$|%dz   <   ŒWt          ¦   «         }&t          ¦   «         }'i }(|D ]<})d-D ]}*|&                     |)|*z   ¦  «         Œd.D ]}*|'                     |)|*z   ¦  «         ŒŒ=|D ]})|!D ]
}*|*|(|)|*z   <   ŒŒd/}+t          |#¦  «        },t          |,|&|'|$||(t          |+¦  «        ¦  «        S )0Nz[ \f\t]*z	#[^\r\n]*u   ([A-Za-z_0-9Â€-z]+)z0[xX](?:_?[0-9a-fA-F])+z0[bB](?:_?[01])+z0[oO](?:_?[0-7])+z(?:0(?:_?0)*|[1-9](?:_?[0-9])*)z[eE][-+]?[0-9](?:_?[0-9])*z)[0-9](?:_?[0-9])*\.(?:[0-9](?:_?[0-9])*)?z\.[0-9](?:_?[0-9])*z[0-9](?:_?[0-9])*z[0-9](?:_?[0-9])*[jJ]z[jJ]T)r3   r2   z(?:\\.|[^'\\])*'z(?:\\.|[^"\\])*"z(?:\\.|'(?!'')|[^'\\])*'''z(?:\\.|"(?!"")|[^"\\])*"""ú'''ú"""z\*\*=?z>>=?z<<=?z//=?z->z[+\-*/%&@`|^!=<>]=?ú~z[][(){}])z\.\.\.z\r\n?z\nz[;.,@])é   é   r   z:=?ú:z'[^\r\n'\\]*(?:\\.[^\r\n'\\]*)*ú'z\\(?:\r\n?|\n)z"[^\r\n"\\]*(?:\\.[^\r\n"\\]*)*ú")rd   rc   r^   r]   z\\(?:\r\n?|\n)|\Zr$   )rd   rc   )r^   r]   )ú;ÚimportÚclassÚdefÚtryÚexceptÚfinallyÚwhileÚwithÚreturnÚcontinueÚbreakÚdelÚpassÚglobalÚassertÚnonlocal)
rU   ÚMAX_UNICODEr.   r1   rN   ÚinsertÚappendrH   Úaddr   )-rZ   Ú
Whitespacer   ÚCommentÚNameÚ	HexnumberÚ	BinnumberÚ	OctnumberÚ	DecnumberÚ	IntnumberÚExponentÚ
PointfloatÚExpfloatÚFloatnumberÚ
ImagnumberÚNumberÚpossible_prefixesÚStringPrefixÚStringPrefixWithFÚfstring_prefixesÚFStringStartÚSingleÚDoubleÚSingle3ÚDouble3ÚTripleÚOperatorÚBracketÚspecial_argsÚSpecialÚFunnyÚContStrÚpseudo_extra_poolÚ
all_quotesÚPseudoExtrasÚPseudoTokenr   Ú_prefixr   r   r   rM   ÚquoteÚALWAYS_BREAK_TOKENSÚpseudo_token_compileds-                                                r"   rY   rY   ~   sø  € ð €JÝ˜*Ñ%Ô%€JØ€GØ ¥;Ñ.°Ñ6€Dà*€IØ#€IØ$€IØ2€IÝ�i ¨I°yÑAÔA€IØ,€HÝÐCØ-ñ/ô /Ý16°x±´ñA€Jà# hÑ.€HÝ˜
 HÑ-Ô-€KÝÐ/°¸wÑ1FÑGÔG€JÝ�:˜{¨IÑ6Ô6€Fõ -Ñ.Ô.ÐÝÐ+Ð,€LÝÕ3ÀDÐIÑIÔIÐJÐÝ+¸DÈtÐTÑTÔTÐÝÐ*Ð+€Lð !€Fà €Fà+€Gà+€GÝÐ$ uÑ,Ð.?À%Ñ.GÑHÔH€Fõ
 �Y ¨Ø˜eØ+Øñô €Hð
 €Gà:Ð:Ð:€LØ�vÒÐØ×Ò˜A˜uÑ%Ô%Ð%Ð%à×Ò˜A˜sÑ#Ô#Ð#Ý�\Ð"€Gå�(˜G WÑ-Ô-€Eõ �LÐ#EÑEÝ˜CÐ!2Ñ3Ô3ñ4à Ð#EÑEÝ˜CÐ!2Ñ3Ô3ñ4ñ5ô 5€Gð ! &Ð)ÐØ'€JØð DØ× Ò  µ°zÐ0BÑ!BÑCÔCÐCåÐ-ÐBÐ0AÐBÐBÐB€LÝ˜
¨DÐ1Ñ1Ô1Ýˆl˜F E¨7°DÀ$ÐGÑGÔGñH€Kð €GØ$ð 5ð 5ˆÝ!)¨&Ñ!1Ô!1ˆ�˜#‘ÑÝ!)¨&Ñ!1Ô!1ˆ�˜#‘ÑÝ#+¨GÑ#4Ô#4ˆ�˜%‘Ñ Ý#+¨GÑ#4Ô#4ˆ�˜%‘Ñ Ð õ ‘E”E€MÝ‘E”E€MØÐØð )ð )ˆØð 	)ð 	)ˆEØ×Ò˜a %™iÑ(Ô(Ð(Ð(à!ð 	)ð 	)ˆEØ×Ò˜a %™iÑ(Ô(Ð(Ð(ð	)ð ð 3ð 3ˆØð 	3ð 	3ˆEØ-2Ð  E¡	Ñ*Ð*ð	3ðSÐõ % [Ñ1Ô1ÐÝØ˜}¨m¸WØÐ'­Ð-@Ñ)AÔ)Añô ð r!   c                   ót   — e Zd ZU eed<   eed<   eeef         ed<   eed<   edeeef         fd„¦   «         Z	dS )ÚTokenÚtypeÚstringÚ	start_posr?   rn   c                 óò   — t          | j        ¦  «        }t          |¦  «        dk    r"| j        d         t          |¦  «        z   dz
  dfS | j        d         | j        d         t          | j        ¦  «        z   fS ©Né   r   )r   r£   Úlenr¤   )ÚselfÚliness     r"   Úend_poszToken.end_posð   sj   € å˜DœKÑ(Ô(ˆÝˆu‰:Œ:˜Š>ˆ>Ø”> !Ô$¥s¨5¡z¤zÑ1°AÑ5°qÐ8Ð8à”> !Ô$ d¤n°QÔ&7½#¸d¼kÑ:JÔ:JÑ&JÐJÐJr!   N)
r   r   r   r   r   r   r   ÚintÚpropertyr«   r    r!   r"   r¡   r¡   ê   s|   € € € € € € Ø
ÐÐÑØ€K€K�KØ�S˜#�XŒÐÐÑØ€K€K�KàðK˜˜s C˜xœð Kð Kð Kñ „XðKð Kð Kr!   r¡   c                   ó   — e Zd Zd„ ZdS )ÚPythonTokenc                 óH   — d|                       | j        j        ¬¦  «        z  S )Nz6TokenInfo(type=%s, string=%r, start_pos=%r, prefix=%r))r¢   )Ú_replacer¢   Úname©r©   s    r"   Ú__repr__zPythonToken.__repr__ú   s$   € ØHØ—’ 4¤9¤>�Ñ2Ô2ñ3ð 	4r!   N)r   r   r   r´   r    r!   r"   r¯   r¯   ù   s#   € € € € € ð4ð 4ð 4ð 4ð 4r!   r¯   c                   ó2   — e Zd Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ ZdS )ÚFStringNodec                 óL   — || _         d| _        d| _        d | _        d| _        d S )Nr   r<   )r�   Úparentheses_countÚprevious_linesÚlast_string_start_posÚformat_spec_count)r©   r�   s     r"   Ú__init__zFStringNode.__init__   s1   € ØˆŒ
Ø!"ˆÔØ ˆÔØ*.ˆÔ"ð "#ˆÔÐÐr!   c                 ó&   — | xj         dz  c_         d S )Nr§   )r¸   ©r©   Ú	characters     r"   Úopen_parentheseszFStringNode.open_parentheses	  s   € ØÐÔ !Ñ#ÐÔÐÐr!   c                 óN   — | xj         dz  c_         | j         dk    r	d| _        d S d S r¦   ©r¸   r»   r¾   s     r"   Úclose_parentheseszFStringNode.close_parentheses  s:   € ØÐÔ !Ñ#ÐÔØÔ! QÒ&Ð&à%&ˆDÔ"Ð"Ð"ð 'Ð&r!   c                 ó2   — t          | j        ¦  «        dk    S )Nr`   )r¨   r�   r³   s    r"   Úallow_multilinezFStringNode.allow_multiline  s   € Ý�4”:‰Œ !Ò#Ð#r!   c                 ó"   — | j         | j        k    S rP   rÂ   r³   s    r"   Ú
is_in_exprzFStringNode.is_in_expr  s   € ØÔ%¨Ô(>Ò>Ð>r!   c                 ó:   — |                       ¦   «          o| j        S rP   )rÇ   r»   r³   s    r"   Úis_in_format_speczFStringNode.is_in_format_spec  s   € Ø—?’?Ñ$Ô$Ð$Ð?¨Ô)?Ð?r!   N)	r   r   r   r¼   rÀ   rÃ   rÅ   rÇ   rÉ   r    r!   r"   r¶   r¶   ÿ   ss   € € € € € ð#ð #ð #ð$ð $ð $ð'ð 'ð 'ð$ð $ð $ð?ð ?ð ?ð@ð @ð @ð @ð @r!   r¶   c           
      ó‚  — t          | ¦  «        D ]«\  }}|                     ¦   «         }t          |¦  «        t          |¦  «        z
  }|                     |j        ¦  «        rYt          t          |j        |||z   f||d |…         z   ¬¦  «        }	d}|j        rJ ‚| |d …= |	dt          |j        ¦  «        |z   fc S Œ¬d |dfS )N©r?   r<   r   )Ú	enumerateÚlstripr¨   Ú
startswithr�   r¯   ÚFSTRING_ENDr¹   )
Úfstring_stackr£   Úline_nrÚcolumnÚadditional_prefixÚfstring_stack_indexÚnodeÚlstripped_stringÚ
len_lstripÚtokens
             r"   Ú_close_fstring_if_necessaryrÙ     só   € Ý%.¨}Ñ%=Ô%=ð ;ð ;Ñ!Ð˜TØ!Ÿ=š=™?œ?ÐÝ˜‘[”[¥3Ð'7Ñ#8Ô#8Ñ8ˆ
Ø×&Ò& t¤zÑ2Ô2ð 
	;ÝÝØ”
Ø˜& :Ñ-Ð.Ø(¨°°°Ô)<Ñ<ð	ñ ô ˆEð !#ÐØÔ*Ð*Ð*Ð*ØÐ1Ð2Ð2Ð3Ø˜"�c $¤*™oœo°
Ñ:Ð:Ð:Ð:Ð:ð
	;ð Ð" AÐ%Ð%r!   c                 ó   — |d         }|                      ¦   «         }|                     ¦   «         r|rt          }nt          }n|rt          }nt
          }|                     ||¦  «        }|€	|j        |fS |j        s	||f|_        | 	                    d¦  «        }	|D ]T}
| |
j
                                      |	¦  «        }|�0| 	                    d¦  «        d t          |
j
        ¦  «         …         }	ŒU|}|t          |	¦  «        z  }|	                     d¦  «        s|	                     d¦  «        r|xj        |	z  c_        d}	n
|j        |	z   }	|	|fS )Néÿÿÿÿr   ú
úr<   )rÅ   rÉ   Úfstring_format_spec_multi_lineÚfstring_format_spec_single_lineÚfstring_string_multi_lineÚfstring_string_single_lineÚmatchr¹   rº   r.   r�   r¨   Úendswith)r   rÐ   ÚlineÚlnumÚposÚtosrÅ   Úregexrâ   r£   Úfstring_stack_nodeÚ	end_matchÚnew_poss                r"   Ú_find_fstring_stringrì   .  sw  € Ø
˜Ô
€CØ×)Ò)Ñ+Ô+€OØ
×ÒÑÔð 	/Øð 	4Ý2ˆEˆEå3ˆEˆEàð 	/Ý-ˆEˆEå.ˆEà�KŠK˜˜cÑ"Ô"€EØ€}ØÔ! 3Ð&Ð&àÔð 0Ø%)¨3 KˆÔ!à�[Š[˜‰^Œ^€FØ+ð Ið IÐØÐ.Ô4Ô5×;Ò;¸FÑCÔCˆ	ØÐ Ø—_’_ QÑ'Ô'Ð(G­#Ð.@Ô.FÑ*GÔ*GÐ)GÐ(GÔHˆFøà€GØ�s�6‰{Œ{Ñ€Gð ‡‚�tÑÔð - §¢°Ñ 5Ô 5ð -ØÐÔ˜fÑ$ÐÔØˆˆàÔ# fÑ,ˆà�7ˆ?Ðr!   )r§   r   )r¤   ÚcoderZ   r¤   rn   c                óH   — t          | d¬¦  «        }t          |||¬¦  «        S )z0Generate tokens from a the source code (string).T)Úkeepends)rZ   r¤   )r   Útokenize_lines)rí   rZ   r¤   rª   s       r"   Útokenizerñ   V  s+   € õ ˜ tÐ,Ñ,Ô,€EÝ˜%¨lÀiÐPÑPÔPÐPr!   c                 ó   ‡ — ˆ fd„}|S )zL
    A small helper function to help debug the tokenize_lines function.
    c               ?   óH   •K  —  ‰| i |¤ŽD ]}t          |¦  «         |V — Œd S rP   )Úprint)Úargsr,   rØ   Úfuncs      €r"   Úwrapperz_print_tokens.<locals>.wrapperb  sE   øè è € Ø�T˜4Ð* 6Ð*Ð*ð 	ð 	ˆEÝ�%‰LŒLˆLØˆKˆKˆKˆKð	ð 	r!   r    )rö   r÷   s   ` r"   Ú_print_tokensrø   ^  s#   ø€ ðð ð ð ð ð
 €Nr!   T)Úindentsr¤   Úis_first_tokenrª   rù   c          
   #   óà  ‡‡.‡/K  — ˆˆ.ˆ/fd„}t          |¦  «        \  }}}}	}
}}d}‰€dgŠd}d}d}d}d}d}|d         dz
  Š.g }| D �]Ó}‰.dz  Š.d}t          |¦  «        }|r]|                     t          ¦  «        r t          }|dd…         }t          |¦  «        }d|d         z  |z   }|d         }||d         z  }d	}|r`|                     |¦  «        }|r>|                     d¦  «        }t          t          ||d|…         z   ||¦  «        V — d}d}n||z   }||z   }ŒÚ||k     �rò|r�|d
         }|                     ¦   «         sGt          |	||‰.|¦  «        \  }}|r't          t          ||j        d¬¦  «        V — d|_        Œd||k    r�n�||d…         }t          ||‰.||¦  «        \  }}}||z  }|�|V — Œ™|r®|} |D ]’}!|!j        }"|	|"                              ||¦  «        }#|#�k|#                     d¦  «        }$t          |$¦  «        t          |"¦  «        z
  |z   t          | ¦  «        k     r#|d|…         |$dt          |"¦  «         …         z   } Œ“|                     | |¦  «        }%n|                     ||¦  «        }%|%rb||%                     d¦  «        z   }d}|%                     d¦  «        \  }&}‰.|&fŠ/|%                     d¦  «        }'|'dk    r|sJ ‚|}�n?|'d         }(nH|
                     ||¦  «        })||)                     ¦   «                  }(|)                     ¦   «         }&‰.|&fŠ/|rc|(dvr_|(dk    s|%€Wd	}|dk    rO|sM|&}*|*‰d
         k    r.t          t"          d‰/d¦  «        V — ‰                     |*¦  «          ||*¦  «        E d{V —† |%s™|
                     ||¦  «        })|r+|dk    r%|s# ||)                     ¦   «         ¦  «        E d{V —† |)                     ¦   «         }d	}t          t&          ||         ‰.|f||)                     d¦  «        z   ¦  «        V — d}|dz  }�Œ|(|v s|(dk    r'|'dk    r!|'dk    rt          t(          |'‰/|¦  «        V — �n¶|%                     d¦  «        �›|'|v rO|s|rKg |dd…<   d}t+          j        d|d|&…         ¦  «        }+|+�# ||+                     ¦   «         ¦  «        E d{V —† |'                     ¦   «         rt          t.          |'‰/|¦  «        V — �nt1          |'‰/|¦  «        E d{V —† �n|(dv rZt3          d„ |D ¦   «         ¦  «        r|                     ¦   «          |s"|dk    r|st          t6          |'‰/|¦  «        V — n||'z   }d}�n¨|(dk    ro|'                     d¦  «        s|'                     d¦  «        rJ ‚|r:|d
                              ¦   «         r t          t&          |(‰/|¦  «        V — |&dz   }�n:||'z   }�n3|'|v rj|	|'         }|                     ||¦  «        }|r:|                     d¦  «        }||&|…         }'t          t          |'‰/|¦  «        V — �nÕ‰/}||&d…         }|}�nÌ|(|v s|'dd…         |v s|'dd…         |v r‚|'d
         dv r]‰.|&f}|	                     |(¦  «        p5|	                     |'d         ¦  «        p|	                     |'d         ¦  «        }||&d…         }|}�nIt          t          |'‰/|¦  «        V — �n'|'|v rB|                     t=          ||'         ¦  «        ¦  «         t          t>          |'‰/|¦  «        V — ná|(dk    r||&d…         dv r||||&d…         z   z  }nÅ|'dv r$|r|d
                               |'¦  «         nƒ|dz  }n}|'dv r&|r|d
          !                    |'¦  «         n[|r|dz  }nS|'                     d¦  «        r>|r<|d
         j"        |d
         j#        z
  dk    r|d
         xj#        dz  c_#        d}'|&dz   }t          tH          |'‰/|¦  «        V — ||k     �°ò�ŒÕ|rEt          t&          |||¦  «        V — |                     d¦  «        s|                     d¦  «        rd}|r3|d
         }|j        r$t          t          |j        |j        d¬¦  «        V — ‰.|f},‰dd…         D ]/}-‰ %                    ¦   «          t          tL          d|,d¦  «        V — Œ0t          tN          d|,|¦  «        V — dS )a)  
    A heavily modified Python standard library tokenizer.

    Additionally to the default information, yields also the prefix of each
    token. This idea comes from lib2to3. The prefix contains all information
    that is irrelevant for the parser like newlines in parentheses or comments.
    c              3   óö   •K  — | ‰d         k     ri| ‰d         k    r"t          t          d‰| fd¦  «        V — | ‰d<   d S ‰                     ¦   «          t          t          d‰d¦  «        V — | ‰d         k     °gd S d S )NrÛ   éþÿÿÿr<   )r¯   ÚERROR_DEDENTÚpopÚDEDENT)r-   rù   rå   Úsposs    €€€r"   Údedent_if_necessaryz+tokenize_lines.<locals>.dedent_if_necessaryz  s•   øè è € Ø�g˜b”kÒ!Ð!Ø�w˜r”{Ò"Ð"Ý!¥,°°T¸5°MÀ2ÑFÔFÐFÐFÐFØ#�˜‘Ø�Ø�KŠK‰MŒMˆMÝ�f b¨$°Ñ3Ô3Ð3Ð3Ð3ð �g˜b”kÒ!Ð!Ð!Ð!Ð!Ð!r!   r   NÚ
0123456789r<   Tr§   ú^FrÛ   rË   é   z
#ú\ú.z...r`   z	[ \f\t]*$z
c              3   ó@   K  — | ]}|                      ¦   «          V — Œd S rP   )rÅ   )r9   rF   s     r"   ú	<genexpr>z!tokenize_lines.<locals>.<genexpr>  s1   è è € ÐFÐF°1˜1×,Ò,Ñ.Ô.Ð.ÐFÐFÐFÐFÐFÐFr!   ú#rÜ   rÝ   )z\
z\
z\z([{z)]}rb   )(r[   r¨   rÎ   ÚBOM_UTF8_STRINGrâ   Úendr¯   ÚSTRINGrÇ   rì   ÚFSTRING_STRINGrº   r¹   rÙ   r�   r.   ÚspanÚINDENTrx   Ú
ERRORTOKENÚNUMBERrQ   ÚisidentifierÚNAMEÚ_split_illegal_unicode_nameÚanyÚclearÚNEWLINErã   Úgetr¶   ÚFSTRING_STARTrÀ   rÃ   r¸   r»   ÚOPrÿ   r   Ú	ENDMARKER)0rª   rZ   rù   r¤   rú   r  r   r   r   r   r   r   r   Úparen_levelÚmax_ÚnumcharsÚcontstrÚnew_liner?   rÓ   rÐ   rä   ræ   ÚendprogÚendmatchÚcontstr_startÚcontlinerç   r£   ÚrestÚfstring_end_tokenÚquote_lengthÚstring_lineré   r�   rê   Úend_match_stringÚpseudomatchr-   rØ   Úinitialrâ   Úindent_startÚmr«   Úindentrå   r  s0     `                                           @@r"   rð   rð   k  sŸ  øøøè è € ð4ð 4ð 4ð 4ð 4ð 4ð 4õ 	˜lÑ+Ô+ñ2€L�- °¸ØÐ0à€KØ€Ø�#ˆØ€DØ€HØ€Gð €HØ€FØÐØ�QŒ<˜!Ñ€DØ')€MØð U;ñ U;ˆØ�‰	ˆØˆÝ�4‰yŒyˆØð 	#Ø�Š�Ñ/Ô/ð !Ý$3Ð!Ø˜A˜B˜B”x�Ý˜4‘y”y�ð ˜ 1œÑ%¨Ñ,ˆDØ˜A”,ˆCØ�I˜a”LÑ ˆDà"ˆNàð 	Ø—}’} TÑ*Ô*ˆHØð 
Ø—l’l 1‘o”o�Ý!Ý˜G d¨4¨C¨4¤jÑ0Ø! 6ñ+ô +ð +ð +ð +ð �Ø��à! D™.�Ø# d™?�Øà�DŠj‰jØð Ø# BÔ'�Ø—~’~Ñ'Ô'ð Ý"6°wÀÈtÐUYÐ[^Ñ"_Ô"_‘K�F˜CØð 	!Ý)Ý*¨FØÔ5ð $&ðñ ô ð ð ð ð .0˜Ô*Ø Ø˜d’{�{Ùà˜C˜D˜D”z�ÝE`Ø!ØØØØ%ñFô FÑBÐ!Ð#4°lð �|Ñ#�Ø$Ð0Ø+Ð+Ð+Ð+Øð ð <Ø"�Ø*7ð Vð VÐ&Ø.Ô4�EØ '¨¤× 4Ò 4°T¸3Ñ ?Ô ?�IØ Ð,Ø+4¯?ª?¸1Ñ+=Ô+=Ð(ÝÐ/Ñ0Ô0µ3°u±:´:Ñ=ÀÑCÅcÈ+ÑFVÔFVÒVÐVØ*.¨t°¨t¬*Ð7GÈÍ#ÈeÉ*Ì*ÈÈÔ7UÑ*U˜KøØ*×0Ò0°¸cÑBÔB��à*×0Ò0°°sÑ;Ô;�àð %Ø*¨[×->Ò->¸qÑ-AÔ-AÑA�Ø$&Ð!Ø(×-Ò-¨aÑ0Ô0‘
��sØ˜e�}�Ø#×)Ò)¨!Ñ,Ô,�Ø˜B’;�;Ø!�M�M�MØ(.Ð%ñ Ø œ(��à"×(Ò(¨¨sÑ3Ô3�Ø˜uŸyšy™{œ{Ô+�ØŸ	š	™œ�Ø˜e�}�àð A˜G¨7Ð2Ð2¸À4º¸È;ÐK^Ø �Ø !Ò#Ð#¨MÐ#Ø#(�LØ# g¨b¤kÒ1Ð1Ý)­&°"°d¸BÑ?Ô?Ð?Ð?Ð?ØŸš |Ñ4Ô4Ð4Ø2Ð2°<Ñ@Ô@Ð@Ð@Ð@Ð@Ð@Ð@Ð@àð Ø"×(Ò(¨¨sÑ3Ô3�Øð @ ¨qÒ 0Ð 0¸Ð 0Ø2Ð2°5·9²9±;´;Ñ?Ô?Ð?Ð?Ð?Ð?Ð?Ð?Ð?Ø—i’i‘k”k�Ø �Ý!Ý  S¤	¨D°#¨;Ø%¨¯ª°A©¬Ñ6ñô ð ð ð ð %'Ð!Ø�q‘�Ùà˜8Ð#Ð#Ø 3š˜¨5°Cª<¨<¸EÀUºN¸NÝ!¥&¨%°°vÑ>Ô>Ð>Ð>Ð>Ñ>Ø×"Ò" 1Ñ%Ô%Ð1ØÐ/Ð/Ð/°]Ð/ÀkÐ/Ø')�M ! ! !Ñ$Ø"#�Kåœ ¨t°F°U°F¬|Ñ<Ô<�AØ�}Ø#6Ð#6°q·u²u±w´wÑ#?Ô#?Ð?Ð?Ð?Ð?Ð?Ð?Ð?Ø×%Ò%Ñ'Ô'ð PÝ%¥d¨E°4¸Ñ@Ô@Ð@Ð@Ð@Ñ@å:¸5À$ÈÑOÔOÐOÐOÐOÐOÐOÐOÐOÑOØ˜FÐ"Ð"ÝÐFÐF¸ÐFÑFÔFÑFÔFð *Ø!×'Ò'Ñ)Ô)Ð)àð 7 K°1Ò$4Ð$4¸]Ð$4Ý%¥g¨u°d¸FÑCÔCÐCÐCÐCÐCà(.°©Ð%Ø�‘Ø˜C’�Ø Ÿ>š>¨$Ñ/Ô/ÐL¸¿ºÀtÑ8LÔ8LÐLÐLÐLØ ð 7 ]°2Ô%6×%AÒ%AÑ%CÔ%Cð 7å%¥j°'¸4ÀÑHÔHÐHÐHÐHØ !™)�C‘Cà(.°©Ð%Ñ%Ø˜-Ð'Ð'Ø! %œ.�Ø"Ÿ=š=¨¨sÑ3Ô3�Øð Ø"Ÿ,š, q™/œ/�CØ   s œO�EÝ%¥f¨e°T¸6ÑBÔBÐBÐBÐBÑBà$(�MØ" 5 6 6œl�GØ#�HÙð ˜MÐ)Ð)Ø˜"˜1˜"”I Ð.Ð.Ø˜"˜1˜"”I Ð.Ð.Ø˜”9 Ð&Ð&ð %)¨% K�MØ&Ÿ{š{¨7Ñ3Ô3ð  8°w·{²{À5ÈÄ8Ñ7LÔ7Lð  8Ø")§+¢+¨e°A¬hÑ"7Ô"7ð à" 5 6 6œl�GØ#�HÙå%¥f¨e°T¸6ÑBÔBÐBÐBÐBÑBØÐ-Ð-Ð-Ø×$Ò$¥[Ð1DÀUÔ1KÑ%LÔ%LÑMÔMÐMÝ!¥-°¸¸fÑEÔEÐEÐEÐEÐEØ˜D’� T¨%¨&¨&¤\Ð5OÐ%OÐ%OØ! V¨d°5°6°6¬lÑ%:Ñ:Ð!Øà˜E�>�>Ø$ð )Ø% bÔ)×:Ò:¸5ÑAÔAÐAÐAà# qÑ(˜˜Ø˜e�^�^Ø$ð -Ø% bÔ)×;Ò;¸EÑBÔBÐBÐBà&ð -Ø'¨1Ñ,˜KøØ×%Ò% cÑ*Ô*ð $¨}ð $Ø)¨"Ô-Ô?Ø'¨Ô+Ô=ñ>ØABòCð Cð " "Ô%Ð7Ô7¸1Ñ<Ð7Ô7Ø�EØ !™)�Cå!¥" e¨T°6Ñ:Ô:Ð:Ð:Ð:ðm �DŠj‰jùðp ð Ý�* g¨}¸fÑEÔEÐEÐEÐEØ×Ò˜DÑ!Ô!ð 	 W×%5Ò%5°dÑ%;Ô%;ð 	ØˆHàð 	Ø˜BÔˆØÔð 	ÝÝ Ô 2ØÔ)ð ðñ ô ð ð ð ð �Dˆj€Gð ˜!˜"˜"”+ð 3ð 3ˆØ�Š‰ŒˆÝ�& " g¨rÑ2Ô2Ð2Ð2Ð2Ð2Ý
•i  WÐ.?Ñ
@Ô
@Ð@Ð@Ð@Ð@Ð@r!   c              #   ó‚  ‡‡‡‡	K  — ˆˆˆ	ˆfd„}dŠdŠ|Š	t          | ¦  «        D ]Š\  }}‰r@|                     ¦   «         r& |¦   «         V — |ŠdŠdŠ|d         |d         |z   fŠ	ŒA‰|z  ŠŒG‰|z   }|                     ¦   «         r|ŠŒc‰r! |¦   «         V — dŠ|d         |d         |z   fŠ	|ŠdŠŒ‹‰r |¦   «         V — d S d S )Nc                  óD   •— t          ‰rt          nt          ‰ ‰‰¦  «        S rP   )r¯   r  r  )ÚfoundÚ
is_illegalræ   r?   s   €€€€r"   Úcreate_tokenz1_split_illegal_unicode_name.<locals>.create_token‰  s    ø€ Ý¨Ð=�:˜:½¸uÀcÈ6ÑRÔRÐRr!   r<   Fr   r§   T)rÌ   r  )
rØ   r¤   r?   r4  ÚiÚcharÚ	new_foundr2  r3  ræ   s
     `    @@@r"   r  r  ˆ  sW  øøøøè è € ðSð Sð Sð Sð Sð Sð Sð Sð €EØ€JØ
€CÝ˜UÑ#Ô#ð "ð "‰ˆˆ4Øð 	"Ø× Ò Ñ"Ô"ð Ø"�l‘n”nÐ$Ð$Ð$Ø�Ø"�
Ø�Ø ”l I¨a¤L°1Ñ$4Ð4��à˜‘��à ™ˆIØ×%Ò%Ñ'Ô'ð "Ø!��àð 9Ø&˜,™.œ.Ð(Ð(Ð(Ø�FØ# Aœ,¨	°!¬°qÑ(8Ð8�CØ�Ø!�
�
àð Øˆl‰nŒnÐÐÐÐÐðð r!   Ú__main__r§   z3.10)rZ   )KÚ__doc__Ú
__future__r   ÚsysrQ   Ú	itertoolsr=   Úcodecsr   Útypingr   r   r   r   r	   r
   r   r   r   Úparso.python.tokenr   Úparso.utilsr   r   r   rv   r  r  r  r  r  r  r   r  r  rþ   r  r  rÏ   r   Údecoder  r#   r¬   r   r.   r1   rN   rU   r[   Úunicode_character_namerá   rà   rß   rÞ   rY   r¡   r¯   r¶   rÙ   rì   r   rñ   rø   rð   r  r   ÚargvÚpathÚopenrF   Úreadrí   rØ   rô   r    r!   r"   ú<module>rG     sC  ðð	ð 	ð 	ð 'Ð &Ð &Ð &Ð &Ð &à 
€
€
€
Ø 	€	€	€	Ø Ð Ð Ð Ø Ð Ð Ð Ð Ð ðð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð 0Ð /Ð /Ð /Ð /Ð /Ø LÐ LÐ LÐ LÐ LÐ LÐ LÐ LÐ LÐ Lð €à	Ô	 €ØÔ€Ø	Ô	 €ØÔ€Ø
Ô
"€Ø	Ô	 €Ø	Ô	 €ØÔ&€	ØÔ(€
ØÔ,€Ø Ô.€Ø!Ô0€ØÔ*€ð"ð "ð "ð "ð "�jñ "ô "ð "ð "�(”/ 'Ñ*Ô*€àBDÐ ˜˜e C¨ Hœo¨Ð>Ô?Ð DÐ DÑ Dð "ð +ð +ð +ð +ð +ð!ð !ð !ð
 -2Àð ð ð ð ð ð:(ð (ð (ðð ð ð ?Ð Ø%˜XØÐ2Ñ2Ø3ñ4ñô Ð ð %˜HØÐ2Ñ2Ð5KÑKñô Ð ð #+ (Ð+KÑ"LÔ"LÐ Ø!) ¨)Ñ!4Ô!4Ð ðið ið iðXKð Kð Kð Kð KˆJñ Kô Kð Kð4ð 4ð 4ð 4ð 4�%ñ 4ô 4ð 4ð@ð @ð @ð @ð @ñ @ô @ð @ð:&ð &ð &ð$%ð %ð %ðR OUðQð Qð QØ
ðQØ % c¨3 h¤ðQØ<AÀ#ÀsÀ(¼OðQàˆkÔðQð Qð Qð Qð	ð 	ð 	ð" Ø!'ØðZAð ZAð ZAØ�CŒ=ðZAð ˜˜S˜”/ðZAð �#ŒYð	ZAð
 �S˜#�XŒðZAð ˆkÔðZAð ZAð ZAð ZAðzð ð ðB ˆzÒÐØŒ8�AŒ;€DØ	ˆˆd‰Œð �qØ�vŠv‰xŒxˆðð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð ð �˜$Ð-AÐ-AÀ&Ñ-IÔ-IÐJÑJÔJð ð ˆØˆˆe‰Œˆˆð Ðð
ð s   ÇG5Ç5G9Ç<G9