
    }Yh              	       ^   U d dl mZ d dlmZmZmZmZ d dlmZ d dl	Z
d dlmZmZmZ eeegef         Zeeegef         Zi Zeee         ef         ed<   i Zeee         ee         f         ed<    ed          Z ed	          Z ed
          Z	 ddee         dedee         ddfdZdee         ddfdZdededee         fdZdeeef         dedee         fdZdee         dedee         fdZde edf         dedee         fdZ!dededee         fdZ"deeef         dedefdZ#dee         dedefdZ$de edf         dedefdZ%dededefdZ& eeee#            eeee$            ee e!e%           e
j'        j(        D ]Z) ee)e!e%            eee"e&           dS )    )
namedtuple)AnyCallableOptionalTypeVar)
NamedTupleN)PyTreetree_flattenTreeSpecSUPPORTED_NODESSUPPORTED_NODES_EXACT_MATCH_T_K_Vclsflatten_fn_specflatten_fn_exact_match_specreturnc                 .    |t           | <   |t          | <   d S Nr   r   )r   r   r   s      b/var/www/tools.fuzzalab.pt/emblema-extractor/venv/lib/python3.11/site-packages/torch/fx/_pytree.pyregister_pytree_flatten_specr      s    
 +OC'B$$$    c                 &    t           | = t          | = d S r   r   )r   s    r   _deregister_pytree_flatten_specr      s     	#C(((r   pytreespecc           	      V   |                                 r| gS |j        t          v rRt          |j                 } || |          }g }t          ||j                  D ]\  }}t          ||          }||z  }|S t          |           \  }}	||	k    rt          d|	 d|  d| d          |S )Nz
Real spec z of object z! is different from expected spec z_. Please file an issue at https://github.com/pytorch/pytorch/issues/new?template=bug-report.yml)is_leaftyper   zipchildren_specstree_flatten_specr
   RuntimeError)
r   r   r   child_pytreesresultchild
child_specflatflat_result	real_specs
             r   r$   r$   $   s     ||~~ x yO##)$)4'55!$]D4G!H!H 	 	E:$UJ77DdNFF)&11Kym m mv m mX\ m m m
 
 	
 r   dc                 *      fd|j         D             S )Nc                      g | ]
}|         S  r0   ).0kr-   s     r   
<listcomp>z&_dict_flatten_spec.<locals>.<listcomp>A   s    '''QAaD'''r   )contextr-   r   s   ` r   _dict_flatten_specr6   @   s    ''''$,''''r   c                 D      fdt          |j                  D             S )Nc                      g | ]
}|         S r0   r0   r1   ir-   s     r   r3   z&_list_flatten_spec.<locals>.<listcomp>E       333QAaD333r   rangenum_childrenr5   s   ` r   _list_flatten_specr?   D   (    3333% 1223333r   .c                 D      fdt          |j                  D             S )Nc                      g | ]
}|         S r0   r0   r9   s     r   r3   z'_tuple_flatten_spec.<locals>.<listcomp>I   r;   r   r<   r5   s   ` r   _tuple_flatten_specrC   H   r@   r   c                 D      fdt          |j                  D             S )Nc                      g | ]
}|         S r0   r0   r9   s     r   r3   z,_namedtuple_flatten_spec.<locals>.<listcomp>M   r;   r   r<   r5   s   ` r   _namedtuple_flatten_specrF   L   r@   r   c                 2    t          |           |j        k    S r   lenr>   r5   s     r   _dict_flatten_spec_exact_matchrJ   P       q66T&&&r   c                 2    t          |           |j        k    S r   rH   r5   s     r   _list_flatten_spec_exact_matchrM   T   rK   r   c                 2    t          |           |j        k    S r   rH   r5   s     r   _tuple_flatten_spec_exact_matchrO   X   rK   r   c                 2    t          |           |j        k    S r   rH   r5   s     r   $_namedtuple_flatten_spec_exact_matchrQ   \   rK   r   r   )*collectionsr   typingr   r   r   r   typing_extensionsr   torch.return_typestorchtorch.utils._pytreer	   r
   r   listFlattenFuncSpecboolFlattenFuncExactMatchSpecr   dictr!   __annotations__r   r   r   r   r   r   r$   r6   r?   tuplerC   rF   rJ   rM   rO   rQ   return_typesall_return_typesreturn_typer0   r   r   <module>rb      s   " " " " " " " 3 3 3 3 3 3 3 3 3 3 3 3 ( ( ( ( ( (     > > > > > > > > > > FH-t34$fh%7%=> 46d3i01 6 6 6TV T$s)X6O-P"PQ V V VWT]]WT]]WT]] HLC C	cC$C "**C!DC 
	C C C C)	c)	) ) ) )
 
#Y   8($r2v, (h (48 ( ( ( (4$r( 4( 4tBx 4 4 4 445S> 4 4d2h 4 4 4 44
 4( 4tCy 4 4 4 4'd2r6l '( 't ' ' ' ''d2h 'h '4 ' ' ' ''uRW~ 'X '$ ' ' ' ''J 'h '4 ' ' ' '  T#57U V V V  T#57U V V V  	#  
 %6  K  '   
  (    r   