403Webshell
Server IP : 118.27.122.248  /  Your IP : 216.73.216.15
Web Server : Apache
System : Linux web0264.sh.tyo1 4.18.0-553.79.1.lve.el7h.x86_64 #1 SMP Wed Oct 15 16:34:46 UTC 2025 x86_64
User : c9415830 ( 11735)
PHP Version : 8.4.17
Disable Function : NONE
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : ON  |  Sudo : OFF  |  Pkexec : OFF
Directory :  /opt/alt/python36/lib64/python3.6/test/__pycache__/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /opt/alt/python36/lib64/python3.6/test/__pycache__/test_ast.cpython-36.pyc
3

�w2_���;@sZ
ddlZddlZddlZddlZddlZddlZddlmZdd�Zddddd	d
ddd
ddddddddddddddddddd d!d"d#d$d%d&d'd(d)d*d+d,d-d.d/d0g,Z	d1gZ
dd2d3d4d5d6d7d8d9d:d;d<d=d>d?d@dAdBdCdDdEdFdGdHgZGdIdJ�dJej�Z
GdKdL�dLej�ZGdMdN�dNej�ZGdOdP�dPej�ZdQdR�ZdSd�gfdSdWd�dXdYgdggdgfd�ggdfgfdSdWd�dXdYd�gdggdgfd�ggdfgfdSdWd�dXdYd�gdggdd�gfd�ggdfgfdSdWd�dXdYgd�ggdgfd�ggdfgfdSdWd�dXdYgdggd�gfd�ggdfgfdSdWd�dXdYd�d�d�d�d�gd�d�gd�gd��d�ddu�dg�dfdx�dggfgf�dggdfgfdSd{�dd|gg�d
ggfgfdSd{�dd|�dgg�dggfgfdSdW�ddXdYgdggdgf�dggdfgfdSd��d�dgfgfdSd��d�dg�dfgfdS�d'gfdSd��d(�d+�d.�d0ggfgfdSd��d1�d4�d6ggfgfdSd��d7�d:�d<ggfgfdSd��d=�dDg�dFgfgfdSd��dG�dN�dUg�dWgfgfdSd��dXd��dY�d\�d^ggfdfgfdSd��d_�dagd��db�ded�dggfgggfgfdSd��dh�djggg�dlgfgfdS�dqgfdSd��dr�dsgfgfdSd��dtd��dugdfgfdSd��dvdBgfgfdS�dzgfdS�d|gfdSd��d}�d��d��d�ggfgfdSd��d��d��d��d�ggfgfdSd��d�d��d��d��d�g�d�f�d��d�ggfgfdSdT�d�d��d�d��d��d��d�g�d�fd�d��d��d��d�g�d�f�d�gdfgffgfdSdT�d�d��d�d��d��d��d�g�d�fd�d��d��d��d�g�d�f�d�gdfgffgfdSdT�d�d��d�d��dɐd̐d�g�d�fd�d��dѐdԐd�g�d�f�d�gdfgffgfdSdT�d�d��d�d��dސd�d�g�d�fd�d��d�d�d�g�d�f�d�gdfgffgfdSdT�d�d��d�d��d�d��d��d�gdfd��d�d�dgdfgffgfdSdT�dd��d	�d�dd�d��d�d�dg�df�dgdfgffgfdSdT�dd��d�dd��d"�d%�d(gdfgffgfdSdT�d)d��d*�d-d�d��d.�d1�d4g�d5f�d8gdfgffgfdSd��d9dXdYgdggdgfdT�d:d��d;d��d<�d?ggfffggdfgfdSd��d@dXdYgdggdgfd��dA�dD�dG�dKg�dOgfggdfgfdSd��dPdXdYgdggdgfd��dQ�dXg�d\gfggdfgfdSdT�d]dx�d^d�d`gdx�da�dcg�degf�dggffgfdSdT�dhd��did��djd��dk�dm�dogf�dpf�drgffgfdSd��dsdXdYgdggdgfdT�dtd��du�dxd��d{�d~gdUfgffggdfgfg,Zd��d�gfgZ�d�d�dĐd��d��d��d�gff�d��d�d�dȐd�dYgdggdgf�d�ffd�dx�d��d�g�d�gffd�dx�d�ggffd�d��d��d�gffd�dx�d��d�g�d�gffd�d��d��d�d��d��d��d�gdfgffd�d��dd�d��dȐdːd�gdfgffd�dɐdϐdѐdҐd�g�dՐd�gffd�d��dؐdېdݐdߐd�g�d�d�gff�d�d�d��d�dd�du�d�d�d�dg�dffd�du�dg�dffd�d��d�d�d�dg�dffd�d��d�d �d"�d$g�d%ffd�d��d&g�d'ffd�d��d(�d4�dBggffgZe�dS(C�N)�supportcCs�|dkst|tttf�r|St|t�r4dd�|D�S|jjg}t|d�rdt|d�rd|j|j	|j
f�|jdkrvt|�Sx"|jD]}|jt
t||���q~Wt|�S)NcSsg|]}t|��qS�)�to_tuple)�.0�err�2/opt/alt/python36/lib64/python3.6/test/test_ast.py�
<listcomp>szto_tuple.<locals>.<listcomp>�lineno�
col_offset)�
isinstance�str�int�complex�list�	__class__�__name__�hasattr�appendr	r
�_fields�tupler�getattr)�t�result�frrrr
s


r�Nonez
def f(): passzdef f(a): passzdef f(a=0): passzdef f(*args): passzdef f(**kwargs): passz>def f(a, b=1, c=None, d=[], e={}, *args, f=42, **kwargs): passzclass C:passzclass C(object): passzdef f():return 1zdel vzv = 1zv += 1zfor v in v:passzwhile v:passz	if v:passzwith x as y: passzwith x as y, z as q: passzraise Exception('string')z$try:
  pass
except Exception:
  passztry:
  pass
finally:
  passzassert vz
import syszfrom sys import vzglobal v�1�passzfor v in v:breakzfor v in v:continuezfor a,b in c: passz[(a,b) for a,b in c]z((a,b) for a,b in c)z((a,b) for (a,b) in c)zL(
    (
    Aa
    ,
       Bb
    )
    for
    Aa
    ,
    Bb in Cc
    )z"{a : b for w in x for m in p if g}z{a : b for v,w in x}z{r for l in x if g}z{r for l,m in x}z!async def f():
 await something()z,async def f():
 async for e in i: 1
 else: 2z$async def f():
 async with a as b: 1z{**{1:2}, 2:3}z{*{1, 2}, 3}z$async def f():
 [i async for b in c]z1+2za and bza + bznot vzlambda:Nonez{ 1:2 }z{}z{None,}z&{
      1
        :
          2
     }z[a for b in c if d]z(a for b in c if d)z	1 < 2 < 3zf(1,2,c=3,*d,**e)Z10z'string'za.bza[b:c]�vz[1,2,3]z[]z1,2,3z(1,2,3)z()za.b.c.d(a.b[1:2])c@s�eZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
d�Z	dd�Z
dd�Zdd�Zdd�Z
dd�Zdd�Zdd�Zdd�Zdd �Zd!d"�Zd#d$�Zd%d&�Zd'd(�Zejd)d*��Zd+S),�	AST_TestscCs�t|tj�s|jdkrdSt|tjtjtjf�rX|j|jf}|j	||k�|j|jf}xR|jD]H}t
||�}t|t�r�x.|D]}|j||�q~Wq`|dk	r`|j||�q`WdS)N)
r�ast�ASTr�expr�stmtZ
excepthandlerr	r
�
assertTruerr�_assertTrueorder)�selfZast_nodeZ
parent_posZnode_pos�name�valueZchildrrrr$�s


zAST_Tests._assertTrueordercCs|tj�}|j|jf�d|_|j|jd�|j|jdd�|jt��|jWdQRX|jt	��tjd�WdQRXdS)N�*�foobar�)
rr �assertEqualrr)�__dict__�assertRaises�AttributeError�vararg�	TypeError)r%�xrrr�test_AST_objects�szAST_Tests.test_AST_objectscCsLGdd�d�}tj�}|�|_||j_tj|j�}~tj�|j|��dS)Nc@seZdZdS)z0AST_Tests.test_AST_garbage_collection.<locals>.XN)r�
__module__�__qualname__rrrr�X�sr5)	rr r1�a�weakref�refrZ
gc_collect�assertIsNone)r%r5r6r8rrr�test_AST_garbage_collection�sz%AST_Tests.test_AST_garbage_collectioncCs�x�ttdfttdfttdffD]�\}}}x�t||�D]v\}}|jd|d��2t|d|t	j
�}|jt|�|�|j
|d
�WdQRX|jd||d	��t|d|�WdQRXq4WqWdS)N�exec�single�evalZparsing)�action�input�?rZ	compiling)r>r?�kind)rr)�
exec_tests�exec_results�single_tests�single_results�
eval_tests�eval_results�zip�subTest�compiler�
PyCF_ONLY_ASTr+rr$)r%r?�outputrA�i�oZast_treerrr�
test_snippets�s
zAST_Tests.test_snippetscCs<tjd�jdjj}|j|j�|j|j�|j|j�dS)Nzx[::]r)	r�parse�bodyr'�slicer9�upper�lower�step)r%Zslcrrr�
test_slice�szAST_Tests.test_slicecCs tjd�jd}|j|j�dS)Nzfrom . import yr)rrPrQr9�module)r%Zimrrr�test_from_import�szAST_Tests.test_from_importcCs>tjd�}|j|jdtj�dj�|jd_t|dd�dS)Nzfrom __future__ import divisionrz __future__ z<test>r;)rrPZassertIsInstancerQ�
ImportFrom�striprWrJ)r%�modrrr�!test_non_interned_future_from_asts
z+AST_Tests.test_non_interned_future_from_astcCs||jttjtj��|jttjtj��|jttjtj��|jttjtj��|jttjtj��|jttj	tj��dS)N)
r#�
issubclassr�Forr"�Namer!r �
comprehensionZGt)r%rrr�test_base_classesszAST_Tests.test_base_classescCs^xXtjj�D]J\}}t|t�r|dkr|dj�r|�}t|tj�r|jt|j�t	�qWdS)Nr r)
rr,�itemsr�type�isupperr r+rr)r%r&�itemr1rrr�test_field_attr_existences
z#AST_Tests.test_field_attr_existencecCsTtj�}|j|jd
�|jt��|jWdQRXtjtdd��}|j|jd	�dS)N�argsr/�
kwonlyargs�kw_defaults�kwarg�defaults��r*)rgr/rhrirjrk)r�	argumentsr+rr-r.r/�range)r%r1rrr�test_argumentsszAST_Tests.test_argumentscCs tj�}d|_|j|jd�dS)Ni�)r�Numrr+)r%r1rrr�test_field_attr_writable!sz"AST_Tests.test_field_attr_writablecCstj�}|j|jd�|jt��|jWdQRXtjd�}|j|jd�|jt��|jWdQRX|jt��|jWdQRXtjdd�}|j|jd�tjddd�}|j|jd�|j|jd�|j|jd�|jt	tjdd�|jt	tjdddd�dS)	N�nr(r*)r	rrl)rs)rs)
rrqr+rr-r.rsr	r)r0)r%r1rrr�test_classattrs's$
zAST_Tests.test_classattrscCs(tjd�g}tj|�}|j|j|�dS)Nr()rrq�Moduler+rQ)r%rQr1rrr�test_moduleBs
zAST_Tests.test_modulec	Cs�tj�}|j|jd�d|_|j|jd�tjd�}tjd�}tj�}tj|||�}|j|j|�|j|j|�|j|j	|�tjddd�}|j|jd�|j|jd�|j|j	d�tjddddd	�}|j|jd�|j|jd�|j|j	d�|j|j
d�|jttjdd�|jttjdddd
�|jttjdddd	�|jttjdddd
dd	�tjddddd�}|j|jd�|j|jd�|j|j	d�|j|j
d�tjddddd
�}|j|jd�dS)N�left�op�right�rl�r*r)r	�)rwrxryr	r()�	foobarbaz)rwrxry)
r�BinOpr+rr}rq�Addrwrxryr	r-r0)r%r1Zn1Zn3Zaddoprrr�test_nodeclassesGs>

zAST_Tests.test_nodeclassescCstj�}|j|jf�dS)N)rZSubr+r)r%r1rrr�test_no_fieldswszAST_Tests.test_no_fieldsc	Cs�ddl}|g}yddl}|j|�Wntk
r8YnXdddg}xX|D]P}xJ|D]B}x<dd�tD�D]*}|j|j||��}|jt|�t|��qhWqTWqJWdS)Nrrlr*css|]}t|ddd�VqdS)r@r;iN)rJ)rrMrrr�	<genexpr>�sz*AST_Tests.test_pickling.<locals>.<genexpr>)	�pickle�cPickler�ImportErrorrB�loads�dumpsr+r)	r%r�Zmodsr�Z	protocolsr[ZprotocolrZast2rrr�
test_pickling|s


zAST_Tests.test_picklingcCsbtddd�}tjtjtjf|�f|�g�}|jt��}t|dd�WdQRX|jdt	|j
��dS)Nr*r{)r	r
z<test>r;zbut got <_ast.expr)�dictrru�Exprr!r-r0rJ�assertInr�	exception)r%�pos�m�cmrrr�test_invalid_sum�s
zAST_Tests.test_invalid_sumcCs`tjtjtjdtj���g�}tj|�|jt��}t|dd�WdQRX|j	dt
|j��dS)Nr(z<test>r;zidentifier must be of type str)rrur�r_�Load�fix_missing_locationsr-r0rJr�rr�)r%r�r�rrr�test_invalid_identitifer�s

z"AST_Tests.test_invalid_identitifercCsZtjtjtjd��g�}tj|�|jt��}t|dd�WdQRX|jdt	|j
��dS)Nr(z<test>r;zstring must be of type str)rrur��Strr�r-r0rJr�rr�)r%r�r�rrr�test_invalid_string�s

zAST_Tests.test_invalid_stringcCsVtjd�}d|jdjdj_|jt��}t|dd�WdQRX|jdt|j	��dS)Nzdef f():
 yield from g()rz<test>r;zfield value is required)
rrPrQr'r-�
ValueErrorrJr�rr�)r%Zempty_yield_fromr�rrr�test_empty_yield_from�s

zAST_Tests.test_empty_yield_fromcCs>ddl}dd�}tj|d|��|jttjd�WdQRXdS)NrcWsdS)Nr)rgrrr�
bad_normalize�sz0AST_Tests.test_issue31592.<locals>.bad_normalize�	normalizeuϕ)�unicodedatarZ	swap_attrr-r0rrP)r%r�r�rrr�test_issue31592�szAST_Tests.test_issue31592N)rr3r4r$r2r:rOrVrXr\rarfrprrrtrvr�r�r�r�r�r�r�r�cpython_onlyr�rrrrr�s*0rc@steZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
d�Z	dd�Z
dd�Zdd�Zdd�Z
dd�Zdd�ZdS)�ASTHelpers_TestcCs6tjd�}tdddtj�}|jtj|�tj|��dS)Nz
foo(1 + 1)z	<unknown>r;)rrPrJrKr+�dump)r%r6�brrr�
test_parse�s
zASTHelpers_Test.test_parsecCsTyddWnBtk
rN|jt��}tjd�WdQRX|j|jj�YnXdS)Nrlrz'\U')�	Exceptionr-�SyntaxErrorr�literal_evalZassertIsNotNoner��__context__)r%rrrr�test_parse_in_error�sz#ASTHelpers_Test.test_parse_in_errorcCsLtjd�}|jtj|�d�|jtj|dd�d�|jtj|dd�d�dS)	Nzspam(eggs, "and cheese")z�Module(body=[Expr(value=Call(func=Name(id='spam', ctx=Load()), args=[Name(id='eggs', ctx=Load()), Str(s='and cheese')], keywords=[]))])F)Zannotate_fieldszYModule([Expr(Call(Name('spam', Load()), [Name('eggs', Load()), Str('and cheese')], []))])T)�include_attributesaModule(body=[Expr(value=Call(func=Name(id='spam', ctx=Load(), lineno=1, col_offset=0), args=[Name(id='eggs', ctx=Load(), lineno=1, col_offset=5), Str(s='and cheese', lineno=1, col_offset=11)], keywords=[], lineno=1, col_offset=0), lineno=1, col_offset=0)]))rrPr+r�)r%�noderrr�	test_dump�s
zASTHelpers_Test.test_dumpcCsBtjddd�}tjtjd�|jj�|j_|jtj|dd�d�dS)Nz1 + 1r=)�moder*T)r�z�Expression(body=BinOp(left=Num(n=1, lineno=1, col_offset=0), op=Add(), right=Num(n=2, lineno=1, col_offset=4), lineno=1, col_offset=0)))rrP�
copy_locationrqrQryr+r�)r%�srcrrr�test_copy_location�sz"ASTHelpers_Test.test_copy_locationcCsftjd�}|jjtjtjtjdtj��tjd�gg���|j	|tj
|��|j	tj|dd�d�dS)Nz
write("spam")�spamZeggsT)r�a|Module(body=[Expr(value=Call(func=Name(id='write', ctx=Load(), lineno=1, col_offset=0), args=[Str(s='spam', lineno=1, col_offset=6)], keywords=[], lineno=1, col_offset=0), lineno=1, col_offset=0), Expr(value=Call(func=Name(id='spam', ctx=Load(), lineno=1, col_offset=0), args=[Str(s='eggs', lineno=1, col_offset=0)], keywords=[], lineno=1, col_offset=0), lineno=1, col_offset=0)]))rrPrQrr��Callr_r�r�r+r�r�)r%r�rrr�test_fix_missing_locations�s
z*ASTHelpers_Test.test_fix_missing_locationscCs|tjddd�}|jtj|dd�|�|jtj|dd�d�tjddd�}|jtj|jdd�|j�|jtj|dd�d�dS)	Nz1 + 1r=)r�r{)rsT)r�z�Expression(body=BinOp(left=Num(n=1, lineno=4, col_offset=0), op=Add(), right=Num(n=1, lineno=4, col_offset=4), lineno=4, col_offset=0)))rrPr+Zincrement_linenor�rQ)r%r�rrr�test_increment_lineno�sz%ASTHelpers_Test.test_increment_linenocCsHtjddd�}ttj|j��}|j|jd�jd�|j|ggd��dS)Nzfoo()r=)r��func�foo)�keywordsrg)rrPr�Ziter_fieldsrQr+�pop�id)r%r��drrr�test_iter_fields�sz ASTHelpers_Test.test_iter_fieldscCs�tjddd�}|jtttj|j���d�tj|j�}|jt|�jd�|jt|�j	d�|jt|�j	d�|jtj
t|��d�dS)	Nzspam(23, 42, eggs='leek')r=)r�r|r��r(z(keyword(arg='eggs', value=Str(s='leek')))rrPr+�lenrZiter_child_nodesrQ�nextr�rsr�)r%r��iteratorrrr�test_iter_child_nodessz%ASTHelpers_Test.test_iter_child_nodescCsHtjd�}|jtj|jd�d�tjd�}|jtj|jd�d�dS)Nz&def foo():
  """line one
  line two"""rzline one
line twoz#async def foo():
  """spam
  ham"""zspam
ham)rrPr+�
get_docstringrQ)r%r�rrr�test_get_docstrings


z"ASTHelpers_Test.test_get_docstringcCs�|jtjd�dddg�|jtjd�ddi�|jtjd�d�|jtjd�dddh�|jtjd�d
�|jttjd�|jtjd�d�|jtjd�d�|jtjd�d�dS)Nz	[1, 2, 3]rlr*r{z{"foo": 42}r�r(z(True, False, None)TFz	{1, 2, 3}zb"hi"shizfoo()z-6�z-6j+3y@z3.25g
@)TFNi����y@�)r+rr�r-r�)r%rrr�test_literal_evalsz!ASTHelpers_Test.test_literal_evalcCs:|jtjd�d�|jtjd�d�|jtjd�d�dS)	NZ2jy@z10 + 2j�
z1.5 - 2jg�?y$@@y�?�)r+rr�)r%rrr�test_literal_eval_issue4907#sz+ASTHelpers_Test.test_literal_eval_issue4907cCsbtjdtjdd�gdddd�g}tj|�}|jt��}t|dd�WdQRX|jdt|j	��dS)N�time�sleep)r&)rW�names�levelr	r
�testr;zinvalid integer value: None)
rrY�aliasrur-r�rJr�rr�)r%rQr[r�rrr�test_bad_integer(s
z ASTHelpers_Test.test_bad_integercCsTtjdtjdd�gdddd�g}tj|�}t|dd�}i}t||�|jd|�dS)Nr�r�)r&r)rWr�r�r	r
r�r;)rrYr�rurJr;r�)r%rQr[�code�nsrrr�test_level_as_none3s

z"ASTHelpers_Test.test_level_as_noneN)rr3r4r�r�r�r�r�r�r�r�r�r�r�r�r�rrrrr��s	r�c@s�eZdZd`ed�dd�Zdaed�dd�Zdbdd	�Zd
d�Zdd
�Zdd�Z	dd�Z
dd�Zdd�Zdd�Z
dd�Zdd�Zdd�Zdd�Zd d!�Zd"d#�Zd$d%�Zd&d'�Zd(d)�Zd*d+�Zd,d-�Zd.d/�Zd0d1�Zd2d3�Zd4d5�Zd6d7�Zd8d9�Zd:d;�Zd<d=�Z d>d?�Z!d@dA�Z"dBdC�Z#dDdE�Z$dFdG�Z%dHdI�Z&dJdK�Z'dLdM�Z(dNdO�Z)dPdQ�Z*dRdS�Z+dTdU�Z,dVdW�Z-dXdY�Z.dZd[�Z/d\d]�Z0d^d_�Z1dS)c�ASTValidatorTestsNr;)�exccCsVd|_|_tj|�|j|��}t|d|�WdQRX|dk	rR|j|t|j��dS)Nrz<test>)	r	r
rr�r-rJr�rr�)r%r[�msgr�r�r�rrrr[As
zASTValidatorTests.modcCs&tjtj|�g�}|j|||d�dS)N)r�)rrur�r[)r%r�r�r�r[rrrr!IszASTValidatorTests.exprcCstj|g�}|j||�dS)N)rrur[)r%r"r�r[rrrr"MszASTValidatorTests.stmtcCsTtjtjtjdtj���g�}|j|dd�tjtjdtj���}|j|dd�dS)Nr1zmust have Load contextr<r=)r�Interactiver�r_�Storer[�
Expression)r%r�rrrrvQszASTValidatorTests.test_modulecsd�fdd�	}tjdtjdtj���g}|||d�d�|||d�d�||tjd�gd�d	�||tjd
�gd�d�tjdtjdtj���g}|||tjdtj��gd
�d�tjdtjdtj���tjdtjdtj���g}|||dtjdtj��gd�d�dS)NcsL|dkrg}|dkrg}|dkr$g}|dkr0g}tj||||||�}�|�S)N)rrn)rgr/rhrjrkri)�facrrrnXsz5ASTValidatorTests._check_arguments.<locals>.argumentsr1)rgzmust have Load context)rhr{)rkz"more positional defaults than argsr|)riz3length of kwonlyargs is not the same as kw_defaults)rgrkr6r��y)rhri)NNNNNN)r�argr_r�rqr�)r%r�Zcheckrnrgr)r�r�_check_argumentsWs$z"ASTValidatorTests._check_argumentscCs�tjgdggdg�}tjd|ggd�}|j|d�tjd|tj�gtjdtj��gd�}|j|d�tjd|tj�ggtjdtj���}|j|d�dd�}|j||j�dS)Nr1zempty body on FunctionDefzmust have Load contextcSstjd|tj�ggd�S)Nr1)r�FunctionDef�Pass)rgrrrr��sz+ASTValidatorTests.test_funcdef.<locals>.fac)rrnr�r"r�r_r�r�)r%r6rr�rrr�test_funcdefvs zASTValidatorTests.test_funcdefcCs�ddd�}|j|tjdtj��gd�d�|j|tjdtjdtj���gd�d�|j|gd�d�|j|dgd�d	�|j|tjdtj��gd
�d�dS)NcSsH|dkrg}|dkrg}|dkr*tj�g}|dkr6g}tjd||||�S)NZmyclass)rr��ClassDef)�basesr�rQ�decorator_listrrr�cls�s

z,ASTValidatorTests.test_classdef.<locals>.clsr1)r�zmust have Load context)r�)rQzempty body on ClassDefzNone disallowed)r�)NNNN)r"rr_r��keyword)r%r�rrr�
test_classdef�s
"zASTValidatorTests.test_classdefcCsJ|jtjg�d�|jtjdg�d�|jtjtjdtj��g�d�dS)Nzempty targets on DeletezNone disallowedr1zmust have Del context)r"r�Deleter_r�)r%rrr�test_delete�szASTValidatorTests.test_deletecCs�|jtjgtjd��d�|jtjdgtjd��d�|jtjtjdtj��gtjd��d�|jtjtjdtj��gtjdtj���d�dS)Nr{zempty targets on AssignzNone disallowedr1zmust have Store contextr�zmust have Load context)r"r�Assignrqr_r�r�)r%rrr�test_assign�s"zASTValidatorTests.test_assigncCsptjtjdtj��tj�tjdtj���}|j|d�tjtjdtj��tj�tjdtj���}|j|d�dS)Nr1r�zmust have Store contextzmust have Load context)r�	AugAssignr_r�rr"r�)r%Zaugrrr�test_augassign�sz ASTValidatorTests.test_augassigncCs�tjdtj��}tjdtj��}tj�}|jtj||gg�d�|jtjtjdtj��||gg�d�|jtj|tjdtj��|gg�d�tjtjdtj���}|jtj|||gg�d�|jtj|||g|g�d�dS)Nr1r�zempty body on Forzmust have Store contextzmust have Load context)rr_r�r�r�r"r^r�)r%r1r��prrrr�test_for�s  zASTValidatorTests.test_forcCs~|jtjtjd�gg�d�|jtjtjdtj��tj�gg�d�|jtjtjd�tj�gtjtjdtj���g�d�dS)Nr{zempty body on Whiler1zmust have Load context)r"r�Whilerqr_r�r�r�)r%rrr�
test_while�s"zASTValidatorTests.test_whilecCs�|jtjtjd�gg�d�tjtjdtj��tj�gg�}|j|d�tjtjd�tjtjdtj���gg�}|j|d�tjtjd�tj�gtjtjdtj���g�}|j|d�dS)Nr{zempty body on Ifr1zmust have Load context)r"r�Ifrqr_r�r�r�)r%rMrrr�test_if�s (zASTValidatorTests.test_ifcCs�tj�}|jtjg|g�d�tjtjd�d�}|jtj|gg�d�tjtjdtj��d�}|jtj|g|g�d�tjtjd�tjdtj���}|jtj|g|g�d�dS)Nzempty items on Withr{zempty body on Withr1zmust have Load contextzmust have Store context)	rr�r"�With�withitemrqr_r�r�)r%r�rMrrr�	test_with�szASTValidatorTests.test_withcCsptjdtjd��}|j|d�tjtjdtj��d�}|j|d�tjtjd�tjdtj���}|j|d�dS)Nr{z!Raise with cause but no exceptionr1zmust have Load contextr|)r�Raiserqr"r_r�)r%�rrrr�
test_raise�szASTValidatorTests.test_raisecCsxtj�}tjggg|g�}|j|d�tjtjtjdtj���ggg|g�}|j|d�tj|gggg�}|j|d�tj|gg|g|g�}|j|d�tj|gtjddg�ggg�}|j|d�tjtjdtj��d|g�g}|jtj|g|gg�d�tjdd|g�g}tj|g|tjtjdtj���g|g�}|j|d�tj|g||gtjtjdtj���g�}|j|d�dS)Nzempty body on Tryr1zmust have Load contextz-Try has neither except handlers nor finalbodyz%Try has orelse but no except handlerszempty body on ExceptHandlerr�)rr��Tryr"r�r_r��
ExceptHandler)r%r�rrrrr�test_try�s$&((zASTValidatorTests.test_trycCsT|jtjtjdtj��d�d�tjtjdtj��tjdtj���}|j|d�dS)Nr1zmust have Load contextr�)r"r�Assertr_r�r�)r%Zassrtrrr�test_assert�s
zASTValidatorTests.test_assertcCs|jtjg�d�dS)Nzempty names on Import)r"r�Import)r%rrr�test_import�szASTValidatorTests.test_importcCs>tjdtjdd�gd�}|j|d�|jtjdgd�d�dS)Nr1r(zNegative ImportFrom levelrzempty names on ImportFromi���)rrYr�r")r%Zimprrr�test_importfrom�sz!ASTValidatorTests.test_importfromcCs|jtjg�d�dS)Nzempty names on Global)r"r�Global)r%rrr�test_globalszASTValidatorTests.test_globalcCs|jtjg�d�dS)Nzempty names on Nonlocal)r"rZNonlocal)r%rrr�
test_nonlocalszASTValidatorTests.test_nonlocalcCs&tjtjdtj���}|j|d�dS)Nr1zmust have Load context)rr�r_r�r")r%rrrr�	test_expr
szASTValidatorTests.test_exprcCs�tjtj�g�}|j|d�tjtj�tjd�g�}|j|d�tjtj�tjd�dg�}|j|d�tjtj�tjd�tjdtj��g�}|j|d�dS)Nzless than 2 valuesr{r|zNone disallowedr1zmust have Load context)r�BoolOp�Andr!rqr_r�)r%r�rrr�test_boolops&zASTValidatorTests.test_boolopcCs,tjtj�tjdtj���}|j|d�dS)Nr1zmust have Load context)r�UnaryOp�Notr_r�r!)r%�urrr�test_unaryopszASTValidatorTests.test_unaryopcCsNtjgdggdg�}|jtj|tjdtj���d�dd�}|j||j�dS)Nr1zmust have Load contextcSstj|tjdtj���S)Nr1)r�Lambdar_r�)rgrrrr� sz*ASTValidatorTests.test_lambda.<locals>.fac)rrnr!rr_r�r�)r%r6r�rrr�test_lambdas
zASTValidatorTests.test_lambdacCs\tjdtj��}tjdtj��}x6|||f|||f|||ffD]}|jtj|�d�q>WdS)Nr1r�zmust have Load context)rr_r�r�r!ZIfExp)r%�l�srgrrr�
test_ifexp$s"zASTValidatorTests.test_ifexpcCsRtjgtjdtj��g�}|j|d�tjtjdtj��gdg�}|j|d�dS)Nr1zsame number of keys as valueszNone disallowed)r�Dictr_r�r!)r%r�rrr�	test_dict*szASTValidatorTests.test_dictcCs<|jtjdg�d�tjtjdtj��g�}|j|d�dS)NzNone disallowedr1zmust have Load context)r!r�Setr_r�)r%rrrr�test_set0szASTValidatorTests.test_setcCs�|j|g�d�tjtjdtj��tjdtj��gd�}|j||g�d�tjtjdtj��tjdtj��gd�}|j||g�d�tjdtj��}tjdtj��}tj||dgd�}|j||g�d�tj||tjdtj��gd�}|j||g�d�dS)Nz comprehension with no generatorsr1rzmust have Store contextzmust have Load contextr�zNone disallowed)r!rr`r_r�r�)r%r��gr1r�rrr�_check_comprehension5sz&ASTValidatorTests._check_comprehensioncsbtjtjdtj��tjdtj��gd�}|j�tjdtj��|g�d��fdd�}|j|�dS)Nr1rzmust have Load contextcs�tjdtj��|�S)Nr1)rr_r�)Zgens)r�rr�wrapIsz,ASTValidatorTests._simple_comp.<locals>.wrap)rr`r_r�r�r!r)r%r�rrr)r�r�_simple_compDszASTValidatorTests._simple_compcCs|jtj�dS)N)rr�ListComp)r%rrr�
test_listcompMszASTValidatorTests.test_listcompcCs|jtj�dS)N)rr�SetComp)r%rrr�test_setcompPszASTValidatorTests.test_setcompcCs|jtj�dS)N)rr�GeneratorExp)r%rrr�test_generatorexpSsz#ASTValidatorTests.test_generatorexpcCs�tjtjdtj��tjdtj��gd�}tjtjdtj��tjdtj��|g�}|j|d�tjtjdtj��tjdtj��|g�}|j|d�dd�}|j|�dS)Nr�r�rr1zmust have Load contextcSs.tjdtj��}tjdtj��}tj|||�S)Nr1r�)rr_r��DictComp)�comps�krrrr�factory_sz0ASTValidatorTests.test_dictcomp.<locals>.factory)rr`r_r�r�rr!r)r%r�crrrr�
test_dictcompVszASTValidatorTests.test_dictcompcCs@|jtjtjdtj���d�|jtjtjdtj���d�dS)Nr1zmust have Load)r!rZYieldr_r�Z	YieldFrom)r%rrr�
test_yieldeszASTValidatorTests.test_yieldcCs�tjdtj��}tj|tj�gg�}|j|d�tj|tj�gtjd�tjd�g�}|j|d�tjtjd�tj�g|g�}|j|dtd�tj|tj�gtjd�g�}|j|dtd�dS)	Nr1zno comparatorsr|rzz,different number of comparators and operandsZblahznon-numeric)r�)rr_r��CompareZInr!rqr0)r%rw�comprrr�test_compareis$zASTValidatorTests.test_comparecCs�tjdtj��}tjdtj��g}tjdtjdtj���g}tjtjdtj��||�}|j|d�tj|dg|�}|j|d�tjdtjdtj���g}tj|||�}|j|d�dS)Nr1r��w�zzmust have Load contextzNone disallowed)rr_r�r�r�r�r!)r%r�rgr�ZcallZbad_keywordsrrr�	test_calltszASTValidatorTests.test_callcCshGdd�dt�}Gdd�dt�}Gdd�dt�}x2dd|�|�|�fD]}|jtj|�d	td
�qFWdS)Nc@seZdZdS)z*ASTValidatorTests.test_num.<locals>.subintN)rr3r4rrrr�subint�sr%c@seZdZdS)z,ASTValidatorTests.test_num.<locals>.subfloatN)rr3r4rrrr�subfloat�sr&c@seZdZdS)z.ASTValidatorTests.test_num.<locals>.subcomplexN)rr3r4rrrr�
subcomplex�sr'�0Zhelloznon-numeric)r�)r
�floatrr!rrqr0)r%r%r&r'�objrrr�test_num�s
zASTValidatorTests.test_numcCs.tjtjdtj��dtj��}|j|d�dS)Nr1r�zmust have Load context)r�	Attributer_r�r�r!)r%�attrrrr�test_attribute�sz ASTValidatorTests.test_attributecCs$tjtjdtj��tjtjd��tj��}|j|d�tjdtj��}tj|tjtjdtj���tj��}|j|d�tjdtj��}xH|ddfd|dfdd|ffD](}tj|�}|jtj||tj��d�q�Wtj	g�}|jtj||tj��d�tj	tj|�g�}|jtj||tj��d�dS)Nr1r{zmust have Load contextr�zempty dims on ExtSlice)
r�	Subscriptr_r�ZIndexrqr�r!�SliceZExtSlice)r%�subr1rrgZslrrr�test_subscript�s  

"


z ASTValidatorTests.test_subscriptcCsNtjtjtjdtj��tj��gtj��}tj|gtjd��}|j|d�dS)Nr1r|zmust have Store context)	r�List�Starredr_r�r�r�rqr")r%rw�assignrrr�test_starred�s 
zASTValidatorTests.test_starredcCs@|j|dgtj��d�|j|tjdtj��gtj��d�dS)NzNone disallowedr1zmust have Load context)r!rr�r_r�)r%r�rrr�	_sequence�szASTValidatorTests._sequencecCs|jtj�dS)N)r7rr3)r%rrr�	test_list�szASTValidatorTests.test_listcCs|jtj�dS)N)r7r�Tuple)r%rrr�
test_tuple�szASTValidatorTests.test_tuplecCs|jtjd�d�dS)Nr|z&singleton must be True, False, or None)r!r�NameConstant)r%rrr�test_nameconstant�sz#ASTValidatorTests.test_nameconstantcCs�tjjtj�}dd�tj|�D�}|jddg�xT|D]L}tjj||�}t|ddd��}|j	�}WdQRXtj
||�}t||d�q6WdS)	NcSsg|]}|jd�r|�qS)z.py)�endswith)r�fnrrrr�sz;ASTValidatorTests.test_stdlib_validates.<locals>.<listcomp>ztest/test_grammar.pyztest/test_unpack_ex.pyr�zutf-8)�encodingr;)�os�path�dirnamer�__file__�listdir�extend�join�open�readrPrJ)r%�stdlibZtestsrWr>�fp�sourcer[rrr�test_stdlib_validates�s
z'ASTValidatorTests.test_stdlib_validates)Nr;)N)N)2rr3r4r�r[r!r"rvr�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�rrrr	rr
rrrrrrrr!r$r+r.r2r6r7r8r:r<rLrrrrr�?s\
	



	
r�c@s^eZdZdZdd�Zdd�Zdd�Zdd	�Zd
d�Zdd
�Z	dd�Z
ejdd��Z
dd�ZdS)�
ConstantTestsz$Tests on the ast.Constant node type.cCs\tjd�}|jdj}tj|d�}tj||�||jd_t|dd�}i}t||�|dS)Nzx = 123r)r'z<string>r;r1)rrPrQr'�Constantr�rJr;)r%r'�treer��new_noder�r�rrr�compile_constant�s

zConstantTests.compile_constantcCs<|jt��}|jdddg�WdQRX|jt|j�d�dS)Nrlr*r{z%got an invalid type in Constant: list)r-r0rQr+rr�)r%r�rrr�test_validation�szConstantTests.test_validationcCsNxHdddtdt�fD]2}|j|d��|j|�}|j||�WdQRXqWdS)NFT�)�const)�Ellipsis�	frozensetrIrQZassertIs)r%rTr'rrr�test_singletons�s
zConstantTests.test_singletonscCs�d}tdh�}x$td�D]}|df}t|dh�}qWdddddtd	�td
�||f	}x:|D]2}|j|d��|j|�}|j||�WdQRXqXWdS)
Nrlr{r*�{g�^@y�^@�unicodesbytesrrV)r')rl)rVrorrIrQr+)r%Znested_tupleZnested_frozensetr��valuesr'rrrr�test_values�s


zConstantTests.test_valuescCsztjd�}|jdjd}tjdd�}tj||�||jdjd<|jt��}t|dd�WdQRX|j	t
|j�d�dS)Nzx = 1rrl)r'�stringr;z6expression which can't be assigned to in Store context)rrPrQZtargetsrNr�r-r�rJr+rr�)r%rO�target�
new_targetr�rrr�test_assign_to_constant�s
z%ConstantTests.test_assign_to_constantcCsFtjd�}|jtj|�d�tjdd�|jd_|jtj|�d�dS)Nz'docstring'
x = 1Z	docstringzconstant docstring)r'r)rrPr+r�rNrQr')r%rOrrrr��s
z ConstantTests.test_get_docstringcCs>t|dd�}g}x(tj|�D]}|jdkr|j|j�qW|S)Nz<string>r;Z
LOAD_CONST)rJ�disZget_instructions�opnamerZargval)r%rO�co�constsZinstrrrr�get_load_consts
zConstantTests.get_load_constcCs�dddddddddg	}djdd
�|D��}|d7}|jtdf�tj|�}|j|j|�|�xRt|j|�D]B\}}t	|tj
�s�ttj|���tj
|d�}tj||j�||_qjW|j|j|�|�dS)NTF�|g@y@rYsbytesrlr*r{�
cSsg|]}dj|��qS)zx={!r})�format)rrTrrrrsz1ConstantTests.test_load_const.<locals>.<listcomp>z
x = ...)r')rlr*r{)rFrErUrrPr+rdrHrQrr��AssertionErrorr�rNr�r')r%rcr�rOr5rTrPrrr�test_load_consts*

zConstantTests.test_load_constcCsltjd�}|jdj}tjdd�}tj||j�||_tjdd�}tj||j�||_|jtj	|�d�dS)Nz1 + 2rr�)r'��)
rrPrQr'rNr�rwryr+r�)r%rOZbinopZnew_leftZ	new_rightrrrr�(s
zConstantTests.test_literal_evalN)rr3r4�__doc__rQrRrWr[r_r�rdrr�rir�rrrrrM�s
rMcCs�tdkrdStjdd�dgkr�xdtdftdftdffD]J\}}t|d�x,|D]$}tj|d|�}td	t	|�f�qRWtd
�q8Wtd�t
�tj�dS)N�__main__rlz-gr;r<r=z_results = [r@z%r,�]zmain())
r�sys�argvrBrDrF�printrrPr�
SystemExit�unittest�main)Z
statementsrAZ	statementrOrrrrt7s
rtrur�rlr;r�rrnr��	r�r�r6r�rq��rmrg��kwargs�r�r�r��r�#�)�+r(�1��r3�r�r
rk�:r��Cr_�object�Return�r�r|�Delr�r�r�rrzr^r�r�r{r�r�r1r��
r#��q�r�r�r�r�r\r�r*r�r�r�r�rorYr��Break�Continuer9rr`rrj�Aa�Bb�Ccrr"r��r�� rrr�rZAsyncFunctionDefZAwait�	somethingZAsyncForrM�Z	AsyncWithrr4r�r~r�r�r�rrrr�Ltr�r,r/r0�rlr�rlr�r;r�N)r�r�r�)rlr�rlru)r�r�)rlr�rlr�)r�r�r6N�rlr�)r�r�)rlr�rlr�)r�r�r6N�rlrv)rqr�r�rlrw)r�r�)rlr�rlrm)r�r�rgN�rlrx)r�r�)rlr�rlrv)r�r�ryN�rlrz)r�r�)rlr�rlr�)r�r�r6N�rlru)r�r�r�N�rlrx)r�r�rN�rlr{)r�r�r�N�rlr|)r�r�rN�rlr})r�r�rgN�rlr~)r�r�rN�rlr)rqr�r(�rlr�)r�r�ryN�rlr�)rqr�rl�rlr�)r;r�N)rlr�)r�)rlrk�rlr�)r�r�)rlr�rlrv)r�r�)rlr�rlrv�r�)r_r�r�r��rlrz)r�r�)rlr�rlrv�rlr��rqr�rl)r�r�r�)rlr�rlr|�r�)r_r�rr�)rlr�rlr�r�)r_r�rr��rlr|)rqr�rl�rlr�rlr�r��r_r�rr��r�rlrz�rqr�rl)r�r�r�r�r�)rlr�rlr|�r�)r_r�rr��rlru�r�)r_r�rr��rlr�)r�r�)rlr�rlr��r�)r_r�rr��rlrv)r�r�)rlr�rlr{�r�)r_r�rr��rlrz)r�r�)rlr�rlrz�r��r_r�r1r��rlr��r��r_r�r�r�)r�r�r��rlr�)r�r�)rlr�rlrz�r��r_r�r1r��rlr��r��r_r�r�r�)r�r�r��rlr��r��r_r�r#r��rlr��r��r_r�r�r�)r�r�r��rlr�)r�r�)rlr)rlr��rlr��r�)r_r�r�r��rlr�)r�r�r\)rlr�r*r*)r�r�)r{r�r{rm�r�)r_r�r�r��r|r*)r�r�)rlr�r*r*)r�r��r|r*)r�r��rlr�rlrm�r��r_r�rr�)r�r�r�N)rlr)r�roN)rlr)r�rN)rlr�rlr�rlr�rqr�rl)r�r�r��rlr)r�r�)rlr�rlr|�r�)r_r�rr��rlru�r�)r_r�rr��rlr�)r�r�)rlr�rlr|�r�)r_r�rr��rlru�r�)r_r�rr��rlr�)r�r�)rlr)rlr|�rlr|�r�)r_r�r6r��rlr��r�)r_rr�r)r��rlr��r�)r_rrr�rlrx)r�r)rlr)rlrl)rlr*�rlr*�r�)r_rr6r�rlr|�r�)r_rr�r)r�)rlr��rlr��r�)r_r	r6r
�rlr��r�)r_rr�r)r��rlr��r�)r_r
rr)rlr)rlrl)rlr*�rlr*�r�)r_rr6r�rlr|�r�)r_rr�r)r�)rlr��rlr��r�)r_rr6r�rlr��r�)r_rr�r)r��rlr��r�)r_rrr)rlr)rlrl)rlr*�rlr*�r�)r_rr6r�rlr|�r�)r_rr�r)r�)rlrw�rlrw�r�)r_rr6r�rlrx�r�)r_rr�r )r��rlrj�r�)r_r!rr")rlr)r*r|)r{r|�r{r|�r�)r_r#r�r$�rzrm�r�)r_r%r�r&)r�)rvr|�rvr|�r�)r_r'r�r(�r�r|�r�)r_r)r�r*)r��r�r��r�)r_r+r�r,)rlr)rlr�rlrl�r�)r_r-r6r.�rlrz�r�)r_r/r�r0�rlr��r�)r_r1r"r2�rlr��r�)r_r3r1r4�rlr{�r�)r_r5r�r6�rlr��r�)r_r7r�r8�rlr��r�)r_r9rr:)rlr)rlr�rlrl�r�)r_r;r6r<�rlrz�r�)r_r=r�r>)rlr��rlr��r�)r_r?rr@�rlr��r�)r_rAr"rB)r��rlr��r�)r_rCr1rD)rlr)rlr�rlrl�r�)r_rEr�rF�rlrm�r�)r_rGrrH�rlrw�r�)r_rIr1rJ�rlrz�r�)r_rKrrL)rlr)rlr�rlrl�r�)r_rMr�rN)rlrm�rlrm�r�)r_rOrrP�rlru�r�)r_rQr�rR)r��rlrx�r�)r_rSr1rT)rlr�)r*rl)r*rl)r*rm�r*rm�r�)r_rUr�rV)rlr�)r*rm�r*r��r�)r_rWrrX�r*r��r�)r_rYrMrZ�r*r��r*r��rqr\rl)r�r[r]�r{rm�r{rm�rqr_r*)r�r^r`)rlr�)r*rm�r*rw�r��r_rar6rb�r*rz�r��r_rdr�re)r�rcrf�r*rj�r*rj�rqrhrl)r�rgri)rlr)rlr�rlr�)rqrjr*)rlr{�rlr|)rqrkrl�rlr�)rqrlr*�rlrw)rqrmr{)rlr)rlr)rlrl)rlr*�rlr{)rqrnrl�rlr�)rqror*)r��rlr�)rqrpr{)rlr�)r*rl)r*r*�r*r*�r�)r_rqrMrr�r*rx�r�)r_rsr�rt�r*r��r�)r_rurrv�rlr�rlr�rlr�rqryrl�r�rlr*�rqr|r*�r~rxrzr{r})r�rwr~�rlr�r;rN)r�r�)rlr)r��rlr�r�)r_r�r6r��rlr��r�)r_r�r�r��rlr�rlr�r��r_r�r6r��r�rlr|�r��r_r�r�r��r~r�r�r�r�)r�r��rlr�r�rlr|�r��r_r�rr��rr�r�r�)r�r�)rlr�rlrm)r;r�N)rlr�rlr*)rqr�rl�rlr|)rqr�r*)rlr)rlr�rlrl)r;r�N)rlr�r*r�)rqr�rl�r|r�)rqr�r*)rlrl�rlrl�r�)r_r�r6r��rlrm�r�)r_r�r�r��rlrw�r�)r_r�rr��rlrz�r�)r_r�r�r�)rlrl�rlrl�r�)r_r�r6r��rlrm�r�)r_r�r�r��rlrw�r�)r_r�rr��rlrz�r�)r_r�r�r�)rlr�rlr)rqr�rl)r�)r��rlr|)rqr�r*�rlrv)rqr�r{)rlr�rlr�r�)r_r�rr��rlr*)rqr�rl�rlr|)rqr�r*�rlr��rlr��r��r_r�r�r��r�)r4r�r�r��rlrv�rqr�r{)r�rr��rlr��r��r_r�rr�)r�Nr��rlr�rqr�r�)r�r��rlr�r�r�r\)r�r��rlr�rlr�r��r_r�r6r��r��r,r�r�r�r�)r�r��rlr�rlr�r��r_r�r6r��rlr*�r��r_r�r�r��rlr|�r��r_r�rr��r0r�r�N�r��r/r�r�r�r�)r�r��rlr�r��r_r�rr�)r�r�)rlr�rlrl)rqr�rl�rlr{)rqr�r*�rlrz)rqr�r{)r�)rlr)r�)rlr�rlr)rqr�rl�rlr*)rqr�r*�rlr|)rqr�r{)r�)rlrl�rlrl)rqr�rl�rlr{)rqr�r*�rlrz)rqr�r{)r�)rlr)r�)rlr�rlr�rlr�rlr�rlr�r��r_r�r6r��r��r,r�r�r�r��r��r,r�r�rr��r�)r,r�r�r�r��rlrv�rlrv�rlrv�r��r_r�r6r��r��r,r�r�r�r��rlrw�rqr�rl�rlrx�rqr�r*�r0r�r�N�r�)r/r�r�r�r�)rr`r@rorsr7r�rrrBrDrFZTestCaserr�r�rMrtrCrErGrrrr�<module>s8s
w&(*&&X *
$.


0PPPPDB0>FB:8:P &&$(

Youez - 2016 - github.com/yon3zu
LinuXploit