Ë
    g^(hž ã                   óf  — d Z ddlZddlZddlZddlZddlZddlZddlZddlZddl	Z	ddl
Z
ddlZddlZddlZddlmZ ddlmZ ddlZddlZddlmZ ddlmZ ddlmZmZ dd	lmZ dd
lmZ ddl m!Z!m"Z"m#Z#m$Z$ ddl%m&Z&m'Z' ddl(m)Z)m*Z*m+Z+m,Z,m-Z-m.Z. ddl/m0Z0m1Z1m2Z2m3Z3m4Z4m5Z5m6Z6m7Z7m8Z8m9Z9m:Z:m;Z;m<Z<m=Z=m>Z>m?Z?m@Z@mAZA ddlBmCZCmDZDmEZE ddlFmGZG 	 ddlHZI	 ddlKmLZL erddlOmPZP d„ ZQd„ ZR G d„ deE«      ZS G d„ deS«      ZT G d„ deT«      ZU G d„ d«      ZVd„ ZW G d„ d eS«      ZX G d!„ d"eX«      ZY G d#„ d$eX«      ZZ G d%„ d&eX«      Z[ G d'„ d(eX«      Z\ G d)„ d*«      Z] G d+„ d,eE«      Z^ G d-„ d.eX«      Z_ G d/„ d0eX«      Z` G d1„ d2eX«      Za G d3„ d4eX«      Zb G d5„ d6eX«      Zcy# eJ$ r dZIY ŒÐw xY w# eM$ r  eNd«      ZLY ŒÜw xY w)7aý  
This module contains variable classes for handling user-defined objects in Dynamo's tracing system.

The key classes are:
- UserDefinedVariable: Base class for representing custom Python objects
- UserDefinedClassVariable: Handles Python class objects/types
- UserDefinedObjectVariable: Fallback class for instance objects, with support for method calls,
  attribute access, and other Python object behaviors.
- Specialized subclasses for common patterns:
  - UserDefinedDictVariable: For dict subclasses
  - UserDefinedTupleVariable: For tuple subclasses
  - FrozenDataClassVariable: Special handling of frozen dataclasses
  - MutableMappingVariable: For collections.abc.MutableMapping subclasses

Dynamo specializes to VariableTracker subclasses like FrozenDataClassVariable if available; if no
subclass qualifies, it falls back to UserDefinedObjectVariable.

These classes help Dynamo track and handle arbitrary Python objects during tracing,
maintaining proper semantics while enabling optimizations where possible.
é    N)ÚTYPE_CHECKING)Úis_typeddict)ÚTracingContext)Ú"is_traceable_wrapper_subclass_typeé   )Ú	polyfillsÚ	variables)Úcreate_call_function)Ú$do_not_convert_to_tracable_parameter)Úhandle_observed_exceptionÚObservedAttributeErrorÚraise_observed_exceptionÚunimplemented)ÚGuardBuilderÚinstall_guard)Ú
AttrSourceÚCallFunctionNoArgsSourceÚGetItemSourceÚRandomValueSourceÚ
TypeSourceÚUnspecializedParamBufferSource)Úbuild_checkpoint_variableÚcheck_constant_argsÚcmp_name_to_op_mappingÚdict_methodsÚget_custom_getattrÚhas_torch_functionÚis_frozen_dataclassÚis_namedtuple_clsÚis_utils_checkpointÚis_wrapper_or_member_descriptorÚistypeÚlist_methodsÚnamedtuple_fieldsÚobject_has_getattributeÚproxy_args_kwargsÚtensortype_to_dtypeÚtuple_methodsÚunpatched_nn_module_getattré   )ÚAttributeMutationExistingÚValueMutationNewÚVariableTracker)ÚDefaultDictVariable)Ú
PyTreeSpec)ÚInstructionTranslatorc                 óF   — | t         j                  t        j                  fv S ©N)ÚobjectÚ__setattr__ÚBaseException)Úvals    úb/var/www/skyplay_api_hub/venv/lib/python3.12/site-packages/torch/_dynamo/variables/user_defined.pyÚis_standard_setattrr8   f   s   € Ø”6×%Ñ%¤}×'@Ñ'@ÐAÐAÐAó    c                 ó  — g }	 ddl m} ddlm} |j	                  |«       |j	                  |«       t        j                  j                  d«      x}r|j	                  |j                  «       | |v S # t
        $ r Y ŒKw xY w)Nr   )ÚRaisesContext)ÚWarningsCheckerz!torch.testing._internal.jit_utils)
Ú_pytest.python_apir;   Ú_pytest.recwarnr<   ÚappendÚImportErrorÚsysÚmodulesÚgetÚ&_AssertRaisesRegexWithHighlightContext)ÚctxÚf_ctxsr;   r<   Úms        r7   Úis_forbidden_context_managerrH   j   su   € Ø€FðÝ4Ý3à�‰�mÔ$Ø�‰�oÔ&ô �K‰K�O‰OÐ?Ó@Ð@€qÐ@Ø�‰�a×>Ñ>Ô?à�&ˆ=Ðøô ò Ùðús   „.A2 Á2	A>Á=A>c                   ó   — e Zd ZU eed<   y)ÚUserDefinedVariableÚvalueN)Ú__name__Ú
__module__Ú__qualname__r3   Ú__annotations__© r9   r7   rJ   rJ   |   s   … Ø„Mr9   rJ   c                   ó”  ‡ — e Zd ZU ee   ed<   dˆ fd„Zd„ Zd„ Zde	fd„Z
e ej                  d«      d„ «       «       Ze ej                  d«      d	„ «       «       Ze ej                  d«      d
„ «       «       Zed„ «       Zd„ Zdd„Zddde	ddfˆ fd„Zdd„Z	 	 	 	 	 	 dˆ fd„Z	 	 	 	 	 	 	 	 dˆ fd„Zd„ Zddde	ddfˆ fd„Zdˆ fd„Zˆ xZS )ÚUserDefinedClassVariablerK   ÚreturnNc                 ó2   •— t        ‰| �  di |¤Ž || _        y ©NrP   )ÚsuperÚ__init__rK   ©ÚselfrK   ÚkwargsÚ	__class__s      €r7   rW   z!UserDefinedClassVariable.__init__ƒ   s   ø€ Ü‰ÑÑ"˜6Ò"Øˆ�
r9   c                 ó   — | j                   S r2   ©rK   ©rY   s    r7   Úas_python_constantz+UserDefinedClassVariable.as_python_constant‡   ó   € Ø�z‰zÐr9   c                 ó   — | j                   S r2   r]   r^   s    r7   Úas_proxyz!UserDefinedClassVariable.as_proxyŠ   r`   r9   c                 óN   — | j                   j                  › d| j                  › d�S ©Nú(ú))r[   rL   rK   r^   s    r7   Ú__repr__z!UserDefinedClassVariable.__repr__�   s$   € Ø—.‘.×)Ñ)Ð*¨!¨D¯J©J¨<°qÐ9Ð9r9   c                  ó~   — t         j                  t         j                  t         j                  t         j                  hS r2   )ÚtorchÚdeviceÚfinfoÚiinfoÚSizerP   r9   r7   Ú_constant_fold_classesz/UserDefinedClassVariable._constant_fold_classes�   s*   € ô �L‰LÜ�K‰KÜ�K‰KÜ�J‰Jð	
ð 	
r9   c                  ón  — t         j                  t         j                  j                  t         j                  j                  h} t        t         d«      rC| j                  t         j                  j                  t         j                  j                  h«       t        t        j                  «       «      | z  S )NÚhpu)ri   ÚTensorÚcudaÚStreamÚEventÚhasattrÚupdaterp   Úsetr'   Úkeys)Ú_in_graph_class_lists    r7   Ú_in_graph_classesz*UserDefinedClassVariable._in_graph_classesš   s�   € ô �L‰LÜ�J‰J×ÑÜ�J‰J×Ñð 
Ðô
 ”5˜%Ô Ø ×'Ñ'ä—I‘I×$Ñ$Ü—I‘I—O‘Oðôô Ô&×+Ñ+Ó-Ó.Ð1EÑEÐEr9   c            	      ó†  — t        t        «      D � cg c]X  } t        t        t        | «      t        «      r8t        t        t        | «      t        «      rt        t        | «      j                  ‘ŒZ }} t        j                  t        j                  t        j                  t        j                  hj                  |«      S c c} w r2   )ÚdirÚbuiltinsÚ
isinstanceÚgetattrÚtypeÚ
issubclassr5   Ú__new__r3   ÚdictÚtupleÚlistÚunion)ÚnameÚ
exceptionss     r7   Úsupported_c_new_functionsz2UserDefinedClassVariable.supported_c_new_functions¬   s�   € ô
 œH›ö
àÜœ'¤(¨DÓ1´4Ô8Üœ7¤8¨TÓ2´MÔBô ”H˜dÓ#×+Ó+ð
ˆ
ð 
ô �N‰NÜ�L‰LÜ�M‰MÜ�L‰Lð	
÷
 ‰%�
Ó
ð	ùò
s   ’AB>c                 ó.   — | t         j                  «       v S r2   )rR   r‰   r]   s    r7   Úis_supported_new_methodz0UserDefinedClassVariable.is_supported_new_method¼   s   € ð Ô0×JÑJÓLÐLÐLr9   c                 ó:   — | j                   | j                  «       v S r2   )rK   rn   r^   s    r7   Úcan_constant_fold_throughz2UserDefinedClassVariable.can_constant_fold_throughÂ   s   € Ø�z‰z˜T×8Ñ8Ó:Ð:Ð:r9   Útxr0   c                 ó  — |j                   j                  j                  | |«      rC|j                   j                  j                  | |d¬«      }t	        |t
        j                  «       S || j                  j                  v S ©NT©Ú
deleted_ok©	ÚoutputÚside_effectsÚhas_pending_mutation_of_attrÚ	load_attrr~   r	   ÚDeletedVariablerK   Ú__dict__©rY   rŽ   ÚkeyÚmutated_attrs       r7   Úhas_key_in_generic_dictz0UserDefinedClassVariable.has_key_in_generic_dictÅ   ói   € Ø�9‰9×!Ñ!×>Ñ>¸tÀSÔIØŸ9™9×1Ñ1×;Ñ;¸DÀ#ÐRVÐ;ÓWˆLÜ! ,´	×0IÑ0IÓJÐJÐJà�d—j‘j×)Ñ)Ð)Ð)r9   r‡   r-   c                 ó,  •— ddl m}m} | j                  �t	        | j                  |«      nd }|dk(  r%|j                  | j                  j                  «      S |dk(  r%|j                  | j                  j                  «      S |dk(  rd|i}t        j                  | |fi |¤ŽS | j                  t        j                  t        j                  hv r|dk(  rt        ‰	| �=  ||«      S 	 t!        j"                  | j                  |«      }|dk(  r%t*        j-                  «      rt        ‰	| �=  ||«      S |t.        v r2t1        t2        j4                  «      st        j                  | ||¬	«      S t1        t6        «      r0t9        j:                  ||j=                  | j                  «      |«      S t1        |t>        «      rwt1        |j@                  tB        «      r;t        jD                  |j@                  jF                  «      jI                  || gi «      S t        jJ                  |j@                  | |¬	«      S t1        |t2        jL                  «      r3|j=                  d | j                  «      }t9        j:                  |||«      S |r]t!        jN                  |«      stP        jR                  d
k\  r5|dk(  r0t9        j:                  ||j=                  | j                  «      |«      S |jU                  |«      r|j                  |«      S t1        |tV        jX                  «      r ||«      S |t[        | j                  di «      v s>| j                  j\                  j_                  d«      s| j                  j\                  dk(  r|rt9        j:                  |||«      S |r7t!        j`                  |«      s"tc        |«      st9        j:                  |||«      S t        ‰	| �=  ||«      S # t$        $ r2 t'        | j                  «      t&        u rt)        t$        |«       nd }Y �Œw xY w)Nr*   )ÚConstantVariableÚEnumVariablerL   rN   r™   ÚsourceÚfromkeysr‚   ©r¢   )é   é   Ú__mro__ztorch.ri   )2Ú r    r¡   r¢   r   ÚcreaterK   rL   rN   r	   ÚGetAttrVariableÚcollectionsÚOrderedDictÚdefaultdictrV   Úvar_getattrÚinspectÚgetattr_staticÚAttributeErrorr€   r   rR   r‹   r   r~   ÚtypesÚFunctionTypeÚstaticmethodr-   ÚbuildÚ__get__ÚclassmethodÚ__func__ÚpropertyÚUserFunctionVariableÚfgetÚcall_functionÚUserMethodVariableÚClassMethodDescriptorTypeÚismemberdescriptorrA   Úversion_infoÚ
is_literalÚenumÚEnumr   rM   Ú
startswithÚismethoddescriptorr!   )
rY   rŽ   r‡   r    r¡   r¢   ÚoptionsÚobjÚfuncr[   s
            €r7   r®   z$UserDefinedClassVariable.var_getattrÌ   sV  ø€ ß4à26·+±+Ð2I”˜DŸK™K¨Ô.Ètˆà�:ÒØ#×*Ñ*¨4¯:©:×+>Ñ+>Ó?Ð?Ø�^Ò#Ø#×*Ñ*¨4¯:©:×+BÑ+BÓCÐCØ�ZÒØ Ð(ˆGÜ×,Ñ,¨T°4ÑC¸7ÑCÐCð �J‰Jœ;×2Ñ2´K×4KÑ4KÐLÑLØ˜
Ò"ä‘7Ñ& r¨4Ó0Ð0ð	Ü×(Ñ(¨¯©°TÓ:ˆCð �9ÒÔ!9×!QÑ!QÐRUÔ!VÜ‘7Ñ& r¨4Ó0Ð0àÔ)Ñ)´*¸SÄ%×BTÑBTÔ2UÜ×,Ñ,¨T°4ÀÔGÐGä�cœ<Ô(Ü"×(Ñ(¨¨S¯[©[¸¿¹Ó-DÀfÓMÐMÜ˜œ[Ô)Ü˜#Ÿ,™,¬Ô1Ü ×5Ñ5°c·l±l×6GÑ6GÓH×VÑVØ˜˜ óð ô ×/Ñ/°·±¸dÈ6ÔRÐRÜ˜œU×<Ñ<Ô=ð —;‘;˜t T§Z¡ZÓ0ˆDÜ"×(Ñ(¨¨T°6Ó:Ð:Ùä×)Ñ)¨#Ô.Ü× Ñ  GÒ+°¸	Ò0Aä&×,Ñ,¨R°·±¸T¿Z¹ZÓ1HÈ&ÓQÐQà×&Ñ& sÔ+Ø#×*Ñ*¨3Ó/Ð/Ü˜œTŸY™YÔ'Ù Ó$Ð$Ø”W˜TŸZ™Z¨°RÓ8Ñ8Ø�J‰J×!Ñ!×,Ñ,¨XÔ6Ø�z‰z×$Ñ$¨Ò/áÜ&×,Ñ,¨R°°fÓ=Ð=ñ Ü×.Ñ.¨sÔ3Ü3°CÔ8ä"×(Ñ(¨¨S°&Ó9Ð9ä‰wÑ" 2 tÓ,Ð,øôi ò 	Ü�D—J‘JÓ¤4Ñ'Ü(¬¸Õ<ð �úð	ús   Ã$ O Ï7PÐPc                 óB  ‡‡‡‡	‡
‡‡— ddl m} |j                  d«      |j                  d«      |j                  d«      |j                  d«      |j                  d«      |j                  d«      fd„} ||i |¤Ž\  ŠŠŠŠ	Š
Šˆˆˆ	ˆ
ˆˆˆfd„}t        j                  |«      S )	aj  
        functional: input, target, weight=None, size_average=None, ignore_index=- 100, reduce=None, reduction='mean',
        label_smoothing=0.0

        non functional ctor: weight=None, size_average=None, ignore_index=- 100, reduce=None, reduction='mean',
        label_smoothing=0.0

        non functional loss call: input, target, optional_output
        r*   ©r    NiœÿÿÿÚmeang        c                 ó   — | |||||fS r2   rP   )ÚweightÚsize_averageÚignore_indexÚreduceÚ	reductionÚlabel_smoothings         r7   Únormalize_argszIUserDefinedClassVariable._call_cross_entropy_loss.<locals>.normalize_args(  s    € ð ØØØØØðð r9   c                 óÄ   •— ddl m}  |‰ ‰j                  j                  dt        j
                  j                  j                  gt        | |‰	‰‰‰‰‰gi «      ¢­Ž ¬«      S )Nr*   ©Úwrap_fx_proxyr¼   ©rŽ   Úproxy)	ÚbuilderrÖ   r”   Úcreate_proxyri   ÚnnÚ
functionalÚcross_entropyr&   )
ÚinputÚtargetrÖ   rÏ   rÒ   Ú
reduce_argrÑ   rÎ   rŽ   rÍ   s
      €€€€€€€r7   Úfake_cross_entropy_losszRUserDefinedClassVariable._call_cross_entropy_loss.<locals>.fake_cross_entropy_lossB  sq   ø€ Ý.á ØØ,�b—i‘i×,Ñ,Ø#Ü—H‘H×'Ñ'×5Ñ5ðô 'à!Ø"Ø"Ø(Ø(Ø&Ø%Ø+ð	ð óòôð r9   )r¨   r    r©   r	   ÚLambdaVariable)rY   rŽ   ÚargsrZ   r    rÓ   rá   rÏ   rÒ   rà   rÑ   rÎ   rÍ   s    `     @@@@@@r7   Ú_call_cross_entropy_lossz1UserDefinedClassVariable._call_cross_entropy_loss  s§   þ€ õ 	'ð $×*Ñ*¨4Ó0Ø)×0Ñ0°Ó6Ø)×0Ñ0°Ó6Ø#×*Ñ*¨4Ó0Ø&×-Ñ-¨fÓ5Ø,×3Ñ3°CÓ8ó	ñ0 ˜DÐ+ FÑ+ñ	
ØØØØØØ÷	ò 	ô0 ×'Ñ'Ð(?Ó@Ð@r9   c                 ó>  •— |dk(  r�t        |«      dk(  r‚|s€d| j                  j                  vrh| j                  }| j                  r!t	        | j                  d«      }t        |«      }t        j                  || j                  j                  «       |«      S | j                  t        j                  t        j                  hv r,|dk(  r'ddlm}  |j                  || j                  g|¢­i |¤ŽS |dk(  rLt        |«      dk(  r>t        |d   d«      r/t!        j"                  | j                  |d   j                  k(  «      S |dk(  rLt        |«      dk(  r>t        |d   d«      r/t!        j"                  | j                  |d   j                  k7  «      S |d	k(  rœ| j                  t        j                  u r€t%        |d   t&        «      rm|d   j                  t        j                  u rNt        |«      dk(  sJ ‚t        |«      dk(  sJ ‚t!        j(                  i t        j                  t+        «       ¬
«      S |d	k(  rVt&        j-                  | j                  j.                  «      r-|j0                  j2                  j5                  | |d   |dd  «      S t6        ‰| �q  ||||«      S )NÚ__subclasses__r   r£   r*   )ÚBuiltinVariableÚ__eq__rK   Ú__ne__r‚   ©Úmutation_type)ÚlenrK   r™   r¢   r   r   r-   rµ   ræ   r«   r¬   r­   Úbuiltinrç   Úcall_custom_dict_fromkeysru   r	   r    r~   rR   ÚConstDictVariabler,   r‹   r‚   r”   r•   Útrack_new_user_defined_objectrV   Úcall_method)rY   rŽ   r‡   rã   rZ   r¢   rç   r[   s          €r7   rñ   z$UserDefinedClassVariable.call_method\  sI  ø€ ð Ð$Ò$Ü�D“	˜Q’ÙØ ¨¯
©
×(;Ñ(;Ñ;à—[‘[ˆFØ�{Š{Ü# D§K¡KÐ1AÓB�Ü1°&Ó9�Ü"×(Ñ(¨¨T¯Z©Z×-FÑ-FÓ-HÈ&ÓQÐQà�J‰Jœ;×2Ñ2´K×4KÑ4KÐLÑLØ˜
Ò"å0à<�?×<Ñ<Ø�D—J‘JðØ!%òØ)/ñð ð �XÒ¤# d£)¨q¢.´W¸TÀ!¹WÀgÔ5NÜ×-Ñ-¨d¯j©j¸DÀ¹G¿M¹MÑ.IÓJÐJØ�XÒ¤# d£)¨q¢.´W¸TÀ!¹WÀgÔ5NÜ×-Ñ-¨d¯j©j¸DÀ¹G¿M¹MÑ.IÓJÐJà�IÒØ—
‘
œk×5Ñ5Ñ5Ü˜4 ™7Ô$<Ô=Ø�Q‘—‘¤×!8Ñ!8Ñ8ä�t“9 ’>Ð!�>Ü�v“; !Ò#Ð#Ð#Ü×.Ñ.Ø”K×+Ñ+Ô;KÓ;Môð ð �YÒÔ#;×#SÑ#SØ�J‰J×Ñô$
ð —9‘9×)Ñ)×GÑGØØ�Q‘Ø�Q�R�óð ô
 ‰wÑ" 2 t¨T°6Ó:Ð:r9   c                 óN  •— ddl m} ddlm} t	        ||«      }| j                  «       r�|rt        j                  j                   | j                  «       |D �cg c]  }|j                  «       ‘Œ c}i |j                  «       D ��	ci c]  \  }}	||	j                  «       “Œ c}	}¤Ž«      S | j                  t        j                  j                  u r| j                  |||«      S | j                  t         j"                  u rddlm}
  |
«       S | j                  t(        j*                  u r8|j-                  t/        j0                  |t2        j4                  «      | g|¢|«      S | j                  t(        j6                  u rNt9        |«      dk  r@t;        j<                  |d   «      r(t;        i t(        j6                  |d   t?        «       ¬«      S tA        | j                  «      rN| j                  jB                  rtE        d«        t        jF                  tH        «      jJ                  |g|¢­i |¤ŽS | j                  t(        jL                  u �rLt        j                  j                  d «      }|s�t9        |«      dk(  rg }nðt9        |«      dk(  r)|d   jO                  |«      r|d   jQ                  |«      }n¹t9        |«      dk(  r.|d   jO                  |«      r|d   jQ                  |«      }|d   }n}tE        d	«       nqtS        |«      d
k(  rX|d   }t9        |«      dk(  rg }t9        |«      dk(  r)|d   jO                  |«      r|d   jQ                  |«      }ntE        d«       ntE        d«       t        jT                  jW                  |t?        «       ¬«      S | j                  tX        jZ                  u rt        j\                  |d   «      S | j                  t^        j`                  u r9|stE        d«       |d   }|dd  }t        jb                  je                  |||¬«      S | j                  tf        jh                  u r"|s t        jj                  j                  ||«      S | j                  t        jl                  jn                  u rV|sTt9        |«      dk(  rF|d   jq                  «       sJ ‚t        jr                  j                  ||d   j                  «       «      S tu        tw        | j                  «      tv        «      �räty        | j                  d«      �rÍty        | j                  d«      �r¶| j{                  «       �r¥|j}                  | j                  «      �r‰| j~                  �r|t�        | j                  «      �sfddl1mA}mB} | j                  t         j†                  t         jˆ                  t         jŠ                  t         jŒ                  t         jŽ                  t         j�                  t         j’                  fv rtE        | j                  › d�«       | j                  t         j”                  u r_t—        |d   |«      rPt        j˜                  jš                  jœ                  stE        d«        ||d   |d   j~                  ¬«      g|dd  z   }|jž                  j                   j¡                  t        jF                  t¢        «      | |«      }|j¥                  |d||«       |S t§        | j                  «      �rOt©        | j                  «      }| j                  jª                  dk(  r)t9        |«      dk(  sJ ‚|rJ ‚|d   jQ                  |«      }nØ| j                  j¬                  }t¯        |«      }|j±                  d gt9        |«      t9        |«      z
  z  «       i }t³        ||«      D ]6  \  }}|�Œ	||v r||   }n||v sJ ‚t/        j0                  |||   «      }|||<   Œ8 |j                  «       D ]  \  }}||v sJ ‚|||jµ                  |«      <   Œ! t·        d„ |D «       «      sJ ‚t        j¸                  || j                  «      S t»        | j                  «      �r«| j{                  «       �ršt½        j¾                  | j                  «      }t¯        |«      }|j±                  d gt9        |«      t9        |«      z
  z  «       i }t³        ||«      D ]Ð  \  }}|�Œ	|jÀ                  |v r||jÀ                     }n›|jÂ                  sŒ4|jÄ                  t¼        jÆ                  ur!t/        j0                  ||jÄ                  «      }nQ|jÈ                  t¼        jÆ                  ur4t/        j0                  ||jÈ                  «      }|jË                  |g i «      }nŒÂ|||jÀ                  <   ŒÒ |jÍ                  |«       |jž                  j                   j¡                  t        jF                  t¢        «      | |«      }|j¥                  |d||«       |S | j                  | jÏ                  «       v stÑ        | j                  «      rútÒ        r¸| j                  tÔ        v r¦t9        |«      dk(  r˜t—        |d   t        jÖ                  «      r{t9        |d   j                  «      dkD  r`t·        d„ |d   j                  D «       «      rA || |jž                  jØ                  dt        jÚ                  gtÝ        ||«      ¢­Ž ¬«      }|g} || |jž                  jØ                  d| j                  gtÝ        ||«      ¢­Ž ¬«      }|S | j                  tÞ        jà                  u r]t9        |«      dk(  r-t—        |d   t        j                  «      r|d   j                  } nd } tß        jà                  | «      }!tã        |!«      S | j                  tä        jæ                  u rCt9        |«      dk(  r5t—        |d   t        jè                  «      rt        jê                  |d   «      S |j}                  | j                  «      rX| j~                  rLtí        «       5  |j-                  t/        j0                  |t2        jî                  «      | g|¢|«      cd d d «       S tð        ‰"| ��•  |||«      S c c}w c c}	}w # 1 sw Y   Œ&xY w)Nr   )ÚSideEffectsr*   rÕ   )ÚNullContextVariabler   rê   z*TypedDict with optional keys not supportedz*deque() with more than 2 arg not supported)Úmaxlenrõ   z*deque() with more than 1 arg not supportedz)deque() with invalid kwargs not supported)rõ   rë   zfunctools.partial malformed)rã   ÚkeywordsÚ	__enter__Ú__exit__)ÚBaseUserFunctionVariableÚ3FunctionDecoratedByContextlibContextManagerVariablezˆ not supported. This may be due to its use of context-specific operations that are not supported in Dynamo yet (i.e. Exception handling)zcontextlib.contextmanagerr¤   rW   ztorch.return_typesc              3   ó$   K  — | ]  }|d u–— Œ
 y ­wr2   rP   ©Ú.0Úxs     r7   ú	<genexpr>z9UserDefinedClassVariable.call_function.<locals>.<genexpr>C  s   è ø€ Ò8¨Q˜1 Dœ=Ñ8ùs   ‚c              3   óP   K  — | ]  }t        |t        j                  «      –— Œ  y ­wr2   )r~   r	   ÚTensorVariablerü   s     r7   rÿ   z9UserDefinedClassVariable.call_function.<locals>.<genexpr>t  s   è ø€ ÒWÀAœ
 1¤i×&>Ñ&>×?ÑWùs   ‚$&r¼   r×   )yr•   ró   rÙ   rÖ   r   r�   r	   r    r©   r_   ÚitemsrK   ri   rÛ   ÚCrossEntropyLossrä   Ú
contextlibÚnullcontextÚctx_managerrô   r«   r¬   Úinline_user_function_returnr-   rµ   r   Úconstruct_dictr­   rì   r.   Úis_supported_argr,   r   Ú__optional_keys__r   rç   rƒ   Ú	call_dictÚdequeÚhas_force_unpack_var_sequenceÚforce_unpack_var_sequencer„   ÚlistsÚDequeVariableÚweakrefÚrefÚWeakRefVariableÚ	functoolsÚpartialÚ	functionsÚFunctoolsPartialVariableÚwarningsÚcatch_warningsÚCatchWarningsCtxManagerVariablerr   rj   Úis_python_constantÚCUDADeviceVariabler�   r€   ru   Úis_standard_newÚ"cls_supports_mutation_side_effectsr¢   rH   rù   rú   Ú_AsyncGeneratorContextManagerÚclosingÚredirect_stdoutÚredirect_stderrÚsuppressÚ	ExitStackÚAsyncExitStackÚ_GeneratorContextManagerr~   Ú_dynamoÚconfigÚenable_trace_contextlibr”   rð   r3   rñ   r   r$   rM   Ú_field_defaultsr…   ÚextendÚzipÚindexÚallÚNamedTupleVariabler   ÚdataclassesÚfieldsr‡   ÚinitÚdefaultÚMISSINGÚdefault_factoryr¼   rv   rz   r   Únpr'   ÚListVariablerÚ   Ústackr&   ÚrandomÚRandomÚRandomVariabler²   ÚMappingProxyTyperï   ÚMappingProxyVariabler   Ú%instantiate_user_defined_class_objectrV   )#rY   rŽ   rã   rZ   ró   rÖ   Úconstant_argsrþ   ÚkÚvrô   rõ   r  ÚfnÚ	rest_argsrù   rú   Úcm_objr1  Úfield_defaultsÚvar_tracker_kwargsÚ
field_nameÚvar_trackerÚ	field_varr‡   rK   Údefault_kwargsÚfieldÚ
factory_fnÚvarÚstackedÚtensor_variableÚseedÚrandom_objectr[   s#                                     €r7   r¼   z&UserDefinedClassVariable.call_function�  sÅ
  ø€ õ 	/Ý*ä+¨D°&Ó9ˆà×)Ñ)Ô+±ä×-Ñ-×4Ñ4Ø)�×'Ñ'Ó)Ø6:Ö;°�a×*Ñ*Õ,Ò;ðà=C¿\¹\»^×L±T°Q¸�q˜!×.Ñ.Ó0Ñ0ÓLñóð ð �Z‰Zœ5Ÿ8™8×4Ñ4Ñ4Ø×0Ñ0°°T¸6ÓBÐBØ�Z‰Zœ:×1Ñ1Ñ1å8á&Ó(Ð(Ø�Z‰Zœ;×2Ñ2Ñ2Ø×1Ñ1Ü×%Ñ% b¬)×*BÑ*BÓCØ�˜�Øóð ð �J‰Jœ+×1Ñ1Ñ1Ü�D“	˜Q’Ü#×4Ñ4°T¸!±WÔ=ä&ØÜ×'Ñ'Ø�Q‘Ü.Ó0ô	ð ô ˜$Ÿ*™*Ô%Ø�z‰z×+Ò+ÜÐJÔKØ<”9×,Ñ,¬TÓ2×<Ñ<¸RÐQÀ$ÒQÈ&ÑQÐQØ�Z‰Zœ;×,Ñ,Ò,Ü×/Ñ/×6Ñ6°tÓ<ˆFÙÜ�t“9 ’>Ø‘EÜ˜“Y !’^¨¨Q©×(MÑ(MÈbÔ(QØ  ™G×=Ñ=¸bÓA‘EÜ˜“Y !’^¨¨Q©×(MÑ(MÈbÔ(QØ  ™G×=Ñ=¸bÓA�EØ! !™W‘Fä!Ð"NÕOÜ�v“ +Ò-Ø Ñ)�Ü�t“9 ’>Ø�EÜ�t“9 ’> d¨1¡g×&KÑ&KÈBÔ&OØ  ™G×=Ñ=¸bÓA‘Eä!Ð"NÕOäÐIÔJÜ—?‘?×0Ñ0Ø˜fÔ4DÓ4Fð 1ó ð ð �Z‰Zœ7Ÿ;™;Ñ&Ü×,Ñ,¨T°!©WÓ5Ð5Ø�Z‰Zœ9×,Ñ,Ñ,ÙÜÐ;Ô<à�a‘ˆBØ˜Q˜R˜ˆIô ×&Ñ&×?Ñ?Ø˜¨Vð @ó ð ð �Z‰Zœ8×2Ñ2Ñ2¹4Ü×<Ñ<×CÑCÀBÈÓOÐOØ�Z‰Zœ5Ÿ:™:×,Ñ,Ñ,±VÄÀDÃ	ÈQÂØ˜‘7×-Ñ-Ô/Ð/Ð/Ü×/Ñ/×6Ñ6°r¸4À¹7×;UÑ;UÓ;WÓXÐXä”t˜DŸJ™JÓ'¬Õ.ÜØ—
‘
˜Kõô Ø—
‘
˜Jõð ×$Ñ$Õ&Ø×>Ñ>¸t¿z¹zÕJØ—“Ü0°·±Õ<÷ð �z‰zÜ×8Ñ8Ü×"Ñ"Ü×*Ñ*Ü×*Ñ*Ü×#Ñ#Ü×$Ñ$Ü×)Ñ)ðñ ô Ø—z‘z�lð #;ð ;ôð �z‰zœZ×@Ñ@Ñ@ÄZØ�Q‘Ð1ôFô —}‘}×+Ñ+×CÒCÜ!Ð"=Ô>ñ HØ˜Q™¨¨Q©¯©ôðð ˜˜�Hñ	�ð —Y‘Y×+Ñ+×IÑIÜ×)Ñ)¬&Ó1ØØóˆFð
 ×Ñ˜r :¨t°VÔ<ØˆMÜ˜tŸz™zÕ*Ü& t§z¡zÓ2ˆFà�z‰z×$Ñ$Ð(<Ò<Ü˜4“y A’~Ð%�~Ù!Ð!�zØ˜Q™×9Ñ9¸"Ó=‘à!%§¡×!;Ñ!;�ä˜T›
�Ø—‘˜d˜V¤s¨6£{´S¸³ZÑ'?Ñ@ÔAà%'Ð"Ü/2°6¸5Ó/Aò 	CÑ+�J Ø"Ñ*Ø%¨Ñ/Ø(.¨zÑ(:™Ià#-°Ñ#?Ð?Ð#?Ü(7×(=Ñ(=Ø " N°:Ñ$>ó)˜Ið :CÐ*¨:Ò6ð	Cð $6×#;Ñ#;Ó#=ò 6‘K�D˜%Ø 6™>Ð)˜>Ø05�E˜&Ÿ,™, tÓ,Ò-ð6ô Ñ8°%Ô8Ô8Ð8Ð8ä×/Ñ/°°t·z±zÓBÐBÜ  §¡Õ,°×1EÑ1EÕ1GÜ ×'Ñ'¨¯
©
Ó3ˆFÜ˜“JˆEØ�L‰L˜$˜¤3 v£;´°U³Ñ#;Ñ<Ô=àˆNÜ&)¨&°%Ó&8ò =Ñ"��{ØÑ&Ø—z‘z VÑ+Ø&,¨U¯Z©ZÑ&8™à$ŸzšzØ$à Ÿ=™=´×0CÑ0CÑCÜ*9×*?Ñ*?ÀÀEÇMÁMÓ*R™KØ"×2Ñ2¼+×:MÑ:MÑMÜ)8×)>Ñ)>Ø " E×$9Ñ$9ó*˜Jð +5×*BÑ*BÀ2ÀrÈ2Ó*N™Kð %à1<�N 5§:¡:Ò.ð)=ð* �M‰M˜.Ô)à—)‘)×(Ñ(×FÑFÜ×)Ñ)¬&Ó1°4¸óˆCð �O‰O˜B 
¨D°&Ô9ØˆJà�J‰J˜$×0Ñ0Ó2Ñ2Ü1°$·*±*Ô=õ
 Ø—J‘JÔ"5Ñ5Ü˜“I ’NÜ˜t A™w¬	×(>Ñ(>Ô?Ü˜˜Q™Ÿ™Ó&¨Ò*ÜÑWÈÈaÉÏÉÔWÔWñ (ØØ0˜"Ÿ)™)×0Ñ0Ø'ÜŸ™ðô +¨4°Ó8òô�ð  �y�á+ØØ,�b—i‘i×,Ñ,Ø#Ø—J‘Jðô ' t¨VÓ4òôˆOð #Ð"Ø�Z‰Zœ6Ÿ=™=Ñ(Ü�4‹y˜AŠ~¤*¨T°!©W´i×6PÑ6PÔ"QØ˜A‘w—}‘}‘à�Ü"ŸM™M¨$Ó/ˆMÜ! -Ó0Ð0à�J‰Jœ%×0Ñ0Ñ0Ü�D“	˜Q’Ü˜4 ™7¤I×$?Ñ$?Ô@ô ×1Ñ1°$°q±'Ó:Ð:Ø×;Ñ;¸D¿J¹JÔGÈDÏKÊKÜ5Ó7ñ Ø×5Ñ5Ü#×)Ñ)ØœI×KÑKóð �M˜D�MØó÷ñ ô ‰wÒ$ R¨¨vÓ6Ð6ùòI <ùÛL÷vð ús   ÁrÂrð<8ròr$c                 ó    — t        j                  | j                  dd«      }t        |t        «      r|j
                  }|t        j                  u S )z"Check for __new__ being overriddenr‚   N)r¯   r°   rK   r~   r´   r¸   r3   r‚   )rY   Únew_fns     r7   r  z(UserDefinedClassVariable.is_standard_new¥  s<   € ä×'Ñ'¨¯
©
°I¸tÓDˆÜ�fœlÔ+Ø—_‘_ˆFØœŸ™Ð'Ð'r9   c                 ó
  •— | j                   rgt        | j                   |«      }t        |j                  t        j
                  «      «       t        j                  t        | j                  |«      «      S t        ‰| �-  ||«      S r2   )r¢   r   r   Ú
make_guardr   ÚHASATTRr	   r    ru   rK   rV   Úcall_obj_hasattr)rY   rŽ   r‡   r¢   r[   s       €r7   rW  z)UserDefinedClassVariable.call_obj_hasattr¬  sc   ø€ ð �;Š;Ü §¡¨TÓ2ˆFÜ˜&×+Ñ+¬L×,@Ñ,@ÓAÔBÜ×-Ñ-¬g°d·j±jÀ$Ó.GÓHÐHÜ‰wÑ'¨¨DÓ1Ð1r9   c                 óZ   •— |dk(  r| j                   j                  S t        ‰| �  ||«      S )NrL   )rK   rL   rV   Úconst_getattr©rY   rŽ   r‡   r[   s      €r7   rY  z&UserDefinedClassVariable.const_getattrµ  s-   ø€ Ø�:ÒØ—:‘:×&Ñ&Ð&Ü‰wÑ$ R¨Ó.Ð.r9   ©rS   N©rŽ   r0   ©rã   úlist[VariableTracker]rZ   údict[str, VariableTracker]rS   r-   ©rŽ   r0   rã   r^  rZ   r_  rS   r-   )rL   rM   rN   r€   r3   rO   rW   r_   rb   Ústrrg   r´   r  Ú	lru_cachern   rz   r‰   r‹   r�   r�   r®   rä   rñ   r¼   r  rW  rY  Ú__classcell__©r[   s   @r7   rR   rR   €   sn  ø… Ø�‰<Óõòòð:˜#ó :ð Ø€Y×Ñ˜Óñ
ó ó ð
ð Ø€Y×Ñ˜ÓñFó ó ðFð  Ø€Y×Ñ˜Óñó ó ðð ñMó ðMò
;ó*ðN-Ð5ð N-¸Sð N-ÐEVõ N-ó`>Að@2;ð &ð	2;ð
 -ð2;ð 
õ2;ðhS7à#ðS7ð &ðS7ð -ð	S7ð
 
õS7òj(ð2Ø)ð2Ø14ð2à	õ2÷/ñ /r9   rR   c                   ó,   — e Zd Zed„ «       Zed„ «       Zy)Ú!UserDefinedExceptionClassVariablec                 ó   — | j                   S r2   r]   r^   s    r7   rB  z$UserDefinedExceptionClassVariable.fn¼  ó   € à�z‰zÐr9   c                 ó   — | j                   S r2   r]   r^   s    r7   Úpython_typez-UserDefinedExceptionClassVariable.python_typeÀ  rh  r9   N)rL   rM   rN   r¹   rB  rj  rP   r9   r7   rf  rf  »  s(   „ Øñó ðð ñó ñr9   rf  c                   ó   — e Zd Zy)ÚNO_SUCH_SUBOBJN©rL   rM   rN   rP   r9   r7   rl  rl  Å  ó   „ Ør9   rl  c                 ó¤  — ddl m} |D �cg c]  }|j                  «       ‘Œ }}|j                  «       D ��ci c]  \  }}||j                  «       “Œ }}}t	        | j
                  j                  «      } ||i |¤Ž}	t        |«      }
| j
                  j                  j                  |||f«        || |
«      j                  |	«      S c c}w c c}}w )Nr*   )ÚVariableBuilder)
rÙ   rp  r_   r  rì   r”   Úrandom_callsr   r?   Úwrap_unspecialized_primitive)rŽ   rB  rã   rZ   rp  rþ   r@  rA  Úrandom_call_indexÚexample_valuer¢   s              r7   Úcall_random_fnru  É  s¼   € Ý(à,0Ö1 qˆA× Ñ Õ"Ð1€DÐ1Ø4:·L±L³N×C©D¨A¨qˆa�×%Ñ%Ó'Ñ'ÐC€FÑCÜ˜BŸI™I×2Ñ2Ó3ÐÙ˜Ð' Ñ'€MÜÐ0Ó1€FØ‡I�I×Ñ×!Ñ! 2 t¨VÐ"4Ô5ñ ˜2˜vÓ&×CÑCÀMÓRÐRùò 2ùÛCs
   ‹C·Cc                   ór  ‡ — e Zd ZdZddhej
                  £Zdddddœ	 d%ˆ fd„Zdefd„Zdefd	„Z	d
„ Z
d„ Zˆ fd„Zˆ fd„Zd„ Zd„ Zd&d„Ze ej&                  d«      d„ «       «       Zd„ Z	 	 	 	 	 	 d'ˆ fd„Zd&d„Zd„ Zˆ fd„Zd„ Zd„ Z	 	 	 	 	 	 	 	 d(ˆ fd„Zd„ Zd„ Zd„ Zd&d „Z d!„ Z!d&d"„Z"ddd#eddfd$„Z#ˆ xZ$S ))ÚUserDefinedObjectVariablez_
    Mostly objects of defined type.  Catch-all for something where we only know the type.
    rK   Ú
value_typeN)rx  Ú
cls_sourceÚbase_cls_vtÚ	init_argsrS   c                ó  •— t        ‰| �  di |¤Ž || _        |xs t        |«      | _        t        |«      | j                  u sJ ‚|| _        |€&| j                  �t        | j                  «      | _        || _        || _	        y rU   )
rV   rW   rK   r€   rx  ry  r¢   r   rz  r{  )rY   rK   rx  ry  rz  r{  rZ   r[   s          €r7   rW   z"UserDefinedObjectVariable.__init__ß  sy   ø€ ô 	‰ÑÑ"˜6Ò"ØˆŒ
Ø$Ò3¬¨U«ˆŒÜ�E‹{˜dŸo™oÑ-Ð-Ð-à$ˆŒØÐ $§+¡+Ð"9Ü(¨¯©Ó5ˆDŒOð 'ˆÔØ"ˆ�r9   c                 ó®   — | j                   j                  }|dv r t        t        | j                  dd «      «      }| j
                  j                  › d|› d�S )N)Úbuiltin_function_or_methodÚgetset_descriptorÚmethod_descriptorÚmethodrL   re   rf   )rx  rL   ra  r   rK   r[   )rY   Úinners     r7   Ú__str__z!UserDefinedObjectVariable.__str__ù  sU   € Ø—‘×(Ñ(ˆØð 
ñ 
ô œ §
¡
¨J¸Ó=Ó>ˆEØ—.‘.×)Ñ)Ð*¨!¨E¨7°!Ð4Ð4r9   c                 ób   — | j                   j                  › d| j                  j                  › d�S rd   ©r[   rL   rx  r^   s    r7   rg   z"UserDefinedObjectVariable.__repr__  ó+   € Ø—.‘.×)Ñ)Ð*¨!¨D¯O©O×,DÑ,DÐ+EÀQÐGÐGr9   c                  ó   — y©NFrP   ©rY   r•   s     r7   Úis_underlying_vt_modifiedz3UserDefinedObjectVariable.is_underlying_vt_modified  s   € Ør9   c                 ó   — | j                   S r2   ©rx  r^   s    r7   rj  z%UserDefinedObjectVariable.python_type
  s   € Ø�‰Ðr9   c                 óü   •— dd l mc m} |j                  | j                  «      rJ| j
                  �>t        | j
                  j                  t        j                  «      «       | j                  S t        ‰| �1  «       S ©Nr   )Útorch.utils._pytreeÚutilsÚ_pytreeÚis_constant_classrx  r¢   r   rU  r   ÚEQUALS_MATCHrK   rV   r_   )rY   Úpytreer[   s     €r7   r_   z,UserDefinedObjectVariable.as_python_constant  s\   ø€ ß,Ð,à×#Ñ# D§O¡OÔ4Ø�{‰{Ð&Ü˜dŸk™k×4Ñ4´\×5NÑ5NÓOÔPØ—z‘zÐ!ô ‰wÑ)Ó+Ð+r9   c                 ó´   •— | j                   r>t        | j                   j                  t        j                  «      «       | j
                  S t        ‰| �  «       S r2   )r¢   r   rU  r   ÚID_MATCHrK   rV   Úguard_as_python_constant)rY   r[   s    €r7   r—  z2UserDefinedObjectVariable.guard_as_python_constant  s?   ø€ Ø�;Š;Ü˜$Ÿ+™+×0Ñ0´×1FÑ1FÓGÔHØ—:‘:ÐÜ‰wÑ/Ó1Ð1r9   c                 ó.   — t        | «      s
J d| › �«       ‚y )Nz<calling torch function on object without __torch_function__ )r   r^   s    r7   Útorch_function_checkz.UserDefinedObjectVariable.torch_function_check  s!   € Ü! $Ô'ð 	
ØJÈ4È&ÐQó	
Ñ'r9   c                 ój   — | j                  «        ddlm}  ||| j                  | j                  «      S )Nr*   )Úbuild_torch_function_fn)r™  Útorch_functionr›  rK   r¢   )rY   rŽ   r›  s      r7   Úget_torch_fnz&UserDefinedObjectVariable.get_torch_fn#  s(   € Ø×!Ñ!Ô#Ý;á& r¨4¯:©:°t·{±{ÓCÐCr9   rŽ   r0   c           	      óz   — | j                  «        ddlm}m}  || ||| «      | j	                  |«      ||||«      S )Nr*   )Ú_get_subclass_type_varÚcall_torch_function)r™  rœ  rŸ  r   r�  )rY   rŽ   rB  r²   rã   rZ   rŸ  r   s           r7   r   z-UserDefinedObjectVariable.call_torch_function)  sE   € Ø×!Ñ!Ô#çOá"ØÙ" 2 tÓ,Ø×Ñ˜bÓ!ØØØØó
ð 	
r9   c                  ó‚   — t         j                   t         j                  t         j                  t         j                  h} | S r2   )r9  ÚrandintÚ	randrangeÚuniform)Úfnss    r7   Ú_supported_random_functionsz5UserDefinedObjectVariable._supported_random_functions8  s0   € ô �M‰MÜ�N‰NÜ×ÑÜ�N‰Nð	
ˆð ˆ
r9   c                 ó¨   — |t        | j                  di «      vr*	 t        j                  t	        | j                  «      |«      S y # t
        $ r Y y w xY w)Nr™   )r   rK   r¯   r°   r€   r±   )rY   r‡   s     r7   Ú_maybe_get_baseclass_methodz5UserDefinedObjectVariable._maybe_get_baseclass_methodC  sT   € Ø”w˜tŸz™z¨:°rÓ:Ñ:ðÜ×-Ñ-¬d°4·:±:Ó.>ÀÓEÐEð øô "ò ØØðús   ›(A Á	AÁAr-   c                 óÚ  •— ddl m}m} | j                  |«      }|��=|t        j
                  u r|j                  d «      S t        |«      s$t        | j                  t        j                  «      r | j                  |g|¢­i |¤ŽS |t        j                  u rot        |«      dk(  ra|s_|d   }t        |t        «      s#t         j                  j                  t"        «      S |j                  | j                  |j                  u «      S t$        j&                  j(                  j*                  r/t        | j                  t,        j.                  «      rt1        d«       t        |t,        j2                  «      rx| j4                  €d nt7        t7        | j4                  d«      |«      }	ddlm}
 |t$        j<                  j>                  j
                  u r|
} ||| |	¬«      jA                  |||«      S |tB        jD                  u r]| j4                  rQ|sO|sMtG        | j4                  jI                  tJ        jL                  «      «        |t        | j                  «      «      S tN        ‰| �¡  ||||«      S )	Nr*   )r    r½   r   z,Generator as graph argument is not supportedr[   r   ©Úunpatched_nn_module_initr¤   ))r¨   r    r½   r¨  r3   rW   r©   r8   r~   rK   Ú	threadingÚlocalÚmethod_setattr_standardrè   rì   rw  r	   ÚNotImplementedri   r'  r(  Ú"enable_faithful_generator_behaviorr²   ÚGeneratorTyper   r³   r¢   r   Úmutation_guardr«  rÛ   ÚModuler¼   r…   Ú__len__r   rU  r   ÚSEQUENCE_LENGTHrV   rñ   )rY   rŽ   r‡   rã   rZ   r    r½   r�  Úotherr¢   r«  r[   s              €r7   rñ   z%UserDefinedObjectVariable.call_methodK  sè  ø€ ÷ 	;à×1Ñ1°$Ó7ˆØÑØœŸ™Ñ(Ø'×.Ñ.¨tÓ4Ð4ä" 6Ô*¬j¸¿¹ÄYÇ_Á_Ô.UØ3�t×3Ñ3°BÐH¸ÒHÀÑHÐHàœŸ™Ñ&¬3¨t«9¸ª>Á&Ø˜Q™�Ü! %Ô)BÔCÜ$×5Ñ5×<Ñ<¼^ÓLÐLð (×.Ñ.¨t¯z©z¸U¿[¹[Ð/HÓIÐIä�}‰}×#Ñ#×FÒFÌ:Ø—
‘
œE×/Ñ/ôLô ÐLÔMô ˜&¤%×"4Ñ"4Ô5ð —{‘{Ð*ñ ä#¤J¨t¯{©{¸KÓ$HÈ$ÓOð õ FàœUŸX™XŸ_™_×5Ñ5Ñ5Ø5�FÙ)¨&°$¸vÔF×TÑTØ˜˜fóð ð œŸ™Ñ%¨$¯+ª+¹tÁvÜ˜dŸk™k×4Ñ4´\×5QÑ5QÓRÔSÙ'¬¨D¯J©J«Ó8Ð8ä‰wÑ" 2 t¨T°6Ó:Ð:r9   c                 óD  — 	 |j                  «       }|j                  j                  j                  | «      st        d| › d|› d�«       |j                  j                  j                  | ||«       t        j                  d «      S # t        $ r t        d|› �«       Y ŒŒw xY w)Nznon-const setattr name: zsetattr(z, z, ...))	r_   ÚNotImplementedErrorr   r”   r•   Úis_attribute_mutationÚ
store_attrr	   r    )rY   rŽ   r‡   rK   s       r7   r®  z1UserDefinedObjectVariable.method_setattr_standard€  s”   € ð	=Ø×*Ñ*Ó,ˆDð �y‰y×%Ñ%×;Ñ;¸DÔAÜ˜H T F¨"¨T¨F°&Ð9Ô:à
�	‰	×Ñ×)Ñ)¨$°°eÔ<Ü×)Ñ)¨$Ó/Ð/øô #ò 	=ÜÐ4°T°FÐ;Ö<ð	=ús   ‚B ÂBÂBc                 ó¦   — t        t        j                  | j                  dd «      «       xr% t	        | j                  t
        j                  «       S )Nr4   )r8   r¯   r°   rK   r~   r¬  r­  r^   s    r7   Úneeds_slow_setattrz,UserDefinedObjectVariable.needs_slow_setattr‹  sD   € Ü&Ü×"Ñ" 4§:¡:¨}¸dÓCó
ð 
ò :ä˜TŸZ™Z¬¯©Ó9Ð9ð	:r9   c           
      óH  •— | j                   �r| j                  d«      t        j                  u rà| j                  d«      t        j                  u r¿| j                  d«      t        j
                  u ržt        | j                   j                  t        j                  «      «       t        t        | j                  «      «      D �cg c]D  }t        j                  j                  | j                  |   t!        | j                   |«      ¬«      ‘ŒF c}S t"        ‰| �I  |«      S c c}w )NÚ__iter__r´  Ú__getitem__r¤   )r¢   r¨  r…   r¾  r´  r¿  r   rU  r   rµ  Úrangerì   rK   r	   ÚLazyVariableTrackerr©   r   rV   Úunpack_var_sequence)rY   rŽ   r@  r[   s      €r7   rÂ  z-UserDefinedObjectVariable.unpack_var_sequence�  sà   ø€ à�K‹KØ×0Ñ0°Ó<ÄÇÁÑMØ×0Ñ0°Ó;¼t¿|¹|ÑKØ×0Ñ0°Ó?Ä4×CSÑCSÑSä˜$Ÿ+™+×0Ñ0´×1MÑ1MÓNÔOô œs 4§:¡:›Ó/öð
 ô	 ×-Ñ-×4Ñ4Ø—J‘J˜q‘MÜ(¨¯©°aÓ8ð 5õ òð ô ‰wÑ*¨2Ó.Ð.ùòs   ÃA	Dc                 ó*   — | j                  |dg i «      S )NÚ__next__)rñ   ©rY   rŽ   s     r7   Únext_variablez'UserDefinedObjectVariable.next_variable¡  s   € Ø×Ñ  J°°BÓ7Ð7r9   c                 óZ   — 	 | j                   | j                  «       v S # t        $ r Y yw xY wrˆ  )rK   r¦  Ú	TypeErrorr^   s    r7   Úis_supported_randomz-UserDefinedObjectVariable.is_supported_random¤  s1   € ð	Ø—:‘: ×!AÑ!AÓ!CÐCÐCøÜò 	áð	ús   ‚ ž	*©*c                 óÔ  •— | j                  «       rJt        d„ |D «       «      r8t        d„ |j                  «       D «       «      rt        || j                  ||«      S t        | j                  t        j                  «      �rñ| j                  j                  }| j                  j                  }|t        j                  j                  j                  j                  u r]t        j                   j#                  |j$                  «      r4|s2|s0t        j                   |j$                  «      j'                  |||«      S |t        j(                  j*                  j,                  j                  u r€|j$                  t        j(                  j*                  j,                  u rPt        j.                  |j0                  «      }t        j                   |j$                  «      j'                  ||g|«      S | j2                  €t5        d«       t7        | j2                  d«      }t9        j:                  |||«      }t7        | j2                  d«      }	t9        j:                  |||	«      }
|j'                  ||
g|z   |«      S t=        | j                  «      rR| j2                  r2t?        | j2                  jA                  tB        jD                  «      «       | jG                  |d||«      S tH        ‰| �M  |||«      S )Nc              3   ó<   K  — | ]  }|j                  «       –— Œ y ­wr2   ©r  )rý   r@  s     r7   rÿ   z:UserDefinedObjectVariable.call_function.<locals>.<genexpr>³  s   è ø€ Ò9¨q�A×(Ñ(×*Ñ9ùó   ‚c              3   ó<   K  — | ]  }|j                  «       –— Œ y ­wr2   rÌ  )rý   rA  s     r7   rÿ   z:UserDefinedObjectVariable.call_function.<locals>.<genexpr>´  s   è ø€ ÒD¨q�A×(Ñ(×*ÑDùrÍ  z9Sourceless UserDefinedObjectVariable method not supportedr¸   Ú__self__Ú__call__)%rÉ  r.  Úvaluesru  rK   r"   r²   Ú
MethodTyper¸   rÏ  ri   r�  Ú_contextlibÚ_DecoratorContextManagerÚcloner	   ÚTorchCtxManagerClassVariableÚis_matching_clsr[   r¼   ÚautogradÚ	grad_modeÚinference_moder    Úmoder¢   r   r   r-   rµ   Úcallabler   rU  r   ÚFUNCTION_MATCHrñ   rV   )rY   rŽ   rã   rZ   rÈ   rÇ   rM  Úfunc_srcÚfunc_varÚobj_srcÚobj_varr[   s              €r7   r¼   z'UserDefinedObjectVariable.call_function«  s6  ø€ ð ×$Ñ$Ô&ÜÑ9°DÔ9Ô9ÜÑD°F·M±M³OÔDÔDä! " d§j¡j°$¸Ó?Ð?Ü�D—J‘J¤× 0Ñ 0Õ1Ø—:‘:×&Ñ&ˆDØ—*‘*×%Ñ%ˆCàœŸ™×/Ñ/×HÑH×NÑNÑNÜ×:Ñ:×JÑJØ—M‘Môñ ¡ä ×=Ñ=Ø—M‘Móç‘-  D¨&Ó1ð2ð
 œŸ™×0Ñ0×?Ñ?×EÑEÑEØ—M‘M¤U§^¡^×%=Ñ%=×%LÑ%LÑLô  ×0Ñ0°·±Ó:�Ü ×=Ñ=Ø—M‘Móç‘-  S E¨6Ó2ð3ð �{‰{Ð"ÜØOôô " $§+¡+¨zÓ:ˆHÜ&×,Ñ,¨R°°xÓ@ˆHÜ  §¡¨jÓ9ˆGÜ%×+Ñ+¨B°°WÓ=ˆGØ×)Ñ)¨"¨w¨i¸$Ñ.>ÀÓGÐGÜ�d—j‘jÔ!Ø�{Š{Ü˜dŸk™k×4Ñ4´\×5PÑ5PÓQÔRØ×#Ñ# B¨
°D¸&ÓAÐAä‰wÑ$ R¨¨vÓ6Ð6r9   c                 ó,   — t        | j                  «      S r2   )r   rK   r^   s    r7   Ú_check_for_getattrz,UserDefinedObjectVariable._check_for_getattrß  s   € Ü! $§*¡*Ó-Ð-r9   c                 óê   — t        |t        «      syt        |j                  t        j                  «      xs= t
        j                  j                  j                  j                  |j                  «      S rˆ  )
r~   r¹   r»   r²   ÚBuiltinFunctionTyperi   Ú_Cr'  r�  Úis_instancemethod)rY   Úsubobjs     r7   Ú_is_c_defined_propertyz0UserDefinedObjectVariable._is_c_defined_propertyâ  sV   € Ü˜&¤(Ô+Øô Ø�K‰Kœ×2Ñ2ó
ò Cä�X‰X×Ñ×#Ñ#×5Ñ5°f·k±kÓBð	Cr9   c                 óä  — t        j                  | j                  |t        «      }dd l}t        | j                  «      sŽ|t        u sit        ||j                  «      sSt        j                  |«      r|| j                  j                  v s&| j                  |«      st        j                  |«      r| j                  j                  |«      }|S t        | j                  «      r|t        u rt        ‚|S rŽ  )r¯   r°   rK   rl  Ú_collectionsr%   r~   Ú_tuplegetterr¿   Ú	__slots__ré  ÚisgetsetdescriptorÚ__getattribute__r±   )rY   r‡   rè  rë  s       r7   Ú_getattr_staticz)UserDefinedObjectVariable._getattr_staticî  sÅ   € Ü×'Ñ'¨¯
©
°D¼.ÓIˆÛô ' t§z¡zÔ2Ø”nÑ$ÜØ˜×1Ñ1ôô ×*Ñ*¨6Ô2°t¸t¿z¹z×?SÑ?SÑ7Sà×*Ñ*¨6Ô2Ü×)Ñ)Øôð —Z‘Z×0Ñ0°Ó6ˆFð ˆô % T§Z¡ZÔ0°V¼~Ñ5Mô !Ð àˆr9   c                 ó  — |j                   j                  j                  | |«      rC|j                   j                  j                  | |d¬«      }t	        |t
        j                  «       S || j                  j                  v S r�   r“   rš   s       r7   r�   z1UserDefinedObjectVariable.has_key_in_generic_dict  rž   r9   c                 óp  — | j                   €J ‚t        t        | j                  «      j                  «      D ]O  \  }}||j
                  v sŒt        | j                   d«      }t        ||«      }t        |d«      }t        ||«      c S  t        d|› dt        | j                  «      j                  › �«       y )Nr§   r™   zCould not find z in )	ry  Ú	enumerater€   rK   r§   r™   r   r   r   )rY   r‡   ÚidxÚklassÚ
mro_sourceÚklass_sourceÚdict_sources          r7   Úget_source_by_walking_mroz3UserDefinedObjectVariable.get_source_by_walking_mro  s£   € Ø�‰Ð*Ð*Ð*ä#¤D¨¯©Ó$4×$<Ñ$<Ó=ò 	8‰JˆC�Ø�u—~‘~Ò%Ü'¨¯©¸ÓC�
Ü,¨Z¸Ó=�Ü(¨°zÓB�ô % [°$Ó7Ò7ð	8ô 	˜¨ v¨T´$°t·z±zÓ2B×2JÑ2JÐ1KÐLÕMr9   c                 ót  — ddl m} ddl m} | j                  rt	        | j                  |«      nd }t        | j                  «      r…t        j                  t        | j                  «      d«      }| j                  rt	        | j                  d«      }	 t        j                  || ¬«      j                  ||j                  |«      gi «      S |j                   j"                  j%                  | |«      rT|j                   j"                  j'                  | |d¬«      }t)        |t        j*                  «      rt-        t.        |«       |S |d	k(  rd
|i}	t        j0                  | |fi |	¤ŽS |dk(  r3|}
|
€| j2                  }
d
|
i}	t5        t        | j                  «      fi |	¤ŽS 	 | j7                  |«      }ddl0m1} |tP        jR                  jT                  jd                  u r|}t)        |tf        «      rk| j                  r,t	        t	        | j                  d«      |«      }t	        |d«      }t        j                  |jh                  | |¬«      j                  |g i «      S t)        |tj        «      rV|jm                  | j                  «      }|�"|jo                  |«      jq                  ||¬«      S  |jo                  |«      |«      S t)        |tr        «      r2t        j                  |jt                  | jw                  |d«      |¬«      S t)        |t<        jx                  «      r3|jm                  | j                  d «      }t{        j|                  |||«      S t        j~                  |«      rÂt�        |jl                  «      s­d }d }| j2                  r5| jƒ                  |«      }t	        |d«      }t{        j|                  |||«      }nt…        |«      }t5        t        | j                  «      «      }t        j                  |jl                  jt                  ||¬«      j                  || |gi «      S t)        |t<        j>                  «      sJt)        |t<        j†                  «      �rét)        | j                  tP        jR                  jT                  «      �rºt‰        | j                  |«      }||u r;t‹        |d«      r/|jŒ                  }|}|rt	        |d«      nd }||u rt‹        |d«      rŒ/t)        |t<        j†                  «      r™|jŽ                  | j                  urtt)        |jt                  t<        j>                  «      st_        d|› �«       ddlHmI} |j                  ||jŽ                  «      }t        j                  |jt                  |«      S |jt                  }nt)        |t<        j>                  «      sJ ‚|}t        j”                  |«      rt        j                  || |¬«      S t        j–                  |«      rRt™        |«      rt›        |¬«      S |�"|jo                  |«      jq                  ||¬«      S  |jo                  |«      |«      S tP        jœ                  jž                  j                   st)        | t        j¢                  «      r]|r[t)        | t        jB                  «      rA|j                   j¤                  s+|dv rt§        | j                  |«      }| j©                  |«      }|t8        urÓt�        |«      rd
|i}	t        j0                  | |fi |	¤ŽS |r t        jª                  j                  ||«      S | j2                  �it        j                  | j                  j¬                  |t8        «      }||u r6t	        | j2                  |«      }t        jª                  j                  ||«      S t{        j|                  ||«      S t-        t.        |«       y # t        $ r t        |«       Y �Œw xY w# t.        $ �rÉ t8        }| j;                  «       }t)        |t<        j>                  «      �r‡|t@        u r™t)        | t        jB                  «      rtE        | j                  jF                  tH        «      r[tE        | j                  jJ                  tH        «      r7tE        | j                  jL                  tH        «      r| jO                  ||«      }n]d }| j                  rt	        | j                  d«      }t        j                  || |¬«      j                  ||j                  |«      gi «      }| j                  ry|tP        jR                  jT                  jV                  u rSt)        |t        jB                  t        jX                  f«      r)|j[                  t	        | j]                  «       |«      «       |cY S |�t_        d«       Y �Œw xY w)Nr   )Útrace_rulesr*   rÊ   rï  r¤   Tr‘   r™   r¢   r[   Ú__getattr__z)UserDefined with non-function __getattr__rª  r»   r¶   Ú_torchdynamo_inlinez7Found a method whose __func__ is not of FunctionType - )Ú"SourcelessUserDefinedObjectBuilder)Ú_buffersÚ_parameters)Wr¨   rû  r    r¢   r   r%   rK   r¯   r°   r€   r	   r½   r¼   r©   r   r   r”   r•   r–   r—   r~   r˜   r   r±   rª   ry  rR   rð  rl  rã  r²   r³   r)   ÚUnspecializedNNModuleVariabler"   r   rƒ   rÿ  Ú_modulesÚ manually_trace_nn_module_getattrri   rÛ   r³  rü  ÚNNModuleVariableÚset_nn_module_stack_sourceÚget_nn_module_stack_sourcer   r²  r«  rW   r¹   r»   r´   r¶   ÚlookupÚcreate_with_sourcer·   r¸   r®   r¾   r-   rµ   rÅ   r!   rù  rw  rÒ  r   ru   rý  rÏ  rÙ   rþ  ÚismethodÚ
isfunctionr    r   r'  r(  Úinline_inbuilt_nn_modulesÚFSDPManagedNNModuleVariableÚexportr   Ú_wrap_sourcerÁ  r[   )rY   rŽ   r‡   rû  r    r¢   Úgetattribute_fnÚ
new_sourceÚresultrÆ   ry  rè  Ú
getattr_fnÚoutr«  rÈ   Údescriptor_sourceÚdescriptor_get_sourceÚdescriptor_varÚ	owner_varÚdynamic_subobjrþ  Ú	object_vtÚsubobj_from_classÚsrc_from_classs                            r7   r®   z%UserDefinedObjectVariable.var_getattr#  s5  € Ý"Ý&à26·+²+”˜DŸK™K¨Ô.À4ˆä" 4§:¡:Ô.Ü%×4Ñ4Ü�T—Z‘ZÓ Ð"4óˆOð �{Š{Ü'¨¯©Ð5GÓH�
ð.Ü ×3Ñ3Ø# T°*ôç‘- Ð%5×%<Ñ%<¸TÓ%BÐ$CÀRÓHðIð �9‰9×!Ñ!×>Ñ>¸tÀTÔJØ—Y‘Y×+Ñ+×5Ñ5°d¸DÈTÐ5ÓRˆFÜ˜&¤)×";Ñ";Ô<Ü(¬¸Ô<ØˆMà�:ÒØ Ð(ˆGÜ×,Ñ,¨T°4ÑC¸7ÑCÐCð
 �;ÒØˆJØÐ!Ø!Ÿ_™_�
Ø Ð,ˆGÜ+¬D°·±Ó,<ÑHÀÑHÐHð+	KØ×)Ñ)¨$Ó/ˆFõX 	>à”U—X‘X—_‘_×-Ñ-Ñ-Ø-ˆFä�fœhÔ'Ø�{Š{ä#¤J¨t¯{©{¸KÓ$HÈ$ÓO�ä# F¨FÓ3�Ü×/Ñ/Ø—‘˜T¨&ôç‰m˜B  BÓ'ð(ô ˜¤Ô-Ø—>‘> $§*¡*Ó-ˆDØÐ!Ø"×)Ñ)¨$Ó/×BÑBÀ4ÐPVÐBÓWÐWà/�{×)Ñ)¨$Ó/°Ó5Ð5Ü˜¤Ô,Ü×/Ñ/Ø—‘ ×!1Ñ!1°"°kÓ!BÈ6ôð ô ˜¤× ?Ñ ?Ô@à—>‘> $§*¡*¨dÓ3ˆDÜ"×(Ñ(¨¨T°6Ó:Ð:Ü×'Ñ'¨Ô/Ô8WØ�N‰Nô9
ð
 !%ÐØ$(Ð!Ø�Šð %)×$BÑ$BÀ4Ó$HÐ!Ü(2Ð3DÀiÓ(PÐ%Ü!0×!6Ñ!6°r¸6ÐCTÓ!U‘ô ";¸6Ó!B�ô 1´°d·j±jÓ1AÓBˆIÜ×/Ñ/Ø—‘×'Ñ'¨Ð@Uôç‰m˜B  yÐ 1°2Ó6ð7ô ˜¤× 2Ñ 2Ô3Ü�vœu×/Ñ/Õ0Ü˜4Ÿ:™:¤u§x¡x§¡Õ7ô
 % T§Z¡Z°Ó6ˆNà  FÑ*¬w°vÐ?TÔ/UØ×3Ñ3�Ø!'�ÙFLœ FÐ,AÔBÐRV�ð ! FÑ*¬w°vÐ?TÕ/Uô
 ˜&¤%×"2Ñ"2Ô3Ø!×*Ñ*°$·*±*Ñ<Ü% n×&=Ñ&=¼u×?QÑ?QÔRÜ%ØUÐVdÐUeÐfôõ Lð !C× IÑ IØ˜N×3Ñ3ó!�Iô %×7Ñ7Ø&×/Ñ/°óð ð —‘‘ä! &¬%×*<Ñ*<Ô=Ð=Ð=Ø�ä×Ñ Ô/Ü ×3Ñ3°D¸$ÀvÔNÐNÜ×#Ñ# NÔ3Ü& tÔ,Ü4¸FÔCÐCØÐ'Ø&×-Ñ-¨dÓ3×FÑFØ Vð Gó ð ð 4˜;×-Ñ-¨dÓ3°DÓ9Ð9ô —‘×$Ñ$×>Ò>Ü˜d¤I×$IÑ$IÔJáÜ˜4¤×!HÑ!HÔIð —I‘I×$Ò$ð Ð2Ñ2Ü7¸¿¹ÀTÓJ�Ø×&Ñ& vÓ.ˆFàœÑ'Ü.¨vÔ6Ø# VÐ,�Ü ×0Ñ0°°tÑG¸wÑGÐGÙÜ ×4Ñ4×;Ñ;¸FÀFÓKÐKð —?‘?Ð.Ü(/×(>Ñ(>ØŸ
™
×,Ñ,¨d´Nó)Ð%ð )¨FÑ2Ü)3°D·O±OÀTÓ)J˜Ü(×<Ñ<×CÑCØ-¨~ó ð ô '×,Ñ,¨R°Ó8Ð8ô 	!¤°Õ4øôe *ò .ä)¨"×-ð.ûô4 ó )	KÜ#ˆFØ×0Ñ0Ó2ˆJÜ˜*¤e×&8Ñ&8Õ9ð Ô"=Ñ=Ü" 4¬×)PÑ)PÔQä˜tŸz™z×5Ñ5´tÔ<Ü˜tŸz™z×2Ñ2´DÔ9Ü˜tŸz™z×2Ñ2´DÔ9ð ×?Ñ?ÀÀDÓI‘Cà!%�JØ—{’{Ü%/°·±¸]Ó%K˜
Ü#×6Ñ6Ø" D°ôç#‘m BÐ)9×)@Ñ)@ÀÓ)FÐ(GÈÓLð ð —;’; :´·±·±×1LÑ1LÑ#LÜ!Øä%×CÑCÜ%×6Ñ6ðôð ×6Ñ6Ü& t×'FÑ'FÓ'HÈ$ÓOôð ’
àÐ'ÜÐIÔJúðS)	Kús+   Â8_	 Æ_$ ß	_!ß _!ß$G f7æ&f7æ6f7r‡   c                 óš  — | j                   r<t        t        | j                   |«      j                  t        j
                  «      «       	 | j                  ||«      }t        j                  j                  t        |t        j                  «       «      S # t        $ r- t        |«       t        j                  j                  d«      cY S w xY wrˆ  )r¢   r   r   rU  r   rV  r®   r	   r    r©   r~   r˜   r   r   )rY   rŽ   r‡   Úvar_vts       r7   rW  z*UserDefinedObjectVariable.call_obj_hasattr  s¥   € ð �;Š;ÜÜ˜4Ÿ;™;¨Ó-×8Ñ8¼×9MÑ9MÓNôð	<Ø×%Ñ% b¨$Ó/ˆFÜ×-Ñ-×4Ñ4Ü˜v¤y×'@Ñ'@ÓAÐAóð øô &ò 	<Ü% bÔ)Ü×-Ñ-×4Ñ4°UÓ;Ò;ð	<ús   Á
A	B Â3C
Ã	C
r[  r\  r]  r`  )%rL   rM   rN   Ú__doc__rJ   Ú_nonvar_fieldsrW   ra  rƒ  rg   rŠ  rj  r_   r—  r™  r�  r   r´   r  rb  r¦  r¨  rñ   r®  r¼  rÂ  rÆ  rÉ  r¼   rã  ré  rð  r�   rù  r®   rW  rc  rd  s   @r7   rw  rw  Ø  sR  ø„ ñð ˜|ÐQÐ.A×.PÑ.PÐQ€Nð ØØØñ#ð 
õ#ð4	5˜ó 	5ðH˜#ó Hòòô	,ô2ò
ò
Dó
ð Ø€Y×Ñ˜Óñó ó ðòð3;ð &ð	3;ð
 -ð3;ð 
õ3;ój	0ò:ô
/ò"8òð27à#ð27ð &ð27ð -ð	27ð
 
õ27òh.ò
Còó@*òNób5ðH<Ø)ð<Ø14ð<à	÷<r9   rw  c                   óV   ‡ — e Zd Zed„ «       Zdd	ˆ fd„Zd„ Zd„ Zd
ˆ fd„Zde	fd„Z
ˆ xZS )ÚFrozenDataClassVariablec           	      ó0  — ddl m} t        |«      sJ ‚i } ||«      D ]i  }t        ||j                  «      sŒt        j                  | t        ||j                  «      |xr t        ||j                  «      «      ||j                  <   Œk t        |||¬«      S )Nr   ©r1  )r1  r¢   )
r0  r1  r   ru   r‡   r-   rµ   r   r   r!  )rŽ   rK   r¢   r1  Ú	field_maprK  s         r7   r©   zFrozenDataClassVariable.create  s‡   € å&ä" 5Ô)Ð)Ð)àˆ	Ù˜E“]ò 	ˆEÜ�u˜eŸj™jÕ)Ü(7×(=Ñ(=ØÜ˜E 5§:¡:Ó.ØÒ=œz¨&°%·*±*Ó=ó)�	˜%Ÿ*™*Ò%ð	ô ' u°YÀvÔNÐNr9   rS   c                 ó<   •— t        ‰| �  |fi |¤Ž |€i }|| _        y r2   )rV   rW   r1  )rY   rK   r1  rZ   r[   s       €r7   rW   z FrozenDataClassVariable.__init__+  s&   ø€ Ü‰Ñ˜Ñ) &Ò)Øˆ>ØˆFØˆ�r9   c                 óÎ  — ddl m} dd lmc m} t        | j                  |j                  |j                  |j                  f«      st        d«      ‚g }i } || j                  «      D ]d  }|j                  sŒ| j                  |j                     j                  «       }t        |dd«      r|||j                  <   ŒT|j                  |«       Œf | j!                  «       } ||i |¤ŽS )Nr   r#  z@currently can't reconstruct arbitrary frozen dataclass instancesÚkw_onlyF)r0  r1  r�  r�  r‘  r"   rK   ÚTreeSpecÚLeafSpecÚConstantNoder¸  r2  r‡   r_   r   r?   rj  )rY   r1  r”  rã   rZ   rK  ÚdataÚctors           r7   r_   z*FrozenDataClassVariable.as_python_constant1  sÑ   € õ 	'ç,Ð,äØ�J‰J˜Ÿ™¨&¯/©/¸6×;NÑ;NÐOô
ô &ØRóð ð ˆØˆÙ˜DŸJ™JÓ'ò 	&ˆEØ�z‹zØ—{‘{ 5§:¡:Ñ.×AÑAÓC�Ü˜5 )¨UÔ3Ø)-�F˜5Ÿ:™:Ò&à—K‘K Õ%ð	&ð ×ÑÓ!ˆÙ�TÐ$˜VÑ$Ð$r9   c                 ó4  — ddl m} g }i } || j                  «      D ]b  }| j                  |j                     j	                  «       }t        |d«      r|j                  r|||j                  <   ŒR|j                  |«       Œd | j                  «       } ||i |¤ŽS )Nr   r#  r'  )	r0  r1  rK   r‡   rb   ru   r'  r?   rj  )rY   r1  rã   rZ   rK  rØ   r,  s          r7   rb   z FrozenDataClassVariable.as_proxyO  sŒ   € Ý&àˆØˆÙ˜DŸJ™JÓ'ò 	#ˆEØ—K‘K §
¡
Ñ+×4Ñ4Ó6ˆEÜ�u˜iÔ(¨U¯]ª]Ø%*��u—z‘zÒ"à—‘˜EÕ"ð	#ð ×ÑÓ!ˆÙ�TÐ$˜VÑ$Ð$r9   c                 ó`   •— || j                   |j                  «       <   t        ‰| �  |||«      S r2   )r1  r_   rV   r®  )rY   rŽ   r‡   rK   r[   s       €r7   r®  z/FrozenDataClassVariable.method_setattr_standarde  s.   ø€ Ø16ˆ�‰�D×+Ñ+Ó-Ñ.Ü‰wÑ.¨r°4¸Ó?Ð?r9   c                 ób   — | j                   j                  › d| j                  j                  › d�S rd   r…  r^   s    r7   rg   z FrozenDataClassVariable.__repr__i  r†  r9   r2   r[  r\  )rL   rM   rN   r´   r©   rW   r_   rb   r®  ra  rg   rc  rd  s   @r7   r!  r!    s:   ø„ ØñOó ðOö ò%ò<%õ,@ðH˜#÷ Hr9   r!  c                   ó8   ‡ — e Zd Z	 	 dˆ fd„Z	 	 	 	 	 	 dd„Zˆ xZS )ÚSourcelessGraphModuleVariablec                 ó&   •— t        ‰| �  |fi |¤Ž y r2   )rV   rW   rX   s      €r7   rW   z&SourcelessGraphModuleVariable.__init__n  s   ø€ ô
 	‰Ñ˜Ñ) &Ó)r9   c                 óš   — t        j                  | j                  j                  j                  «      }| g|z   }|j                  |||«      S r2   )r	   rº   rK   Úforwardr¸   r  )rY   rŽ   r‡   rã   rZ   Úfn_variables         r7   rñ   z)SourcelessGraphModuleVariable.call_methodu  sK   € ô  ×4Ñ4°T·Z±Z×5GÑ5G×5PÑ5PÓQˆØˆv˜‰}ˆØ×-Ñ-ØØØó
ð 	
r9   r[  r]  )rL   rM   rN   rW   rñ   rc  rd  s   @r7   r1  r1  m  s5   ø„ ð*ð 
õ	*ð
ð &ð	
ð
 -ð
ð 
÷
r9   r1  c                   ó`   ‡ — e Zd Zˆ fd„Zed„ «       Zˆ fd„Zed„ «       Zdd„Zed„ «       Z	ˆ xZ
S )Ú"UserDefinedExceptionObjectVariablec                 óp   •— t        ‰| �  |fi |¤Ž t        j                  | j                  d«      | _        y rU   )rV   rW   r	   ÚExceptionVariablerx  Úexc_vtrX   s      €r7   rW   z+UserDefinedExceptionObjectVariable.__init__†  s-   ø€ Ü‰Ñ˜Ñ) &Ò)Ü×1Ñ1°$·/±/À2ÓFˆ�r9   c                 ó   — | j                   S r2   rŒ  r^   s    r7   rB  z%UserDefinedExceptionObjectVariable.fnŠ  s   € à�‰Ðr9   c                 óÔ  •— |dk(  rm| j                  |«      x}rZt        j                  |«      rEt        |«      dk(  r7|| j                  _        || j                  _        t        j                  d «      S |dk(  r_t        |«      dk(  rQt        |d   t        j                  «      r4|d   j                  dv r#| j                  j                  ||d   |d   «       t        ‰| �1  ||||«      S )NrW   r   r4   r   )Ú	__cause__Ú__context__Ú__suppress_context__Ú__traceback__r*   )r¨  r¯   rÅ   rì   r:  rã   rK   r	   r    r~   Úcall_setattrrV   rñ   ©rY   rŽ   r‡   rã   rZ   r�  r[   s         €r7   rñ   z.UserDefinedExceptionObjectVariable.call_methodŽ  sÔ   ø€ à�JÒØ×;Ñ;¸DÓAÐA�ÐAÜ×*Ñ*¨6Ô2Ü�F“˜qÒ à#ˆD�K‰KÔØ"ˆD�J‰JŒOÜ×-Ñ-¨dÓ3Ð3à�MÒ!Ü�D“	˜Q’Ü˜4 ™7¤I×$>Ñ$>Ô?Ø�Q‘—‘ØTñUð �K‰K×$Ñ$ R¨¨a©°$°q±'Ô:Ü‰wÑ" 2 t¨T°6Ó:Ð:r9   c                 ó.   — | j                   j                  S r2   )r:  r>  r^   s    r7   r>  z.UserDefinedExceptionObjectVariable.__context__¢  s   € à�{‰{×&Ñ&Ð&r9   c                 ó8   — | j                   j                  |«      S r2   )r:  Úset_context)rY   Úcontexts     r7   rE  z.UserDefinedExceptionObjectVariable.set_context¦  s   € Ø�{‰{×&Ñ& wÓ/Ð/r9   c                 ó.   — | j                   j                  S r2   )r:  Úexc_typer^   s    r7   rH  z+UserDefinedExceptionObjectVariable.exc_type©  s   € à�{‰{×#Ñ#Ð#r9   )rF  zvariables.ExceptionVariable)rL   rM   rN   rW   r¹   rB  rñ   r>  rE  rH  rc  rd  s   @r7   r7  r7  …  sO   ø„ ôGð ñó ðô;ð( ñ'ó ð'ó0ð ñ$ó ô$r9   r7  c                   ó<   ‡ — e Zd Zed„ «       Zdˆ fd„Zdˆ fd„Zˆ xZS )ÚKeyedJaggedTensorVariablec                 óz   — t         j                  j                  d«      }|d uxr t        | «      |j                  u S )Nztorchrec.sparse.jagged_tensor)rA   rB   rC   r€   ÚKeyedJaggedTensor)rÇ   Úmods     r7   Úis_matching_objectz,KeyedJaggedTensorVariable.is_matching_object¯  s3   € ä�k‰k�o‰oÐ=Ó>ˆØ˜$ˆÒE¤4¨£9°×0EÑ0EÐ#EÐEr9   c                 óP   •— ddl m} t        |«      |u sJ ‚t        ‰| �  |fi |¤Ž y )Nr   )rL  )Útorchrec.sparse.jagged_tensorrL  r€   rV   rW   )rY   rK   rZ   rL  r[   s       €r7   rW   z"KeyedJaggedTensorVariable.__init__´  s+   ø€ ÝCä�E‹{Ð/Ñ/Ð/Ð/Ü‰Ñ˜Ñ) &Ó)r9   c                 ó  •— t         j                  j                  j                  r@| j                  �4|dv r0t        j                  d¬«      5  t        ‰| �!  ||«      cd d d «       S t        ‰| �!  ||«      S # 1 sw Y   ŒxY w)N)Ú_length_per_keyÚ_offset_per_keyT)Ú#force_unspec_int_unbacked_size_like)	ri   r'  r(  Ú3force_unspec_int_unbacked_size_like_on_torchrec_kjtr¢   r   ÚpatchrV   r®   rZ  s      €r7   r®   z%KeyedJaggedTensorVariable.var_getattrº  sr   ø€ ä�M‰M× Ñ ×TÒTØ—‘Ð'ØÐ>Ñ>ä×%Ñ%È$ÔOñ 5Ü‘wÑ*¨2¨tÓ4÷5ñ 5ä‰wÑ" 2 tÓ,Ð,÷5ð 5ús   ÁA6Á6A?r[  r\  )rL   rM   rN   r´   rN  rW   r®   rc  rd  s   @r7   rJ  rJ  ®  s&   ø„ ØñFó ðFõ*÷-ñ -r9   rJ  c                   ó   — e Zd Zy)ÚRemovableHandleClassNrm  rP   r9   r7   rX  rX  Å  s   „ ð 	r9   rX  c                   óH   ‡ — e Zd ZdZ	 	 d	 dˆ fd„Zdˆ fd„Zˆ fd„Zd„ Zˆ xZS )	ÚRemovableHandleVariableéÿÿÿÿc                 ó@   •— t        ‰| �  di |¤Ž || _        || _        y rU   )rV   rW   rë   rô  )rY   rë   rô  rZ   r[   s       €r7   rW   z RemovableHandleVariable.__init__Î  s$   ø€ ô 	‰ÑÑ"˜6Ò"Ø*ˆÔØˆ�r9   c                 ó$  •— |dk(  rx| j                   | j                  k7  r@|j                  j                  j	                  | j                   «       | j                  | _         t
        j                  j                  d «      S t        ‰| �%  ||||«       y )NÚremove)
rô  ÚREMOVEDr”   r•   Úremove_hookr	   r    r©   rV   rñ   )rY   rŽ   Úmethod_namerã   rZ   r[   s        €r7   rñ   z#RemovableHandleVariable.call_methodÙ  sl   ø€ Ø˜(Ò"Ø�x‰x˜4Ÿ<™<Ò'Ø—	‘	×&Ñ&×2Ñ2°4·8±8Ô<ØŸ<™<�”Ü×-Ñ-×4Ñ4°TÓ:Ð:Ü‰Ñ˜B ¨T°6Õ:r9   c                 ó¸   •‡— | j                   | j                  k(  r0‰j                  ˆfd„«       ‰j                  t	        dd«      «       y t
        ‰| �  ‰«       y )Nc                  ó(   •— ‰ j                  dd«      S )Nztorch._dynamo.utilsÚinvalid_removeable_handle)Úload_import_from)Úcodegens   €r7   ú<lambda>z5RemovableHandleVariable.reconstruct.<locals>.<lambda>å  s   ø€ ˜×0Ñ0Ø)Ð+Fó€ r9   r   F)rô  r_  Úadd_push_nullÚextend_outputr
   rV   Úreconstruct)rY   rf  r[   s    `€r7   rj  z#RemovableHandleVariable.reconstructá  sN   ù€ Ø�8‰8�t—|‘|Ò#à×!Ñ!óôð
 ×!Ñ!Ô"6°q¸%Ó"@ÔAØä‰Ñ˜GÕ$r9   c                 ó   — t         S r2   )rX  r^   s    r7   rj  z#RemovableHandleVariable.python_typeî  s   € Ü#Ð#r9   )NNr[  r\  )	rL   rM   rN   r_  rW   rñ   rj  rj  rc  rd  s   @r7   rZ  rZ  Ë  s.   ø„ Ø€Gð àð		ð 
õ	õ;ô%ö$r9   rZ  c                   ó`   ‡ — e Zd ZdZej
                  Zdˆ fd„	Z	 	 	 	 	 	 dˆ fd„Zd„ Zd„ Z	ˆ xZ
S )ÚUserDefinedDictVariablezü
    Represents user defined objects that are subclasses of dict/OrderedDict.

    Internally, it uses a ConstDictVariable to represent the dict part of the
    variable tracker. For everything else, it falls back to
    UserDefinedObjectVariable.
    c                 óÐ   •— t        ‰| �  |fi |¤Ž || _        | j                  €7| j                  �J d«       ‚t	        j
                  i t        «       ¬«      | _        t        | _        y )Nz@dict_vt must be constructed by builder.py when source is presentrê   )	rV   rW   Ú_dict_vtr¢   r	   rï   r,   r   Ú_dict_methods)rY   rK   Údict_vtrZ   r[   s       €r7   rW   z UserDefinedDictVariable.__init__ý  sg   ø€ Ü‰Ñ˜Ñ) &Ò)ØˆŒØ�=‰=Ð Ø—;‘;Ð&ð ØRóÐ&ô &×7Ñ7ØÔ"2Ó"4ôˆDŒMô *ˆÕr9   c                 ó¢   •— | j                  |«      }|| j                  v r| j                  j                  ||||«      S t        ‰| �  ||||«      S r2   )r¨  rp  ro  rñ   rV   rB  s         €r7   rñ   z#UserDefinedDictVariable.call_method	  sT   ø€ ð ×1Ñ1°$Ó7ˆØ�T×'Ñ'Ñ'Ø—=‘=×,Ñ,¨R°°t¸VÓDÐDÜ‰wÑ" 2 t¨T°6Ó:Ð:r9   c                 óÖ   — t        | j                  «      j                  t        j                  t        j
                  j                  fv r| j                  j                  |«      S t        ‚r2   )	r€   rK   r¾  rƒ   r«   r¬   ro  rÂ  r¸  rÅ  s     r7   rÂ  z+UserDefinedDictVariable.unpack_var_sequence  sQ   € Ü�—
‘
Ó×$Ñ$Ü�M‰MÜ×#Ñ#×,Ñ,ð)
ñ 
ð —=‘=×4Ñ4°RÓ8Ð8Ü!Ð!r9   c                 ó8   — |j                  | j                  «      S r2   )Úis_modifiedro  r‰  s     r7   rŠ  z1UserDefinedDictVariable.is_underlying_vt_modified  ó   € Ø×'Ñ'¨¯©Ó6Ð6r9   r2   r]  ©rL   rM   rN   r  rw  r  rW   rñ   rÂ  rŠ  rc  rd  s   @r7   rm  rm  ò  sG   ø„ ñð /×=Ñ=€Nõ
*ð
;ð &ð	
;ð
 -ð
;ð 
õ
;ò"ö7r9   rm  c                   ó`   ‡ — e Zd ZdZej
                  Zdˆ fd„	Z	 	 	 	 	 	 dˆ fd„Zd„ Zd„ Z	ˆ xZ
S )ÚUserDefinedListVariablezì
    Represents user defined objects that are subclasses of lists.

    Internally, it uses a ListVariable to represent the list part of the
    variable tracker. For everything else, it falls back to
    UserDefinedObjectVariable.
    c                 ó¼   •— t        ‰| �  |fi |¤Ž || _        | j                  €8| j                  �J d«       ‚t	        j
                  g t        «       ¬«      | _        y y )Nz@list_vt must be constructed by builder.py when source is presentrê   )rV   rW   Ú_list_vtr¢   r	   r7  r,   )rY   rK   Úlist_vtrZ   r[   s       €r7   rW   z UserDefinedListVariable.__init__,  s_   ø€ Ü‰Ñ˜Ñ) &Ò)ØˆŒØ�=‰=Ð Ø—;‘;Ð&ð ØRóÐ&ô &×2Ñ2°2ÔEUÓEWÔXˆD�Mð	 !r9   c                 ó²   •— | j                   €J ‚| j                  |«      }|t        v r| j                   j                  ||||«      S t        ‰| �  ||||«      S r2   )r{  r¨  r#   rñ   rV   rB  s         €r7   rñ   z#UserDefinedListVariable.call_method5  s^   ø€ ð �}‰}Ð(Ð(Ð(Ø×1Ñ1°$Ó7ˆØ”\Ñ!Ø—=‘=×,Ñ,¨R°°t¸VÓDÐDÜ‰wÑ" 2 t¨T°6Ó:Ð:r9   c                 ó¾   — | j                   €J ‚t        | j                  «      j                  t        j                  u r| j                   j                  |«      S t        ‚r2   )r{  r€   rK   r¾  r…   rÂ  r¸  rÅ  s     r7   rÂ  z+UserDefinedListVariable.unpack_var_sequenceB  sH   € Ø�}‰}Ð(Ð(Ð(Ü�—
‘
Ó×$Ñ$¬¯©Ñ5Ø—=‘=×4Ñ4°RÓ8Ð8Ü!Ð!r9   c                 ó8   — |j                  | j                  «      S r2   )ru  r{  r‰  s     r7   rŠ  z1UserDefinedListVariable.is_underlying_vt_modifiedH  rv  r9   r2   r]  rw  rd  s   @r7   ry  ry  !  sH   ø„ ñð /×=Ñ=€NõYð;ð &ð	;ð
 -ð;ð 
õ;ò"ö7r9   ry  c                   ón   ‡ — e Zd ZdZej
                  Zˆ fd„Zd„ Zed„ «       Z		 	 	 	 	 	 dˆ fd„Z
d„ Zˆ xZS )ÚUserDefinedTupleVariablezî
    Represents user defined objects that are subclasses of tuple.

    Internally, it uses a TupleVariable to represent the tuple part of the
    variable tracker. For everything else, it falls back to
    UserDefinedObjectVariable.
    c                 ó4   •— t        ‰| �  |fi |¤Ž d | _        y r2   )rV   rW   Ú	_tuple_vtrX   s      €r7   rW   z!UserDefinedTupleVariable.__init__W  s   ø€ Ü‰Ñ˜Ñ) &Ò)Øˆ�r9   c                 ó   — || _         y r2   )rƒ  )rY   Útuple_vts     r7   Úset_underlying_tuple_vtz0UserDefinedTupleVariable.set_underlying_tuple_vt[  s	   € Ø!ˆ�r9   c                 ó@   — t        | fi |¤Ž}|j                  |«       |S r2   )r�  r†  )rK   r…  rZ   r  s       r7   r©   zUserDefinedTupleVariable.create^  s$   € ä)¨%Ñ:°6Ñ:ˆØ×&Ñ& xÔ0Øˆr9   c                 ó²   •— | j                   €J ‚| j                  |«      }|t        v r| j                   j                  ||||«      S t        ‰| �  ||||«      S r2   )rƒ  r¨  r(   rñ   rV   rB  s         €r7   rñ   z$UserDefinedTupleVariable.call_methodd  s^   ø€ ð �~‰~Ð)Ð)Ð)Ø×1Ñ1°$Ó7ˆØ”]Ñ"Ø—>‘>×-Ñ-¨b°$¸¸fÓEÐEÜ‰wÑ" 2 t¨T°6Ó:Ð:r9   c                 ó¾   — | j                   €J ‚t        | j                  «      j                  t        j                  u r| j                   j                  |«      S t        ‚r2   )rƒ  r€   rK   r¾  r„   rÂ  r¸  rÅ  s     r7   rÂ  z,UserDefinedTupleVariable.unpack_var_sequenceq  sH   € Ø�~‰~Ð)Ð)Ð)Ü�—
‘
Ó×$Ñ$¬¯©Ñ6Ø—>‘>×5Ñ5°bÓ9Ð9Ü!Ð!r9   r]  )rL   rM   rN   r  rw  r  rW   r†  r´   r©   rñ   rÂ  rc  rd  s   @r7   r�  r�  L  s[   ø„ ñð /×=Ñ=€Nôò"ð ñó ðð
;ð &ð	;ð
 -ð;ð 
õ;ö"r9   r�  c                   óN   ‡ — e Zd Zej                  Zˆ fd„Zdddeddfˆ fd„Zˆ xZS )ÚMutableMappingVariablec                 óx   •— t        ‰| �  |fi |¤Ž t        j                  i «      | _        t        «       | _        y r2   )rV   rW   r	   rï   Úgeneric_dict_vtr+   rë   rX   s      €r7   rW   zMutableMappingVariable.__init__{  s3   ø€ Ü‰Ñ˜Ñ) &Ò)Ü(×:Ñ:¸2Ó>ˆÔÜ6Ó8ˆÕr9   rŽ   r0   r‡   rS   r-   c                 óT  •— |dk(  rwt        | j                  «      j                  t        j                  j
                  j                  t        j                  fv r$t        j                  t        j                  | «      S |dk(  re| j                  rYt        j                  j                  | j                  j                  t        | j                  d«      «      | _        | j                   S | j                   j#                  t        j$                  |«      «      x}r|S t&        ‰| �Q  ||«      S )NrC   r™   )r€   rK   rC   r«   ÚabcÚMappingrƒ   r	   r½   r   Úmapping_getr¢   rÁ  r©   r™   r   r�  Úmaybe_getitem_constr    rV   r®   )rY   rŽ   r‡   r  r[   s       €r7   r®   z"MutableMappingVariable.var_getattr€  sò   ø€ ð �5Š=œT $§*¡*Ó-×1Ñ1Ü�O‰O×#Ñ#×'Ñ'Ü�H‰Hð6
ñ 
ô ×/Ñ/´	×0EÑ0EÀtÓLÐLØ�ZÒ D§K¢KÜ#,×#@Ñ#@×#GÑ#GØ—
‘
×#Ñ#¤Z°·±¸ZÓ%Hó$ˆDÔ ð ×'Ñ'Ð'Ø×(Ñ(×<Ñ<Ü×&Ñ& tÓ,ó
ð 
ˆSð 
ð ˆJä‘7Ñ& r¨4Ó0Ð0r9   )	rL   rM   rN   rw  r  rW   ra  r®   rc  rd  s   @r7   r‹  r‹  x  s4   ø„ Ø.×=Ñ=€Nô9ð
1Ð5ð 1¸Sð 1ÐEV÷ 1ñ 1r9   r‹  c                   ó   — e Zd Zy)r;  Nrm  rP   r9   r7   r;  r;  š  rn  r9   r;  )dr  r}   r«   r  r0  rÂ   r  r¯   r9  rA   r¬  r²   r  r  Útypingr   Útyping_extensionsr   Útorch._dynamo.configri   Útorch.nnÚtorch._guardsr   Útorch.utils._python_dispatchr   r¨   r   r	   Úbytecode_transformationr
   Úcreate_parameter_opr   Úexcr   r   r   r   Úguardsr   r   r¢   r   r   r   r   r   r   r�  r   r   r   r   r   r   r   r   r    r!   r"   r#   r$   r%   r&   r'   r(   r)   Úbaser+   r,   r-   Údictsr.   Únumpyr6  ÚModuleNotFoundErrorÚtorch.utils._cxx_pytreer/   r@   r€   Útorch._dynamo.symbolic_convertr0   r8   rH   rJ   rR   rf  rl  ru  rw  r!  r1  r7  rJ  rX  rZ  rm  ry  r�  r‹  r;  rP   r9   r7   ú<module>r¤     s¾  ðñó* Û Û Û Û Û Û Û Û 
Û Û Û Û Ý  Ý *ã Û Ý (Ý Kç #Ý :Ý F÷ó ÷ 1÷÷ ÷÷ ÷ ÷ ÷ ÷( OÑ NÝ &ðÛðÝ2ñ
 ÝDòBòô$˜/ô ôx/Ð2ô x/ôvÐ(@ô ÷	ñ 	òSô~<Ð 3ô ~<ôBQHÐ7ô QHôh
Ð$=ô 
ô0&$Ð)Bô &$ôR-Ð 9ô -÷.	ñ 	ô$$˜oô $$ôN,7Ð7ô ,7ô^(7Ð7ô (7ôV)"Ð8ô )"ôX1Ð6ô 1ôD	Ð.õ 	øðC2 ò Ø	‚Bðûð
 ò Ù�d“‚Jðús$   ÃF ÃF  ÆFÆFÆ F0Æ/F0