Ë
    ùÿæiA±  ã                   óÐ  — d dl Z d dlZd dlZd dlZd dlZd dlZd dlmZ d dlm	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mZmZmZmZmZmZmZmZmZm Z m!Z!m"Z"m#Z#m$Z$m%Z%m&Z&m'Z'm(Z(m)Z)m*Z*m+Z+m,Z,m-Z-m.Z.m/Z/m0Z0m1Z1m2Z2m3Z3m4Z4m5Z5m6Z6m7Z7m8Z8m9Z9 d dl:m;Z;m<Z<m=Z=m>Z> d dl?m@Z@mAZAmBZBmCZD d dlEmFZF d d	lGmHZHmIZI d
ZJdhZK eLejš                  ejœ                  z   ejž                  z   «      ZPd„ ZQe j¤                  de jB                  de j4                  de j*                  de jp                  de jT                  de j                  de j¦                  de j¨                  de jª                  de j(                  de j.                  diZVe j¤                  de jB                  de j4                  de j*                  de jp                  de jT                  de j                  de j¦                  de j¨                  d e jª                  d!e j(                  d"e j.                  d#iZWeVj±                  e j²                  d$e j´                  d%e j¶                  d&e j¸                  d'e jº                  d(i«       eWj±                  e j²                  d)e j´                  d*e j¶                  d+e j¸                  d,e jº                  d-i«       eVj±                  e j¼                  d.i«        G d/„ d0e_«      Z` G d1„ d2e`«      Za G d3„ d4ea«      Zb G d5„ d6e`«      Zcd7„ Zdd8„ Zed9„ Zfd:„ Zgd;„ ZhdPd<„Zid=ejfd>„Zk G d?„ d@«      ZldA„ ZmdQdB„ZndCZodRdD„ZpdRdE„ZqdF„ ZrdG„ ZsdH„ Zt G dI„ dJel«      Zu G dK„ dLel«      Zv G dM„ dNel«      Zw ew«       Zx ev«       Zy eu«       ZzdSdO„Z{y)Té    N)Ú
namedtuple)Údedent)Ú_jit_internal),ÚApplyÚAssertÚAssignÚ	AttributeÚ	AugAssignÚBinOpÚBreakÚClassDefÚConstÚContinueÚDeclÚDefÚDeleteÚDictCompÚDictLiteralÚDotsÚEmptyTypeAnnotationÚExprStmtÚFalseLiteralÚForÚIdentÚIfÚListCompÚListLiteralÚNoneLiteralÚParamÚPassÚPropertyÚRaiseÚReturnÚSelectÚ	SliceExprÚStarredÚStmtÚStringLiteralÚ	SubscriptÚ	TernaryIfÚTrueLiteralÚTupleLiteralÚUnaryOpÚVarÚWhileÚWithÚWithItem)Ú_is_drop_fnÚFunctionModifiersÚis_static_fnÚshould_drop)Úget_source_lines_and_fileÚmake_source_contextÚ	parse_defÚ	ParsedDef)ÚDATACLASS_MAGIC_METHODS)Úget_qualified_nameÚmonkeytype_traceÚ__jitÚprintc                 ó@   — | j                  t        «      xs | t        v S ©N)Ú
startswithÚ_reserved_prefixÚ_reserved_names)Únames    úg/Volumes/fast/ai/experiments/voice-extract-mac/.venv/lib/python3.12/site-packages/torch/jit/frontend.pyÚis_reserved_namerF   T   s   € Ø�?‰?Ô+Ó,ÒG°¼Ð0GÐGó    zfunction definitionsz	for loopszdel statementszclass definitionszwith statementszraise statementsÚ
assertionszimport statementszglobal variableszbreak statementszcontinue statementsÚdefÚforÚdelÚclassÚwithÚraiseÚassertÚimportÚfromÚglobalÚbreakÚcontinuezasync function definitionszasync for loopszasync with statementsz
try blocksznonlocal variablesz	async defz	async forz
async withÚtryÚnonlocalzannotated assignmentsc                   ó    — e Zd Zdd„Zdefd„Zy)ÚFrontendErrorÚreturnNc                 ó|   — || _         || _        t        j                  j	                  | j                   «      | _        y r@   )Úsource_rangeÚmsgÚtorchÚ_CÚErrorReportÚerror_report)Úselfr[   r\   s      rE   Ú__init__zFrontendError.__init__–   s0   € Ø(ˆÔØˆŒô "ŸH™H×0Ñ0°×1BÑ1BÓCˆÕrG   c                 ól   — | j                   | j                  j                  «       j                  «       z   S r@   )r\   r`   ÚwhatÚlstrip)ra   s    rE   Ú__str__zFrontendError.__str__ž   s)   € Ø�x‰x˜$×+Ñ+×0Ñ0Ó2×9Ñ9Ó;Ñ;Ð;rG   ©rY   N)Ú__name__Ú
__module__Ú__qualname__rb   Ústrrf   © rG   rE   rX   rX   •   s   „ óDð<˜ô <rG   rX   c                   ó   — e Zd Zy)ÚNotSupportedErrorN©rh   ri   rj   rl   rG   rE   rn   rn   ¢   ó   „ ØrG   rn   c                   ó"   ‡ — e Zd Zddˆ fd„Zˆ xZS )ÚUnsupportedNodeErrorc                 ó@  •— t        |«      }t        t        j                  |d«      «      }|j	                  |j
                  |j                  |j                  |z   «      }t        j                  ||j                  «      }|› d|r|dz   nd› d�}t        ‰	| �)  ||«       y )NÚ Ú zaren't supported)ÚtypeÚlenÚnode_start_tokensÚgetÚ
make_rangeÚlinenoÚ
col_offsetÚpretty_node_namesrh   Úsuperrb   )
ra   ÚctxÚoffending_nodeÚreasonÚ	node_typeÚ	range_lenr[   Úfeature_namer\   Ú	__class__s
            €rE   rb   zUnsupportedNodeError.__init__§   s˜   ø€ ä˜Ó(ˆ	ÜÔ)×-Ñ-¨i¸Ó=Ó>ˆ	Ø—~‘~Ø×!Ñ!Ø×%Ñ%Ø×%Ñ%¨	Ñ1ó
ˆô
 )×,Ñ,¨Y¸	×8JÑ8JÓKˆØ�˜a± ¨¢¸BÐ?Ð?OÐPˆÜ‰Ñ˜ sÕ+rG   )ru   rg   )rh   ri   rj   rb   Ú__classcell__)r…   s   @rE   rr   rr   ¦   s   ø„ ÷,ò ,rG   rr   c                   ó   — e Zd Zy)ÚFrontendTypeErrorNro   rl   rG   rE   rˆ   rˆ   µ   rp   rG   rˆ   c                 óT   — |D �cg c]  }t        | |«      ‘Œ }}t        |«      S c c}w r@   )Úbuild_withitemÚlist)r   ÚitemsÚis      rE   Úbuild_withitemsrŽ   ¹   s,   € Ù-2Ó3©U¨Œ^˜C Õ#¨U€EÐ3Ü�‹;Ðùò 4s   …%c                 óh   — |D �cg c]  }t        | |«      ‘Œ }}t        t        d |«      «      S c c}w r@   )Ú
build_stmtr‹   Úfilter)r   ÚstmtsÚss      rE   Úbuild_stmtsr”   ¾   s4   € Ù).Ó/© AŒZ˜˜QÕ¨€EÐ/Ü”�t˜UÓ#Ó$Ð$ùò 0s   …/c                 óÚ  — t        j                  | d„ ¬«      }t        | dg «      }g }|D ]¾  }|d   |vsŒt        |d   j                  «      rŒ$t        |d   j                  d|d   › d�|¬«      }|d   j                  r"t        |d   j                  d|d   › d	�|¬«      nd
}|j                  t        |j                  «       t        |j                  «       |d   «      ||«      «       ŒÀ |S )aj  
    Get a list of Property objects representing the properties of a class.

    Args:
        cls:  The class to get properties of.
        self_name: The name of the class that the properties should belong to.
    Returns:
        A list of Property objects corresponding to the properties of cls. Property
        here refers to the subclass of TreeView.
    c                 ó"   — t        | t        «      S r@   )Ú
isinstanceÚproperty)Úms    rE   Ú<lambda>z&get_class_properties.<locals>.<lambda>Î   s   € ¼
À1ÄhÔ8OrG   ©Ú	predicateÚ__jit_unused_properties__r   é   Ú__Ú_getter)Ú	self_nameÚ_setterN)ÚinspectÚ
getmembersÚgetattrr5   ÚfgetÚget_jit_defÚfsetÚappendr!   Úranger   )Úclsr¡   ÚpropsÚunused_propertiesÚ
propertiesÚpropÚgetterÚsetters           rE   Úget_class_propertiesr²   Ã   sð   € ô ×Ñ˜sÑ.OÔP€Eä Ð%@À"ÓEÐð €JÛˆØ�‰7Ð+Ò+´KÀÀQÁÇÁÕ4MÜ Ø�Q‘—‘  4¨¡7 )¨7Ð3¸yôˆFð
 ˜‘7—<’<ô ˜D ™GŸL™L¨B¨t°A©w¨i°wÐ*?È9ÕUàð ð
 ×ÑÜ˜Ÿ™›¬¨v¯|©|«~¸tÀA¹wÓ)GÈÐQWÓXõð ð ÐrG   c                 ó  ‡ ‡— g Šdˆˆ fd„}|j                   D ]f  }t        |t        j                  «      r |t        j
                  |«       Œ5t        |t        j                  «      sŒP |t        j                  |«       Œh ‰S )Nc                 óV   •— 	 ‰j                   | ‰|«      «       y # t        $ r Y y w xY wr@   )r©   rn   )ÚbuilderÚentryÚassignsr   s     €€rE   Úmaybe_build_assignz-get_class_assigns.<locals>.maybe_build_assignè   s-   ø€ ð	Ø�N‰N™7 3¨Ó.Õ/øÜ ò 	Ùð	ús   ƒ œ	(§(rg   )Úbodyr—   Úastr   ÚStmtBuilderÚbuild_AssignÚ	AnnAssignÚbuild_AnnAssign)r   Úcls_astr¸   r¶   r·   s   `   @rE   Úget_class_assignsrÀ   å   s`   ù€ Ø€Göð —”ˆÜ�eœSŸZ™ZÔ(Ùœ{×7Ñ7¸Õ?Ü˜œsŸ}™}Õ-Ùœ{×:Ñ:¸EÕBð	 ð
 €NrG   c                 ó¨  ‡ — t        j                  ‰ ˆ fd„¬«      }ˆ fd„}t        ‰ t        j                  j
                  j                  «       «      \  }}}dj                  |«      }t        |«      }t        j                  |«      }	|	j                  d   }
t        |
t        j                  «      s!t        dt        |
«      j                   › �«      ‚t#        j$                  ‰ «      rÇ|
j                  D �ch c]:  }t        |t        j&                  «      r|j(                  t*        v r|j(                  ’Œ< }}t-        |«      D ]j  \  }\  }}t+        j.                  |«      }|sŒ!||vsŒ& |‰ «      }||f||<   t1        ‰ |«      }t2        j4                  j7                  ||j8                  «       Œl |D ��cg c]  \  }}t;        ||| ||«      ¬«      ‘Œ }}}t=        ‰ |«      }t?        |jA                  dd	«      d   «      t?        |jA                  dd	«      d   «      z
  }tC        ||||d
«      }tE        ||
«      }tG        ||
||||«      S c c}w c c}}w )ap  Get definitions for each method within the current class independently.

    Args:
        cls: The class to get definition of.
        self_name: The name of the class that the properties should belong to.

    Returns:
        torch._C._jit_tree_views.ClassDef: A representation of the class,
            the methods in the class and their definition as a tree.
    c                 óÞ   •— t        j                  | «      xs t        j                  | «      xr? t        ‰| j                  «       xr& | j                  ‰j
                  v xr t        | «       S r@   )r£   ÚismethodÚ
isfunctionr4   rh   Ú__dict__r2   ©r™   r«   s    €rE   rš   z#get_jit_class_def.<locals>.<lambda>  sa   ø€ œW×-Ñ-¨aÓ0ÒI´G×4FÑ4FÀqÓ4Iò Ü˜S !§*¡*Ó-Ð-òà�J‰J˜#Ÿ,™,Ð&òô ˜A“ÐðrG   r›   c                 óR   •— t        j                  | «      xr t        | dd «      ‰k(  S )NÚ__self__)r£   rÃ   r¥   )Úfnr«   s    €rE   Úis_classmethodz)get_jit_class_def.<locals>.is_classmethod  s'   ø€ Ü×Ñ Ó#ÒL¬°°JÀÓ(EÈÑ(LÐLrG   ru   r   zExpected class definition, got )r¡   rÊ   Ú
rž   F)$r£   r¤   r6   r]   r^   r_   Ú
call_stackÚjoinr   rº   Úparser¹   r—   r   ÚAssertionErrorrv   rh   ÚdataclassesÚis_dataclassÚFunctionDefrD   r:   Ú	enumeratery   r¥   r   ÚloaderÚcacheÚsourcer§   r²   rw   Úsplitr7   rÀ   Úbuild_class_def)r«   r¡   ÚmethodsrÊ   ÚsourcelinesÚfile_linenoÚfilenamerÖ   Ú
dedent_srcÚpy_astÚ	class_astÚmethodÚ	overridesr�   rD   Ú_Úsynthesizer_fnÚ
parsed_defÚfuncÚobjÚmethod_defsr®   Úleading_whitespace_lenr   r·   s   `                        rE   Úget_jit_class_defré   ÷   sA  ø€ ô × Ñ Øóô€GôMô *CØŒU�X‰X×!Ñ!×,Ñ,Ó.ó*Ñ&€K�˜hð �W‰W�[Ó!€Fä˜“€JÜ�Y‰Y�zÓ"€Fà—‘˜A‘€IÜ�i¤§¡Ô.ÜØ-¬d°9«o×.FÑ.FÐ-GÐHó
ð 	
ô ×Ñ Ô$ð
 $Ÿ.š.ó
á(�Ü˜&¤#§/¡/Ô2Ø—‘Ô6Ñ6ð �K‹KØ(ð 	ð 
ô & gÖ.‰LˆA‰y��aä4×8Ñ8¸Ó>ˆNÚ $¨iÒ"7Ù+¨CÓ0�
Ø! :Ð-�˜‘
Ü˜s DÓ)�Ü×$Ñ$×*Ñ*¨4°×1BÑ1BÕCð /ñ #ôá"‰KˆT�3ô 	�C˜¨Á>ÐRUÓCVÖWØ"ð ñ ô & c¨9Ó5€Jä  §¡¨d°AÓ!6°qÑ!9Ó:¼SØ×Ñ˜˜qÓ! !Ñ$ó>ñ Ðô Ø�˜+Ð'=¸uó€Cô    YÓ/€Gä˜3 	¨;¸
ÀIÈwÓWÐWùò;
ùós   Ã5?I	Æ3Ic                 ó  — t        | t        «      st        | «      n| }t        j                  j
                  j                  |j                  «      }|j                  j                  d   }|rf|j                  j                  d   j                  }t        j                  |› d|› �«      j                  d   }|j                  j                  d|«       t        | «      �r.t        j                  d«      }	t        |	j                  «      dk7  s't        |	j                  d   t        j                   «      s%t#        d|j$                  › d|j&                  › �«      ‚|	j                  d   }
|
j                  |_	        dx|j                  _        |j                  _        |j                  j                  |j                  j,                  z   D ]*  }|
j                  j                  d   j.                  |_        Œ, t1        | «      rd|_        d|_        t        j                  j6                  j9                  «       }d}t:        r,t        | t        «      st=        | «      }|j?                  |«      }tA        |jB                  |||||¬«      S )	af  
    Build a JIT AST (TreeView) from the given function.

    Args:
        fn: A function object to compile or a pre-parsed ParsedDef object
        def_name: The name to give to the resulting AST object. This is not
            always the same as `fn.__name__`, for example:
                def _forward(self):
                    ...
                forward = _forward
            In this case, the `__name__` attribute of the function object is "_forward",
            but we want the result AST to have the name "forward".
        self_name: If this function is a method, what the type name of `self` is.
    r   ú = zLdef unused_fn(self: Any):
	raise RuntimeError("Cannot call @unused methods")rž   z&Expected a single top-level function: Ú:N)r¡   Úpdt_arg_types)"r—   Ú
_ParsedDefr8   r]   ÚjitÚannotationsÚget_type_linerÖ   rº   r¹   ÚargsÚargrÎ   Úinsertr5   rw   rÒ   ÚRuntimeErrorrÜ   rÛ   ÚkwargÚvarargÚ
kwonlyargsÚ
annotationr2   ÚreturnsÚtype_commentÚ_scriptÚ_get_type_trace_dbr<   r;   Úget_args_typesÚ	build_defr   )rÉ   Údef_namer¡   rÊ   rä   Ú	type_lineÚfn_defÚarg_nameÚassign_stmtÚunused_fn_defÚ
unused_defró   Útype_trace_dbrí   Úqualnames                  rE   r§   r§   D  s  € ô '1°´ZÔ&@”˜2”Àb€JÜ—	‘	×%Ñ%×3Ñ3°J×4EÑ4EÓF€IØ�^‰^× Ñ  Ñ#€FáØ—;‘;×#Ñ# AÑ&×*Ñ*ˆä—i‘i 8 *¨C°	¨{Ð ;Ó<×AÑAÀ!ÑDˆØ�‰×Ñ˜1˜kÔ*ô �2…ÜŸ	™	Ø\ó
ˆô ˆ}×!Ñ!Ó" aÒ'¬zØ×Ñ˜qÑ!¤3§?¡?ô0
ô Ø8¸×9LÑ9LÐ8MÈQÈz×OeÑOeÐNfÐgóð ð #×'Ñ'¨Ñ*ˆ
Ø —o‘oˆŒà15Ð5ˆ�‰Ô˜FŸK™KÔ.Ø—;‘;×#Ñ# f§k¡k×&<Ñ&<Ô<ˆCà'Ÿ_™_×1Ñ1°!Ñ4×?Ñ?ˆC�Nð =ô �rŒ?à!ˆFŒNØ"&ˆFÔô —I‘I×%Ñ%×8Ñ8Ó:€MØ€MÝ¤
¨2¬zÔ :Ü% bÓ)ˆØ%×4Ñ4°XÓ>ˆäØ�‰ØØØØØ#ôð rG   rY   c                 óè  — t        | j                  d   j                  t        j                  «      rÁ| j                  d   j                  j
                  }t        |t        j                  «      r„|j                  }|j                  }|dk(  rgt        |t        j                  «      rM|j                  dk(  r>t        |j                  t        j                  «      r|j                  j                  dk(  ryy)Nr   Ú_IgnoreContextManagerrï   r]   TF)r—   rŒ   Úcontext_exprrº   ÚCallrå   r	   ÚattrÚvalueÚNameÚid)ÚstmtÚfunctionÚ	attr_nameÚ
attr_values       rE   Ú#is_torch_jit_ignore_context_managerr  ‡  s«   € ä�$—*‘*˜Q‘-×,Ñ,¬c¯h©hÔ7à—:‘:˜a‘=×-Ñ-×2Ñ2ˆÜ�h¤§¡Ô.Ø Ÿ™ˆIØ!Ÿ™ˆJØÐ3Ò3¼
ØœCŸM™Mô9ð —?‘? eÒ+´
¸:×;KÑ;KÌSÏXÉXÔ0VØ!×'Ñ'×*Ñ*¨gÒ5Ø#ØrG   c                   ó   — e Zd Zd„ Zy)ÚBuilderc                 óx   — t        | d|j                  j                  z   d «      }|€t        ||«      ‚ |||«      S )NÚbuild_)r¥   r…   rh   rr   )ra   r   Únoderà   s       rE   Ú__call__zBuilder.__call__š  s>   € Ü˜˜x¨$¯.©.×*AÑ*AÑAÀ4ÓHˆØˆ>Ü& s¨DÓ1Ð1Ù�c˜4Ó Ð rG   N)rh   ri   rj   r  rl   rG   rE   r  r  ™  s   „ ó!rG   r  c           	      óä   — | j                  |j                  |j                  |j                  t        d«      z   «      }t	        t        ||«      |D �cg c]  }t        |«      ‘Œ c}||«      S c c}w )NrL   )rz   r{   r|   rw   r   r   r'   )r   Úpy_defrÙ   r®   r¡   r·   Úrrà   s           rE   rØ   rØ   ¡  se   € Ø�‰Ø�‰�v×(Ñ(¨&×*;Ñ*;¼cÀ'»lÑ*Jó	€Aô Üˆa�Ó¹ÓA¹¨vœd 6�l¸ÑAÀ:Èwóð ùÚAs   ÁA-
c                 óö  — |j                   }| j                  |j                  |j                  |j                  t	        d«      z   «      }t        | |j                  ||«      }d }	t        |dd «      �t        | |j                  «      }	t        |||	«      }
|d u}|�@t        j                  j                  |«      }t        j                  j                  |
||«      }
t        t!        ||«      |
t#        | |«      «      S )NrI   rú   )r¹   rz   r{   r|   rw   Úbuild_param_listrò   r¥   Ú
build_exprrú   r   r]   r^   Úparse_type_commentÚmerge_type_from_type_commentr   r   r”   )r   r  r  r   r¡   rí   r¹   r  Ú
param_listÚreturn_typeÚdeclÚ	is_methodÚtype_comment_decls                rE   rÿ   rÿ   ª  sÞ   € Ø�;‰;€DØ�‰�v—}‘} f×&7Ñ&7¸×9JÑ9JÌSÐQVËZÑ9WÓX€Aä! # v§{¡{°I¸}ÓM€JØ€KÜˆv�y $Ó'Ð3Ü   f§n¡nÓ5ˆä��:˜{Ó+€DØ Ð%€IØÐÜ!ŸH™H×7Ñ7¸	ÓBÐÜ�x‰x×4Ñ4ØØØó
ˆô Œu�Q˜Ó! 4¬°S¸$Ó)?Ó@Ð@rG   zfCompiled functions can't take variable number of arguments or use keyword-only arguments with defaultsc                 óD  — |j                   �f|j                   }| j                  |j                  |j                  dz
  |j                  t	        |j
                  «      z   «      }t        |t        «      ‚|j                  �f|j                  }| j                  |j                  |j                  dz
  |j                  t	        |j
                  «      z   «      }t        |t        «      ‚t	        |j                  «      dkD  r=|j                  D ].  }|€Œt        | |«      j                  «       }t        |t        «      ‚ |j                  D �cg c]/  }||r't        ||j
                     «      r||j
                     nd f‘Œ1 }}|j                  D �cg c]/  }||r't        ||j
                     «      r||j
                     nd f‘Œ1 }}|D ��	cg c]  \  }}	t        | ||d|	¬«      ‘Œ }
}}	|
|D ��	cg c]  \  }}	t        | ||d|	¬«      ‘Œ c}	}z  }
|
S c c}w c c}w c c}	}w c c}	}w )Nrž   r   F)Ú
kwarg_onlyÚpdt_arg_typeT)rö   rz   r{   r|   rw   ró   rn   Ú_vararg_kwarg_errr÷   Úkw_defaultsr!  rª   rò   Úboolrø   Úbuild_param)r   Úpy_argsr¡   rí   ÚexprÚ	ctx_rangeró   Úarg_and_typesÚarg_and_types_kwonlyargsÚarg_typeÚresults              rE   r   r   Æ  s)  € Ø‡}�}Ð Ø�}‰}ˆØ—N‘NØ�K‰K˜Ÿ™¨1Ñ,¨d¯o©oÄÀDÇHÁHÃÑ.Mó
ˆ	ô   	Ô+<Ó=Ð=Ø‡~�~Ð!Ø�~‰~ˆØ—N‘NØ�K‰K˜Ÿ™¨1Ñ,¨d¯o©oÄÀDÇHÁHÃÑ.Mó
ˆ	ô   	Ô+<Ó=Ð=Ü
ˆ7×ÑÓ !Ò#ð ×&Ô&ˆCØ‰Ü& s¨CÓ0×6Ñ6Ó8�	Ü'¨	Ô3DÓEÐEð 'ð —<’<óñ  ˆCð á¤ m°C·G±GÑ&<Ô!=ð ˜#Ÿ'™'Ò"àò		
ð  ð ð ð  ×%Ò%ó ñ &ˆCð á¤ m°C·G±GÑ&<Ô!=ð ˜#Ÿ'™'Ò"àò		
ð &ð ð  ñ +ôá*‰MˆC�ô 	�C˜˜i°EÈÖQØ*ð ñ ð á5ôá5‰MˆC�ô 	�C˜˜i°DÀxÖPØ5òñ €Fð €Mùò7ùò ùóùós   Å4HÆ4HÇHÇ*Hc                 óŠ  — |j                   }| j                  |j                  |j                  |j                  t	        |«      z   «      }t        |dd «      �t        | |j                  «      }n@|rt        t        ||«      «      }n(|�|dk(  rt        t        ||«      «      }nt        |«      }t        |t        ||«      |«      S )Nrù   ra   )ró   rz   r{   r|   rw   r¥   r!  rù   r.   r   r   r   )r   Úpy_argr¡   r*  r+  rD   r  Úannotation_exprs           rE   r/  r/  ú  s¨   € à�:‰:€DØ�‰�v—}‘} f×&7Ñ&7¸×9JÑ9JÌSÐQUËYÑ9VÓW€AÜˆv�| TÓ*Ð6Ü$ S¨&×*;Ñ*;Ó<‰Ù	Üœe A |Ó4Ó5‰Ø	Ð	 4¨6¢>Üœe A yÓ1Ó2‰ä-¨aÓ0ˆÜ�¤%¨¨4£.°*Ó=Ð=rG   c           	      óÊ  ‡‡— t        dddg«      Št        dddg«      Šˆˆfd„}dt        fd„}d„ }d	„ } ||j                  d
   j                  j                  «      \  }}d || |«      z   }d|z   }	|	ddj                  |D �
cg c]  }
|
j                  dz   |
j                  z   ‘Œ  c}
«      z   dz   z  }	 ||«      \  }}|	|dz   z  }	t        j                  |	«      j                  d
   }|j                  |_
        t        j                  |«      j                  d
   }|j                  j                  |«       dt        j                  |«      › d�}t        j                  t        «       «      }t        ||«       ||   t        «       |<    ||«      }d|› d� ||«      z   dz   }t!        |«      d
kD  r	|dz   |z   }n|}t        j                  |«      j                  d
   }|S c c}
w )NÚ	InputTyperD   ÚannÚ
OutputTypec                 ó  •— g }g }| D ]s  }|j                   }|j                  j                  }|j                  d«      \  }}|dk(  r|j                   ‰||«      «       |dk(  sŒ\|j                   ‰||«      «       Œu ||fS )Nrì   ÚinpÚout)ró   r  r×   r©   )	rò   ÚinputsÚoutputsró   Úvar_nameÚvar_annÚvar_decl_typer;  r=  s	          €€rE   Úprocess_ins_outsz6build_ignore_context_manager.<locals>.process_ins_outs  s„   ø€ ð ˆØˆÛˆCØ—w‘wˆHØ—i‘i—o‘oˆGØ%,§]¡]°3Ó%7Ñ"ˆM˜7Ø Ò%Ø—‘™i¨°'Ó:Ô;Ø Ó%Ø—‘™z¨(°GÓ<Õ=ð ð �wˆÐrG   rY   c                 óf   — t        j                  dd| j                  «      }|› d|j                  › �S )Nz[^a-zA-Z0-9_]râ   )ÚreÚsubrÜ   r{   )r   r  rÉ   s      rE   Úcreate_unique_name_extz<build_ignore_context_manager.<locals>.create_unique_name_ext  s0   € ô �V‰VÐ$ c¨3¯<©<Ó8ˆØ��Q�t—{‘{�mÐ$Ð$rG   c                 óŒ  — d}d}t        | «      dk(  r|dz  }t        | «      dk(  r$d| d   j                  z   }|| d   j                  z  }t        | «      dkD  r`d}|dd	j                  | D �cg c]  }|j                  ‘Œ c}«      z   d
z   z  }|d	j                  | D �cg c]  }|j                  ‘Œ c}«      z  }||fS c c}w c c}w )Nru   zreturn r   z -> Nonerž   z -> z	 -> tupleÚ[ú, Ú])rw   r<  rD   rÍ   )rB  Úreturn_type_annÚreturn_statement_strÚvars       rE   Úbuild_return_ann_stmtz;build_ignore_context_manager.<locals>.build_return_ann_stmt#  sÑ   € ØˆØ(ÐÜˆw‹<˜1ÒØ˜zÑ)ˆOÜˆw‹<˜1ÒØ$ w¨q¡z§~¡~Ñ5ˆOØ  G¨A¡J§O¡OÑ3Ð Üˆw‹<˜!ÒØ)ˆOØ˜s T§Y¡YÁ7Ó/KÁ7¸C°·³À7Ñ/KÓ%LÑLÈsÑRÑRˆOØ  D§I¡IÁ7Ó.KÁ7¸C¨s¯x«xÀ7Ñ.KÓ$LÑLÐ ØÐ 4Ð4Ð4ùò 0LùÚ.Ks   Á+B<ÂC
c                 ó^   — dj                  | D �cg c]  }|j                  ‘Œ c}«      S c c}w )NrM  )rÍ   rD   )rò   ró   s     rE   Ú
build_argsz0build_ignore_context_manager.<locals>.build_args1  s'   € Ø�y‰y©dÓ3©d s˜#Ÿ(›(¨dÑ3Ó4Ð4ùÒ3s   �*r   Úfunc_ignore_z
def Ú(rM  z :Ú)z: passz§# Backward compat: These used to be imported into the outer global scope so some
# code may still expect them.
from typing import List, Dict, Tuple

@torch.jit.ignore
rË   ztorch.jit.frontend.rë   )r   rk   rŒ   r  ÚkeywordsrÍ   rD   r<  rº   rÎ   r¹   r©   ÚunparseÚcopyÚglobalsÚexecrw   )r   r  rF  rJ  rR  rT  rA  rB  Úignore_function_nameÚignore_function_strrQ  Ú
return_annÚreturn_stmtÚignore_functionÚignore_func_strÚgÚassign_str_lhsÚassign_str_rhsÚ
assign_strÚ
assign_astr;  r=  s                       @@rE   Úbuild_ignore_context_managerrh  	  s  ù€ Ü˜;¨°¨Ó8€IÜ˜L¨6°5¨/Ó:€Jõð %¬Só %ò5ò5ñ ' t§z¡z°!¡}×'AÑ'A×'JÑ'JÓK�O€FˆGð *Ñ,BÀ3ÈÓ,MÑMÐØ"Ð%9Ñ9ÐØØˆd�i‰i¹fÓE¹f°s˜Ÿ™ D™¨3¯7©7Ó2¸fÑEÓFÑFÈÑLñÐñ 4°GÓ<Ñ€J�Ø˜:¨Ñ0Ñ0Ðô —i‘iÐ 3Ó4×9Ñ9¸!Ñ<€Oð  Ÿ9™9€OÔô —)‘)˜KÓ(×-Ñ-¨aÑ0€KØ×Ñ×Ñ Ô,ðô ‡�ˆ_ÓÐ ð ð€Oô 	�	‰	”'“)Ó€AÜˆ˜!Ôà&'Ð(<Ñ&=„GƒIÐ"Ñ#ñ   Ó(€Nð Ð2Ð3°1Ð5¹
À6Ó8JÑJÈSÑPð ô ˆ7ƒ|�aÒØ# eÑ+¨nÑ<‰
à#ˆ
Ü—‘˜:Ó&×+Ñ+¨AÑ.€JØÐùòU Fs   Â#G c                 óü   — | €i S t        j                  | «      }|j                  j                  «       D ��ci c]8  \  }}|j                  t         j
                  j                  ur||j                  “Œ: c}}S c c}}w )a   
    Get a dictionary of default arguments for a function.

    Args:
        fn: Callable - The function to inspect for default arguments.
    Returns:
        (Dict[str, Any]): mapping argument names to their default values if
        :attr:`fn` is not None, else empty dictionary.
    )r£   Ú	signatureÚ
parametersrŒ   ÚdefaultÚ	ParameterÚempty)rÉ   rj  ÚkÚvs       rE   Úget_default_argsrq  g  sx   € ð 
€zØˆ	ä×!Ñ! "Ó%€Ið ×(Ñ(×.Ñ.Ô0ôá0‰DˆAˆqØ�9‰9œG×-Ñ-×3Ñ3Ñ3ð 	
ˆ1�9‰9‰Ø0òð ùó s   ·=A8c                 ó„   ‡ — t        j                  ‰ ˆ fd„¬«      }|D ��ci c]  \  }}|t        |«      “Œ }}}|S c c}}w )aC  
    Get default arguments for all methods in a class (except for static methods).

    Args:
        cls: type - The class type to inspect for default arguments.
    Returns:
        A Dict[str, Dict[str, Any]] which maps each method name to a Dict[str, Any]
        that maps each argument name to its default value.
    c                 óÂ   •— t        j                  | «      xs t        j                  | «      xr1 t        ‰| j                  «       xr | j                  ‰j
                  v S r@   )r£   rÃ   rÄ   r4   rh   rÅ   rÆ   s    €rE   rš   z,get_default_args_for_class.<locals>.<lambda>‹  sP   ø€ œW×-Ñ-¨aÓ0ÒI´G×4FÑ4FÀqÓ4Iò 'Ü˜S !§*¡*Ó-Ð-ò'à�J‰J˜#Ÿ,™,Ð&ð'rG   r›   )r£   r¤   rq  )r«   rÙ   Úmethod_nameÚmethod_implÚdefaultss   `    rE   Úget_default_args_for_classrw  }  s[   ø€ ô × Ñ Øó'ô€Gñ )0ôá(/Ñ$ˆK˜ð 	Ô% kÓ2Ñ2Ø(/ð ñ ð
 €Oùós   ¡<c                   ó   — e Zd Zed„ «       Zy)ÚWithItemBuilderc                 óD  — |j                   j                  }|j                   j                  }|t        t        t
        j                     «      z   }|j                  }| j                  |||«      }t        |t        | |j                   «      |rt        | |«      «      S d «      S r@   )r  r{   r|   rw   r}   rº   r0   Úoptional_varsrz   r1   r!  )r   Úitemr{   ÚstartÚendÚop_varsr  s          rE   rŠ   zWithItemBuilder.build_withitem›  s•   € à×"Ñ"×)Ñ)ˆØ×!Ñ!×,Ñ,ˆØ”cÔ+¬C¯H©HÑ5Ó6Ñ6ˆØ×$Ñ$ˆØ�N‰N˜6 5¨#Ó.ˆäØÜ�s˜D×-Ñ-Ó.Ù(/ŒJ�s˜GÓ$ó
ð 	
ð 6:ó
ð 	
rG   N)rh   ri   rj   ÚstaticmethodrŠ   rl   rG   rE   ry  ry  š  s   „ Øñ
ó ñ
rG   ry  c                   ó  — e Zd Zej                  dej
                  dej                  dej                  dej                  dej                  dej                  dej                  dej                  d	ej                  d
ej                  diZed„ «       Zed„ «       Zed„ «       Zed„ «       Zed„ «       Zed„ «       Zed„ «       Zed„ «       Zed„ «       Zed„ «       Zed„ «       Zed„ «       Zed„ «       Zed„ «       Zed„ «       Zed„ «       Z y)r»   Ú+Ú-Ú*Ú/Ú%Ú|Ú&Ú^ú<<ú>>ú**c                 óx   — |j                   }|j                  j                  dk(  ry t        t	        | |«      «      S )NÚStr)r  r…   rh   r   r!  )r   r  r  s      rE   Ú
build_ExprzStmtBuilder.build_Expr¹  s4   € à—
‘
ˆØ�?‰?×#Ñ# uÒ,ð äœJ s¨EÓ2Ó3Ð3rG   c                 ó–   — t        | |j                  «      }|j                  D �cg c]  }t        | |«      ‘Œ }}t        ||«      S c c}w r@   )r!  r  Útargetsr   )r   r  ÚrhsÚxÚlhss        rE   r¼   zStmtBuilder.build_AssignÃ  sC   € ä˜˜dŸj™jÓ)ˆØ+/¯<ª<Ó8©< aŒz˜#˜qÕ!¨<ˆÐ8Ü�c˜3ÓÐùò 9s   ¥Ac                 óÌ  — |j                   €t        | |d¬«      ‚t        |j                  «      t        j
                  u rÖ|j                  j                   j                  dk(  r³| j                  dk7  r¤|j                  }|t        d|j                  j                  › �«      z   }t        |j                  d«      r%|t        d|j                  j                  › �«      z  }| j                  |j                  ||«      }t        d| j                  › d	|› �«      ‚t!        | |j                   «      }t!        | |j                  «      }t!        | |j                  «      }t#        |g||«      S )
Nzwithout assigned value)r�   ra   rb   zself.r  z: zKType annotations on instance attributes must be declared in __init__, not 'z': )r  rr   rv   Útargetrº   r	   r  Úfuncnamer|   rw   r  Úhasattrrù   rz   r{   Ú
ValueErrorr!  r   )r   r  r}  r~  Úsrr’  r”  Úthe_types           rE   r¾   zStmtBuilder.build_AnnAssignÉ  s/  € à�:‰:ÐÜ& s¨DÐ9QÔRÐRô �—‘Ó¤§¡Ñ.Ø—‘×!Ñ!×$Ñ$¨Ò.Ø—‘ 
Ò*à—O‘OˆEØœ#  d§k¡k×&6Ñ&6Ð%7Ð8Ó9Ñ9ˆCÜ�t—‘¨Ô-Ø”s˜R §¡× 2Ñ 2Ð3Ð4Ó5Ñ5�Ø—‘ §¡¨U°CÓ8ˆBÜð"Ø"%§,¡, ¨s°2°$ð8óð ô
 ˜˜dŸj™jÓ)ˆÜ˜˜dŸk™kÓ*ˆÜ˜c 4§?¡?Ó3ˆÜ�s�e˜S (Ó+Ð+rG   c           
      óâ   — | j                  |j                  |j                  |j                  t        d«      z   «      }t	        ||j
                  D �cg c]  }t        | |«      ‘Œ c}«      S c c}w )NrK   )rz   r{   r|   rw   r   r‘  r!  )r   r  r  r–  s       rE   Úbuild_DeletezStmtBuilder.build_Deleteã  sS   € à�N‰N˜4Ÿ;™;¨¯©¸¿¹Ì3ÈuË:Ñ9UÓVˆä�aÀÇÂÓMÁ°fœ* S¨&Õ1ÀÑMÓNÐNùÒMs   ÁA,
c                 óà   — | j                  |j                  |j                  |j                  t        d«      z   «      }t	        ||j
                  €d «      S t        | |j
                  «      «      S )NrY   )rz   r{   r|   rw   r#   r  r!  ©r   r  r  s      rE   Úbuild_ReturnzStmtBuilder.build_Returné  sW   € à�N‰NØ�K‰K˜Ÿ™¨$¯/©/¼CÀ»MÑ*Ió
ˆô �a §¡Ð!3˜ÓUÐU¼ÀCÈÏÉÓ9TÓUÐUrG   c                 óÀ   — | j                  |j                  |j                  |j                  t        d«      z   «      }t	        | |j
                  «      }t        ||«      S )NrN   )rz   r{   r|   rw   r!  Úexcr"   )r   r  r  r1  s       rE   Úbuild_RaisezStmtBuilder.build_Raiseð  sE   € à�N‰N˜4Ÿ;™;¨¯©¸¿¹Ì3ÈwË<Ñ9WÓXˆÜ˜#˜tŸx™xÓ(ˆÜ�Q˜‹~ÐrG   c                 ó
  — | j                  |j                  |j                  |j                  t        d«      z   «      }t	        | |j
                  «      }|j                  �t	        | |j                  «      nd }t        |||«      S )NrO   )rz   r{   r|   rw   r!  Útestr\   r   )r   r  r  r¥  r\   s        rE   Úbuild_AssertzStmtBuilder.build_Assertö  sh   € à�N‰NØ�K‰K˜Ÿ™¨$¯/©/¼CÀ»MÑ*Ió
ˆô ˜#˜tŸy™yÓ)ˆØ+/¯8©8Ð+?Œj˜˜dŸh™hÔ'ÀTˆÜ�a˜˜sÓ#Ð#rG   c                 óf  — t        | |j                  «      }t        | |j                  «      }t        |j                  «      }|t
        j                  v rt
        j                  |   }n>t        t        | |j                  «       j                  dd¬«      d|j                  z   «      ‚t        |||«      S )NÚ=)éÿÿÿÿr   )Úoffsetsz*unsupported kind of augmented assignment: )r!  r–  r  rv   Úopr»   Úaugassign_maprn   Úfind_beforerª   r}  rh   r
   )r   r  r”  r’  r«  Úop_tokens         rE   Úbuild_AugAssignzStmtBuilder.build_AugAssignÿ  s‘   € ä˜˜dŸk™kÓ*ˆÜ˜˜dŸj™jÓ)ˆÜ�$—'‘'‹]ˆØ”×*Ñ*Ñ*Ü"×0Ñ0°Ñ4‰Hä#Ü˜C §¡£×!2Ñ!2°CÀÔIØ<¸r¿{¹{ÑJóð ô ˜˜h¨Ó,Ð,rG   c                 ó  — |j                   rt        d d«      ‚| j                  |j                  |j                  |j                  t        d«      z   «      }t        |t        | |j                  «      t        | |j                  «      «      S )Nz-else branches of while loops aren't supportedÚwhile)Úorelsern   rz   r{   r|   rw   r/   r!  r¥  r”   r¹   rŸ  s      rE   Úbuild_WhilezStmtBuilder.build_While  sl   € à�;Š;ô $ØÐEóð ð �N‰N˜4Ÿ;™;¨¯©¸¿¹Ì3ÈwË<Ñ9WÓXˆÜ�Qœ
 3¨¯	©	Ó2´KÀÀTÇYÁYÓ4OÓPÐPrG   c           	      óD  — | j                  |j                  |j                  |j                  t        d«      z   «      }|j                  rt        |d«      ‚t        |t        | |j                  «      gt        | |j                  «      gt        | |j                  «      «      S )NrJ   z+else branches of for loops aren't supported)rz   r{   r|   rw   r²  rn   r   r!  r–  Úiterr”   r¹   rŸ  s      rE   Ú	build_ForzStmtBuilder.build_For  s~   € à�N‰N˜4Ÿ;™;¨¯©¸¿¹Ì3ÈuË:Ñ9UÓVˆØ�;Š;Ü# AÐ'TÓUÐUäØÜ˜˜TŸ[™[Ó)Ð*Ü˜˜TŸY™YÓ'Ð(Ü˜˜TŸY™YÓ'ó	
ð 	
rG   c           	      ó  — | j                  |j                  |j                  |j                  t        d«      z   «      }t	        |t        | |j                  «      t        | |j                  «      t        | |j                  «      «      S )NÚif)
rz   r{   r|   rw   r   r!  r¥  r”   r¹   r²  rŸ  s      rE   Úbuild_IfzStmtBuilder.build_If%  sc   € à�N‰N˜4Ÿ;™;¨¯©¸¿¹Ì3ÈtË9Ñ9TÓUˆÜØÜ�s˜DŸI™IÓ&Ü˜˜TŸY™YÓ'Ü˜˜TŸ[™[Ó)ó	
ð 	
rG   c           
      óN  — | j                  |j                  |j                  |j                  t        d«      z   «      }|j                  rt        |d«      ‚|j                  D �cg c]  }t        | |«      ‘Œ }}t        t        t        t        |d«      «      |g «      «      S c c}w )Nr>   z?print statements with non-default destinations aren't supported)rz   r{   r|   rw   Údestrn   Úvaluesr!  r   r   r.   r   )r   r  r  Úvalrò   s        rE   Úbuild_PrintzStmtBuilder.build_Print/  s‰   € à�N‰N˜4Ÿ;™;¨¯©¸¿¹Ì3ÈwË<Ñ9WÓXˆØ�9Š9Ü#ØÐTóð ð 15·²Ó<±¨”
˜3 Õ$°ˆÐ<Üœœc¤%¨¨7Ó"3Ó4°d¸BÓ?Ó@Ð@ùò =s   Á$B"c                 ó’   — | j                  |j                  |j                  |j                  t        d«      z   «      }t	        |«      S )NÚpass)rz   r{   r|   rw   r    rŸ  s      rE   Ú
build_PasszStmtBuilder.build_Pass9  s2   € à�N‰N˜4Ÿ;™;¨¯©¸¿¹Ì3ÈvË;Ñ9VÓWˆÜ�A‹wˆrG   c                 ó’   — | j                  |j                  |j                  |j                  t        d«      z   «      }t	        |«      S )NrS   )rz   r{   r|   rw   r   rŸ  s      rE   Úbuild_BreakzStmtBuilder.build_Break>  s2   € à�N‰N˜4Ÿ;™;¨¯©¸¿¹Ì3ÈwË<Ñ9WÓXˆÜ�Q‹xˆrG   c                 ó’   — | j                  |j                  |j                  |j                  t        d«      z   «      }t	        |«      S )NrT   )rz   r{   r|   rw   r   rŸ  s      rE   Úbuild_ContinuezStmtBuilder.build_ContinueC  s8   € à�N‰NØ�K‰K˜Ÿ™¨$¯/©/¼CÀ
»OÑ*Kó
ˆô ˜‹{ÐrG   c                 ó,  — | j                  |j                  |j                  |j                  t        d«      z   «      }t	        |«      rt        | |«      }t        | |«      S t        |t        | |j                  «      t        | |j                  «      «      S )NrM   )rz   r{   r|   rw   r  rh  r�   r0   rŽ   rŒ   r”   r¹   )r   r  r  rg  s       rE   Ú
build_WithzStmtBuilder.build_WithJ  so   € à�N‰N˜4Ÿ;™;¨¯©¸¿¹Ì3ÈvË;Ñ9VÓWˆä.¨tÔ4Ü5°c¸4Ó@ˆJÜ˜c :Ó.Ð.Ü�A” s¨D¯J©JÓ7¼ÀSÈ$Ï)É)Ó9TÓUÐUrG   N)!rh   ri   rj   rº   ÚAddÚSubÚMultÚDivÚModÚBitOrÚBitAndÚBitXorÚLShiftÚRShiftÚPowr¬  r€  r�  r¼   r¾   r�  r   r£  r¦  r¯  r³  r¶  r¹  r¾  rÁ  rÃ  rÅ  rÇ  rl   rG   rE   r»   r»   ª  s¶  „ à�‰�Ø�‰�Ø�‰�#Ø�‰�Ø�‰�Ø�	‰	�3Ø�
‰
�CØ�
‰
�CØ�
‰
�DØ�
‰
�DØ�‰�ð€Mð ñ4ó ð4ð ñ ó ð ð
 ñ,ó ð,ð2 ñOó ðOð
 ñVó ðVð ñó ðð
 ñ$ó ð$ð ñ-ó ð-ð ñQó ðQð ñ

ó ð

ð ñ
ó ð
ð ñAó ðAð ñó ðð ñó ðð ñó ðð ñVó ñVrG   r»   c                   ó"  — e Zd Zej                  dej
                  dej                  dej                  dej                  dej                  dej                  dej                  dej                  d	ej                  d
ej                  dej                  diZdeej"                  <   ej$                  dej&                  dej(                  diZej,                  dej.                  diZej2                  dej4                  dej6                  dej8                  dej:                  dej<                  dej>                  dej@                  dejB                  dejD                  di
Z#e$d„ «       Z%e$d„ «       Z&e$d„ «       Z'e$d„ «       Z(e$d „ «       Z)e$d!„ «       Z*e$d"„ «       Z+e$d#„ «       Z,e$d$„ «       Z-e$d%„ «       Z.e$d&„ «       Z/e$d'„ «       Z0e$d(„ «       Z1e$d)„ «       Z2e$d*„ «       Z3e$d+„ «       Z4e$d,„ «       Z5e$d-„ «       Z6e$d.„ «       Z7e$d/„ «       Z8e$d0„ «       Z9e$d1„ «       Z:y2)3ÚExprBuilderr‚  rƒ  r„  r…  rŒ  r†  z//rˆ  r‰  r‡  rŠ  r‹  Ú@ÚnotÚ~ÚandÚorz==z!=z<=Ú<z>=Ú>Úiszis notÚinznot inc                 óª  ‡— t        | |j                  «      }| j                  j                  d«      Šˆfd„}|j	                  «       j
                  dz   } ||«      t        j                  v r|dz  } ||«      t        j                  v rŒ|t        |j                  «      z   }| j                  ||«      }t        |t        ||j                  «      «      S )Nzutf-8c                 ó    •— t        ‰|    «      S r@   )Úchr)ÚindexrÖ   s    €rE   Úget_charz-ExprBuilder.build_Attribute.<locals>.get_char†  s   ø€ Ü�v˜e‘}Ó%Ð%rG   rž   )r!  r  rÖ   Úencoderª   r~  ÚstringÚ
whitespacerw   r  Úmake_raw_ranger$   r   )r   r1  Úbaserâ  Ú	start_posÚend_posÚ
name_rangerÖ   s          @rE   Úbuild_AttributezExprBuilder.build_Attribute  s³   ø€ ä˜#˜tŸz™zÓ*ˆð —‘×"Ñ" 7Ó+ˆô	&ð —J‘J“L×$Ñ$ qÑ(ˆ	Ù�yÓ!¤V×%6Ñ%6Ñ6Ø˜‰NˆIñ �yÓ!¤V×%6Ñ%6Ò6àœc $§)¡)›nÑ,ˆØ×'Ñ'¨	°7Ó;ˆ
Ü�dœE *¨d¯i©iÓ8Ó9Ð9rG   c           	      óH  — t        | |j                  «      }|j                  D �cg c]  }t        | |«      ‘Œ }}t        |d«      r@|j                  r4t        | |j                  «      }|t        |j                  «       |«      gz  }g }|j                  D ]{  }t        | |j                  «      }|j                  st        |j                  «       d«      ‚|j                  t        t        |j                  «       |j                  «      |«      «       Œ} t        |||«      S c c}w )NÚstarargsz&keyword-arg expansion is not supported)r!  rå   rò   r˜  rí  r&   rª   rX  r  ró   rn   r©   r	   r   r   )	r   r1  rå   r8  rò   Ústararg_exprÚkwargsÚkwÚkw_exprs	            rE   Ú
build_CallzExprBuilder.build_Call�  sî   € ä˜#˜tŸy™yÓ)ˆØ6:·i²iÓ@±i¨F”
˜3 Õ'°iˆÐ@Ü�4˜Ô$¨¯ªÜ% c¨4¯=©=Ó9ˆLØ”W˜\×/Ñ/Ó1°<Ó@ÐAÑAˆDØˆØ—-”-ˆBÜ   b§h¡hÓ/ˆGà—6’6Ü'Ø—M‘M“OÐ%Móð ð �M‰Mœ)¤E¨'¯-©-«/¸2¿6¹6Ó$BÀGÓLÕMð  ô �T˜4 Ó(Ð(ùò As   ¥Dc                 ó€   — | j                  |j                  |j                  |j                  dz   «      }t        |«      S )Né   )rz   r{   r|   r   ©r   r1  r  s      rE   Úbuild_EllipsiszExprBuilder.build_Ellipsis¢  s3   € à�N‰NØ�K‰K˜Ÿ™¨$¯/©/¸AÑ*=ó
ˆô �A‹wˆrG   c                 ó  — | j                  |j                  |j                  |j                  t        |j                  «      z   «      }|j                  j                  t        «      rt        |dt        z   «      ‚|j                  dk(  rt        |«      S |j                  dk(  rt        |«      S |j                  dk(  rt        |«      S |j                  dk(  rt        |«      S t        t        ||j                  «      «      S )Nz=names of variables used in JIT-ed functions can't start with ÚTrueÚFalseÚNoneÚEllipsis)rz   r{   r|   rw   r  rA   rB   rn   r+   r   r   r   r.   r   rõ  s      rE   Ú
build_NamezExprBuilder.build_Name©  sÌ   € à�N‰N˜4Ÿ;™;¨¯©¸¿¹Ì3ÈtÏwÉwË<Ñ9WÓXˆØ�7‰7×ÑÔ.Ô/Ü#Øð$Ü&6ñ7óð ð
 �7‰7�fÒÜ˜q“>Ð!Ø�W‰W˜ÒÜ “?Ð"Ø�W‰W˜ÒÜ˜q“>Ð!Ø�W‰W˜
Ò"Ü˜“7ˆNÜ”5˜˜DŸG™GÓ$Ó%Ð%rG   c           
      ó²  — | j                  |j                  |j                  |j                  t        t	        |j
                  «      «      z   «      }|j
                  du rt        |«      S |j
                  du rt        |«      S |j
                  €t        |«      S |j
                  t        k(  rt        |«      S t        dt	        |j
                  «      z   «      ‚)NTFz!Name constant value unsupported: )rz   r{   r|   rw   rk   r  r+   r   r   rû  r   r™  rõ  s      rE   Úbuild_NameConstantzExprBuilder.build_NameConstant¼  s¥   € à�N‰NØ�K‰K˜Ÿ™¨$¯/©/¼CÄÀDÇJÁJÃÓ<PÑ*Pó
ˆð �:‰:˜ÑÜ˜q“>Ð!Ø�Z‰Z˜5Ñ Ü “?Ð"Ø�Z‰ZÐÜ˜q“>Ð!Ø�Z‰Zœ8Ò#Ü˜“7ˆNäÐ@Ä3ÀtÇzÁzÃ?ÑRÓSÐSrG   c                 óp  — t        | |j                  «      }t        | |j                  «      }t        |j                  «      }|t
        j                  k(  rZ| j                  sN| j                  |j                  «       j                  |j                  «       j                  «      }t        |d«      ‚t        j                  j                  |«      }|€[| j                  |j                  «       j                  |j                  «       j                  «      }t!        |d|j"                  z   «      ‚t%        |||«      S )Nz‹Division of ints in TorchScript uses Python 3 true division semantics. Please put `from __future__ import division` at the top of your filezunsupported binary operator: )r!  ÚleftÚrightrv   r«  rº   rË  Úuses_true_divisionræ  rª   r~  r}  rX   rÔ  Ú	binop_mapry   rn   rh   r   )r   r1  r”  r’  r«  Ú	err_ranger®  s          rE   Úbuild_BinOpzExprBuilder.build_BinOpÌ  sò   € ä˜˜dŸi™iÓ(ˆÜ˜˜dŸj™jÓ)ˆÜ�$—'‘'‹]ˆà”—‘Š= ×!7Ò!7Ø×*Ñ*¨3¯9©9«;¯?©?¸C¿I¹I»K×<MÑ<MÓNˆIÜØð;óð ô ×(Ñ(×,Ñ,¨RÓ0ˆØÐØ×*Ñ*¨3¯9©9«;¯?©?¸C¿I¹I»K×<MÑ<MÓNˆIÜ#ØÐ:¸R¿[¹[ÑHóð ô �X˜s CÓ(Ð(rG   c                 ó|  — t        | |j                  «      }t        |j                  «      }t        j
                  j                  |«      }|€'t        |j                  «       d|j                  z   «      ‚| j                  |j                  |j                  |j                  t        |«      z   «      }t        |||«      S )Nzunsupported unary operator: )r!  Úoperandrv   r«  rÔ  Úunop_mapry   rn   rª   rh   rz   r{   r|   rw   r-   )r   r1  Úsub_exprr«  r®  r  s         rE   Úbuild_UnaryOpzExprBuilder.build_UnaryOpâ  sš   € ä˜c 4§<¡<Ó0ˆÜ�$—'‘'‹]ˆÜ×'Ñ'×+Ñ+¨BÓ/ˆØÐÜ#Ø—
‘
“Ð<¸r¿{¹{ÑJóð ð �N‰NØ�K‰K˜Ÿ™¨$¯/©/¼CÀ»MÑ*Ió
ˆô �q˜( HÓ-Ð-rG   c                 ó@  — t        |j                  «      dk  r*t        dt        t        |j                  «      «      z   «      ‚|j                  D �cg c]  }t	        | |«      ‘Œ }}t        |j                  «      }t        j                  j                  |«      }|€a| j                  |d   j                  «       j                  |d   j                  «       j                  «      }t        |d|j                  z   «      ‚|d   }|dd  D ]  }t!        |||«      }Œ |S c c}w )Né   z.expected at least 2 values in BoolOp, but got r   rž   zunsupported boolean operator: )rw   r¼  rÏ   rk   r!  rv   r«  rÔ  Ú
boolop_mapry   ræ  rª   r~  r}  rn   rh   r   )	r   r1  r	  Ú	sub_exprsr«  r®  r  r”  r’  s	            rE   Úbuild_BoolOpzExprBuilder.build_BoolOpð  s  € äˆt�{‰{Ó˜aÒÜ Ø@Ä3ÄsÈ4Ï;É;ÓGWÓCXÑXóð ð @D¿{º{ÓK¹{°8”Z  XÕ.¸{ˆ	ÐKÜ�$—'‘'‹]ˆÜ×)Ñ)×-Ñ-¨bÓ1ˆØÐØ×*Ñ*Ø˜!‘×"Ñ"Ó$×(Ñ(¨)°A©,×*<Ñ*<Ó*>×*DÑ*DóˆIô $ØÐ;¸b¿k¹kÑIóð ð ˜‰lˆØ˜Q˜R“=ˆCÜ˜ # sÓ+‰Cð !àˆ
ùò Ls   ÁDc                 ó”   — t        t        | |j                  «      t        | |j                  «      t        | |j                  «      «      S r@   )r*   r!  r¥  r¹   r²  )r   r1  s     rE   Úbuild_IfExpzExprBuilder.build_IfExp  s9   € äÜ�s˜DŸI™IÓ&Ü�s˜DŸI™IÓ&Ü�s˜DŸK™KÓ(ó
ð 	
rG   c                 óv  — |j                   gt        |j                  «      z   D �cg c]  }t        | |«      ‘Œ }}d }t	        ||j
                  |dd  «      D ]Ú  \  }}}t        |«      }t        j                  j                  |«      }	| j                  |j                  «       j                  |j                  «       j                  «      }
|	€t        |
d|j                  z   «      ‚|t         j"                  k(  rt%        d||«      }t'        |
d|«      }nt%        |	||«      }|€|}ŒÎt%        d||«      }ŒÜ |S c c}w )Nrž   z!unsupported comparison operator: rÝ  rÖ  rØ  )r   r‹   Úcomparatorsr!  ÚzipÚopsrv   rÔ  Ú	cmpop_mapry   ræ  rª   r~  r}  rn   rh   rº   ÚNotInr   r-   )r   r1  ÚeÚoperandsr6  r”  Úop_r’  r«  r®  r  Úin_exprÚcmp_exprs                rE   Úbuild_ComparezExprBuilder.build_Compare  s%  € à15·±°¼dÀ4×CSÑCSÓ>TÒ0TÓUÑ0T¨1”J˜s AÕ&Ð0TˆÐUØˆä  ¨4¯8©8°X¸a¸b°\ÖB‰MˆC��cÜ�c“ˆBÜ"×,Ñ,×0Ñ0°Ó4ˆHØ×"Ñ" 3§9¡9£;§?¡?°C·I±I³K×4EÑ4EÓFˆAØÐÜ'ØÐ:¸R¿[¹[ÑHóð ð ”S—Y‘YŠô    c¨3Ó/�Ü" 1 e¨WÓ5‘ä  ¨3°Ó4�àˆ~Ø!‘ä˜u f¨hÓ7‘ð) Cð* ˆùò1 Vs   ¦D6c                 ó¸  ‡	‡
— d„ Š
d„ Š	ˆ	ˆ
fd„}t        | |j                  «      }t        |j                  «      }|t        j
                  u �rt        |j                  j                  t        j                  «      r¾|j                  j                  j                  D �cg c]  }t        | |«      ‘Œ }}|sy| j                  |j                  |j                  j                  j                  |j                  j                  j                  dz   «      }t        |g «      }|j                  |«       t        ||«      S t        |t        | |j                  j                  «      g«      S |t        j                  u rt        | ‰
| ||j                  «      g«      S |t        j                   u rt        | || ||j                  «      «      S |t        j                  u rßg }|j                  j                  D ]Q  }t        |t        j                  «      r|j                   ‰
| ||«      «       Œ7|j                  t        | |«      «       ŒS |se| j                  |j                  |j                  j                  |j                  j                  dz   «      }t        |g «      }|j                  |«       t        ||«      S t        |t        | |j                  «      g«      S c c}w )Nc                 ó  — |j                   �t        | |j                   «      nd }|j                  �t        | |j                  «      nd }|j                  �t        | |j                  «      nd }t	        |j                  «       |||«      S r@   )Úlowerr!  ÚupperÚstepr%   rª   )r   rç  Ú
slice_exprr   r!  r"  s         rE   Úbuild_SliceExprz4ExprBuilder.build_Subscript.<locals>.build_SliceExpr+  s�   € ð ×#Ñ#Ð/ô ˜3 
× 0Ñ 0Ô1àð ð ×#Ñ#Ð/ô ˜3 
× 0Ñ 0Ô1àð ð —?‘?Ð.ô ˜3 
§¡Ô0àð ô
 ˜TŸZ™Z›\¨5°%¸Ó>Ð>rG   c                 óª   — t        |j                  t        j                  «      rt	        |j                  «       d«      ‚t        | |j                  «      S )Nz9slicing multiple dimensions with tuples not supported yet)r—   r  rº   ÚTuplern   rª   r!  )r   rç  Ú
index_exprs      rE   Úbuild_Indexz0ExprBuilder.build_Subscript.<locals>.build_Index=  sD   € Ü˜*×*Ñ*¬C¯I©IÔ6Ü'Ø—J‘J“LØOóð ô ˜c :×#3Ñ#3Ó4Ð4rG   c                 óÈ  •— g }|j                   D ]Ï  }t        |«      }|t        j                  u r|j	                   ‰| ||«      «       Œ:|t        j
                  u r|j	                   ‰| ||«      «       Œf|t        j                  u r;|j                  t        u r)|j	                  t        |j                  «       «      «       Œ³t        |j                  «       d|› d�«      ‚ |S )Nz!slicing multiple dimensions with z not supported)Údimsrv   rº   ÚIndexr©   ÚSliceÚConstantr  rû  r   rª   rn   )r   rç  Úextslicer  r1  Úsub_typer(  r$  s         €€rE   Úbuild_ExtSlicez3ExprBuilder.build_Subscript.<locals>.build_ExtSliceE  s¿   ø€ ØˆIØ Ÿœ�Ü ›:�ØœsŸy™yÑ(Ø×$Ñ$¡[°°d¸DÓ%AÕBØ¤§¡Ñ*Ø×$Ñ$¡_°S¸$ÀÓ%EÕFØ¤§¡Ñ-°$·*±*ÄÑ2HØ×$Ñ$¤T¨$¯*©*«,Ó%7Õ8ä+ØŸ
™
›Ø;¸H¸:À^ÐTóð ð &ð ÐrG   r  )r!  r  rv   Úslicerº   r+  r—   r&  Úeltsrz   r{   r|   r,   r©   r)   r,  ÚExtSlice)r   r1  r0  rç  r/  r'  Úindicesr  Útupr(  r$  s            @@rE   Úbuild_SubscriptzExprBuilder.build_Subscript)  sE  ù€ ò	?ò$	5õ	ô" ˜#˜tŸz™zÓ*ˆÜ˜Ÿ
™
Ó#ˆØ”s—y‘yÒ Ü˜$Ÿ*™*×*Ñ*¬C¯I©IÔ6ð CGÇ*Á*×BRÑBR×BWÒBWóÙBW°J”J˜s JÕ/ÐBWð ð ñ ð Ÿ™ØŸ™ØŸ
™
×(Ñ(×3Ñ3ØŸ
™
×(Ñ(×3Ñ3°aÑ7ó�Aô
 ' q¨"Ó-�CØ—N‘N 3Ô'Ü   wÓ/Ð/ä  ¬
°3¸¿
¹
×8HÑ8HÓ(IÐ'JÓKÐKØœŸ™Ñ"Ü˜T¡O°C¸¸t¿z¹zÓ$JÐ#KÓLÐLØœŸ™Ñ%Ü˜T¡>°#°t¸T¿Z¹ZÓ#HÓIÐIàœ3Ÿ9™9Ñ$à�Ø"&§*¡*§/¤/�JÜ! *¬c¯i©iÔ8ØŸ™¡°s¸DÀ*Ó'MÕNàŸ™¤z°#°zÓ'BÕCð	 #2ñ àŸ™ØŸ™ T§Z¡Z×%:Ñ%:¸D¿J¹J×<QÑ<QÐTUÑ<Uó�Aô ' q¨"Ó-�CØ—N‘N 3Ô'Ü   wÓ/Ð/Ü˜T¤J¨s°D·J±JÓ$?Ð#@ÓAÐAùòOs   ÂKc           
      óÌ   — t        | j                  |j                  |j                  |j                  dz   «      |j                  D �cg c]  }t        | |«      ‘Œ c}«      S c c}w ©Nrž   )r   rz   r{   r|   r2  r!  ©r   r1  r  s      rE   Ú
build_ListzExprBuilder.build_List…  sP   € äØ�N‰N˜4Ÿ;™;¨¯©¸¿¹È1Ñ9LÓMØ)-¯ªÓ3© AŒZ˜˜QÕ¨Ñ3ó
ð 	
ùâ3ó   ÁA!
c           
      óÌ   — t        | j                  |j                  |j                  |j                  dz   «      |j                  D �cg c]  }t        | |«      ‘Œ c}«      S c c}w r8  )r,   rz   r{   r|   r2  r!  r9  s      rE   Úbuild_TuplezExprBuilder.build_TupleŒ  sP   € äØ�N‰N˜4Ÿ;™;¨¯©¸¿¹È1Ñ9LÓMØ)-¯ªÓ3© AŒZ˜˜QÕ¨Ñ3ó
ð 	
ùâ3r;  c                 ón  — | j                  |j                  |j                  |j                  dz   «      }|j                  r|j                  d   st	        |d«      ‚t        ||j                  D �cg c]  }t        | |«      ‘Œ c}|j                  D �cg c]  }t        | |«      ‘Œ c}«      S c c}w c c}w )Nrž   r   z1Dict expansion (e.g. `{**dict}`) is not supported)rz   r{   r|   Úkeysrn   r   r!  r¼  )r   r1  rª   r  s       rE   Ú
build_DictzExprBuilder.build_Dict“  s›   € à—‘˜tŸ{™{¨D¯O©O¸T¿_¹_ÈqÑ=PÓQˆØ�9Š9˜TŸY™Y qš\Ü#ØÐJóð ô ØØ)-¯ªÓ3© AŒZ˜˜QÕ¨Ñ3Ø)-¯ªÓ5© AŒZ˜˜QÕ¨Ñ5ó
ð 	
ùâ3ùÚ5s   Á0B-
ÂB2c                 ó¾   — t        |j                  «      }| j                  |j                  |j                  |j                  t        |«      z   «      }t        ||«      S r@   )rk   r  rz   r{   r|   rw   r   ©r   r1  r  r  s       rE   Ú	build_NumzExprBuilder.build_Num   sB   € ä�D—J‘J“ˆØ�N‰N˜4Ÿ;™;¨¯©¸¿¹Ì3ÈuË:Ñ9UÓVˆÜ�Q˜‹ÐrG   c           
      ó  — |j                   }|�t        |t        «      rt        j	                  | |«      S t        |t
        t        t        f«      rt        j                  | |«      S t        |t        «      rt        j                  | |«      S t        |t        t        «      «      rt        j                  | |«      S | j                  |j                  |j                   |j                   t#        t        |«      «      z   «      }t%        |d«      ‚)Nz Unknown Constant expression type)r  r—   r.  rÔ  rþ  ÚintÚfloatÚcomplexrC  rk   Ú	build_Strrv   rû  rö  rz   r{   r|   rw   rX   )r   r1  r  Úerror_ranges       rE   Úbuild_ConstantzExprBuilder.build_Constant¦  sÎ   € à—
‘
ˆØˆ=œJ u¬dÔ3ô ×1Ñ1°#°tÓ<Ð<Ü�eœc¤5¬'Ð2Ô3Ü×(Ñ(¨¨dÓ3Ð3Ü˜œsÔ#Ü×(Ñ(¨¨dÓ3Ð3Ü˜œt¤H›~Ô.Ü×-Ñ-¨c°4Ó8Ð8àŸ.™.Ø—‘˜TŸ_™_¨d¯o©oÄÄCÈÃJÃÑ.OóˆKô   Ð-OÓPÐPrG   c                 óÄ   — t        |j                  «      }| j                  |j                  |j                  |j                  t        |«      z   dz   «      }t        ||«      S r8  )rk   r  rz   r{   r|   rw   r(   rB  s       rE   rH  zExprBuilder.build_Str¹  sM   € ä�D—J‘J“ˆØ�N‰NØ�K‰K˜Ÿ™¨$¯/©/¼CÀ»JÑ*FÈÑ*Jó
ˆô ˜Q Ó&Ð&rG   c           	      ó¬  — d}g }|j                   D ]ã  }| j                  |j                  |j                  |j                  dz   «      }t	        |t
        j                  «      r^|j                  dk7  rt        |d«      ‚|j                  �t        |d«      ‚|dz  }|j                  t        | |j                  «      «       Œ¯t	        |t
        j                  «      r||j                  z  }ŒÙt        |d«      ‚ | j                  |j                  |j                  |j                  dz   «      }t        t        t!        ||«      t#        |d«      «      |g «      S )	Nru   rž   r©  z%Don't support conversion in JoinedStrz%Don't support formatting in JoinedStrz{}zUnsupported value in JoinedStrÚformat)r¼  rz   r{   r|   r—   rº   ÚFormattedValueÚ
conversionrn   Úformat_specr©   r!  r  r-  r   r$   r(   r   )r   r1  r“   rò   r  r  s         rE   Úbuild_JoinedStrzExprBuilder.build_JoinedStrÁ  s  € àˆØˆØ—[”[ˆEØ—‘˜uŸ|™|¨U×-=Ñ-=¸u×?OÑ?OÐRSÑ?SÓTˆAÜ˜%¤×!3Ñ!3Ô4Ø×#Ñ# rÒ)Ü+¨AÐ/VÓWÐWØ×$Ñ$Ð0Ü+¨AÐ/VÓWÐWØ�T‘	�Ø—‘œJ s¨E¯K©KÓ8Õ9Ü˜E¤3§<¡<Ô0à�U—[‘[Ñ ‘ä'¨Ð+KÓLÐLð !ð �N‰N˜4Ÿ;™;¨¯©¸¿¹È1Ñ9LÓMˆÜ”VœM¨!¨QÓ/´°q¸(Ó1CÓDÀdÈBÓOÐOrG   c                 óâ  — | j                  |j                  |j                  |j                  «      }t        |j                  «      dk7  rt        |d«      ‚t        |j                  d   j                  «      dk7  rt        |d«      ‚t        | |j                  «      }t        | |j                  d   j                  «      }t        | |j                  d   j                  «      }t        ||||«      S ©Nrž   z.Only a single generator is currently supportedr   z'Comprehension ifs are not supported yet)rz   r{   r|   rw   Ú
generatorsrn   Úifsr!  Úeltr–  rµ  r   )r   r  r  Úelt_exprÚtarget_exprÚ	iter_exprs         rE   Úbuild_ListCompzExprBuilder.build_ListComp×  sÀ   € à�N‰N˜4Ÿ;™;¨¯©¸¿¹ÓIˆÜˆt�‰Ó 1Ò$Ü# AÐ'WÓXÐXäˆt�‰˜qÑ!×%Ñ%Ó&¨!Ò+Ü# AÐ'PÓQÐQä˜c 4§8¡8Ó,ˆÜ   d§o¡o°aÑ&8×&?Ñ&?Ó@ˆÜ˜s D§O¡O°AÑ$6×$;Ñ$;Ó<ˆ	ä˜˜8 [°)Ó<Ð<rG   c                 ó.   — t         j                  | |«      S r@   )rÔ  rZ  )r   r  s     rE   Úbuild_GeneratorExpzExprBuilder.build_GeneratorExpæ  s   € ô ×)Ñ)¨#¨tÓ4Ð4rG   c                 ó  — | j                  |j                  |j                  |j                  «      }t        |j                  «      dk7  rt        |d«      ‚t        |j                  d   j                  «      dk7  rt        |d«      ‚t        | |j                  «      }t        | |j                  «      }t        | |j                  d   j                  «      }t        | |j                  d   j                  «      }t        |||||«      S rS  )rz   r{   r|   rw   rT  rn   rU  r!  Úkeyr  r–  rµ  r   )r   r  r  Úkey_exprÚ
value_exprrX  rY  s          rE   Úbuild_DictCompzExprBuilder.build_DictCompë  sÒ   € à�N‰N˜4Ÿ;™;¨¯©¸¿¹ÓIˆÜˆt�‰Ó 1Ò$Ü# AÐ'WÓXÐXäˆt�‰˜qÑ!×%Ñ%Ó&¨!Ò+Ü# AÐ'PÓQÐQä˜c 4§8¡8Ó,ˆÜ  T§Z¡ZÓ0ˆ
Ü   d§o¡o°aÑ&8×&?Ñ&?Ó@ˆÜ˜s D§O¡O°AÑ$6×$;Ñ$;Ó<ˆ	ä˜˜8 Z°¸iÓHÐHrG   c                 óª   — | j                  |j                  |j                  |j                  dz   «      }t        |t	        | |j
                  «      «      S r8  )rz   r{   r|   r&   r!  r  rõ  s      rE   Úbuild_StarredzExprBuilder.build_Starredû  s=   € à�N‰N˜4Ÿ;™;¨¯©¸¿¹È1Ñ9LÓMˆÜ�qœ* S¨$¯*©*Ó5Ó6Ð6rG   N);rh   ri   rj   rº   rÈ  rÉ  rÊ  rË  rÒ  rÌ  ÚFloorDivrÎ  rÏ  rÍ  rÐ  rÑ  r  ÚMatMultÚNotÚUSubÚInvertr  ÚAndÚOrr  ÚEqÚNotEqÚLtEÚLtÚGtEÚGtÚIsÚIsNotÚInr  r  r€  rë  rò  rö  rü  rþ  r  r
  r  r  r  r6  r:  r=  r@  rC  rJ  rH  rQ  rZ  r\  ra  rc  rl   rG   rE   rÔ  rÔ  T  sì  „ à�‰�Ø�‰�Ø�‰�#Ø�‰�Ø�‰�Ø�‰�Ø�‰�dØ�
‰
�CØ�
‰
�CØ�	‰	�3Ø�
‰
�DØ�
‰
�Dð€Ið  !€Iˆc�k‰kÑð 	�‰�Ø�‰�#Ø�
‰
�Cð€Hð 	�‰�Ø�‰�ð€Jð 	�‰�Ø�	‰	�4Ø�‰�Ø�‰�Ø�‰�Ø�‰�Ø�‰�Ø�	‰	�8Ø�‰�Ø�	‰	�8ð€Ið ñ:ó ð:ð  ñ)ó ð)ð" ñó ðð ñ&ó ð&ð$ ñTó ðTð ñ)ó ð)ð* ñ.ó ð.ð ñó ðð( ñ
ó ð
ð ñó ðð6 ñYBó ðYBðv ñ
ó ð
ð ñ
ó ð
ð ñ

ó ð

ð ñó ðð
 ñQó ðQð$ ñ'ó ð'ð ñPó ðPð* ñ=ó ð=ð ñ5ó ð5ð ñIó ðIð ñ7ó ñ7rG   rÔ  c                 ó’   — | j                   d | j                  |«      }| j                  ||d   z   |t        |«      z   |d   z   «      S )Nr   rž   )rÖ   Úrindexræ  rw   )r   ÚposÚsubstrrª  Únew_poss        rE   r­  r­    sL   € Ø�j‰j˜˜#Ð×%Ñ% fÓ-€GØ×Ñ˜g¨°©
Ñ2°G¼cÀ&»kÑ4IÈGÐTUÉJÑ4VÓWÐWrG   )NF)NNr@   ))r   r   )|rº   rZ  rÐ   r£   rH  rä  Úcollectionsr   Útextwrapr   r]   Útorch.jit.annotationsr   Útorch._C._jit_tree_viewsr   r   r   r	   r
   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r    r!   r"   r#   r$   r%   r&   r'   r(   r)   r*   r+   r,   r-   r.   r/   r0   r1   Útorch._jit_internalr2   r3   r4   r5   Útorch._sourcesr6   r7   r8   r9   rî   Útorch.jit._dataclass_implsr:   Útorch.jit._monkeytype_configr;   r<   rB   rC   ÚsetÚascii_lowercaseÚascii_uppercaseÚdigitsÚ_identifier_charsrF   rÒ   ÚImportÚ
ImportFromÚGlobalr}   rx   ÚupdateÚAsyncFunctionDefÚAsyncForÚ	AsyncWithÚTryÚNonlocalr½   Ú	ExceptionrX   rn   rr   rˆ   rŽ   r”   r²   rÀ   ré   r§   r.  r  r  rØ   rÿ   r,  r   r/  rh  rq  rw  ry  r»   rÔ  r!  r�   rŠ   r­  rl   rG   rE   Ú<module>r�     s?  ðã 
Û Û Û Û 	Û Ý "Ý ã Û Ý ÷-÷ -÷ -÷ -÷ -÷ -÷ -÷ -÷ -÷ -÷ -ó -÷\ó ÷ó õ ?ß Mð Ð Ø�)€Ù˜×.Ñ.°×1GÑ1GÑGÈ&Ï-É-ÑWÓXÐ òHð
 ‡O�OÐ+Ø‡G�Gˆ[Ø‡J�JÐ Ø‡L�LÐ%Ø‡H�HÐØ‡I�IÐ!Ø‡J�J�Ø‡J�JÐ#Ø‡N�NÐ'Ø‡J�JÐ"Ø‡I�IÐ!Ø‡L�LÐ'ðÐ ð  ‡O�O�UØ‡G�GˆUØ‡J�J�Ø‡L�L�'Ø‡H�HˆfØ‡I�IˆwØ‡J�J�Ø‡J�J�Ø‡N�N�FØ‡J�J�Ø‡I�IˆwØ‡L�L�*ðÐ ð  × Ñ à×ÑÐ:Ø�‰Ð'Ø�‰Ð.Ø�‰�Ø�‰Ð*ðôð × Ñ à×Ñ˜kØ�‰�kØ�‰�|Ø�‰�Ø�‰�jðôð × Ñ à�‰Ð.ðôô
<�Iô 
<ô	˜ô 	ô,Ð,ô ,ô	˜ô 	òò
%ò
òDò$JXóZ?ðF°ó ÷$!ñ !òóAð.2ð ó1óh>ò[ò|ò,ô:
�gô 
ô gV�'ô gVôTj7�'ô j7ñZ ‹]€
Ù‹]€
Ù Ó"€ôXrG   