CasperSecurity

Current Path : /lib/python3/dist-packages/jinja2/__pycache__/
Upload File :
Current File : //lib/python3/dist-packages/jinja2/__pycache__/idtracking.cpython-310.pyc

o

^�a�)�@s�ddlZddlmZddlmZdZdZdZdZ		dd	ej
ejd
ejdddfd
d�Z
	ddejd
ejdddfdd�ZGdd�d�ZGdd�de�ZGdd�de�ZdS)�N�)�nodes)�NodeVisitor�param�resolve�alias�	undefinedr�parent_symbols�Symbols�returncCs*t|d�}t|�}|D]}|�|�q|S�N)�parent)r
�FrameSymbolVisitor�visit)rr	�sym�visitor�node�r�3/usr/lib/python3/dist-packages/jinja2/idtracking.py�find_symbolss

rrcCst|d�}|�|�|Sr)r
�analyze_node)rr	rrrr�symbols_for_nodes

rc	@sDeZdZ	d%dejddejeddfdd�Zdejdej	ddfd	d
�Z
	d&dedejejeejefdefd
d�Z
dedejej	fdd�Zdedejefdd�Zdedefdd�Zd'dd�Zdeddfdd�Zdedefdd�Zdeddfdd�Zdejdddfdd �Zdejeeffd!d"�Zdejefd#d$�ZdS)(r
Nr
�levelrcCsD|dur|durd}n|jd}||_||_i|_i|_t�|_dS)Nrr)rr
�refs�loads�set�stores)�selfr
rrrr�__init__s
zSymbols.__init__r�kwargscKst|�}|j|fi|��dS�N)�RootVisitorr)rrrrrrrr.szSymbols.analyze_node�name�loadcCs2d|j�d|��}||j|<|dur||j|<|S)N�l_�_)rrr)rr"r#�identrrr�_define_ref2s


zSymbols._define_ref�targetcC�.||jvr
|j|S|jdur|j�|�SdSr )rr
�	find_load)rr(rrrr*;�



zSymbols.find_loadcCr)r )rr
�find_ref�rr"rrrr,Dr+zSymbols.find_refcCs&|�|�}|durtd|�d���|S)NzFTried to resolve a name to a reference that was unknown to the frame (�))r,�AssertionError)rr"�rvrrr�refMs
��zSymbols.refcCsJt�tt�|j��}|j�|j�|j�	�|_|j
�	�|_
|j�	�|_|Sr )�t�castr
�object�__new__�	__class__�__dict__�updater�copyrr)rr0rrrr9VszSymbols.copycCsd|j�|�||jvr0|jdur%|j�|�}|dur%|j|t|fd�dS|j|tdfd�dSdS�N)r#)r�addrr
r,r'�VAR_LOAD_ALIAS�VAR_LOAD_UNDEFINED)rr"�	outer_refrrr�store^s

�z
Symbols.storecCs|j�|�|j|tdfd�Sr:)rr;r'�VAR_LOAD_PARAMETERr-rrr�declare_parameterpszSymbols.declare_parametercCs(|�|�dur|j|t|fd�dSdSr:)r,r'�VAR_LOAD_RESOLVEr-rrrr#ts�zSymbols.load�branch_symbolsc	Cs�i}|D]}|jD]}||jvrq	|�|d�d||<q	q|D]}|j�|j�|j�|j�|j�|j�q|��D]6\}}|t|�krFq;|�|�}|dusSJd��|jdurj|j�|�}|durjt	|f|j|<q;t
|f|j|<q;dS)Nrrzshould not happen)r�getrr8r�items�lenr,r
r<rB)	rrCr�branchr(rr"�branch_count�outer_targetrrr�
branch_updatexs.

�

�zSymbols.branch_updatecCsHi}|}|dur"t|j�D]
}||vr|�|�||<q
|j}|dus|Sr )�sortedrr,r
)rr0rr"rrr�dump_stores�s��zSymbols.dump_storescCsNt�}|}|dur%|j��D]\}\}}|tkr|�|�q|j}|dus	|Sr )rrrEr@r;r
)rr0rr(�instrr%rrr�dump_param_targets�s
��zSymbols.dump_param_targets)NNr )rr
)�__name__�
__module__�__qualname__r2�Optional�intrr�Node�Anyr�str�Tupler'r*r,r1r9r?rAr#�SequencerJ�DictrL�SetrNrrrrr
s8���
����
�			
	
c	@s�eZdZddd�Zdejdejddfd	d
�ZeZ	eZ
eZeZeZ
eZeZdejdejddfdd�Zdejdejddfd
d�Zdejdejddfdd�Z	ddejdedejddfdd�Zdejdejddfdd�Zdejdejdejddfdd�ZdS)r!�symbolsr
rNcCst|�|_dSr )r�sym_visitor�rr[rrrr�szRootVisitor.__init__rrcKs|��D]}|j�|�qdSr ��iter_child_nodesr\r�rrr�childrrr�
_simple_visit�s�zRootVisitor._simple_visitcK�|jD]}|j�|�qdSr ��bodyr\rr`rrr�visit_AssignBlock��
�zRootVisitor.visit_AssignBlockcKs"|jdd�D]}|j�|�qdS)N)�call)�excluder^r`rrr�visit_CallBlock�s�zRootVisitor.visit_CallBlockcKrcr rdr`rrr�visit_OverlayScope�rgzRootVisitor.visit_OverlayScopere�
for_branchcKs�|dkr|jj|jdd�|j}n'|dkr|j}n|dkr4|jj|jdd�|jdur2|j�|j�dStd��|rE|D]
}|j�|�q<dSdS)NreT)�store_as_param�else�testzUnknown for branch)r\rr(re�else_ro�RuntimeError)rrrlrrG�itemrrr�	visit_For�s 
�zRootVisitor.visit_ForcKs4|jD]}|j�|�q|jD]}|j�|�qdSr )�targetsr\rre)rrrr(rarrr�
visit_With�s


�zRootVisitor.visit_With�argscOstdt|�j����)NzCannot find symbols for )�NotImplementedError�typerO)rrrvrrrr�
generic_visit�szRootVisitor.generic_visit�r[r
rN)re)rOrPrQrrrTr2rUrb�visit_Template�visit_Block�visit_Macro�visit_FilterBlock�visit_Scope�visit_If�visit_ScopedEvalContextModifier�AssignBlockrf�	CallBlockrj�OverlayScoperk�ForrVrs�Withruryrrrrr!�s2
����
�$r!c	@s�eZdZdZd*dd�Z	d+d	ejd
edej	ddfdd
�Z
d	ejdej	ddfdd�Zd	ej
dej	ddfdd�Zd	ejdej	ddfdd�Zd	ejdej	ddfdd�Zd	ejdej	ddfdd�Zd	ejdej	ddfdd�Zd	ejdej	ddfdd�Zd	ejdej	ddfdd�Zd	ejdej	ddfdd�Zd	ejdej	ddfd d!�Zd	ejdej	ddfd"d#�Z d	ej!dej	ddfd$d%�Z"d	ej#dej	ddfd&d'�Z$d	ej%dej	ddfd(d)�Z&dS),rzA visitor for `Frame.inspect`.r[r
rNcCs
||_dSr )r[r]rrrr�s
zFrameSymbolVisitor.__init__FrrmrcKs\|s|jdkr|j�|j�dS|jdkr|j�|j�dS|jdkr,|j�|j�dSdS)z2All assignments to names go through this function.rr?r#N)�ctxr[rAr"r?r#)rrrmrrrr�
visit_Name�s

�zFrameSymbolVisitor.visit_NamecK�|j�|j�dSr )r[r#r"�rrrrrr�visit_NSRef��zFrameSymbolVisitor.visit_NSRefcst�j|jfi����j�dtjtjddf���fdd�}||j�}||j�}||j	p-d�}�j�
|||g�dS)Nrrr
cs4����_}|D]}�j|fi���q	��_|Sr )r9r[r)rr0�subnode�r�original_symbolsrrr�inner_visits
z0FrameSymbolVisitor.visit_If.<locals>.inner_visitr)rror[r2�IterablerrTre�elif_rprJ)rrrr��body_symbols�elif_symbols�else_symbolsrr�rr��s"
	
zFrameSymbolVisitor.visit_IfcKr�r )r[r?r"r�rrrr}r�zFrameSymbolVisitor.visit_MacrocKs$|j|fi|��|j�|j�dSr )ryr[r?r(r�rrr�visit_ImportszFrameSymbolVisitor.visit_ImportcKsJ|j|fi|��|jD]}t|t�r|j�|d�q|j�|�qdS)Nr)ry�names�
isinstance�tupler[r?)rrrr"rrr�visit_FromImports

�z#FrameSymbolVisitor.visit_FromImportcKs,|j|jfi|��|j|jfi|��dS)z'Visit assignments in the correct order.N)rrr(r�rrr�visit_AssignszFrameSymbolVisitor.visit_AssigncK�|j|jfi|��dS)zqVisiting stops at for blocks.  However the block sequence
        is visited as part of the outer scope.
        N)r�iterr�rrrrs#szFrameSymbolVisitor.visit_ForcK�|j|jfi|��dSr )rrhr�rrrrj)�z"FrameSymbolVisitor.visit_CallBlockcKr�r )r�filterr�rrrr~,r�z$FrameSymbolVisitor.visit_FilterBlockcKs|jD]}|�|�qdSr )�valuesr)rrrr(rrrru/s
�zFrameSymbolVisitor.visit_WithcKr�)zStop visiting at block assigns.N)rr(r�rrrrf3sz$FrameSymbolVisitor.visit_AssignBlockcK�dS)zStop visiting at scopes.Nrr�rrrr7�zFrameSymbolVisitor.visit_ScopecKr�)zStop visiting at blocks.Nrr�rrrr|:r�zFrameSymbolVisitor.visit_BlockcKr�)z!Do not visit into overlay scopes.Nrr�rrrrk=r�z%FrameSymbolVisitor.visit_OverlayScoperz)F)'rOrPrQ�__doc__rr�Name�boolr2rUr��NSRefr��Ifr��Macror}�Importr��
FromImportr��Assignr�r�rsr�rj�FilterBlockr~r�rur�rf�Scoper�Blockr|r�rkrrrrr�s6
����
�	rr )�typingr2�rrrr@rBr<r=r�rTrRrrr
r!rrrrr�<module>s6�
��
����
�:
Hacker Blog, Shell İndir, Sql İnjection, XSS Attacks, LFI Attacks, Social Hacking, Exploit Bot, Proxy Tools, Web Shell, PHP Shell, Alfa Shell İndir, Hacking Training Set, DDoS Script, Denial Of Service, Botnet, RFI Attacks, Encryption
Telegram @BIBIL_0DAY