§
    Ì²ÅjŸB  ã                  óª  — d dl mZ d dlmZ d dlmZ d dlmZmZm	Z	m
Z
mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZm Z m!Z!m"Z"m#Z# d dl$m%Z%m&Z&m'Z'm(Z(m)Z)m*Z*m+Z+m,Z,m-Z-m.Z.m/Z/m0Z0 d dl1m2Z2 erd dl3m4Z4 ddd	œdId„Z5ddddœdJd„Z6dddœdKd„Z7dd œdLd#„Z8dd œdMd%„Z9dd œdNd(„Z:dd œdOd+„Z;d,d-œdPd2„Z<d3d4d5d6d7d8d9d:œZ=dQd<„Z>dd œdRdD„Z?dd œdSdG„Z@dHS )Té    )Úannotations)ÚTYPE_CHECKING)Úlocal)ÚArgNameÚ
ArrayCTypeÚArrayRefCTypeÚ	BaseCTypeÚBaseTypeToCppMappingÚBindingÚboolTÚConstRefCTypeÚCTypeÚdimnameListTÚintArrayRefTÚiTensorListRefTÚ	ListCTypeÚlongTÚMutRefCTypeÚ
NamedCTypeÚOptionalCTypeÚoptionalIntArrayRefTÚoptionalSymIntArrayRefTÚscalarTÚSpecialArgNameÚsymIntArrayRefTÚSymIntTÚtensorListTÚtensorOptionsTÚtensorTÚ
TupleCTypeÚVectorCTypeÚvoidT)ÚArgumentÚ	ArgumentsÚBaseTyÚBaseTypeÚFunctionSchemaÚListTypeÚNativeFunctionÚOptionalTypeÚReturnÚSelfArgumentÚTensorOptionsArgumentsÚType)Úassert_never)ÚSequenceF)Úfaithful_name_for_out_overloadsÚsymint_overloadÚfuncr'   r1   Úboolr2   ÚreturnÚstrc               óˆ   — t          | j        j        ¦  «        }|r|dz  }|                      ¦   «         r|r|dz  }n|dz  }|S )NÚ_symintÚ_outfÚ_out)r6   ÚnameÚ	is_out_fn)r3   r1   r2   r;   s       úAC:\Projects\Historical\venv\Lib\site-packages\torchgen/api/cpp.pyr;   r;   L   sZ   € õ ˆtŒyŒ~ÑÔ€DØð Ø�	ÑˆØ‡~‚~ÑÔð Ø*ð 	Ø�G‰OˆDˆDà�F‰NˆDà€Kó    T)ÚmutableÚremove_non_owning_ref_typesÚsymintÚtr.   Úbindsr   r?   r@   rA   úNamedCType | Nonec               óš  — t          | t          ¦  «        rØ| j        t          j        k    s| j        t          j        k    rd S t          | ¦  «        dk    rF|r"t          |t          t          ¦  «        ¦  «        S t          |t          t          ¦  «        ¦  «        S |r$| j        t          j        k    rt          d¦  «        ‚t          |t          t          | j                 ¦  «        ¦  «        S t          | t          ¦  «        r>t          | j        |||¬¦  «        }|€d S t          |t!          |j        ¦  «        ¦  «        S t          | t$          ¦  «        rXt          | j        ¦  «        dk    r>| j        €J ‚t          |t)          t          t*          ¦  «        | j        ¦  «        ¦  «        S d S t          dt-          | ¦  «        › �¦  «        ‚)NÚSymIntz1string ref->value conversion: not implemented yet©rC   r?   rA   r4   úunrecognized type )Ú
isinstancer&   r;   r%   ÚTensorÚScalarr6   r   r	   r   r   ÚAssertionErrorr
   r*   Úvaluetype_typeÚelemr   Útyper(   Úsizer   r   Úrepr)rB   rC   r?   r@   rA   rN   s         r=   rM   rM   a   s–  € õ �!•XÑÔð =ØŒ6•V”]Ò"Ð" a¤fµ´Ò&=Ð&=Ø�4Ý�‰VŒV�xÒÐØð ;Ý! %­µ7Ñ);Ô);Ñ<Ô<Ð<å! %­µ5Ñ)9Ô)9Ñ:Ô:Ð:Ø&ð 	ØŒv�œÒ#Ð#Ý$ØGñô ð õ ˜%¥Õ+?ÀÄÔ+GÑ!HÔ!HÑIÔIÐIÝ	�A•|Ñ	$Ô	$ð =Ý˜aœf¨E¸7È6ÐRÑRÔRˆØˆ<Ø�4Ý˜%¥¨t¬yÑ!9Ô!9Ñ:Ô:Ð:Ý	�A•xÑ	 Ô	 ð =ÝˆqŒv‰;Œ;˜&Ò Ð Ø”6Ð%Ð%Ð%Ý˜e¥Zµ	½%Ñ0@Ô0@À!Ä&Ñ%IÔ%IÑJÔJÐJà�4åÐ;µ$°q±'´'Ð;Ð;Ñ<Ô<Ð<r>   )r@   rA   r   c               ó,  — t          | ||||¬¦  «        }|�|S t          | t          ¦  «        rÞ| j        t          j        k    rs|rBt          j        ¦   «         s/t          |t          t          t          ¦  «        ¦  «        ¦  «        S t          |t          t          t          ¦  «        ¦  «        ¦  «        S | j        t          j        k    r/t          |t          t          t          ¦  «        ¦  «        ¦  «        S t          d| › �¦  «        ‚t          | t           ¦  «        �rüt#          | j        ¦  «        dk    r€|rBt          j        ¦   «         s/t          |t          t          t          ¦  «        ¦  «        ¦  «        S t          |t          t'          t          t          ¦  «        ¦  «        ¦  «        ¦  «        S t#          | j        ¦  «        dk    r<t          |t          t'          t          t          ¦  «        ¦  «        ¦  «        ¦  «        S t          | j        t(          ¦  «        r?t#          | j        j        ¦  «        dk    r"t          |t          t*          ¦  «        ¦  «        S t          | j        t(          ¦  «        rct#          | j        j        ¦  «        dk    rF|r"t          |t          t,          ¦  «        ¦  «        S t          |t          t*          ¦  «        ¦  «        S t/          | j        |||¬¦  «        }t          |t'          |j        ¦  «        ¦  «        S t          | t(          ¦  «        �rÃt#          | j        ¦  «        dk    rS|r/t          |t3          t          t4          ¦  «        ¦  «        ¦  «        S t          |t          t6          ¦  «        ¦  «        S t#          | j        ¦  «        dk    r¨|r`|r/t          |t3          t          t8          ¦  «        ¦  «        ¦  «        S t          |t3          t          t4          ¦  «        ¦  «        ¦  «        S |r"t          |t          t:          ¦  «        ¦  «        S t          |t          t6          ¦  «        ¦  «        S t#          | j        ¦  «        dk    rdt          j        ¦   «         r/t          |t          t          t>          ¦  «        ¦  «        ¦  «        S t          |t          t@          ¦  «        ¦  «        S t#          | j        ¦  «        dk    r/t          |tC          t          t          ¦  «        ¦  «        ¦  «        S t#          | j        ¦  «        dk    r"t          |t          tD          ¦  «        ¦  «        S t#          | j        ¦  «        d	k    rIt          |t          tG          t'          t          t          ¦  «        ¦  «        ¦  «        ¦  «        ¦  «        S t/          | j        |||¬¦  «        }t          |tC          |j        ¦  «        ¦  «        S t          d
tI          | ¦  «        › �¦  «        ‚)N)rC   r?   rA   r@   z&base type should have been value type rJ   rK   ÚintrF   )r?   rC   rA   ÚDimnameúTensor?rH   )%rM   rI   r&   r;   r%   rJ   r   Ú!use_const_ref_for_mutable_tensorsr   r   r	   r   r   rK   r   rL   r*   r6   rN   r   r(   r   r   Úargumenttype_typerO   r!   r   r   r   r   Úuse_ilistref_for_tensor_listsr   r   r   r   r   rQ   )rB   r?   rC   r@   rA   ÚrrN   s          r=   rW   rW   ‹   sý  € õ 	Ø	ØØØØ$?ð	ñ 	ô 	€Að 	€}Øˆå�!•XÑÔð A=ØŒ6•V”]Ò"Ð"Øð L�uÔFÑHÔHð LÝ! %­µY½wÑ5GÔ5GÑ)HÔ)HÑIÔIÐIå! %­µyÅÑ7IÔ7IÑ)JÔ)JÑKÔKÐKØŒV•v”}Ò$Ð$Ý˜e¥]µ9½WÑ3EÔ3EÑ%FÔ%FÑGÔGÐGå Ð!MÈ!Ð!MÐ!MÑNÔNÐNÝ	�A•|Ñ	$Ô	$ñ 7=ÝˆqŒv‰;Œ;˜(Ò"Ð"Øð �uÔFÑHÔHð Ý!Ø�;¥yµÑ'9Ô'9Ñ:Ô:ñô ð õ "Ø�=­µyÅÑ7IÔ7IÑ)JÔ)JÑKÔKñô ð õ �”‰[Œ[˜HÒ$Ð$Ý˜e¥]µ=ÅÍ7ÑASÔASÑ3TÔ3TÑ%UÔ%UÑVÔVÐVÝ˜œ¥Ñ)Ô)ð 	J­c°!´&´+Ñ.>Ô.>À%Ò.GÐ.GÝ˜e¥YÕ/CÑ%DÔ%DÑEÔEÐEÝ˜œ¥Ñ)Ô)ð 	J­c°!´&´+Ñ.>Ô.>À(Ò.JÐ.JØð JÝ! %­Õ3JÑ)KÔ)KÑLÔLÐLå! %­Õ3GÑ)HÔ)HÑIÔIÐIÝ  ¤°ÀÈfÐUÑUÔUˆÝ˜%¥¨t¬yÑ!9Ô!9Ñ:Ô:Ð:Ý	�A•xÑ	 Ô	 ñ "=åˆqŒv‰;Œ;˜%ÒÐØ*ð BÝ! %­µY½uÑ5EÔ5EÑ)FÔ)FÑGÔGÐGå! %­µ<Ñ)@Ô)@ÑAÔAÐAÝˆqŒv‰;Œ;˜(Ò"Ð"Ø*ð 	FØð LÝ% e­[½Å7Ñ9KÔ9KÑ-LÔ-LÑMÔMÐMå% e­[½Å5Ñ9IÔ9IÑ-JÔ-JÑKÔKÐKàð FÝ% e­YµÑ-GÔ-GÑHÔHÐHå% e­Yµ|Ñ-DÔ-DÑEÔEÐEÝˆqŒv‰;Œ;˜(Ò"Ð"ÝÔ2Ñ4Ô4ð AÝ! %­µyÅÑ7QÔ7QÑ)RÔ)RÑSÔSÐSå! %­µ;Ñ)?Ô)?Ñ@Ô@Ð@Ý�”‰[Œ[˜HÒ$Ð$Ý˜e¥]µ9½WÑ3EÔ3EÑ%FÔ%FÑGÔGÐGÝ�”‰[Œ[˜IÒ%Ð%Ý˜e¥Y­|Ñ%<Ô%<Ñ=Ô=Ð=Ý�”‰[Œ[˜IÒ%Ð%ÝØ•}¥Y­}½YÅwÑ=OÔ=OÑ/PÔ/PÑ%QÔ%QÑRÔRñô ð õ ! ¤°ÀÈfÐUÑUÔUˆÝ˜%¥¨t¬yÑ!9Ô!9Ñ:Ô:Ð:åÐ;µ$°q±'´'Ð;Ð;Ñ<Ô<Ð<r>   ©rA   Úar#   c               ó<   — t          | j        | j        ||¬¦  «        S )N)r?   rA   rC   )rW   rO   Úis_write)r[   rC   rA   s      r=   Úargument_typer^   ã   s   € Ý˜QœV¨Q¬ZÀÈeÐTÑTÔTÐTr>   r   c               ó4  — t          | d|d¬¦  «        }|�|j        S t          | t          ¦  «        rª| j        t
          j        k    rk|rUt          j        ¦   «         r!t          t          t          ¦  «        ¦  «        S t          t          t          ¦  «        ¦  «        S t          t          ¦  «        S | j        t
          j        k    rt          t          ¦  «        S n¬t          | t          ¦  «        rE|r
J d¦   «         ‚t!          | j        d¬¦  «        }| j        �J d| › �¦   «         ‚t'          |¦  «        S t          | t(          ¦  «        r=t!          | j        |¬¦  «        }t+          | j        ¦  «        dk    rt-          |¦  «        S t/          d	| › �¦  «        ‚)
NÚ__placeholder__TrG   zTNative functions should never return a mutable tensor list. They should return void.F)r?   z'fixed size list returns not supported: rJ   zunrecognized return type )rM   rO   rI   r&   r;   r%   rJ   r   rV   r   r	   r   r   rK   r   r(   Úreturntype_typerN   rP   r!   r*   r6   r   rL   )rB   r?   rA   rY   rN   s        r=   ra   ra   ì   s  € õ 	�qÐ 1¸7È4ÐPÑPÔP€AØ€}ØŒvˆå�!•XÑÔð 'ØŒ6•V”]Ò"Ð"Øð 
*ÝÔ:Ñ<Ô<ð ;Ý(­µ7Ñ);Ô);Ñ<Ô<Ð<å&¥yµÑ'9Ô'9Ñ:Ô:Ð:õ !¥Ñ)Ô)Ð)ØŒV•v”}Ò$Ð$Ý�WÑ%Ô%Ð%ð %å	�A•xÑ	 Ô	 ð 'ØÐrÐrÐrÑrÔrˆ{Ý˜qœv¨uÐ5Ñ5Ô5ˆØŒvˆ~ˆ~ÐLÈÐLÐL‰~Œ~ˆ~Ý˜4Ñ Ô Ð Ý	�A•|Ñ	$Ô	$ð 'Ý˜qœv¨wÐ7Ñ7Ô7ˆÝˆqŒv‰;Œ;˜(Ò"Ð"Ý  Ñ&Ô&Ð&å
Ð8°QÐ8Ð8Ñ
9Ô
9Ð9r>   rY   r+   c               ó:   — t          | j        | j        |¬¦  «        S )N)r?   rA   )ra   rO   r]   )rY   rA   s     r=   Úreturn_typerc     s   € Ý˜1œ6¨1¬:¸fÐEÑEÔEÐEr>   ÚrsúSequence[Return]c               óÜ   ‡— t          | ¦  «        dk    rt          t          ¦  «        S t          | ¦  «        dk    rt          | d         ‰¬¦  «        S t	          ˆfd„| D ¦   «         ¦  «        S )Nr   é   rZ   c                ó2   •— g | ]}t          |‰¬ ¦  «        ‘ŒS )rZ   )rc   )Ú.0rY   rA   s     €r=   ú
<listcomp>z returns_type.<locals>.<listcomp>  s&   ø€ ÐEÐEÐE¸Q�; q°Ð8Ñ8Ô8ÐEÐEÐEr>   )Úlenr	   r"   rc   r    )rd   rA   s    `r=   Úreturns_typerl     si   ø€ Ý
ˆ2�w„w�!‚|€|Ý�ÑÔÐÝ	ˆR‰Œ�AŠˆÝ˜2˜aœ5¨Ð0Ñ0Ô0Ð0åÐEÐEÐEÐEÀ"ÐEÑEÔEÑFÔFÐFr>   Úresult)Úfallback_nameÚfr)   rn   úSequence[str]c               óN  ‡— g }t          | j        j        ¦  «        D �]\  }Š| j        j        j        j        r|dk    s
J d¦   «         ‚d}nÂ| j                             ¦   «         r| j        j        j        |         j        }nŒ‰j        r`t          ˆfd„| j         	                    ¦   «         D ¦   «         ¦  «        }|r$| j                             ¦   «         s‰j        › d�}n-‰j        }n%t          | j        j        ¦  «        dk    r|n|› |› �}|                     |¦  «         �Œ|S )Nr   z.illegal inplace function with multiple returnsÚselfc              3  ó8   •K  — | ]}‰j         |j         k    V — Œd S )N)r;   )ri   r[   rY   s     €r=   ú	<genexpr>zreturn_names.<locals>.<genexpr>/  s=   øè è € ð  ð  Ø%&�”˜!œ&Ò ð ð  ð  ð  ð  ð  r>   Ú_returnrg   )Ú	enumerater3   Úreturnsr;   Úinplacer<   Ú	argumentsÚoutÚanyÚschema_order_argumentsrk   Úappend)ro   rn   rw   Úir;   Úname_conflictrY   s         @r=   Úreturn_namesr€     sV  ø€ Ø€GÝ˜!œ&œ.Ñ)Ô)ð ñ ‰ˆˆ1ð Œ6Œ;ÔÔ#ð 	XØ˜’6�6�6ÐK‘6”6�6ØˆDˆDð ŒV×ÒÑÔð 	XØ”6Ô#Ô'¨Ô*Ô/ˆDˆDàŒVð 	XÝð  ð  ð  ð  Ø*+¬&×*GÒ*GÑ*IÔ*Ið ñ  ô  ñ ô ˆMð ð  Q¤V×%5Ò%5Ñ%7Ô%7ð Øœ&Ð)Ð)Ð)��à”v��õ
 %(¨¬¬Ñ$7Ô$7¸1Ò$<Ð$<�=�=À]ÐBWÐTUÐBWÐBWˆDØ�Š�tÑÔÐÑØ€Nr>   ÚfalseÚtrueú::std::nulloptzat::Reduction::Meanú{}zc10::MemoryFormat::Contiguousú	at::kLong)ÚFalseÚTrueÚNoneÚMeanz[]Úcontiguous_formatÚlongÚdc               óÔ  — | dk    rt          |¦  «        dk    rdS t          |t          ¦  «        rÍ|j        t          j         u rºt          | ¦  «        dk    r§| d         dk    r›| d         dk    r�d}d	}|d	z   t          | ¦  «        k     ro| |         d
k    r#| |         dk    r|dz  }n|| |         z  }|d	z  }n*| |d	z            dk    r|dz  }n|| ||dz   …         z  }|dz  }|d	z   t          | ¦  «        k     °od|› d�S t          |t          ¦  «        r| dk    rdS t          | |j        |¬¦  «        S t          |t          ¦  «        rˆ|  
                    d¦  «        r%|                      d¦  «        rd| d	d…         z   dz   S |r2|                      ¦   «         rt          |j        ¦  «        dk    rd| › d�S |j        €t          d| › d�¦  «        ‚t                               | | ¦  «        S )Nrˆ   rU   r„   é   r   ú'éÿÿÿÿÚ rg   ú\ú"z\"rƒ   rZ   ú[ú]Ú{Ú}rF   zc10::SymInt(ú)z,Expected a list default '[...]' but found: ')r6   rI   r&   r;   r%   rk   r*   Údefault_exprrN   r(   Ú
startswithÚendswithÚisdigitrP   Ú
ValueErrorÚJIT_TO_CPP_DEFAULTÚget)rŒ   rB   rA   Úsr~   s        r=   r™   r™   K  s  € ØˆF‚{€{•s˜1‘v”v Ò*Ð*ØˆtÝ�!•XÑÔð  1¤6­V¬ZÐ#7Ð#7åˆq‰6Œ6�QŠ;ˆ;˜1˜Qœ4 3š;˜;¨1¨R¬5°Cª<¨<ØˆAØˆAØ�a‘%�#˜a™&œ&’.�.Ø�Q”4˜4’<�<Ø˜”t˜s’{�{Ø˜U™
˜˜à˜Q˜qœT™	˜Ø˜‘F�A�Aà˜˜Q™”x 3’�Ø˜S™˜˜à˜Q˜q 1 q¡5˜yœ\Ñ)˜Ø˜‘F�Að �a‘%�#˜a™&œ&’.�.ð �q�8�8�8ˆOå�!•\Ñ"Ô"ð 6Ø�Š;ˆ;Ø#Ð#å˜A˜qœv¨fÐ5Ñ5Ô5Ð5å�!•XÑÔð RØ�<Š<˜ÑÔð 	R §¢¨C¡¤ð 	RØ˜˜1˜R˜4œ‘= 3Ñ&Ð&Øð 	R˜Ÿ	š	™œð 	R­¨A¬F©¬°xÒ(?Ð(?Ø& !Ð&Ð&Ð&Ð&ØŒVˆ^åÐPÈAÐPÐPÐPÑQÔQÐQå×!Ò! ! QÑ'Ô'Ð'r>   ú0Argument | TensorOptionsArguments | SelfArgumentÚcpp_no_default_argsúset[str]ÚmethodÚfaithfulÚhas_tensor_optionsúlist[Binding]c               óZ  ‡‡‡‡‡— dˆˆˆˆˆfd„}t          | t          ¦  «        rx| j        dk    r‰rt          j        }n| j        }d }| j        ‰vr#| j        �t          | j        | j        ‰¬¦  «        }t          t          | |‰¬¦  «        | j        || ¬	¦  «        gS t          | t          ¦  «        rÁ‰rC || j        ¦  «         || j        ¦  «        z    || j        ¦  «        z    || j        ¦  «        z   S d }d
‰vsJ ‚t          d„ |                      ¦   «         D ¦   «         ¦  «        rd}n| j        j        dk    rd}t          t!          d
t#          t$          ¦  «        ¦  «        d
|| ¬	¦  «        gS t          | t&          ¦  «        r‰rg S  || j        ¦  «        S t+          | ¦  «         d S )Nr[   r¡   r5   r§   c                ó.   •— t          | ‰‰‰‰‰¬¦  «        S )N)r¢   r¤   r¥   rA   r¦   )Úargument)r[   r¢   r¥   r¦   r¤   rA   s    €€€€€r=   Úsub_argumentzargument.<locals>.sub_argument�  s.   ø€ õ ØØ 3ØØØØ1ð
ñ 
ô 
ð 	
r>   Úmemory_formatrZ   )rC   rA   )Únctyper;   Údefaultrª   Úoptionsc              3  ó,   K  — | ]}|j         d k    V — ŒdS )rˆ   N)r®   )ri   Úxs     r=   rt   zargument.<locals>.<genexpr>ª  s)   è è € Ð8Ð8¨1�1”9 Ò&Ð8Ð8Ð8Ð8Ð8Ð8r>   r„   r‹   r…   )r[   r¡   r5   r§   )rI   r#   r;   r   Ú possibly_redundant_memory_formatr®   r™   rO   r   r^   r-   ÚdtypeÚlayoutÚdeviceÚ
pin_memoryÚallr   r	   r   r,   rª   r/   )	r[   r¢   r¤   r¥   rA   r¦   r«   rC   r®   s	    `````   r=   rª   rª   x  s"  øøøøø€ ð

ð 

ð 

ð 

ð 

ð 

ð 

ð 

ð 

ð 

õ �!•XÑÔð 0àŒ6�_Ò$Ð$Ð);Ð$Ý"ÔCˆEˆEà”FˆEØ"ˆØŒ6Ð,Ð,Ð,°´Ð1FÝ" 1¤9¨a¬f¸VÐDÑDÔDˆGåÝ$ Q¨e¸FÐCÑCÔCØ”VØØð	ñ ô ð
ð 	
õ 
�AÕ-Ñ	.Ô	.ð Øð 	à�˜QœWÑ%Ô%Ø�,˜qœxÑ(Ô(ñ)à�,˜qœxÑ(Ô(ñ)ð �,˜qœ|Ñ,Ô,ñ-ðð ˆGàÐ$7Ð7Ð7Ð7Ð7ÝÐ8Ð8°·²±´Ð8Ñ8Ô8Ñ8Ô8ð &Ø��Ø”” FÒ*Ð*Ø%�åÝ% iµ½>Ñ1JÔ1JÑKÔKØ"Ø#Øð	ñ ô ðð õ 
�A•|Ñ	$Ô	$ð Øð 	,àˆIà�< ¤
Ñ+Ô+Ð+å�Q‰Œˆˆˆr>   ry   r$   c               ó
  ‡ ‡‡‡‡— g }‰r5|                      ‰ j        ¦  «         |                      ‰ j        ¦  «         n4|                      ‰ j        ¦  «         |                      ‰ j        ¦  «         ˆ ˆˆˆˆfd„|D ¦   «         S )Nc           
     ó~   •— g | ]9}t          |‰‰‰‰j        d u‰¬¦  «        D ]}‰r|                     ¦   «         n|‘ŒŒ:S )N)r¥   rA   r¤   r¦   r¢   )rª   Útensor_optionsÚ
no_default)ri   r[   rY   ry   r¢   r¥   r¤   rA   s      €€€€€r=   rj   zarguments.<locals>.<listcomp>Ï  sz   ø€ ð ð ð àÝØØØØØ(Ô7¸tÐCØ 3ð
ñ 
ô 
ðð ð ð #Ð)ˆ�Š‰Œˆ¨ðð ð ð r>   )ÚextendÚnon_outrz   )ry   r¥   rA   r¤   r¢   Úargss   ````` r=   ry   ry   À  s¬   øøøøø€ ð DF€DØð 'Ø�Š�IÔ%Ñ&Ô&Ð&Ø�Š�I”MÑ"Ô"Ð"Ð"à�Š�I”MÑ"Ô"Ð"Ø�Š�IÔ%Ñ&Ô&Ð&ðð ð ð ð ð ð ð àðñ ô ð r>   N)r3   r'   r1   r4   r2   r4   r5   r6   )rB   r.   rC   r   r?   r4   r@   r4   rA   r4   r5   rD   )rB   r.   r?   r4   rC   r   r@   r4   rA   r4   r5   r   )r[   r#   rC   r   rA   r4   r5   r   )rB   r.   r?   r4   rA   r4   r5   r   )rY   r+   rA   r4   r5   r   )rd   re   rA   r4   r5   r   )ro   r)   rn   r6   r5   rp   )rŒ   r6   rB   r.   rA   r4   r5   r6   )r[   r¡   r¢   r£   r¤   r4   r¥   r4   rA   r4   r¦   r4   r5   r§   )ry   r$   r¥   r4   rA   r4   r¤   r4   r¢   r£   r5   r§   )AÚ
__future__r   Útypingr   Útorchgenr   Útorchgen.api.typesr   r   r   r	   r
   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r    r!   r"   Útorchgen.modelr#   r$   r%   r&   r'   r(   r)   r*   r+   r,   r-   r.   Útorchgen.utilsr/   Úcollections.abcr0   r;   rM   rW   r^   ra   rc   rl   r€   rž   r™   rª   ry   © r>   r=   ú<module>rÇ      s  ðØ "Ð "Ð "Ð "Ð "Ð "à  Ð  Ð  Ð  Ð  Ð  à Ð Ð Ð Ð Ð ðð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð>ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð (Ð 'Ð 'Ð 'Ð 'Ð 'ð ð )Ø(Ð(Ð(Ð(Ð(Ð(ð0 -2Ø!ð	ð ð ð ð ð ð2 Ø(-Øð#=ð #=ð #=ð #=ð #=ð #=ð^ ).ØðT=ð T=ð T=ð T=ð T=ð T=ðp BGð Uð Uð Uð Uð Uð Uð ?Dð !:ð !:ð !:ð !:ð !:ð !:ðJ .3ð Fð Fð Fð Fð Fð Fð
 :?ð Gð Gð Gð Gð Gð Gð =Eð ð ð ð ð ð ðB ØØØ!Ø
Ø8Øðð Ð ð'(ð '(ð '(ð '(ðf ðEð Eð Eð Eð Eð EðX ð	ð ð ð ð ð ð ð r>   