�
��+b�) � � � d dl ZddlmZ ddlmZ dZdZdZdZ dd ej ej d
ej d ddfd
�Z
ddej d
ej d ddfd�Z G d� d� Z G d� de� Z G d� de� Zy)� N� )�nodes)�NodeVisitor�param�resolve�alias� undefinedr �parent_symbols�Symbols�returnc �d � t |�� }t |� }| D ] }|j |� � |S �N)�parent)r �FrameSymbolVisitor�visit)r r
�sym�visitor�nodes �3/usr/lib/python3/dist-packages/jinja2/idtracking.py�find_symbolsr s8 � � ��
(�C� ��%�G�� ���
�
�d����J� r c �@ � t |�� }|j | � |S r )r �analyze_node)r r
r s r �symbols_for_noder s! � � ��
(�C����T���Jr c �( � e Zd Z ddej d dej e ddfd�Zdej dej ddfd�Z
dd ed
ej ej eej e f defd�Z
dedej ej fd
�Zd edej e fd�Zd edefd�Zdd�Zd eddfd�Zd edefd�Zd eddfd�Zdej* d ddfd�Zdej. eef fd�Zdej2 e fd�Zy)r Nr �levelr c � � |�|�d}n|j dz }|| _ || _ i | _ i | _ t � | _ y )Nr r )r r �refs�loads�set�stores)�selfr r s r �__init__zSymbols.__init__ sF � � �=��~������q�(����
����&(�� �)+��
�"%�%��r r �kwargsc �@ � t | � } |j |fi |�� y �N)�RootVisitorr )r" |