ó
    CC˜j‹ø ã                   óü
  • % S r SSKrSSKrSSKrSSKrSSKrSSKrSSKrSSK	r	SSK
r
SSKrSSKrSSKrSSKrSSKrSSKrSSKJrJr  SSKJrJr  SSKJrJrJrJrJrJr  SSKJr  SSKJr  SSK r SSK!J"r"  SS	K#J$r$  SS
K%J&r&  SSK'J(r(J)r)J*r*J+r+  SSK,J-r-J.r.J/r/  SSK0J1r1J2r2J3r3J4r4J5r5J6r6J7r7J8r8J9r9J:r:J;r;J<r<  SSK=J>r>J?r?  SSK@JArAJBrBJCrCJDrDJErEJFrFJGrGJHrHJIrIJJrJ  SSKKJLrLJMrMJNrNJOrOJPrPJQrQJRrRJSrSJTrTJUrUJVrV  SSKWJXrXJYrYJZrZJ[r[J\r\J]r]J^r^J_r_J`r`Jara  SSKbJcrc  SSKdJere   SSKfJgrg  \(       a,  SSKiJjrj  SSKkJlrlJmrmJnrn  SSKoJprp  SSKqJrrrJsrs  SSKtJuruJvrv  SSKwJxrx  \" S\S\4   S9ryS rzS!r{\|" 1 S"k5      r}\|" S#15      r~S$r\" 5       r€\\\4   \�S%'    " S& S'\‚5      rƒ\GR                  S(\A4S) j5       r… " S* S+5      r†S,\S(\†4S- jr‡ " S. S/\ˆ5      r‰S,\S0S1S2\$S-  S3\\   S4\Š\‹\4   S(\Š\‹\a4   4S5 jrŒ S¨S0S1S6\S7\$S-  S(\a4S8 jjr�S0S1S9\Š\‹\4   S(S4S: jrŽS;S1S9\Š\‹\a4   S<\GR                  S(S4S= jr�S<\GR                  S>\Š\‹\4   S?\‹S@\‘\’S4   S-  SA\‘\   S-  SB\Š\‹\4   S-  SC\Š\‹\4   S-  S(\R*                  4SD jr“1 SEkr”S0S1SF\’S7\$S-  S?\‹S(\a4
SG jr• " SH SI\a5      r– " SJ SK\–5      r— " SL SM\—5      r˜ " SN SO\–5      r™ " SP SQ\a5      rš " SR SS\š5      r› " ST SU\–5      rœ " SV SW\œ5      r� " SX SY\—5      rž " SZ S[\ž5      rŸ " S\ S]\—5      r S0S1SF\S\4   S?\‹S3\¡\a   S4\Š\‹\a4   S(\a4S^ jr¢ " S_ S`\–5      r£ " Sa Sb\£5      r¤\GRJ                  \GRL                  \GRN                  \GRP                  \GRR                  \GRT                  \GRV                  \GRX                  \GRZ                  1	r® " Sc Sd\a5      r¯ " Se Sf\¯5      r° " Sg Sh\–5      r± " Si Sj\±5      r²S(\Š\\4   4Sk jr³S0S1SF\S\4   S(\A4Sl jr´ " Sm Sn\—5      rµ " So Sp\—5      r¶ " Sq Sr\a5      r· " Ss St\a5      r¸ " Su Sv\a5      r¹SSwKqJºrºJ»r»J¼r¼J½r½   " Sx Sy\½5      r¾\¾" 5       r¿ " Sz S{\a5      rÀ " S| S}\a5      rÁ " S~ S\a5      rÂ " S€ S�\a5      rÃ " S‚ Sƒ\a5      rÄ " S„ S…\—5      rÅ " S† S‡\—5      rÆ " Sˆ S‰\¯5      rÇS0S1SŠ\/ S4   S?\‹S(S4S‹ jrÈ " SŒ S�\a5      rÉS0S1SŽ\GR”                  \GR–                  -  \GR˜                  -  \GRš                  -  S�S�S(S4S‘ jrÎ " S’ S“\a5      rÏ " S” S•\a5      rÐ " S– S—\a5      rÑ " S˜ S™\a5      rÒ " Sš S›\a5      rÓ " Sœ S�\a5      rÔ " Sž SŸ\a5      rÕ " S  S¡\a5      rÖ " S¢ S£\a5      r× " S¤ S¥\a5      rØ " S¦ S§\a5      rÙg! \h a    Srg GNaf = f)©aŽ  
Function-related variable tracking classes for Dynamo's symbolic execution.

This module contains classes that track different types of functions during graph
compilation, including:
- User-defined functions and methods
- Built-in functions and methods
- Wrapped functions (e.g. from decorators)
- Special function types (e.g. functools.partial)
- Triton kernels and related function types

These classes are responsible for:
- Tracking function calls and their arguments
- Managing function closures and cell variables
- Handling function attributes and special methods
- Maintaining guards for function identity and closure contents
- Supporting function inlining and specialization
- Enabling proper symbolic execution of different function types

The variable trackers here work together with the rest of Dynamo to enable
accurate graph capture while handling Python's various function-related behaviors.
é    N)ÚCallableÚSequence)ÚCellTypeÚFunctionType)ÚAnyÚcastÚLiteralÚOptionalÚTYPE_CHECKINGÚTypeVar)ÚNever)ÚWeakKeyDictionary)Úget_stack_above_dynamo)ÚSource)Úis_namedtuple_classé   )ÚconfigÚgraph_break_hintsÚ	polyfillsÚ	variables)Úcreate_call_functionÚcreate_rot_nÚis_generator)Úformat_frame_infoÚget_dynamo_observed_exceptionÚInfiniteGeneratorErrorÚObservedExceptionÚObservedGeneratorExitÚObservedUserStopIterationÚraise_observed_exceptionÚraise_type_errorÚraise_value_errorÚStepUnsupportedÚunimplementedÚUnsupported)ÚGuardBuilderÚinstall_guard)
Ú
AttrSourceÚCellContentsSourceÚClosureSourceÚConstantSourceÚDefaultsSourceÚGetItemSourceÚImportSourceÚSkipGuardSourceÚTypeMROSourceÚ
TypeSource)Úcheck_constant_argsÚcheck_unspec_or_constant_argsÚ
FrameStateÚidentityÚis_functionÚ2is_lru_cache_wrapper_trace_without_warning_allowedÚis_tensor_base_attr_getterÚis_wrapper_or_member_descriptorÚistypeÚ	make_cellÚunpack_iterableé   )
Ú#AsPythonConstantNotImplementedErrorÚAttributeMutationNewÚGetSetÚgetset_buildÚgetset_readÚMemberÚMethodÚNO_SUCH_SUBOBJÚValueMutationNewÚVariableTracker©ÚConstantVariable)ÚUserDefinedObjectVariable)Ú_fsdp_param_group)Ú	PyCodegen)Ú&InliningGeneratorInstructionTranslatorÚInliningInstructionTranslatorÚInstructionTranslatorBase)ÚContextWrappingVariable)ÚTritonGridTypeÚTritonKernelType)ÚBaseListVariableÚListVariable)ÚTensorVariableÚ_F.)Úboundé   é   >   Úis_leafÚ	namespaceÚnone_is_leafrZ   zihttps://github.com/pytorch/pytorch/issues/new?&labels=oncall%3A+pt2&projects=&template=pt2-bug-report.ymlÚ_spec_cachec                   ó   • \ rS rSrSrg)ÚClosureConversionErroré�   © N©Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__static_attributes__ra   ó    Ú¯C:\Users\johnn\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.13_qbz5n2kfra8p0\LocalCache\local-packages\Python313\site-packages\torch/_dynamo/variables/functions.pyr_   r_   �   ó   † Úrh   r_   Úreturnc            	      óT   • [        [        [        [        S5      S5      S5      S5      $ )NÚtorchÚutilsÚ_pytreeÚSUPPORTED_NODES)r(   r.   ra   rh   ri   Ú!get_pytree_SUPPORTED_NODES_sourcerq   ”   s*   € ô Ü”:œl¨7Ó3°WÓ=¸yÓIØóð rh   c                   ó8   • \ rS rSrS\SS4S jrS\SS4S jrSrg)ÚFunctionSpecéž   Úfuncrk   Nc                 ó„  • UR                   nUR                  nUR                  U l        UR                  U l        UR                  U l        US U R                   U l        X0R                  U R
                   U l	        U R                  U R                  -   U l
        X0R
                  U R
                  U R                  -    U l        U R
                  U R                  -   nUR                  [        -  (       a  X4   OS U l        X@R                  (       a  SOS-  nUR                  [        -  (       a
  X4   U l        g S U l        g ©Nr=   r   )Ú__code__Úco_varnamesÚco_posonlyargcountÚposonly_countÚco_argcountÚ	arg_countÚco_kwonlyargcountÚkwonly_countÚposonly_namesÚpos_or_kw_namesÚall_pos_namesÚkwonly_namesÚco_flagsÚ
CO_VARARGSÚvarargs_nameÚCO_VARKEYWORDSÚ
varkw_name)Úselfru   ÚcodeÚvnÚoffs        ri   Ú__init__ÚFunctionSpec.__init__Ÿ   sü   € Ø�}‰}ˆØ×Ñˆà!×4Ñ4ˆÔØ×)Ñ)ˆŒØ ×2Ñ2ˆÔàÐ 4 $×"4Ñ"4Ð5ˆÔØ!×"4Ñ"4°t·~±~ÐFˆÔØ!×/Ñ/°$×2FÑ2FÑFˆÔØŸ~™~°·±À×ARÑARÑ0RÐSˆÔà�n‰n˜t×0Ñ0Ñ0ˆØ'+§}¡}´z×'A˜BšGÀtˆÔØ×%×%‰q¨1Ñ,ˆØ%)§]¡]´^×%C˜"™'ˆ�Èˆ�rh   c           
      ó  • UR                   =(       d    SU l        UR                  =(       d    0 U l        [	        [        U R                  [        U R                  5      * S  [        [        U R                  5      5      5      5      U l	        g ©Nra   )
Ú__defaults__ÚdefaultsÚ__kwdefaults__Ú
kwdefaultsÚdictÚzipr‚   ÚlenÚrangeÚpos_default_map)r‰   ru   s     ri   Úupdate_defaultsÚFunctionSpec.update_defaults±   si   € ð ×)Ñ)×/¨RˆŒØ×-Ñ-×3°ˆŒô  $Ü�×"Ñ"¤C¨¯©Ó$6Ð#6Ð#8Ð9¼5ÄÀTÇ]Á]ÓASÓ;TÓUó 
ˆÕrh   )r‚   r}   r’   r”   r   rƒ   r™   r�   r{   r€   r†   rˆ   )rc   rd   re   rf   r   r�   rš   rg   ra   rh   ri   rs   rs   ž   s+   † ðN˜\ð N¨dô Nð$	
 Lð 	
°T÷ 	
rh   rs   ru   c                 ó^   • [         R                  U 5      nUc  [        U 5      nU[         U '   U$ ©N)r]   Úgetrs   )ru   Úspecs     ri   Ú	_get_specr    ½   s.   € Ü�?‰?˜4Ó €DØ�|Ü˜DÓ!ˆØ Œ�DÑØ€Krh   c                   ó   • \ rS rSrSrg)ÚBindArgsTypeErroréÅ   ra   Nrb   ra   rh   ri   r¢   r¢   Å   rj   rh   r¢   ÚtxrO   Ú	fn_sourceÚargsÚkwargsc           
      óÈ  • [        U 5      n[        U5      UR                  :X  a‚  U R                  (       dq  U(       dj  UR                  (       dY  UR
                  (       dH  UR                  (       d7  [        UR                  5       VVs0 s H  u  pgU[        XU   5      _M     snn$ UR                  U 5        0 n[        U5      n	Sn
[        UR                  5       GH3  u  pgU[        U5      :  a  [        XU   5      X‡'   M'  Xy;   a-  XuR                  ;  a  [        XR                  U5      5      X‡'   MY  XuR                  ;   aÀ  UR                  U   nU(       a;  U
(       d4  [        [!        US5      R#                  [$        R&                  5      5        Sn
S nU(       aH  [(        R*                  " UR,                  U   5      (       a  [.        R0                  (       d  [3        X+5      n[        XR,                  U   U5      X‡'   GM(  [5        SU 35      e   U[        UR                  5      S  nUR                  (       a"  [        U[7        U5      5      X…R                  '   O4U(       a-  [5        S[        U5       S[        UR                  5       35      eUR                   Hq  nXy;   a  [        XR                  U5      5      X‡'   M&  XuR8                  ;   a0  S nU(       a
  [3        X'SS9n[        XR8                  U   U5      X‡'   Me  [5        SU 35      e   UR
                  (       a  [        X5      X…R
                  '   U$ U	(       a  [5        S	[;        U	5       35      eU$ s  snnf )
NFr‘   Tz&missing required positional argument: z#Too many positional arguments: got z, expected )Úis_kwz(Missing required keyword-only argument: zUnexpected keyword arguments: )r    r—   r}   r‘   r†   rˆ   rƒ   Ú	enumerater‚   Úwrap_bound_argrš   r•   r€   Úpopr™   r'   r(   Ú
make_guardr&   ÚSEQUENCE_LENGTHrI   Ú
is_literalr’   r   Ú%skip_guards_on_constant_func_defaultsr,   r¢   Útupler”   Úlist)ru   r¤   r¥   r¦   r§   rŸ   ÚiÚnameÚbaÚrem_kwÚguarded_pos_defaults_lenÚidxÚdefault_sourceÚextraÚkwdefault_sources                  ri   Úbind_args_cachedr¼   É   sß  € ô �T‹?€Dô
 	ˆD‹	�T—^‘^Ó#Ø×!×!ÞØ×!×!Ø——Ø×!×!ô % T×%7Ñ%7Ô8ô
â8‘�ð ”. ¨!¡WÓ-Ò-Ù8ò
ð 	
ð 	×Ñ˜ÔØ	€BÜ�&‹\€FØ$Ðô ˜T×/Ñ/×0‰ˆØŒs�4‹y‹=Ü% b¨q©'Ó2ˆB‹HØ‹^ð ×*Ñ*Ó*ä% b¯*©*°TÓ*:Ó;ˆB‹HØ×)Ñ)Ó)Ø×&Ñ& tÑ,ˆCÞÖ!9ô Ü˜y¨.Ó9×DÑDÜ$×4Ñ4óôð
 ,0Ð(Ø!ˆNÞÜ ×+Ò+¨D¯M©M¸#Ñ,>×?Ñ?Ü×@×@ä!/°	Ó!?�Ü% b¯-©-¸Ñ*<¸nÓMˆBŒHä#Ð&LÈTÈFÐ$SÓTÐTñA 1ðF ”�T×'Ñ'Ó(Ð*Ð+€EØ××Ü .¨r´5¸³<Ó @ˆ×ÑÒÞ	ÜØ1´#°d³)°¸KÌÈD×L^ÑL^ÓH_ÐG`Ðaó
ð 	
ð
 ×!Ô!ˆØ‹>Ü% b¯*©*°TÓ*:Ó;ˆB‹HØ—_‘_Ó$Ø#ÐÞÜ#1°)ÈÑ#NÐ Ü% b¯/©/¸$Ñ*?ÐAQÓRˆB‹Hä#Ð&NÈtÈfÐ$UÓVÐVñ "ð ‡‡Ü,¨RÓ8ˆ�?‰?Ñð €Iö 
ÜÐ"@ÄÀfÃÀÐ OÓPÐPà€IùóS
s   ÂMÚvalÚsourcec                 ó¦   • [        U[        5      (       a  U$ U(       d  [        R                  " X5      $ [        R                  R                  XU S9$ )N©r¤   )Ú
isinstancerG   Úbuildr   ÚLazyVariableTrackerÚcreate)r¤   r½   r¾   s      ri   r«   r«   (  sH   € ô �#”×'Ñ'Øˆ
ÞÜ×$Ò$ RÓ-Ð-ô ×,Ñ,×3Ñ3°CÀBÐ3ÐGÐGrh   Úresultc                 óœ   • [        UR                  5       5       H/  u  p#[        U[        [        45      (       d  M"  [        X5      X'   M1     g r�   )r²   ÚitemsrÁ   r±   r•   r«   )r¤   rÅ   ÚkÚvs       ri   Úwrap_args_kwargsrÊ   6  s6   € Ü�V—\‘\“^Ö$‰ˆÜ�aœ%¤˜×'Ó'ä& rÓ-ˆF‹Iò %rh   ÚparentrŠ   c                 óÈ   • U R                   R                  nUR                   H<  nUR                  5       nXA;   a   UR	                  XQR                  U5      5        XQU'   M>     g)z³
Update `result` to add mapping from local name to new cells created
directly by `code`, or update SideEffects in `parent` if a local cell is
already in `result` (cell argument).
N)ÚoutputÚside_effectsÚco_cellvarsÚtrack_cell_newÚ
store_cellr¬   )rË   rÅ   rŠ   rÎ   r´   Únew_cells         ri   Úinit_cellvarsrÓ   =  sV   € ð —=‘=×-Ñ-€Là× Ô ˆØ×.Ñ.Ó0ˆØ‹>ð ×#Ñ# H¯j©j¸Ó.>Ô?Øˆt‹ò !rh   Ú	f_globalsr´   r’   Úclosurer”   Úannotationsc                 óô   • SSK Jn  U" XX#U5      nXXl        [        U[        5      (       a  SSKJn	  [        U	" U5      5      nUb,  [        U[        5      (       d  [        S[        U5       35      eXhl
        U$ )Nr   ©r   ©Úpairwisez(annotations must be None or a dict, got )Útypesr   r“   rÁ   r±   Ú	itertoolsrÚ   r•   ÚAssertionErrorÚtypeÚ__annotations__)
rŠ   rÔ   r´   r’   rÕ   r”   rÖ   r   ru   rÚ   s
             ri   Ú_create_nested_fnrà   R  sx   € õ #á˜¨¸ÓA€DØ$Ôä�+œu×%Ñ%Ý&ä™8 KÓ0Ó1ˆð Ñ¤:¨k¼4×#@Ñ#@ÜØ6´t¸KÓ7HÐ6IÐJó
ð 	
ð 'Ôà€Krh   >
   Ú__doc__rx   rc   rd   Ú__closure__Ú__globals__Ú__builtins__r‘   r“   rß   Úfnc                 ól  • U=(       a    [        X#5      nU(       a  US:X  a  [        U5      nS n [        R                  " X5      nU[        ;   a  [        X5      nU(       a  [        R                  R                  XBU S9$ [        R                  " X5      $ ! [         a    [        [        U 5         Nlf = f)Nrß   rÀ   )r(   r/   ÚinspectÚgetattr_staticÚAttributeErrorr    Úfn_known_dunder_attrsÚgetattrr   rÃ   rÄ   rG   rÂ   )r¤   rå   r¾   r´   Úsubobjs        ri   Úfn_getattro_implrí   }  s¦   € ð ×0œ
 6Ó0€Fæ�$Ð+Ó+ô ! Ó(ˆà€Fð5Ü×'Ò'¨Ó1ˆð Ô$Ó$Ü˜Ó"ˆÞÜ×,Ñ,×3Ñ3°FÀrÐ3ÐJÐJÜ× Ò  Ó,Ð,øô ó 5ô 	!¤°Ö4ð5ús   °B ÂB3Â2B3c            
       ó
  ^ • \ rS rSr% SrS\S'   S rS\\   4S jr	S\
S-  4S jrS.S jrS	S
S\S\\   S\\\4   S\4
U 4S jjrS\4S jrS\4S jrS\4S jrS\S-  4S jrS\\\4   4S jrS\R.                  4S jrS\4S jrS\R6                  4S jrS\4S jrS	S
S\4S jrS	S
S\S\4S jrS	S
S\4S jr S	S
S\4S jr!S	S
S\4S jr"S	S
S\4S jr#\$" \S5      \$" \"S5      \$" S 5      \$" S  5      \$" S! 5      \$" S" 5      \$" \ 5      \$" \!5      S#.r%\&" S$ 5      \&" S% 5      \&" \#5      S&.r'S	S
S\SS4S' jr(S	S
S\SS4S( jr)S	S
S\\   S\\\4   S\4S) jr*S	S
S\S\+4S* jr,S	S
S\\\4   4S+ jr-S\4S, jr.S-r/U =r0$ )/ÚBaseUserFunctionVariableiš  NúVariableTracker | NonerÖ   c                 ó    • SSK Jn  U" XX#5      $ ©Nr=   )Úobject_richcompare©Úobject_protocolró   ©r‰   r¤   ÚotherÚopró   s        ri   Útp_richcompare_implÚ,BaseUserFunctionVariable.tp_richcompare_implŸ  ó   € Ý7á! $¨EÓ6Ð6rh   rk   c                 ó   • / $ r�   ra   ©r‰   s    ri   Ú	self_argsÚ"BaseUserFunctionVariable.self_args¤  ó   € Øˆ	rh   c                 ó   • U R                   $ r�   ©r¾   rý   s    ri   Ú
get_sourceÚ#BaseUserFunctionVariable.get_source§  ó   € Ø�{‰{Ðrh   r¤   rO   c                 ó^   • [         R                  " U[        U R                  5       5      5      $ r�   )rG   rÂ   ÚreprÚas_python_constant©r‰   r¤   s     ri   Útp_repr_implÚ%BaseUserFunctionVariable.tp_repr_implª  s#   € ä×$Ò$ R¬¨d×.EÑ.EÓ.GÓ)HÓIÐIrh   r´   r¦   r§   c                 óÞ  >• US:X  ae  US   R                  S5      (       a   US   U l        [        R                  " S 5      $ U R	                  U5      R                  US[        U5      U5      $ US:X  ab  US   R                  S5      (       a  S U l        [        R                  " S 5      $ U R	                  U5      R                  US[        U5      0 5      $ [        TU ]  X[        U5      U5      $ )NÚ__setattr__r   rß   r=   Ú__setitem__Ú__delattr__Ú__delitem__)Úis_constant_matchrÖ   rI   rÄ   Úget_dict_vtÚcall_methodr²   Úsuper)r‰   r¤   r´   r¦   r§   Ú	__class__s        €ri   r  Ú$BaseUserFunctionVariable.call_method®  sã   ø€ ð �=Ó Ø�A‰w×(Ñ(Ð):×;Ñ;Ø#'¨¡7�Ô Ü'×.Ò.¨tÓ4Ð4Ø×#Ñ# BÓ'×3Ñ3Ø�M¤4¨£:¨vóð ð �]Ó"Ø�A‰w×(Ñ(Ð):×;Ñ;Ø#'�Ô Ü'×.Ò.¨tÓ4Ð4Ø×#Ñ# BÓ'×3Ñ3°B¸ÄtÈDÃzÐSUÓVÐVÜ‰wÑ" 2¬T°$«Z¸Ó@Ð@rh   c                 ó6   • U R                  5       R                  $ r�   ©Úget_codeÚco_filenamerý   s    ri   Úget_filenameÚ%BaseUserFunctionVariable.get_filenameÃ  ó   € Ø�}‰}‹×*Ñ*Ð*rh   c                 ó6   • U R                  5       R                  $ r�   ©r  Úco_namerý   s    ri   Úget_nameÚ!BaseUserFunctionVariable.get_nameÆ  ó   € Ø�}‰}‹×&Ñ&Ð&rh   c                 ó~   • [         R                  S:¼  a  U R                  5       R                  $ U R	                  5       $ )N©é   é   )ÚsysÚversion_infor  Úco_qualnamer!  rý   s    ri   Úget_qualnameÚ%BaseUserFunctionVariable.get_qualnameÉ  s.   € Ü×Ñ˜wÓ&Ø—=‘=“?×.Ñ.Ð.à—=‘=“?Ð"rh   c                 ó<   • U R                  5       R                  S   $ )Nr   )r  Ú	co_constsrý   s    ri   Úget_docÚ BaseUserFunctionVariable.get_docÏ  s   € à�}‰}‹×(Ñ(¨Ñ+Ð+rh   c                 ó   • [         er�   ©ÚNotImplementedErrorrý   s    ri   Úget_globalsÚ$BaseUserFunctionVariable.get_globalsÓ  ó   € Ü!Ð!rh   c                 ó   • [         er�   r2  rý   s    ri   r  Ú!BaseUserFunctionVariable.get_codeÖ  r6  rh   c                 ó   • [         er�   r2  rý   s    ri   Úhas_selfÚ!BaseUserFunctionVariable.has_selfÙ  r6  rh   c                 ó   • [         er�   r2  rý   s    ri   Úget_functionÚ%BaseUserFunctionVariable.get_functionÜ  r6  rh   c                 ó(   • U R                  5       S   $ ©Nrc   )r4  rý   s    ri   Ú
get_moduleÚ#BaseUserFunctionVariable.get_moduleß  s   € Ø×ÑÓ! *Ñ-Ð-rh   c                 óR   • [        U SS 5      nUb  U$ [        R                  " S 5      $ )Nr’   ©rë   rI   rÄ   ©r‰   r¤   Úds      ri   Ú_get_defaultsÚ&BaseUserFunctionVariable._get_defaultsâ  s+   € Ü�D˜* dÓ+ˆØ‘MˆqÐDÔ'7×'>Ò'>¸tÓ'DÐDrh   c                 ó  • U R                  U5      nUR                  U5      (       a  UR                  U5      $ [        U SUSS  35      " 5       n[        R
                  " X@R                  =(       a    [        U R                  U5      S9$ )NÚget_r   éþÿÿÿr  )r  ÚcontainsÚgetitemrë   rI   rÄ   r¾   r(   )r‰   r¤   r´   Úfn_dictr½   s        ri   Ú_get_named_attrÚ(BaseUserFunctionVariable._get_named_attræ  sz   € ð ×"Ñ" 2Ó&ˆØ×Ñ˜D×!Ñ!Ø—?‘? 4Ó(Ð(Ü�d˜d 4¨¨" : ,Ð/Ô0Ó2ˆÜ×&Ò&ØŸ™×E¬
°4·;±;ÀÓ(Eñ
ð 	
rh   c                 óx   • U R                   c"  [        R                  " 0 [        5       S9U l         U R                   $ ©N©Úmutation_type)rÖ   r   ÚConstDictVariablerF   r	  s     ri   Ú_get_annotationsÚ)BaseUserFunctionVariable._get_annotationsñ  s:   € ð ×ÑÑ#Ü(×:Ò:ØÔ"2Ó"4ñ ˆDÔð ×ÑÐrh   c                 óF   • U R                  U5      R                  SS 5      $ )NÚ__type_params__c                  ó<   • [         R                  " / [        5       S9$ rR  )r   ÚTupleVariablerF   ra   rh   ri   Ú<lambda>Ú;BaseUserFunctionVariable._get_type_params.<locals>.<lambda>ý  s   € ”I×+Ò+¨BÔ>NÓ>PÒQrh   )r  Úgetitem_or_defaultr	  s     ri   Ú_get_type_paramsÚ)BaseUserFunctionVariable._get_type_paramsú  s&   € Ø×Ñ Ó#×6Ñ6ØÙQó
ð 	
rh   c                 óR   • [        U SS 5      nUb  U$ [        R                  " S 5      $ )Nr”   rD  rE  s      ri   Ú_get_kwdefaultsÚ(BaseUserFunctionVariable._get_kwdefaults   s+   € Ü�D˜,¨Ó-ˆØ‘MˆqÐDÔ'7×'>Ò'>¸tÓ'DÐDrh   c                 óR   • [        U SS 5      nUb  U$ [        R                  " S 5      $ )NrÕ   rD  )r‰   r¤   Úcs      ri   Ú_get_closureÚ%BaseUserFunctionVariable._get_closure  s+   € Ü�D˜) TÓ*ˆØ‘MˆqÐDÔ'7×'>Ò'>¸tÓ'DÐDrh   c                 ó&   • U R                  US5      $ r@  ©rO  ©Úsr¤   s     ri   r\  Ú!BaseUserFunctionVariable.<lambda>  ó   € ¨×):Ñ):¸2¸zÔ)Jrh   c                 ó&   • U R                  US5      $ ©Nre   ri  rj  s     ri   r\  rl    s   € ¨Q×->Ñ->¸rÀ>Ô-Rrh   c                 ó&   • U R                  US5      $ ©Nrx   ri  rj  s     ri   r\  rl    rm  rh   c                 ó$   • U R                  U5      $ r�   )r  rj  s     ri   r\  rl    s   € ¨¯©°rÔ):rh   )r‘   r“   rc   re   rx   Ú__dict__rß   rY  c                 ó&   • U R                  US5      $ ©Nrá   ri  rj  s     ri   r\  rl    s   € ¨×(9Ñ(9¸"¸iÔ(Hrh   c                 ó&   • U R                  US5      $ ©Nrd   ri  rj  s     ri   r\  rl    s   € ¨1×+<Ñ+<¸RÀÔ+Nrh   ©rá   rd   râ   c                 ó0  •  U R                  5       n[        USS 5      nU(       a  X$;  a  g U R                  5       nUb  [	        XR5      OS nUb   [
        R                  R                  XB   XQS9$ [        R                  " XU   5      $ ! [         a     g f = f©Nrs  rÀ   )
r=  r3  rë   r  r(   r   rÃ   rÄ   rG   rÂ   )r‰   r¤   r´   rå   rN  r¾   s         ri   Úlookup_instance_dictÚ-BaseUserFunctionVariable.lookup_instance_dict  sš   € ð	Ø×"Ñ"Ó$ˆBô ˜"˜j¨$Ó/ˆÞ˜$Ó-ØØ—‘Ó"ˆØ-3Ñ-?”˜FÔ)ÀTˆØÑÜ×0Ñ0×7Ñ7¸¹ÀvÐ7ÐUÐUÜ×$Ò$ R°©Ó7Ð7øô #ó 	Ùð	ús   ‚B Â
BÂBc                 ó"   • [        [        X/S9  g ©N©r¦   ©r    ré   ©r‰   r¤   r´   s      ri   Úcall_getattr_fallbackÚ.BaseUserFunctionVariable.call_getattr_fallback,  s   € ô 	!¤°¸&ÓArh   c                 óæ   • U R                  5       S:X  a:  U R                  5       R                  S5      (       a  [        R                  " S 5      $ UR                  U / U R                  5       QUQUSS9$ )NÚpatch_track_step_calledztorch/optim/lr_scheduler.pyT)Úallow_nested_graph_breaks)r!  r  ÚendswithrI   rÄ   Úinline_user_function_returnrþ   ©r‰   r¤   r¦   r§   s       ri   Úcall_functionÚ&BaseUserFunctionVariable.call_function4  st   € ð �M‰M‹OÐ8Ó8Ø×!Ñ!Ó#×,Ñ,Ð-J×KÑKä#×*Ò*¨4Ó0Ð0Ø×-Ñ-ØØ&ˆd�n‰nÓÐ& Ð&ØØ&*ð	 .ð 
ð 	
rh   c                 óÞ   • U R                  X5      nUb  U$ SnU[        ;   d  US:X  a  SnO [        U R                  5       U5      n[
        R                  " X5      $ ! [         a    Sn N$f = f)NFrs  T)Ú_hasattr_check_side_effectsrê   Úhasattrr=  r3  rG   rÂ   )r‰   r¤   r´   Ú	se_resultrÅ   s        ri   Úcall_obj_hasattrÚ)BaseUserFunctionVariable.call_obj_hasattrH  s}   € ð ×4Ñ4°RÓ>ˆ	ØÑ ØÐàˆàÔ(Ó(¨D°JÓ,>Ø‰FðÜ  ×!2Ñ!2Ó!4°dÓ;�ô ×$Ò$ RÓ0Ð0øô 'ó Ø’ðús   ­A ÁA,Á+A,c                 ó   • 0 $ r�   ra   r	  s     ri   Úclosure_varsÚ%BaseUserFunctionVariable.closure_varsZ  ó	   € ð ˆ	rh   c                 ó   • g©NTra   rý   s    ri   Ú should_allow_nested_graph_breaksÚ9BaseUserFunctionVariable.should_allow_nested_graph_breaksb  ó   € Ørh   )rÖ   ©r¤   rO   rk   rG   )1rc   rd   re   rf   rÖ   rß   rù   r²   rG   rþ   r   r  r
  Ústrr•   r  r  r!  r+  r/  r   r4  rÛ   ÚCodeTyper  Úboolr:  r   r=  rA  rG  rO  rV  r_  rb  rf  r@   Ú	tp_getsetrC   Ú
tp_membersr{  r‚  rŠ  rI   r�  r“  r˜  rg   Ú__classcell__©r  s   @ri   rï   rï   š  sÍ  ø‡ ð -1€KÐ)Ó0ò7ð
˜4 Ñ0ô ð˜F T™Mô ôJðAà'ðAð ðAð �?Ñ#ð	Að
 �S˜/Ð)Ñ*ðAð 
÷Að*+˜cô +ð'˜#ô 'ð#˜cô #ð,˜˜t™ô ,ð"˜T # s (™^ô "ð"˜%Ÿ.™.ô "ð"˜$ô "ð"˜e×0Ñ0ô "ð.˜Cô .ðEÐ ;ð EÀô Eð	
Ø-ð	
Ø58ð	
à	ô	
ð Ð#>ð  À?ô  ð
Ð#>ð 
À?ô 
ðEÐ"=ð EÀ/ô EðEÐ:ð E¸ô Eñ
 ˜}¨dÓ3Ù  °$Ó7ÙÑJÓKÙÑRÓSÙÑJÓKÙÑ:Ó;Ù!Ð"2Ó3Ù!Ð"2Ó3ñ	€Iñ ÑHÓIÙÑNÓOÙ˜lÓ+ñ€Jð8Ø-ð8Ø58ð8à	!ô8ð(BØ-ðBØ58ðBà	!ôBð
à'ð
ð �?Ñ#ð
ð �S˜/Ð)Ñ*ð	
ð
 
ô
ð(1Ø-ð1Ø58ð1à	ô1ð$Ø-ðà	ˆc�?Ð"Ñ	#ôð°$÷ ò rh   rï   c                   óN  ^ • \ rS rSrSr\R                  rSS1\R                  kr	\
" 1 Sk5      r\S\S\SS 4S	 j5       rS\S
-  4S jr S<S\R                  \R$                  R&                  -  S\S\SS
4U 4S jjjrS\4U 4S jjrS rS\4U 4S jjrS\\   4S jrS\R                  4S jrS\R:                  4S jrS\4S jr S\4S jr!S\"\#\4   4S jr$S\4S jr%S\&4S jr'SSS\\   S\"\#\4   S\"\#\4   4S jr(SSS\4S jr)SSS\#S\4S  jr*\+" \)S
5      \+" S! 5      \+" S" 5      \+" S# 5      \+" S$ 5      \+" S% 5      \+" S& 5      \+" S' 5      S(.r,\-" S) 5      \-" S* 5      \-" S+ 5      S,.r.SSS-\S.\S\4S/ jr/SSS\\   S\"\#\4   S\4U 4S0 jjr0SSS\\   S\"\#\4   S\S
-  4S1 jr1S\4S2 jr2S\4S3 jr3S\4S4 jr4SSS\\   S\"\#\4   S\5S \\   \"\#\4   4   S
-  4S5 jr6S\R                  S
-  4S6 jr7S7\S\5\S84   S
-  4S9 jr8S\S\\   S
-  4S: jr9S;r:U =r;$ )=ÚUserFunctionVariableif  z-Some unsupported user-defined global functionrå   Úis_constant>   Úoptreeú
optree.opsútorch.utils._pytreeútorch.utils._cxx_pytreeÚvaluer¾   rk   c                 ó^   • [        UR                  [        R                  5      5        U " XS9$ ©Nr  ©r'   r­   r&   ÚCLOSURE_MATCH©Úclsrª  r¾   s      ri   Úcreate_with_sourceÚ'UserFunctionVariable.create_with_source{  s&   € ä�f×'Ñ'¬×(BÑ(BÓCÔDÙ�5Ñ(Ð(rh   Nc                 ó   • U R                   $ r�   ©rå   rý   s    ri   Úget_value_for_setattrÚ*UserFunctionVariable.get_value_for_setattr€  ó   € Ø�w‰wˆrh   r§   c                 óR  >• [         TU ]  " S	0 UD6  [        USS5      (       a  SU l        OSU l        [	        U[
        R                  [        R                  R                  45      (       d  [        SU SS/[        R                  QS9  [        R                  " USU5      nXl        g )
NÚ_dynamo_marked_constantFTz1can't handle functions not implemented in python z2Dynamo can only handle functions defined in pythonz9Move usage of this function out of `torch.compile` region©Úgb_typeÚcontextÚexplanationÚhintsÚ_torchdynamo_inlinera   )r  r�   rë   r¥  rÁ   rÛ   r   rm   ÚjitÚScriptFunctionr$   r   ÚINFERENCE_MODErç   rè   rå   )r‰   rå   r¥  r§   r  s       €ri   r�   ÚUserFunctionVariable.__init__ƒ  sž   ø€ ô 	‰ÒÑ"˜6Ò"Ü�2Ð0°%×8Ñ8à#ˆDÕà$ˆDÔô ˜"œu×1Ñ1´5·9±9×3KÑ3KÐL×MÑMÜØKØ˜$ØPàOðä&×5Ñ5ðò	ô ×#Ò# BÐ(=¸rÓBˆØ�rh   c                 ób   >• [        U [        5      (       a  U R                  $ [        TU ]  5       $ r�   )r:   r¤  rå   r  r  ©r‰   r  s    €ri   r  Ú'UserFunctionVariable.as_python_constant¢  s(   ø€ Ü�$Ô,×-Ñ-Ø—7‘7ˆNä‰wÑ)Ó+Ð+rh   c                 óp   • U R                   (       a  U R                   R                  U5      $ [        S5      e)NzBPython codegen not implemented for sourceless UserFunctionVariable©r¾   Úreconstruct_pycoder3  ©r‰   Úcodegens     ri   rÉ  Ú'UserFunctionVariable.reconstruct_pycode¨  ó.   € Ø�;�;Ø—;‘;×1Ñ1°'Ó:Ð:Ü!ØPó
ð 	
rh   c                 ób   >• [        U [        5      (       a  U R                  $ [        TU ]  5       $ r�   )r:   r¤  rå   r  Úget_real_python_backed_valuerÅ  s    €ri   rÏ  Ú1UserFunctionVariable.get_real_python_backed_value¯  s(   ø€ Ü�$Ô,×-Ñ-Ø—7‘7ˆNÜ‰wÑ3Ó5Ð5rh   c                 ó   • / $ r�   ra   rý   s    ri   rþ   ÚUserFunctionVariable.self_args´  r   rh   c                 ó   • U R                   $ r�   r´  rý   s    ri   r=  Ú!UserFunctionVariable.get_function·  r·  rh   c                 ó.   • U R                   R                  $ r�   )rå   rx   rý   s    ri   r  ÚUserFunctionVariable.get_codeº  s   € Ø�w‰w×ÑÐrh   c                 ó"   • [         R                  $ r�   ©rÛ   r   rý   s    ri   Úpython_typeÚ UserFunctionVariable.python_type½  ó   € Ü×!Ñ!Ð!rh   c                 ó4   • [        U R                  SS 5      S L$ )NÚ__self__)rë   rå   rý   s    ri   r:  ÚUserFunctionVariable.has_selfÀ  s   € Ü�t—w‘w 
¨DÓ1¸Ð=Ð=rh   c                 ó.   • U R                   R                  $ r�   )rå   rã   rý   s    ri   r4  Ú UserFunctionVariable.get_globalsÃ  s   € Ø�w‰w×"Ñ"Ð"rh   c                 óˆ   ^• SSK JnJn  U R                  5       m[	        U4S jU 5       5      (       a  gU" T5      (       a  gg)Nr   )ÚBUILTIN_INLINE_WHEN_CALLEDÚis_ngb_suppressed_inlinec              3   óF   >#   • U  H  nTR                  U5      v •  M     g 7fr�   )Ú
startswith)Ú.0rF  Úfilenames     €ri   Ú	<genexpr>ÚHUserFunctionVariable.should_allow_nested_graph_breaks.<locals>.<genexpr>Í  s!   øé € ÐJÒ/I¨!ˆx×"Ñ" 1×%Ð%Ò/Iùs   ƒ!FT)Útorch._dynamo.trace_rulesrâ  rã  r  Úany)r‰   râ  rã  rç  s      @ri   r˜  Ú5UserFunctionVariable.should_allow_nested_graph_breaksÆ  s>   ø€ ÷	
ð
 ×$Ñ$Ó&ˆÜÔJÑ/IÓJ×JÑJØÙ# H×-Ñ-ØØrh   c                 ó‚   • U R                   nU(       a+  [        U [        R                  5      (       a  U R                  nU$ r�   )r¾   rÁ   r   ÚUserMethodVariableÚ	source_fn)r‰   r¾   s     ri   r  ÚUserFunctionVariable.get_sourceÓ  s.   € Ø—‘ˆæ”j ¤y×'CÑ'C×DÑDØ—^‘^ˆFØˆrh   rË   rO   r¦   c                 óà  • U R                   (       a  [        S5      eU R                  n[        U[        5      (       d  [        S5      eUR                  R                  nU R                  5       n[        XEXbU5      n[        XUR                  5        U R                  R                  =(       d    Sn[        U5      [        U R                  R                  R                  5      :w  aA  [        S[        U5       S[        U R                  R                  R                  5       35      e[        [         R"                  " 5       U R                  R                  R                  U5       Hº  u  pšnUR                  R$                  nX¼;   a  XË   nO�U(       aU  ['        [)        U5      U	5      n[+        USU
S9n [,        R.                  " XR0                  U5      nUR9                  XëU5      nO4 [,        R.                  " XR0                  5      nUR9                  SUU5      nX×U
'   M¼     U$ ! [2         a    [4        R6                  " 5       n Nrf = f! [2         a    [4        R6                  " 5       n Ncf = f)	z
Assume `args` and `kwargs` are VariableTracker arguments for a call to
this function, create new bindings for initial locals.
z5bind_args should not be called on a constant functionz'Only supports regular Python functions.ra   zclosure length z# does not match co_freevars length Úcell_contents)Úfreevar_nameN)r¥  rÝ   rå   rÁ   r   Ú	TypeErrorrÍ   Úroot_txr  r¼   rÓ   rx   râ   r—   Úco_freevarsr–   rÜ   ÚcountrÎ   r-   r*   r)   rG   rÂ   rò  Ú
ValueErrorr   ÚDeletedVariableÚtrack_cell_existing)r‰   rË   r¦   r§   rå   rõ  r¾   rÅ   rÕ   r¸   r´   ÚcellrÎ   Úcell_varÚclosure_cellÚclosure_cell_contentsÚcontents_vars                    ri   Ú	bind_argsÚUserFunctionVariable.bind_argsÚ  s  € ð ××Ü ØGóð ð "&§¡ˆä˜"œl×+Ñ+ÜÐEÓFÐFØ—-‘-×'Ñ'ˆà—‘Ó"ˆÜ! "¨v¸VÓDˆä�f b§k¡kÔ2Ø—'‘'×%Ñ%×+¨ˆÜˆw‹<œ3˜tŸw™w×/Ñ/×;Ñ;Ó<Ó<Ü Ø!¤# g£, ð 0&Ü&)¨$¯'©'×*:Ñ*:×*FÑ*FÓ&GÐ%HðJóð ô  #Ü�OŠOÓ˜tŸw™w×/Ñ/×;Ñ;¸Wö 
‰OˆC�tð "Ÿ=™=×5Ñ5ˆLØÓ#Ø'Ñ-‘æÜ,¬]¸6Ó-BÀCÓH�Ü(:Ø  /Àñ)Ð%ð?Ü#2×#8Ò#8Ø× 2Ñ 2Ð4Ió$�Lð (×;Ñ;Ø ¨ó‘ð?Ü#2×#8Ò#8¸×ASÑASÓ#T�Lð (×;Ñ;¸DÀ$ÈÓU�à#�4‹LñE 
ðH ˆøô' "ó ?ä#,×#<Ò#<Ó#>’Lð?ûô "ó ?ä#,×#<Ò#<Ó#>’Lð?ús$   Æ4!H&Ç) IÈ&IÉIÉI-É,I-r¤   c                 óš   • U R                  5       nUb  [        US5      OS n[        R                  " XR                  R
                  U5      $ ©NÚ__get__)r  r(   rG   rÂ   rå   r  ©r‰   r¤   r¾   s      ri   Ú_get_dunder_getÚ$UserFunctionVariable._get_dunder_get!  s<   € Ø—‘Ó"ˆØ28Ñ2D”˜F IÔ.È$ˆÜ×$Ò$ R¯©¯©¸&ÓAÐArh   r´   c                 óL   • [        XR                  U R                  5       U5      $ r�   )rí   rå   r  r�  s      ri   Ú_fn_getattrÚ UserFunctionVariable._fn_getattr&  s   € ô   §G¡G¨T¯_©_Ó->ÀÓEÐErh   c                 ó&   • U R                  US5      $ r@  ©r	  rj  s     ri   r\  ÚUserFunctionVariable.<lambda>2  ó   € ¨¯©°r¸:Ô)Frh   c                 ó&   • U R                  US5      $ ro  r  rj  s     ri   r\  r  3  ó   € ¨Q¯]©]¸2¸~Ô-Nrh   c                 ó&   • U R                  US5      $ rq  r  rj  s     ri   r\  r  4  r  rh   c                 ó&   • U R                  US5      $ )Nr‘   r  rj  s     ri   r\  r  5  r  rh   c                 ó&   • U R                  US5      $ )Nr“   r  rj  s     ri   r\  r  6  s   € ¨q¯}©}¸RÐAQÔ/Rrh   c                 ó&   • U R                  US5      $ )Nrß   r  rj  s     ri   r\  r  7  ó   € °·±¸bÐBSÔ0Trh   c                 ó&   • U R                  US5      $ )NrY  r  rj  s     ri   r\  r  8  r  rh   )r  rc   re   rx   r‘   r“   rß   rY  c                 ó&   • U R                  US5      $ ru  r  rj  s     ri   r\  r  ;  s   € ¨¯©°b¸)Ô(Drh   c                 ó&   • U R                  US5      $ rw  r  rj  s     ri   r\  r  <  s   € ¨1¯=©=¸¸\Ô+Jrh   c                 ó&   • U R                  US5      $ )Nrâ   r  rj  s     ri   r\  r  =  s   € ¨A¯M©M¸"¸mÔ,Lrh   rx  ÚobjÚownerc                 óº   • UR                   =(       a*    [        UR                   U R                  R                  5      n[	        U R                  X R                   US9$ )N©rï  r¾   )r¾   r(   rå   rc   rî  )r‰   r¤   r  r  r¾   s        ri   Útp_descr_get_implÚ&UserFunctionVariable.tp_descr_get_impl@  s>   € ð —‘×H¤
¨3¯:©:°t·w±w×7GÑ7GÓ HˆÜ! $§'¡'¨3¿+¹+ÈfÑUÐUrh   c           
      óÌ  >• U R                   [        R                  R                  L a’   U Vs/ s H  oDR	                  5       PM     nnUR                  5        VVs0 s H  u  pgXgR	                  5       _M     nnn[        R                  R                  " U0 UD6R                  n	[        R                  " U	5      $ U R                   [        R                  R                  L a�   [        R                  " U R                   5      R                  " U0 UD6nUR                  S   R	                  5       n[!        U["        5      (       d  [%        S['        U5       35      e[        R(                  " U5      $ U R                   [        R                  R,                  L a¿   [        R                  " U R                   5      R                  " U0 UD6nUR/                  5         UR                  S   nUR                  S   n[!        U[0        5      (       a  UR	                  5       n[!        U[0        5      (       a  UR	                  5       n[        R2                  " XÞ5      $ U R                   [        R                  R4                  R6                  L a0  S	UR8                  l        [        R<                  R?                  S 5      $ U R                   [        R                  R@                  L Ga%  [        R                  " U R                   5      R                  " U0 UD6nURB                  S
   n[!        U[D        5      (       dP  URG                  5       nSURH                   S3n[K        SSU RL                   SU SU S3U/ [N        RP                  QS9  [!        U[R        5      (       d)  URU                  5       nSU S3n[K        SU  USU S3S/S9  UR                   n[        RV                  " U[        R                  RX                  RZ                  S9$ U R\                  (       a%  [_        XR                   U RU                  5       X#5      $ UR8                  R`                  Rb                  (       dt  U R                   [        R                  Rd                  Rf                  L aC  [        R                  Rh                  Rk                  U5         [l        TU ]Ý  XU5      sS S S 5        $ [q        UR8                  R`                  SS 5      S:X  a˜  UR8                  R`                  Rr                  (       ds   S
SK:J;n  Ubi  U R                   URx                  URz                  4;   aC  [        R                  Rh                  Rs                  U5         [l        TU ]Ý  XU5      sS S S 5        $ U R}                  XU5      nUb  U$ [l        TU ]Ý  XU5      $ s  snf s  snnf ! [         a  n
[        SU SU 35      U
eS n
A
ff = f! [*         a  n
[        SU SU 35      U
eS n
A
ff = f! [*         a  n
[        SU SU 35      U
eS n
A
ff = f! , (       d  f       GNj= f! [*         a    S n GN+f = f! , (       d  f       NÑ= f)NzˆCannot convert patch_dynamo_config args/kwargs to constants. Please fix your call to patch_dynamo_config by using simpler inputs. args: ú
, kwargs: Úerror_on_graph_breakz)error_on_graph_break must be a bool, got z\Improper error_on_graph_break() call. Please fix your call to error_on_graph_break(). args: ÚfwdÚbwdzZImproper override_cudagraphs() call. Please fix your call to override_cudagraphs(). args: Tr   z=`nonstrict_trace` expects a callable, but got value of type <Ú>zTypeError from user codezcall_function(ú, Ú)rº  z(Applying `nonstrict_trace` to function <zk>; however, `nonstrict_trace` currently requires the function to be defined outside `torch.compile` region.zLimitation of `nonstrict_tracezmake sure definition of z is outside z`torch.compile` region©ÚkindÚdescriptionz!torch.utils.checkpoint.checkpoint)Ú	FSDPState)?rå   rm   Ú_dynamoÚpatch_dynamo_configr  rÇ   Úchangesr   ÚDynamoConfigPatchVariabler>   ÚRuntimeErrorr"  rç   Ú	signatureÚbindÚ	argumentsrÁ   rž  rÝ   rÞ   ÚErrorOnGraphBreakVariableÚ	ExceptionÚoverride_cudagraphsÚapply_defaultsrG   ÚCudagraphOverrideVariableÚbytecode_debuggerÚ
breakpointrÍ   Ú_emit_debugger_breakpointrI   rÄ   Únonstrict_tracer¦   rï   rÙ  rc   r$   rª  r   Ú
USER_ERRORr¤  r!  ÚTorchInGraphFunctionVariableÚAllowInGraphKindÚNONSTRICT_TRACEr¥  Úinvoke_and_store_as_constantÚcurrent_tracerÚ,unsafe_allow_externally_visible_side_effectsrn   Ú8_disable_side_effect_safety_checks_for_current_subtracerrÎ   Ú2allow_externally_visible_side_effects_in_subtracerr  rŠ  rë   Úallow_side_effects_in_hopÚ/torch.distributed.fsdp._fully_shard._fsdp_stater+  Ú_pre_forwardÚ_post_forwardÚ_maybe_call_tree_map_fastpath)r‰   r¤   r¦   r§   ÚargÚ
args_constÚkeyr½   Úkwargs_constr.  ÚerW   r"  r#  r$  Úfn_varÚtypÚmsgÚfn_namerå   r+  Útree_map_resultr  s                         €ri   rŠ  Ú"UserFunctionVariable.call_functionL  sº  ø€ ð �7‰7”e—m‘m×7Ñ7Ò7ðÙBFÓGÂ$¸3×4Ñ4Ö6Á$�
ÐGàBHÇ,Á,Ä.ô ÚBP±h°c�C×/Ñ/Ó1Ò1Á.ð ñ  ô  Ÿ-™-×;Ò;ØðØ#/ñç‘'ð ô !×:Ò:¸7ÓCÐCð �W‰WœŸ™×:Ñ:Ò:ðÜ×)Ò)¨$¯'©'Ó2×7Ò7¸ÐHÀÑH�Ø',§¡Ø*ñ(ç$Ñ$Ó&ð %ô "Ð"6¼×=Ñ=Ü(ØCÄDÐI]ÓD^ÐC_Ð`óð ô !×:Ò:Ð;OÓPÐPð �W‰WœŸ™×9Ñ9Ò9ðÜ×)Ò)¨$¯'©'Ó2×7Ò7¸ÐHÀÑH�Ø×$Ñ$Ô&Ø—o‘o eÑ,�Ø—o‘o eÑ,�Ü˜c¤?×3Ñ3Ø×0Ñ0Ó2�CÜ˜c¤?×3Ñ3Ø×0Ñ0Ó2�CÜ ×:Ò:¸3ÓDÐDð �W‰WœŸ™×7Ñ7×BÑBÒBØ26ˆB�I‰IÔ/Ü×-Ñ-×4Ñ4°TÓ:Ð:à�W‰WœŸ™×5Ñ5Ó5Ü×%Ò% d§g¡gÓ.×3Ò3°TÐD¸VÑDˆEØ—Z‘Z ‘]ˆFÜ˜fÔ&>×?Ñ?Ø×(Ñ(Ó*�ØUÐVY×VbÑVbÐUcÐcdÐe�ÜØ6Ø,¨T¯Z©Z¨L¸¸4¸&ÀÀ6À(È!ÐLØ #ðÜ*×5Ñ5ðò	ô ˜fÔ&:×;Ñ;Ø Ÿ/™/Ó+�Ø@ÀÀ	ð  Juð  v�ÜØ<Ø#˜fØ #à2°7°)¸<ÐHØ0ðò	ð —‘ˆBÜ×9Ò9ØœŸ™×9Ñ9×IÑIñð ð ××Ü/Ø—G‘G˜TŸ]™]›_¨dóð ð
 —	‘	×(Ñ(×U×UØ—‘Ü�}‰}×"Ñ"×[Ñ[ò\ô —‘×+Ñ+×^Ñ^Øõô ‘wÑ,¨R°vÓ>÷ñ ô �B—I‘I×,Ñ,¨m¸TÓBØ2ó3à—I‘I×,Ñ,×F×Fð!ÝUð Ñ$¨¯©Ø×&Ñ&Ø×'Ñ'ð5ó *ô —]‘]×/Ñ/×IÑIÈ"ÕMÜ ™7Ñ0°¸6ÓB÷ NÑMð ×<Ñ<¸RÀvÓNˆØÑ&Ø"Ð"ä‰wÑ$ R¨vÓ6Ð6ùòm Hùó øô 7ó Ü"ðà!˜F *¨V¨Hð6óð ð	ûðûô" ó Ü"ðØ!˜F *¨V¨Hð6óð ðûðûô  ó Ü"ðØ!˜F *¨V¨Hð6óð ðûðú÷hö ûô ó !Ø “	ð!ú÷ NÕMús‘   ªW ®V9ÁW ÁV>Á8AW Ã#BW( ÆB=X Ò;X0Ô Y Õ8YÖ9W ×
W%×W × W%×(
X	×2XØX	Ø
X-ØX(Ø(X-Ø0
X?ÙYÙYÙ
Y#c           
      óB  • U R                  XU5      nUb  Uu  pVnOU nUnUn[        U[        5      =(       a    UR                  5       n[        U[        5      =(       a    UR	                  5       n	U(       d  U	(       d  g 1 Uk[
        -
  (       a  g [        U5      S:  a  g US   n
US   nUSS  n[        R                  R                  5          U	(       a  UR                  UUU
UUSS9sS S S 5        $ UR                  UUU
UU5      sS S S 5        $ ! , (       d  f       g = f)Nr   r   r=   ra   )Úkeypath)Ú_rewrite_tree_map_only_callrÁ   r¤  Ú_is_tree_map_functionÚ_is_tree_map_with_path_functionÚ_SUPPORTED_TREE_MAP_KWARGSr—   rm   r,  Údisable_nested_graph_breaksÚcall_tree_map_with_pathÚcall_tree_map)r‰   r¤   r¦   r§   ÚrewriteÚtree_map_fnÚtree_map_argsÚtree_map_kwargsÚis_tree_mapÚis_tree_map_with_pathÚmap_fnÚ
first_treeÚrests                ri   rJ  Ú2UserFunctionVariable._maybe_call_tree_map_fastpathÍ  s4  € ð ×2Ñ2°2¸VÓDˆØÑØ:AÑ7ˆK©àˆKØ ˆMØ$ˆOô �{Ô$8Ó9÷ 4Ø×1Ñ1Ó3ð 	ô
 �{Ô$8Ó9÷ >Ø×;Ñ;Ó=ð 	ö
 Ö4ØØˆ_ÐÔ :×:ØÜˆ}Ó Ó!Øà˜qÑ!ˆØ" 1Ñ%ˆ
Ø˜Q˜RÐ ˆô �]‰]×6Ñ6Õ8Þ$Ø!×9Ñ9ØØØØØ#Øð :ð ÷ 9Ñ8ð "×/Ñ/ØØØØØ#ó÷ 9×8×8ús   ÃDÃ2DÄ
Dc                 óŒ   • [        U R                  SS 5      S:H  =(       a$    [        U R                  SS 5      U R                  ;   $ )Nrc   Útree_maprd   ©rë   rå   Ú_TREE_MAP_MODULESrý   s    ri   rY  Ú*UserFunctionVariable._is_tree_map_function  s=   € ä�D—G‘G˜Z¨Ó.°*Ñ<÷ OÜ˜Ÿ™ ¨tÓ4¸×8NÑ8NÑNð	
rh   c                 óŒ   • [        U R                  SS 5      S:H  =(       a$    [        U R                  SS 5      U R                  ;   $ )Nrc   Útree_map_with_pathrd   rk  rý   s    ri   rZ  Ú4UserFunctionVariable._is_tree_map_with_path_function
  s>   € ä�D—G‘G˜Z¨Ó.Ð2FÑF÷ OÜ˜Ÿ™ ¨tÓ4¸×8NÑ8NÑNð	
rh   c                 óŒ   • [        U R                  SS 5      S:H  =(       a$    [        U R                  SS 5      U R                  ;   $ )Nrc   Útree_map_onlyrd   rk  rý   s    ri   Ú_is_tree_map_only_functionÚ/UserFunctionVariable._is_tree_map_only_function  s=   € ä�D—G‘G˜Z¨Ó.°/ÑA÷ OÜ˜Ÿ™ ¨tÓ4¸×8NÑ8NÑNð	
rh   c           	      óB  • U R                  5       (       d  g [        U5      S:w  a  g 1 Uk[        -
  (       a  g Uu  pEnU R                  U5      nUc  g U R	                  5       nUc  g [        UU[        USS 5      S9n	[        R                  " X5      n
X©U/[        U5      4$ )Nr&  r¾   r  )
rs  r—   Ú_TREE_MAP_ONLY_SUPPORTED_KWARGSÚ_extract_tree_map_only_typesÚ_lookup_tree_map_functionÚTreeMapOnlyFunctionVariablerë   rG   rÂ   r•   )r‰   r¤   r¦   r§   Útype_selectorre  Útree_argÚallowed_typesÚtree_map_callableÚwrapped_map_fnÚtree_map_variables              ri   rX  Ú0UserFunctionVariable._rewrite_tree_map_only_call  s²   € ð ×.Ñ.×0Ñ0Øäˆt‹9˜‹>ØØˆVˆ9Ô6×6Øà*.Ñ'ˆ˜xØ×9Ñ9¸-ÓHˆØÑ Øà ×:Ñ:Ó<ÐØÑ$Øä4ØØÜ˜6 8¨TÓ2ñ
ˆô
 ,×1Ò1°"ÓHÐØ °8Ð"<¼dÀ6»lÐJÐJrh   c                 óä   • [        U R                  SS 5      nU(       d  g [        R                  R	                  U5      nUc  g [        USS 5      n[        U[        R                  5      (       a  U$ g )Nrd   rj  )rë   rå   r(  Úmodulesrž   rÁ   rÛ   r   )r‰   Úmodule_nameÚmodulerj  s       ri   rx  Ú.UserFunctionVariable._lookup_tree_map_function<  s]   € Ü˜dŸg™g |°TÓ:ˆÞØÜ—‘—‘ Ó-ˆØ‰>ØÜ˜6 :¨tÓ4ˆÜ�h¤× 2Ñ 2×3Ñ3ØˆOØrh   Úselector.c                 ó  • UR                  5       (       d  g  UR                  5       nU R                  U5      nU(       d  g [	        S U 5       5      (       d  g [        [        R                  U5      5      $ ! [         a     g f = f)Nc              3   óB   #   • U  H  n[        U[        5      v •  M     g 7fr�   )rÁ   rÞ   )ræ  rQ  s     ri   rè  ÚDUserFunctionVariable._extract_tree_map_only_types.<locals>.<genexpr>U  s   é € Ð>²I¨S”:˜c¤4×(Ð(²Iùs   ‚)Úis_python_constantr  r3  Ú_flatten_type_specÚallr±   r•   Úfromkeys)r‰   r†  Ú	raw_valueÚ	flatteneds       ri   rw  Ú1UserFunctionVariable._extract_tree_map_only_typesH  s}   € ð ×*Ñ*×,Ñ,Øð	Ø ×3Ñ3Ó5ˆIð ×+Ñ+¨IÓ6ˆ	ÞØÜÑ>±IÓ>×>Ñ>ØÜ”T—]‘] 9Ó-Ó.Ð.øô #ó 	Ùð	ús   ˜A7 Á7
BÂBc                 óž  • [        U[        5      (       a  U/$ [        U[        5      (       a4  / nU H*  nU R                  U5      nUc    g UR	                  U5        M,     U$ [        [        SS 5      nUbX  [        X5      (       aH  / n[        R                  " U5       H*  nU R                  U5      nUc    g UR	                  U5        M,     U$ g )NÚ	UnionType)	rÁ   rÞ   r±   r‹  Úextendrë   rÛ   ÚtypingÚget_args)r‰   rª  Ú	collectedÚentryÚflatÚ
union_types         ri   r‹  Ú'UserFunctionVariable._flatten_type_specY  sÇ   € Ü�eœT×"Ñ"Ø�7ˆNÜ�eœU×#Ñ#Ø$&ˆIÛ�Ø×.Ñ.¨uÓ5�Ø‘<ÙØ× Ñ  Ö&ñ	 ð
 ÐÜœU K°Ó6ˆ
ØÑ!¤j°×&CÑ&CØˆIÜŸš¨Ö/�Ø×.Ñ.¨uÓ5�Ø‘<ÙØ× Ñ  Ö&ñ	 0ð
 ÐØrh   )rå   r¥  )F)<rc   rd   re   rf   rá   rÛ   r   Ú_cpython_typerï   Ú_nonvar_fieldsÚ	frozensetrl  Úclassmethodr   r±  Úobjectrµ  rm   rÀ  rÁ  rž  r�   r  rÉ  rÏ  r²   rG   rþ   r=  r�  r  rÞ   rÙ  r:  r•   rœ  r4  r˜  r   r  r   r  r	  r@   rŸ  rC   r   r  rŠ  rJ  rY  rZ  rs  r±   rX  rx  rw  r‹  rg   r¡  r¢  s   @ri   r¤  r¤  f  sï  ø† Ù7ð ×&Ñ&€Mð 	Øðð 
"×	0Ñ	0ð€Nñ "ò	
óÐð ð) sð )°Cð )Ð<Ró )ó ð)ð v°¡}ô ð "ñà×Ñ §¡×!9Ñ!9Ñ9ðð ðð ð	ð
 
÷ð ð>, C÷ ,ò
ð6¨c÷ 6ð
˜4 Ñ0ô ð˜e×0Ñ0ô ð ˜%Ÿ.™.ô  ð"˜Tô "ð>˜$ô >ð#˜T # s (™^ô #ð°$ô ð˜Fô ðCà+ðCð �?Ñ#ðCð �S˜/Ð)Ñ*ð	Cð
 
ˆc�?Ð"Ñ	#ôCðNBÐ"=ð BÀ/ô Bð
FØ-ðFØ58ðFà	ôFñ ˜/¨4Ó0ÙÑFÓGÙÑNÓOÙÑFÓGÙÑNÓOÙ Ñ!RÓSÙ!Ñ"TÓUÙ!Ñ"TÓUñ	€Iñ ÑDÓEÙÑJÓKÙÑLÓMñ€Jð
Và'ð
Vð ð
Vð ð	
Vð
 
ô
Vð7à'ð7ð �?Ñ#ð7ð �S˜/Ð)Ñ*ð	7ð
 
÷7ðB5à'ð5ð �?Ñ#ð5ð �S˜/Ð)Ñ*ð	5ð
 
˜4Ñ	ô5ðn
 tô 
ð
°ô 
ð
¨Dô 
ð$Kà'ð$Kð �?Ñ#ð$Kð �S˜/Ð)Ñ*ð	$Kð 	Ø"Ø�Ñ!Ø��oÐ%Ñ&ð(ñ	
ð
 ñ	ô$KðL
¨5×+=Ñ+=ÀÑ+Dô 
ð/Ø'ð/à	ˆt�SˆyÑ	˜DÑ	 ô/ð"¨ð °°T±
¸TÑ0A÷ ò rh   r¤  c                   óP   ^ • \ rS rSrSrSSS\\   S\\\4   S\4U 4S jjr	S	r
U =r$ )
ÚInspectSignatureVariableip  a£  
Variable tracker for inspect.signature with caching support.

inspect.Signature is expensive to trace. When inspect.signature is called
repeatedly on the same function during tracing, we cache the result to avoid
retracing the signature construction each time. Although this is different
from CPython behavior, it is safe to do so because inspect.signature does
not change across different calls to the same function.
r¤   rO   r¦   r§   rk   c                 ór  >• [        U5      S:X  a˜  U(       d‘  US   nS n[        U[        [        45      (       a  UR	                  5       nUb\  XQR
                  R                  ;   a  UR
                  R                  U   $ [        TU ]!  XU5      nXaR
                  R                  U'   U$ [        TU ]!  XU5      $ rw   )	r—   rÁ   r¤  rî  r=  rÍ   Úsignature_cacher  rŠ  )r‰   r¤   r¦   r§   Ú
target_argÚ	cache_keyrÅ   r  s          €ri   rŠ  Ú&InspectSignatureVariable.call_function{  s§   ø€ ô ˆt‹9˜‹>¦&Ø˜a™ˆJØˆIä˜*Ô';Ô=OÐ&P×QÑQØ&×3Ñ3Ó5�	àÑ$Ø§	¡	× 9Ñ 9Ó9ØŸ9™9×4Ñ4°YÑ?Ð?ä™Ñ.¨r¸Ó@�Ø7=—	‘	×)Ñ)¨)Ñ4Ø�ä‰wÑ$ R¨vÓ6Ð6rh   ra   ©rc   rd   re   rf   rá   r²   rG   r•   rœ  rŠ  rg   r¡  r¢  s   @ri   r¡  r¡  p  sG   ø† ñð7à'ð7ð �?Ñ#ð7ð �S˜/Ð)Ñ*ð	7ð
 
÷7õ 7rh   r¡  c                   ó®   ^ • \ rS rSrS1\R
                  krS\\S4   S\S\	SS4U 4S jjr
S\4S	 jrS
\S\4S jrSSS\\   S\\\4   S\4S jrSrU =r$ )ry  i”  r|  .re  r§   rk   Nc                 ó>   >• [         TU ]  " S0 UD6  Xl        X l        g r�   )r  r�   r|  re  )r‰   r|  re  r§   r  s       €ri   r�   Ú$TreeMapOnlyFunctionVariable.__init__š  s    ø€ ô 	‰ÒÑ"˜6Ò"Ø*ÔØ�rh   c                 ó   • [         $ r�   rØ   rý   s    ri   rÙ  Ú'TreeMapOnlyFunctionVariable.python_type¤  ó   € ÜÐrh   Únodec                 ó„   ^•  UR                  5       m[        U4S jU R                   5       5      $ ! [         a     gf = f)NFc              3   ó<   >#   • U  H  n[        TU5      v •  M     g 7fr�   )Ú
issubclass)ræ  ÚallowedÚ	node_types     €ri   rè  ÚDTreeMapOnlyFunctionVariable._matches_allowed_type.<locals>.<genexpr>¬  s   øé € ÐTÒAS°g”:˜i¨×1Ð1ÒASùs   ƒ)rÙ  r3  rë  r|  )r‰   r®  r³  s     @ri   Ú_matches_allowed_typeÚ1TreeMapOnlyFunctionVariable._matches_allowed_type§  sC   ø€ ð	Ø×(Ñ(Ó*ˆIô ÔTÀ×ASÒASÓTÓTÐTøô #ó 	Ùð	ús   ƒ2 ²
?¾?r¤   rO   r¦   c                 ó  • U(       d  U R                   R                  XU5      $ US   nU R                  U5      (       a  U R                   R                  XU5      $ [        U5      S:w  d  U(       a  U R                   R                  XU5      $ U$ )Nr   r=   )re  rŠ  rµ  r—   )r‰   r¤   r¦   r§   Úleafs        ri   rŠ  Ú)TreeMapOnlyFunctionVariable.call_function®  sz   € ö Ø—;‘;×,Ñ,¨R°vÓ>Ð>Ø�A‰wˆØ×%Ñ% d×+Ñ+Ø—;‘;×,Ñ,¨R°vÓ>Ð>Üˆt‹9˜‹>žVð —;‘;×,Ñ,¨R°vÓ>Ð>Øˆrh   )r|  re  )rc   rd   re   rf   rï   rœ  r±   rÞ   rG   r   r�   rÙ  rž  rµ  r²   r•   rœ  rŠ  rg   r¡  r¢  s   @ri   ry  ry  ”  s°   ø† àðà	!×	0Ñ	0ð€Nð
à˜T 3˜YÑ'ðð  ðð ð	ð
 
÷ð˜Tô ðU¨/ð U¸dô Uðà'ðð �?Ñ#ðð �S˜/Ð)Ñ*ð	ð
 
÷ò rh   ry  c            
       óÈ  ^ • \ rS rSr\R
                  rS\R                  S\\	\
4   SSS\
SS4
U 4S	 jjrS\R                  4S
 jrS\	4S jrS\	4S jrS\4S jrS\4S jrS\	4S jr S\	4S jr\rS/S jrS\\	\
4   4S jrS\4S jrSSS\S\	S\4S jrS\S-  4S jrSSS\S\S\4S jrSSS\S\S\4S jrSSS\4S jrSSS\	S\4S  jr SSS\4S! jr!S\"S"   4S# jr#SSS\SS4S$ jr$S\4S% jr%S\4S& jr&S\4S' jr'SSS(\(\   S\\	\4   S\4S) jr)SSS(\(\   S\\	\4   S\4S* jr*S0S+ jr+SSS(\(\   S\\	\4   S\4S, jr,\-" \)5      \-" \*5      \-" \,5      S-.r.S.r/U =r0$ )1ÚLocalGeneratorObjectVariableiÀ  rŠ   rÔ   Úinline_tracerrM   r§   rk   Nc                 óŽ   >• [         TU ]  " S0 UD6  Xl        X l        X0l        / U l        UR                  R                  U 5        g r�   )r  r�   rŠ   rÔ   r¼  Úremaining_itemsrÍ   Útrack_generator)r‰   rŠ   rÔ   r¼  r§   r  s        €ri   r�   Ú%LocalGeneratorObjectVariable.__init__Ä  sA   ø€ ô 	‰ÒÑ"˜6Ò"ØŒ	Ø"ŒØ*ÔØ68ˆÔØ×Ñ×,Ñ,¨TÕ2rh   c                 ó   • U R                   $ r�   )rŠ   rý   s    ri   r  Ú%LocalGeneratorObjectVariable.get_codeÒ  ó   € Ø�y‰yÐrh   c                 ó6   • U R                  5       R                  $ r�   r  rý   s    ri   r  Ú)LocalGeneratorObjectVariable.get_filenameÕ  r  rh   c                 ó6   • U R                  5       R                  $ r�   r  rý   s    ri   r!  Ú%LocalGeneratorObjectVariable.get_nameØ  r#  rh   c                 ó   • [        S5      e)Nr=  r2  rý   s    ri   r=  Ú)LocalGeneratorObjectVariable.get_functionÛ  s   € Ü! .Ó1Ð1rh   c                 ó   • g©NFra   rý   s    ri   r:  Ú%LocalGeneratorObjectVariable.has_selfÞ  ó   € Ørh   c                 ó"   • U R                  5       $ r�   )r!  rý   s    ri   rc   Ú%LocalGeneratorObjectVariable.__name__á  s   € Ø�}‰}‹Ðrh   c                 óV   • U R                   R                   SU R                  5        S3$ )NÚ(r'  )r  rc   r!  rý   s    ri   Ú__str__Ú$LocalGeneratorObjectVariable.__str__ä  s'   € Ø—.‘.×)Ñ)Ð*¨!¨D¯M©M«OÐ+<¸AÐ>Ð>rh   c                 ó¸  • SSK Jn  SSKJnJn  UR
                  nU" U5      nU" U5      nU" U5      nU   U   U   U R                  5       (       d  [        XP5      U l        [        R                  " U R                  5      R                  U5        S S S 5        S S S 5        S S S 5        g ! , (       d  f       N= f! , (       d  f       N(= f! , (       d  f       g = f)Nr   )Ú"disallow_side_effects_in_generator)Ú save_and_restart_speculation_logÚ(temporarely_allow_writes_to_output_graph)Útorch._dynamo.side_effectsrÕ  Útorch._dynamo.symbolic_convertrÖ  r×  r¤   Ú_frame_state_finishedr<   r¾  r   ÚListIteratorVariableÚreconstruct)	r‰   rË  rÕ  rÖ  r×  r¤   ÚsaveÚdisallowÚtemps	            ri   rÜ  Ú(LocalGeneratorObjectVariable.reconstructé  s�   € ÝQ÷	
ð
 �Z‰ZˆÙ/°Ó3ˆÙ5°bÓ9ˆÙ7¸Ó;ˆâ’8šTØ×-Ñ-×/Ñ/Ü'6°rÓ'@�Ô$Ü×*Ò*¨4×+?Ñ+?Ó@×LÑLÈWÔU÷ "—8�TˆTŸT�Tú—8•8ú�T�Tús:   µC¸B:»AB)ÂB:ÂCÂ)
B7Â3B:Â:
C	ÃCÃ
Cc                 ó   • U R                   $ r�   ©rÔ   rý   s    ri   r4  Ú(LocalGeneratorObjectVariable.get_globalsú  ó   € Ø�~‰~Ðrh   c                 ó"   • [         R                  $ r�   )rÛ   ÚGeneratorTyperý   s    ri   rÙ  Ú(LocalGeneratorObjectVariable.python_typeý  s   € Ü×"Ñ"Ð"rh   r¤   rO   r÷   rø   c                 ó    • SSK Jn  U" XX#5      $ rò   rô   rö   s        ri   rù   Ú0LocalGeneratorObjectVariable.tp_richcompare_impl   s   € õ
 	8á! $¨EÓ6Ð6rh   c                 ó¸   • U R                   R                  [        R                  :X  a2  [        R
                  S:¼  a  SnOSnU R                   R                  U   $ g )N)r&  é   rK  éÿÿÿÿ)r¼  Úframe_stater4   ÚFRAME_SUSPENDED_YIELD_FROMr(  r)  Ústack)r‰   Úinds     ri   Úpygen_yfÚ%LocalGeneratorObjectVariable.pygen_yf	  sN   € Ø×Ñ×)Ñ)¬Z×-RÑ-RÓRÜ×Ñ 7Ó*Ø‘à�Ø×%Ñ%×+Ñ+¨CÑ0Ð0Ørh   rK  Úexcc           	      óÆ  • U R                   nUR                  [        R                  :X  a!  UR	                  5       (       d  [        US5        UR                  [        R                  :X  a  [        US5        U R                  5       (       a  [        [        U5        [        R                  Ul         UR                  U5        U R                   R                  5          U(       a  U R                  5         UR                  5       sS S S 5        $ ! , (       d  f       g = f! [         aæ    UR                  [        R                  :H  n[        R                   Ul        ["        R$                  S:  až  U(       a—  UR&                  R)                  5       n[*        R,                  " U[.        5      R1                  U[*        R,                  " US5      /0 5      nUR3                  US[4        R6                  " S5      U/0 5        UR9                  Xv5        e [:         a    [        R<                  Ul        e [>         a(    [A        SSS	S
[B         S3/[D        RF                  QS9   g [H         a{  n[J        RL                  RN                  RQ                  U RS                  5       5        SUl*        URV                  (       d&  URX                  (       d  U=RZ                  S-  sl-        e S nAff = f)Nz5can't send non-None value to a just-started generatorzgenerator already executing)r&  é   zgenerator raised StopIterationr  Ú__context__zinfinite generator detectedÚ z}Dynamo traced the YIELD_VALUE bytecode too many times. This could mean that we have attempted to trace an infinite generator.zLIf you are sure that your generator is not infinite, please report a bug at Ú.rº  TzA

Skipping frame due to graph break in a generator's next() call.).r¼  rí  r4   ÚFRAME_CREATEDÚis_constant_noner!   ÚFRAME_EXECUTINGr"   rÚ  r    ÚStopIterationÚpushÚlink_gi_exc_stateÚthrow_pendingÚinline_call_r   ÚFRAME_COMPLETEDr(  r)  Úexn_vt_stackÚget_raised_exceptionrG   rÂ   r0  rŠ  r  rI   rÄ   Údo_raiser   ÚFRAME_CLEAREDr   r$   ÚPT2_ISSUE_TRACKER_URLr   r=  r%   rm   r,  Ú
eval_frameÚ	skip_coder  Ú
skip_frameÚ	one_graphr"  rR  )	r‰   r¤   rK  ró  ÚtracerÚwas_executingÚprevÚrtrO  s	            ri   Úgen_send_ex2Ú)LocalGeneratorObjectVariable.gen_send_ex2  sQ  € ð ×#Ñ#ˆð ×Ñ¤*×":Ñ":Ó:Ø×(Ñ(×*Ñ*äØØGôð
 ×Ñ¤×!;Ñ!;Ó;Ü˜bÐ"?Ô@à×%Ñ%×'Ñ'Ü$¤]°BÔ7ä'×7Ñ7ˆÔð>	ð �K‰K˜ÔØ×#Ñ#×5Ñ5Õ7ÞØ×&Ñ&Ô(Ø×*Ñ*Ó,÷ 8×7×7ûô )ó 	ð #×.Ñ.´*×2LÑ2LÑLˆMÜ!+×!;Ñ!;ˆFÔÜ×Ñ 'Ó)®mð ×*Ñ*×?Ñ?ÓA�Ü$×*Ò*¨2¬|Ó<×JÑJØÜ$×*Ò*¨2Ð/OÓPÐQØó�ð
 —‘ØØ!Ü%×,Ò,¨]Ó;¸TÐBØô	ð —‘˜BÔ%ØÜ ó 	ô ",×!9Ñ!9ˆFÔØÜ%ó 	äØ5ØðIð cÔcxÐbyÐyzÐ{ðä&×1Ñ1ðô	ô ó 	Ü�M‰M×$Ñ$×.Ñ.¨t¯}©}«Ô?ØˆAŒLØ—<—<¨×(?×(?Ø—’Ð^Ñ^•Øûð	ús>   Â1+D Ã'DÄ	D Ä
DÄD ÄD ÄD<K É	K É%A6KËK c                 óÀ   • U R                  XU5      nU R                  5       (       a  U$ UR                  5       (       a  [        [        U5        g [        [        X/S9  g r~  )r  Ú_frame_state_suspendedrú  r    rü  )r‰   r¤   rK  ró  rÅ   s        ri   Úgen_send_exÚ(LocalGeneratorObjectVariable.gen_send_exl  sQ   € ð ×"Ñ" 2¨CÓ0ˆØ×&Ñ&×(Ñ(àˆMð ×&Ñ&×(Ñ(Ü(¬¸Õ;ä(¬¸ÀÓJrh   c                 óP   • U R                  U[        R                  " S 5      S5      $ rË  )r  rI   rÄ   r	  s     ri   Útp_iternext_implÚ-LocalGeneratorObjectVariable.tp_iternext_impl‚  s#   € à× Ñ  Ô%5×%<Ò%<¸TÓ%BÀEÓJÐJrh   r´   c                 ó”   • X R                  5       R                  ;   a  [        R                  " S5      $ [        R                  " S5      $ ©NTF)rÙ  rs  rI   rÄ   r�  s      ri   r�  Ú-LocalGeneratorObjectVariable.call_obj_hasattr†  s;   € ð ×#Ñ#Ó%×.Ñ.Ó.Ü#×*Ò*¨4Ó0Ð0Ü×&Ò& uÓ-Ð-rh   c                 ó   • U $ r�   ra   r	  s     ri   Útp_iter_implÚ)LocalGeneratorObjectVariable.tp_iter_impl�  s   € àˆrh   Fc                 ó   • grË  ra   rý   s    ri   r˜  Ú=LocalGeneratorObjectVariable.should_allow_nested_graph_breaks’  rÍ  rh   c                 ó  • SSK JnJn  [        X#U45      (       d  [	        SUR                  5        35      eUR                  U5      n[        XT5      (       d  [        SU 35      eU R                  R                  R                  U5        g )Nr   )ÚExceptionTypesÚExceptionValsz,Expected an exception type or instance, got z$Expected an exception variable, got )rÙ  r!  r"  rÁ   rô  Úpython_type_nameÚ_create_exception_instancerÝ   r¼  r  Úset_raised_exception)r‰   r¤   ró  r!  r"  r½   s         ri   Ú_setup_exceptionÚ-LocalGeneratorObjectVariable._setup_exception•  s…   € ÷ 	Qô ˜#°Ð>×?Ñ?ÜØ>¸s×?SÑ?SÓ?UÐ>VÐWóð ð ×+Ñ+¨CÓ0ˆÜ˜#×-Ñ-Ü Ð#GÈÀuÐ!MÓNÐNØ×Ñ×'Ñ'×<Ñ<¸SÕArh   c                 óP   • U R                   R                  [        R                  :H  $ r�   )r¼  rí  r4   rù  rý   s    ri   Ú_frame_state_createdÚ1LocalGeneratorObjectVariable._frame_state_created¥  s   € Ø×!Ñ!×-Ñ-´×1IÑ1IÑIÐIrh   c                 óp   • U R                   R                  [        R                  [        R                  1;   $ r�   )r¼  rí  r4   r  r  rý   s    ri   rÚ  Ú2LocalGeneratorObjectVariable._frame_state_finished¨  s2   € Ø×!Ñ!×-Ñ-Ü×&Ñ&Ü×$Ñ$ð2
ñ 
ð 	
rh   c                 óp   • U R                   R                  [        R                  [        R                  1;   $ r�   )r¼  rí  r4   ÚFRAME_SUSPENDEDrî  rý   s    ri   r  Ú3LocalGeneratorObjectVariable._frame_state_suspended®  s2   € Ø×!Ñ!×-Ñ-Ü×&Ñ&Ü×1Ñ1ð2
ñ 
ð 	
rh   r¦   c                 ó,   • U R                  XS   S5      $ )Nr   F)r  r‰  s       ri   Úgen_sendÚ%LocalGeneratorObjectVariable.gen_send´  s   € ð ×Ñ ¨¡G¨UÓ3Ð3rh   c                 ó0  • U R                   nU R                  5       (       a+  [        R                  Ul        [
        R                  " S 5      $ U R                  5       (       a  [
        R                  " S 5      $ SnU R                  5       nU(       a=  UR                  [        R                  5          UR                  US/ 0 5        S S S 5        USL a+  U R                  U[        R                  " U[         5      5         U R#                  U[
        R                  " S 5      S5        [%        [&        US/S9  [
        R                  " S 5      $ ! [         a    Sn N”f = f! , (       d  f       Nž= f! [(         a'  nS Ul        [
        R                  " S 5      s S nA$ S nAf[,         am    UR.                  R1                  5       n[3        U[4        R6                  5      (       d  [9        SU 35      S eUR:                  (       a  UR:                  S   s $  NÞf = f)NFÚcloseTzgenerator ignored GeneratorExitr  z;Expected current exception to be an ExceptionVariable, got r   )r¼  r)  r4   r  rí  rI   rÄ   rÚ  rñ  Útemporarily_set_frame_staterû  r  r   r&  rG   rÂ   ÚGeneratorExitr  r    r0  r   Ú__traceback__r   r  r  rÁ   r   ÚExceptionVariablerÝ   r¦   )	r‰   r¤   r¦   r§   r  ÚerrÚyfrO  Úcurr_excs	            ri   Ú	gen_closeÚ&LocalGeneratorObjectVariable.gen_close¿  sÉ  € ð& ×#Ñ#ˆØ×$Ñ$×&Ñ&Ü!+×!;Ñ!;ˆFÔÜ#×*Ò*¨4Ó0Ð0à×%Ñ%×'Ñ'Ü#×*Ò*¨4Ó0Ð0àˆØ�]‰]‹_ˆÞØ×3Ñ3´J×4NÑ4NÕOðØ—N‘N 2 w°°BÔ7÷ Pð �%Š<Ø×!Ñ! "¤o×&;Ò&;¸BÄÓ&NÔOð	Ø×Ñ˜RÔ!1×!8Ò!8¸Ó!>ÀÔEô* %ÜØØ7Ð8òô
  ×&Ò& tÓ,Ð,øôC )ó Ø’Cðú÷ PÕOûô %ó 	1ð
 #ˆAŒOÜ#×*Ò*¨4Ó0Õ0ûÜ(ó 
	(ð ×*Ñ*×?Ñ?ÓAˆHÜ˜h¬	×(CÑ(C×DÑDä$ØQÐRZÐQ[Ð\óàðð �}�}Ø—}‘} QÑ'Ò'ñ ð
	(úsO   Â0EÂ2EÃ?'E/ ÅEÅEÅEÅEÅ
E,Å/
HÅ9FÆHÆA5HÈHc                 ó  • U R                   nUR                  R                  5       n[        UR	                  5       5      " 5       n[
        R                  " XR                  5      nUR                  XB5        UR                  U5        g r�   )
r¼  r  r  r   rÙ  rG   rÂ   Úexc_typeÚset_exception_objÚexception_handler)r‰   r  r;  ÚobservedÚ	curr_types        ri   rÿ  Ú*LocalGeneratorObjectVariable.throw_pending  si   € Ø×#Ñ#ˆØ×&Ñ&×;Ñ;Ó=ˆÜ0°×1EÑ1EÓ1GÔHÓJˆÜ#×)Ò)¨&×2CÑ2CÓDˆ	Ø× Ñ  Ô5Ø× Ñ  Õ*rh   c                 óÊ  ^ ^^• UU U4S jnSSK Jn  [        U5      S:”  a  US   OUS   mT R                  5       nT R                  nU(       a•  U" T[
        5      (       aD   UR                  [        R                  5         UR                  TS/ 0 5        S S S 5        U" 5       $  UR                  [        R                  5         UR                  TST/0 5      sS S S 5        $ U" 5       $ ! , (       d  f       U" 5       $ = f! [         a	     U" 5       $ f = f! , (       d  f       U" 5       $ = f! [         a*    T R                  T[        R                  " S 5      S5      s $ f = f)Nc                  óv   >• TR                  TT 5        TR                  T[        R                  " S 5      S5      $ r—  )r&  r  rI   rÄ   )rK  r‰   r¤   s   €€€ri   Ú
throw_hereÚ:LocalGeneratorObjectVariable.gen_throw.<locals>.throw_here  s4   ø€ Ø×!Ñ! " cÔ*Ø×#Ñ# BÔ(8×(?Ò(?ÀÓ(EÀtÓLÐLrh   r   )Úpyerr_given_exception_matchr=   r4  ÚthrowT)rÙ  rI  r—   rñ  r¼  r6  r5  r4   rû  r  r   r  rI   rÄ   )	r‰   r¤   r¦   r§   rG  rI  r:  r  rK  s	   ``      @ri   Ú	gen_throwÚ&LocalGeneratorObjectVariable.gen_throw  s@  ú€ ÷	Mõ 	Oä˜T› Q›ˆd�1Šg¨D°©GˆØ�]‰]‹_ˆØ×#Ñ#ˆæá*¨3´×>Ñ>ðà×;Ñ;¼J×<VÑ<VÕWØŸ™ r¨7°B¸Ô;÷ Xñ "“|Ð#ðQØ×7Ñ7¼
×8RÑ8RÕSØŸ>™>¨"¨g¸°u¸bÓA÷ TÑSñ
 ‹|Ð÷ XÔWñ "“|Ð#ûô )ó ØÙ!“|Ð#ðú÷
 TÔSñ
 ‹|Ðûô %ó QØ×'Ñ'¨Ô,<×,CÒ,CÀDÓ,IÈ4ÓPÒPðQús`   Á!D Â C*ÂD Â%D. ÃDÃ	D. Ã*
C>Ã4D Ã>D Ä
DÄDÄ
D+Ä!D. Ä+D. Ä.1E"Å!E")Úsendr4  rJ  )rŠ   rÔ   r¼  r¾  ©rË  rL   rk   N)rk   N)1rc   rd   re   rf   rÛ   ræ  r›  r�  r•   rœ  r   r�   r  r  r!  r   r=  rž  r:  rÒ  Ú__repr__rÜ  r4  rÞ   rÙ  rG   rù   rñ  r  r  r  rI   r�  r  r	   r˜  r&  r)  rÚ  r  r²   r1  r<  rÿ  rK  rD   Ú
tp_methodsrg   r¡  r¢  s   @ri   r»  r»  À  sæ  ø† à×'Ñ'€Mð3à�n‰nð3ð ˜˜S˜‘>ð3ð @ð	3ð
 ð3ð 
÷3ð˜%Ÿ.™.ô ð+˜cô +ð'˜#ô 'ð2˜eô 2ð˜$ô ð˜#ô ð?˜ô ?ð €HôVð"˜T # s (™^ô ð#˜Tô #ð7Ø-ð7Ø6Eð7ØKNð7à	ô7ð˜/¨DÑ0ô ðXà'ðXð ðXð ð	Xð
 
ôXðtKà'ðKð ðKð ð	Kð
 
ôKð,KÐ#>ð KÀ?ô Kð.Ø-ð.Ø58ð.à	ô.ðÐ:ð ¸ô ð
°'¸%±.ô ðBØ-ðBØ4CðBà	ôBð J dô Jð
 tô 
ð
¨ô 
ð	4à'ð	4ð �?Ñ#ð	4ð �S˜/Ð)Ñ*ð		4ð
 
ô	4ðB-à'ðB-ð �?Ñ#ðB-ð �S˜/Ð)Ñ*ð	B-ð
 
ôB-ôH+ð&à'ð&ð �?Ñ#ð&ð �S˜/Ð)Ñ*ð	&ð
 
ô&ñR �xÓ Ù˜	Ó"Ù˜	Ó"ñ†Jrh   r»  c                   ó   • \ rS rSrSrSrg)Ú4ContextlibContextManagerLocalGeneratorObjectVariablei:  zâ
.. note::

    This is only used when the function is annotated with @contextlib.contextmanager

    It is a special case of a generator function as we do not allow return a context manager
    from a torch.compile function.
ra   N)rc   rd   re   rf   rá   rg   ra   rh   ri   rR  rR  :  s   † ôrh   rR  c            	       ó  ^ • \ rS rSrSrS\4S jr\S.S\S\S\	SS	4U 4S
 jjjr
S\S\	4S jrS\R                  4S jrS\\\	4   4S jrS\4S jrSSS\\   S\\\4   SS4S jrSSS\\   S\\\4   S\4S jrS\4S jrSrU =r$ )ÚLocalGeneratorFunctionVariableiG  zlfunctions that behaves like iterators

.. note::

    This is a wrapper around (Nested)UserFunctionVariable
rk   c                 ó"   • [         R                  $ r�   rØ  rý   s    ri   rÙ  Ú*LocalGeneratorFunctionVariable.python_typeO  rÛ  rh   )Úgenerator_clsÚvtrW  r§   Nc                ó>   >• [         TU ]  " S0 UD6  Xl        X l        g r�   )r  r�   rX  rW  )r‰   rX  rW  r§   r  s       €ri   r�   Ú'LocalGeneratorFunctionVariable.__init__R  s    ø€ ô 	‰ÒÑ"˜6Ò"ØŒØ*Õrh   r´   c                 óv   • XR                   R                  ;   a  [        X5      $ [        U R                  U5      $ r�   )r  rs  rë   rX  )r‰   r´   s     ri   Ú__getattr__Ú*LocalGeneratorFunctionVariable.__getattr__]  s.   € Ø—>‘>×*Ñ*Ó*Ü˜4Ó&Ð&Ü�t—w‘w Ó%Ð%rh   c                 ó6   • U R                   R                  5       $ r�   )rX  r  rý   s    ri   r  Ú'LocalGeneratorFunctionVariable.get_codec  ó   € Ø�w‰w×ÑÓ!Ð!rh   c                 ó6   • U R                   R                  5       $ r�   )rX  r4  rý   s    ri   r4  Ú*LocalGeneratorFunctionVariable.get_globalsf  s   € Ø�w‰w×"Ñ"Ó$Ð$rh   c                 ó6   • U R                   R                  5       $ r�   )rX  r:  rý   s    ri   r:  Ú'LocalGeneratorFunctionVariable.has_selfi  r`  rh   r¤   rO   r¦   rN   c                 ó8   • SSK Jn  UR                  " UU UU5      $ )Nr   )rN   )rÙ  rN   Úbuild_inline_tracer)r‰   r¤   r¦   r§   rN   s        ri   Ú_build_inline_tracerÚ3LocalGeneratorFunctionVariable._build_inline_tracerl  s'   € õ 	Qà,×@Ò@ØØØØó	
ð 	
rh   c                 ól  • [        U R                  [        5      (       a/  [        S[	        U R                  5      S/ [
        R                  QS9  [        U R                  R                  5       5      (       d/  [        S[	        U R                  R                  5       5      SSS/S9  U R                  U[        U5      U5      nU R                  R                  5       nU R                  R                  5       n[        R                  S:¼  a  UR                  5         U R                  UUUU R                   S	9$ )
Nz*generator function over a skipped functionz�Cannot trace a generator whose underlying function is skipped by Dynamo (e.g. defined in a skip-listed module), since its body cannot be symbolically traced.rº  z'non-generator contextlib.contextmanagerzvCannot compile function decorated with `@contextlib.contextmanager` that is not a generator, i.e. does not use `yield`z5Use `yield` in the function body instead of `return`.z2Remove the `@contextlib.contextmanager` decorator.r%  r  )rÁ   rX  ÚSkipFunctionVariabler$   rœ  r   ÚFUNDAMENTALr   r  rg  r²   r4  r(  r)  r   rW  r¾   )r‰   r¤   r¦   r§   r¼  rŠ   rÔ   s          ri   rŠ  Ú,LocalGeneratorFunctionVariable.call_function{  s  € ô �d—g‘gÔ3×4Ñ4ÜØDÜ˜DŸG™G›ðhà6Ô)×5Ñ5Ð6òô ˜DŸG™G×,Ñ,Ó.×/Ñ/ÜØAÜ˜DŸG™G×,Ñ,Ó.Ó/ð.ð LØHðò	ð ×1Ñ1°"´d¸4³jÀ&ÓIˆØ�w‰w×ÑÓ!ˆØ—G‘G×'Ñ'Ó)ˆ	ä×Ñ˜wÓ&Ø×&Ñ&Ô(à×!Ñ!ØØØØ—;‘;ð	 "ð 
ð 	
rh   c                 ó6   • U R                   R                  5       $ r�   )rX  rÏ  rý   s    ri   rÏ  Ú;LocalGeneratorFunctionVariable.get_real_python_backed_value£  s   € Ø�w‰w×3Ñ3Ó5Ð5rh   )rW  rX  )rc   rd   re   rf   rá   rÞ   rÙ  r»  rï   r   r�   rœ  r\  rÛ   r�  r  r•   r4  rž  r:  r²   rG   rg  rŠ  rŸ  rÏ  rg   r¡  r¢  s   @ri   rT  rT  G  s  ø† ñð"˜Tô "ð ;ò		+à$ð	+ð ð		+ð
 ð	+ð 
÷	+ð 	+ð& ð &¨ô &ð"˜%Ÿ.™.ô "ð%˜T # s (™^ô %ð"˜$ô "ð
à'ð
ð �?Ñ#ð
ð �S˜/Ð)Ñ*ð	
ð
 
)ô
ð&
à'ð&
ð �?Ñ#ð&
ð �S˜/Ð)Ñ*ð	&
ð
 
ô&
ðP6¨f÷ 6ò 6rh   rT  c                   ó<   ^ • \ rS rSrSrS\S\SS4U 4S jjrSrU =r	$ )	Ú3FunctionDecoratedByContextlibContextManagerVariablei§  za
.. note::

    This is only used when the function is annotated with @contextlib.contextmanager
rX  r§   rk   Nc                 ó4   >• [         TU ]  " U4S[        0UD6  g )NrW  )r  r�   rR  )r‰   rX  r§   r  s      €ri   r�   Ú<FunctionDecoratedByContextlibContextManagerVariable.__init__°  s%   ø€ Ü‰ÒØñ	
äNð	
ð ó	
rh   ra   )
rc   rd   re   rf   rá   rï   r   r�   rg   r¡  r¢  s   @ri   rp  rp  §  s(   ø† ñð
Ð3ð 
¸sð 
Àt÷ 
õ 
rh   rp  c                   óZ  ^ • \ rS rSrSr\R                  r SS\S\	4   S\
S\S-  S\	S	S4
U 4S
 jjjrS	\4S jrSSS	\\\4   4S jrS	\\
   4S jrS	\\R                     4S jrSSS\\
   S\\\
4   S	\
4U 4S jjrSSS	\
4S jr\" \" S 5      5      \" \S5      S.rS	\	4S jrSrU =r$ )rî  i¸  z$Some unsupported user-defined methodNrå   .r  rï  r§   rk   c                 ó°   >• [         TU ]  " SSU0UD6  X l        X0l        Uc4  UR	                  S5      b!  [        UR	                  S5      S5      U l        g g g )Nrå   r¾   Ú__func__ra   )r  r�   r  rï  rž   r(   )r‰   rå   r  rï  r§   r  s        €ri   r�   ÚUserMethodVariable.__init__¾  sZ   ø€ ô 	‰ÒÑ)˜BÐ) &Ò)ØŒØ"Œð Ñ §¡¨HÓ!5Ñ!AÜ'¨¯
©
°8Ó(<¸jÓIˆD�Nð "BÐrh   c                 óh   • U R                   R                   SU R                   SU R                   S3$ )NrÑ  r&  r'  )r  rc   rå   r  rý   s    ri   rO  ÚUserMethodVariable.__repr__×  s.   € Ø—.‘.×)Ñ)Ð*¨!¨D¯G©G¨9°B°t·x±x°jÀÐBÐBrh   r¤   rO   c                 ó  • U R                   (       a2  UR                  R                  U R                   5      n[        U5      S4$ SSKJn  U" XR                  5      u  pE[        U R                  5      nXF-  nUS:X  a  SnXu4$ )NFr=   )Úgeneric_hash_implrì  rK  )r¾   rÍ   Úresolve_source_valueÚhashrõ   rz  r  rå   )r‰   r¤   Úreal_valrz  Ú	self_hashÚ	self_fakeÚ	func_hashÚhs           ri   Ú	hash_implÚUserMethodVariable.hash_implÚ  so   € ð �;�;Ø—y‘y×5Ñ5°d·k±kÓBˆHÜ˜“> 5Ð(Ð(å6á0°·X±XÓ>Ñˆ	Ü˜Ÿ™“Mˆ	ØÑ!ˆØ�‹7ØˆAØˆ|Ðrh   c                 ó   • U R                   /$ r�   ©r  rý   s    ri   rþ   ÚUserMethodVariable.self_argsê  ó   € Ø—‘ˆzÐrh   c                 ó"   • [         R                  $ r�   ©rÛ   Ú
MethodTyperý   s    ri   rÙ  ÚUserMethodVariable.python_typeí  ó   € Ü×ÑÐrh   r¦   c                 óf  >• SSK JnJn  U" U R                  5      (       ag  / U R	                  5       QUQn[
        R                  " U R                  [
        R                  R                  R                  S9nUR                  XU5      $ U" U R                  5      (       ag  / U R	                  5       QUQn[
        R                  " U R                  [
        R                  R                  R                  S9nUR                  XU5      $ UR                  R                  5       (       a³  [        U R                  [
        R                   5      (       aŠ  [#        U R                  SS5      nUb  UR%                  S5      (       a  US:w  d  U R&                  (       aB  U R                  R)                  XR                  R*                  [-        U5      X0R&                  S9$ Ok[.        bd  U R                  [.        R0                  R2                  L a=  [
        R4                  " U R                  5      R                  XR                  /UQU5      $ U R&                  (       aO  [#        U R                  R6                  U R                  R*                  5      n	[9        XU R;                  5       X#5      $ [<        T
U ])  XU5      $ )	Nr   )Úis_leaf_functionÚis_nonstrict_trace_callabler(  rd   r÷  z	torch.nn.ztorch.nn.utils.parametrize)Úconstant)Útrace_rulesrŽ  r�  rå   rþ   r   r>  rm   r?  r@  rŠ  ÚLEAF_FUNCTIONrÍ   Úis_root_tracerrÁ   r  ÚNNModuleVariablerë   rå  r¥  r  rc   r²   rK   ÚFSDPParamGroupÚuse_training_stateÚTorchCtxManagerClassVariablerª  rA  r!  r  )r‰   r¤   r¦   r§   rŽ  r�  Ú	call_argsÚvarÚmodule_attrrå   r  s             €ri   rŠ  Ú UserMethodVariable.call_functionð  s  ø€ ÷ 	Pá& t§w¡w×/Ñ/Ø2˜$Ÿ.™.Ó*Ð2¨TÐ2ˆIÜ×8Ò8Ø—‘œiŸo™o×>Ñ>×NÑNñˆCð ×$Ñ$ R°FÓ;Ð;á˜DŸG™G×$Ñ$Ø2˜$Ÿ.™.Ó*Ð2¨TÐ2ˆIÜ×8Ò8Ø—‘œiŸo™o×>Ñ>×LÑLñˆCð ×$Ñ$ R°FÓ;Ð;ð �9‰9×#Ñ#×%Ñ%¬*Ø�H‰H”i×0Ñ0÷+
ñ +
ô " $§'¡'¨<¸Ó<ˆKð Ñ'Ø×*Ñ*¨;×7Ñ7ØÐ#?Ó?Ø×#×#à—x‘x×+Ñ+ØŸ™×(Ñ(¬$¨t«*°f×GWÑGWð ,ð ð ð $ô Ñ)Ø—‘Ô,×;Ñ;×NÑNÒNä×9Ò9¸$¿'¹'ÓB×PÑPØ—X‘XÐ% Ð% vóð ð ××Ü˜Ÿ™Ÿ™¨¯©×)9Ñ)9Ó:ˆBÜ/°¸¿¹»ÈÓVÐVÜ‰wÑ$ R¨vÓ6Ð6rh   c                 óX   • [         R                  " XR                  U R                  5      $ r�   )rG   rÂ   rå   rï  r	  s     ri   Ú	_get_funcÚUserMethodVariable._get_func4  s   € ô ×$Ò$ R¯©°$·.±.ÓAÐArh   c                 ó   • U R                   $ r�   r…  ©rk  s    ri   r\  ÚUserMethodVariable.<lambda>=  s   € °·²rh   )rÝ  ru  c                 ó   • U R                   $ r�   r´  rý   s    ri   rÏ  Ú/UserMethodVariable.get_real_python_backed_valueA  r·  rh   )r  rï  r�   ) rc   rd   re   rf   rá   rÛ   rŠ  r›  r   r   rG   r   r�   rœ  rO  r±   Úintrž  r‚  r²   rþ   rÞ   rÙ  r•   rŠ  r�  rC   rB   r   rÏ  rg   r¡  r¢  s   @ri   rî  rî  ¸  sA  ø† Ù.ð ×$Ñ$€Mð $(ñ	Jà�S˜#�XÑðJð ðJð ˜D‘=ð	Jð
 ðJð 
÷Jð Jð2C˜#ô CðÐ7ð ¸EÀ#ÀtÀ)Ñ<Lô ð ˜4 Ñ0ô ð ˜T %×"2Ñ"2Ñ3ô  ðB7à'ðB7ð �?Ñ#ðB7ð �S˜/Ð)Ñ*ð	B7ð
 
÷B7ðHBÐ7ð B¸Oô Bñ ™;¡Ó7Ó8Ù˜9 dÓ+ñ€Jð
¨c÷ ò rh   rî  c                   óv   ^ • \ rS rSrS\SSS\SS4U 4S jjrS	S
S\\   S\	\
\4   S\4U 4S jjrSS jrSrU =r$ )ÚWrappedUserMethodVariableiE  Úwrappedr¼  rP   r§   rk   Nc                 ó²   >• UR                  SS 5        UR                  SS 5        [        TU ]  " UR                  UR                  40 UD6  Xl        X l        g )Nrå   r  )r¬   r  r�   rå   r  r§  r¼  ©r‰   r§  r¼  r§   r  s       €ri   r�   Ú"WrappedUserMethodVariable.__init__F  sG   ø€ ð 	�
‰
�4˜ÔØ�
‰
�5˜$ÔÜ‰Ò˜Ÿ™ W§[¡[Ñ;°FÒ;ØŒØ�rh   r¤   rO   r¦   c                 óX  >• [         R                  (       aM  [        [        R                  5      nUR                  XR                  U R                  /[        U5      -   U5      $ U R                  R                  U5        [        TU ]  XU5      nU R                  R                  U5        U$ r�   ©r   Únested_graph_breaksr¤  r   Ú_fn_with_ctxrŠ  r¼  r§  r²   Úenterr  Úexit©r‰   r¤   r¦   r§   Ú
wrapper_fnrÅ   r  s         €ri   rŠ  Ú'WrappedUserMethodVariable.call_functionR  óˆ   ø€ ô ×%×%Ü-¬i×.DÑ.DÓEˆJØ×+Ñ+Ø—\‘\ 4§<¡<Ð0´4¸³:Ñ=¸vóð ð 	�‰×Ñ˜2ÔÜ‘Ñ& r°Ó8ˆØ�‰×Ñ˜"ÔØˆrh   c                 óŽ   ^ ^• TR                  UU 4S j5        T" T R                  5        TR                  [        SS5      5        g )Nc                  ó(   >• T " TR                   5      $ r�   ©r¼  ©rË  r‰   s   €€ri   r\  Ú7WrappedUserMethodVariable.reconstruct.<locals>.<lambda>c  ó   ø€ ¡g¨d¯l©lÔ&;rh   r=   F©Úadd_push_nullr§  Úextend_outputr   rÊ  s   ``ri   rÜ  Ú%WrappedUserMethodVariable.reconstructb  ó4   ù€ Ø×ÑÕ;Ô<Ù�—‘ÔØ×ÑÔ2°1°eÓ<Õ=rh   ©r¼  r§  rN  )rc   rd   re   rf   rî  r   r�   r²   rG   r•   rœ  rŠ  rÜ  rg   r¡  r¢  s   @ri   r¦  r¦  E  sr   ø† ð
à#ð
ð +ð
ð ð	
ð
 
÷
ðà'ðð �?Ñ#ðð �S˜/Ð)Ñ*ð	ð
 
÷÷ >ò >rh   r¦  c                   óv   ^ • \ rS rSrS\SSS\SS4U 4S jjrS	S
S\\   S\	\
\4   S\4U 4S jjrSS jrSrU =r$ )ÚWrappedUserFunctionVariableih  r§  r¼  rP   r§   rk   Nc                 óx   >• UR                  SS 5        [        TU ]  " UR                  40 UD6  Xl        X l        g )Nrå   )r¬   r  r�   rå   r§  r¼  r©  s       €ri   r�   Ú$WrappedUserFunctionVariable.__init__i  s3   ø€ ð 	�
‰
�4˜ÔÜ‰Ò˜Ÿ™Ñ. vÒ.ØŒØ�rh   r¤   rO   r¦   c                 óX  >• [         R                  (       aM  [        [        R                  5      nUR                  XR                  U R                  /[        U5      -   U5      $ U R                  R                  U5        [        TU ]  XU5      nU R                  R                  U5        U$ r�   r¬  r±  s         €ri   rŠ  Ú)WrappedUserFunctionVariable.call_functiont  r´  rh   c                 óŽ   ^ ^• TR                  UU 4S j5        T" T R                  5        TR                  [        SS5      5        g )Nc                  ó(   >• T " TR                   5      $ r�   r·  r¸  s   €€ri   r\  Ú9WrappedUserFunctionVariable.reconstruct.<locals>.<lambda>…  rº  rh   r=   Fr»  rÊ  s   ``ri   rÜ  Ú'WrappedUserFunctionVariable.reconstruct„  r¿  rh   rÀ  rN  )rc   rd   re   rf   r¤  r   r�   r²   rG   r•   rœ  rŠ  rÜ  rg   r¡  r¢  s   @ri   rÂ  rÂ  h  sr   ø† ð	à%ð	ð +ð	ð ð		ð
 
÷	ðà'ðð �?Ñ#ðð �S˜/Ð)Ñ*ð	ð
 
÷÷ >ò >rh   rÂ  c                 ó  ^• S[         S[        4U4S jjnU Vs/ s H
  oe" U5      PM     nnUR                  5        VVs0 s H  u  pxXu" U5      _M     nnnU" U0 UD6n	U R                  R	                  U	T[        T5      S9$ s  snf s  snnf )NÚxrk   c           
      óÒ  >• U R                  5       (       a  [        SU 5      R                  5       $ [        U [        5      (       aA  U R
                  b(  [        U R                  [        R                  5      5        U R                  $  U R                  5       $ ! [         aD    [        SST S[        U 5      R                   3S[        U 5      R                   ST S3SS	/S
9   g f = f)NrU   z1assume_constant_result argument conversion failedz	function z, variable type z Cannot convert argument of type z# to a Python constant for function zm marked with torch._dynamo.assume_constant_result. The variable tracker does not support constant conversion.z>Remove torch._dynamo.assume_constant_result from this functionzIEnsure all arguments passed to the function can be converted to constantsrº  )Ú	is_tensorr   Úget_real_valuerÁ   rJ   r¾   r'   r­   r&   ÚID_MATCHrª  r  r>   r$   rÞ   rc   )rÌ  r´   s    €ri   ÚconvertÚ-invoke_and_store_as_constant.<locals>.convert‘  sÞ   ø€ Ø�;‰;�=‰=ÜÐ(¨!Ó,×;Ñ;Ó=Ð=Ü�aÔ2×3Ñ3Ø�x‰xÑ#Ü˜aŸl™l¬<×+@Ñ+@ÓAÔBØ—7‘7ˆNð	Ø×'Ñ'Ó)Ð)øÜ2ó 	ÜØKØ# D 6Ð)9¼$¸q»'×:JÑ:JÐ9KÐLØ>¼tÀA»w×?OÑ?OÐ>Pð Q Ø $˜vð &MðNð UØ_ðô
ð	ús   ÂB ÂAC&Ã%C&r  )rG   r   rÇ   rÍ   Úregister_attr_or_moduler+   )
r¤   rå   r´   r¦   r§   rÑ  rÌ  rÈ   rÉ   Úress
     `       ri   rA  rA  Š  s•   ø€ ð”?ð ¤s÷ ñ, !%Ó%¢˜1ˆG�AŽJ¡€DÐ%Ø(.¯©¬Ô7ª¡ ˆa�˜“Šm©€FÑ7Ù
ˆdÐ
�fÑ
€CØ�9‰9×,Ñ,ØØÜ˜dÓ#ð -ð ð ùò &ùÛ7s   šBÁ Bc                   óR  ^ • \ rS rSrS1\R
                  kr S&S\S\S\\\	4   S\S-  S\S-  S\S-  S	\S-  S
\	SS4U 4S jjjr
S\\   4S jrS\R                  4S jrS'U 4S jjrS\R"                  4S jrS\\R                     4S jr S&SS.S\\   S-  S\S\R                  4S jjjrS\4S jrS\\   S\S\R                  4S jrS\4S jrSSS\S\	4U 4S jjrSSS\S\4U 4S jjrS\4S jrS\\\	4   4S  jr S!SS"\\   S
\\\4   S\\\4   4S# jr!S(S$ jr"S%r#U =r$$ ))ÚNestedUserFunctionVariablei±  rÔ   NrS  rŠ   r’   r”   rÕ   Ú
wrapped_fnr§   rk   c                 óX  >• UR                  S5      c  UR                  [        5       S9  [        T	U ]  " S0 UD6  [        UR                  5       [        5      (       d%  [        S[        UR                  5       5       35      e[        UR                  5       [        R                  5      (       d%  [        S[        UR                  5       5       35      e[        U[        5      (       d  [        S[        U5       35      eXl        X l        X0l        X@l        XPl        X`l        Xpl        g )NrT  rS  zfn_name must be a str, got zcode must be a CodeType, got zf_globals must be a dict, got ra   )rž   Úupdater?   r  r�   rÁ   r  rœ  rÝ   rÞ   rÛ   r�  r•   rS  rŠ   rÔ   r’   r”   rÕ   r×  )
r‰   rS  rŠ   rÔ   r’   r”   rÕ   r×  r§   r  s
            €ri   r�   Ú#NestedUserFunctionVariable.__init__·  sþ   ø€ ð �:‰:�oÓ&Ñ.Ø�M‰MÔ(<Ó(>ˆMÑ?Ü‰ÒÑ"˜6Ò"Ü˜'×4Ñ4Ó6¼×<Ñ<Ü Ø-¬d°7×3MÑ3MÓ3OÓ.PÐ-QÐRóð ô ˜$×1Ñ1Ó3´U·^±^×DÑDÜ Ø/´°T×5LÑ5LÓ5NÓ0OÐ/PÐQóð ô ˜)¤T×*Ñ*Ü Ð#AÄ$ÀyÃ/ÐARÐ!SÓTÐTØŒØŒ	Ø"ŒØ ŒØ$ŒØŒØ2<�rh   c                 ó   • / $ r�   ra   rý   s    ri   rþ   Ú$NestedUserFunctionVariable.self_argsÙ  r   rh   c                 ó"   • U R                  5       $ r�   )r=  rý   s    ri   r  Ú-NestedUserFunctionVariable.as_python_constantÜ  s   € Ø× Ñ Ó"Ð"rh   r¤   rO   c                 óÆ   >•  [         TU ]  U5      $ ! [         aD  n[        SSU R                  R                  5        SU 3S/ [        R                  QS9   S nAg S nAff = f)Nz8repr() on nested function with non-constructible closurezrepr() on nested function z: z‚Dynamo could not safely evaluate repr() for this nested function because it could not reconstruct its closure as Python constants.rº  )r  r
  r_   r$   rS  r  r   ÚSUPPORTABLE)r‰   r¤   rO  r  s      €ri   r
  Ú'NestedUserFunctionVariable.tp_repr_implß  sj   ø€ ð
	Ü‘7Ñ'¨Ó+Ð+øÜ%ó 	ÜØRØ4°T·\±\×5TÑ5TÓ5VÐ4WÐWYÐZ[ÐY\Ð]ð'ð 7Ô)×5Ñ5Ð6÷ûð	ús   ƒ ’
A œ:AÁA c                 ó6   • U R                   R                  5       $ r�   )rŠ   r  rý   s    ri   r  Ú#NestedUserFunctionVariable.get_codeì  s   € Ø�y‰y×+Ñ+Ó-Ð-rh   c                 ó"   • [         R                  $ r�   rØ  rý   s    ri   rÙ  Ú&NestedUserFunctionVariable.python_typeï  rÛ  rh   F©Úallow_sourced_cellsÚ_convertingrç  c                ó&  • SSK Jn  [        U 5      nUc
  [        5       nXA;   a  [	        S5      eUR                  U5         U R                  X5      UR                  U5        $ ! U a  n[	        S5      UeS nAff = f! UR                  U5        f = f)Nr=   )r>   z-cycle detected in mutually recursive closuresú1failed to convert closure cell to Python constant)Úbaser>   ÚidÚsetr_   ÚaddÚ_get_function_implÚdiscard)r‰   rè  rç  r>   Úself_idrO  s         ri   r=  Ú'NestedUserFunctionVariable.get_functionò  sš   € õ 	>ä�T“(ˆØÑÜ›%ˆKØÓ!Ü(Ø?óð ð 	�‰˜Ô ð	)Ø×*Ñ*¨;ÓLð ×Ñ Õ(øð 3ó 	Ü(ØCóàðûð	ûð
 ×Ñ Õ(ús$   ÁA# Á#A:Á)A5Á5A:Á:A= Á=Bc                 óR   •  U R                  5         g! [        [        4 a     gf = fr  )r  r3  r%   rý   s    ri   rŠ  Ú-NestedUserFunctionVariable.is_python_constant  s-   € ð	Ø×#Ñ#Ô%ØøÜ#¤[Ð1ó 	Ùð	ús   ‚ “&¥&c                 ó  • S nU R                   (       aà  SSKJn  UR                  5       n/ nU R                   R                   H£  nUR
                  R                  R                  U5      nX€L a  [        S5      e[        U[        5      (       a,  UR                  UUS9n	UR                  [        U	5      5        Mx   UR                  5       n	UR                  [        U	5      5        M¥     [-        U5      n[.        R0                  " U R2                  R                  5       U R4                  U R6                  R                  5       S US9nU R8                  (       a  U R8                  R                  5       Ul        U R<                  (       a  U R<                  R                  5       Ul        U R@                  (       ax  U R@                  R                  5       n[        U[,        5      (       a  SSK!J"n  [G        U" U5      5      n[        U[F        5      (       d  [I        S[K        U5       35      eXËl&        U$ ! [        [         4 a    U(       d  [        S5      S e Of = f[        U["        5      (       a7  UR$                  b*  UR
                  R                  R'                  U5      (       a  [        S5      eUR)                  5       n	[        U	5      n
UR
                  R                  R+                  S X¨5        UR                  U
5        GMÄ  )	Nr   )ÚInstructionTranslatorz self-referential nested functionræ  rê  )ÚargdefsrÕ   rÙ   z annotations must be a dict, got )'rÕ   rÙ  rö  Ú
current_txrÇ   rÍ   rÎ   Ú	load_cellr_   rÁ   rÖ  r=  Úappendr;   r  r3  r%   rJ   r¾   Úis_modifiedÚguard_as_python_constantrú  r±   rÛ   r   rŠ   rÔ   rS  r’   r‘   r”   r“   rÖ   rÜ   rÚ   r•   rÝ   rÞ   rß   )r‰   rè  rç  Úclosure_cellsrö  r¤   Úcellsrü  rò  rª  rû  ru   rÖ   rÚ   s                 ri   rï  Ú-NestedUserFunctionVariable._get_function_impl  sƒ  € ð ˆØ�<�<ÝLà&×1Ñ1Ó3ˆBØˆEà ŸL™L×.Ô.�ð !#§	¡	× 6Ñ 6× @Ñ @ÀÓ J�ð !Ò(Ü0Ð1SÓTÐTô ˜mÔ-G×HÑHØ)×6Ñ6Ø#Ø,?ð 7ð �Eð —L‘L¤¨5Ó!1Ô2Ùð$Ø)×<Ñ<Ó>�EØ—L‘L¤¨5Ó!1Ô2Ùñ; /ôv " %›LˆMä×!Ò!Ø�I‰I×(Ñ(Ó*Ø�N‰NØ�L‰L×+Ñ+Ó-ØØ!ñ
ˆð �=�=Ø $§¡× @Ñ @Ó BˆDÔØ�?�?Ø"&§/¡/×"DÑ"DÓ"FˆDÔØ××Ø×*Ñ*×=Ñ=Ó?ˆKÜ˜+¤u×-Ñ-Ý.ä"¡8¨KÓ#8Ó9�ô ˜k¬4×0Ñ0Ü$Ø6´t¸KÓ7HÐ6IÐJóð ð $/Ô Øˆøôo ,¬[Ð9ó $Þ.Ü4ØOóà#ð$ñ /ð$úô$ ˜}Ô.G×HÑHØ%×,Ñ,Ñ8ØŸI™I×2Ñ2×>Ñ>¸}×MÑMä0ØKóð ð &×>Ñ>Ó@�Ü  Ó'�Ø—	‘	×&Ñ&×:Ñ:¸4ÀÔUØ—‘˜T×"s   Â;*H1È1#IÉIc                 ó   • U R                   S L$ r�   )rÕ   rý   s    ri   Úhas_closureÚ&NestedUserFunctionVariable.has_closureu  s   € Ø�|‰| 4Ð'Ð'rh   r´   c                 óÒ   >• US:X  a  U R                  5       $ US:X  a  U R                  5       $ US:X  a&  [        U SS 5      nU(       a  UR                  5       $ S $ [        TU ]  X5      $ )Nrc   rx   r‘   r’   )r!  r  rë   r  r  Úconst_getattr)r‰   r¤   r´   rF  r  s       €ri   r  Ú(NestedUserFunctionVariable.const_getattrx  sg   ø€ Ø�:ÓØ—=‘=“?Ð"Ø�:ÓØ—=‘=“?Ð"Ø�>Ó!Ü˜˜j¨$Ó/ˆAÞ-.�1×'Ñ'Ó)Ð8°DÐ8Ü‰wÑ$ RÓ.Ð.rh   c                 ó>  >• US:X  a!  [         R                  " U[        U S5      5      $ US:X  a!  [         R                  " U[        U S5      5      $ [        R                  " U5      nX0R                  U5      ;   a  [        R                  " S5      $ [        TU ]  X5      $ )Nrx   rŠ   r‘   r’   T)rG   rÂ   rŽ  rI   rÄ   r  r  r�  )r‰   r¤   r´   rX  r  s       €ri   r�  Ú+NestedUserFunctionVariable.call_obj_hasattr‚  s‹   ø€ ð �:ÓÜ"×(Ò(¨¬W°T¸6Ó-BÓCÐCØ�>Ó!Ü"×(Ò(¨¬W°T¸:Ó-FÓGÐGÜ×$Ò$ TÓ*ˆØ×!Ñ! "Ó%Ó%Ü#×*Ò*¨4Ó0Ð0Ü‰wÑ'¨Ó1Ð1rh   c                 ó   • grË  ra   rý   s    ri   r:  Ú#NestedUserFunctionVariable.has_selfŽ  rÍ  rh   c                 ó   • U R                   $ r�   râ  rý   s    ri   r4  Ú&NestedUserFunctionVariable.get_globals‘  rä  rh   rË   r¦   c                 óÔ  • U R                  5       n[        R                  " UU R                  U R                  R                  5       U R                  (       a  [        U R                  R                  5      OS [        S [        [        U R                  5       R                  5      5       5       5      5      nU R                  (       a  U R                  R                  5       Ul         [        R                   " U5      R"                  " U0 UD6nUR%                  5         [-        UR.                  R                  5       5      n[1        UR2                  R4                  U5        [7        XU5        [9        UR                  5       H7  u  pšX¨;   a  [;        SU
< S35      eU R<                  R                  U	   nX¸U
'   M9     U$ ! [&         a  n[)        UR*                  S   5      UeS nAff = f)Nc              3   ó8   #   • U  H  n[        S 5      v •  M     g 7fr�   )r;   )ræ  Ú_s     ri   rè  Ú7NestedUserFunctionVariable.bind_args.<locals>.<genexpr>   s   é € ÐSÒ+R a”)˜D—/�/Ò+Rùs   ‚r   zfree variable z already in result)r  rÛ   r   rÔ   rS  r  r’   r±   rÇ   r˜   r—   rö  r”   Úkeys_as_python_constantr“   rç   r1  r2  r7  rô  r¢   r¦   r•   r3  rÊ   rÍ   rõ  rÓ   rª   rÝ   rÕ   )r‰   rË   r¦   r§   rŠ   ru   rW   rO  rÅ   r¸   r´   rû  s               ri   r   Ú$NestedUserFunctionVariable.bind_args”  sw  € ð �}‰}‹ˆÜ×!Ò!ØØ�N‰NØ�L‰L×+Ñ+Ó-Ø*.¯-¯-ŒE�$—-‘-×%Ñ%Ô&¸TÜÑS¬5´°T·]±]³_×5PÑ5PÓ1QÔ+RÓSÓSó
ˆð �?�?Ø"&§/¡/×"IÑ"IÓ"KˆDÔð	6Ü×%Ò% dÓ+×0Ò0°$ÐA¸&ÑAˆEØ× Ñ Ô"ô �e—o‘o×+Ñ+Ó-Ó.ˆÜ˜Ÿ™×.Ñ.°Ô7Ü�f dÔ+ä" 4×#3Ñ#3Ö4‰IˆCØ‹~Ü$ ~°d±XÐ=OÐ%PÓQÐQØ—<‘<×%Ñ% cÑ*ˆDØ�4‹Lñ	 5ð ˆøô ó 	6Ü# A§F¡F¨1¡IÓ.°AÐ5ûð	6ús   Ã(6F? Æ?
G'Ç	G"Ç"G'c                 ó†  ^• TR                  U4S j5        T" U R                  5        TR                  TR                  U R                  5      /5        T" [
        R                  " U R                  R                  R                  5      5        U R                  (       a  T" U R                  5        O!TR                  TR                  S 5      /5        U R                  (       a  T" U R                  5        O!TR                  TR                  S 5      /5        U R                  (       a  T" U R                  5        O!TR                  TR                  S 5      /5        U R                  b=   U R                  R                  5       nTR                  TR                  U5      /5        O!TR                  TR                  S 5      /5        TR                  [!        SS5      5        U R"                  (       aw  TR                  U4S j5        T" U R"                  5        TR                  [!        SS5      5        TR                  [%        S5      5        TR                  [!        SS5      5        TR&                  nUR(                  R*                  R-                  U 5      (       a~  UR(                  R*                  R.                  U    R1                  5        HH  u  pETR3                  5         T" U5        TR                  [%        S5      5        TR5                  U5        MJ     g g ! [         a    T" U R                  5         GNwf = f)Nc                  ó0   >• T R                  [        S5      $ )Nrà   )Úload_import_fromrc   ©rË  s   €ri   r\  Ú8NestedUserFunctionVariable.reconstruct.<locals>.<lambda>·  s   ø€ �G×,Ñ,¬XÐ7JÔKrh   é   Fc                  ó(   >• T R                  SS5      $ )NÚ	functoolsÚwraps©r  r  s   €ri   r\  r  Û  s   ø€ ˜×0Ñ0°¸gÔFrh   r=   r   T)r¼  rŠ   r½  Úcreate_load_const_uncheckedrÔ   rI   rÄ   rª  r   r’   Úcreate_load_constrÕ   r”   rÖ   r  r3  r   r×  r   r¤   rÍ   rÎ   Úhas_pending_mutationÚstore_attr_mutationsrÇ   Údup_topÚ
store_attr)r‰   rË  rÖ   r¤   r´   rª  s    `    ri   rÜ  Ú&NestedUserFunctionVariable.reconstructµ  sz  ø€ Ø×ÑÜKô	
ñ 	�—	‘	ÔØ×Ñ˜w×BÑBÀ4Ç>Á>ÓRÐSÔTÙÔ ×'Ò'¨¯	©	¯©×(?Ñ(?Ó@ÔAà�=�=Ù�D—M‘MÕ"à×!Ñ! 7×#<Ñ#<¸TÓ#BÐ"CÔDà�<�<Ù�D—L‘LÕ!à×!Ñ! 7×#<Ñ#<¸TÓ#BÐ"CÔDà�?�?Ù�D—O‘OÕ$à×!Ñ! 7×#<Ñ#<¸TÓ#BÐ"CÔDà×ÑÑ'ð*Ø"×.Ñ.×AÑAÓC�Ø×%Ñ%Ø×8Ñ8¸ÓEÐFõð ×!Ñ! 7×#<Ñ#<¸TÓ#BÐ"CÔDà×ÑÔ2°1°eÓ<Ô=à�?�?Ø×!Ñ!ÜFôñ �D—O‘OÔ$Ø×!Ñ!Ô"6°q¸%Ó"@ÔAØ×!Ñ!¤,¨q£/Ô2Ø×!Ñ!Ô"6°q¸$Ó"?Ô@ð �Z‰ZˆØ�9‰9×!Ñ!×6Ñ6°t×<Ñ<Ø!Ÿy™y×5Ñ5×JÑJØñ ç‰e‹gò ‘�ð —‘Ô!Ù˜”Ø×%Ñ%¤l°1£oÔ6Ø×"Ñ" 4Ö(ò ð =øô% 'ó *Ù˜×(Ñ(×)ð*ús   Å+;L  Ì M Ì?M )rÕ   rŠ   r’   rÔ   rS  r”   r×  r�   r›  rN  )%rc   rd   re   rf   rï   rœ  rG   r•   rœ  r   r�   r²   rþ   rÛ   r   r  r
  r�  r  rÞ   rÙ  rí  r¤  rž  r=  rŠ  rï  r  r  rI   r�  r:  r4  r   rÜ  rg   r¡  r¢  s   @ri   rÖ  rÖ  ±  s  ø† àðà	!×	0Ñ	0ð€Nð .2ñ =à ð =ð ð =ð ˜˜S˜‘>ð	 =ð
 " DÑ(ð =ð $ dÑ*ð =ð ! 4Ñ'ð =ð $ dÑ*ð =ð ð =ð 
÷ =ð  =ðD˜4 Ñ0ô ð# E×$6Ñ$6ô #÷ð.˜%Ÿ.™.ô .ð"˜T %×"4Ñ"4Ñ5ô "ð
 (,ð)ð %*ò	)à˜‘X ‘_ð)ð "ð	)ð
 
×	Ñ	ö)ð6 Dô ð_Ø˜s™8ð_Ø:>ð_à	×	Ñ	ô_ðB(˜Tô (ð/Ð ;ð /À3ð /È3÷ /ð
2Ø-ð
2Ø58ð
2à	÷
2ð˜$ô ð˜T # s (™^ô ðà+ðð �?Ñ#ðð �S˜/Ð)Ñ*ð	ð
 
ˆc�?Ð"Ñ	#ô÷B6)ò 6)rh   rÖ  c                   óv   ^ • \ rS rSrS\SSS\SS4U 4S jjrS	S
S\\   S\	\
\4   S\4U 4S jjrSS jrSrU =r$ )Ú!WrappedNestedUserFunctionVariableiî  r§  r¼  rP   r§   rk   Nc           	      ó  >• UR                  SS 5        UR                  SS 5        UR                  SS 5        UR                  SS 5        UR                  SS 5        UR                  SS 5        UR                  SS 5        UR                  SS 5        [        TU ]	  UR                  UR                  UR
                  UR                  UR                  UR                  UR                  5        UR                  U l
        Xl        X l        g )	NrS  rŠ   rÔ   r’   r”   rÖ   rÕ   r×  )r¬   r  r�   rS  rŠ   rÔ   r’   r”   rÕ   r×  rÖ   r§  r¼  r©  s       €ri   r�   Ú*WrappedNestedUserFunctionVariable.__init__ï  sÕ   ø€ ð 	�
‰
�9˜dÔ#Ø�
‰
�6˜4Ô Ø�
‰
�; Ô%Ø�
‰
�:˜tÔ$Ø�
‰
�< Ô&Ø�
‰
�= $Ô'Ø�
‰
�9˜dÔ#Ø�
‰
�< Ô&Ü‰ÑØ�O‰OØ�L‰LØ×ÑØ×ÑØ×ÑØ�O‰OØ×Ñô	
ð #×.Ñ.ˆÔØŒØ�rh   r¤   rO   r¦   c                 óX  >• [         R                  (       aM  [        [        R                  5      nUR                  XR                  U R                  /[        U5      -   U5      $ U R                  R                  U5        [        TU ]  XU5      nU R                  R                  U5        U$ r�   r¬  r±  s         €ri   rŠ  Ú/WrappedNestedUserFunctionVariable.call_function
	  r´  rh   c                 óŽ   ^ ^• TR                  UU 4S j5        T" T R                  5        TR                  [        SS5      5        g )Nc                  ó(   >• T " TR                   5      $ r�   r·  r¸  s   €€ri   r\  Ú?WrappedNestedUserFunctionVariable.reconstruct.<locals>.<lambda>	  rº  rh   r=   Fr»  rÊ  s   ``ri   rÜ  Ú-WrappedNestedUserFunctionVariable.reconstruct	  r¿  rh   )rÖ   r¼  r§  rN  )rc   rd   re   rf   rÖ  r   r�   r²   rG   r•   rœ  rŠ  rÜ  rg   r¡  r¢  s   @ri   r$  r$  î  sr   ø† ðà+ðð +ðð ð	ð
 
÷ð6à'ðð �?Ñ#ðð �S˜/Ð)Ñ*ð	ð
 
÷÷ >ò >rh   r$  c            	       óì   ^ • \ rS rSrSS1\R
                  krSS\S\S-  S\SS4U 4S jjjrS\	S-  4S jr
S	 rS\4S
 jrS\4S jr\S\S\SS 4S j5       rSSS\\   S\\\4   S\4S jrS rSrU =r$ )rj  i-	  rª  ÚreasonNr§   rk   c                 ó>   >• [         TU ]  " S0 UD6  Xl        X l        g r�   )r  r�   rª  r.  )r‰   rª  r.  r§   r  s       €ri   r�   ÚSkipFunctionVariable.__init__4	  s   ø€ Ü‰ÒÑ"˜6Ò"ØŒ
Ø�rh   c                 ó”   • [        U R                  SS 5      =(       d    SnUS:X  d  UR                  S5      (       a  g U R                  $ )Nrd   r÷  rm   )ztorch.Útorch_)rë   rª  rå  )r‰   Úmods     ri   rµ  Ú*SkipFunctionVariable.get_value_for_setattr9	  s<   € Ü�d—j‘j ,°Ó5×;¸ˆØ�'‹>˜SŸ^™^Ð,@×AÑAØØ�z‰zÐrh   c                 ó    • SSK Jn  U" XX#5      $ rò   rô   rö   s        ri   rù   Ú(SkipFunctionVariable.tp_richcompare_impl?	  rû   rh   c                 ó   • U R                   $ r�   ©rª  rý   s    ri   r  Ú'SkipFunctionVariable.as_python_constantD	  ó   € Ø�z‰zÐrh   c                 ó   • U R                   $ r�   r8  rý   s    ri   rÏ  Ú1SkipFunctionVariable.get_real_python_backed_valueG	  r:  rh   r¾   c                 ó¤  • [         R                  " USS5      (       ax  UnUn[         R                  " USS5      (       a7  UR                  n[        US5      n[         R                  " USS5      (       a  M7  UR	                  [
        R                  5        O¶[         R                  " U5      (       ac  [        US5      (       a)  [        UR                  [        R                  5      (       a(  [        UR	                  [
        R                  5      5        O8[        U5      (       d(  [        UR	                  [
        R                  5      5        U " XS9$ )NÚ_torchdynamo_disableFÚ_torchdynamo_orig_callablerÝ  r  )rç   rè   r?  r(   r­   r&   r®  Ú	isbuiltinrŽ  rÁ   rÝ  rÛ   Ú
ModuleTyper'   ÚBUILTIN_MATCHr9   )r°  rª  r¾   Úguard_on_sourceÚguard_on_values        ri   r±  Ú'SkipFunctionVariable.create_with_sourceJ	  s  € ô ×!Ò! %Ð)?À×GÑGð %ˆOØ"ˆNä×(Ò(ØÐ <¸e÷ñ ð "0×!JÑ!J�Ü",Ø#Ð%Aó#�ô	 ×(Ò(ØÐ <¸e÷ó ð ×&Ñ&¤|×'AÑ'AÕBÜ×Ò˜u×%Ñ%ô
 ˜5 *×-Ñ-´Ø—‘¤× 0Ñ 0÷2ñ 2ô ˜f×/Ñ/´×0JÑ0JÓKÔLøÜ0°×7Ñ7ô ˜&×+Ñ+¬L×,FÑ,FÓGÔHÙ�5Ñ(Ð(rh   r¤   rO   r¦   c                 óD  ^^• U R                   [        R                  R                  [        R                  R
                  4;   aA  [        S T 5       5      (       a*  [        R                  " XR                   " S T 5       6 5      $ U R                   [        ;   aœ  [        S T 5       5      (       a…  [        S TR                  5        5       5      (       a`  U R                   " S T 5       0 TR                  5        VVs0 s H  u  pEXER                  5       _M     snnD6n[        R                  " X5      $ S[        S[        4UU4S jjnU R                   [        R                   R"                  L a	  U" S	5        g U R                   [        R$                  R"                  L a	  U" S
5        g [&        R(                  " U R                   SS5      (       aT  [&        R(                  " U R                   SS 5      n[+        S[        U R                   5      SU R                    SU S3S/S9  g U R                   [        R                   R,                  L a@  TR/                  S5      n	U	(       a  U	R                  5       n	[+        SST ST S3SU	 3S/S9  g U R                   [        R                   R0                  L aZ  TR/                  S5      n
U
(       a  U
R                  5       n
OSn
[+        SST ST S[3        UR4                  5       S3S U
 3S!/S"S#9  g U R                   [        R                   R6                  L a   [+        S$SS%S&/S9  g U R                   [>        R@                  RB                  L ay  [E        T5      S';   aD  T(       d=  TS(   nTS)   n[G        U[H        5      (       a  [K        URL                  XÜRN                  S*9$ [+        S+S,U  S-T S.T 3S// [P        RR                  QS9  g [T        RV                  (       aI  S)S0K,J-n  UR]                  XR                   5      n[G        U[^        5      (       d  URa                  UTT5      $ [c        U R                   S1S25      n[c        U R                   S3S 5      nUc  S4O
[        U5      n [&        Rd                  " U R                   5      nS5U S6U S73nS8U S93/nS:U;  a  US;U S<3S=/-  nUSK:X  a  SLnSM/nU Rp                  (       a  U Rp                  nOSNSOK9J:n  U" U R                   5      n[+        SPSQU SRU SSU 3UUS9  g s  snnf ! [8         a  n[;        UR<                  5      S eS nAff = f! [f         aÎ    S>S?1nUU;   a  S@U SU S93nSASB/n N¨Ubc  URi                  SC5      (       aM  SDU SU S3nSE/n[        R                   Rj                  Rm                  USF-   SFRo                  U5      -   5         GNSGU SU SH3nSISJ/n[        R                   Rj                  Rm                  USF-   SFRo                  U5      -   5         GN\f = f)TNc              3   ó@   #   • U  H  oR                  5       v •  M     g 7fr�   ©rŠ  ©ræ  Úas     ri   rè  Ú5SkipFunctionVariable.call_function.<locals>.<genexpr>w	  s   é € ð X
Ú,0 q× Ñ ×"Ð"ªDùó   ‚c              3   ó@   #   • U  H  oR                  5       v •  M     g 7fr�   ©r  rI  s     ri   rè  rK  {	  s   é € Ð FÂ¸A×!5Ñ!5×!7Ð!7ÂùrL  c              3   ó@   #   • U  H  oR                  5       v •  M     g 7fr�   rH  rI  s     ri   rè  rK  €	  s   é € Ð9²D¨q×(Ñ(×*Ð*²DùrL  c              3   ó@   #   • U  H  oR                  5       v •  M     g 7fr�   rH  )ræ  rÉ   s     ri   rè  rK  �	  s   é € ÐD²O¨q×(Ñ(×*Ð*²OùrL  c              3   ó@   #   • U  H  oR                  5       v •  M     g 7fr�   rN  rI  s     ri   rè  rK  „	  s   é € Ð7²$¨Q×&Ñ&×(Ð(²$ùrL  Úapi_namerk   c           
      óT   >• [         nU" SU  S3SU  ST ST S3SU  S3SU  S	3S
/S9  g )Nz	Call to `z()`zCalled `z()` with args `ú`, kwargs `Ú`z‡()` was called inside a compiled region. This API disables compilation when used as a decorator or wrapper outside the compiled region.z
Move the `z\()` call outside the compiled function and apply it to the function that should run eagerly.zVUse `torch._dynamo.graph_break()` to intentionally insert a graph break at this point.rº  ©r$   )rR  Ú_unimplementedr¦   r§   s     €€ri   Ú!unimplemented_direct_disable_callÚMSkipFunctionVariable.call_function.<locals>.unimplemented_direct_disable_call‰	  se   ø€ ô
 +ˆNÙØ# H :¨SÐ1Ø" 8 *¨O¸D¸6ÀÈVÈHÐTUÐVØ ˜zð */ð /ð !  
ð  +Gð  HØlðó
rh   ztorch._dynamo.disableztorch.compiler.disabler>  FÚ_torchdynamo_disable_msgz1Skip calling `torch.compiler.disable()`d functionzSkip calling function `z>` since it was wrapped with `torch.compiler.disable` (reason: r'  z(Remove the `torch.compiler.disable` callrº  rR  z%Call to `torch._dynamo.graph_break()`z0Called `torch._dynamo.graph_break()` with args `rT  rU  z$User-inserted graph break. Message: z.Remove the `torch._dynamo.graph_break()` call.r÷  z$Call to `torch._dynamo.skip_frame()`z/Called `torch._dynamo.skip_frame()` with args `z`. Skipping frame rø  z#User-inserted skip frame. Message: z-Remove the `torch._dynamo.skip_frame()` call.T)r»  r¼  r½  r¾  r	  z*Call to `torch._dynamo.step_unsupported()`zUser-inserted step_unsupported.z3Remove the `torch._dynamo.step_unsupported()` call.)r   r&  r   r=   )rï  z!unsupported function.__get__ callzcall_function z, args: r!  z^Dynamo only supports function.__get__(func, obj[, cls]) where func is a user-defined function.©ÚSourcelessBuilderre   z<unknown qualname>rd   z<unknown module>z?Dynamo developers have intentionally marked that the function `z` in file `z` should not be traced.zAvoid calling the function `z`.r,  z:Apply `@torch._dynamo.dont_skip_tracing` to the function `zw` to force tracing into the function. More graph breaks may occur as a result of attempting to trace into the function.z Please file an issue to PyTorch.Ú_abcÚ	_warningsz6Dynamo does not know how to trace the Python builtin `z˜If you are attempting to call a logging function (e.g. `_warnings.warn`), you can try adding it to `torch._dynamo.config.reorderable_logging_functions`.zKPlease file an issue on GitHub so the PyTorch team can add support for it. r¦  z*Dynamo cannot trace optree C/C++ function zi Consider using torch.utils._pytree - https://github.com/pytorch/pytorch/blob/main/torch/utils/_pytree.pyÚ
z/Dynamo does not know how to trace the builtin `zˆ.` This function is either a Python builtin (e.g. _warnings.warn) or a third-party C/C++ Python extension (perhaps created with pybind).zŒIf it is a Python builtin, please file an issue on GitHub so the PyTorch team can add support for it and see the next case for a workaround.a  If it is a third-party C/C++ Python extension, please either wrap it into a PyTorch-understood custom operator (see https://pytorch.org/tutorials/advanced/custom_ops_landing_page.html for more details) or, if it is traceable, use `torch.compiler.allow_in_graph`.Úallow_in_graphz°torch.compiler.allow_in_graph (or torch._dynamo.allow_in_graph) was called inside a compiled region. Dynamically annotating functions inside a compiled region is not supported.ziApply @torch.compiler.allow_in_graph as a decorator before compilation, not inside the compiled function.r   )Úget_skip_reasonz,Attempted to call function marked as skippedzmodule: z, qualname: z, skip reason: );rª  Ú	importlibÚutilÚ	find_specÚmetadataÚversionrŒ  rG   rÂ   ÚRE_CONSTANT_FOLD_FNSÚvaluesrÇ   r  rœ  r   rm   r,  ÚdisableÚcompilerrç   rè   r$   Úgraph_breakrž   r	  r   Úf_codeÚstep_unsupportedr%   r#   rR  rÛ   r   r  r—   rÁ   r¤  rî  rå   r¾   r   rà  r   Údont_skip_tracingÚbuilderr\  rÄ   rj  rŠ  rë   Úgetfilerô  rå  rn   Ú	warn_onceÚjoinr.  r‘  ra  )r‰   r¤   r¦   r§   rÈ   rÉ   rÅ   rX  rR  Úgraph_break_msgÚskip_frame_msgrO  Úfunc_varÚobj_varr\  Ú
rebuilt_fnÚqualnameÚ	module_orrƒ  Úpathr½  r¾  Úknown_python_builtin_modulesr.  ra  s     ``                     ri   rŠ  Ú"SkipFunctionVariable.call_functionn	  sM  ù€ ð �:‰:œ)Ÿ.™.×2Ñ2´I×4FÑ4F×4NÑ4NÐOÓOÔTWñ X
Ù,0óX
÷ U
ñ U
ô #×(Ò(Ø—J’JÑ FÁÓ FÐGóð ð
 �J‰JÔ.Ó.ÜÑ9±DÓ9×9Ñ9ÜÑD°F·M±M´OÓD×DÑDà—Z’ZÙ7±$Ó7ðà9?¿¹¼ÔHº±°�1×*Ñ*Ó,Ò,¹ÒHñˆFô #×(Ò(¨Ó4Ð4ð	¼ð 	Ä÷ 	ð 	ð$ �:‰:œŸ™×.Ñ.Ò.Ù-Ð.EÕFØ�Z‰Zœ5Ÿ>™>×1Ñ1Ò1Ù-Ð.FÕGÜ×#Ò# D§J¡JÐ0FÈ×NÑNÜ×(Ò(¨¯©Ð5OÐQUÓVˆCÜØKÜ˜DŸJ™J›Ø5°d·j±j°\ð B:Ø:=¸¸aðAð ?ðóð �Z‰Zœ5Ÿ=™=×4Ñ4Ò4Ø$Ÿj™j¨Ó/ˆOÞØ"1×"DÑ"DÓ"F�ÜØ?ØJÈ4È&ÐP[Ð\bÐ[cÐcdÐeØBÀ?ÐBSÐTàDðó	ð �Z‰Zœ5Ÿ=™=×3Ñ3Ò3Ø#ŸZ™Z¨Ó.ˆNÞØ!/×!BÑ!BÓ!D‘à!#�ÜØ>ØIÈ$ÈÈ{Ð[aÐZbð c"Ü"3°B·I±IÓ">Ð!?¸qðBàAÀ.ÐAQÐRàCðð  ó	ð �Z‰Zœ5Ÿ=™=×9Ñ9Ò9ð
7ÜØHØØ AàMðó	ð �Z‰Zœ5×-Ñ-×5Ñ5Ò5ô �4‹y˜FÓ"®6Ø ™7�Ø˜q™'�Ü˜hÔ(<×=Ñ=Ü-Ø Ÿ™ W¿¹ñð ô Ø;Ø(¨¨¨h°t°f¸JÀvÀhÐOð9à6Ô)×5Ñ5Ð6óô ×'×'Ý6ð /×5Ñ5°b¿*¹*ÓE�
ä! *Ô.B×CÑCØ%×3Ñ3°B¸¸fÓEÐEÜ˜tŸz™z¨>Ð;OÓPˆHÜ §
¡
¨L¸$Ó?ˆIØ09Ñ0AÑ,ÄsÈ9Ã~ˆKð8YÜ—’ t§z¡zÓ2�àUÐV^ÐU_ð ` Ø $˜vÐ%<ð>ð ð
 3°8°*¸BÐ?ð�ð  DÓ(ØØTÐU]ÐT^ð _lð lð ;ð	ñ �EðX Ð+Ó+ðAð ð8ð�ð �{�{ØŸ™‘å9á(¨¯©Ó4�ÜØFØ" ; -¨|¸H¸:À_ÐU[ÐT\Ð]Ø'Øó	ùóq IøôV ó 7Ü% a§e¡eÓ,°$Ð6ûð7ûôn ó %YØ06¸Ð/DÐ,ØÐ <Ó<ðØ'˜=¨¨(¨°2ð7ð  ð
iðGð’Eð Ñ*¨y×/CÑ/CÀH×/MÑ/MØ$NÈ{ÈmÐ[\Ð]eÐ\fÐfgÐ"h�Kð^ð�Eô
 —M‘M×'Ñ'×1Ñ1°+ÀÑ2DÀtÇyÁyÐQVÓGWÑ2W×Xð JÈ+ÈÐVWÐX`ÐWað bað bð  ðmð;ð�Eô —M‘M×'Ñ'×1Ñ1°+ÀÑ2DÀtÇyÁyÐQVÓGWÑ2W×XðK%Yús?   Ã>TÌ6T ÒAU Ô
UÔ)T?Ô?UÕ!XÕ*A#X×AXØXc                 óp   • U R                   (       a  U R                   R                  U5      $ [        S5      e)NzBPython codegen not implemented for sourceless SkipFunctionVariablerÈ  rÊ  s     ri   rÉ  Ú'SkipFunctionVariable.reconstruct_pycodeD
  rÍ  rh   )r.  rª  r�   )rc   rd   re   rf   rG   rœ  r   rœ  r�   rŸ  rµ  rù   r  rÏ  rž  r   r±  r²   r•   rŠ  rÉ  rg   r¡  r¢  s   @ri   rj  rj  -	  sí   ø† àØðð 
×	'Ñ	'ð€Nñ˜cð ¨3°©:ð Èð ÐPT÷ ð ð
 v°¡}ô ò7ð
 Cô ð¨cô ð ð!) sð !)°Fð !)Ð?Uó !)ó ð!)ðFTà'ðTð �?Ñ#ðTð �S˜/Ð)Ñ*ð	Tð
 
ôT÷l
ð 
rh   rj  c                   óv   ^ • \ rS rSrS\SSS\SS4U 4S jjrS	S
S\\   S\	\
\4   S\4U 4S jjrSS jrSrU =r$ )ÚWrappedSkipFunctionVariableiL
  r§  r¼  rP   r§   rk   Nc                 ó´   >• UR                  SS 5        UR                  SS 5        [        TU ]  " UR                  4SUR                  0UD6  Xl        X l        g )Nrª  r.  )r¬   r  r�   rª  r.  r§  r¼  r©  s       €ri   r�   Ú$WrappedSkipFunctionVariable.__init__M
  sJ   ø€ ð 	�
‰
�7˜DÔ!Ø�
‰
�8˜TÔ"Ü‰Ò˜Ÿ™ÑH¨w¯~©~ÐHÀÒHØŒØ�rh   r¤   rO   r¦   c                 óX  >• [         R                  (       aM  [        [        R                  5      nUR                  XR                  U R                  /[        U5      -   U5      $ U R                  R                  U5        [        TU ]  XU5      nU R                  R                  U5        U$ r�   r¬  r±  s         €ri   rŠ  Ú)WrappedSkipFunctionVariable.call_functionY
  r´  rh   c                 óŽ   ^ ^• TR                  UU 4S j5        T" T R                  5        TR                  [        SS5      5        g )Nc                  ó(   >• T " TR                   5      $ r�   r·  r¸  s   €€ri   r\  Ú9WrappedSkipFunctionVariable.reconstruct.<locals>.<lambda>j
  rº  rh   r=   Fr»  rÊ  s   ``ri   rÜ  Ú'WrappedSkipFunctionVariable.reconstructi
  r¿  rh   rÀ  rN  )rc   rd   re   rf   rj  r   r�   r²   rG   r•   rœ  rŠ  rÜ  rg   r¡  r¢  s   @ri   r€  r€  L
  sr   ø† ð
à%ð
ð +ð
ð ð	
ð
 
÷
ðà'ðð �?Ñ#ðð �S˜/Ð)Ñ*ð	ð
 
÷÷ >ò >rh   r€  c                   ó  ^ • \ rS rSrSrS\4S jrS\S\S\SS4U 4S	 jjr	S\4S
 jr
S\4S jrS\R                  4S jrSSS\S\4U 4S jjrS rSSS\SS4S jrS\\   4S jrSSS\\   S\\\4   S\4S jrS\4S jrSrU =r$ )ÚWrapperUserFunctionVariableio
  a  
Used to represent a wrapper object that contains the actual callable as an
attribute. For example, torch.jit.script/trace have the original function at
their _torchdynamo_inline attribute. Similarly, functions with
__script_if_tracing_wrapper have the original attr at "__original_fn".
rk   c                 ó"   • [         R                  $ r�   rØ  rý   s    ri   rÙ  Ú'WrapperUserFunctionVariable.python_typew
  rÛ  rh   Úwrapper_objÚattr_to_tracer§   Nc                 ó>   >• [         TU ]  " S0 UD6  Xl        X l        g r�   )r  r�   r�  rŽ  )r‰   r�  rŽ  r§   r  s       €ri   r�   Ú$WrapperUserFunctionVariable.__init__z
  s   ø€ Ü‰ÒÑ"˜6Ò"Ø&ÔØ*Õrh   c                 ó.   • U R                   R                  $ r�   )r�  rd   rý   s    ri   rA  Ú&WrapperUserFunctionVariable.get_module
  s   € Ø×Ñ×*Ñ*Ð*rh   c                 ó.   • U R                   R                  $ r�   )r�  rc   rý   s    ri   r!  Ú$WrapperUserFunctionVariable.get_name‚
  s   € Ø×Ñ×(Ñ(Ð(rh   c                 ó6   • U R                  5       R                  $ r�   )r=  rx   rý   s    ri   r  Ú$WrapperUserFunctionVariable.get_code…
  s   € Ø× Ñ Ó"×+Ñ+Ð+rh   r¤   rO   r´   c                 ó   >• X R                   :X  a`  [        U R                  U R                   5      nU R                  =(       a    [	        U R                  U5      n[
        R                  " XU5      $ [        TU ]!  X5      $ r�   )	rŽ  rë   r�  r¾   r(   rG   rÂ   r  Útp_getattro_impl)r‰   r¤   r´   r½   r¾   r  s        €ri   r˜  Ú,WrapperUserFunctionVariable.tp_getattro_implˆ
  se   ø€ ð ×%Ñ%Ó%Ü˜$×*Ñ*¨D×,>Ñ,>Ó?ˆCØ—[‘[×B¤Z°·±¸TÓ%BˆFÜ"×(Ò(¨°&Ó9Ð9Ü‰wÑ'¨Ó1Ð1rh   c                 óB   • [        U R                  U R                  5      $ r�   )rë   r�  rŽ  rý   s    ri   r=  Ú(WrapperUserFunctionVariable.get_function‘
  s   € Ü�t×'Ñ'¨×);Ñ);Ó<Ð<rh   rð   c                 ó  • [        U R                  SS 5      nU(       a  X#;  a  g U R                  5       nUb  [        XB5      OS nUb   [        R
                  R                  X2   XAS9$ [        R                  " XU   5      $ rz  )	rë   r�  r  r(   r   rÃ   rÄ   rG   rÂ   )r‰   r¤   r´   Úwrapper_dictr¾   s        ri   r{  Ú0WrapperUserFunctionVariable.lookup_instance_dict”
  s„   € ô ˜t×/Ñ/°¸TÓBˆÞ˜tÓ7ØØ—‘Ó"ˆØ-3Ñ-?”˜FÔ)ÀTˆØÑÜ×0Ñ0×7Ñ7ØÑ" Fð 8ð ð ô ×$Ò$ R°dÑ);Ó<Ð<rh   c                 ó   • / $ r�   ra   rý   s    ri   rþ   Ú%WrapperUserFunctionVariable.self_args¨
  r   rh   r¦   c           
      óx  • [        U R                  S5      (       Ga  [        U R                  U R                  S 5      n[        USS5      =(       d    Sn[	        U R                  5      nUR                  SSS9S   S:w  Ga¢  U(       Gdš  UR                  5       n[        R                  R                  UR                  5      nUR                  n	S	U S
U	 SSR                  [        R                  " U/5      5       3n
[        R                   R"                  R%                  U
5        [        R                   R"                  R&                  R)                  S5      nUR+                  [&        R,                  5      (       a¦  [        R.                  R0                  R3                  5       n[5        5       U-   nUS   R                  US   R                  4nSR                  [        R                  " U5      5      nSUS    S
US    S3nU[7        U5      -  nUR9                  U5        U R;                  5       [=        U5      -   nU R                  S:H  =(       av    [>        R@                  " U R                  SS5      =(       aM    [        [>        R@                  " U R                  SS 5      SS 5      URB                  RD                  RF                  LnU(       a  [H        RJ                  O[H        RL                  n[N        RP                  " UU5      RS                  UU [N        RP                  " XR                  5      /UQU5      $ )NÚ
cache_inford   r÷  rø  r=   )Úmaxsplitr   rm   zGDynamo detected a call to a `functools.lru_cache`-wrapped function at 'Ú:zî'. Dynamo ignores the cache wrapper and directly traces the wrapped function. Silent incorrectness is only a *potential* risk, not something we have observed. Enable TORCH_LOGS=+dynamo for a DEBUG stack trace.

This call originates from:
ztorch._dynamorì  z)call to a lru_cache wrapped function at: r_  r¿  Ú_is_torch_compileFr?  rx   )*rŽ  r�  rë   rŽ  r7   ÚsplitÚframe_summaryÚosrz  Úbasenamerç  Úlinenorr  Ú	tracebackÚformat_listrm   r,  rn   rq  ÚloggingÚ	getLoggerÚisEnabledForÚDEBUGÚ_guardsÚTracingContextÚextract_stackr   rœ  Údebugrþ   r²   rç   rè   rÍ   rõ  rl  r   Ú(getattr_and_trace_no_nested_graph_breaksÚgetattr_and_tracerG   rÂ   rŠ  )r‰   r¤   r¦   r§   Ú	target_fnrƒ  Úis_allowed_lru_cache_wrapperr§  rç  rª  rR  Údynamo_loggerÚ
user_stackÚ	frame_locÚuser_stack_formattedÚuser_stack_traceÚall_argsÚis_inner_torch_compileÚpolyfills                      ri   rŠ  Ú)WrapperUserFunctionVariable.call_function«
  sÚ  € ô �4×#Ñ# \×2Ò2Ü × 0Ñ 0°$×2DÑ2DÀdÓKˆIÜ! )¨\¸2Ó>×DÀ"ˆKäBÀ4×CSÑCSÓTð )ð
 ×!Ñ! #°Ð!Ð2°1Ñ5¸Ô@ß4à "× 0Ñ 0Ó 2�ÜŸ7™7×+Ñ+¨M×,BÑ,BÓC�Ø&×-Ñ-�ð$Ø$, :¨Q¨v¨hð 73ð —w‘wœy×4Ò4°m°_ÓEÓFÐGðIð ô —‘×#Ñ#×-Ñ-¨cÔ2ä %§¡× 3Ñ 3× ;Ñ ;× EÑ EÀoÓ V�Ø ×-Ñ-¬g¯m©m×<Ñ<Ü!&§¡×!=Ñ!=×!KÑ!KÓ!M�JÜ!7Ó!9¸JÑ!F�JØ!+¨B¡×!8Ñ!8¸*ÀR¹.×:OÑ:OÐ P�IØ+-¯7©7´9×3HÒ3HÈÓ3TÓ+UÐ(Ø)RÐS\Ð]^ÑS_ÐR`Ð`aÐbkÐlmÑbnÐaoÐoqÐ'rÐ$Ø$¬Ð,@Ó(AÑAÐ$Ø!×'Ñ'Ð(8Ô9à—>‘>Ó#¤d¨4£jÑ0ˆð ×ÑÐ"7Ñ7÷ 	,Ü×&Ò& t×'7Ñ'7Ð9LÈeÓT÷	,äÜ×&Ò&Ø×$Ñ$Ð&BÀDóð Øóð —9‘9×$Ñ$×+Ñ+ð,ð 	ö &ô ×>Ò>ä×,Ñ,ð 	ô
 ×$Ò$ØØó
÷ ‰-ØØ”?×(Ò(¨×-?Ñ-?Ó@ÐLÀ8ÐLØó
ð	
rh   c                 ó   • U R                   $ r�   )r�  rý   s    ri   rÏ  Ú8WrapperUserFunctionVariable.get_real_python_backed_value÷
  s   € ð ×ÑÐrh   )rŽ  r�  )rc   rd   re   rf   rá   rÞ   rÙ  r   rœ  r�   rA  r!  rÛ   r�  r  rG   r˜  r=  r{  r²   rþ   r•   rŠ  rŸ  rÏ  rg   r¡  r¢  s   @ri   rŠ  rŠ  o
  sþ   ø† ñð"˜Tô "ð+ Cð +¸ð +Àsð +Èt÷ +ð
+˜Cô +ð)˜#ô )ð,˜%Ÿ.™.ô ,ð2Ø-ð2Ø58ð2à	÷2ò=ð=Ø-ð=Ø58ð=à	!ô=ð(˜4 Ñ0ô ðJ
à'ðJ
ð �?Ñ#ðJ
ð �S˜/Ð)Ñ*ð	J
ð
 
ôJ
ðX ¨f÷  ò  rh   rŠ  c            
       óf   ^ • \ rS rSrSrS\4S jrS\S\S\	S\SS	4
U 4S
 jjr
S\\	   4S jrSrU =r$ )ÚWrapperUserMethodVariableiþ
  zÇ
Similar to WrapperUserFunctionVariable, but for methods. The only delta is
saving the vt for `self` object of the method which is then used by
WrapperUserFunctionVariable in `call_function` method.
rk   c                 ó"   • [         R                  $ r�   r‰  rý   s    ri   rÙ  Ú%WrapperUserMethodVariable.python_type  rŒ  rh   r�  rŽ  Úself_objr§   Nc                 ó4   >• [         TU ]  " X40 UD6  X0l        g r�   )r  r�   r  )r‰   r�  rŽ  rÈ  r§   r  s        €ri   r�   Ú"WrapperUserMethodVariable.__init__  s   ø€ ô 	‰Ò˜Ñ>°vÒ>Ø�rh   c                 ó   • U R                   /$ r�   r…  rý   s    ri   rþ   Ú#WrapperUserMethodVariable.self_args  r‡  rh   r…  )rc   rd   re   rf   rá   rÞ   rÙ  r   rœ  rG   r�   r²   rþ   rg   r¡  r¢  s   @ri   rÅ  rÅ  þ
  s_   ø† ñð ˜Tô  ðàðð ðð "ð	ð
 ðð 
÷ð˜4 Ñ0÷ ò rh   rÅ  c                  ó\   • [         R                  R                  5       (       a  SSKJn   U $ 0 $ )Nr   ©Útraceable_collective_remaps)rm   ÚdistributedÚis_availableÚ)torch.distributed._functional_collectivesrÏ  rÎ  s    ri   Ú_traceable_collective_remapsrÓ    s)   € ä×Ñ×%Ñ%×'Ñ'õ	
ð +Ð*Ø€Irh   c                 ó  • [         R                  R                  5       (       d  [        S5      eU[	        5       R                  5       ;  a  [        U S35      eUR                  nU R                  S5      n[        X25      $ )NzIllegal invocation.z$ is not a traceable collective remapz)torch.distributed._functional_collectives)	rm   rÐ  rÑ  rÝ   rÓ  rh  rc   Úimport_sourcer(   )r¤   rå   Ú
inner_nameÚpath_sources       ri   Ú_traceable_collectives_sourcerØ  !  sr   € ô ×Ñ×)Ñ)×+Ñ+ÜÐ2Ó3Ð3Ø	Ô-Ó/×6Ñ6Ó8Ó8Ü ˜tÐ#GÐHÓIÐIà—‘€JØ×"Ñ"Ð#NÓO€KÜ�kÓ.Ð.rh   c                   óö   ^ • \ rS rSrSrS\S\4   S\S\SS4U 4S	 jjr\	S
SS\S\4   S\
S\SS 4
S j5       r\	S\S\4S j5       r\	S
SS\S\4   S\\\4   4S j5       rS
SS\\   S\\\4   S\4S jrSrU =r$ )Ú!CollectiveFunctionRewriteVariablei.  aß  
Some of the torch.distributed.* collective APIs are possible to rewrite to 'traceable' collectives.

This class provides both a way to check if a function is remappable, and perform the remapping.

In the case that a function is 'remappable' but only for some combinations of call-time arguments,
we check the args at `call_function` time and fall back to graph-breaking if needed.  This is no worse
than status-quo as we currently graph-break on all distributed.* collectives.
rå   .Úreplacement_varr§   rk   Nc                óŒ   >• [         TU ]  " U40 UD6  [        U[        5      (       d  [	        S[        U5       35      eX l        g )Nz4replacement_var must be a UserFunctionVariable, got )r  r�   rÁ   r¤  rÝ   rÞ   rÛ  )r‰   rå   rÛ  r§   r  s       €ri   r�   Ú*CollectiveFunctionRewriteVariable.__init__9  sJ   ø€ ô 	‰Ò˜Ñ&˜vÒ&Ü˜/Ô+?×@Ñ@Ü ØFÄtÈOÓG\ÐF]Ð^óð ð  /Õrh   r¤   rO   Úold_fnr¾   Úoptionsc                 óf   • [         R                  X5      u  pE[        U4[        U4SU0UD6US.UD6$ )Nr¾   )rÛ  r¾   )rÚ  r_  r¤  )r¤   rÞ  r¾   rß  Únew_fnÚ
new_sources         ri   rÄ   Ú(CollectiveFunctionRewriteVariable.createG  sK   € ô ?×FÑFÀrÓRÑˆÜ0Øð
ä0°ÑVÀ
ÐVÈgÑVØñ
ð ñ	
ð 	
rh   Úvariablec                 óV   • [         R                  " U 5      =(       a    U [        5       ;   $ r�   )rç   Ú
isfunctionrÓ  )rä  s    ri   Úcan_rewriteÚ-CollectiveFunctionRewriteVariable.can_rewriteV  s%   € ô ×Ò˜xÓ(×W¨XÔ9UÓ9WÑ-Wð	
rh   c                 ó6   • [        5       U   nU[        X5      4$ r�   )rÓ  rØ  )r¤   rå   rá  s      ri   r_  Ú)CollectiveFunctionRewriteVariable.rewrite\  s"   € ô .Ó/°Ñ3ˆØÔ4°RÓ@Ð@Ð@rh   r¦   c                 óP
  • SS K Jn  SSKJn  [        R
                  " U R                  5      n[        UR                  " U0 UD6R                  5      n/ nSU;   aU  US   R                  5       (       a=  [        SU R                   SU< SU< 3SU R                   3/ [        R                  QS9  U R                  UR                  :X  Ga#  [        R                   (       d  [        S	U R                   S
S/S9  US   n[#        U[$        R&                  5      (       d)  [(        R*                  R,                  R/                  S5      e[1        5       n[1        5       n	[1        5       n
[1        5       nS nUR2                   GHé  nUR5                  5       UR6                  La)  [(        R*                  R,                  R/                  S5      eUR9                  US5      nUR;                  5       (       a�  UR                  5       nXôR<                  UR>                  4;  a,  [(        R*                  R,                  R/                  SU 35      e[$        R@                  RC                  URD                  5      nOk[G        US5      (       a.  [$        R@                  RC                  URI                  5       5      nO,[(        R*                  R,                  R/                  SU 35      eURK                  U5        URK                  UR9                  US5      5        U	RK                  UR9                  US5      5        U
RK                  UR9                  US5      5        Ub  GM×  UR9                  US5      nGMì     Uc  [M        S5      e/ n[$        R&                  " U5      [$        R&                  " U	5      [$        R&                  " U
5      [$        R&                  " U5      US.nU RN                  RQ                  UUU5      $ U R                  UR<                  UR>                  4;   aI  [        R                   (       d  [        SU R                   S
S/S9  U RN                  RQ                  XU5      $ U R                  URR                  URT                  URV                  URX                  URZ                  4;   ai  UR]                  S5      nUb  UR^                  OUR`                  S   Rb                  nUU;  a  [e        SU 35      e[f        Rh                  " XU   5      US'   U RN                  RQ                  XU5      $ )Nr   )ÚREDUCE_OP_TO_STRÚasync_opz)async_op=True for distributed collectivesz, args=ú	, kwargs=z3`torch.compile` doesn't support `async_op=True for rº  z.P2P compilation disabled for batch_isend_irecvzP2P compilation is disabled.z3Set TORCHDYNAMO_ENABLE_P2P_COMPILATION=1 to enable.Úp2p_op_listz`P2POp` used incorrectlyrø   zunexpected P2POp op r!  zunexpected P2POp op variable ÚtensorÚ
group_peerÚtagÚgroupz&group_var must be set from P2POp items)Úop_listÚ	peer_listÚtag_listÚtensorsÚ
group_namez(P2P compilation disabled for isend/irecvzUnsupported all_reduce op: )5Útorch.distributedrÐ  rÒ  rì  rç   r1  rå   r•   r2  r3  r  r$   r   rà  Úbatch_isend_irecvr   Úenable_p2p_compilationrÁ   r   rT   rm   r,  ró  ÚInternalTorchDynamoErrorr²   rÇ   rÙ  ÚP2POpr˜  rŠ  ÚisendÚirecvrI   rÄ   rc   rŽ  r!  rú  rÝ   rÛ  rŠ  Ú
all_reduceÚreduce_scatterÚreduce_scatter_singleÚreduce_scatter_tensorÚ_reduce_scatter_baserž   rª  Ú
parametersÚdefaultrø  rG   rÂ   )r‰   r¤   r¦   r§   Údistrì  r1  Úp2p_opsÚopsÚpeersÚtagsr÷  Ú	group_varÚitemÚop_varrø   Únew_argsÚ
new_kwargsÚreduce_op_varÚ	reduce_ops                       ri   rŠ  Ú/CollectiveFunctionRewriteVariable.call_functionc  sn  € õ 	)ÝNô ×%Ò% d§g¡gÓ.ˆ	Ü�i—n’n dÐ5¨fÑ5×?Ñ?Ó@ˆØˆà˜Ó F¨:Ñ$6×$IÑ$I×$KÑ$KÜØCØŸ7™7˜) 8 d¡W¨J¨v©iÐ8ØQÐRV×RYÑRYÐQZÐ[ðÜ&×2Ñ2ðò	ð �7‰7�d×,Ñ,Ô,Ü×0×0ÜØLØ#Ÿw™w˜iØ >àMðò	ð ˜]Ñ+ˆGÜ˜g¤y×'=Ñ'=×>Ñ>Ü—m‘m×'Ñ'×@Ñ@Ø.óð ô *.«ˆCÜ“FˆEÜ“6ˆDÜ“fˆGØ04ˆIàŸ��Ø×#Ñ#Ó%¨T¯Z©ZÒ7ÜŸ-™-×+Ñ+×DÑDØ2óð ð ×.Ñ.¨r°4Ó8�Ø×,Ñ,×.Ñ.Ø×2Ñ2Ó4�BØ§*¡*¨d¯j©jÐ!9Ó9Ü#Ÿm™m×/Ñ/×HÑHØ2°2°$Ð7óð ô '×7Ñ7×>Ñ>¸r¿{¹{ÓK‘FÜ˜V Z×0Ñ0Ü&×7Ñ7×>Ñ>¸v¿¹Ó?PÓQ‘FäŸ-™-×+Ñ+×DÑDØ7¸°xÐ@óð ð —
‘
˜6Ô"Ø—‘˜t×4Ñ4°R¸ÓBÔCð —‘˜T×2Ñ2°2°|ÓDÔEØ—‘˜D×1Ñ1°"°eÓ<Ô=ØÔ$Ø $× 5Ñ 5°b¸'Ó B“Iñ9 &ð< Ñ Ü$Ð%MÓNÐNØ.0ˆHä$×1Ò1°#Ó6Ü&×3Ò3°EÓ:Ü%×2Ò2°4Ó8Ü$×1Ò1°'Ó:Ø'ñ6ˆJð ×'Ñ'×5Ñ5°b¸(ÀJÓOÐOà�7‰7�t—z‘z 4§:¡:Ð.Ó.Ü×0×0ÜØFØ#Ÿw™w˜iØ >àMðò	ð ×'Ñ'×5Ñ5°bÀÓGÐGà�7‰7Ø�O‰OØ×ÑØ×&Ñ&à×&Ñ&à×%Ñ%ð
ó 
ð #ŸJ™J tÓ,ˆMð !Ñ,ð ×#Ò#à×)Ñ)¨$Ñ/×7Ñ7ð ð
 Ð 0Ó0Ü Ð#>¸y¸kÐ!JÓKÐKÜ*×0Ò0°ÀiÑ5PÓQˆF�4‰LØ×#Ñ#×1Ñ1°"¸FÓCÐCrh   )rÛ  )rc   rd   re   rf   rá   r   r   r¤  r�   Ústaticmethodr   rÄ   rž  rç  r±   r(   r_  r²   rG   r•   rœ  rŠ  rg   r¡  r¢  s   @ri   rÚ  rÚ  .  s7  ø† ñð/à�S˜#�XÑð/ð .ð	/ð
 ð/ð 
÷/ð ð
Ø'ð
à˜˜c˜Ñ"ð
ð ð
ð ð	
ð
 
-ó
ó ð
ð ð
˜cð 
 dó 
ó ð
ð
 ðAØ'ðAØ-5°c¸3°hÑ-?ðAà	ˆs�JˆÑ	óAó ðAð|Dà'ð|Dð �?Ñ#ð|Dð �S˜/Ð)Ñ*ð	|Dð
 
÷|Dò |Drh   rÚ  c                   óL   • \ rS rSrS\4S jrSSS\\   S\\	\4   S\4S jr
S	rg
)ÚCollectionsNamedTupleFunctioniâ  rk   c                 ó   • U R                   $ r�   r´  rý   s    ri   r  Ú0CollectionsNamedTupleFunction.as_python_constantã  r·  rh   r¤   rO   r¦   r§   c                 ó   • [        X#5      nU(       a   U R                  " U Vs/ s H  oUR                  5       PM     sn0 UR                  5        VVs0 s H  u  pgXgR                  5       _M     snnD6n[        R                  " W[        5       S9$ [        SSU< SU< 3S/ [        R                  QS9  g s  snf s  snnf ! [         a1  n	[        [        U	5      U[        U	R                  5      S9   S n	A	NƒS n	A	ff = f)Nr  rS  znamedtuple constructionzargs=rî  z?`torch.compile` only support certain input types for namedtuplerº  )r2   rå   r  rÇ   rô  r    rÞ   r²   r¦   r   ÚUserDefinedClassVariablerF   r$   r   rà  )
r‰   r¤   r¦   r§   Úconstant_argsrÌ  rÈ   rÉ   rª  ró  s
             ri   rŠ  Ú+CollectionsNamedTupleFunction.call_functionæ  sî   € ô ,¨DÓ9ˆÞð
ØŸšÙ6:Ó;²d°×*Ñ*Ö,±dÑ;ðà=C¿\¹\¼^ÔLº^±T°Q�q×.Ñ.Ó0Ò0¹^ÒLñ�ô ×5Ò5ØÜ.Ó0ñð ô 	Ø-Ø�t‘g˜Z ™yÐ)ØYðÜ"×.Ñ.ðó		
ùò <ùÛLøäó Ü(Ü˜“IØÜ˜cŸh™h›÷ûðús3   ”C ¤B7½C ÁB<Á/C Â7C Ã
C=Ã'C8Ã8C=ra   N)rc   rd   re   rf   r   r  r²   rG   r•   rœ  rŠ  rg   ra   rh   ri   r  r  â  sH   † ð Cô ð
à'ð
ð �?Ñ#ð
ð �S˜/Ð)Ñ*ð	
ð
 
÷
rh   r  c                   ó   ^ • \ rS rSr\R
                  rS1\R                  kr SS\S\	\   S\
\\4   S\S\SS4U 4S	 jjjrS
 rS\4S jrSS jrS\4S jrSSS\	\   S\
\\4   S\4S jrSSS\S\4S jrSSS\4S jrSSS\4S jrSSS\4S jr\" \S5      \" \S5      \" \S5      S.rSSS\S\4U 4S jjrS\4S jrS\4S jrSrU =r$ )ÚFunctoolsPartialVariablei  Úoriginal_cache_hashNru   r¦   Úkeywordsr§   rk   c                 ó  >• [         TU ]  " S0 UD6  Xl        [        U[        5      (       d  [        S[        U5       35      eX l        [        U[        5      (       d  [        S[        U5       35      eX0l	        X@l
        g )Nzargs must be a list, got zkeywords must be a dict, got ra   )r  r�   ru   rÁ   r²   rÝ   rÞ   r¦   r•   r   r  )r‰   ru   r¦   r   r  r§   r  s         €ri   r�   Ú!FunctoolsPartialVariable.__init__  ss   ø€ ô 	‰ÒÑ"˜6Ò"ØŒ	Ü˜$¤×%Ñ%Ü Ð#<¼TÀ$»Z¸LÐ!IÓJÐJØŒ	Ü˜(¤D×)Ñ)Ü Ð#@ÄÀhÃÐ@PÐ!QÓRÐRØ Œà#6Õ rh   c                 ó    • SSK Jn  U" XX#5      $ rò   rô   rö   s        ri   rù   Ú,FunctoolsPartialVariable.tp_richcompare_impl#  rû   rh   c                 ó"   • [         R                  $ r�   )r  Úpartialrý   s    ri   rÙ  Ú$FunctoolsPartialVariable.python_type(  s   € Ü× Ñ Ð rh   c                 óR  ^• TR                  U4S j5        T" U R                  5        U R                  (       a  TR                  U R                  5        U R                  (       d2  TR                  [        [        U R                  5      S-   S5      5        g TR                  U R                  R                  5       5        [        U R                  R                  5       5      nTR                  TR                  [        U5      [        U R                  5      -   S-   US5      5        g )Nc                  ó(   >• T R                  SS5      $ )Nr  r&  r  r  s   €ri   r\  Ú6FunctoolsPartialVariable.reconstruct.<locals>.<lambda>,  s   ø€  g×&>Ñ&>¸{ÈIÔ&Vrh   r=   F)r¼  ru   r¦   Úforeachr   r½  r   r—   rh  r±   ÚkeysÚcreate_call_function_kw)r‰   rË  r,  s    ` ri   rÜ  Ú$FunctoolsPartialVariable.reconstruct+  sÉ   ø€ Ø×ÑÔVÔWÙ�—	‘	ÔØ�9�9Ø�O‰O˜DŸI™IÔ&Ø�}�}Ø×!Ñ!Ô"6´s¸4¿9¹9³~ÈÑ7IÈ5Ó"QÔRØà�‰˜Ÿ™×,Ñ,Ó.Ô/Ü�T—]‘]×'Ñ'Ó)Ó*ˆØ×ÑØ×+Ñ+¬C°«I¼¸D¿I¹I»Ñ,FÈÑ,JÈDÐRWÓXõ	
rh   c                 ó"   • U R                  5       $ r�   rN  rý   s    ri   r=  Ú%FunctoolsPartialVariable.get_function:  ó   € Ø×&Ñ&Ó(Ð(rh   r¤   rO   c                 óx   • U R                   U-   n0 U R                  EUEnU R                  R                  XU5      $ r�   )r¦   r   ru   rŠ  )r‰   r¤   r¦   r§   Úmerged_argsÚmerged_kwargss         ri   rŠ  Ú&FunctoolsPartialVariable.call_function=  s<   € ð —i‘i $Ñ&ˆØ3˜4Ÿ=™=Ð3¨FÐ3ˆØ�y‰y×&Ñ& r¸ÓFÐFrh   r´   c                 ót   • [         R                  " U[        [        R                  " [
        5      U5      5      $ r�   )rG   rÂ   rŽ  r  r&  r5   r�  s      ri   r�  Ú)FunctoolsPartialVariable.call_obj_hasattrG  s)   € ô ×$Ò$ R¬´×1BÒ1BÄ8Ó1LÈdÓ)SÓTÐTrh   c                 ó   • U R                   $ r�   )ru   r	  s     ri   r�  Ú"FunctoolsPartialVariable._get_funcO  rÃ  rh   c                 ó’   • U R                   =(       a    [        U R                   S5      n[        R                  " U R                  US9$ )Nr¦   r  )r¾   r(   r   r[  r¦   r  s      ri   Ú	_get_argsÚ"FunctoolsPartialVariable._get_argsR  s2   € Ø—‘×@¤¨D¯K©K¸Ó!@ˆÜ×&Ò& t§y¡y¸Ñ@Ð@rh   c                 ó  • U R                   =(       a    [        U R                   S5      nU R                  R                  5        VVs0 s H  u  p4[        R
                  " X5      U_M     nnn[        R                  " XRS9$ s  snnf )Nr   r  )r¾   r(   r   rÇ   rG   rÂ   r   rU  )r‰   r¤   r¾   rÈ   rÉ   rÇ   s         ri   Ú_get_keywordsÚ&FunctoolsPartialVariable._get_keywordsV  sg   € Ø—‘×D¤¨D¯K©K¸Ó!DˆØ=A¿]¹]×=PÑ=PÔ=RÔSÒ=R±T°Q”×&Ò& rÓ-¨qÒ0Ñ=RˆÑSÜ×*Ò*¨5Ñ@Ð@ùó Ts   Á#B)ru   r¦   r   c                 ób   >•  [         TU ]  X5      $ ! [         a    [        [        X/S9   g f = fr~  )r  r˜  r3  r    ré   )r‰   r¤   r´   r  s      €ri   r˜  Ú)FunctoolsPartialVariable.tp_getattro_impla  s6   ø€ ð	FÜ‘7Ñ+¨BÓ5Ð5øÜ"ó 	FÜ$¤^°R¸fÔEð	Fús   ƒ ’.­.c                 óB  • [         R                  " U R                  R                  5       /U R                   Vs/ s H  oR                  5       PM     snQ70 U R
                  R                  5        VVs0 s H  u  p#X#R                  5       _M     snnD6$ s  snf s  snnf r�   )r  r&  ru   r  r¦   r   rÇ   )r‰   rK  rÈ   rÉ   s       ri   r  Ú+FunctoolsPartialVariable.as_python_constanti  sƒ   € Ü× Ò Ø�I‰I×(Ñ(Ó*ð
à26·)²)Ó<²)¨3×$Ñ$Ö&±)Ñ<ò
ð 6:·]±]×5HÑ5HÔ5JÔKÒ5J©T¨Qˆq×&Ñ&Ó(Ò(Ñ5JÒKñ
ð 	
ùâ<ùÛKs   ¹B
Á4Bc                 ó‚  • [         R                  " U R                  R                  5       /U R                   Vs/ s H  oR                  5       PM     snQ70 U R
                  R                  5        VVs0 s H  u  p!X!R                  5       _M     snnD6nU R                  b  U R                  Ul        U$ s  snf s  snnf )zcSimilar to as_python_constant(), but add ID_MATCH guards to try to force things to become constants)	r  r&  ru   rü  r¦   r   rÇ   r  Ú
cache_hash)r‰   rÉ   rÈ   rÅ   s       ri   rü  Ú1FunctoolsPartialVariable.guard_as_python_constantp  s¤   € ä×"Ò"Ø�I‰I×.Ñ.Ó0ð
à48·I²IÓ>²I¨q×(Ñ(Ö*±IÑ>ò
ð <@¿=¹=×;NÑ;NÔ;PÔQÒ;P±4°1ˆq×,Ñ,Ó.Ò.Ñ;PÒQñ
ˆð ×#Ñ#Ñ/Ø $× 8Ñ 8ˆFÔØˆùò ?ùÛQs   ¹B6
Á4B;)r¦   ru   r   r  r�   rN  ) rc   rd   re   rf   r  r&  r›  rG   rœ  r²   r•   rœ  r   r�   rù   rÞ   rÙ  rÜ  r=  rŠ  rI   r�  r�  r;  r>  rC   r   r˜  r  rü  rg   r¡  r¢  s   @ri   r  r    s©  ø† à×%Ñ%€Mð 	ðà	×	'Ñ	'ð€Nð $(ñ7àð7ð �?Ñ#ð7ð �s˜OÐ+Ñ,ð	7ð
 !ð7ð ð7ð 
÷7ð 7ò&7ð
!˜Tô !ô
ð)˜cô )ðGà'ðGð �?Ñ#ðGð �S˜/Ð)Ñ*ð	Gð
 
ôGðUØ-ðUØ58ðUà	ôUðÐ7ð ¸Oô ðAÐ7ð A¸Oô AðAÐ ;ð AÀô Añ �y $Ó'Ù�y $Ó'Ù˜=¨$Ó/ñ€JðFØ-ðFØ58ðFà	÷Fð
 Cô 
ð
¨#÷ 
ò 
rh   r  c            
       ó�  ^ • \ rS rSrSSS1\R
                  kr\\R                  S\	\
S\4   \R                  4   4S j5       5       r\S\S	\SS 4S
 j5       rS\S-  4S jrS\S\SS4U 4S jjr\S\
S\4   4S j5       rS\4S jrS\4S jrSSS\\   S\	\\4   S\4S jrSSS\S\\   S\	\\4   S\4
S jrS\4S jrSrU =r $ )ÚPolyfilledFunctionVariablei}  rå   r×  Útraceable_fnrk   .c                 ó   • 0 $ r�   ra   )r°  s    ri   Ú_get_polyfill_handlersÚ1PolyfilledFunctionVariable._get_polyfill_handlers…  r•  rh   rª  r¾   c                 ó^   • [        UR                  [        R                  5      5        U " XS9$ r¬  r­  r¯  s      ri   r±  Ú-PolyfilledFunctionVariable.create_with_sourceŠ  s(   € ô 	�f×'Ñ'¬×(BÑ(BÓCÔDá�5Ñ(Ð(rh   Nc                 ó   • U R                   $ r�   r´  rý   s    ri   rµ  Ú0PolyfilledFunctionVariable.get_value_for_setattr’  r·  rh   r§   c                 ój  >• [         TU ]  " S0 UD6  Xl        U R                  5       R	                  X5      nS n[        U5      (       d  [        SU SU 35      eS H9  n[        X5S 5      nU(       d  M  [        U5      (       d  [        SU S35      eUn  O   [        SU S35      eX0l	        X@l
        g )NzPolyfill handler z is not callable for )Ú__torch_dynamo_polyfill__Ú__python_implementation__zPolyfill candidate z is not callablez# does not have a traceable functionra   )r  r�   rå   rK  rž   ÚcallablerÝ   rë   r0  r×  rI  )r‰   rå   r§   ÚhandlerrI  Úcandidate_attrÚ	candidater  s          €ri   r�   Ú#PolyfilledFunctionVariable.__init__•  sÔ   ø€ Ü‰ÒÑ"˜6Ò"àŒà×-Ñ-Ó/×3Ñ3°BÓ;ˆØˆÜ˜× Ñ Ü Ð#4°W°IÐ=RÐSUÐRVÐ!WÓXÐXó
ˆNô   ¸Ó>ˆIßˆyÜ 	×*Ñ*Ü(Ø-¨i¨[Ð8HÐIóð ð  )�Ùñ
ô Ø# G 9Ð,OÐPóð ð "Œà ,Õrh   c                 ó   • U R                   $ r�   )rI  rý   s    ri   Úpolyfill_fnÚ&PolyfilledFunctionVariable.polyfill_fn³  s   € à× Ñ Ð rh   c                 ó0   • [        U R                  SS5      $ )NÚ*__torch_dynamo_can_constant_fold_through__F)rë   r×  rý   s    ri   Úcan_constant_fold_throughÚ4PolyfilledFunctionVariable.can_constant_fold_through·  s   € ÜØ�O‰OÐIÈ5ó
ð 	
rh   c                 ó"   • U R                  5       $ r�   rN  rý   s    ri   r=  Ú'PolyfilledFunctionVariable.get_function¼  r1  rh   r¤   rO   r¦   c                 óŒ  • U R                  5       (       a‡  [        X#5      (       aw  U R                  " U Vs/ s H  oDR                  5       PM     sn0 UR	                  5        VVs0 s H  u  pVXVR                  5       _M     snnD6n[
        R                  " X5      $ U R                  [        R                  L Ga6  [        U5      S:X  Ga&  U(       Gd  [        US   [        R                  [        R                  45      (       aì  [        S US   R                   5       5      (       aÈ  [        R                  R!                  UUR"                  R%                  S[&        R(                  [+        S US   R                   5       5      40 5      [&        R(                  " US   R                   Vs/ s H4  nUR-                  5       (       a  UR                  5       OUR.                  PM6     sn5      S9$ [
        R                  " XR0                  5      nUR3                  U[5        U5      [7        U5      5      $ s  snf s  snnf s  snf )Nr=   r   c              3   ó  #   • U  Hx  nUR                  5       =(       a    [        UR                  5       [        5      =(       d7    [        U[        R
                  5      =(       a    UR                  5       [        L v •  Mz     g 7fr�   )rŠ  rÁ   r  r¤  r   ÚSymNodeVariablerÙ  )ræ  rÌ  s     ri   rè  Ú;PolyfilledFunctionVariable.call_function.<locals>.<genexpr>Ö  sd   é € ð ò '�Að ×%Ñ%Ó'×S¬J°q×7KÑ7KÓ7MÌsÓ,S÷ YÜ˜q¤)×";Ñ";Ó<×WÀÇÁÃÔTWÐAWôYâ&ùs   ‚B BrŠ  c              3   ó@   #   • U  H  oR                  5       v •  M     g 7fr�   )Úas_proxyrI  s     ri   rè  re  á  s   é € Ð?²¨AŸ:™:Ÿ<˜<²ùrL  )Úsym_num)r^  r3   rå   r  rÇ   rG   rÂ   ÚbuiltinsÚsumr—   rÁ   r   rT   r[  rŒ  rd  rÄ   rÍ   Úcreate_proxyrm   Úsym_sumr±   rŠ  rh  rI  rˆ  r²   r•   )	r‰   r¤   r¦   r§   rÌ  rÈ   rÉ   rÅ   Útraceable_function_variables	            ri   rŠ  Ú(PolyfilledFunctionVariable.call_function¿  sö  € ð ×)Ñ)×+Ñ+Ô0MØ÷1
ñ 1
ð —’Ù6:Ó;²d°×*Ñ*Ö,±dÑ;ðà=C¿\¹\¼^ÔLº^±T°Q�q×.Ñ.Ó0Ò0¹^ÒLñð ô #×(Ò(¨Ó4Ð4ð �G‰G”x—|‘|Ó#Ü�D“	˜Q”ßÜ˜4 ™7¤Y×%;Ñ%;¼Y×=TÑ=TÐ$U×VÑVÜñ ð ˜a™Ÿšó÷ ñ ô ×,Ñ,×3Ñ3ØØ—	‘	×&Ñ&Ø#Ü—M‘MÜÑ?°°a±·²Ó?Ó?ÐAØó	ô Ÿšð "& a¡§¢óò "/˜Að  !×3Ñ3×5Ñ5ð ×0Ñ0Ô2à!"§¡ò+ñ "/ñó	ð 4ð ð ô( '6×&;Ò&;¸B×@QÑ@QÓ&RÐ#Ø×-Ñ-Ø'Ü�‹JÜ�‹Ló
ð 	
ùòO <ùÛLùò4s   ¶H6Á%H;Æ-;Ir´   c                 óZ  • US:X  a  U R                  XU5      $ [        U R                  US 5      nU(       d,  [        U5      (       d  [	        USU SU R                   35        0 nU R
                  (       a  [        U R
                  U5      US'   [        U40 UD6nUR                  XU5      $ )NÚ__call__zCannot find callable z in r¾   )rŠ  rë   rå   r6   r!   r¾   r(   rH  )r‰   r¤   r´   r¦   r§   Úmethodrß  Úpolyfilled_method_variables           ri   r  Ú&PolyfilledFunctionVariable.call_method÷  sž   € ð �:ÓØ×%Ñ% b°Ó7Ð7ä˜Ÿ™ $¨Ó-ˆÞœ+ f×-Ñ-Ü˜RÐ#8¸¸¸dÀ4Ç7Á7À)Ð!LÔMØˆØ�;�;Ü *¨4¯;©;¸Ó =ˆG�HÑÜ%?ÀÑ%RÈ'Ñ%RÐ"Ø)×7Ñ7¸À&ÓIÐIrh   c                 ó   • U R                   $ r�   r´  rý   s    ri   r  Ú-PolyfilledFunctionVariable.as_python_constant
  r·  rh   )rå   rI  r×  )!rc   rd   re   rf   rG   rœ  rž  r  Úcacher•   r   r   rÛ   r   rK  r   r±  rŸ  rµ  rV   r�   ÚpropertyrZ  rž  r^  r=  r²   rœ  rŠ  r  r  rg   r¡  r¢  s   @ri   rH  rH  }  s‹  ø† àØØðð 
×	'Ñ	'ð	€Nð Ø‡_�_ð t¨H°S¸#°XÑ,>À×@RÑ@RÐ,RÑ'Só ó ó ðð ð)Øð)Ø!'ð)à	%ó)ó ð)ð v°¡}ô ð-˜2ð -¨ð -°÷ -ð< ð!˜X c¨3 hÑ/ó !ó ð!ð
¨4ô 
ð
)˜cô )ð6
à'ð6
ð �?Ñ#ð6
ð �S˜/Ð)Ñ*ð	6
ð
 
ô6
ðpJà'ðJð ðJð �?Ñ#ð	Jð
 �S˜/Ð)Ñ*ðJð 
ôJð& C÷ ò rh   rH  c                   óŒ   ^ • \ rS rSrS\S\SS4U 4S jjrS\4S jrSS
 jrSS	S\	4S jr
SS	S\\	   S\\\	4   S\	4S jrSrU =r$ )ÚSysFunctionVariablei  rª  r§   rk   Nc                 ó2   >• [         TU ]  " S0 UD6  Xl        g r�   ©r  r�   rª  ©r‰   rª  r§   r  s      €ri   r�   ÚSysFunctionVariable.__init__  ó   ø€ Ü‰ÒÑ"˜6Ò"Ø�
rh   c                 ó"   • [         R                  $ r�   )rÛ   ÚBuiltinFunctionTyperý   s    ri   rÙ  ÚSysFunctionVariable.python_type  s   € Ü×(Ñ(Ð(rh   r¤   rO   c                 óp  • [        UR                  5      (       aF  UR                  S   nUR                  nUR                  US5      n[        R
                  " X5      X$/nOA[        R                  " S 5      [        R                  " S 5      [        R                  " S 5      /n[        R                  " U5      $ )Nrì  r7  )
r—   r  r?  r˜  rG   rÂ   rI   rÄ   r   r[  )r‰   r¤   ÚexnrQ  ÚtbrÇ   s         ri   Úexc_infoÚSysFunctionVariable.exc_info  s•   € Üˆr�‰×ÑØ—/‘/ "Ñ%ˆCØ—,‘,ˆCØ×%Ñ% b¨/Ó:ˆBÜ$×*Ò*¨2Ó3°SÐ=‰Eô !×'Ò'¨Ó-Ü ×'Ò'¨Ó-Ü ×'Ò'¨Ó-ðˆEô
 ×&Ò& uÓ-Ð-rh   c                 ó>   • U R                  U5      R                  S   $ )Nr=   )r…  rÇ   r	  s     ri   Ú	exceptionÚSysFunctionVariable.exception$  s   € Ø�}‰}˜RÓ ×&Ñ& qÑ)Ð)rh   r¦   c                 óê   • U R                   [        R                  L a  U R                  U5      $ U R                   [        R                  La  [	        SU R                    35      eU R                  U5      $ )Nzexpected sys.exception, got )rª  r(  r…  rˆ  rÝ   r‰  s       ri   rŠ  Ú!SysFunctionVariable.call_function'  sY   € ð �:‰:œŸ™Ò%Ø—=‘= Ó$Ð$à�:‰:œSŸ]™]Ò*Ü Ð#?ÀÇ
Á
¸|Ð!LÓMÐMØ�~‰~˜bÓ!Ð!rh   r8  )r¤   rO   rk   zvariables.TupleVariable)rc   rd   re   rf   r   r�   rÞ   rÙ  r…  rG   rˆ  r²   r•   rœ  rŠ  rg   r¡  r¢  s   @ri   ry  ry    s�   ø† ð˜cð ¨Sð °T÷ ð)˜Tô )ô.ð*Ð7ð *¸Oô *ð"à'ð"ð �?Ñ#ð"ð �S˜/Ð)Ñ*ð	"ð
 
÷"ò "rh   ry  )Ú create_tma_experimental_metadataÚcreate_tma_stable_metadataÚTMADescriptorMetadataÚTritonHOPifierc                   óÂ  • \ rS rSrS\S\4S jrS\S\4S jr	S\S\
4S jrS	S
S\\R                  R                  R                   S4   4S jrS	\
S\\\
4   SSS\
4S jrS\S\
4   S\\   S\\\4   S\S   S\
S\4S jrS\
S\S   S\
S\S\4
S jrS\
S\S   S\\
   4S jrS\S\
4S jrSSS\\
   SS4S jrSSS\
S \\\
4   S!\\S4   S"\\   SSS\S#-  4S$ jrS%r g#)&ÚDynamoTritonHOPifieri=  rR  rk   c                 ó"   • [        SSSU 3/ S9  g )Nz!triton kernel unsupported featurer÷  z/Encountered triton kernel unsupported feature: rº  rV  )r‰   rR  s     ri   Úraise_unsupportedÚ&DynamoTritonHOPifier.raise_unsupported>  s   € ÜØ7ØØIÈ#ÈÐOØó		
rh   Úmaybe_callablec                 ó.   • [        U[        [        45      $ r�   )rÁ   rÖ  r¤  )r‰   r•  s     ri   Úis_callableÚ DynamoTritonHOPifier.is_callableF  s   € ÜØÔ7Ô9MÐNó
ð 	
rh   r½   c                 ó   • UR                   $ r�   r8  )r‰   r½   s     ri   Ú	get_valueÚDynamoTritonHOPifier.get_valueK  s   € Ø�y‰yÐrh   ÚgridrS   .c                 ó    • SSK Jn  [        X5      (       a  UR                  5       $ [	        SS[        U5       3S/ [        R                  QS9  g )Nr=   )rS   z/unsupported grid type for triton hop check_gridzgrid type = z;`torch.compile` only supports list-like grid for check_gridrº  )ÚlistsrS   rÁ   rg  r$   rÞ   r   rà  )r‰   rœ  rS   s      ri   Ú
check_gridÚDynamoTritonHOPifier.check_gridN  sK   € Ý+ä�d×-Ñ-Ø—=‘=“?Ð"äØIØ&¤t¨D£z lÐ3ØYðÜ&×2Ñ2ðó	rh   Úmetar¤   rO   c                 óª   • UR                  5        VVs0 s H  u  pE[        R                  " X45      U_M     nnnUR                  X6/0 5      nU$ s  snnf r�   )rÇ   rG   rÂ   rŠ  )r‰   rœ  r¡  r¤   rÈ   rÉ   Úmeta_vars          ri   Ú	call_gridÚDynamoTritonHOPifier.call_grid]  sQ   € ð AEÇ
Á
ÄÔMÂ¹¸”O×)Ò)¨"Ó0°!Ò3ÁˆÑMØ×!Ñ! " j°"Ó5ˆØˆùó Ns   ”#AÚuser_fnr¦   r§   rä  c                 óX   • SSK Jn  UR                  XA5      nUR                  XBU5      nU$ )Nr=   r[  )ro  r\  rÄ   rŠ  )	r‰   r¦  r¦   r§   r¤   rä  r\  Úwrapped_user_functionrÅ   s	            ri   Úcall_user_defined_fnÚ)DynamoTritonHOPifier.call_user_defined_fne  s/   € õ 	/à 1× 8Ñ 8¸Ó EÐØ&×4Ñ4°R¸vÓFˆØˆrh   Úuser_objr´   c                 óv   • SSK Jn  Uc  [        S5      eU" U[        UR                  U 5      5      " U5      nU$ )Nr=   )ÚVariableBuilderútx must not be None)ro  r­  rÝ   r(   Úkernel_source)r‰   r«  r¤   rä  r´   r­  Úwrapped_user_objs          ri   Úwrap_user_defined_objÚ*DynamoTritonHOPifier.wrap_user_defined_objs  sI   € õ 	-à‰:Ü Ð!6Ó7Ð7ñ +Ø”
˜8×1Ñ1°d°VÓ=ô
à
óÐð  Ðrh   Úconfigsc                 ó‚   • Uc  [        S5      e[        X!5      nU Vs/ s H  o3R                  " 5       PM     nnU$ s  snf )Nr®  )rÝ   r<   rü  )r‰   r³  r¤   r   s       ri   Úmaybe_unpack_configsÚ)DynamoTritonHOPifier.maybe_unpack_configs†  sI   € ð ‰:Ü Ð!6Ó7Ð7Ü! "Ó.ˆñ DKÓKÂ7¸×2Ò2Ö4Á7ˆÐKàˆùò Ls   ž<rÅ   c                 ón   • UR                  5       (       d  U R                  S5        UR                  5       $ )Nz`@triton.heuristics must return constant values because configs can only contain constant values.)rŠ  r“  rü  )r‰   rÅ   s     ri   Úmaybe_unpack_heuristic_resultÚ2DynamoTritonHOPifier.maybe_unpack_heuristic_result“  s3   € Ø×(Ñ(×*Ñ*Ø×"Ñ"Ørôð ×.Ñ.Ó0Ð0rh   ÚTritonKernelVariablec                 óÂ   • UR                   c  [        U5      S:w  a  U R                  S5        [        U5      " UR                  UR
                  US   UR                  S9$ )Nr=   z7Triton kernels should be called with only a single gridr   )ÚkernelÚ
kernel_idxrœ  r¯  )rœ  r—   r“  rÞ   r¼  r½  r¯  )r‰   rä  r¦   s      ri   Úcall_getitemÚ!DynamoTritonHOPifier.call_getitem�  s\   € ð �=‰=Ñ$¬¨D«	°Q«Ø×"Ñ"ØIôô �HŒ~Ø—?‘?Ø×*Ñ*Ø�a‘Ø"×0Ñ0ñ	
ð 	
rh   ÚgridsÚcombined_argsÚlaunch_kwargsÚkernel_arg_namesNc                 ó”  • SSK Jn  0 n[        UR                  5       5       HH  n	X9   n
[	        U
[
        [        45      (       d  M$  U
R                  5       X‰'   U
R                  5       X9'   MJ     UR                  5        V	V
s0 s H  u  pš[        R                  " Xi5      U
_M     nn	n
SSKJnJn  UR                  5        V	V
s0 s HC  u  pš[	        U
[        5      (       d  M  U
R                  5       (       d  M3  XšR!                  5       _ME     nn	n
UR                  5        V	V
s0 s H3  u  pš[	        U
[        5      (       a  U
R                  5       (       a  M1  Xš_M5     nn	n
/ nU HK  n	X•;   a  M
  X9   n
[	        U
[        5      (       a  U
R                  5       (       a  M:  UR#                  U	5        MM     U(       a  U R%                  S['        U5      < S35        UR)                  5        H_  n
U
R+                  5       n
U
R-                  5       (       a  M*  U
R/                  5       (       a  MA  U R%                  S[1        U
5       S35        Ma     UR3                  U5      nU" U5      nUR4                  R7                  SUS	UR8                  UUUUR;                  5       US
.5        [        R                  " US 5      $ s  sn
n	f s  sn
n	f s  sn
n	f )Nr=   )rU  r   )Úkernel_side_tableÚtriton_kernel_wrapper_mutationz1Triton backend options must be Python constants: rø  z.Unexpected argument type for a Triton kernel: rŠ  ra   )r½  Úconstant_args_idxrœ  Útma_descriptor_metadatar§   rÂ  )ÚdictsrU  r²   r,  rÁ   Ú!TMADescriptorExperimentalVariableÚTMADescriptorStableVariableÚto_metadataÚ
get_tensorrÇ   rG   rÂ   Ú*torch._higher_order_ops.triton_kernel_wraprÅ  rÆ  rŠ  r  rú  r“  Úsortedrh  ÚrealizerÎ  Úis_symnode_liker  Úadd_constant_argsrÍ   rk  r½  rg  )r‰   rä  rÀ  rÁ  rÂ  rÃ  r¤   rU  rÈ  rÈ   rÉ   Úcombined_args_vtrÅ  rÆ  r  Únon_constant_argsÚnon_const_optionsrÇ  r¡  s                      ri   Úcall_HOPÚDynamoTritonHOPifier.call_HOP¯  s™  € õ 	-ð :<ÐÜ�m×(Ñ(Ó*Ö+ˆAØÑ ˆAÜØÔ5Ô7RÐS÷ó ð ./¯]©]«_Ð'Ñ*Ø#$§<¡<£>�Ó ñ ,ð 9F×8KÑ8KÔ8Mô
Ú8M±°ŒO×!Ò! "Ó(¨!Ò+Ñ8Mð 	ñ 
÷	
ð &×+Ñ+Ô-ô
â-‘�Ü˜!œ_×-ó &à23×2FÑ2F×2Hó &ˆA×#Ñ#Ó%Ò%Ù-ð 	ñ 
ð )×.Ñ.Ô0ô
â0‘�Ü˜q¤/×2Ñ2°q×7KÑ7K×7Mó ˆAŠDÙ0ð 	ñ 
ð (*ÐÛˆAØÓ$ÙØÑ ˆAÜ˜q¤/×2Ñ2°q×7KÑ7K×7MÓ7MØ!×(Ñ(¨Ö+ñ ö Ø×"Ñ"ØCÜÐ+Ó,Ñ/¨qð2ôð
 #×)Ñ)Ö+ˆAØ—	‘	“ˆAØ—K‘K—M“M Q×%6Ñ%6×%8Ó%8Ø×&Ñ&ØDÄTÈ!ÃWÀIÈQÐOöñ ,ð .×?Ñ?ÀÓNÐÙ Ð!2Ó3ˆØ
�	‰	×ÑØØ*Øà&×1Ñ1Ø%6ØØ+BØŸ-™-›/Ø!.ñô		
ô ×$Ò$ØØó
ð 	
ùóA
ùó
ùó

s$   Â#J8ÃJ>Ã!J>Ã8J>Ä"0KÅKra   )!rc   rd   re   rf   rœ  r   r“  rG   rž  r—  r   rš  r±   rm   ÚfxÚproxyÚProxyrŸ  r•   r¤  r   r²   r
   r©  r±  rµ  r¸  r   r¾  rí  rI   rÖ  rg   ra   rh   ri   r‘  r‘  =  sö  † ð
 Sð 
¨Uô 
ð
¨/ð 
¸dô 
ð
˜_ð °ô ðÐ1ð °e¸E¿H¹H¿N¹N×<PÑ<PÐRUÐ<UÑ6Vô ðØðØ# C¨ H™~ðØ3Nðà	ôðà˜#˜s˜(Ñ#ðð �?Ñ#ðð �S˜/Ð)Ñ*ð	ð
 Ð0Ñ1ðð ðð 
ôð àð ð Ð0Ñ1ð ð ð	 ð
 ð ð 
ô ð&ØðØ (Ð)DÑ Eðà	ˆc‰ôð1°Oð 1Èô 1ð
à(ð
ð �s‰mð
ð 
 ô	
ð$]
à(ð]
ð ð]
ð ˜C ˜H‘~ð	]
ð
 ˜S #˜X‘ð]
ð ˜c™(ð]
ð (ð]
ð 
˜DÑ	 ÷]
rh   r‘  c            
       ó  ^ • \ rS rSr% S\S'   S\S'   \S-  \S'   \S-  \S'   S\S\S-  S\S	\S
S4
U 4S jjrS
\	4S jr
SSS\\   S	\\\4   S
\4S jrSSS\S
\4S jrSSS\\   S	\\\4   S
\4S jrS\S
\4S jrS\" \5      0rSrU =r$ )rº  i  rQ   rœ  rR   r¼  Nr½  r¯  r§   rk   c                 óž   >• UR                  SUR                  S5      5      U l        [        TU ]  " S0 UD6  [
        R                  XX#5        g )Nr¯  r¾   ra   )r¬   rž   r¯  r  r�   Ú dynamo_triton_hopifier_singletonÚinit_variable)r‰   r¼  r½  rœ  r§   r  s        €ri   r�   ÚTritonKernelVariable.__init__  sA   ø€ ð $ŸZ™Z¨¸¿¹ÀHÓ9MÓNˆÔÜ‰ÒÑ"˜6Ò"Ü(×6Ñ6°tÀZÕVrh   c                 ó,   • [        U R                  5      $ r�   )rÞ   r¼  rý   s    ri   rÙ  Ú TritonKernelVariable.python_type  s   € Ü�D—K‘KÓ Ð rh   r¤   rO   r¦   c                 ó.   • [         R                  XX15      $ r�   )rÝ  Úcall_triton_kernelr‰  s       ri   rŠ  Ú"TritonKernelVariable.call_function"  s   € ô 0×BÑBØ˜ó
ð 	
rh   rM  c                 ó.   • [         R                  X/5      $ r�   )rÝ  r¾  )r‰   r¤   rM  s      ri   Úmp_subscript_implÚ&TritonKernelVariable.mp_subscript_impl,  s   € ô 0×<Ñ<¸TÀ5ÓIÐIrh   c                 ó.   • [         R                  XX15      $ r�   )rÝ  Úcall_runr‰  s       ri   ÚrunÚTritonKernelVariable.run4  s   € ô 0×8Ñ8¸ÀVÓPÐPrh   rK  c                 ó~   • SSK Jn  SSKJn  [	        X5      (       a   UR
                  " UR                  5       5      $ U$ )Nr=   rH   )rd  )r�  rI   rð  rd  rÁ   rÄ   Úevaluate_expr)r‰   rK  rI   rd  s       ri   Úspecialize_symbolicÚ(TritonKernelVariable.specialize_symbolic<  s4   € Ý.Ý+ô �c×+Ñ+Ø#×*Ò*¨3×+<Ñ+<Ó+>Ó?Ð?Øˆ
rh   rê  )r¯  )rc   rd   re   rf   rß   r¤  r   r   r�   rÞ   rÙ  r²   rG   r•   rœ  rŠ  ræ  rê  rî  rD   rP  rg   r¡  r¢  s   @ri   rº  rº    s'  ø‡ Ø
ÓØÓØ�d‘
ÓØ˜D‘=Ó ðWØðWØ'*¨T¡zðWØ9<ðWØHKðWà	÷Wð!˜Tô !ð
à'ð
ð �?Ñ#ð
ð �S˜/Ð)Ñ*ð	
ð
 
ô
ðJà'ðJð ðJð 
ô	JðQà'ðQð �?Ñ#ðQð �S˜/Ð)Ñ*ð	Qð
 
ôQð sð ¨sô ð ™ ›Ð%†Jrh   rº  c                   óv   ^ • \ rS rSrSSS\\   S\\   S\S\SS	4U 4S
 jjrS\4S jrSS jr	S\4S jr
SrU =r$ )rÊ  iH  Údata_ptrzvariables.DataPtrVariableÚdimsÚ
block_dimsÚelement_sizer§   rk   Nc                 óÂ   >• [        U[        R                  5      (       d  [        S[	        U5       35      e[
        TU ]  " S0 UD6  Xl        X l        X0l	        X@l
        g )Nz(data_ptr must be a DataPtrVariable, got ra   )rÁ   r   ÚDataPtrVariablerÝ   rÞ   r  r�   rñ  rò  ró  rô  )r‰   rñ  rò  ró  rô  r§   r  s         €ri   r�   Ú*TMADescriptorExperimentalVariable.__init__I  s[   ø€ ô ˜(¤I×$=Ñ$=×>Ñ>Ü Ø:¼4À»>Ð:JÐKóð ô 	‰ÒÑ"˜6Ò"Ø ŒØŒ	Ø$ŒØ(Õrh   c                 ó   • [        U R                   Vs/ s H  oR                  5       PM     snU R                   Vs/ s H  oR                  5       PM     snU R                  R                  5       5      $ s  snf s  snf r�   )rŒ  rò  rg  ró  rô  )r‰   Údims     ri   rÌ  Ú-TMADescriptorExperimentalVariable.to_metadata[  s[   € Ü/Ø'+§y¢yÓ1¢y �\‰\Ž^¡yÑ1Ø'+§¢Ó7¢ �\‰\Ž^¡Ñ7Ø×Ñ×&Ñ&Ó(ó
ð 	
ùÚ1ùÚ7s
   ”A6½A;
c                 ó  ^ ^• TR                  UU 4S j5        T R                  R                  T5        / T R                  QT R                  QT R
                  PnTR                  U5        TR                  [        U5      S-   S5        g )Nc                  óV   >• T R                  SS[        TR                  5       S35      $ )Nz$triton.tools.experimental_descriptorÚcreate_Úd_tma_descriptor)r  r—   rò  r¸  s   €€ri   r\  Ú?TMADescriptorExperimentalVariable.reconstruct.<locals>.<lambda>d  s)   ø€ �G×,Ñ,Ø6Øœ#˜dŸi™i›.Ð)Ð)9Ð:ôrh   r=   F)	r¼  rñ  rÜ  rò  ró  rô  r+  rŠ  r—   )r‰   rË  r¦   s   `` ri   rÜ  Ú-TMADescriptorExperimentalVariable.reconstructb  sp   ù€ Ø×Ñõô	
ð 	�‰×!Ñ! 'Ô*Ø@�—‘Ð@˜TŸ_™_Ð@¨d×.?Ñ.?Ð@ˆØ�‰˜ÔØ×Ñœc $›i¨!™m¨UÕ3rh   c                 ó.   • U R                   R                  $ r�   )rñ  Úfrom_tensorrý   s    ri   rÍ  Ú,TMADescriptorExperimentalVariable.get_tensorn  s   € Ø�}‰}×(Ñ(Ð(rh   )ró  rñ  rò  rô  rN  )rc   rd   re   rf   r²   rG   r   r�   rÌ  rÜ  rÍ  rg   r¡  r¢  s   @ri   rÊ  rÊ  H  sn   ø† ð)à-ð)ð �?Ñ#ð)ð ˜Ñ)ð	)ð
 &ð)ð ð)ð 
÷)ð$
˜Sô 
ô
4ð)˜O÷ )ò )rh   rÊ  c                   ób   ^ • \ rS rSrSSSSS\SS4U 4S	 jjrS\4S
 jrSS jrS\4S jrSr	U =r
$ )rË  ir  rð  rU   Úblock_shaperT   r§   rk   Nc                 ó~   >• UR                  5       (       d  [        S5      e[        TU ]  " S0 UD6  Xl        X l        g )Nz tensor argument must be a tensorra   )rÎ  rÝ   r  r�   rð  r  )r‰   rð  r  r§   r  s       €ri   r�   Ú$TMADescriptorStableVariable.__init__s  s;   ø€ ð ×Ñ×!Ñ!Ü Ð!CÓDÐDÜ‰ÒÑ"˜6Ò"ØŒØ&Õrh   c                 óH   • [        U R                  R                  5       5      $ r�   )r�  r  rg  rý   s    ri   rÌ  Ú'TMADescriptorStableVariable.to_metadata  s!   € Ü)Ø×Ñ×%Ñ%Ó'ó
ð 	
rh   c                 óÎ   ^• TR                  U4S j5        TR                  S5        U R                  R                  T5        T" U R                  5        TR                  S5        g )Nc                  ó(   >• T R                  SS5      $ )Nztriton.tools.tensor_descriptorÚTensorDescriptorr  r  s   €ri   r\  Ú9TMADescriptorStableVariable.reconstruct.<locals>.<lambda>†  s   ø€ �G×,Ñ,Ø0Ø"ôrh   r  r   )r¼  Úload_methodrð  rÜ  r  r  rÊ  s    `ri   rÜ  Ú'TMADescriptorStableVariable.reconstruct„  sT   ø€ Ø×Ñôô	
ð 	×Ñ˜MÔ*Ø�‰×Ñ Ô(Ù�× Ñ Ô!Ø×Ñ˜AÕrh   c                 ó   • U R                   $ r�   )rð  rý   s    ri   rÍ  Ú&TMADescriptorStableVariable.get_tensor�  r  rh   )r  rð  rN  )rc   rd   re   rf   r   r�   rÌ  rÜ  rÍ  rg   r¡  r¢  s   @ri   rË  rË  r  sP   ø† ð
'à ð
'ð $ð
'ð ð	
'ð
 
÷
'ð
˜Sô 
ô

ð˜C÷ ò rh   rË  c                   óp   ^ • \ rS rSrS\S\SS4U 4S jjrS\4S jrSS	S
\	\
   S\\\
4   S\
4S jrSrU =r$ )Ú'CreateTMADescriptorExperimentalVariablei”  Úrankr§   rk   Nc                 óZ   >• US;  a  [        SU 35      e[        TU ]  " S0 UD6  Xl        g )N)r=   r   zrank must be 1 or 2, got ra   )rÝ   r  r�   r  )r‰   r  r§   r  s      €ri   r�   Ú0CreateTMADescriptorExperimentalVariable.__init__•  s5   ø€ ð
 �vÓÜ Ð#<¸T¸FÐ!CÓDÐDÜ‰ÒÑ"˜6Ò"Ø�	rh   c                 ó"   • [         R                  $ r�   rØ  rý   s    ri   rÙ  Ú3CreateTMADescriptorExperimentalVariable.python_typeŸ  rÛ  rh   r¤   rO   r¦   c                 óD  • SU;   a  US   OUS   n[        U[        R                  5      (       d/  [        SSU SU 3SU R                   S3SU R                   S	3/S
9  U R                  S:X  ab  [        U5      [        U5      -   S:w  a$  [        US[        U5      [        U5      -    35        SU;   a  US   OUS   /nSU;   a  US   OUS   /nO[        U5      [        U5      -   S:w  a$  [        US[        U5      [        U5      -    35        SU;   a  US   OUS   SU;   a  US   OUS   /nSU;   a  US   OUS   SU;   a  US   OUS   /nSU;   a  US   OUS   n[        U[        R                  5      (       d  [        S[        U5       35      e[        UUUUS9$ )NÚptrr   z.invalid ptr argument for create_tma_descriptorzargs = z, kwargs = z#Expected `ptr` argument of `create_z]d_tma_descriptor`to be from a `.data_ptr()` call, represented internally by `DataPtrVariable`z `torch.compile` may fail to internally represent result of `.data_ptr()` with `DataPtrVariable` due to a graph break between the `.data_ptr()` call and `create_zTd_tma_descriptor`. Please ensure there were no graph breaks between these two calls.rº  r=   rX   z6TMA metadata rank=1 requires exactly 4 arguments, got rù  Ú	block_dimr   é   z6TMA metadata rank=2 requires exactly 6 arguments, got Údim1Údim0Ú
block_dim1r&  Ú
block_dim0rô  rì  z#ptr must be a DataPtrVariable, got )rñ  rò  ró  rô  )
rÁ   r   rö  r$   r  r—   r!   rÝ   rÞ   rÊ  )r‰   r¤   r¦   r§   r  rò  ró  rô  s           ri   rŠ  Ú5CreateTMADescriptorExperimentalVariable.call_function¢  s  € ð  %¨›ˆf�UŠm°D¸±Gˆä˜#œy×8Ñ8×9Ñ9ÜØHØ! $  {°6°(Ð;ØAÀ$Ç)Á)Àð M_ð _ðà#Ÿy™y˜kð */ð/ðòð �9‰9˜‹>Ü�4‹yœ3˜v›;Ñ&¨!Ó+Ü ØØLÌSÐQUËYÔY\Ð]cÓYdÑMdÐLeÐfôð
 "'¨&£��u’°d¸1±gðˆDð (3°fÓ'<��{Ò#À$ÀqÁ'ð‰Jô �4‹yœ3˜v›;Ñ&¨!Ó+Ü ØØLÌSÐQUËYÔY\Ð]cÓYdÑMdÐLeÐfôð
 #)¨FÓ"2��v’¸¸Q¹Ø"(¨FÓ"2��v’¸¸Q¹ðˆDð
 )5¸Ó(>��|Ò$ÀDÈÁGØ(4¸Ó(>��|Ò$ÀDÈÁGðˆJð 2@À6Ó1I�v˜nÒ-ÈtÐTVÉxˆô ˜#œy×8Ñ8×9Ñ9Ü Ð#FÄtÈCÃyÀkÐ!RÓSÐSä0ØØØ!Ø%ñ	
ð 	
rh   )r  )rc   rd   re   rf   r¤  r   r�   rÞ   rÙ  r²   rG   r•   rœ  rŠ  rg   r¡  r¢  s   @ri   r  r  ”  so   ø† ðàðð ðð 
÷	ð"˜Tô "ð;
à'ð;
ð �?Ñ#ð;
ð �S˜/Ð)Ñ*ð	;
ð
 
÷;
ò ;
rh   r  c                   óL   • \ rS rSrS\4S jrSSS\\   S\\	\4   S\4S jr
S	rg
)Ú!CreateTMADescriptorStableVariableià  rk   c                 ó"   • [         R                  $ r�   rØ  rý   s    ri   rÙ  Ú-CreateTMADescriptorStableVariable.python_typeá  rÛ  rh   r¤   rO   r¦   r§   c                 óV   • SU;   a  US   OUS   nSU;   a  US   OUS   n[        UUS9$ )Nrð  r   r  r=   )rð  r  )rË  )r‰   r¤   r¦   r§   rð  r  s         ri   rŠ  Ú/CreateTMADescriptorStableVariable.call_functionä  sF   € ð &.°Ó%7�˜Ò!¸TÀ!¹WˆØ/<ÀÓ/F�f˜]Ò+ÈDÐQRÉGˆä*ØØ#ñ
ð 	
rh   ra   N)rc   rd   re   rf   rÞ   rÙ  r²   rG   r•   rœ  rŠ  rg   ra   rh   ri   r#  r#  à  sH   † ð"˜Tô "ð
à'ð
ð �?Ñ#ð
ð �S˜/Ð)Ñ*ð	
ð
 
÷
rh   r#  c                   óB   • \ rS rSrSrSSS\\   S\\\4   S\4S jr	S	r
g
)Ú!PyTreeGetNodeTypeFunctionVariableió  a+  
`torch.utils._pytree._get_node_type` function is very hot function. We want to special case it to reduce Dynamo tracing time.

def _get_node_type(tree: Any) -> Any:
    node_type = type(tree)
    # All namedtuple types are implicitly registered as pytree nodes.
    # XXX: Other parts of the codebase expect namedtuple types always return
    #      `namedtuple` instead of the actual namedtuple type. Even if the type
    #      is explicitly registered.
    if is_namedtuple_class(node_type):
        return collections.namedtuple
    return node_type
r¤   rO   r¦   r§   rk   c                 óT  • [        U5      S:w  a  [        US[        U5       35        S nUS   R                  (       aM  [        US   R                  R	                  [
        R                  5      5        [        US   R                  5      nUS   R                  5       n[        U5      (       ag  [        S5      n[        UR	                  [
        R                  5      5        [        US5      n[        R                  " U[        [         5      S   U5      $ [        R                  " XUS9$ )Nr=   z6pytree_get_node_type requires exactly 1 argument, got r   ÚcollectionsÚ
namedtupler  )r—   r!   r¾   r'   r­   r&   Ú
TYPE_MATCHr1   rÙ  r   r.   rÐ  r(   rG   rÂ   Úvarsr+  )r‰   r¤   r¦   r§   Útype_sourcerÙ  Úcollections_sources          ri   rŠ  Ú/PyTreeGetNodeTypeFunctionVariable.call_function  sö   € ô ˆt‹9˜‹>ÜØÐLÌSÐQUËYÈKÐXôð ˆØ�‰7�>�>Ü˜$˜q™'Ÿ.™.×3Ñ3´L×4KÑ4KÓLÔMÜ$ T¨!¡W§^¡^Ó4ˆKØ˜1‘g×)Ñ)Ó+ˆÜ˜{×+Ñ+Ü!-¨mÓ!<ÐÜÐ,×7Ñ7¼×8MÑ8MÓNÔOÜ$Ð%7¸ÓFˆKÜ"×(Ò(Ø”DœÓ% lÑ3°[óð ô ×$Ò$ R¸[ÑIÐIrh   ra   N)rc   rd   re   rf   rá   r²   rG   r•   rœ  rŠ  rg   ra   rh   ri   r)  r)  ó  sF   † ñðJà'ðJð �?Ñ#ðJð �S˜/Ð)Ñ*ð	Jð
 
÷Jrh   r)  c                   óP   ^ • \ rS rSrSrSSS\\   S\\\4   S\4U 4S jjr	S	r
U =r$ )
Ú PyTreeTreeIsLeafFunctionVariablei  a  
`torch.utils._pytree.tree_is_leaf` function is a hot function. We want to special case it to reduce Dynamo tracing time.

def tree_is_leaf(
    tree: PyTree,
    is_leaf: Callable[[PyTree], bool] | None = None,
) -> bool:
    if is_leaf is not None and is_leaf(tree):
        return True
    return _get_node_type(tree) not in SUPPORTED_NODES

When is_leaf is None (the common case), we can optimize by not tracing into the function.
When is_leaf is not None, we fall back to regular tracing since it requires executing user code.
r¤   rO   r¦   r§   rk   c                 ó
  >• [        U5      S:  d  [        U5      S:”  a  [        US[        U5       35        UR                  S[        R                  " S 5      5      n[        U5      S:X  a  US   nUR                  5       (       d  [        T	U ]  XU5      $ US   n[        [        R                  R                  R                  5      R                  X/0 5      n[        [        S5      R                  [         R"                  5      5        [$        R&                  " U[        R                  R                  R(                  [+        5       S9nUR-                  USU/0 5      n[$        R&                  " XR.                  (       + 5      $ )	Nr=   r   z,tree_is_leaf requires 1 or 2 arguments, got rZ   r   rm   r  Ú__contains__)r—   r!   rž   rI   rÄ   rú  r  rŠ  r)  rm   rn   ro   Ú_get_node_typer'   r.   r­   r&   rÐ  rG   rÂ   rp   rq   r  rª  )
r‰   r¤   r¦   r§   rZ   ÚtreeÚnode_type_varÚsupported_nodes_varÚoutr  s
            €ri   rŠ  Ú.PyTreeTreeIsLeafFunctionVariable.call_function+  s>  ø€ ô ˆt‹9�q‹=œC ›I¨›MÜØÐBÄ3ÀtÃ9À+ÐNôð
 —*‘*˜YÔ(8×(?Ò(?ÀÓ(EÓFˆÜˆt‹9˜‹>Ø˜1‘gˆGà×'Ñ'×)Ñ)Ü‘7Ñ(¨°6Ó:Ð:ð �A‰wˆÜ9Ü�K‰K×Ñ×.Ñ.ó
ç
‰-˜˜F BÓ
'ð 	ô 	”l 7Ó+×6Ñ6´|×7LÑ7LÓMÔNÜ-×3Ò3ØÜ�K‰K×Ñ×/Ñ/Ü4Ó6ñ
Ðð
 "×-Ñ-¨b°.À=À/ÐSUÓVˆÜ×$Ò$ R¯Y©Y¬Ó7Ð7rh   ra   r§  r¢  s   @ri   r3  r3    sG   ø† ñð&8à'ð&8ð �?Ñ#ð&8ð �S˜/Ð)Ñ*ð	&8ð
 
÷&8õ &8rh   r3  c                   óf   ^ • \ rS rSrSrS\S\SS4U 4S jjrSS	S
\\   S\	\
\4   S\4S jrSrU =r$ )Ú SparseTensorCreationSkipVariableiT  zc
Skip variable for sparse tensor factory functions with clear messaging regarding lack of support.
rª  r§   rk   Nc                 ó0   >• Sn[         TU ]  " U4SU0UD6  g )Nz8sparse tensor creation is not supported in torch.compiler.  )r  r�   )r‰   rª  r§   r.  r  s       €ri   r�   Ú)SparseTensorCreationSkipVariable.__init__Y  s   ø€ ØKˆÜ‰Ò˜Ñ8 vÐ8°Ó8rh   r¤   rO   r¦   c                 ó¢   • SSK Jn  [        U R                  S[	        U R                  5      5      n[        SSU 3SU S3/ UR                  QS9  g )	Nr   )r   rc   z$Sparse tensor creation not supportedz
function: zEtorch.compile does not support sparse tensor creation functions like zZ. Sparse tensors require specialized handling that is not yet implemented in the compiler.rº  )r÷  r   rë   rª  rœ  r$   ÚSPARSE_TENSOR)r‰   r¤   r¦   r§   r   rS  s         ri   rŠ  Ú.SparseTensorCreationSkipVariable.call_function]  s]   € õ 	)ä˜$Ÿ*™* j´#°d·j±j³/ÓBˆÜØ:Ø   	Ð*àWÐX_ÐW`ð akð kð 5Ð%×3Ñ3Ð4ó	
rh   ra   )rc   rd   re   rf   rá   r   r�   r²   rG   r•   rœ  rŠ  rg   r¡  r¢  s   @ri   r=  r=  T  sa   ø† ñð9˜cð 9¨Sð 9°T÷ 9ð
à'ð
ð �?Ñ#ð
ð �S˜/Ð)Ñ*ð	
ð
 
÷
ò 
rh   r=  Ú	real_implc                 óP  ^ • SSK Js  Jn  SSKJnJnJn  S nS/nU" XU5      u  pšU" U	5      nU" U
5      nUR                  S0 45      S   nS[        S[        S	[        4U 4S
 jjnU" U S3U5      U" U S3U5      U" U S3U5      S4nT R                  R                  SX_0 5        g)a%  Emit an invoke_leaf_function node for a side-effectful function with no
tensor inputs or outputs.

The function is captured as a closure inside _LeafCallable objects and
registered as a static attribute on the graph module.  Because
invoke_leaf_function is registered as EffectType.ORDERED, effect tokens
prevent DCE and maintain execution ordering relative to other ops.

Use this when Dynamo needs to preserve a pure-side-effect call (like
setting global runtime state) in the compiled graph so that it replays
at the correct position at runtime.
r   N)Ú_LeafCallableÚinvoke_leaf_functionÚmake_leaf_function_wrappersc                  ó   • g r�   ra   ra   rh   ri   Ú	fake_implÚ5emit_noargs_leaf_function_to_graph.<locals>.fake_impl‰  rš  rh   ra   r=   Ú	attr_namer½   rk   c                 ór   >• TR                   R                  X5      n[        U5      UR                  l        U$ r�   )rÍ   Ú%register_static_attr_and_return_proxyrÞ   r®  )rK  r½   rÙ  r¤   s      €ri   Ú
make_proxyÚ6emit_noargs_leaf_function_to_graph.<locals>.make_proxy•  s+   ø€ Ø—	‘	×?Ñ?À	ÓOˆÜ˜s›)ˆ�
‰
ŒØˆrh   Ú_real_fnÚ_fake_fnÚ_input_specr÷  rŠ  )Útorch.utils._pytreern   ro   Ú,torch._higher_order_ops.invoke_leaf_functionrE  rF  rG  Útree_flattenrœ  r   rÍ   rk  )r¤   rC  r´   ÚpytreerE  rF  rG  rI  Úcaptured_out_specÚwrapped_realÚwrapped_fakeÚreal_callableÚfake_callableÚ
input_specrN  Úinvoke_argss   `               ri   Ú"emit_noargs_leaf_function_to_graphr^  q  sØ   ø€ ÷" )Ð(÷ñ òð 8<°fÐÙ!<ØÐ/ó"Ñ€Lñ " ,Ó/€MÙ! ,Ó/€MØ×$Ñ$ b¨" XÓ.¨qÑ1€Jðœcð ¬ð ´÷ ñ 	�d�V˜8Ð$ mÓ4Ù�d�V˜8Ð$ mÓ4Ù�d�V˜;Ð'¨Ó4Ø
ð	€Kð ‡I�I×Ñ˜?Ð,@ÈrÕRrh   c                   ót   ^ • \ rS rSrSrS\S\SS4U 4S jjrS\4S jrS	S
S\	\
   S\\\
4   S\
4S jrSrU =r$ )ÚTritonSetAllocatorVariablei£  z”Trace triton.set_allocator as an invoke_leaf_function node in the
graph so that it executes at the right point at runtime, ordered by
effect tokens.rª  r§   rk   Nc                 ó2   >• [         TU ]  " S0 UD6  Xl        g r�   r{  r|  s      €ri   r�   Ú#TritonSetAllocatorVariable.__init__¨  r~  rh   c                 ó,   • [        U R                  5      $ r�   )rÞ   rª  rý   s    ri   rÙ  Ú&TritonSetAllocatorVariable.python_type¬  s   € Ü�D—J‘JÓÐrh   r¤   rO   r¦   c                 ó  ^^• [        U5      S:w  a  [        S[        U5       35      eU(       a  [        S5      eUS   R                  5       mU R                  mUU4S jn[	        XS5        [
        R                  " S 5      $ )Nr=   zexpected exactly 1 arg, got zunexpected kwargsr   c                  ó   >• T" T 5        g r�   ra   )Úalloc_fnÚset_allocators   €€ri   rC  Ú;TritonSetAllocatorVariable.call_function.<locals>.real_impl¾  s   ø€ Ù˜(Ô#Ørh   Ú	set_alloc)r—   rÝ   r  rª  r^  rI   rÄ   )r‰   r¤   r¦   r§   rC  rg  rh  s        @@ri   rŠ  Ú(TritonSetAllocatorVariable.call_function¯  su   ù€ ô ˆt‹9˜‹>Ü Ð#?ÄÀDÃ	¸{Ð!KÓLÐLÞÜ Ð!4Ó5Ð5Ø˜‘7×-Ñ-Ó/ˆð Ÿ
™
ˆö	ô 	+¨2¸+ÔFä×&Ò& tÓ,Ð,rh   r8  )rc   rd   re   rf   rá   r   r�   rÞ   rÙ  r²   rG   r•   rœ  rŠ  rg   r¡  r¢  s   @ri   r`  r`  £  sm   ø† ñð˜cð ¨Sð °T÷ ð ˜Tô  ð-à'ð-ð �?Ñ#ð-ð �S˜/Ð)Ñ*ð	-ð
 
÷-ò -rh   r`  Ú
descriptorr  rG   c           
      ó   • Uc  g UR                  5       n[        X1R                  5      (       d?  [	        U SUR
                   SUR                  R
                   SUR
                   S35        gg! [         a     gf = f)a+  Check that obj's type is compatible with descriptor.__objclass__.

Mirrors CPython's descr_check which raises TypeError when a C descriptor
is bound to an object whose type is not a subtype of the descriptor's
__objclass__.

https://github.com/python/cpython/blob/3.13/Objects/descrobject.c#L79-L96
Núdescriptor 'z' for 'z' objects doesn't apply to a 'z' object)rÙ  r3  r±  Ú__objclass__r!   rc   )r¤   rl  r  Úobj_types       ri   Ú_check_descriptor_obj_typerq  Ð  s‘   € ð  �{ØðØ—?‘?Ó$ˆô �h× 7Ñ 7×8Ñ8ÜØØ˜:×.Ñ.Ð/ð 0Ø×'Ñ'×0Ñ0Ð1ð 2#Ø#+×#4Ñ#4Ð"5°Xð?õ	
ð 9øô ó Ùðús   †A0 Á0
A=Á<A=c                   óT  ^ • \ rS rSrSrS1\R                  krS\R                  S\S\	SS4U 4S jjr
S\4S	 jrS\4S
 jrS\R                  4S jrS\R                  4S jr\" \" S 5      5      \" \" S 5      5      S.rSSS\\   S\\\4   S\4S jrSSS\S\SS4S jrSrU =r$ )ÚWrapperDescriptorVariableiñ  aù  Unbound C slot wrapper (wrapper_descriptor on a type).

CPython types define behavior through C-level slots on PyTypeObject
(tp_richcompare, sq_length, nb_add, etc.).  When these slots are
accessed from Python (e.g. list.__add__), CPython exposes them as
wrapper_descriptor objects (PyWrapperDescr_Type).  A wrapper_descriptor
is an unbound descriptor living on the type -- it is not tied to any
instance.
https://github.com/python/cpython/blob/3.13/Objects/descrobject.c#L867

When a wrapper_descriptor is accessed on an instance (e.g. [1,2].__add__),
its tp_descr_get slot (wrapperdescr_get) is invoked, which calls
PyWrapper_New to produce a bound method-wrapper (_PyMethodWrapper_Type).
The tp_descr_get_impl method on this class mirrors that binding step.
rl  r  r§   rk   Nc                 ó>   >• [         TU ]  " S0 UD6  Xl        X l        g r�   ©r  r�   rl  r  ©r‰   rl  r  r§   r  s       €ri   r�   Ú"WrapperDescriptorVariable.__init__  ó   ø€ ô 	‰ÒÑ"˜6Ò"Ø$ŒØ�
rh   c                 ó|   • U R                   R                  R                  nSU SU R                   R                   S3$ )NzWrapperDescriptorVariable(rø  r'  ©rl  ro  rc   ©r‰   Úcls_names     ri   rO  Ú"WrapperDescriptorVariable.__repr__  s8   € Ø—?‘?×/Ñ/×8Ñ8ˆØ+¨H¨:°Q°t·±×7OÑ7OÐ6PÐPQÐRÐRrh   c                 ó"   • [         R                  $ r�   )rÛ   ÚWrapperDescriptorTyperý   s    ri   rÙ  Ú%WrapperDescriptorVariable.python_type  s   € Ü×*Ñ*Ð*rh   c                 ó   • U R                   $ r�   ©rl  rý   s    ri   r  Ú,WrapperDescriptorVariable.as_python_constant  ó   € Ø�‰Ðrh   c                 ó   • U R                   $ r�   r‚  rý   s    ri   rÏ  Ú6WrapperDescriptorVariable.get_real_python_backed_value  r„  rh   c                 ó.   • U R                   R                  $ r�   ©rl  ro  r   s    ri   r\  Ú"WrapperDescriptorVariable.<lambda>  ó   € °a·l±l×6OÒ6Orh   c                 ó.   • U R                   R                  $ r�   ©rl  rc   r   s    ri   r\  r‰     ó   € °!·,±,×2GÒ2Grh   ©ro  rc   r¤   rO   r¦   c                 ó4  • U(       dE  [        USU R                  R                   SU R                  R                  R                   S35        UtpE[	        XR                  U5        U R
                  R                  XR                  R                  U/UQU5      $ ©Nrn  z' of 'z' object needs an argument©r!   rl  rc   ro  rq  r  r  )r‰   r¤   r¦   r§   r  rg  s         ri   rŠ  Ú'WrapperDescriptorVariable.call_function#  s�   € ö ÜØØ˜tŸ™×7Ñ7Ð8ð 9Ø—O‘O×0Ñ0×9Ñ9Ð:Ð:TðVôð
 ˆ
ˆÜ" 2§¡¸Ô<ð
 �z‰z×%Ñ%Ø—‘×(Ñ(¨3¨,°¨,¸ó
ð 	
rh   r  ÚMethodWrapperVariablec                 ój   • [        XR                  U5        [        U R                  X R                  S9$ r¬  )rq  rl  r“  r¾   ©r‰   r¤   r  r  s       ri   r  Ú+WrapperDescriptorVariable.tp_descr_get_impl<  s'   € ô 	# 2§¡¸Ô<Ü$ T§_¡_°cÇ+Á+ÑNÐNrh   ©rl  r  )rc   rd   re   rf   rá   rG   rœ  rÛ   r  r   r�   rœ  rO  rÞ   rÙ  r  rÏ  rC   rA   r   r²   r•   rŠ  r  rg   r¡  r¢  s   @ri   rs  rs  ñ  s&  ø† ñð" 	ðà	×	'Ñ	'ð€Nð
à×/Ñ/ðð ðð ð	ð
 
÷ðS˜#ô Sð+˜Tô +ð E×$?Ñ$?ô ð¨e×.IÑ.Iô ñ ™|Ñ,OÓPÓQÙ™<Ñ(GÓHÓIñ€Jð

à'ð
ð �?Ñ#ð
ð �S˜/Ð)Ñ*ð	
ð
 
ô
ð2Oà'ðOð ðOð ð	Oð
 
!÷Oò Orh   rs  c                   óŒ  ^ • \ rS rSrSrS1\R                  krS\R                  S\S\	SS4U 4S jjr
S\4S	 jrS\4S
 jr\" S 5      \" S 5      S.rS\" S 5      0rS\R&                  4S jrS\4S jrS\R&                  4S jrSSS\\   S\\\4   S\4S jrSS jrSSS\\\4   4U 4S jjrSSSSS\SS4S jrSr U =r!$ )r“  iJ  a  Bound method-wrapper (wrapper_descriptor bound to an instance).

Produced by WrapperDescriptorVariable.tp_descr_get_impl, mirroring
PyWrapper_New which stores a reference to the descriptor and the instance.
https://github.com/python/cpython/blob/3.13/Objects/descrobject.c#L1450
rl  r  r§   rk   Nc                 ó>   >• [         TU ]  " S0 UD6  Xl        X l        g r�   ©r  r�   rl  r  ©r‰   rl  r  r§   r  s       €ri   r�   ÚMethodWrapperVariable.__init__W  s   ø€ ô 	‰ÒÑ"˜6Ò"Ø$ŒØ�rh   c                 ó–   • U R                   R                  R                  nSU SU R                   R                   SU R                   S3$ )NzMethodWrapperVariable(rø  r&  r'  )rl  ro  rc   r  r{  s     ri   rO  ÚMethodWrapperVariable.__repr__a  sD   € Ø—?‘?×/Ñ/×8Ñ8ˆà$ X J¨a°·±×0HÑ0HÐ/IÈÈDÏHÉHÈ:ÐUVÐWð	
rh   c                 ó"   • [         R                  $ r�   )rÛ   ÚMethodWrapperTyperý   s    ri   rÙ  Ú!MethodWrapperVariable.python_typeg  ó   € Ü×&Ñ&Ð&rh   c                 óV   • [         R                  " U R                  R                  5      $ r�   )rI   rÄ   rl  rc   rj  s     ri   r\  ÚMethodWrapperVariable.<lambda>p  s   € Ô*×1Ò1°!·,±,×2GÑ2GÔHrh   c                 óV   • [         R                  " U R                  R                  5      $ r�   )rI   rÄ   rl  re   rj  s     ri   r\  r¤  s  s   € Ô*×1Ò1°!·,±,×2KÑ2KÔLrh   )rc   re   rÝ  c                 ó   • U R                   $ r�   r…  rj  s     ri   r\  r¤  w  s   € ¨¯ªrh   c                 ó"   • U R                  5       $ r�   rN  rý   s    ri   rÏ  Ú2MethodWrapperVariable.get_real_python_backed_valuez  r1  rh   c                 ó6   • U R                   R                  5       $ r�   )r  rŠ  rý   s    ri   rŠ  Ú(MethodWrapperVariable.is_python_constant}  s   € Ø�x‰x×*Ñ*Ó,Ð,rh   c                 ó¶   • U R                   R                  5       n U R                  R                  U[	        U5      5      $ ! [
         a    [        U 5      S ef = fr�   )r  r  rl  r  rÞ   rô  r>   )r‰   Ú	obj_values     ri   r  Ú(MethodWrapperVariable.as_python_constant€  sS   € Ø—H‘H×/Ñ/Ó1ˆ	ð	FØ—?‘?×*Ñ*¨9´d¸9³oÓFÐFøÜó 	FÜ5°dÓ;ÀÐEð	Fús   œ$A ÁAr¤   rO   r¦   c                 óø  • U(       a¨  [        US   [        R                  5      (       a†   U R                  5       nUbr  [        U5      (       ab  [        U5      S:X  a  [        U5      S:X  d  [        US5        [        [        UR                  5      nUS   R                  XR                  5      $ U R                  R                  XR                  R                  [!        U5      U5      $ ! [         a    S n N½f = f)Nr   r=   z2tensor attribute getter takes exactly one argument)rÁ   r   rU   r  r3  r8   r—   r!   r   r   rÝ  r˜  rc   r  r  rl  r²   )r‰   r¤   r¦   r§   Úmethod_wrapperrl  s         ri   rŠ  Ú#MethodWrapperVariable.call_function‡  sÚ   € ö ”J˜t A™w¬	×(@Ñ(@×AÑAð&Ø!%×!8Ñ!8Ó!:�ð Ñ)Ô.HØ÷/ñ /ô ˜D›	 Q›¬3¨v«;¸!Ó+;Ü$ØÐPôô
 "¤# ~×'>Ñ'>Ó?�
Ø˜A‘w×/Ñ/°×4GÑ4GÓHÐHà�x‰x×#Ñ# B¯©×(@Ñ(@Ä$ÀtÃ*ÈfÓUÐUøô 'ó &Ø!%’ð&ús   «C* Ã*C9Ã8C9c                 ó�   • U" U R                   5        UR                  UR                  U R                  R                  5      5        g r�   ©r  r½  Úcreate_load_attrsrl  rc   rÊ  s     ri   rÜ  Ú!MethodWrapperVariable.reconstruct¤  ó1   € Ù�—‘ÔØ×Ñ˜g×7Ñ7¸¿¹×8PÑ8PÓQÕRrh   c                 óz   >•  [        U R                  5       5      S4$ ! [         a    [        TU ]  U5      s $ f = frË  )r|  r  r3  r  r‚  )r‰   r¤   r  s     €ri   r‚  ÚMethodWrapperVariable.hash_impl¨  sB   ø€ ð	)ô ˜×/Ñ/Ó1Ó2°EÐ9Ð9øÜ"ó 	)Ü‘7Ñ$ RÓ(Ò(ð	)ús   ƒ ž:¹:r÷   rG   rø   c                 ó    • SSK Jn  U" XX#5      $ ©Nr=   )Ú python_constant_richcompare_impl©rõ   rº  ©r‰   r¤   r÷   rø   rº  s        ri   rù   Ú)MethodWrapperVariable.tp_richcompare_impl°  ó   € õ 	Fá/°¸%ÓDÐDrh   ©rl  r  rN  )"rc   rd   re   rf   rá   rG   rœ  rÛ   r  r   r�   rœ  rO  rÞ   rÙ  r@   rŸ  rC   r   r   rÏ  rž  rŠ  r  r²   r•   rŠ  rÜ  r±   r¤  r‚  rù   rg   r¡  r¢  s   @ri   r“  r“  J  sd  ø† ñð 	ðà	×	'Ñ	'ð€Nð
à×/Ñ/ðð ðð ð	ð
 
÷ð
˜#ô 
ð'˜Tô 'ñ ÙHó
ñ ÙLó
ñ	€Ið 	‘FÑ.Ó/ð€Jð)¨e×.EÑ.Eô )ð- Dô -ðF E×$;Ñ$;ô FðVà'ðVð �?Ñ#ðVð �S˜/Ð)Ñ*ð	Vð
 
ôVô:Sð)Ð7ð )¸EÀ#ÀtÀ)Ñ<L÷ )ðEØ-ðEØ6GðEØMPðEà	÷Eò Erh   r“  c                   óT  ^ • \ rS rSrSrS1\R                  krS\R                  S\S\	SS4U 4S jjr
S\4S	 jrS\4S
 jrS\R                  4S jrS\R                  4S jr\" \" S 5      5      \" \" S 5      5      S.rSSS\\   S\\\4   S\4S jrSSS\S\SS4S jrSrU =r$ )ÚMethodDescriptorVariablei¸  aá  Unbound C method descriptor (method_descriptor on a type).

CPython types expose their PyMethodDef-based C methods as
method_descriptor objects (PyMethodDescr_Type) in the type's tp_dict.
For example, list.append and dict.get are method_descriptors.  Like
wrapper_descriptors, these are unbound descriptors living on the type.
https://github.com/python/cpython/blob/3.13/Objects/descrobject.c#L716

When a method_descriptor is accessed on an instance (e.g. [].append),
its tp_descr_get slot (method_get) is invoked, which calls
PyCFunction_NewEx to produce a bound builtin_function_or_method
(PyCFunction_Type).  The tp_descr_get_impl method mirrors that step.
https://github.com/python/cpython/blob/3.13/Objects/descrobject.c#L137-L159
rl  r  r§   rk   Nc                 ó>   >• [         TU ]  " S0 UD6  Xl        X l        g r�   ru  rv  s       €ri   r�   Ú!MethodDescriptorVariable.__init__Í  rx  rh   c                 ó|   • U R                   R                  R                  nSU SU R                   R                   S3$ )NzMethodDescriptorVariable(rø  r'  rz  r{  s     ri   rO  Ú!MethodDescriptorVariable.__repr__×  ó7   € Ø—?‘?×/Ñ/×8Ñ8ˆØ*¨8¨*°A°d·o±o×6NÑ6NÐ5OÈqÐQÐQrh   c                 ó"   • [         R                  $ r�   )rÛ   ÚMethodDescriptorTyperý   s    ri   rÙ  Ú$MethodDescriptorVariable.python_typeÛ  ó   € Ü×)Ñ)Ð)rh   c                 ó   • U R                   $ r�   r‚  rý   s    ri   r  Ú+MethodDescriptorVariable.as_python_constantÞ  r„  rh   c                 ó   • U R                   $ r�   r‚  rý   s    ri   rÏ  Ú5MethodDescriptorVariable.get_real_python_backed_valueá  r„  rh   c                 ó.   • U R                   R                  $ r�   rˆ  r   s    ri   r\  Ú!MethodDescriptorVariable.<lambda>å  rŠ  rh   c                 ó.   • U R                   R                  $ r�   rŒ  r   s    ri   r\  rÐ  æ  r�  rh   rŽ  r¤   rO   r¦   c                 ó8  • U(       dE  [        USU R                  R                   SU R                  R                  R                   S35        UtpEU R                  R                  n[	        XR                  U5        U R
                  R                  XU/UQU5      $ r�  r‘  )r‰   r¤   r¦   r§   r  rg  r´   s          ri   rŠ  Ú&MethodDescriptorVariable.call_functioné  s�   € ö ÜØØ˜tŸ™×7Ñ7Ð8ð 9Ø—O‘O×0Ñ0×9Ñ9Ð:Ð:TðVôð
 ˆ
ˆØ�‰×'Ñ'ˆÜ" 2§¡¸Ô<ð �z‰z×%Ñ% b°°°t°¸fÓEÐErh   r  ÚBoundBuiltinMethodVariablec                 ój   • [        XR                  U5        [        U R                  X R                  S9$ r¬  )rq  rl  rÔ  r¾   r•  s       ri   r  Ú*MethodDescriptorVariable.tp_descr_get_implÿ  s'   € ô 	# 2§¡¸Ô<Ü)¨$¯/©/¸3Ç{Á{ÑSÐSrh   r—  )rc   rd   re   rf   rá   rG   rœ  rÛ   rÈ  r   r�   rœ  rO  rÞ   rÙ  r  rÏ  rC   rA   r   r²   r•   rŠ  r  rg   r¡  r¢  s   @ri   rÁ  rÁ  ¸  s+  ø† ñð  	ðà	×	'Ñ	'ð€Nð
à×.Ñ.ðð ðð ð	ð
 
÷ðR˜#ô Rð*˜Tô *ð E×$>Ñ$>ô ð¨e×.HÑ.Hô ñ ™|Ñ,OÓPÓQÙ™<Ñ(GÓHÓIñ€Jð
Fà'ðFð �?Ñ#ðFð �S˜/Ð)Ñ*ð	Fð
 
ôFð,Tà'ðTð ðTð ð	Tð
 
&÷Tò Trh   rÁ  c                   ó&  ^ • \ rS rSrSrS1\R                  krS\R                  \R                  -  \R                  -  S\S\SS4U 4S jjrS\4S	 jrS\4S
 jrSSS\\\4   4S jrS rS\4S jrSSS\\   S\\\4   S\4S jrSS jrSrU =r$ )rÔ  i  aÌ  Bound builtin_function_or_method (PyCFunction_Type).

Produced by MethodDescriptorVariable.tp_descr_get_impl (binding a
method_descriptor to an instance, e.g. [].append) or created by the
builder for bound C methods (e.g. frozenset().__contains__,
tuple.__new__).  The backing descriptor can be a MethodDescriptorType
or a BuiltinFunctionType (for methods stored directly in type dicts).
https://github.com/python/cpython/blob/3.13/Objects/methodobject.c#L331
rl  r  r§   rk   Nc                 ó>   >• [         TU ]  " S0 UD6  Xl        X l        g r�   rš  r›  s       €ri   r�   Ú#BoundBuiltinMethodVariable.__init__  s   ø€ ô 	‰ÒÑ"˜6Ò"Ø$ŒØ�rh   c                 óš   • [        [        U R                  SS 5      SS5      nSU SU R                  R                   SU R                   S3$ )Nro  rc   Ú?zBoundBuiltinMethodVariable(rø  r&  r'  )rë   rl  rc   r  r{  s     ri   rO  Ú#BoundBuiltinMethodVariable.__repr__)  sR   € ÜÜ�D—O‘O ^°TÓ:¸JÈó
ˆð -¨X¨J°a¸¿¹×8PÑ8PÐ7QÐQSÐTX×T\ÑT\ÐS]Ð]^Ð_Ð_rh   c                 ó"   • [         R                  $ r�   )rÛ   ÚBuiltinMethodTyperý   s    ri   rÙ  Ú&BoundBuiltinMethodVariable.python_type/  r¢  rh   r¤   rO   c                 ót   •  [        U R                  5       5      S4$ ! [         a    [        U 5      S4s $ f = f)NFT)r|  r  r>   rì  r	  s     ri   r‚  Ú$BoundBuiltinMethodVariable.hash_impl2  s=   € ð	"Ü˜×/Ñ/Ó1Ó2°EÐ9Ð9øÜ2ó 	"Ü�d“8˜T�>Ò!ð	"ús   ‚ �7¶7c                 ó    • SSK Jn  U" XX#5      $ rò   rô   rö   s        ri   rù   Ú.BoundBuiltinMethodVariable.tp_richcompare_impl9  rû   rh   c                 ój  • U R                   R                  5       n[        U R                  [        R
                  5      (       a  U R                  R                  S U5      $ [        U R                  S5      (       a  U R                  R                  U5      $ [        XR                  R                  5      $ r  )
r  r  rÁ   rl  rÛ   ÚClassMethodDescriptorTyper  rŽ  rë   rc   )r‰   r  s     ri   r  Ú-BoundBuiltinMethodVariable.as_python_constant>  s}   € Ø�h‰h×)Ñ)Ó+ˆÜ�d—o‘o¤u×'FÑ'F×GÑGØ—?‘?×*Ñ*¨4°Ó5Ð5Ü�4—?‘? I×.Ñ.Ø—?‘?×*Ñ*¨3Ó/Ð/Ü�sŸO™O×4Ñ4Ó5Ð5rh   r¦   c                 óv   • U R                   R                  XR                  R                  [	        U5      U5      $ r�   )r  r  rl  rc   r²   r‰  s       ri   rŠ  Ú(BoundBuiltinMethodVariable.call_functionF  s+   € ð �x‰x×#Ñ# B¯©×(@Ñ(@Ä$ÀtÃ*ÈfÓUÐUrh   c                 ó�   • U" U R                   5        UR                  UR                  U R                  R                  5      5        g r�   r²  rÊ  s     ri   rÜ  Ú&BoundBuiltinMethodVariable.reconstructN  rµ  rh   r¿  rN  )rc   rd   re   rf   rá   rG   rœ  rÛ   rÈ  r€  rå  r   r�   rœ  rO  rÞ   rÙ  r±   r¤  rž  r‚  rù   r  r²   r•   rŠ  rÜ  rg   r¡  r¢  s   @ri   rÔ  rÔ    s  ø† ñð 	ðà	×	'Ñ	'ð€Nð

à×.Ñ.Ø
×
#Ñ
#ñ$à
×
)Ñ
)ñ*ð
ð
 ð
ð ð
ð 
÷
ð`˜#ô `ð'˜Tô 'ð"Ð7ð "¸EÀ#ÀtÀ)Ñ<Lô "ò7ð
6 Cô 6ðVà'ðVð �?Ñ#ðVð �S˜/Ð)Ñ*ð	Vð
 
ôV÷Sò Srh   rÔ  c                   ó&  ^ • \ rS rSrSrS1\R                  krS\R                  S\	SS4U 4S jjr
S\4S jrS\4S	 jrS\R                  4S
 jrS\R                  4S jr\" \" S 5      5      \" \" S 5      5      S.rSSS\S\S\4S jrSrU =r$ )ÚClassMethodDescriptorVariableiS  aU  C-level classmethod descriptor (classmethod_descriptor on a type).

CPython exposes C classmethods defined via PyMethodDef with METH_CLASS
as classmethod_descriptor objects (PyClassMethodDescr_Type).  For
example, dict.fromkeys is a classmethod_descriptor.  Like
method_descriptor, these live on the type and are unbound.
https://github.com/python/cpython/blob/3.13/Objects/descrobject.c#L756

classmethod_get binds the C method to the class (ignoring obj) via
PyCMethod_New, producing a bound builtin_function_or_method.
https://github.com/python/cpython/blob/3.13/Objects/descrobject.c#L94-L134
rl  r§   rk   Nc                 ó2   >• [         TU ]  " S0 UD6  Xl        g r�   ©r  r�   rl  ©r‰   rl  r§   r  s      €ri   r�   Ú&ClassMethodDescriptorVariable.__init__f  ó   ø€ ô
 	‰ÒÑ"˜6Ò"Ø$�rh   c                 ó|   • U R                   R                  R                  nSU SU R                   R                   S3$ )NzClassMethodDescriptorVariable(rø  r'  rz  r{  s     ri   rO  Ú&ClassMethodDescriptorVariable.__repr__n  s8   € Ø—?‘?×/Ñ/×8Ñ8ˆØ/°¨z¸¸4¿?¹?×;SÑ;SÐ:TÐTUÐVÐVrh   c                 ó"   • [         R                  $ r�   )rÛ   rå  rý   s    ri   rÙ  Ú)ClassMethodDescriptorVariable.python_typer  s   € Ü×.Ñ.Ð.rh   c                 ó   • U R                   $ r�   r‚  rý   s    ri   r  Ú0ClassMethodDescriptorVariable.as_python_constantu  r„  rh   c                 ó   • U R                   $ r�   r‚  rý   s    ri   rÏ  Ú:ClassMethodDescriptorVariable.get_real_python_backed_valuex  r„  rh   c                 ó.   • U R                   R                  $ r�   rˆ  r   s    ri   r\  Ú&ClassMethodDescriptorVariable.<lambda>|  rŠ  rh   c                 ó.   • U R                   R                  $ r�   rŒ  r   s    ri   r\  rû  }  r�  rh   rŽ  r¤   rO   r  r  c                 ó>   • [        U R                  X0R                  S9$ r¬  )rÔ  rl  r¾   r•  s       ri   r  Ú/ClassMethodDescriptorVariable.tp_descr_get_impl€  s   € ô *¨$¯/©/¸5ÏÉÑUÐUrh   r‚  )rc   rd   re   rf   rá   rG   rœ  rÛ   rå  r   r�   rœ  rO  rÞ   rÙ  r  rÏ  rC   rA   r   rÔ  r  rg   r¡  r¢  s   @ri   rì  rì  S  sâ   ø† ñð 	ðà	×	'Ñ	'ð€Nð
%à×3Ñ3ð%ð ð%ð 
÷	%ðW˜#ô Wð/˜Tô /ð E×$CÑ$Cô ð¨e×.MÑ.Mô ñ ™|Ñ,OÓPÓQÙ™<Ñ(GÓHÓIñ€Jð
	Và'ð	Vð ð	Vð ð		Vð
 
$÷	Vò 	Vrh   rì  c                   ó¤   ^ • \ rS rSrSrS1\R                  krS\S\SS4U 4S jjr	S\
4S jrS\4S	 jrS\4S
 jrSSS\S-  S\S\4S jrSrU =r$ )ÚStaticMethodVariableiŒ  ak  staticmethod descriptor wrapping a callable.

CPython's staticmethod (PyStaticMethod_Type) is a non-data descriptor
whose tp_descr_get (sm_descr_get) simply returns the wrapped callable,
ignoring both obj and type.
https://github.com/python/cpython/blob/3.13/Objects/funcobject.c#L1520
https://github.com/python/cpython/blob/3.13/Objects/funcobject.c#L1418-L1428
rl  r§   rk   Nc                 ó2   >• [         TU ]  " S0 UD6  Xl        g r�   rî  rï  s      €ri   r�   ÚStaticMethodVariable.__init__›  rñ  rh   c                 óP   • [        U R                  R                  SS5      nSU S3$ )Nrc   rÛ  zStaticMethodVariable(r'  ©rë   rl  ru  ©r‰   Ú	func_names     ri   rO  ÚStaticMethodVariable.__repr__£  s)   € Ü˜DŸO™O×4Ñ4°jÀ#ÓFˆ	Ø& y k°Ð3Ð3rh   c                 ó   • [         $ r�   )r  rý   s    ri   rÙ  Ú StaticMethodVariable.python_type§  r­  rh   c                 ó   • U R                   $ r�   r‚  rý   s    ri   r  Ú'StaticMethodVariable.as_python_constantª  r„  rh   r¤   rO   r  r  c                 óª   • U R                   (       a  [        U R                   S5      OS n[        R                  " XR                  R
                  U5      $ )Nru  )r¾   r(   rG   rÂ   rl  ru  )r‰   r¤   r  r  Úfunc_sources        ri   r  Ú&StaticMethodVariable.tp_descr_get_impl­  s:   € ð >B¿[¿[”j §¡¨jÔ9ÈdˆÜ×$Ò$ R¯©×)AÑ)AÀ;ÓOÐOrh   r‚  )rc   rd   re   rf   rá   rG   rœ  r  r   r�   rœ  rO  rÞ   rÙ  r  r  rg   r¡  r¢  s   @ri   r   r   Œ  s¢   ø† ñð 	ðà	×	'Ñ	'ð€Nð
%à ð%ð ð%ð 
÷	%ð4˜#ô 4ð˜Tô ð Lô ð	Pà'ð	Pð ˜tÑ#ð	Pð ð		Pð
 
÷	Pò 	Prh   r   c                   óž   ^ • \ rS rSrSrS1\R                  krS\S\SS4U 4S jjr	S\
4S jrS\4S	 jrS\4S
 jrSSS\S\S\4S jrSrU =r$ )ÚClassMethodVariablei¹  a}  classmethod descriptor wrapping a callable.

CPython's classmethod (PyClassMethod_Type) is a non-data descriptor
whose tp_descr_get (cm_descr_get) creates a bound method of the
wrapped callable bound to the class (via PyMethod_New).
https://github.com/python/cpython/blob/3.13/Objects/funcobject.c#L1314
https://github.com/python/cpython/blob/3.13/Objects/funcobject.c#L1215-L1227
rl  r§   rk   Nc                 ó2   >• [         TU ]  " S0 UD6  Xl        g r�   rî  rï  s      €ri   r�   ÚClassMethodVariable.__init__È  rñ  rh   c                 óP   • [        U R                  R                  SS5      nSU S3$ )Nrc   rÛ  zClassMethodVariable(r'  r  r  s     ri   rO  ÚClassMethodVariable.__repr__Ð  s)   € Ü˜DŸO™O×4Ñ4°jÀ#ÓFˆ	Ø% i [°Ð2Ð2rh   c                 ó   • [         $ r�   )rž  rý   s    ri   rÙ  ÚClassMethodVariable.python_typeÔ  s   € ÜÐrh   c                 ó   • U R                   $ r�   r‚  rý   s    ri   r  Ú&ClassMethodVariable.as_python_constant×  r„  rh   r¤   rO   r  r  c                 ó"  • U R                   (       a  [        U R                   S5      OS nUR                   (       a4  [        UR                   U R                  R                  R                  5      OS n[        U R                  R                  UUUS9$ )Nru  r  )r¾   r(   rl  ru  rc   rî  )r‰   r¤   r  r  r  Úbound_sources         ri   r  Ú%ClassMethodVariable.tp_descr_get_implÚ  ss   € ð >B¿[¿[”j §¡¨jÔ9Èdˆð �|�|ô �u—|‘| T§_¡_×%=Ñ%=×%FÑ%FÔGàð 	ô
 "Ø�O‰O×$Ñ$ØØ!Øñ	
ð 	
rh   r‚  )rc   rd   re   rf   rá   rG   rœ  rž  r   r�   rœ  rO  rÞ   rÙ  r  r  rg   r¡  r¢  s   @ri   r  r  ¹  s—   ø† ñð 	ðà	×	'Ñ	'ð€Nð
%àð%ð ð%ð 
÷	%ð3˜#ô 3ð˜Tô ð Kô ð
à'ð
ð ð
ð ð	
ð
 
÷
ò 
rh   r  c                   ó$  ^ • \ rS rSrSrS1\R                  krS\R                  S\	SS4U 4S jjr
S\4S jrS\4S	 jrS\R                  4S
 jr\" \" S 5      5      \" \" S 5      5      S.rSSS\S\S\4S jrSSS\S\S-  S\4S jrSrU =r$ )ÚMemberDescriptorVariableið  aÙ  C struct field descriptor (member_descriptor on a type).

CPython exposes C struct fields defined via PyMemberDef as
member_descriptor objects (PyMemberDescr_Type).  These are data
descriptors used by __slots__ and C extension types to provide
direct access to struct members.
https://github.com/python/cpython/blob/3.13/Objects/descrobject.c#L793

member_get reads the field via PyMember_GetOne.
https://github.com/python/cpython/blob/3.13/Objects/descrobject.c#L162-L180
rl  r§   rk   Nc                 ó2   >• [         TU ]  " S0 UD6  Xl        g r�   rî  rï  s      €ri   r�   Ú!MemberDescriptorVariable.__init__  rñ  rh   c                 ó|   • U R                   R                  R                  nSU SU R                   R                   S3$ )NzMemberDescriptorVariable(rø  r'  rz  r{  s     ri   rO  Ú!MemberDescriptorVariable.__repr__
  rÆ  rh   c                 ó"   • [         R                  $ r�   )rÛ   ÚMemberDescriptorTyperý   s    ri   rÙ  Ú$MemberDescriptorVariable.python_type  rÊ  rh   c                 ó   • U R                   $ r�   r‚  rý   s    ri   r  Ú+MemberDescriptorVariable.as_python_constant  r„  rh   c                 ó.   • U R                   R                  $ r�   rˆ  r   s    ri   r\  Ú!MemberDescriptorVariable.<lambda>  rŠ  rh   c                 ó.   • U R                   R                  $ r�   rŒ  r   s    ri   r\  r(    r�  rh   rŽ  r¤   rO   r  r  c           
      ó(  • [        XR                  U5        SSKJn  U R                  R                  nUR                  5       nU[        L a!  U" SU S[        U5      R                   35      e U R                  R                  U[        U5      5      nUR                  =(       a    [        UR                  U5      n[        R                  " UWU5      $ ! [        [        4 a-    [        [        US[        U5      R                   SU S3/S9   N}f = f)Nr=   ©Ú_UnhandledDescriptorErrorz"Cannot resolve member_descriptor 'ú' on Ú'ú' object has no attribute 'r  )rq  rl  rõ   r,  rc   rÏ  rE   rÞ   r  ré   rô  r    r¾   r(   rG   rÂ   )	r‰   r¤   r  r  r,  rK  r¬  ÚresolvedÚresult_sources	            ri   r  Ú*MemberDescriptorVariable.tp_descr_get_impl  s   € ô 	# 2§¡¸Ô<Ý>à—O‘O×,Ñ,ˆ	Ø×4Ñ4Ó6ˆ	ØœÒ&Ù+Ø4°Y°Kð @Ü˜3“i×(Ñ(Ð)ð+óð ð		Ø—‘×.Ñ.¨y¼$¸y»/ÓJˆHð Ÿ
™
×H¤z°#·*±*¸iÓ'HˆÜ×$Ò$ R¨°=ÓAÐAøô ¤	Ð*ó 	Ü$ÜØàœ˜Y›×0Ñ0Ð1Ð1LÈYÈKÐWXÐYðôð	ús   Á.%C Ã:DÄDrª  c                 óè   • Uc  [         R                  " 5       OUnUR                  R                  R	                  X R
                  R                  U5        [         R                  R                  S 5      $ r�   )	r   rù  rÍ   rÎ   r!  rl  rc   rI   rÄ   )r‰   r¤   r  rª  Ústoreds        ri   Útp_descr_set_implÚ*MemberDescriptorVariable.tp_descr_set_impl9  sS   € ð 16±”×*Ò*Ô,À5ˆØ
�	‰	×Ñ×)Ñ)¨#¯©×/GÑ/GÈÔPÜ×)Ñ)×0Ñ0°Ó6Ð6rh   r‚  )rc   rd   re   rf   rá   rG   rœ  rÛ   r#  r   r�   rœ  rO  rÞ   rÙ  r  rC   rA   r   r  r5  rg   r¡  r¢  s   @ri   r  r  ð  s   ø† ñ
ð 	ðà	×	'Ñ	'ð€Nð
%à×.Ñ.ð%ð ð%ð 
÷	%ðR˜#ô Rð*˜Tô *ð E×$>Ñ$>ô ñ ™|Ñ,OÓPÓQÙ™<Ñ(GÓHÓIñ€Jð
Bà'ðBð ðBð ð	Bð
 
ôBð@7à'ð7ð ð7ð  Ñ%ð	7ð
 
÷7ò 7rh   r  c                   óh  ^ • \ rS rSrSrS1\R                  krS\R                  S\	SS4U 4S jjr
S\4S jrS\R                  4S	 jr    SS jrS\" \S5      0r\" \" S 5      5      \" \" S 5      5      S.rS\4S jrS\R                  4S jrS
SSSS\SS4S jrS
SS\S\S\4S jrSrU =r$ )ÚGetSetDescriptorVariableiI  aß  C getter/setter descriptor (getset_descriptor on a type).

CPython exposes C getter/setter pairs defined via PyGetSetDef as
getset_descriptor objects (PyGetSetDescr_Type).  These are data
descriptors used for computed attributes backed by C functions
(e.g. object.__class__, type.__dict__).
https://github.com/python/cpython/blob/3.13/Objects/descrobject.c#L830

getset_get calls the C getter function.
https://github.com/python/cpython/blob/3.13/Objects/descrobject.c#L183-L197
rl  r§   rk   Nc                 ó2   >• [         TU ]  " S0 UD6  Xl        g r�   rî  rï  s      €ri   r�   Ú!GetSetDescriptorVariable.__init__[  s   ø€ Ü‰ÒÑ"˜6Ò"Ø$�rh   c                 ó|   • U R                   R                  R                  nSU SU R                   R                   S3$ )NzGetSetDescriptorVariable(rø  r'  rz  r{  s     ri   rO  Ú!GetSetDescriptorVariable.__repr___  rÆ  rh   c                 ó   • U R                   $ r�   r‚  rý   s    ri   rÏ  Ú5GetSetDescriptorVariable.get_real_python_backed_valuec  r„  rh   r¤   rO   c                 ó    • U R                   c  g [        U R                   S5      n[        R                  " XR                  R
                  U5      $ r  )r¾   r(   rG   rÂ   rl  r  r  s      ri   Ú_getset_descriptor_getÚ/GetSetDescriptorVariable._getset_descriptor_getf  s>   € ð �;‰;ÑØÜ˜DŸK™K¨Ó3ˆÜ×$Ò$ R¯©×)@Ñ)@À&ÓIÐIrh   r  c                 ó.   • U R                   R                  $ r�   rˆ  r   s    ri   r\  Ú!GetSetDescriptorVariable.<lambda>s  rŠ  rh   c                 ó.   • U R                   R                  $ r�   rŒ  r   s    ri   r\  rC  t  r�  rh   rŽ  c                 ó   • gr—  ra   rý   s    ri   rŠ  Ú+GetSetDescriptorVariable.is_python_constantw  rš  rh   c                 ó   • U R                   $ r�   r‚  rý   s    ri   r  Ú+GetSetDescriptorVariable.as_python_constantz  r„  rh   r÷   rG   rø   c                 ó    • SSK Jn  U" XX#5      $ r¹  r»  r¼  s        ri   rù   Ú,GetSetDescriptorVariable.tp_richcompare_impl}  r¾  rh   r  r  c           
      ó*  • U R                   R                  n[        XR                   U5        UR                  5       nU[        L a'  SSKJn  U" SU S[        U5      R                   35      e U R                   R                  U[        U5      5      nUR                  =(       a    [        UR                  U5      nUR                  (       ap  U R                   R                  [        L aS  US;   aM  [        R                   " [        U5      US 5      n	X�R                   La  S nOUS	:X  a  [#        UR                  5      n[$        R&                  " UWU5      $ ! [        [        4 a-    [        [        US[        U5      R                   SU S3/S9   Nþf = f)
Nr=   r+  z"Cannot resolve getset_descriptor 'r-  r.  r/  r  )rß   rs  Ú__mro__rL  )rl  rc   rq  rÏ  rE   rõ   r,  rÞ   r  ré   rô  r    r¾   r(   ro  rç   rè   r0   rG   rÂ   )
r‰   r¤   r  r  rK  r¬  r,  r0  r1  Ústatic_descs
             ri   r  Ú*GetSetDescriptorVariable.tp_descr_get_impl„  sc  € ð —O‘O×,Ñ,ˆ	ô
 	# 2§¡¸Ô<Ø×4Ñ4Ó6ˆ	ØœÒ&ÝBá+Ø4°Y°Kð @Ü˜3“i×(Ñ(Ð)ð+óð ð		Ø—‘×.Ñ.¨y¼$¸y»/ÓJˆHð Ÿ
™
×H¤z°#·*±*¸iÓ'Hˆà�J�JØ—‘×,Ñ,´Ò4ØÐGÓGô
 "×0Ò0´°i³À)ÈTÓRˆKØ§/¡/Ò1Ø $‘Ø˜iÓ'Ü -¨c¯j©jÓ 9�Ü×$Ò$ R¨°=ÓAÐAøô- ¤	Ð*ó 	Ü$ÜØàœ˜Y›×0Ñ0Ð1Ð1LÈYÈKÐWXÐYðôð	ús   Á.%E Å:FÆFr‚  )r¤   rO   rk   rð   )rc   rd   re   rf   rá   rG   rœ  rÛ   ÚGetSetDescriptorTyper   r�   rœ  rO  rÏ  r@  r@   rŸ  rC   rA   r   rž  rŠ  r  rù   r  rg   r¡  r¢  s   @ri   r8  r8  I  s4  ø† ñ
ð 	ðà	×	'Ñ	'ð€Nð
% 5×#=Ñ#=ð %Èð %ÐQU÷ %ðR˜#ô Rð¨e×.HÑ.Hô ðJØ-ðJà	!ôJð 	‘6Ð0°$Ó7ð€Iñ
 ™|Ñ,OÓPÓQÙ™<Ñ(GÓHÓIñ€Jð
 Dô ð E×$>Ñ$>ô ðEØ-ðEØ6GðEØMPðEà	ôEð.Bà'ð.Bð ð.Bð ð	.Bð
 
÷.Bò .Brh   r8  c                   ó¤   ^ • \ rS rSrSrS1\R                  krS\S\SS4U 4S jjr	S\
4S jrS\4S	 jrS\4S
 jrSSS\S-  S\S\4S jrSrU =r$ )ÚPropertyVariableiµ  a-  Python property descriptor.

The property type is a data descriptor with tp_descr_get =
property_descr_get which calls fget(obj) to compute the value.
https://github.com/python/cpython/blob/3.13/Objects/descrobject.c#L2073
https://github.com/python/cpython/blob/3.13/Objects/descrobject.c#L1660-L1693
rl  r§   rk   Nc                 ó2   >• [         TU ]  " S0 UD6  Xl        g r�   rî  rï  s      €ri   r�   ÚPropertyVariable.__init__Ã  rñ  rh   c                 óP   • [        U R                  R                  SS5      nSU S3$ )Nrc   rÛ  zPropertyVariable(r'  )rë   rl  Úfget)r‰   Ú	fget_names     ri   rO  ÚPropertyVariable.__repr__Ë  s)   € Ü˜DŸO™O×0Ñ0°*¸cÓBˆ	Ø" 9 +¨QÐ/Ð/rh   c                 ó   • [         $ r�   )rw  rý   s    ri   rÙ  ÚPropertyVariable.python_typeÏ  s   € Üˆrh   c                 ó   • U R                   $ r�   r‚  rý   s    ri   r  Ú#PropertyVariable.as_python_constantÒ  r„  rh   r¤   rO   r  r  c                 óØ   • Uc  U $ U R                   (       a  [        U R                   S5      OS n[        R                  " XR                  R
                  USS9nUR                  X/0 5      $ )NrU  T)r¾   rÐ  )r¾   r(   rG   rÂ   rl  rU  rŠ  )r‰   r¤   r  r  Úfget_sourceÚfget_vts         ri   r  Ú"PropertyVariable.tp_descr_get_implÕ  s^   € ð ‰;ØˆKØ9=¿¿”j §¡¨fÔ5È$ˆÜ!×'Ò'Ø—‘×$Ñ$¨[À$ñ
ˆð ×$Ñ$ R¨°Ó3Ð3rh   r‚  )rc   rd   re   rf   rá   rG   rœ  rw  r   r�   rœ  rO  rÞ   rÙ  r  r  rg   r¡  r¢  s   @ri   rQ  rQ  µ  sœ   ø† ñð 	ðà	×	'Ñ	'ð€Nð
%àð%ð ð%ð 
÷	%ð0˜#ô 0ð˜Tô ð Hô ð4à'ð4ð ˜tÑ#ð4ð ð	4ð
 
÷4ò 4rh   rQ  c                   óâ   ^ • \ rS rSrSrS1\R                  krSSS\SS4U 4S jjrS\	4S	 jr
S\4S
 jrSS jrS\" \" S 5      5      0rSSS\S-  S\S\4S jrSSS\S\S-  S\4S jrSrU =r$ )ÚTupleGetterVariableiæ  a�  _tuplegetter descriptor used by namedtuple for field access.

_tuplegetter is a C data descriptor that stores an index and returns
self[index] on instance access. When accessed on the class (obj=None),
it returns the descriptor itself.
https://github.com/python/cpython/blob/3.13/Modules/_collectionsmodule.c#L2735
https://github.com/python/cpython/blob/3.13/Modules/_collectionsmodule.c#L2636-L2663
rl  ú_collections._tuplegetterr§   rk   Nc                 ó2   >• [         TU ]  " S0 UD6  Xl        g r�   rî  rï  s      €ri   r�   ÚTupleGetterVariable.__init__õ  rñ  rh   c                 óT   • U R                   R                  5       u  nu  p#SU SU< S3$ )NzTupleGetterVariable(index=z, doc=r'  )rl  Ú
__reduce__)r‰   r  r¸   Údocs       ri   rO  ÚTupleGetterVariable.__repr__ý  s/   € ØŸ™×2Ñ2Ó4‰ˆ‰:ˆCØ+¨C¨5°°s±g¸QÐ?Ð?rh   c                 ó"   • [         R                  $ r�   )Ú_collectionsÚ_tuplegetterrý   s    ri   rÙ  ÚTupleGetterVariable.python_type  s   € Ü×(Ñ(Ð(rh   c                 ó   • U R                   $ r�   r‚  rý   s    ri   r  Ú&TupleGetterVariable.as_python_constant  r„  rh   rá   c                 ó.   • U R                   R                  $ r�   )rl  rá   r   s    ri   r\  ÚTupleGetterVariable.<lambda>	  s   € ¸1¿<¹<×;OÒ;Orh   r¤   rO   r  r  c                 ó®   • Uc  U $ U R                   R                  5       u  nu  pTUR                  US[        R                  R                  U5      /0 5      $ )NÚ__getitem__)rl  rf  r  r   rI   rÄ   )r‰   r¤   r  r  r  r¸   s         ri   r  Ú%TupleGetterVariable.tp_descr_get_impl  sT   € ð ‰;ØˆKØ—o‘o×0Ñ0Ó2‰ˆ‰8ˆCØ�‰Ø�¤	× :Ñ :× AÑ AÀ#Ó FÐGÈó
ð 	
rh   rª  c                 ó0   • Uc  SOSn[        [        X/S9  g )Nzcan't delete attributezcan't set attributer  r€  )r‰   r¤   r  rª  rR  s        ri   r5  Ú%TupleGetterVariable.tp_descr_set_impl  s   € ð +0©-Ñ&Ð=RˆÜ ¤°¸%Ó@rh   r‚  )rk   rb  )rc   rd   re   rf   rá   rG   rœ  r   r�   rœ  rO  rÞ   rÙ  r  rC   rA   r   r  r5  rg   r¡  r¢  s   @ri   ra  ra  æ  sä   ø† ñð 	ðà	×	'Ñ	'ð€Nð
%à/ð%ð ð%ð 
÷	%ð@˜#ô @ð)˜Tô )ôð
 ™V¡LÑ1OÓ$PÓQÐR€Jð
à'ð
ð ˜tÑ#ð
ð ð	
ð
 
ô
ð
Aà'ð
Að ð
Að  Ñ%ð	
Að
 
÷
Aò 
Arh   ra  r�   )Úrá   rj  ri  r+  r  Úimportlib.metadatarb  Úimportlib.utilrç   rÜ   r­  r¨  Úrer(  r«  rÛ   r”  Úcollections.abcr   r   r   r   r   r   r	   r
   r   r   Útyping_extensionsr   Úweakrefr   rm   Útorch._dynamo.excr   Útorch._guardsr   rS  r   r÷  r   r   r   r   Úbytecode_transformationr   r   r   ró  r   r   r   r   r   r   r    r!   r"   r#   r$   r%   Úguardsr&   r'   r¾   r(   r)   r*   r+   r,   r-   r.   r/   r0   r1   rn   r2   r3   r4   r5   r6   r7   r8   r9   r:   r;   r<   rë  r>   r?   r@   rA   rB   rC   rD   rE   rF   rG   r�  rI   Úuser_definedrJ   Ú#torch.distributed.fsdp._fully_shardrK   ÚModuleNotFoundErrorÚtorch._dynamo.codegenrL   rÙ  rM   rN   rO   Ú#torch._dynamo.variables.ctx_managerrP   rÎ  rQ   rR   rž  rS   rT   rð  rU   rV   r…   r‡   r�  r[  rv  r  r]   rß   r3  r_   Ú	lru_cacherq   rs   r    rô  r¢   r•   rœ  r¼   r«   rÊ   r�  rÓ   r±   rŸ  rà   rê   rí   rï   r¤  r¡  ry  r»  rR  rT  rp  rî  r¦  rÂ  r²   rA  rÖ  r$  ÚsearchÚmatchÚ	fullmatchÚcompileÚsubÚsubnr¦  ÚfindallÚescaperg  rj  r€  rŠ  rÅ  rÓ  rØ  rÚ  r  r  rH  ry  rŒ  r�  rŽ  r�  r‘  rÝ  rº  rÊ  rË  r  r#  r)  r3  r=  r^  r`  rÈ  r  r#  rO  rq  rs  r“  rÁ  rÔ  rì  r   r  r  r8  rQ  ra  ra   rh   ri   Ú<module>rŽ     sc  ðòó. Û Û Û Û Û Û Û Û Û 	Û 	Û 
Û Û Û ß .ß (ß G× GÝ #Ý %ã Ý 4Ý  Ý 3ç >Ó >ß VÑ V÷÷ ÷ ó ÷ 1÷÷ ÷ ÷÷ ÷ ñ ÷÷ ÷ õ 'Ý 3ðÝEö
 Ý/÷ñ õ
 L÷÷
 6Ý&ñ ˆT˜ # s (Ñ+Ñ,€Ø€
Ø€Ù&Ò'OÓPÐ Ù"+¨Y¨KÓ"8Ð ð DÐ ñ ,=Ó+>€Ð˜s C˜xÑ(Ó >ô	Ð0ô 	ð ×Òð¨:ó ó ð÷
ñ 
ð>�Lð  \ô ô	˜	ô 	ð\Ø
ð\à#ð\ð ˜‰}ð\ð �3‰-ð	\ð
 ��c�‰Nð\ð 
ˆ#ˆÐ
Ñô\ð@ HLñHØ#ðHØ*-ðHØ7=À±}ðHàõHð.Ð4ð .¸dÀ3ÈÀ8¹nð .ÐQUô .ð Ø'ð à��oÐ%Ñ&ð ð �.Š.ð ð 
ô	 ð*Ø
�.Š.ðà�C˜�H‰~ðð ðð �F˜C�KÑ  4Ñ'ð	ð
 �8‰_˜tÑ#ðð �S˜#�X‘ Ñ%ðð �c˜3�h‘ $Ñ&ðð ×Ñôò:Ð ð-Ø#ð-Ø)/ð-Ø9?À$¹ð-ØNQð-àô-ô:I˜ô IôXGÐ3ô GôT!7Ð3ô !7ôH)Ð":ô )ôXw ?ô wôt
Ø ô
ô]6Ð%=ô ]6ô@
Ø"ô
ô"JÐ-ô JôZ >Ð 2ô  >ôF>Ð"6ô >ðD$Ø#ð$à��c�Ñð$ð ð$ð ˆÑ
ð	$ð
 ��oÐ%Ñ&ð$ð ô$ôNz)Ð!9ô z)ôz	/>Ð(Bô />ðf ‡I‚IØ‡H‚HØ‡L‚LØ‡J‚JØ‡F‚FØ‡G‚GØ‡H‚HØ‡J‚JØ‡I‚Ið
Ð ô\
˜?ô \
ô~ >Ð"6ô  >ôFL Ð":ô L ô^Ð ;ô ð0 d¨3°¨8¡nô ð
/Ø#ð
/Ø)1°#°s°(Ñ);ð
/àô
/ôqDÐ(<ô qDôh"
Ð$8ô "
ôJs˜ô sôlN ô Nôb$"˜/ô $"÷Nó ôO
˜>ô O
ñd $8Ó#9Ð  ô3&˜?ô 3&ôl')¨ô ')ôT /ô ôDI
¨oô I
ôX
¨ô 
ô&%JÐ(<ô %JôP68Ð';ô 68ôr
Ð';ô 
ð:/SØ#ð/Sà˜˜D˜Ñ!ð/Sð ð/Sð 
ô	/Sôd!- ô !-ðZ
Ø#ð
à×*Ò*Ø×!Ò!ñ"à× Ò ñ!ð × Ò ñ!ð
ð 
ð
ð 
ô
ôBVO ô VOôrkE˜Oô kEô\RT˜ô RTôjCS ô CSôL6V Oô 6Vôr*P˜?ô *PôZ4
˜/ô 4
ônV7˜ô V7ôriB˜ô iBôX.4�ô .4ôb=A˜/õ =AøðqS ó ØÓðús   ÄU/ Õ/U;Õ:U;