Ë
    P/æj×9 ã                   óPf  — 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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 d dlZd dlmZ d dlmZ  d dl!m c m"Z# d dl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/m0Z0m1Z1m2Z2m3Z3m4Z4m5Z5m6Z6m7Z7m8Z8m9Z9m:Z: d dl;m<Z<m=Z=m>Z>m?Z?m@Z@mAZA g d	¢ZBej†                  ZCejˆ                  jŠ                  ZEejŒ                  jŽ                  j�                  ZHd
„ ZId„ ZJd„ ZKddœd„ZLd dlMmNZN  eO«       ZPePddœdefd„ZQd„ ZRd„ ZS eQe,j¨                  «      d„ «       ZU eQe,j¬                  «      d„ «       ZW eQe,j¬                  «      d„ «       ZX eQe,j¬                  «      d„ «       ZY eQe,j¬                  «      d„ «       ZZ eQe,j¬                  «      d„ «       Z[ eQe,j¬                  «      d„ «       Z\ eQe,jº                  «      d„ «       Z^ eQe,jº                  «      d„ «       Z_ eNeHjÀ                  «      de8fd „«       Z` eNeHjÂ                  «       eA«       de8fd!„«       «       Za eQe,j¬                  «      d"„ «       Zb eQe,j¬                  «      d#„ «       Zc eQe,j¬                  «      d$„ «       Zd eQe,j¬                  «      d%„ «       Ze eQe,j¬                  «      d&„ «       Zf eQe,j¬                  «      d'„ «       Zg eQe,j¬                  «      d(„ «       Zh eQe,j¬                  «      d)„ «       Zi eQe,j¬                  «      d*„ «       Zj eA«        e?d+e,jÖ                  ¬,«      d-e8d.e2de8fd/„«       «       Zld-e8d.e2de8fd0„Zm eNeHjÜ                  «       eA«       de8de8fd1„«       «       Zn eQe,jº                  «      d2„ «       Zo eQe,jº                  «      d3e8de8fd4„«       Zpd-e8de8fd5„Zq eQe,jä                  d¬6«      d-e8de8fd7„«       Zs eQe,jä                  «      d-e8de8fd8„«       Zt eQe,jä                  «      d-e8de8fd9„«       Zu eQe,jä                  «      d-e8de8fd:„«       Zv eQe,jä                  «      d-e8de8fd;„«       Zw eRejð                  jò                  d<«      Zz eQe,jä                  d¬6«      d-e8de8fd=„«       Z{ eQe,j¬                  eHjø                  ¬6«      d>„ «       Z| eQe,j¬                  «      d?„ «       Z} eQe,j¬                  «      d@„ «       Z~ eQe,j¬                  «      dA„ «       Z eQe,j¬                  «      dB„ «       Z€ eQe,j¬                  «      dC„ «       Z� eA«       	 �dãd-e8dDe‚dEee�j                     de8fdF„«       Z„ eNeH�j
                  «       eA«        e?dGe,j¬                  ¬,«      	 �dädIe8dDe*dJe†de8fdK„«       «       «       Z… eNeH�j                  «       eA«       	 	 	 �dåd-e8dLee2   dMee2   dNee2   de8f
dO„«       «       Z‡d-e8fdP„Zˆ eQe,jº                  eˆ¬Q«      dR„ «       Z‰d-e8de8fdS„ZŠd-e8de8fdT„Z‹ eQe,j¬                  «      dU„ «       ZŒ eNeH�j                  «       eA«        e?dVe,jº                  ¬,«      d dWœd-e8dXe‚de8fdY„«       «       «       Z� eQe,j¬                  «      dZ„ «       ZŽ eQe,j¬                  «      d-e8de8fd[„«       Z� eQe,jº                  «      d\„ «       Z� eQe,jº                  «      d]„ «       Z‘ eQe,jä                  «      d^„ «       Z’ eQe,j¬                  «      d_„ «       Z“ eQe,j¬                  «      d`„ «       Z” eQe,j¬                  «      da„ «       Z• eQe,j¬                  «      db„ «       Z– eQe,�j.                  d¬6«      d-e8de8fdc„«       Z˜ eQe,j¬                  «      dd„ «       Z™ eQe,j¬                  «      de„ «       Zš eQe,jº                  «      df„ «       Z›dIe8de8fdg„ZœePdddddHdfdefdh„Z� eNeH�j<                  «       eA«        e?die,jº                  ¬,«      ddjœd-ee8e2f   dkee8e2f   dlee2   fdm„«       «       «       Zž e�e,j¬                  dHdH¬n«      do„ «       ZŸ e�e,jº                  ¬p«      d-e8dke8de8fdq„«       Z  e�e,jº                  ¬p«      d-e8dke8de8fdr„«       Z¡ e�e,jº                  ¬p«      d-e8dke8de8fds„«       Z¢ e�e,jº                  ¬p«      d-e8dke8de8fdt„«       Z£ e�e,jº                  ¬p«      d-e8dke8de8fdu„«       Z¤ e�e,j¬                  dH¬v«      d-ee8e2f   dkee8e2f   fdw„«       Z¥ eNeH�jL                  «       eA«       ddxœd-ee8e2f   dkee8e2f   dyee§   fdz„«       «       Z¦ e�e,jä                  dH¬v«      d-e8dke8de8fd{„«       Z¨ e�e,�j.                  ¬p«      d-ee8e2f   dkee8e2f   de8fd|„«       Z© eA«       d-ee8e2f   dkee8e2f   deCfd}„«       Zª e�e jX                  jº                  ddH¬~«      d-ee8e2f   dkee8e2f   fd„«       Z«d-eCdkeCdeCfd€„Z¬d-eCdkeCdeCfd�„Z­ e�e,jº                  dHdH¬n«      d-e8dke8de8fd‚„«       Z® e�e,jº                  dHdH¬n«      d-e8dke8de8fdƒ„«       Z¯ e�e,jº                  dHd¬n«      d-e8dke8de8fd„„«       Z° eNeH�jb                  «       eAd…d†«      dIe8dee8e8f   fd‡„«       «       Z± e�e,jº                  dHdH¬n«      d-e8dke8de8fdˆ„«       Z² e�e,jä                  dH¬v«      d-e8dke8de8fd‰„«       Z³ e�e,jä                  dH¬v«      d-e8dke8de8fdŠ„«       Z´ e�e,jº                  dHdH¬n«      de8d‹e8de8fdŒ„«       Zµ e�e,jº                  dHdH¬n«      d-e8dke8de8fd�„«       Z¶ e�e,j¬                  dHdH¬n«      d-e8dke8de8fdŽ„«       Z· e�e,j¬                  dHdH¬n«      d-e8dke8de8fd�„«       Z¸d�e§d-e8dke8d‘e¹d’e¹ddfd“„Zº	 	 	 �dæd-e8dke8d‘e¹d’e¹d”e†de8fd•„Z» e�e,jº                  dHdH¬n«      d-e8dke8fd–„«       Z¼ e�e,jä                  dH¬v«      d-e8dke8de8fd—„«       Z½ e�e,jº                  dHdH¬n«      d-e8dke8de8fd˜„«       Z¾ e�e,jº                  dHdH¬n«      d-e8dke8de8fd™„«       Z¿ e�e,jä                  ¬p«      d-e8dke8fdš„«       ZÀ eQe,jä                  «      d-e8fd›„«       ZÁ e�e,jä                  ¬p«      d-e8dke8fdœ„«       ZÂ e�e,jä                  ¬p«      d-e8dke8fd�„«       ZÃ e�e,jä                  dH¬v«      d-e8dke8de8fdž„«       ZÄ e�e,jº                  ¬p«      d-e8dke8de8fdŸ„«       ZÅ e�e,jº                  ¬p«      d-e8dke8de8fd „«       ZÆ e�e,jº                  d¬¡«      d-e8dke8de8fd¢„«       ZÇ e�e,jä                  dH¬v«      d-e8dke8de8fd£„«       ZÈ e�e,jÖ                  dHdH¬n«      d-e8dke8de8fd¤„«       ZÉ e�e,jº                  ¬p«      d-e8dke8de8fd¥„«       ZÊ eNeH�j–                  «       eA«       	 �dçd-ee8e2f   dkee8e2f   dle2fd§„«       «       ZË eNeH�j˜                  «       eA«        e?die,jº                  ¬,«      d¦djœd-ee8e2f   dkee8e2f   dle2fd¨„«       «       «       ZÌ e�e,j¬                  d©dd¬ª«      d-e8dke8de8fd«„«       ZÍ eNeH�jœ                  «       eA«        e?die,j¬                  ¬,«      d-ee8e2f   dkee8e2f   fd¬„«       «       «       ZÎ e�e jX                  jº                  dd¬­«      d-ee8e2f   dkee8e2f   fd®„«       ZÏ eNeH�j                   «       eA«        e?d¯e,j¬                  ¬,«      d¦d°œdIe8d±e8d²e8d.e2de8f
d³„«       «       «       ZÐ eNeH�j¢                  «       eA«        e?d¯e,jº                  ¬,«      d¦d°œdIe8d±e8d²e8d.e2de8f
d´„«       «       «       ZÑ eNeH�j¤                  «       eA«        e?dµe,jº                  ¬,«      	 	 �dèd-e8d¶ee9   d·ee9   de8fd¸„«       «       «       ZÒ eNeH�j¦                  «       eA«       	 �dãdIe8d¶ee9   de8fd¹„«       «       ZÓ eNeH�j¨                  «       eA«       	 �dãdIe8d·ee9   de8fdº„«       «       ZÔ eNeH�jª                  «       eA«        e?die,jÖ                  ¬,«      	 	 �dèd»eCd-ee9   dkee9   fd¼„«       «       «       ZÕ eNeH�j¬                  «       eA«       e�j®                  d½œd-e8d¾e�j°                  de8fd¿„«       «       ZÖddÀœd-eCdkeCfdÁ„ZÙ eNeH�j´                  «      d-e8de2fdÂ„«       ZÚ	 	 	 	 	 	 	 �déd-e8dÃee'   dEee�j                     dÄee†   dÅee�j¶                     d¾ee�j°                     dÆee†   dÇe†de†fdÈ„ZÜedÉ„ «       ZÝeÝ�j¼                  	 	 	 �dêdÃe�j¾                  dEe�j                  dÇe†dÄe†d¾ee�j°                     dee§ef   fdÊ„«       ZàeÝ�j¼                  	 	 	 �dêdÃe§dEe�j                  dÇe†dÄe†d¾ee�j°                     dee§ef   fdË„«       ZáeÝ�j¼                  	 	 	 �dêdEe�j                  dÇe†dÄe†d¾ee�j°                     dee§ef   f
dÌ„«       ZâeÝ�j¼                  	 	 	 �dêdÍeCdÇe†dÄe†d¾ee�j°                     dee§ef   f
dÎ„«       Zãd-eCdÏeäfdÐ„Zåd-e8de8fdÑ„ZæddddHdddÒœd-e8dÓedÔe†dÕe†dÖee*   d×e†dEee�j                     dØeeC   dÙe4de8fdÚ„ZçdÛ„ Zè eNeH�jÒ                  «       eA«       	 	 �dëd-e8dDee*   dJe†de8fdÜ„«       «       Zé eNeH�jÔ                  «       eA«       	 	 �dëd-e8dDee*   dJe†de8fdÝ„«       «       Zê eNeH�jÖ                  �jØ                  eH�jÖ                  �jÚ                  g«      	 	 �dëdddÞœd-e8dDeee‚   eee‚      f   dJe†dEee�j                     dØeeC   de8fdß„«       Zëd-eCdeCfdà„Zî eNeH�jÞ                  «      	 	 �dëdddÞœd-e8dDeee‚   eee‚      f   dJe†dØeeC   de8f
dá„«       Zï eNeH�jà                  «      	 	 �dëddâœd-e8dDee*   dJe†dØeeC   de8f
dã„«       Zð eNeH�jâ                  «      	 	 �dëddâœd-e8dDee*   dJe†dØeeC   de8f
dä„«       Zñ�dèdå„Zò eNeH�jæ                  «       eA«       	 	 	 �dìddæœd-e8dDee*   dçee†   dJe†dèee2   de8fdé„«       «       Zó eNeH�jè                  «       eA«       	 	 	 �dìddæœd-e8dDeee‚   eee‚      f   dçee†   dJe†dèee2   de8fdê„«       «       Zô eNeH�jê                  «      	 	 �dëdddÞœd-e8dDee*   dJe†de8fdë„«       Zõ eNeH�jì                  «       eAdìdí«      	 �dãddHddîœd-e8dDee*   dçee†   dJe†dèee2   f
dï„«       «       Zö eNeH�jî                  «       eAdìdí«      	 	 	 �dìddæœd-e8dDee*   dçee†   dJe†dèee2   f
dð„«       «       Z÷ eNeH�jð                  «       eA«        e?dñe,jº                  ¬,«      d¦d¦dòœdIe8dóe8dôe8dõe2dle2de8fdö„«       «       «       Zød÷ee8ee8   f   døe8dee8ee8dùf   f   fdú„ZùdûedDe‚d÷e8de8fdü„Zúd÷ee8ee8   f   døe8dee8ee8dùf   f   fdý„Zûd÷ee8ee8   f   døe8dee8ee8dùf   f   fdþ„Zü	 �dãd-e8dÿe5�d e6�dee‚   de8f
�d„Zý eNeH�jü                  «       eA«       	 �dãde8�de8dÿe5�d e6�dee‚   de8f�d„«       «       Zþde5f�d„ZÿeH�j                   �j                  �j                  eE�j                  «      eH�j                   �j                  �j                  eE�j                  «      dee8   f�d„«       «       �Z d-e8dÿe5de8f�d„�Z eNeH�j                  «       eA«        e?�de,jÖ                  ¬,«      �dí�d	e:dDe‚de8f�d
„«       «       «       �Z eA«       �d	e:de8f�d„«       �Zde8de8f�d„�Z eNeH�j                  «       eA«       	 �díde8�dee‚   d.e2de8f�d„«       «       �Z	e�j                  d½œd-eCd¾e�j°                  deCf�d„�Z eA«       �d	e:de8f�d„«       �Z eNeH�j                  «      d-eCdeCf�d„«       �Zd-eCdkeCdeCf�d„�Z�díd-e8�de‚dDe‚dee8dùf   f�d„�Z�dîd-e8�de‚�de‚de8f�d„�Z eNeH�j"                  «       eA«       d-e8dÖe)de8f�d„«       «       �Zd-e8de8f�d„�Zd-e8de8f�d„�Zd-e8dDe‚�dee‚e8f   �de‚de8f
�d„�Zd-eC�de*�de¹deeCeCeCf   f�d „�Zd3e8�d!ee‚   de8f�d"„�Z eNeH�j.                  �j                  «      deC�d#eeC   �d$eeC   �d%e‚�d&e‚�d'e‚�d(e‚�de¹deeCeCeCf   f�d)„«       �Z eNeH�j0                  «       eAdìdí�d*«      deC�d+e5�d#eeC   �d$eeC   �de¹deeCeCeCf   f�d,„«       «       �Z eNeH�j2                  «      d-e8de8f�d-„«       �Z eNeH�j4                  «       eA«       de8�d.e3dDe‚�d/e3de8f
�d0„«       «       �ZeH�j6                  �j8                  �j                  eE�j                  «      	 	 	 	 	 	 	 	 �dïdeC�d1e‚�d2ee‚   �d3ee‚   �d4eeC   �d5e†�d6e§�d7e†�d8ee†   �d9ee†   deCf�d:„«       �ZeH�j:                  �j                  �j                  eE�j                  «      	 	 	 	 	 	 	 	 �dðdeC�d1e‚�d2ee‚   �d3ee‚   �d4eeC   �d5e†�d7e†�d8ee†   �dee‚   deCf�d;„«       �Z�d<e5�d=e6�d>e‚dÿe‚�d?e‚f
�d@„�Z eNeH�j>                  «       eA«       d-eCdeCf�dA„«       «       �Zd-e8�dBe†de8f�dC„�Z d-e8�dDe5de8f�dE„�Z!dIe8dÍe8de8f�dF„�Z" eNeH�jF                  «       eA«       �dñd-e8�dGe*dÖe*de8f�dH„«       «       �Z# eNeH�jH                  «       eA«       	 �dòd-e8�dJe‚dÖe)de8f�dK„«       «       �Z$�d	e:ddf�dL„�Z% eNeH�jL                  «       eA«       �dí�d	e:dDe‚de8f�dM„«       «       �Z& eA«       	 �dãd-e8dDe‚dEee�j                     de8f�dN„«       �Z' eA«       �d	e:de8f�dO„«       �Z( eA«       �d	e:de8f�dP„«       �Z)d-e8dDe‚�dQe5de8f�dR„�Z* eNeH�jV                  «      �dí�dSe8dDe‚de:f�dT„«       �Z+ eA«       d3e7dDe‚�dUe7�dVe7f�dW„«       �Z,d3e7dDe‚�dUe7�dVe7f�dX„�Z- eNeH�j\                  «       eA«       d3e7dDe‚�dUe7d.ee2e7f   f�dY„«       «       �Z. eNeH�j^                  «      d3e7dDe‚�dUe7d.ee2e7f   f�dZ„«       �Z/d3e7dDe‚�dUe7d.ee2e7f   �d[e†f
�d\„�Z0 eA«       d¦djœd3e7dDe‚�dUe7�dVe7dle2f
�d]„«       �Z1 eNeH�jd                  «       eA«       d3e7dDe‚�dUe7f�d^„«       «       �Z2 eNeH�jf                  �jh                  «      �dãd-e8dDee*   de8f�d_„«       �Z3	 �díd-e8�d`eeCe*f   dDe‚dee8dùf   f�da„�Z5d-e8�d`e*dee8dùf   f�db„�Z6d-e8�d`e*dee8dùf   f�dc„�Z7 eNeH�jp                  �jr                  «       eA«       	 �dídIe8�dde‚de8f�de„«       «       �Z8 eNeH�jt                  «       eA«       	 	 	 �dóde8�de8�dde‚�dfe‚�dge‚de8f�dh„«       «       �Z: eNeH�jv                  «      	 	 	 �dódIe8�dde‚�dfe‚�dge‚de8f
�di„«       �Z; eNeH�jx                  «       eA«       	 	 	 �dô�dSe8�dde‚�dfe‚�dge‚de8f
�dj„«       «       �Z< eNeH�jz                  «       eA«       �d	ee8   de8f�dk„«       «       �Z>�d	ee8   de8f�dl„�Z=d-e8�dme*de:f�dn„�Z? eNeH�j€                  �j                  «      d-e8f�do„«       �Z@d-e8de8f�dp„�ZA eNeH�j„                  «      d-e8de8f�dq„«       �ZB eNeH�j†                  «      d-e8�dre‚�dfe‚de8f�ds„«       �ZC�eC�ZD eNeH�jŠ                  «      dIe8�d>e‚dÿe‚�d?e‚de8f
�dt„«       �ZE eNeH�jŒ                  «       eA«       dIe8�d>e‚dÿe‚�d?e‚f�du„«       «       �ZFdddÞœd-e8dDe‚dEee�j                     dØeeC   de8f
�dv„�ZG eNeH�j�                  «      dddÞœd-e8dDe‚dEee�j                     dØeeC   de8f
�dw„«       �ZH eNeH�j’                  «      dddÞœd-e8dDe‚dEee�j                     dØeeC   de8f
�dx„«       �ZI eNeH�j”                  «      d-e8dDe‚de8f�dy„«       �ZJ eNeH�j–                  �j                  «      d-e8�dDe5de8f�dz„«       �ZKdIe8dÍe8de8f�d{„�ZLd-e8de8f�d|„�ZM eA«       	 �dãd-ej†                  �d}ej†                  dDee‚   dej†                  f�d~„«       �ZN eA«       de�jž                  ddHdHe�j                  �dœdEee�j                     dÅe�j¶                  dÃee'   �d€e†dÆe†d¾e�j°                  de8f�d�„«       �ZP eA«       de�jž                  ddHdHfdEee�j                     dÅe�j¶                  dÃee'   �d€e†dÆe†de8f�d‚„«       �ZQ eNeH�j¤                  «       eA«       ddddH�dƒœd-e8dÿe5dEee�j                     dÅee�j¶                     dÃee'   dÆe†de8f�d„„«       «       �ZR eNeH�j¦                  «       eA«       ddddH�dƒœd-e8dÿe5�d e6dEee�j                     dÅee�j¶                     dÃee'   dÆe†de8f�d…„«       «       �ZS eNeH�j¨                  �j                  «       eA«       de�jž                  ddHdH�d†œdEee�j                     dÅe�j¶                  dÃee'   dÆe†�d€e†de8f�d‡„«       «       �ZT eNeH�jª                  «       eA«       ddddHdH�d†œd-e8dÿe5dEee�j                     dÅee�j¶                     dÃee'   dÆe†�d€e†de8f�dˆ„«       «       �ZU eNeH�j¬                  �j                  «       eA«       de�jž                  ddHdH�d†œdEee�j                     dÅe�j¶                  dÃee'   dÆe†�d€e†de8f�d‰„«       «       �ZV eNeH�j®                  «       eA«       ddddHdH�d†œd-e8dÿe5dEee�j                     dÅee�j¶                     dÃee'   dÆe†�d€e†de8f�dŠ„«       «       �ZW eNeH�j°                  «       eA«       ddddH�dƒœd-e8dÿe5�d‹e2dEee�j                     dÅee�j¶                     dÃee'   dÆe†de8f�dŒ„«       «       �ZX eNeH�j²                  «       eA«       ddddHdHe�j®                  �d�œd-e8dEee�j                     dÃee'   dÅee�j¶                     dÆe†�d€e†d¾e�j°                  de8f�dŽ„«       «       �ZY eNeH�j´                  �j¶                  eH�j´                  �j¸                  g«       eA«       	 	 	 �dõde�jž                  ddHdH�d†œ�de2�d�ee2   �d?e2dEee�j                     dÅe�j¶                  dÃee'   dÆe†�d€e†de8f�d�„«       «       �ZZ eNeH�jº                  «       eA«        e?�d‘e,jº                  ¬,«      �deC�d�eC�d#eeCe2f   f�d’„«       «       «       �Z] eNeH�j¼                  «       eA«       dde�jž                  dHdH�d“œ�dee2e8f   �d�ee2e8f   �d”e2dEee�j                     dÃee'   dÅe�j¶                  dÆe†�d€e†de8f�d•„«       «       �Z^ eNeH�j¾                  «       eA«       	 �dödde�jž                  dHdH�d“œ�dee2e8f   �d�ee2e8f   �d”e2�d–e2dEee�j                     dÃee'   dÅe�j¶                  dÆe†�d€e†de8f�d—„«       «       �Z_e�d	ee8   �d˜e§f�d™„«       �Z`e�d	e8�d˜e§f�dš„«       �Z` eNeH�jÀ                  «      �d	ee8ee8   ee8   f   �d˜e§dee8   f�d›„«       �Z`de8�dœee‚e)f   �d�ee‚e)f   de8f�dž„�Za eNeH�jÄ                  «       eA«       dde�jž                  dHdH�dŸœ�dDee5ee5   f   �d e6dEee�j                     dÃee'   dÅe�j¶                  �d€e†dÆe†de8f�d¡„«       «       �Zb eNeH�jÆ                  «       eA«       	 �dãde�jž                  ddHdH�d†œ�d¢e‚�d£ee‚   dEee�j                     dÅe�j¶                  dÃee'   dÆe†�d€e†de8f�d¤„«       «       �Zc eNeH�jÈ                  �j                  eH�jÈ                  �jr                  g«       eA«       de�jž                  ddHdH�d†œ�dDe5�d‹e2dEee�j                     dÅe�j¶                  dÃee'   dÆe†�d€e†de8f�d¥„«       «       �ZdddddHdHe�j®                  �d¦œd-e8�d‹e2dEee�j                     dÅee�j¶                     dÃee'   dÆe†�d€e†d¾e�j°                  de8f�d§„�Ze eNeH�jÌ                  «       eA«       ddddHdHe�j®                  �d¦œd-e8dEee�j                     dÅee�j¶                     dÃee'   dÆe†�d€e†d¾e�j°                  de8f�d¨„«       «       �Zf eNeH�jÎ                  «       eA«       ddddHdHe�j®                  �d¦œd-e8dEee�j                     dÅee�j¶                     dÃee'   dÆe†�d€e†d¾e�j°                  de8f�d©„«       «       �Zg eNeH�jÐ                  �j                  «       eA«       ddddHdH�dŸœdEee�j                     dÃee'   dÅee�j¶                     �d€e†dÆe†de8f�dª„«       «       �Zhde�jž                  ddH�dƒœd-e2dEee�j                     dÅe�j¶                  dÃee'   dÆe†de8f�d«„�Zi	 	 �d÷�dDe5�d¬ee†e‚e¹f   �d­ee†e‚e¹f   dEe�j                  dÃe'de8f�d®„�Zj eNeH�jÖ                  «       eA«       d-e8�d¯e8d.e9f�d°„«       «       �Zk eNeH�jØ                  «      d-e8�d¯e8d.e9de8f�d±„«       �Zl	 	 	 �dæd-e8dke8d‘e¹d’e¹d”e†de†f�d²„�Zmd-e8dke8de†f�d³„�Zn eNeH�jÞ                  «       eAd�¬´«      	 	 	 �død�dµœde8�d.eee¹e§f      dDee*   dJe†dEee�j                     de8f�d¶„«       «       �Zo eNeH�jà                  «       eA«       dIe8de8f�d·„«       «       �Zp�d¸„ �Zq �eqeÍ«      �Zr �eqe««      �Zs �eqe©«      �Zt eNeH�jê                  «       eA«       �díd-e8�d¹e‚de8f�dº„«       «       �Zu eNeH�jì                  «       eA«       �díd-e8�d¹e‚de8f�d»„«       «       �Zv�d¼e‚�d½e‚�dde‚dee‚e‚e‚f   f�d¾„�Zwd�e§�d¼e‚�d½e‚dEe�j                  dÅe�j¶                  dÆe†f�d¿„�Zx eNeH�jò                  «       eA«       	 �díe�jô                  e�jž                  �dÀdH�dƒœ�d¼e‚�d½e‚�dde‚dEe�j                  dÅe�j¶                  dÃe'dÆe†de8f�dÁ„«       «       �Zy�d¼e‚�d½e‚�dde‚dee‚e‚e‚f   f�dÂ„�Z{ eNeH�jø                  «       eA«       	 �díe�jô                  e�jž                  �dÀdH�dƒœ�d¼e‚�d½e‚�dde‚dEe�j                  dÅe�j¶                  dÃe'dÆe†de8f�dÃ„«       «       �Z| eNeH�jú                  «       eAd�¬´«      dHdH�dÄœd-e9�dÅe8�dÆe†�dÇe†f�dÈ„«       «       �Z} eNeH�jü                  «       eA«        e?dGe,jº                  ¬,«      �dù�dÉ„«       «       «       �Z~ eNeH�jþ                  «       eA«        e?dGe,jº                  ¬,«      �dú�dÊ„«       «       «       �Z eNeH�j                   «       eA«        e?dGe,jº                  ¬,«      �dã�dË„«       «       «       �Z€ eNeH�j                  «       eA«        e?dGe,jº                  ¬,«      �dû�dÌ„«       «       «       �Z� eNeH�j                  «       eA«        e?�dÍe,jº                  ¬,«      	 	 	 �dùddddd�dÎœ�dÏ„«       «       «       �Z‚ eNeH�j                  «      �dId�dÐœ�dÑ„«       �Zƒ eQe,j¬                  «      dIe8f�dÒ„«       �Z„ eQe,j¬                  «      dIe8f�dÓ„«       �Z… eNeH�j                  «       eA«       �dãdDee*   f�dÔ„«       «       �Z†�dÕ„ �Z‡ eNeH�j                  «       eA«        e?�dÖe,jº                  ¬,«      �d×„ «       «       «       �Zˆ eNeH�j                  «       eA«        e?�dÖe,jº                  ¬,«      �dØ„ «       «       «       �Z‰ eNeH�j                  «       eA«       d3e8�de8dDe‚�dUe‚f�dÙ„«       «       �ZŠ eSeU«      �Z‹ eSeW«      �ZŒ eSeX«      �Z� eSež«      �ZŽ eSeÑ«      �Z� eSeÐ«      �Z� eSeY«      �Z‘ eSeZ«      �Z’ eSe[«      �Z“ eSe\«      �Z” eSeŸ«      �Z• eSe «      �Z– eSe¡«      �Z— eSe^«      �Z˜ eSe¢«      �Z™ eSe£«      �Zš eSe¤«      �Z› eSe_«      �Zœ eSeÒ«      �Z� eSeÓ«      �Zž eSeÔ«      �ZŸ eSea«      �Z  eSe¥«      �Z¡ eSeb«      �Z¢ eSec«      �Z£ eS�eH«      �Z¤ eS�eI«      �Z¥ eS�e…«      �Z¦ eSed«      �Z§ eSe¦«      �Z¨ eSe¨«      �Z© eSee«      �Zª eSeg«      �Z« eSef«      �Z¬ eSeh«      �Z­ eSej«      �Z® eSei«      �Z¯ eSeª«      �Z° eSeo«      �Z± eSe««      �Z² eSe°«      �Z³ eSep«      �Z´ eSe²«      �Zµ eSe³«      �Z¶ eSe´«      �Z· eSeµ«      �Z¸ eSe¶«      �Z¹ eSe·«      �Zº eSe¸«      �Z» eSe|«      �Z¼ eSe¼«      �Z½ eSe½«      �Z¾ eS�e]«      �Z¿ eSe}«      �ZÀ eSe�«      �ZÁ eSe«      �ZÂ eSe€«      �ZÃ eSe~«      �ZÄ eSeÀ«      �ZÅ eSeÁ«      �ZÆ eSeÂ«      �ZÇ eSeÃ«      �ZÈ eSeÄ«      �ZÉ eSeÇ«      �ZÊ eSez«      �ZË eSe‡«      �ZÌ eSeÈ«      �ZÍ eSe‰«      �ZÎ eSeÉ«      �ZÏ eSe©«      �ZÐ eS�e„«      �ZÑ eSeŒ«      �ZÒ eSeÊ«      �ZÓ eSeŽ«      �ZÔ eSe�«      �ZÕ eSe�«      �ZÖ eSe‘«      �Z× eSe“«      �ZØ eSe”«      �ZÙ eSe•«      �ZÚ eSe–«      �ZÛ eSe˜«      �ZÜ eSeÌ«      �ZÝ eSe™«      �ZÞ eSeš«      �Zß eS�ev«      �Zà eS�eu«      �Zá eSeÍ«      �Zâ eSe›«      �Zã eSeÎ«      �Zä eS�e~«      �Zå eS�e«      �Zæ eS�e€«      �Zç eS�e�«      �Zè eSen«      �Zé eèeH�j„                  «      �Zê eèeH�jú                  «      �Zë eèeH�jv                  «      �Zì eèeH�j                  «      �Zí eèeH�j(                  «      �Zî eèeH�j€                  «      �Zï eèeH�j”                  «      �Zð eèeH�j–                  «      �Zñ�dÚ„ �Zò�dÛ„ �Zó�dÜ„ �Zô�dÝe�j                  �dÞee9e:f   f�dß„�Zõ	 �dä�dà„�ZödddHdH�dáœ�dâ„�Z÷d d�løZd d�lùZd d�lúZd d�lûZd d�lüZy(ü  é    N)ÚIterable)ÚEnum)ÚpartialÚreduceÚsingledispatchÚwraps)	ÚAnyÚCallableÚDictÚListÚOptionalÚoverloadÚSequenceÚTupleÚUnion)Ú	sym_floatÚsym_int)ÚBoolLikeÚDeviceLikeTypeÚDimÚDimsSequenceTypeÚDimsTypeÚdtype_to_typeÚELEMENTWISE_TYPE_PROMOTION_KINDÚ	FloatLikeÚFloatWithoutSymFloatÚIntLikeÚis_weakly_lesser_typeÚNumberÚ
NumberTypeÚRealNumberTypeÚREDUCTION_OUTPUT_TYPE_KINDÚ	ShapeTypeÚ
StrideTypeÚ
TensorLikeÚTensorLikeTypeÚTensorOrNumberLikeTypeÚTensorSequenceType)Ú_maybe_convert_to_dtypeÚ_maybe_resize_outÚ_safe_copy_outÚ"elementwise_type_promotion_wrapperÚ elementwise_unary_scalar_wrapperÚout_wrapper)ýÚabsÚacosÚacoshÚasinhÚasinÚatanÚatanhÚbitwise_notÚceilÚconj_physicalÚcosÚcoshÚcount_nonzeroÚdeg2radÚdigammaÚerfÚerfinvÚerfcÚexpÚexpm1ÚexponentialÚexp2ÚfillÚfill_ÚfloorÚfracÚ	geometricÚ	index_addÚ
index_copyÚindex_copy_Úindex_selectÚ
index_fillÚindex_fill_ÚisfiniteÚisinfÚisposinfÚisneginfÚisnanÚisrealÚi0ÚlerpÚlgammaÚlogÚlog1pÚlog2Úlog10Ú
log_normalÚlog_softmaxÚmvlgammaÚnormÚnormalÚ
nan_to_numÚnegÚpositiveÚrad2degÚ
reciprocalÚroundÚsigmoidÚsgnÚsignÚsignbitÚsinÚsincÚsinhÚsoftmaxÚsqrtÚsquareÚtanÚtanhÚtraceÚtruncÚaddÚatan2Úbitwise_andÚbitwise_left_shiftÚ
bitwise_orÚbitwise_right_shiftÚbitwise_xorÚ	clamp_minÚ	clamp_maxÚcopysignÚdivÚeqÚfloat_powerÚfloor_divideÚfmaxÚfminÚfmodÚgcdÚgeÚgtÚ	heavisideÚhypotÚigammaÚigammacÚimagÚiscloseÚlcmÚleÚ	logaddexpÚ
logaddexp2Úlogical_andÚlogical_notÚ
logical_orÚlogical_xorÚ	logsumexpÚltÚmaximumÚminimumÚmulÚneÚ	nextafterÚpowÚrealÚrpowÚ	remainderÚrsubÚrtruedivÚ	rfloordivÚsubÚtrue_divideÚtrunc_divideÚxlogyÚaddcdivÚaddcmulÚclampÚmasked_fillÚmasked_fill_ÚwhereÚcloneÚcopy_toÚitemÚtoÚallÚamaxÚaminÚanyÚcumsumÚcumprodÚmeanÚdotÚvdotÚstdÚstd_meanÚsumÚsum_to_sizeÚprodÚvarÚvar_meanÚaddrÚaliasÚ
alias_copyÚ
atleast_1dÚ
atleast_2dÚ
atleast_3dÚ
as_stridedÚas_strided_copyÚas_strided_scatterÚ
block_diagÚbroadcast_shapesÚbroadcast_tensorsÚbroadcast_toÚcatÚchunkÚcolumn_stackÚconjÚconstant_pad_ndÚ
contiguousÚ
diag_embedÚdiagÚdiagonalÚdiagonal_copyÚdiagonal_scatterÚdsplitÚdstackÚexpandÚ	expand_asÚexpand_copyÚflattenÚflipÚfliplrÚflipudÚhsplitÚhstackÚmeshgridÚmovedimÚnarrowÚnarrow_copyÚnative_group_normÚnative_layer_normÚpermuteÚravelÚrepeatÚreshapeÚ
reshape_asÚrollÚrot90ÚrsqrtÚstackÚ	swap_axesÚsqueezeÚtÚt_copyÚTÚtake_along_dimÚtensor_splitÚ	transposeÚunfoldÚunfold_copyÚ	unsqueezeÚunsqueeze_copyÚviewÚview_asÚ	view_copyÚvsplitÚvstackÚview_as_complexÚ	unflattenÚunbindÚtriuÚtrilÚtriu_indicesÚtril_indicesÚarangeÚcauchyÚemptyÚ
empty_likeÚempty_permutedÚempty_stridedÚeyeÚfullÚ	full_likeÚlinspaceÚlogspaceÚ	new_emptyÚnew_empty_stridedÚnew_fullÚnew_onesÚ	new_zerosÚonesÚ	ones_likeÚrandnÚscalar_tensorÚzeroÚzerosÚ
zeros_likeÚallcloseÚequalÚ	bucketizeÚ
is_complexÚrenormÚstftÚistftc                 ó,   — | d u xs | j                   dk7  S )NÚhpu©Útype©Údevices    úW/root/repos/pocs/video-evals/.venv/lib/python3.12/site-packages/torch/_refs/__init__.pyÚis_noncontiguous_supportedr3  i  s   € Ø�Tˆ>Ò1˜VŸ[™[¨EÑ1Ð1ó    c                 óŽ   — d }ddl m} | D ]  }t        ||«      sŒ|j                  } n t	        |«      s|j                  «       }|S )Nr   )Ú
FakeTensor)Útorch._subclasses.fake_tensorr6  Ú
isinstanceÚfake_devicer3  rÖ   )Úinput_tlistÚoutputr1  r6  rø   s        r2  Úhandle_noncontiguous_outputsr<  m  sL   € Ø€FÝ8àò ˆÜ�a˜Õ$Ø—]‘]ˆFÙðô
 & fÔ-Ø×"Ñ"Ó$ˆà€Mr4  c                  óö  — ddl m} t        d„ t        d„ | «      D «       «      }t	        |«      dk(  ry |D ]  }t        |t        «      rŒJ ‚ dgt        t        d„ |D «       «      z  }t        |«      D ]„  \  }}t        ddt	        |«      z
  d«      D ]c  } |||   dk(  «      r||   dk  rt        d«      ‚||   ||<   Œ- |||   dk7  «      sŒ<||   ||   k7  sŒHt        d	||   › d
|› d|› d|› d|› �
«      ‚ Œ† |S )Nr   ©Úguard_size_obliviousc              3   óF   K  — | ]  }t        |t        «      r|fn|–— Œ y ­w©N©r8  r   ©Ú.0Úxs     r2  ú	<genexpr>z$_broadcast_shapes.<locals>.<genexpr>  s(   è ø€ ò àô ˜1œgÔ&ˆ‰¨AÓ-ñùs   ‚!c                 ó
   — | d uS rA  © ©rE  s    r2  ú<lambda>z#_broadcast_shapes.<locals>.<lambda>�  s
   €  !¨4 -€ r4  é   c              3   ó2   K  — | ]  }t        |«      –— Œ y ­wrA  ©Úlen)rD  Úshapes     r2  rF  z$_broadcast_shapes.<locals>.<genexpr>�  s   è ø€ Ò4 E”S˜—ZÑ4ùs   ‚éÿÿÿÿz9Attempting to broadcast a dimension with negative length!z.Attempting to broadcast a dimension of length z at z ! Mismatching argument at index z had z0; but expected shape should be broadcastable to )Ú%torch.fx.experimental.symbolic_shapesr?  ÚtupleÚfilterrN  r8  r   r   ÚmaxÚ	enumerateÚrangeÚ
ValueErrorÚRuntimeError)Ú_shapesr?  ÚshapesrO  Úcommon_shapeÚarg_idxÚidxs          r2  Ú_broadcast_shapesr^  |  sZ  € ÝJäñ äÑ/°Ó9ôó €Fô ˆ6ƒ{�aÒØð ò +ˆÜ˜%¤Õ*Ð*Ð*ð+ð
 	
ðäŒsÑ4¨VÔ4Ó5ñ6€Lô $ FÓ+ò ‰ˆ�Ü˜˜R¤# e£*™_¨bÓ1ò 	ˆCÙ# L°Ñ$5¸Ñ$:Ô;Ø˜‘: ’>Ü$ØSóð ð %*¨#¡J�˜SÒ!Ù% e¨C¡j°A¡oÕ6Ø Ñ$¨¨c©
Ó2Ü&ØHÈÈsÉÈÐTXÐY\ÐX]ð ^9Ø9@¸	ÀÀuÀgð N6Ø6B°^ðEóð ñ	ðð  Ðr4  T)Úpreserve_cpu_scalar_tensorsc                 ó\   ‡ ‡‡— t        d„ |D «       Ž Šˆˆ fd„Št        ˆˆfd„|D «       «      S )Nc              3   óX   K  — | ]"  }t        |t        «      r|j                  nd –— Œ$ y ­wrA  )r8  r%   rO  ©rD  rø   s     r2  rF  z#_maybe_broadcast.<locals>.<genexpr>§  s"   è ø€ Ò	G¸Q”Z ¤:Ô.ˆ!�'Š'°DÓ
8Ñ	Gùs   ‚(*c                 ó,  •— | €y t        | t        «      r| S t        | t        «      rL‰rt        j                  | «      r| S t        j
                  | j                  ‰«      s| j                  ‰«      S | S t        dt        t        | «      «      z   dz   «      ‚)Nz#Unexpected type when broadcasting: ú!)r8  r   r%   ÚutilsÚis_cpu_scalar_tensorÚ
same_shaperO  rÞ   rX  Ústrr/  )rE  rO  r[  r_  s     €€r2  Ú__maybe_broadcastz+_maybe_broadcast.<locals>.__maybe_broadcastª  sƒ   ø€ Øˆ9ØÜ˜œ6Ô"ØˆHÜ˜œ:Ô&Ù*¬u×/IÑ/IÈ!Ô/LØ�ä×#Ñ# A§G¡G¨\Ô:Ø—x‘x Ó-Ð-àˆHäØ5¼¼DÀ»G»ÑDÀsÑJóð r4  c              3   ó0   •K  — | ]  } ‰|‰«      –— Œ y ­wrA  rH  )rD  rE  ri  r[  s     €€r2  rF  z#_maybe_broadcast.<locals>.<genexpr>¼  s   øè ø€ ÒB¸Ñ" 1 l×3ÑBùs   ƒ)r^  rR  )r_  Úargsri  r[  s   ` @@r2  Ú_maybe_broadcastrl  ¤  s-   ú€ ä$Ù	GÀ$Ô	Gð€Lõô$ ÔB¸TÔBÓBÐBr4  )Úregister_decomposition)Úaten_opÚ
extra_metaÚreturnc                ó(   ‡ ‡‡— dt         fˆˆˆ fd„}|S )NÚprimc                 ó  •‡ — t        ‰ «      t        «       t        t        d‰¬«      dt        dt        fˆˆ fd„«       «       «       «       }‰t
        u r t        j                  ‰ ‰ j                  «      Š‰� t        ‰«      |«       |S )N©Úa©Útype_promoting_argsÚtype_promotion_kindru  rp  c                 óB   •— ‰� ‰| «        ‰| «      }t        | g|«      S rA  )r<  )ru  r;  ro  rr  s     €€r2  Ú_refz>_make_elementwise_unary_reference.<locals>.inner.<locals>._refÔ  s*   ø€ ð Ð%Ù˜1”á˜!“WˆFÜ/°°°VÓ<Ð<r4  )
r   r.   r-   r,   r&   Úinfer_aten_opre  Úget_aten_opÚ__name__rm  )rr  rz  rn  ro  rx  s   ` €€€r2  Úinnerz0_make_elementwise_unary_reference.<locals>.innerÑ  s‰   ù€ ô 
ˆt‹Ü	‹Ü	)Ü	+Ø &Ø 3ô

ð	=”Nð 	=¤~õ 	=ó	

ó 
*ó 
ó 
ð	=ð ”mÑ#Ü×'Ñ'¨¨d¯m©mÓ<ˆGØÐØ+Ô" 7Ó+¨DÔ1àˆr4  ©r
   )rx  rn  ro  r~  s   ``` r2  Ú!_make_elementwise_unary_referencer€  Ë  s   ú€ ð”H÷ ð0 €Lr4  c                 ó€   ‡ — ˆ fd„}||_         t        j                  «       j                  j                  d   |_        |S )a%  
    This function defines an alias of another function and sets its __name__ argument.
    It also sets its __module__ argument to the module of the caller.
    Note that when naively doing `alias = fn`, we have that `alias.__name__ == "fn"`, and
    `alias.__module__ == fn.__module__`.
    c                  ó   •—  ‰| i |¤ŽS rA  rH  )rk  ÚkwargsÚfns     €r2  Ú_fnz_make_alias.<locals>._fnô  s   ø€ Ù�4Ð"˜6Ñ"Ð"r4  r}  )r}  ÚinspectÚcurrentframeÚf_backÚ	f_globalsÚ
__module__)r„  Únamer…  s   `  r2  Ú_make_aliasrŒ  ì  s7   ø€ ô#ð €C„LÜ×)Ñ)Ó+×2Ñ2×<Ñ<¸ZÑH€C„NØ€Jr4  c                 óò   ‡ — t        ‰ «      ˆ fd„«       }‰ j                  › d�}||_         t        t        t        |«      «      |«      }ddlm}  |‰ «      j                  }||vr|j                  |«       |S )zÑ
    Given a function with out variant (i.e. using `out_wrapper()), it returns its in-place variant
    See https://github.com/pytorch/pytorch/wiki/Developer-FAQ#how-do-in-place-operations-work-in-pytorch
    c                 ó    •—  ‰| g|¢­d| i|¤ŽS )NÚoutrH  )ru  rk  rƒ  r„  s      €r2  r…  z_make_inplace.<locals>._fn  s   ø€ á�!Ð,�dÒ, Ð, VÑ,Ð,r4  Ú_r   )Ú	getmodule)	r   r}  rm  ÚgetattrÚatenr†  r‘  Ú__all__Úappend)r„  r…  Úinplace_namer‘  Ú_alls   `    r2  Ú_make_inplacer˜  ü  sz   ø€ ô ˆ2ƒYó-ó ð-ð —k‘k�] !Ð$€LØ€C„LØ
=Ô
 ¤¬¨|Ó!<Ó
=¸cÓ
B€Cõ "á�R‹=× Ñ €DØ˜4ÑØ�‰�LÔ!Ø€Jr4  c                 ó,   — t        j                  | «      S rA  )Úprimsr/   rt  s    r2  r/   r/     ó   € ä�9‰9�Q‹<Ðr4  c                 ó,   — t        j                  | «      S rA  )rš  r0   rt  s    r2  r0   r0     ó   € ä�:‰:�a‹=Ðr4  c                 ó,   — t        j                  | «      S rA  )rš  r1   rt  s    r2  r1   r1     ó   € ä�;‰;�q‹>Ðr4  c                 ó,   — t        j                  | «      S rA  )rš  r3   rt  s    r2  r3   r3   $  r�  r4  c                 ó,   — t        j                  | «      S rA  )rš  r2   rt  s    r2  r2   r2   )  rŸ  r4  c                 ó,   — t        j                  | «      S rA  )rš  r4   rt  s    r2  r4   r4   .  r�  r4  c                 ó,   — t        j                  | «      S rA  )rš  r5   rt  s    r2  r5   r5   3  rŸ  r4  c                 ó,   — t        j                  | «      S rA  )rš  r6   rt  s    r2  r6   r6   8  s   € ä×Ñ˜QÓÐr4  c                 ó,   — t        j                  | «      S rA  )rš  r7   rt  s    r2  r7   r7   =  r�  r4  Úinputc                 ó@   — t        j                  | j                  «      S rA  )re  Úis_complex_dtypeÚdtype©r¦  s    r2  r(  r(  B  s   € ä×!Ñ! %§+¡+Ó.Ð.r4  c                 ón   — t        j                  | j                  «      s| S t        j                  | «      S rA  )re  r¨  r©  rš  r8   rª  s    r2  r8   r8   G  s,   € ô ×!Ñ! %§+¡+Ô.ØˆÜ×Ñ˜uÓ%Ð%r4  c                 ó,   — t        j                  | «      S rA  )rš  r9   rt  s    r2  r9   r9   O  r›  r4  c                 ó,   — t        j                  | «      S rA  )rš  r:   rt  s    r2  r:   r:   T  r�  r4  c                 ó,   — t        j                  | «      S rA  )rš  r=   rt  s    r2  r=   r=   Y  ó   € ä�=‰=˜ÓÐr4  c                 ó,   — t        j                  | «      S rA  )rš  r>   rt  s    r2  r>   r>   ^  r›  r4  c                 ó,   — t        j                  | «      S rA  )rš  Úerf_invrt  s    r2  r?   r?   c  r¯  r4  c                 ó,   — t        j                  | «      S rA  )rš  r@   rt  s    r2  r@   r@   h  r�  r4  c                 ó,   — t        j                  | «      S rA  )rš  rA   rt  s    r2  rA   rA   m  r›  r4  c                 ó,   — t        j                  | «      S rA  )rš  rB   rt  s    r2  rB   rB   r  rŸ  r4  c                 ó,   — t        j                  | «      S rA  )rš  rD   rt  s    r2  rD   rD   w  r�  r4  za,rv  ru  Úvaluec                 ó,  — t        | t        «      sJ ‚t        |t        «      sJ ‚t        j                  | j
                  «      }t        j                  t        |«      |«      sdt        |«      › d|› d�}t        |«      ‚t        j                  | |«      S ©Nzvalue argument of type ú cannot be safely cast to type rd  )r8  r%   r   re  r   r©  r   r/  rW  rš  rE   )ru  r·  Úpython_typeÚmsgs       r2  rE   rE   ~  sƒ   € ô �aœÔ$Ð$Ð$Ü�eœVÔ$Ð$Ð$ä×%Ñ% a§g¡gÓ.€KÜ×&Ñ&¤t¨E£{°KÔ@Ø'¬¨U« }Ð4SÐT_ÐS`Ð`aÐbˆÜ˜‹oÐä�:‰:�a˜ÓÐr4  c                 ó^   — t        j                  | |«      }t        j                  | |«       | S rA  )rš  rE   r±   )ru  r·  Úrs      r2  rF   rF   �  s%   € Ü�
‰
�1�eÓ€AÜ	‡M�M�!�QÔØ€Hr4  c                 ó,   — t        j                  | «      S rA  )Útorchr$  rª  s    r2  r"  r"  •  s   € ô ×Ñ˜EÓ"Ð"r4  c                 ó,   — t        j                  | «      S rA  )rš  rG   rt  s    r2  rG   rG   ›  rŸ  r4  rE  c                 óÌ   — t        j                  t        j                  t        j                  | «      «      t        j                  | «      «      }t        j
                  | |«      S rA  )rÀ  rœ   rG   r/   rj   r¦   )rE  Útrunc_xs     r2  rH   rH      s<   € ä�i‰iœŸ™¤E§I¡I¨a£LÓ1´5·:±:¸a³=ÓA€GÜ�9‰9�Q˜Ó Ð r4  c                 ó¸   — t        | t        «      sJ ‚t        j                  t	        j
                  | j                  «      d„ «       t        j                  | «      S )Nc                   ó   — y)Nz#imag only supports complex tensors.rH  rH  r4  r2  rJ  zimag.<locals>.<lambda>ª  ó   � r4  )	r8  r%   rÀ  Ú_checkre  r¨  r©  rš  rŽ   rt  s    r2  rŽ   rŽ   §  sC   € Ü�aœÔ$Ð$Ð$Ü	‡L�LÜ×Ñ˜qŸw™wÓ'Ñ)Vôô �:‰:�a‹=Ðr4  )rn  c                 óÞ   — t        j                  | j                  «      st        j                  | j                  «      rt	        j
                  | «      S t        | t        j                  ¬«      S )N©r©  )	re  Úis_float_dtyper©  r¨  rš  rP   r  rÀ  Úboolrt  s    r2  rP   rP   ¯  sG   € ô
 ×Ñ˜AŸG™GÔ$¬×(>Ñ(>¸q¿w¹wÔ(GÜ�~‰~˜aÓ Ð ä�QœeŸj™jÔ)Ð)r4  c                 ó¦  — t        j                  | j                  «      rNt        j                  t        t        j                  | «      «      t        t        j                  | «      «      «      S t        j                  | j                  «      r!t        j                  | «      t        d«      k(  S t        j                  | t        j                  ¬«      S )NÚinfrÉ  )re  r¨  r©  rÀ  r–   rQ   r    rŽ   rÊ  r/   Úfloatr$  rË  rt  s    r2  rQ   rQ   º  s�   € ä×Ñ˜aŸg™gÔ&Ü×Ñ¤¤e§j¡j°£mÓ 4´e¼E¿J¹JÀq»MÓ6JÓKÐKÜ×Ñ˜AŸG™GÔ$Ü�y‰y˜‹|œu U›|Ñ+Ð+Ü×Ñ˜A¤U§Z¡ZÔ0Ð0r4  c                 ó  ‡ — t        j                  t        j                  ‰ j                  «       ˆ fd„«       t        j
                  ‰ j                  «      r‰ t        d«      k(  S t        j                  ‰ t         j                  ¬«      S )Nc                  ó"   •— d‰ j                   › �S )Nz7Complex dtype is not supported for isposinf, got dtype rÉ  rt  s   €r2  rJ  zisposinf.<locals>.<lambda>Ç  ó   ø€ ÐIÈ!Ï'É'ÈÐS€ r4  rÍ  rÉ  ©	rÀ  rÇ  re  r¨  r©  rÊ  rÎ  r$  rË  rt  s   `r2  rR   rR   Ã  sa   ø€ ä	‡L�LÜ×"Ñ" 1§7¡7Ó+Ð+ÛSôô ×Ñ˜AŸG™GÔ$Ø”E˜%“LÑ Ð Ü×Ñ˜A¤U§Z¡ZÔ0Ð0r4  c                 ó  ‡ — t        j                  t        j                  ‰ j                  «       ˆ fd„«       t        j
                  ‰ j                  «      r‰ t        d«      k(  S t        j                  ‰ t         j                  ¬«      S )Nc                  ó"   •— d‰ j                   › �S )Nz7Complex dtype is not supported for isneginf, got dtype rÉ  rt  s   €r2  rJ  zisneginf.<locals>.<lambda>Ò  rÑ  r4  z-infrÉ  rÒ  rt  s   `r2  rS   rS   Î  sa   ø€ ä	‡L�LÜ×"Ñ" 1§7¡7Ó+Ð+ÛSôô ×Ñ˜AŸG™GÔ$Ø”E˜&“MÑ!Ð!Ü×Ñ˜A¤U§Z¡ZÔ0Ð0r4  c                 ó.   — t        j                  | | «      S rA  ©rš  r�   rt  s    r2  rT   rT   Ù  s   € ä�8‰8�A�q‹>Ðr4  r_   c                 óº   — t        j                  | j                  «      rt        j                  | «      dk(  S t        j
                  | t        j                  ¬«      S )Nr   rÉ  )re  r¨  r©  rÀ  rŽ   r  rË  rt  s    r2  rU   rU   â  s>   € ô
 ×Ñ˜aŸg™gÔ&Ü�z‰z˜!‹} Ñ!Ð!Ü�?‰?˜1¤E§J¡JÔ/Ð/r4  c                 ó,   — t        j                  | «      S rA  )rš  Ú	bessel_i0rt  s    r2  rV   rV   í  s   € ô �?‰?˜1ÓÐr4  c                 ó,   — t        j                  | «      S rA  )rš  rX   rt  s    r2  rX   rX   ô  s   € ä�<‰<˜‹?Ðr4  c                 ó,   — t        j                  | «      S rA  )rš  rY   rt  s    r2  rY   rY   ù  r›  r4  c                 ó,   — t        j                  | «      S rA  )rš  rZ   rt  s    r2  rZ   rZ   þ  rŸ  r4  c                 ó,   — t        j                  | «      S rA  )rš  r[   rt  s    r2  r[   r[     r�  r4  c                 ó,   — t        j                  | «      S rA  )rš  r\   rt  s    r2  r\   r\     rŸ  r4  Údimr©  c                 óš   — |xs | j                   }t        j                  |«      }t        | |«      }t        |t	        ||d¬«      z
  |«      S )NT©Úkeepdim)r©  re  Úget_computation_dtyper)   r˜   )ru  rß  r©  Úresult_dtypeÚcomputation_dtypeÚa_s         r2  r^   r^     sK   € ð Ò#˜AŸG™G€LÜ×3Ñ3°LÓAÐÜ	  Ð$5Ó	6€BÜ" 2¬	°"°cÀ4Ô(HÑ#HÈ,ÓWÐWr4  ©ÚselfFrè  râ  c                 óB  — t        |t        «      s|f}| j                  «       dk(  r8t        j                  t        j
                  | «      ||«      j                  «       S t        j                  t        j                  | «      |d¬«      }t        j                  ||j                  «       t        d«      k(  d«      }|r|nt        j                  ||«      }t        j                  t        j
                  | |z
  «      ||«      }|j                  «       j                  |«      S )Nr   Trá  rÍ  )r8  r   ÚnumelrÀ  r¿   rA   rY   rµ   r    r­   r/   rÎ  r÷   rv   )rè  rß  râ  ÚmaxesÚmaxes_squeezedÚresults         r2  r˜   r˜     sÏ   € ô �cœ8Ô$ØˆfˆØ‡z�zƒ|�qÒÜ�y‰yœŸ™ 4›¨#¨wÓ7×;Ñ;Ó=Ð=Ü�J‰J”u—z‘z $Ó'¨°dÔ;€EÜ×Ñ˜e U§Y¡Y£[´E¸%³LÑ%@À!ÓD€EÙ%‘U¬5¯=©=¸ÀÓ+D€NÜ�Y‰Y”u—y‘y ¨¡Ó.°°WÓ=€FØ�:‰:‹<×Ñ˜NÓ+Ð+r4  ÚnanÚposinfÚneginfc                 óv  — t        | t        «      sJ ‚t        j                  | j                  «      st        j
                  | j                  «      r| j                  «       S |€d}|€)t        j                  | j                  «      j                  }|€)t        j                  | j                  «      j                  }t        j                  t        j                  | «      || «      }t        j                  t        j                  | «      ||«      }t        j                  t        j                  | «      ||«      }|S )Nç        )r8  r%   re  Úis_boolean_dtyper©  Úis_integer_dtyper°   rÀ  ÚfinforT  Úminr¯   rT   rS   rR   )ru  rî  rï  rð  rí  s        r2  rb   rb   .  sÜ   € ô �aœÔ$Ð$Ð$ä×Ñ˜aŸg™gÔ&¬%×*@Ñ*@ÀÇÁÔ*IØ�w‰w‹yÐà
€{Øˆà€~Ü—‘˜QŸW™WÓ%×)Ñ)ˆà€~Ü—‘˜QŸW™WÓ%×)Ñ)ˆä�[‰[œŸ™ Q›¨¨aÓ0€FÜ�[‰[œŸ™¨Ó*¨F°FÓ;€FÜ�[‰[œŸ™¨Ó*¨F°FÓ;€FØ€Mr4  c                 óf   — t        j                  | j                  t         j                  ud„ «       y )Nc                   ó   — 	 y)Nz“Negation, the `-` operator, on a bool tensor is not supported. If you are trying to invert a mask, use the `~` or `logical_not()` operator instead.rH  rH  r4  r2  rJ  z_neg_meta.<locals>.<lambda>M  s   € ð ð r4  )rÀ  rÇ  r©  rË  rt  s    r2  Ú	_neg_metarù  J  s#   € Ü	‡L�LØ	�‰”u—z‘zÐ!ñ	
õr4  )ro  c                 ó,   — t        j                  | «      S rA  )rš  rc   rt  s    r2  rc   rc   U  s   € ô �9‰9�Q‹<Ðr4  c                 ó|   — t        | t        «      sJ ‚| j                  t        j                  u rd}t        |«      ‚| S )Nz'positive does not support bool tensors.)r8  r%   r©  rÀ  rË  rX  )ru  r¼  s     r2  rd   rd   ^  s7   € Ü�aœÔ$Ð$Ð$Ø‡w�w”%—*‘*ÑØ7ˆÜ˜3ÓÐØ€Hr4  c                 ó’   — t        | t        «      sJ ‚t        j                  | j                  «      rt        j                  | «      S | S rA  )r8  r%   re  r¨  r©  rš  r    rt  s    r2  r    r    g  s7   € Ü�aœÔ$Ð$Ð$Ü×Ñ˜aŸg™gÔ&Ü�z‰z˜!‹}ÐØ€Hr4  c                 ó,   — t        j                  | «      S rA  )rš  rf   rt  s    r2  rf   rf   n  s   € ä×Ñ˜AÓÐr4  rt  )Údecimalsrþ  c                óÆ   — |dk(  rt        j                  | «      S d|z  }d| z  }t        j                  t        j                  t        j                  | |«      «      |«      S )Nr   é
   )rš  rg   rœ   )ru  rþ  Úten_powÚten_neg_pows       r2  rg   rg   s  sS   € ð �1‚}Ü�{‰{˜1‹~Ðà�h‘,ˆØ˜h˜YÑ'ˆÜ�y‰yœŸ™¤U§Y¡Y¨q°'Ó%:Ó;¸[ÓIÐIr4  c                 ó,   — t        j                  | «      S rA  )rš  rô   rt  s    r2  rô   rô   ‚  rŸ  r4  c                 óR   — t        dt        dt        t        | «      «      «      «      S )NrK  )r§   rv   rA   rc   rt  s    r2  rh   rh   ‡  s   € ä�qœ#˜a¤¤S¨£V£Ó-Ó.Ð.r4  c                 óº   — t        j                  | j                  «      r-| j                  «       }t	        j
                  |dk(  d| |z  «      S | j                  «       S ©Nr   )re  r¨  r©  r/   rÀ  r¯   rj   )ru  Úa_abss     r2  ri   ri   Œ  sE   € ä×Ñ˜aŸg™gÔ&Ø—‘“ˆÜ�{‰{˜5 A™: q¨!¨e©)Ó4Ð4à�v‰v‹xˆr4  c                 ó,   — t        j                  | «      S rA  )rš  rj   rt  s    r2  rj   rj   •  r�  r4  c                 ó,   — t        j                  | «      S rA  )rš  rk   rt  s    r2  rk   rk   š  r¯  r4  c                 ó,   — t        j                  | «      S rA  )rš  rl   rt  s    r2  rl   rl   Ÿ  r›  r4  c                 óˆ   — t         j                  | z  } t        j                  | dk(  dt        j                  | «      | z  «      S ©Nr   rK  )ÚmathÚpirÀ  r¯   rl   rt  s    r2  rm   rm   ¦  s3   € ä�‰�!‰€AÜ�;‰;�q˜A‘v˜q¤%§)¡)¨A£,°Ñ"2Ó3Ð3r4  c                 ó,   — t        j                  | «      S rA  )rš  rn   rt  s    r2  rn   rn   ¬  r�  r4  c                 ó,   — t        j                  | «      S rA  )rš  rp   rt  s    r2  rp   rp   ±  r�  r4  c                 ó   — t        | | «      S rA  )rœ   rt  s    r2  rq   rq   ¶  s   € ô
 ˆq�!‹9Ðr4  c                 ó,   — t        j                  | «      S rA  )rš  rr   rt  s    r2  rr   rr   ¾  r›  r4  c                 ó,   — t        j                  | «      S rA  )rš  rs   rt  s    r2  rs   rs   Ã  r�  r4  c                 ó,   — t        j                  | «      S rA  )rš  ru   rt  s    r2  ru   ru   È  rŸ  r4  c                 ó   ‡— | j                   Št        j                  t        j                  ‰«      ˆfd„«       | j                  «       }t        j                  t        |«      dk7  d„ «       t        j                  |d   dk(  d„ «       | j                  «       }t        j                  |d   dk(  d„ «       |d d }t        j                  t        j                  d	„ |D «       «      d
„ «       t        j                  | j                  «       dz  dk(  d„ «       t        j                  | t        j                  ‰«      «      j                  d«      S )Nc                  ó   •— d‰ › �S )Nz^view_as_complex is only supported for floating pointtensors, but got a tensor of scalar type: rH  )Úinput_dtypes   €r2  rJ  z!view_as_complex.<locals>.<lambda>Ò  s   ø€ ð 5Ø5@°MðC€ r4  r   c                   ó   — y)Nz-Input tensor must have one or more dimensionsrH  rH  r4  r2  rJ  z!view_as_complex.<locals>.<lambda>Ø  rÆ  r4  rP  é   c                   ó   — y)Nz+Tensor must have a last dimension of size 2rH  rH  r4  r2  rJ  z!view_as_complex.<locals>.<lambda>Ü  rÆ  r4  rK  c                   ó   — y)Nz/Tensor must have a last dimension with stride 1rH  rH  r4  r2  rJ  z!view_as_complex.<locals>.<lambda>â  rÆ  r4  c              3   ó,   K  — | ]  }|d z  dk(  –— Œ y­w)r  r   NrH  )rD  Ústrides     r2  rF  z"view_as_complex.<locals>.<genexpr>æ  s   è ø€ Ò8¨�V˜a‘Z 1•_Ñ8ùó   ‚c                   ó   — y)NzCTensor must have a stride divisible by 2 for all but last dimensionrH  rH  r4  r2  rJ  z!view_as_complex.<locals>.<lambda>ç  rÆ  r4  c                   ó   — y)Nz0Tensor must have a storage_offset divisible by 2rH  rH  r4  r2  rJ  z!view_as_complex.<locals>.<lambda>ë  rÆ  r4  )r©  rÀ  rÇ  re  rÊ  ÚsizerN  r  Úbuiltinsr´   Ústorage_offsetrš  Úview_element_typeÚcorresponding_complex_dtyper÷   )rè  ÚsizesÚold_stridesÚdimsr  s       @r2  r  r  Î  s  ø€ Ø—*‘*€KÜ	‡L�LÜ×Ñ˜[Ó)ó	Côð
 �I‰I‹K€EÜ	‡L�LÜˆE‹
�a‰Ù?ôô 
‡L�LØˆb‰	�Q‰Ù=ôð
 —+‘+“-€KÜ	‡L�LØ�B‰˜1ÑÙAôð �s˜Ð€DÜ	‡L�LÜ�‰Ñ8°4Ô8Ó8ÙUôô 
‡L�LØ×ÑÓ Ñ! QÑ&ÙBôô ×"Ñ"ØŒe×/Ñ/°Ó<óç�gˆbƒkðr4  c           	      ó<   ‡ ‡‡‡‡‡‡‡— dt         fˆˆˆˆˆˆˆˆ fd„}|S )Nrr  c                 óf  •‡ — ‰€‰ j                   Št        ‰ «      t        d‰	¬«      dt        t        t
        f   dt        t        t
        f   dt        fˆˆ ˆˆˆfd„«       «       }‰r t        «       |«      }‰|_         ‰t        u rt        j                  ‰ ‰«      Š‰�‰r t        ‰«      |«       |S )N©ru  Úbrv  ru  r,  rp  c                 ó|  •— t        j                  ‰xs t        | t        «       ˆfd„«       t        j                  ‰xs t        |t        «       ˆfd„«       t        j                  ‰xs# t        | t        «      xr t        |t        «       ˆfd„«       t	        | |«      \  } } ‰| |«      }t        | |g|«      S )Nc                  ó   •— ‰ › d�S )Nzc: Received a lhs Python scalar to an elementwise binary operation that does not accept lhs scalars!rH  ©r‹  s   €r2  rJ  zQ_make_elementwise_binary_reference.<locals>.inner.<locals>._ref.<locals>.<lambda>  ó   ø€ ˜4˜&ð !>ð >€ r4  c                  ó   •— ‰ › d�S )Nzc: Received a rhs Python scalar to an elementwise binary operation that does not accept rhs scalars!rH  r/  s   €r2  rJ  zQ_make_elementwise_binary_reference.<locals>.inner.<locals>._ref.<locals>.<lambda>  r0  r4  c                  ó   •— ‰ › d�S )Nz?: Receive two Number inputs to an elementwise binary operation!rH  r/  s   €r2  rJ  zQ_make_elementwise_binary_reference.<locals>.inner.<locals>._ref.<locals>.<lambda>  s   ø€ ˜4˜&Ð _Ð`€ r4  )rÀ  Ú_check_valuer8  r   rl  r<  )ru  r,  r;  r‹  rr  Úsupports_lhs_python_scalarÚsupports_rhs_python_scalarÚsupports_two_python_scalarss      €€€€€r2  rz  z?_make_elementwise_binary_reference.<locals>.inner.<locals>._ref  s´   ø€ ô ×ÑØ*ÒG´*¸QÄÓ2GÐ.Gó>ôô
 ×ÑØ*ÒG´*¸QÄÓ2GÐ.Gó>ôô
 ×ÑØ+ò IÜ" 1¤fÓ-ÒG´*¸QÄÓ2GÐHÛ`ôô
 $ A qÓ)‰DˆAˆqÙ˜!˜Q“ZˆFÜ/°°A°¸Ó?Ð?r4  )r}  r   r,   r   ÚTensorr    r.   r{  re  r|  rm  )
rr  rz  rn  Úhas_outr‹  Úshould_register_decompositionr4  r5  r6  rx  s
   ` €€€€€€€€r2  r~  z1_make_elementwise_binary_reference.<locals>.innerü  sÅ   ù€ àˆ<Ø—=‘=ˆDä	ˆt‹Ü	+Ø *Ø 3ô

ð	@Ü”VœZÐ'Ñ(ð	@ä”VœZÐ'Ñ(ð	@ô ÷	@ð 	@ó	

ó 
ð
	@ñ. Ø ”;“= Ó&ˆDàˆŒØ”mÑ#Ü×'Ñ'¨¨dÓ3ˆGØÐÑ#@Ø+Ô" 7Ó+¨DÔ1àˆr4  r  )	rx  rn  r‹  r8  r4  r5  r6  r9  r~  s	   ```````` r2  Ú"_make_elementwise_binary_referencer:  ò  s   ÿ€ ð*”H÷ *ô *ðX €Lr4  r+  ©Úalphar,  r<  c                óÈ  — t        | |«      \  } }|�®t        | t        «      r| j                  n|j                  }t	        j
                  |«      }|t        k7  r<t	        j                  t        |«      |«      sdt        |«      › d|› d�}t        |«      ‚t        |t        «      rt        j                  ||«      }n||z  }t        j                  | |«      }t        | |g|«      S )z/
    Reference implementation of torch.add
    úalpha argument of type rº  rd  )rl  r8  r%   r©  re  r   rË  r   r/  rW  rš  rœ   rv   r<  ©ru  r,  r<  r©  r»  r¼  r;  s          r2  rv   rv   ,  sË   € ô  ˜A˜qÓ!�D€A€qàÐÜ% a¬Ô4�—’¸!¿'¹'ˆÜ×)Ñ)¨%Ó0ˆØœ$Ò¤u×'BÑ'BÜ�‹K˜ô(
ð ,¬D°«K¨=Ð8WÐXcÐWdÐdeÐfˆCÜ˜S“/Ð!Ü�aœÔ$Ü—	‘	˜!˜UÓ#‰Aà�E‘	ˆAä�Y‰Y�q˜!‹_€FÜ'¨¨A¨°Ó7Ð7r4  )rx  r4  r5  c                 ó.   — t        j                  | |«      S rA  )rš  rw   r+  s     r2  rw   rw   O  ó   € ô �;‰;�q˜!ÓÐr4  )rx  c                 ó.   — t        j                  | |«      S rA  )rš  rx   r+  s     r2  rx   rx   X  ó   € ô ×Ñ˜Q Ó"Ð"r4  c                 ó.   — t        j                  | |«      S rA  )rš  Ú
shift_leftr+  s     r2  ry   ry   _  ó   € ô ×Ñ˜A˜qÓ!Ð!r4  c                 ó.   — t        j                  | |«      S rA  )rš  rz   r+  s     r2  rz   rz   f  rF  r4  c                 ó.   — t        j                  | |«      S rA  )rš  Úshift_right_arithmeticr+  s     r2  r{   r{   m  s   € ô ×'Ñ'¨¨1Ó-Ð-r4  c                 ó.   — t        j                  | |«      S rA  )rš  r|   r+  s     r2  r|   r|   t  rC  r4  )rx  r4  c                 ó¬  — t        |t        «      r3t        | t        «      r#t        || j                  | j
                  ¬«      }nat        | t        «      rQt        |t        «      rA| j
                  |j
                  k7  r(d| j
                  › d|j
                  › d�}t        |«      ‚t        t        |«      t        t        | «      «      t        | «      «      S )N©r©  r1  ú/Expected divisor (b) to be on the same device (ú&) as dividend (a), but it is found on rd  )r8  r   r7  r!  r©  r1  rX  r¯   rk   rc   r/   )ru  r,  r¼  s      r2  r   r   {  s›   € ô �!”VÔ¤¨A¬vÔ!6Ü˜! 1§7¡7°1·8±8Ô<‰Ü	�A”vÔ	¤:¨a´Ô#8¸Q¿X¹XÈÏÉÒ=QØ?ÀÇÁ¸zÐIoÐpq×pxÑpxÐoyÐyzÐ{ˆÜ˜3ÓÐÜ”˜“œS¤ Q£›[¬#¨a«&Ó1Ð1r4  )Úrounding_moderO  c                ó„   — |€t        | |«      S |dk(  rt        | |«      S |dk(  rt        | |«      S d|› d�}t        |«      ‚)z/
    Reference implementation of torch.div
    ru   rG   zLdiv expected rounding_mode to be one of None, 'trunc', or 'floor' but found ú.)r§   r¨   rƒ   rW  )ru  r,  rO  r¼  s       r2  r€   r€   �  s\   € ð ÐÜ˜1˜aÓ Ð Ø	˜'Ò	!Ü˜A˜qÓ!Ð!Ø	˜'Ò	!Ü˜A˜qÓ!Ð!à\Ð]jÐ\kÐklÐmˆÜ˜‹oÐr4  c                 ó.   — t        j                  | |«      S rA  )rš  r�   r+  s     r2  r�   r�   £  ó   € ô
 �8‰8�A�q‹>Ðr4  c                 ó
  — t        | t        «      st        |t        «      sJ ‚t        |t        «      r9|dk(  r| j                  «       S |dk(  r| | z  S |dk(  r˜t	        j
                  | «      S t        | t        «      rs| dk(  rt	        j                  |d«      S | dk(  rSt        j                  |j                  «      st        j                  |j                  «      rt	        j                  |«      S t        j                  | |«      S )Nç      ð?g       @ç      à?T)r8  r&   r   r°   rÀ  rp   rE   re  rÊ  r©  r¨  rD   rš  rŸ   r+  s     r2  rŸ   rŸ   «  sÉ   € ô �aœÔ(¬J°q¼.Ô,IÐIÐIä�!”VÔØ�Š8Ø—7‘7“9ÐØ�#ŠXØ�q‘5ˆLØ�#ŠXÜ—:‘:˜a“=Ð Ü	�A”vÔ	Ø�Š8Ü—:‘:˜a Ó&Ð&Ø�Š8Ü× Ñ  §¡Ô)¬U×-CÑ-CÀAÇGÁGÔ-Lä—:‘:˜a“=Ð ä�9‰9�Q˜‹?Ðr4  c                 ó^  — t        | t        «      rt        |t        «      rt        d«      ‚t        j                  | |«      }|€J ‚t        j
                  |«      rt        j                  }nt        j                  }t        | |«      } t        ||«      }t        | |«      \  } }t        | |«      S )Nz=Receive two Number inputs to an elementwise binary operation!)r8  r   rW  re  Úget_higher_dtyper¨  rÀ  Ú
complex128Úfloat64r)   rl  rŸ   ©ru  r,  r©  s      r2  r‚   r‚   È  sŸ   € ô
 �!”VÔ¤¨A¬vÔ!6ÜØKó
ð 	
ô
 ×"Ñ" 1 aÓ(€EØÐÐÐÜ×Ñ˜eÔ$Ü× Ñ ‰ä—‘ˆô 	   5Ó)€AÜ  5Ó)€Aä˜A˜qÓ!�D€A€qÜˆq�!‹9Ðr4  )rx  r6  r9  c                 óÜ  ‡— t        | t        «      r(t        |t        «      rt        | «      } t        |«      }�n*t        |t        «      r3t        | t        «      r#t        || j                  | j
                  ¬«      }nçt        | t        «      r3t        |t        «      r#t        | |j                  |j
                  ¬«      } n¤t        | t        «      r”t        |t        «      r„| j
                  |j
                  k7  rk| j
                  t        j
                  d«      k(  r(d| j
                  › d|j
                  › d�}t        |«      ‚t        j                  || j
                  ¬«      }t        | t        «      rt        |t        «      sJ ‚| j                  Št        j                  ‰«      rt        | |«      S t        j                  ‰«      rt        | |«      S t        j                  dˆfd„«       y )	NrL  ÚcpurM  rN  rd  r0  Fc                  ó   •— ‰ › d�S )Nz not supported for floor_dividerH  rÉ  s   €r2  rJ  zfloor_divide.<locals>.<lambda>  s   ø€  u gÐ-LÐ$M€ r4  )r8  r   r!  r7  r©  r1  rÀ  rX  rš  Ú
device_putre  rÊ  Ú_floor_divide_floatrô  Ú_floor_divide_integerrÇ  )ru  r,  r¼  r©  s      @r2  rƒ   rƒ   ÿ  s_  ø€ ô �!”VÔ¤¨A¬vÔ!6Ü˜!ÓˆÜ˜!ÓŠÜ	�A”vÔ	¤:¨a´Ô#8Ü˜! 1§7¡7°1·8±8Ô<‰Ü	�A”vÔ	¤:¨a´Ô#8Ü˜! 1§7¡7°1·8±8Ô<‰Ü	�A”vÔ	¤:¨a´Ô#8¸Q¿X¹XÈÏÉÒ=QØ�8‰8”u—|‘| EÓ*Ò*ØCÀAÇHÁHÀ:ÐMsÐtu×t|Ñt|Ðs}Ð}~ÐˆCÜ˜sÓ#Ð#ä× Ñ  ¨1¯8©8Ô4ˆAä�aœÔ ¤Z°´6Ô%:Ð:Ð:Ø�G‰G€EÜ×Ñ˜EÔ"Ü" 1 aÓ(Ð(Ü	×	Ñ	 Ô	&Ü$ Q¨Ó*Ð*ä�‰�UÓMÕNr4  c                 ót  — t        | |«      \  } }| j                  j                  st        j                  | |«      S t        j                  | «      t        j                  |«      k7  j                  t        j                  | |«      dk7  «      }t        j                  | |«      t        || j                  «      z
  S r  )
rl  r©  Ú	is_signedrš  r€   rÀ  rk   r”   r†   r)   )ru  r,  Úoffsets      r2  ra  ra     sŠ   € Ü˜A˜qÓ!�D€A€qà�7‰7×ÒÜ�y‰y˜˜A‹Ðô �m‰m˜AÓ¤%§-¡-°Ó"2Ñ2×?Ñ?ÄÇ
Á
È1ÈaÓ@PÐTUÑ@UÓV€FÜ�9‰9�Q˜‹?Ô4°V¸Q¿W¹WÓEÑEÐEr4  c                 ó   — t        | |«      }t        t        | |«      |«      }t        t	        | d«      t	        |d«      «      }t        |d«      }t        ||«      }t        |t        |d«      |«      }t        |«      }t        t        ||«      d«      }t        |t        |d«      |«      }t        | |«      }t        d|j                  |j                  ¬«      }	t        t        |d«      |t        |	|«      «      }t        t        |d«      ||«      S )Nr   rK  rV  rL  )r†   r§   r¦   r|   r™   r�   rx   r¯   rG   r‰   rv   r!  r©  r1  r   )
ru  r,  Úmodr€   Údifferent_signed_inputsÚnon_zero_remainderÚmaskÚ	floor_divÚ	basic_divÚzero_tensors
             r2  r`  r`  +  só   € Ü
ˆq�!‹*€CÜ
”c˜!˜S“k 1Ó
%€Cô *¬"¨Q°«(´B°q¸!³HÓ=ÐÜ˜C ›ÐÜÐ)Ð+BÓC€DÜ
�”c˜#˜q“k 3Ó
'€Cô �c“
€IÜŒc�#�yÓ! 3Ó'€DÜ�dœC 	¨1Ó-¨yÓ9€Iä˜A˜qÓ!€IÜ ¨¯©À×AQÑAQÔR€Kô ”b˜˜a“j )¬X°kÀ9Ó-MÓN€Iô ”�A�q“˜9 iÓ0Ð0r4  c                 ó.   — t        j                  | |«      S rA  )rš  r„   r+  s     r2  r„   r„   D  ó   € ô �:‰:�a˜ÓÐr4  c                 ó.   — t        j                  | |«      S rA  )rš  r…   r+  s     r2  r…   r…   M  rn  r4  c                 ó.   — t        j                  | |«      S rA  )rš  r†   r+  s     r2  r†   r†   V  rn  r4  ÚmantissaÚexponentc                 óf   — t         j                  j                  t        j                  | «      «      S rA  )rÀ  Úreturn_typesÚfrexprš  rç  s    r2  ru  ru  _  s$   € ô ×Ñ×#Ñ#¤E§K¡K°Ó$5Ó6Ð6r4  c                 ó.   — t        j                  | |«      S rA  )rš  r‡   r+  s     r2  r‡   r‡   e  s   € ô �9‰9�Q˜‹?Ðr4  c                 ó.   — t        j                  | |«      S rA  )rš  rˆ   r+  s     r2  rˆ   rˆ   n  rS  r4  c                 ó.   — t        j                  | |«      S rA  )rš  r‰   r+  s     r2  r‰   r‰   v  rS  r4  Úvaluesc                 ó  — t        j                  | d«      }t        j                  t        j                  | d«      t        j                  | «      «      }t        j
                  |dd«      }t        j
                  |||«      }|S r  )rÀ  r�   r–   r™   rT   r¯   )r¦  ry  Úinput_eq_zeroÚinput_lt_zeroÚzeros_and_onesr;  s         r2  rŠ   rŠ   ~  sc   € ô —H‘H˜U AÓ&€MÜ×$Ñ$¤U§X¡X¨e°QÓ%7¼¿¹ÀUÓ9KÓL€MÜ—[‘[ °°1Ó5€NÜ�[‰[˜¨°Ó?€FØ€Mr4  c                 ó.   — t        j                  | |«      S rA  )rš  r‹   r+  s     r2  r‹   r‹   ‹  rA  r4  c                 ó.   — t        j                  | |«      S rA  )rš  rŒ   r+  s     r2  rŒ   rŒ   ”  s   € ô �<‰<˜˜1ÓÐr4  c                 ó.   — t        j                  | |«      S rA  )rš  r�   r+  s     r2  r�   r�   �  s   € ô �=‰=˜˜AÓÐr4  r‹  ÚrtolÚatolc                 óæ   ‡ ‡‡‡‡— t        j                  ‰j                  ‰j                  k(  ˆˆˆ fd„«       t        j                  ‰dk\  ˆ ˆfd„«       t        j                  ‰dk\  ˆˆ fd„«       y )Nc                  óB   •— ‰› d‰ j                   › d‰j                   › d�S )Nz4: Attempting to compare tensors of different dtypes ú and rd  rÉ  )ru  r,  r‹  s   €€€r2  rJ  z#_check_close_args.<locals>.<lambda>¯  s)   ø€ �4�&ÐLÈQÏWÉWÈIÐUZÐ[\×[bÑ[bÐZcÐcdÐe€ r4  r   c                  ó   •— ‰ › d‰› d�S )Nz6: rtol must be greater than or equal to zero, but got rd  rH  )r‹  r�  s   €€r2  rJ  z#_check_close_args.<locals>.<lambda>³  ó   ø€ �4�&ÐNÈtÈfÐTUÐV€ r4  c                  ó   •— ‰› d‰ › d�S )Nz6: atol must be greater than or equal to zero, but got rd  rH  )r‚  r‹  s   €€r2  rJ  z#_check_close_args.<locals>.<lambda>·  r‡  r4  )rÀ  r3  r©  rÇ  ©r‹  ru  r,  r�  r‚  s   `````r2  Ú_check_close_argsrŠ  ¦  sV   ü€ ô 
×ÑØ	�‰�1—7‘7ÑÝeôô 
‡L�LØ�‰	ÜVôô 
‡L�LØ�‰	ÜVõr4  Ú	equal_nanc           
      óü  — t        d| |||¬«       t        | |«      }|rft        j                  | j                  «      st        j
                  | j                  «      r(t        |t        t        | «      t        |«      «      «      }|dk(  r|dk(  r|S t        j                  | j                  «      sot        j
                  | j                  «      sPt        j                  | t        j                  «       «      } t        j                  |t        j                  «       «      }t        |t        t        ||«      «      «      }t        t!        | |«      «      }t        |t        t#        |«      t%        ||«      «      «      }|S )Nztorch.iscloser‰  r   )rŠ  r�   re  rÊ  r©  r¨  r–   r”   rT   rš  Úconvert_element_typerÀ  Úget_default_dtyperv   r/   rœ   r¦   rP   r‘   )	ru  r,  r�  r‚  r‹  ÚcloseÚallowed_errorÚactual_errorrí  s	            r2  r�   r�   ¼  s  € ô ˜?¨a°1¸4ÀdÕKäˆq�!‹H€EÙ”e×*Ñ*¨1¯7©7Ô3´u×7MÑ7MÈaÏgÉgÔ7VÜ˜5¤+¬e°A«h¼¸a»Ó"AÓBˆð ˆq‚y�T˜Q’YØˆô ×Ñ §¡Ô(´×1GÑ1GÈÏÉÔ1PÜ×&Ñ& q¬%×*AÑ*AÓ*CÓDˆÜ×&Ñ& q¬%×*AÑ*AÓ*CÓDˆä˜œc¤# a¨£,Ó/Ó0€MÜ”s˜1˜a“y“>€Lô ØŒ{œ8 LÓ1´2°lÀMÓ3RÓSó€Fð €Mr4  c                 óÞ  — | j                   }|t        j                  t        j                  fv }|rHt	        j
                  | t        j                  «      } t	        j
                  |t        j                  «      }t        j                  | |«      }t        j                  |dk(  d|«      }t        j                  t	        j                  | |«      |z  «      }|s|S t	        j
                  ||«      S r  )r©  rÀ  Úint8Úint16rš  r�  Úint32r‡   r¯   r/   r€   )ru  r,  r©  Úpromote_to_intÚgÚress         r2  r�   r�   ç  s±   € ð �G‰G€Eð œuŸz™z¬5¯;©;Ð7Ð7€NÙÜ×&Ñ& q¬%¯+©+Ó6ˆÜ×&Ñ& q¬%¯+©+Ó6ˆä�	‰	�!�Q‹€Aä�‰�A˜‘F˜A˜qÓ!€AÜ
�)‰)”E—I‘I˜a “O aÑ'Ó
(€CÙ$ˆ3ÐP¬%×*DÑ*DÀSÈ%Ó*PÐPr4  c                 ó.   — t        j                  | |«      S rA  )rš  r‘   r+  s     r2  r‘   r‘   ü  rS  r4  c                 ó’  — t        j                  | «      t        j                  |«      k\  }t        j                  || |«      }t        j                  ||| «      }t        j                  t        j                  t        j
                  t        j                  | «      «      «      t        j                  | «      t        j                  |«      k(  «      }t        j                  | j                  «      st        j                  |j                  «      röt        j                  |«      dk  }t        j                  ||t        j                  t        j                  |«      t        j                  |«      z   «      «      }t        j                  |||t        j                  t        j                  ||z
  «      «      z   «      }t        j                  |«      }	t        j                  |	t        t        d«      t        d«      «      |«      S t        j                  || |t        j                  t        j                  ||z
  «      «      z   «      S )Nr   rî  )rÀ  r    r¯   r”   r•   rP   re  r¨  r©  rY   rA   rZ   rT   ÚcomplexrÎ  )
ru  r,  ri  Úmax_Úmin_Úinf_maskÚneg_min_maskÚinf_valsÚnon_nan_valsÚnan_masks
             r2  r’   r’     s†  € ô �:‰:�a‹=œEŸJ™J q›MÑ)€DÜ�;‰;�t˜Q Ó"€DÜ�;‰;�t˜Q Ó"€DÜ× Ñ Ü×Ñœ%Ÿ.™.¬¯©°A«Ó7Ó8¼%¿*¹*ÀQ»-Ì5Ï:É:ÐVWË=Ñ:Xó€Hô ×Ñ˜aŸg™gÔ&¬%×*@Ñ*@ÀÇÁÔ*Iä—z‘z $Ó'¨!Ñ+ˆÜ—;‘;Ø˜$¤§	¡	¬%¯)©)°D«/¼E¿I¹IÀd»OÑ*KÓ Ló
ˆô —{‘{Ø�h ¤u§{¡{´5·9±9¸TÀD¹[Ó3IÓ'JÑ Jó
ˆô —;‘;˜tÓ$ˆÜ�{‰{˜8¤W¬U°5«\¼5À»<Ó%HÈ,ÓWÐWä�{‰{˜8 Q¨¬u¯{©{¼5¿9¹9ÀTÈDÁ[Ó;QÓ/RÑ(RÓSÐSr4  c                 ó,  — t        j                  t        j                  | j                  «      xs t        j                  |j                  «       d„ «       | |k\  }t        j
                  || |«      }t        j
                  ||| «      }t        j                  t        j                  | «      | |k(  «      }dt        j                  d«      z  }|t        j                  t        j                  ||z
  «      «      |z  z   }t        j
                  || |«      S )Nc                   ó   — y)Nz)logaddexp2 doesn't support complex dtypesrH  rH  r4  r2  rJ  zlogaddexp2.<locals>.<lambda>)  rÆ  r4  rU  r  )rÀ  rÇ  re  r¨  r©  r¯   r”   rQ   r  rY   rZ   rD   )ru  r,  ri  rœ  r�  rž  Ú	inv_log_2rí  s           r2  r“   r“   !  sÓ   € ô 
‡L�LÜ×#Ñ# A§G¡GÓ,ÒO´×0FÑ0FÀqÇwÁwÓ0OÐPÙ;ôð
 �‰6€DÜ�;‰;�t˜Q Ó"€DÜ�;‰;�t˜Q Ó"€DÜ× Ñ ¤§¡¨Q£°°a±Ó8€HØ”d—h‘h˜q“kÑ!€IØ”E—K‘K¤§
¡
¨4°$©;Ó 7Ó8¸9ÑDÑD€FÜ�;‰;�x  FÓ+Ð+r4  c                 óœ   — t        j                  | j                  «      s| dk7  } t        j                  |j                  «      s|dk7  }| |z  S r  ©re  ró  r©  r+  s     r2  r”   r”   5  óC   € ô ×!Ñ! !§'¡'Ô*Ø�‰FˆÜ×!Ñ! !§'¡'Ô*Ø�‰FˆØˆq‰5€Lr4  c                 óP   — t        j                  | j                  «      s| dk(  S |  S r  r§  rt  s    r2  r•   r•   @  s$   € ä×!Ñ! !§'¡'Ô*Ø�A‰vˆØˆ2€Ir4  c                 óª   — t        j                  | j                  «      s| dk7  } t        j                  |j                  «      s|dk7  }t        | |«      S r  )re  ró  r©  rz   r+  s     r2  r–   r–   G  sG   € ô ×!Ñ! !§'¡'Ô*Ø�‰FˆÜ×!Ñ! !§'¡'Ô*Ø�‰FˆÜ�a˜ÓÐr4  c                 óœ   — t        j                  | j                  «      s| dk7  } t        j                  |j                  «      s|dk7  }| |z  S r  r§  r+  s     r2  r—   r—   S  r¨  r4  c                 ó.   — t        j                  | |«      S rA  )rš  r™   r+  s     r2  r™   r™   ^  rS  r4  c                 ó.   — t        j                  | |«      S rA  )rš  rš   r+  s     r2  rš   rš   f  ó   € ô �=‰=˜˜AÓÐr4  c                 ó.   — t        j                  | |«      S rA  )rš  r›   r+  s     r2  r›   r›   m  r®  r4  )rx  r6  c                 ó.   — t        j                  | |«      S rA  )rš  rœ   r+  s     r2  rœ   rœ   t  s   € ô
 �9‰9�Q˜‹?Ðr4  c                 ó.   — t        j                  | |«      S rA  rÖ  r+  s     r2  r�   r�   |  rS  r4  c                 ó.   — t        j                  | |«      S rA  )rš  rž   r+  s     r2  rž   rž   „  s   € ô �?‰?˜1˜aÓ Ð r4  c                 ó.   — t        j                  | |«      S rA  )rš  r¢   r+  s     r2  r¢   r¢   �  s   € ô �?‰?˜1˜aÓ Ð r4  rK  c                 ól   — t        | t        «      rd}t        |«      ‚t        j                  || |¬«      S )Nz?Received a Number for the first argument, but expected a Tensorr;  )r8  r   rW  rÀ  r¦   )ru  r,  r<  r¼  s       r2  r£   r£   •  s0   € ô �!”VÔØOˆÜ˜‹oÐä�9‰9�Q˜ Ô'Ð'r4  c                ó¾  — t        | |«      \  } }t        | t        «      rgt        |t        «      rWt        j                  t        j                  | j                  «       xr  t        j                  |j                  «       d„ «       |dk7  r¯t        | t        «      r| j                  n|j                  }t        j                  |«      }t        j                  t        |«      |«      sdt        |«      › d|› d�}t        |«      ‚t        |t        j                  «      rt        j                  ||«      }n||z  }t        j                  | |«      }t!        | |g|«      S )z/
    Reference implementation of torch.sub
    c                   ó   — 	 y)NzwSubtraction, the `-` operator, with two bool tensors is not supported. Use the `^` or `logical_xor()` operator instead.rH  rH  r4  r2  rJ  zsub.<locals>.<lambda>º  s   € ðCð r4  rK  r>  rº  rd  )rl  r8  r%   rÀ  rÇ  re  ró  r©  r   r   r/  rW  r7  rš  rœ   r¦   r<  r?  s          r2  r¦   r¦   ¥  s  € ô  ˜A˜qÓ!�D€A€qä�!”ZÔ ¤Z°´:Ô%>Ü�‰Ü×&Ñ& q§w¡wÓ/Ð/ÒW¼×8NÑ8NÈqÏwÉwÓ8WÐ4Wñô	
ð �‚zÜ% a¬Ô4�—’¸!¿'¹'ˆÜ×)Ñ)¨%Ó0ˆÜ×*Ñ*¬4°«;¸ÔDØ+¬D°«K¨=Ð8WÐXcÐWdÐdeÐfˆCÜ˜S“/Ð!Ü�aœŸ™Ô&Ü—	‘	˜!˜UÓ#‰Að
 �E‘	ˆAä�Y‰Y�q˜!‹_€FÜ'¨¨A¨°Ó7Ð7r4  r§   )rx  r‹  rn  r6  c                 ó.   — t        j                  | |«      S rA  )rš  r€   r+  s     r2  r§   r§   Ò  s   € ô �9‰9�Q˜‹?Ðr4  c           
      óÌ  — t        j                  t        | t        «      xs t        |t        «      d„ «       t        |t        «      r3t        | t        «      r#t        | |j                  |j                  ¬«      } nBt        | t        «      r2t        |t        «      r"t        || j                  | j                  ¬«      }t        | t        «      sJ ‚t        |t        «      sJ ‚t        j                  t        j                  | d«      dt        j                  | t        j                  |«      «      «      }t        j                  t        j                  |«      t        d«      |«      S )Nc                   ó   — y)Nz/Expected either argument a or b to be a Tensor"rH  rH  r4  r2  rJ  zxlogy.<locals>.<lambda>å  rÆ  r4  rL  r   rî  )rÀ  rÇ  r8  r%   r   r!  r©  r1  r¯   r�   rœ   rY   rT   rÎ  )ru  r,  Úrhss      r2  r©   r©   Ü  sí   € ô 
‡L�LÜ�1”jÓ!Ò>¤Z°´:Ó%>ÙAôô �!”ZÔ ¤Z°´6Ô%:Ü˜! 1§7¡7°1·8±8Ô<‰Ü	�A”zÔ	"¤z°!´VÔ'<Ü˜! 1§7¡7°1·8±8Ô<ˆô �aœÔ$Ð$Ð$Ü�aœÔ$Ð$Ð$Ü
�+‰+”e—h‘h˜q !“n a¬¯©°1´e·i±iÀ³lÓ)CÓ
D€CÜ�;‰;”u—{‘{ 1“~¤u¨U£|°SÓ9Ð9r4  )rx  rn  r6  c                 óÀ   — t        j                  | «      }t        j                  |«      rt        j                  | |«      S t        t        j                  | |«      «      S rA  )re  Ú	get_dtyperô  rš  r€   ru   r[  s      r2  r¨   r¨   õ  sE   € ô �O‰O˜AÓ€EÜ×Ñ˜eÔ$Ü�y‰y˜˜A‹Ðä”—‘˜1˜a“Ó!Ð!r4  )rè  Útensor1Útensor2©r·  r½  r¾  c                óÐ   ‡‡— ‰�X| j                   }t        j                  |«      Št        j                  t        j
                  t        ‰«      ‰«      ˆˆfd„«       | ‰|z  |z  z   S )z3
    Reference implementation of torch.addcdiv
    c                  ó(   •— dt        ‰«      › d‰ › d�S r¹  r.  ©r»  r·  s   €€r2  rJ  zaddcdiv.<locals>.<lambda>  ó   ø€ Ð-¬d°5«k¨]Ð:YÐZeÐYfÐfgÐh€ r4  ©r©  re  r   rÀ  r3  r   r/  ©rè  r½  r¾  r·  r©  r»  s      ` @r2  rª   rª   	  ó_   ù€ ð  ÐØ—
‘
ˆÜ×)Ñ)¨%Ó0ˆÜ×ÑÜ×'Ñ'¬¨U«°[ÓAÜhô	
ð
 �%˜'‘/ GÑ+Ñ+Ð+r4  c                óÐ   ‡‡— ‰�X| j                   }t        j                  |«      Št        j                  t        j
                  t        ‰«      ‰«      ˆˆfd„«       | ‰|z  |z  z   S )z3
    Reference implementation of torch.addcmul
    c                  ó(   •— dt        ‰«      › d‰ › d�S r¹  r.  rÂ  s   €€r2  rJ  zaddcmul.<locals>.<lambda>9  rÃ  r4  rÄ  rÅ  s      ` @r2  r«   r«   $  rÆ  r4  )ru  rö  rT  rö  rT  c                 óˆ  — |€|€d}t        |«      ‚|�Vt        j                  | «      }t        j                  t        j                  | |«      |«      }t        j
                  || |«      } |�Vt        j                  | «      }t        j                  t        j                  | |«      |«      }t        j
                  || |«      } | S )Nz+clamp called but both min and max are none!)rW  rÀ  rT   rz   rˆ   r¯   r‘   )ru  rö  rT  r¼  Úa_isnanÚ	conditions         r2  r¬   r¬   ?  s¥   € ð €{�s�{Ø;ˆÜ˜‹oÐØ
€Ü—+‘+˜a“.ˆÜ×$Ñ$¤U§X¡X¨a°Ó%5°wÓ?ˆ	ô
 �K‰K˜	 1 cÓ*ˆØ
€Ü—+‘+˜a“.ˆä×$Ñ$¤U§X¡X¨a°Ó%5°wÓ?ˆ	Ü�K‰K˜	 1 cÓ*ˆà€Hr4  c                 ó0   — t        j                  | |¬«      S )N)rö  ©rÀ  r¬   )rè  rö  s     r2  r}   r}   _  ó   € ô �;‰;�t Ô%Ð%r4  c                 ó0   — t        j                  | |¬«      S )N)rT  rÍ  )rè  rT  s     r2  r~   r~   h  rÎ  r4  Úpredc                 ó   ‡ — |�|€t         ‚t        j                  ‰ ||d¬«       t        j                  ‰ j
                  t        j                  u ˆ fd„«       t        ‰ ||«      \  Š }}t        j                  ‰ ||«      S )ú T©Úallow_cpu_scalar_tensorsc                  ó"   •— d‰ j                   › �S )Nz#expected predicate to be bool, got rÉ  )rÐ  s   €r2  rJ  zwhere.<locals>.<lambda>‹  s   ø€ Ð5°d·j±j°\ÐB€ r4  )
ÚNotImplementedErrorre  Úcheck_same_devicerÀ  rÇ  r©  rË  rl  rš  r¯   )rÐ  ru  r,  s   `  r2  r¯   r¯   x  sp   ø€ ð 	€y�A�IÜ!Ð!ä	×Ñ˜D ! QÀÕFÜ	‡L�LØ�
‰
”e—j‘jÐ ÛBôô
 " $¨¨1Ó-�J€Dˆ!ˆQÜ�;‰;�t˜Q Ó"Ð"r4  ©Úmemory_formatrÙ  c                ó4   — t        j                  | |¬«      }|S ©NrØ  )rš  r°   )ru  rÙ  rí  s      r2  r°   r°   •  s   € ô
 �[‰[˜¨-Ô8€FØ€Mr4  )Úallow_cross_devicec                ó´   — |sA| j                   |j                   k7  r(d|j                   › d| j                   › d�}t        |«      ‚t        j                  | |«      S )NzAttempting to copy from device z to device z*, but cross-device copies are not allowed!)r1  rX  rš  r±   )ru  r,  rÜ  r¼  s       r2  r±   r±   ž  sM   € Ù !§(¡(¨a¯h©hÒ"6Ø/°·±¨z¸ÀQÇXÁXÀJÐNxÐyˆÜ˜3ÓÐä�=‰=˜˜AÓÐr4  c                 óÚ   — | j                  «       dk7  rd| j                  «       › d�}t        |«      ‚t        j                  | j                  «      } |t        j                  | «      «      S )NrK  zCan't convert a tensor with z elements to a number!)rê  rW  re  r   r©  rš  r²   )ru  r¼  Únumber_types      r2  r²   r²   ¦  sW   € à‡w�wƒy�A‚~Ø,¨Q¯W©W«Y¨KÐ7MÐNˆÜ˜‹oÐô ×%Ñ% a§g¡gÓ.€KÙ”u—z‘z !“}Ó%Ð%r4  r1  ÚcopyÚlayoutÚ
pin_memoryÚnon_blockingc                 óú   — | xrw |d u xs | j                   |k(  xr` |d u xs | j                  |k(  xrI |d u xs | j                  |k(  xr2 |d u xs, |t        j                  k(  xs t        j                  | |¬«      S rÛ  )r1  r©  rá  rÀ  Úpreserve_formatre  Úis_contiguous_for_memory_format)ru  r1  r©  rà  rá  rÙ  râ  rã  s           r2  Ú_to_will_aliasrç  ³  s—   € ð ˆò 
	
Ø�tˆ^Ò1˜qŸx™x¨6Ñ1ò
	
à�dˆ]Ò.˜aŸg™g¨Ñ.ò
	
ð �tˆ^Ò1˜qŸx™x¨6Ñ1ò
	
ð ˜TÐ!ò UØ¤× 5Ñ 5Ñ5òUä×4Ñ4°QÀmÔTðr4  c                  ó   — t         ‚rA  )rÖ  )rk  rƒ  s     r2  Ú_to_dispatchré  Ì  s   € ä
Ðr4  c                 ó   — | ||||dœ}|S ©N)r1  r©  rã  rà  rÙ  rH  ©r1  r©  rã  rà  rÙ  rƒ  s         r2  Ú
_to_devicerí  Ñ  s!   € ð ØØ$ØØ&ñ€Fð €Mr4  c                 ó<   — t        j                  | «      ||||dœ}|S rë  )rÀ  r1  rì  s         r2  Ú_to_device_strrï  ã  s*   € ô —,‘,˜vÓ&ØØ$ØØ&ñ€Fð €Mr4  c                 ó   — | |||dœ}|S )N)r©  rã  rà  rÙ  rH  )r©  rã  rà  rÙ  rƒ  s        r2  Ú	_to_dtyperñ  õ  s   € ð Ø$ØØ&ñ	€Fð €Mr4  Úotherc                 ó`   — | j                   }| j                  }| j                  }||||||dœ}|S )N)r1  r©  rá  rã  rà  rÙ  )r1  r©  rá  )rò  rã  rà  rÙ  r1  r©  rá  rƒ  s           r2  Ú	_to_otherrô    sA   € ð �\‰\€FØ�K‰K€EØ�\‰\€Fð ØØØ$ØØ&ñ€Fð €Mr4  Ú	to_kwargsc                 óÆ  — g d¢}d|v r.t        |d   t        «      rt        j                  |d   «      |d<   |D ]¦  }||v sŒ|dk(  r||   t        j                  u st|dk(  r[||   j
                  | j                  j
                  k(  r5||   j                  r:||   j                  | j                  j                  k(  st        | |d «      ||   k(  sŒ–|j                  |«       Œ¨ y )N)r©  r1  rá  rÙ  r1  rÙ  )	r8  rh  rÀ  r1  rå  r/  Úindexr’  Úpop)ru  rõ  Úoptions_to_checkÚkws       r2  Ú_canonicalize_to_argumentsrû    sÑ   € ÚEÐà�9Ñ¤¨I°hÑ,?ÄÔ!EÜ#Ÿl™l¨9°XÑ+>Ó?ˆ	�(Ñàò "ˆØ�Š?à�Ò&¨9°R©=¼E×<QÑ<QÑ+Qà˜(’NØ! "™×*Ñ*¨a¯h©h¯m©mÒ;à% b™M×/Ò/°9¸R±=×3FÑ3FÈ!Ï(É(Ï.É.Ò3Xô ˜A˜r 4Ó(¨I°b©MÓ9ð —‘˜bÕ!ñ"r4  c                 óê  — t        |«      dk7  rt        |i |¤Ž}d|vsJ ‚t        | |«       t        | fi |¤Žr| S d|v r|j	                  d«      nd}d|v r|j	                  d«      nd}|s)|j                  d| j                  «      | j                  k7  r>|s<d|vr8d|vr4d	|vr0t        j                  | |j                  d| j                  «      «      S t        j                  | fi |¤Ž}t        || «       |S )
Nr   râ  rà  Frã  r©  rÙ  r1  rá  )rN  ré  rû  rç  rø  Úgetr©  rš  r�  rÀ  r  r±   )ru  rk  rƒ  rà  rã  rí  s         r2  r³   r³   5  sø   € ä
ˆ4ƒy�A‚~Ü˜tÐ. vÑ.ˆð ˜vÑ%Ð%Ð%Ü˜q &Ô)ä�aÑ"˜6Ò"Øˆà!'¨6Ñ!1ˆ6�:‰:�fÔ°u€DØ1?À6Ñ1I�6—:‘:˜nÔ-Èu€Lñ 
�&—*‘*˜W a§g¡gÓ.°!·'±'Ò9ÙØ FÑ*Ø˜VÑ#Ø˜VÑ#ô ×)Ñ)¨!¨V¯Z©Z¸ÀÇÁÓ-IÓJÐJä×Ñ˜aÑ* 6Ñ*€FäˆF�AÔØ€Mr4  )Úhas_identityÚaccepts_dim_tupler(  Úkeepdimsr©  r�  rr  rþ  rÿ  r(  r   r�  Úoutput_dtype_kindc                ó  ‡ — t        ‰ t        «      sJ ‚‰ j                  dkD  rt        d‰ j                  › d�«      ‚|�.t        |t        «      sJ ‚|�||j                  k7  rt        d«      ‚|s|�t        |t
        «      sJ ‚t        |t
        «      r|f}t        j                  ‰ j                  |«      }|s<‰ j                  dk(  xs t        j                  ˆ fd„|D «       «      }	|	st        d«      ‚t        j                  ‰ ||«      \  }
}t        ‰ |
«      Š  |‰ |«      }|rst        ‰ j                  «      D �cg c]  }||vr‰ j                  |   nd‘Œ }}t        ‰ j                  «      D �cg c]	  }||vsŒ|‘Œ }}t        j                  |||«      }|�C|€J ‚|�||j                  k7  rt        d	«      ‚t!        ||j                  «      }t#        ||¬
«      S |j                  |k7  r|�t        j$                  ||«      }|S c c}w c c}w )Né@   zReceived a tensor with z? dimensions, but only tensors with up to 64 dims are supported!z4dtype argument and out dtype must match in reductionr   c              3   ó<   •K  — | ]  }‰j                   |   –— Œ y ­wrA  ©rO  ©rD  Úiru  s     €r2  rF  z_reduction.<locals>.<genexpr>}  s   øè ø€ Ò1KÀ°!·'±'¸!µ*Ñ1Kùó   ƒzJreducing over zero-size dimension for reduction operation without identityrK  z7Expected the dtype of reduction result and out to match©Ú	copy_fromr±   )r8  r%   ÚndimrX  r©  r   re  Úreduction_dimsrO  r"  r´   Úreduction_dtypesr)   rV  rš  Úbroadcast_in_dimr*   r+   r�  )ru  rr  rþ  rÿ  r(  r   r©  r�  r  Úvalid_shaperå  rä  rí  r  Úoutput_shapeÚbroadcast_dimss   `               r2  Ú
_reductionr  \  s  ø€ ô �aœÔ$Ð$Ð$Ø‡v�v�‚{ÜØ% a§f¡f XÐ-lÐmó
ð 	
ð €Ü˜#œzÔ*Ð*Ð*ØÐà˜Ÿ	™	Ò!Ü"ØJóð ñ Øˆ|œz¨$´Ô4Ð4Ð4Ü�$œÔØˆwˆÜ×Ñ §¡¨Ó.€DÙØ—f‘f ‘kÒK¤X§\¡\Ó1KÀdÔ1KÓ%KˆÙÜØ\óð ô ',×&<Ñ&<Ø	Ð˜eó'Ñ#Ð�|ô 	  Ð#4Ó5€AÙ�!�T‹]€FÙÜDIÈ!Ï&É&ÃMÖR¸q a¨t¡m˜Ÿ™ š
¸Ñ:ÐRˆÐRÜ%*¨1¯6©6£]ÖD °a¸t²mš!ÐDˆÐDÜ×'Ñ'¨°¸nÓMˆà
€ØÐ'Ð'Ð'ØÐ °·±Ò!:ÜØIóð ô    V§\¡\Ó2ˆÜ¨¸Ô<Ð<à‡|�|�|Ò#¨Ð(@Ü×+Ñ+¨F°LÓAˆà€Mùò! SùÚDs   Ä;HÅ0	H
Å:H
c                 óB  ‡ — t        t        ‰ j                  «      }t        ‰ di «      } t        «       |«      Š t	        ‰ «      ddœˆ fd„
«       }‰ j                  › d�}||_        |j
                  j                  |«        t        t        t        |«      «      |«       |S )zk
    Given a view function (e.g. torch.diagonal) generates its copy variant (e.g. torch.diagonal_copy)
    Ú__annotations__N©r�  c                 óN   •—  ‰|d| i|¤Ž}| �|S t        j                  d„ |«      S )Nr�  c                 óB   — | j                  t        j                  ¬«      S rÛ  )r°   rÀ  Úcontiguous_formatrI  s    r2  rJ  z3_make_copy_from_view.<locals>._fn.<locals>.<lambda>ª  s   € �a—g‘g¬E×,CÑ,C�gÓD€ r4  )ÚpytreeÚtree_map)r�  rk  rƒ  rí  r„  s       €r2  r…  z!_make_copy_from_view.<locals>._fn£  s8   ø€ á�TÐ-˜sÐ- fÑ-ˆØˆ?ØˆMä�‰ÙDØó
ð 	
r4  Ú_copy)r’  r“  r}  r.   r   r  Úupdaterm  )r„  Úaten_fnÚannotationsr…  Ú	copy_names   `    r2  Ú_make_copy_from_viewr   ›  s”   ø€ ô ”d˜BŸK™KÓ(€GÜ˜"Ð/°Ó4€KØ	Œ‹�wÓ	€Bä
ˆ2ƒYØõ 
ó ð
ð —;‘;�-˜uÐ%€IØ€C„LØ×Ñ×Ñ˜{Ô+Ø4Ôœ7¤4¨Ó3Ó4°SÔ9Ø€Jr4  c                 óü   — t        j                  t        j                  t        j                  | «      ||¬«      «      }| j                  t         j                  k(  r |j                  t         j                  ¬«      }|S )Nrá  rÉ  )rÀ  r•   r·   r©  Úuint8r³   )ru  rß  râ  rí  s       r2  r´   r´   µ  sU   € ô ×ÑœuŸy™y¬×):Ñ):¸1Ó)=¸sÈGÔTÓU€Fà‡w�w”%—+‘+ÒØ—‘¤§¡�Ó-ˆà€Mr4  c                 óh  — t        | t        j                  «      }t        |t        t
        f«      rt        |«      dk(  r|j                  «       }n"|j                  ||¬«      j                  d«      }| j                  t        j                  u r$t        j                  |t        j                  «      S |S )Nr   )rß  râ  F)r)   rÀ  rË  r8  ÚlistrR  rN  r°   r¿   r�   r©  r"  rš  r�  )ru  rß  râ  ræ  rí  s        r2  r·   r·   Ä  s‚   € ô 
! ¤E§J¡JÓ	/€BÜ�#œœe�}Ô%¬#¨c«(°aª-Ø—‘“‰à—‘˜C¨�Ó1×4Ñ4°UÓ;ˆð 	‡w�w”%—+‘+ÑÜ×)Ñ)¨&´%·+±+Ó>Ð>à€Mr4  ©r©  r�  c          	      óN  — |€j|�|j                   }n[t        j                  | j                   «      st        j                  | j                   «      rt        j
                  }n| j                   }|dk(  s|g k(  rd }t        | t        j                  ||||t        j                  ¬«      S ©NrH  ©r(  r   r©  r�  r  )r©  re  ró  rô  rÀ  Úint64r  rš  r¿   r"   ÚSAME©ru  rß  râ  r©  r�  s        r2  r¿   r¿   Ø  sŠ   € ð €}Øˆ?Ø—I‘I‰EÜ×#Ñ# A§G¡GÔ,´×0FÑ0FÀqÇwÁwÔ0OÜ—K‘K‰Eà—G‘GˆEà
ˆb‚y�C˜2’IØˆÜØ	Ü�	‰	ØØØØÜ4×9Ñ9ôð r4  c           
      ó
  ‡ ‡‡— t        j                  ‰d¬«      Št        j                  t        j                  ‰‰ j
                  «      ˆ ˆfd„«       t        j                  ‰‰ j
                  «      r#t        ‰«      dkD  rt        j                  ‰ «      S ‰ j                  t        ‰«      z
  Št        t        ‰«      «      t        ˆ ˆˆfd„t        ‰t        ‰«      «      D «       «      z   }t        j                  ‰ |dd ¬«      S )NF©Úvalidatec                  ó*   •— d‰› d‰ j                   › d�S )Nzsum_to_size: size "z" is not expandable to size "ú"r  ©ru  rO  s   €€r2  rJ  zsum_to_size.<locals>.<lambda>ý  s   ø€ Ð% e WÐ,IÈ!Ï'É'ÈÐRSÐT€ r4  r   c              3   ó\   •K  — | ]#  }‰|‰z
     d k(  r‰j                   |   d k7  r|–— Œ% y­w©rK  Nr  )rD  r  ru  Úleading_dimsrO  s     €€€r2  rF  zsum_to_size.<locals>.<genexpr>	  s9   øè ø€ ò 5àØ��\Ñ!Ñ" aÒ'¨A¯G©G°A©J¸!ªOô 	
ñ5ùs   ƒ),T)rß  râ  r©  )re  Úextract_shape_from_varargsrÀ  rÇ  Úis_expandable_torO  Úis_same_shaperN  rš  Úview_ofr  rR  rV  r¿   )ru  rO  Úreduce_dimsr4  s   `` @r2  rÀ   rÀ   ö  sÅ   ú€ ô ×,Ñ,¨U¸UÔC€EÜ	‡L�LÜ×Ñ˜u a§g¡gÓ.ÜTôô ×Ñ˜5 !§'¡'Ô*¬s°5«z¸Aª~Ü�}‰}˜QÓÐØ—6‘6œC ›JÑ&€LÜœ˜lÓ+Ó,¬uõ 5ä�|¤S¨£ZÓ0ô5ó 0ñ €Kô
 �9‰9�Q˜K°¸TÔBÐBr4  c          	      óN  — |€j|�|j                   }n[t        j                  | j                   «      st        j                  | j                   «      rt        j
                  }n| j                   }|dk(  s|g k(  rd }t        | t        j                  ||||t        j                  ¬«      S r'  )r©  re  ró  rô  rÀ  r)  r  rš  rÁ   r"   r*  r+  s        r2  rÁ   rÁ   	  sŠ   € ð €}Øˆ?Ø—I‘I‰EÜ×#Ñ# A§G¡GÔ,´×0FÑ0FÀqÇwÁwÔ0OÜ—K‘K‰Eà—G‘GˆEà
ˆb‚y�C˜2’IØˆÜØ	Ü�
‰
ØØØØÜ4×9Ñ9ôð r4  r  c          
      óx   — |dk(  s|g k(  rd }t        | t        j                  ||d |dt        j                  ¬«      S ©NrH  F©r(  r   r©  r�  rþ  r  )r  rš  r¶   r"   r*  ©ru  rß  râ  r�  s       r2  r¶   r¶   *	  óE   € ð ˆb‚y�C˜2’IØˆäØ	Ü�
‰
ØØØØØÜ4×9Ñ9ô	ð 	r4  c          
      óx   — |dk(  s|g k(  rd }t        | t        j                  ||d |dt        j                  ¬«      S r<  )r  rš  rµ   r"   r*  r>  s       r2  rµ   rµ   B	  r?  r4  c                 ó6   — |€t        | t        «      r| }d } | |fS rA  )r8  rË  )rß  Úunbiaseds     r2  Ú_dim_var_dispatchrC  Z	  s'   € ð ÐœJ s¬DÔ1ØˆØˆØ�ˆ=Ðr4  ©Ú
correctionrB  rE  c          
      óÜ   — t        ||«      \  }}t        j                  ||«      }|dk(  s|g k(  rd }t        | t	        t
        j                  |¬«      ||d d dt        j                  ¬«      }|S )NrH  rD  Tr=  )	rC  re  Úset_correctionr  r   rš  rÂ   r"   ÚCOMPLEX_TO_FLOAT)ru  rß  rB  râ  rE  rí  s         r2  rÂ   rÂ   d	  sr   € ô & c¨8Ó4�M€CˆÜ×%Ñ% h°
Ó;€Jà
ˆb‚y�C˜2’IØˆäØ	Ü”—	‘	 jÔ1ØØØØØÜ4×EÑEô	€Fð €Mr4  c                ó.  — t        ||«      \  }}t        j                  ||«      }t        j                  | t        j
                  «      \  }}t        | |«      } t        j                  | |||¬«      }t        j                  |«      }|€J ‚t        ||«      S ©N)rE  râ  )
rC  re  rG  r  r"   rH  r)   rÀ  rÂ   rp   )	ru  rß  rB  râ  rE  Úopmath_dtyper©  Úa_varÚa_stds	            r2  r½   r½   �	  s�   € ô & c¨8Ó4�M€CˆÜ×%Ñ% h°
Ó;€Jä×0Ñ0Ø	Ô%×6Ñ6óÑ€L�%ô 	   <Ó0€AÜ�I‰I�a˜¨¸WÔE€EÜ�J‰J�uÓ€EØÐÐÐÜ" 5¨%Ó0Ð0r4  c          	      ó  ‡ ‡‡‡	— |dk(  s|g k(  rd }‰Š	‰€‰ j                   Št        j                  ‰d u xs ‰j                   ‰k(  ˆˆfd„«       t        ‰ t        j
                  ||‰d t        j                  ¬«      }t        j                  t        j                  ‰«      xs t        j                  ‰«      ˆˆ	fd„«       t        |t        «      r|f}t        j                  ‰ j                  |«      }‰ j                  dk(  rdn#t!        t"        j$                  ˆ fd„|D «       d«      }t'        ||«      }‰€‰ j                   n‰}t)        ||«      }‰�5t        ‰t*        «      sJ ‚t-        ‰|j                  «      Št/        |‰¬«      S |S )	NrH  c                  ó*   •— d‰ › d‰j                   › d�S )Nz"Expected out tensor to have dtype z
, but got ú insteadrÉ  r%  s   €€r2  rJ  zmean.<locals>.<lambda>ª	  s   ø€ Ð4°U°G¸:ÀcÇiÁiÀ[ÐPXÐY€ r4  r(  c                  ó   •— d‰€dnd› d‰ › �S )Nz&mean(): could not infer output dtype. ÚInputr   z> dtype must be either a floating point or complex dtype. Got: rH  )r©  Ú
orig_dtypes   €€r2  rJ  zmean.<locals>.<lambda>·	  s'   ø€ Ø4Ø$Ð,‰w°*Ð=ð >7Ø7<°gð?ð r4  r   rK  c              3   ó<   •K  — | ]  }‰j                   |   –— Œ y ­wrA  r  r  s     €r2  rF  zmean.<locals>.<genexpr>À	  s   øè ø€ Ò7QÀq¸¿¹À½
Ñ7Qùr  r	  )r©  rÀ  rÇ  r  rš  r¿   r"   ÚKEEP_PROMOTED_TYPEre  rÊ  r¨  r8  r   r  rO  r  r   Úoperatorrœ   r§   r)   r%   r*   r+   )
ru  rß  râ  r©  r�  rí  r(  Únelemrä  rS  s
   `  ``    @r2  rº   rº   ˜	  sV  û€ ð ˆb‚y�C˜2’IØˆØ€JØ€}Ø—‘ˆä	‡L�LØˆtˆÒ)�s—y‘y EÑ)ÜYôô Ø	Ü�	‰	ØØØØÜ4×GÑGô€Fô 
‡L�LÜ×Ñ˜UÓ#ÒD¤u×'=Ñ'=¸eÓ'Dô	
ôô �#”sÔØˆfˆÜ×Ñ §¡¨Ó-€DØ—‘˜1’‰A¤&¬¯©Ó7QÈDÔ7QÐSTÓ"U€EÜ˜ Ó'€FØ#˜m�1—7’7°€LÜ$ V¨\Ó:€FØ
€Ü˜#œzÔ*Ð*Ð*Ü  V§\¡\Ó2ˆÜ¨¸Ô<Ð<Ø€Mr4  Úout0Úout1)rB  râ  rE  c                ód  — t        ||«      \  }}t        j                  ||«      }t        j                  | t        j
                  «      \  }}| j                  }t        | |«      } t        j                  | |||¬«      \  }}	t        j                  |«      }
|€J ‚t        |
|«      t        |	|«      fS rJ  )rC  re  rG  r  r"   rH  r©  r)   rÀ  rÃ   rp   )ru  rß  rB  râ  rE  rK  r©  Úoriginal_dtyperL  Úa_meanrM  s              r2  r¾   r¾   Ë	  s®   € ô & c¨8Ó4�M€CˆÜ×%Ñ% h°
Ó;€JÜ×0Ñ0Ø	Ô%×6Ñ6óÑ€L�%ð —W‘W€NÜ  <Ó0€AÜ—N‘N 1 c°jÈ'ÔR�M€Eˆ6Ü�J‰J�uÓ€EØÐÐÐä  uÓ-Ü ¨Ó7ðð r4  c                ób   — t        ||«      \  }}t        | ||||¬«      }t        | ||«      }||fS )NrD  )rC  rÂ   rº   )ru  rß  rB  râ  rE  ÚvÚms          r2  rÃ   rÃ   å	  s=   € ô & c¨8Ó4�M€CˆÜˆAˆs�H˜g°*Ô=€AÜˆQ��WÓ€AØˆaˆ4€Kr4  )rè  Úvec1Úvec2)Úbetar<  r`  ra  rb  c                ó”  ‡ ‡‡‡‡‡— t        j                  ‰j                  dk(  ˆfd„«       t        j                  ‰j                  dk(  ˆfd„«       ‰df‰dffD ]Ž  \  }Št        |t        «      sŒt        j                  t        j                  ‰ j                  «      xr@ t        j                  ‰j                  «      xr t        j                  ‰j                  «      ˆfd„«       Œ� ‰ j                  ‰j                  d   ‰j                  d   «      Š t        j                  ‰ j                  «      rÖt        j                  t        t        ‰«      t        «      ˆfd„«       t        j                  t        t        ‰«      t        «      ˆfd	„«       ‰s.‰rt        j                  ‰‰«      S t        j                  ‰ d
«      S t        j                  ‰ ‰rt        j                  ‰‰«      «      S t        j                  ‰ d
«      «      S t        j                  t        t        ‰«      t!        ‰ j                  «      «      ˆˆ fd„«       t        j                  t        t        ‰«      t!        ‰ j                  «      «      ˆˆ fd„«       ‰dk(  r‰t        j                  ‰‰«      z  S ‰‰ z  ‰t        j                  ‰‰«      z  z   S )NrK  c                  ó$   •— d‰ j                   › d�S )Nz*addr: Expected 1-D argument vec1, but got ú-D©r  )r`  s   €r2  rJ  zaddr.<locals>.<lambda>
  ó   ø€ Ð<¸T¿Y¹Y¸KÀrÐJ€ r4  c                  ó$   •— d‰ j                   › d�S )Nz*addr: Expected 1-D argument vec2, but got re  rf  )ra  s   €r2  rJ  zaddr.<locals>.<lambda>	
  rg  r4  r<  rb  c                  ó   •— d‰ › d�S )NzBoolean z$ only supported for Boolean results.rH  )Úarg_names   €r2  rJ  zaddr.<locals>.<lambda>
  s   ø€ ˜( 8 *Ð,PÐQ€ r4  r   c                  ó    •— dt        ‰ «      › �S )Nzexpected bool/int beta but got r.  ©rb  s   €r2  rJ  zaddr.<locals>.<lambda>
  s   ø€ Ð5´d¸4³j°\ÐB€ r4  c                  ó    •— dt        ‰ «      › �S )Nz expected bool/int alpha but got r.  rl  s   €r2  rJ  zaddr.<locals>.<lambda>
  s   ø€ Ð6´t¸D³z°lÐC€ r4  Fc                  ó:   •— dt        ‰ «      › d‰j                  › �S ©Nzcannot safely convert z to ©r/  r©  )rb  rè  s   €€r2  rJ  zaddr.<locals>.<lambda>(
  s   ø€ Ð,¬T°$«Z¨L¸¸T¿Z¹Z¸LÐI€ r4  c                  ó:   •— dt        ‰ «      › d‰j                  › �S ro  rp  )r<  rè  s   €€r2  rJ  zaddr.<locals>.<lambda>,
  s   ø€ Ð,¬T°%«[¨M¸¸d¿j¹j¸\ÐJ€ r4  )rÀ  rÇ  r  r8  rË  re  ró  r©  rÞ   rO  r   r/  ÚintÚouterr  r–   r   )rè  r`  ra  rb  r<  Úargrj  s   ````` @r2  rÄ   rÄ   õ	  s  ý€ ô 
‡L�LØ�	‰	�Q‰ÛJôô 
‡L�LØ�	‰	�Q‰ÛJôð ! 'Ð*¨T°6¨NÐ;ò ‰ˆˆXÜ�cœ4Õ Ü�L‰LÜ×&Ñ& t§z¡zÓ2ò 7Ü×*Ñ*¨4¯:©:Ó6ò7ä×*Ñ*¨4¯:©:Ó6ÛQõ	ðð �;‰;�t—z‘z !‘} d§j¡j°¡mÓ4€DÜ×Ñ˜dŸj™jÔ)ä�‰Ü!¤$ t£*¬cÓ2ÛBô	
ô 	�‰Ü!¤$ u£+¬sÓ3ÛCô	
ñ Ù.3”5—;‘;˜t TÓ*ÐU¼¿¹ÈÈuÓ9UÐUä×#Ñ#ØÙ+0”—‘˜D $Ó'óð ä6;·o±oÀdÈEÓ6Róð ô
 	�‰Ü!¤$ t£*¬m¸D¿J¹JÓ.GÓHÜIô	
ô 	�‰Ü!¤$ u£+¬}¸T¿Z¹ZÓ/HÓIÜJô	
ð �1Š9àœ5Ÿ;™; t¨TÓ2Ñ2Ð2à˜$‘; ¬¯©°T¸4Ó)@Ñ!@Ñ@Ð@r4  rt  rk  .c                 óú   — |s't        | t        j                  j                  «      r| }n,t        | t        j                  j                  «      rJ ‚| f|z   }t	        d„ |D «       «      }t        |«      dkD  r|S |d   S )z5Reference implementation of :func:`torch.atleast_1d`.c              3   óV   K  — | ]!  }|j                   d k\  r|nt        |d«      –— Œ# y­w)rK  r   N)r  r   ©rD  ru  s     r2  rF  zatleast_1d.<locals>.<genexpr>?
  s%   è ø€ ÒE¸!�Q—V‘V˜q’[‘¤i°°1£oÓ5ÑEùs   ‚')rK  r   )r8  ÚcollectionsÚabcr   rR  rN  )rt  rk  Úargs_r˜  s       r2  rÇ   rÇ   6
  sm   € ñ ”J˜s¤K§O¡O×$<Ñ$<Ô=Ø‰ä˜c¤;§?¡?×#;Ñ#;Ô<Ð<Ð<Ø�˜‘ˆÜ
ÑE¸uÔEÓ
E€CÜ�c“(˜Q’,ˆ3Ð* C¨¡FÐ*r4  Úat_least_fnc                 óN   —  | |«      }t        |t        «      sJ ‚t        ||«      S rA  )r8  r%   r   )r{  rß  rt  Úarg_s       r2  Ú_unsqueeze_atleastr~  E
  s+   € ñ �sÓ€DÜ�dœJÔ'Ð'Ð'Ü�T˜3ÓÐr4  c                 ó*  ‡— |s't        | t        j                  j                  «      r| }n,t        | t        j                  j                  «      rJ ‚| f|z   }t	        t
        t        d«      Št        ˆfd„|D «       «      }t        |«      dkD  r|S |d   S )z5Reference implementation of :func:`torch.atleast_2d`.r   c              3   óP   •K  — | ]  }|j                   d k\  r|n ‰|«      –— Œ y­w)r  Nrf  )rD  ru  Úunsqueeze_atleast_1ds     €r2  rF  zatleast_2d.<locals>.<genexpr>X
  ó&   øè ø€ ÒMÀ!�Q—V‘V˜q’[‘Ñ&:¸1Ó&=Ó=ÑMùó   ƒ#&rK  )	r8  rx  ry  r   r   r~  rÇ   rR  rN  )rt  rk  rz  r˜  r�  s       @r2  rÈ   rÈ   N
  s~   ø€ ñ ”J˜s¤K§O¡O×$<Ñ$<Ô=Ø‰ä˜c¤;§?¡?×#;Ñ#;Ô<Ð<Ð<Ø�˜‘ˆÜ"Ô#5´zÀ1ÓEÐÜ
ÓMÀuÔMÓ
M€CÜ�c“(˜Q’,ˆ3Ð* C¨¡FÐ*r4  c                 ó*  ‡— |s't        | t        j                  j                  «      r| }n,t        | t        j                  j                  «      rJ ‚| f|z   }t	        t
        t        d«      Št        ˆfd„|D «       «      }t        |«      dkD  r|S |d   S )z5Reference implementation of :func:`torch.atleast_3d`.rP  c              3   óP   •K  — | ]  }|j                   d k\  r|n ‰|«      –— Œ y­w)é   Nrf  )rD  ru  Úunsqueeze_atleast_2ds     €r2  rF  zatleast_3d.<locals>.<genexpr>g
  r‚  rƒ  rK  r   )	r8  rx  ry  r   r   r~  rÈ   rR  rN  )rt  rk  rz  r˜  r‡  s       @r2  rÉ   rÉ   ]
  s~   ø€ ñ ”J˜s¤K§O¡O×$<Ñ$<Ô=Ø‰ä˜c¤;§?¡?×#;Ñ#;Ô<Ð<Ð<Ø�˜‘ˆÜ"Ô#5´zÀ2ÓFÐÜ
ÓMÀuÔMÓ
M€CÜ�c“(˜Q’,ˆ3Ð* C¨¡FÐ*r4  r!  r  r#  c                 óZ   — |�|n| j                  «       }t        j                  | |||«      S rA  )r#  rš  rÊ   )ru  r!  r  r#  Ústorage_offset_ints        r2  rÊ   rÊ   k
  s6   € ð )Ð4‰¸!×:JÑ:JÓ:Lð ô ×Ñ˜A˜t VÐ-?Ó@Ð@r4  Úsrcc                 ó@   — |€dn|}t        j                  | ||||«      S r  )rš  rÌ   )r¦  rŠ  r!  r  r#  r‰  s         r2  rÌ   rÌ   w
  s+   € ð -Ð4™¸.ÐÜ×#Ñ# E¨3°°fÐ>PÓQÐQr4  c                  ó8   — t        j                  t        | Ž «      S rA  )rÀ  ÚSizer^  )rZ  s    r2  rÎ   rÎ   „
  s   € Ü�:‰:Ô'¨Ð0Ó1Ð1r4  c                  óv   — t        | «      dk(  rt        | d   t        «      s| d   } t        t	        | ddiŽ«      S )NrK  r   r_  F)rN  r8  r7  r$  rl  ©Útensorss    r2  rÏ   rÏ   ˆ
  s<   € ô ˆ7ƒ|�qÒ¤¨G°A©J¼Ô!?Ø˜!‘*ˆÜÔ  'ÐMÀuÑMÓNÐNr4  c                 óÈ   — t        |«      t        | j                  «      z
  }t        t        |t        | j                  «      |z   «      «      }t	        j
                  | ||«      S rA  )rN  rO  rR  rV  rš  r  )ru  r!  Ústartr(  s       r2  rÐ   rÐ   ‘
  sK   € Ü�‹Iœ˜AŸG™G›Ñ$€EÜ”�uœc !§'¡'›l¨UÑ2Ó3Ó4€DÜ×!Ñ! ! T¨4Ó0Ð0r4  r�  r�  c                 ó¾  ‡
‡‡‡— d„ }t        | «      dk(  rd}t        |«      ‚| D ]  }t        |t        «      rŒJ ‚ t	        j
                  | ddiŽ ddlm} d Š
t        | «      D ]\  \  ŠŠ‰
€‰j                  dk7  sŒ‰Š
Œ‰j                  dk7  sŒ+t        j                  ‰j                  ‰
j                  k(  ˆ
ˆˆfd„«       Œ^ ‰
€| d   Š
‰
j                  }g }t        | «      D ]¡  \  Š}t        |«      t        |j                  «      k7  rB|j                  dk(  sJ ‚t        j                   ||j                  d   dk(  «      ˆ
ˆfd	„«       Œi|j                  dk(  r ||j                  d   dk(  «      rŒ‘|j                  |«       Œ£  || «      }t        |«      dk(  rE| d   Š	 t        t        d
„ | D «       «      «      }	t#        d‰j$                  ‰j&                  |	|¬«      S t	        j(                  |d   j                  |«      }t	        j*                  |d   j                  |«       t-        j.                  ||«      j1                  |¬«      S # t         $ r d}	Y Œ�w xY w)Nc                 ó®   — d }| D ]I  }t        j                  |«      }|t        j                  k(  r|c S |�||k7  rt        j                  c S |}ŒK |€J ‚|S rA  )re  Úsuggest_memory_formatrÀ  r  )ÚinputsÚformatrø   Úfs       r2  Ú cat_compute_output_memory_formatz-cat.<locals>.cat_compute_output_memory_formatž
  si   € ØˆØò 	ˆAÜ×+Ñ+¨AÓ.ˆAØ”E×+Ñ+Ò+Ø’ØÐ! f°¢kÜ×.Ñ.Ò.Ø‰Fð	ð Ð!Ð!Ð!Øˆr4  r   z3cat expects at least one tensor, but received zero!rÔ  Fr>  rK  c                  óD   •— d‰ j                   › d‰j                   › d‰› d�S )Nú6Number of dimensions of tensors must match.  Expected z-D tensors, but got z-D for tensor number ú in the listrf  )Úexampler  rø   s   €€€r2  rJ  zcat.<locals>.<lambda>Î
  s0   ø€ ð  Ø '§¡˜~Ð-AÀ!Ç&Á&Àð J%Ø%& C |ð5€ r4  c                  ó*   •— d‰ j                   › d‰› d�S )Nr›  z*-D tensors, but got 1-D for tensor number rœ  rf  )r�  Ú
tensor_idxs   €€r2  rJ  zcat.<locals>.<lambda>ê
  s$   ø€ ð Ø#ŸL™L˜>ð *!Ø!+ ¨Lð:€ r4  c              3   ó4   K  — | ]  }|j                   –— Œ y ­wrA  )Úrequires_gradrC  s     r2  rF  zcat.<locals>.<genexpr>  s   è ø€ Ò$F¸ Q§_¥_Ñ$Fùó   ‚©r   ©r©  r1  r¡  rÙ  rØ  )rN  rW  r8  r%   re  r×  rQ  r?  rU  r  rÀ  rÇ  rO  r•  rË  r·   Ú	Exceptionr  r©  r1  Úcanonicalize_dimÚvalidate_idxrš  rÑ   r°   )r�  rß  r™  r¼  Útensorr?  rO  ÚfilteredrÙ  r¡  r�  r  rø   rŸ  s             @@@@r2  rÑ   rÑ   —
  sF  û€ ò
ô ˆ7ƒ|�qÒØCˆÜ˜‹oÐàò .ˆÜ˜&¤*Õ-Ð-Ð-ð.ô 
×Ñ˜WÐE¸uÒEåJð$ €GÜ˜'Ó"ò ‰ˆˆ1Øˆ?Ø�v‰v˜‹{Ø‘à�v‰v˜‹{Ü—‘Ø—F‘F˜gŸl™lÑ*õ5õðð €ð ˜!‘*ˆà�M‰M€EØ€HÜ'¨Ó0ò $Ñˆ
�FÜˆu‹:œ˜VŸ\™\Ó*Ò*Ø—;‘; !Ò#Ð#Ð#ä�L‰Lñ % V§\¡\°!¡_¸Ñ%9Ó:ô:õð$ �{‰{˜aÒÑ$8¸¿¹Àa¹ÈAÑ9MÔ$NØà�O‰O˜FÕ#ð3$ñ6 5°WÓ=€Mä
ˆ8ƒ}˜ÒØ�A‰Jˆð	"ô !¤Ñ$F¸gÔ$FÓ!FÓGˆMô ØØ—'‘'Ø—8‘8Ø'Ø'ô
ð 	
ô ×
 Ñ
  ¨!¡×!1Ñ!1°3Ó
7€CÜ	×Ñ�x ‘{×'Ñ'¨Ô-ä�9‰9�X˜sÓ#×)Ñ)¸Ð)ÓFÐFøô ò 	"Ø!ŠMð	"ús   Æ#I ÉIÉIc                 ó>   — t        d„ | D «       «      }t        |d«      S )Nc              3   ó€   K  — | ]6  }|j                   d kD  r|n |j                  |j                  «       d f«      –— Œ8 y­wr3  )r  rð   rê  rC  s     r2  rF  zcolumn_stack.<locals>.<genexpr>  s7   è ø€ ò Ø;<ˆQ�V‰V�aŠZ‰˜QŸY™Y¨¯©«	°1 ~Ó6Ó6ñùs   ‚<>rK  )rR  rÑ   ©r�  Úaligned_tensorss     r2  rÓ   rÓ     s(   € äñ Ø@Gôó €Oô ˆ Ó"Ð"r4  c                 ó°   — t        j                  | j                  «      s| S | j                  rt	        j
                  | «      S t        j                  | «      S rA  )re  r¨  r©  Ú	is_sparserÀ  r8   rš  rÔ   rª  s    r2  rÔ   rÔ     s@   € Ü×!Ñ! %§+¡+Ô.ØˆØ‡‚Ü×"Ñ" 5Ó)Ð)Ü�:‰:�eÓÐr4  Úpadc           	      óˆ  ‡‡
‡‡‡‡— t        j                  t        ‰«      dz  dk(  ˆfd„«       | j                  Št        ‰«      Št        ‰«      dz  }‰|z
  Št        j                  ‰|k\  ˆˆfd„«       | }t	        ‰‰«      D ]t  Š
d‰‰
z
  dz
  z  Š‰‰   dk  r*|j                  ‰
‰‰    |j                  ‰
   ‰‰   z   «      }‰‰dz      dk  sŒL|j                  ‰
d|j                  ‰
   ‰‰dz      z   «      }Œv t        j                  d„ ‰D «       «      r|j                  «       S t        ‰d ‰ «      }t	        |«      D ]^  Š
t        ‰«      ‰
dz   dz  z
  Š‰‰‰
z      ‰‰   z   ‰‰dz      z   }t        j                  |dkD  ˆ
ˆˆˆˆfd„«       |j                  |«       Œ` t        j                  | «      }t        j                  || j                  | j                  | j                   |¬«      }|dk(  r| j                  t         j"                  k(  rd	}t        j$                  ||«      }|}	t	        ‰‰«      D ]s  Š
d‰‰
z
  dz
  z  Š‰‰   dk\  r)|	j                  ‰
‰‰   |	j                  ‰
   ‰‰   z
  «      }	‰‰dz      dk\  sŒK|	j                  ‰
d|	j                  ‰
   ‰‰dz      z
  «      }	Œu t'        j(                  |	|«       |S )
Nr  r   c                  ó    •— dt        ‰ «      › �S )Nz1Length of pad must be even but instead it equals rM  )r°  s   €r2  rJ  z!constant_pad_nd.<locals>.<lambda>,  s   ø€ ÐCÄCÈÃHÀ:ÐN€ r4  c                  ó(   •— dt        ‰«      › d‰ › d�S )Nz`Length of pad should be no more than twice the number of dimensions of the input. Pad length is z while the input has ú dimensions.rM  )Úl_inpr°  s   €€r2  rJ  z!constant_pad_nd.<locals>.<lambda>7  s"   ø€ ð 2Ü25°c³(°Ð;PØˆ'�ð€ r4  rK  c              3   ó&   K  — | ]	  }|d k  –— Œ y­w)r   NrH  )rD  Úps     r2  rF  z"constant_pad_nd.<locals>.<genexpr>N  s   è ø€ Ò'˜a�A˜•EÑ'ùs   ‚c            	      óF   •— d‰‰‰ z      › d‰‰   › d‰‰dz      › d‰‰ z   › d�	S )NzThe input size z, plus negative padding r…  rK  zG resulted in a negative output size, which is invalid. Check dimension z of your input.rH  )r  Úinput_sizesÚl_diffr°  Úpad_idxs   €€€€€r2  rJ  z!constant_pad_nd.<locals>.<lambda>X  sG   ø€ �o k°&¸1±*Ñ&=Ð%>Ð>VØ�7‰|ˆn˜E # g°¡kÑ"2Ð!3ð 41Ø17¸!±°¸OðM€ r4  r¤  F)rÀ  rÇ  rN  rO  rV  ré   r"  r´   r°   r$  r•  re  r•  r  r©  r1  r¡  rË  rE   rš  r±   )r¦  r°  r·  Úl_padÚc_inputÚ	new_shapeÚnew_dimrÙ  r;  Úc_outputr  r¹  rº  rµ  r»  s    `        @@@@@r2  rÕ   rÕ   %  sÑ  ý€ ô
 
‡L�LÜˆC‹�1‰˜ÑÛNôð
 —+‘+€KÜ�Ó€Eä�‹H˜‰M€EØ�U‰]€Fä	‡L�LØ�‰ô	ôð €GÜ�6˜5Ó!ò PˆØ�u˜q‘y 1‘}Ñ%ˆØˆw‰<˜!ÒØ—n‘n Q¨¨W©¨°w·}±}ÀQÑ7GÈ#ÈgÉ,Ñ7VÓWˆGàˆw˜‰{Ñ˜aÓØ—n‘n Q¨¨7¯=©=¸Ñ+;¸cÀ'ÈAÁ+Ñ>NÑ+NÓO‰GðPô" ‡|�|Ñ' 3Ô'Ô'Ø�}‰}‹Ðä�[  &Ð)Ó*€Iä�5‹\ò 	"ˆÜ�c“(˜q 1™u¨™kÑ*ˆØ˜f q™jÑ)¨C°©LÑ8¸3¸wÈ¹{Ñ;KÑKˆÜ�‰Ø�a‰K÷Mô	
ð 	×Ñ˜Õ!ð	"ô ×/Ñ/°Ó6€MÜ�[‰[ØØ�k‰kØ�|‰|Ø×)Ñ)Ø#ô€Fð �‚z�e—k‘k¤U§Z¡ZÒ/Øˆä�Z‰Z˜ Ó&€Fà€HÜ�6˜5Ó!ò SˆØ�u˜q‘y 1‘}Ñ%ˆØˆw‰<˜1ÒØ—‘Ø�3�w‘< §¡°Ñ!2°S¸±\Ñ!AóˆHð ˆw˜‰{Ñ˜qÓ Ø—‘ q¨!¨X¯^©^¸AÑ->ÀÀWÈqÁ[ÑAQÑ-QÓR‰HðSô 
‡M�M�(˜GÔ$Ø€Mr4  c                ó²   — t        j                  |t         j                  k7  d„ «       t        j                  | |¬«      r| S t        j
                  | |¬«      S )Nc                   ó   — y)Nz@preserve memory format is unsupported by the contiguous operatorrH  rH  r4  r2  rJ  zcontiguous.<locals>.<lambda>  rÆ  r4  rØ  )rÀ  rÇ  rå  re  ræ  r°   )ru  rÙ  s     r2  rÖ   rÖ   z  sI   € ô 
‡L�LØœ×.Ñ.Ñ.ÙRôô
 ×,Ñ,¨Q¸mÕLØˆä�;‰;�q¨Ô6Ð6r4  c                 óp   — t        j                  t        | «      dkD  d„ «       t        | Ž }t	        |d«      S )Nr   c                   ó   — y)Nz%dstack expects a non-empty TensorListrH  rH  r4  r2  rJ  zdstack.<locals>.<lambda>Š  rÆ  r4  r  )rÀ  rÇ  rN  rÉ   rÑ   r¬  s     r2  rÝ   rÝ   ˆ  ó1   € ä	‡L�L”�W“ Ñ!Ñ#RÔSÜ  'Ð*€OÜˆ Ó"Ð"r4  c                 ó®  ‡— ddl m} t        |«      dk(  r!t        |d   t        «      rt        |d   «      }t        j                  t        |«      t        | j                  «      k\  d„ «       t        |«      t        | j                  «      z
  }t        |«      }t        | j                  «      D ]Q  \  }Š||z   }||   }t        j                   ||‰k(  «      xs  |‰dk(  «      xs |dk(  ˆfd„«       |dk7  r|n‰||<   ŒS t        j                  |«       t        j                  | |t        t        |t        | j                  «      |z   «      «      «      S )Nr   r>  rK  c                   ó   — y)Nz3expand: the requested shape has too few dimensions!rH  rH  r4  r2  rJ  zexpand.<locals>.<lambda>›  rÆ  r4  rP  c                  ó   •— d‰ › d�S )Nz3expand: attempting to expand a dimension of length rd  rH  rI  s   €r2  rJ  zexpand.<locals>.<lambda>§  s   ø€ ÐIÈ!ÈÈAÐN€ r4  )rQ  r?  rN  r8  r   rR  rÀ  rÇ  rO  r$  rU  re  Úvalidate_shaperš  r  rV  )	ru  rO  r?  rd  Úshape_r]  Ú
offset_idxÚrequested_lengthrE  s	           @r2  rÞ   rÞ   �  s8  ø€ åJô
 ˆ5ƒz�Q‚œ: e¨A¡h´Ô9Ü�e˜A‘h“ˆä	‡L�LÜˆE‹
”c˜!Ÿ'™'“lÑ"ÙEôô
 �‹Zœ#˜aŸg™g›,Ñ&€FÜ�%‹[€FÜ˜AŸG™GÓ$ò 
O‰ˆˆQØ˜6‘\ˆ
Ø  Ñ,ÐÜ�‰Ù Ð!1°QÑ!6Ó7ò &Ù# A¨¡FÓ+ò&à 2Ñ%ÛNô		
ð 2BÀRÒ1GÑ-ÈQˆˆzÒð
Oô 
×Ñ˜Ô ä×!Ñ!Ø	ˆ6”5œ˜v¤s¨1¯7©7£|°fÑ'<Ó=Ó>óð r4  c                 ó8   — | j                  |j                  «      S rA  )rÞ   rO  r+  s     r2  rß   rß   µ  s   € Ø�8‰8�A—G‘GÓÐr4  Úchunksc           	      óº  — |dk  rd|› d�}t        |«      ‚t        j                  | j                  |«      }| j                  |   }t        j                  ||z  «      }t        j                  ||z  «      }||z  }g }t        |«      D ]"  }	|j                  t        | ||	|z  |«      «       Œ$ |dk7  r |j                  t        | |||z  |«      «       t        |«      S )Nr   z%Expected at least one chunk, but got rd  )rW  re  r¦  r  rO  r  r7   rG   rV  r•  ré   rR  )
ru  rÎ  rß  r¼  ÚlengthÚ
chunk_sizeÚfull_chunksÚtail_chunk_sizerí  r  s
             r2  rÒ   rÒ   ¹  sÙ   € Ø�‚{Ø5°f°X¸QÐ?ˆÜ˜‹oÐä
×
 Ñ
  §¡¨Ó
-€CØ�W‰W�S‰\€FÜ—‘˜6 F™?Ó+€JÜ—*‘*˜V jÑ0Ó1€KØ˜zÑ)€Oà€FÜ�;Óò BˆØ�‰”f˜Q  Q¨¡^°ZÓ@ÕAðBð ˜!ÒØ�‰”f˜Q  [°:Ñ%=¸ÓOÔPä�‹=Ðr4  Ú	start_dimÚend_dimc                 óB  — t        j                  | j                  |«      }t        j                  | j                  |«      }||k(  r| j                  dk7  r| S t        j                  | ||«      \  }}|�t        j
                  | ||«      S t        j                  | ||«      S r  )re  r¦  r  rš  Ú_collapse_view_helperÚcollapse_viewÚcollapse)ru  rÔ  rÕ  r¾  Únew_stridess        r2  rá   rá   Ñ  s’   € Ü×&Ñ& q§v¡v¨yÓ9€IÜ×$Ñ$ Q§V¡V¨WÓ5€Gð �GÒ §¡¨!¢Øˆô #×8Ñ8¸¸IÀwÓOÑ€Iˆ{ØÐÜ×"Ñ" 1 i°Ó9Ð9ô �>‰>˜!˜Y¨Ó0Ð0r4  c                 óî   — t        |t        «      st        |t        «      st        d«      ‚t	        j
                  | j                  |«      }t	        j                  |«       t        j                  | |«      S )Nz!dims has to be a sequence of ints)
r8  rR  r$  rW  re  Úcanonicalize_dimsr  Úvalidate_no_repeating_dimsrš  Úrev)ru  r(  s     r2  râ   râ   ã  sX   € ô �dœEÔ"¬:°d¼DÔ+AÜÐ<Ó=Ð=Ü×"Ñ" 1§6¡6¨4Ó0€DÜ	×$Ñ$ TÔ*Ü�9‰9�Q˜ÓÐr4  c                 óN   — | j                   dk  rt        d«      ‚t        | d«      S )Nr  zInput must be >= 2-d.©rK  ©r  rX  râ   rt  s    r2  rã   rã   î  ó%   € Ø‡v�v�‚zÜÐ2Ó3Ð3ä��4‹=Ðr4  c                 óN   — | j                   dk  rt        d«      ‚t        | d«      S )NrK  zInput must be >= 1-d.r£  rá  rt  s    r2  rä   rä   ö  râ  r4  r’  rÐ  c                 ó¢  ‡‡‡— t        ‰t        «      rYt        j                  ‰j	                  «       dk(  xr t        j                  ‰j                  «      d„ «       ‰j                  «       Št        j                  | j	                  «       dkD  d„ «       t        j                  ‰dk\  d„ «       t        j                  | j                  |«      }| j                  |«      Št        j                  t        ‰ ‰k  xr ‰‰k  ˆˆfd„«       ‰dk  r‰‰z   Št        j                  ‰‰‰z
  k  ˆˆˆfd„«       t        j                  | ‰‰‰z   |¬«      S )Nr   c                   ó   — y)Nz'start must be an 0-dim integral Tensor.rH  rH  r4  r2  rJ  znarrow.<locals>.<lambda>  rÆ  r4  c                   ó   — y)Nz-narrow() cannot be applied to a 0-dim tensor.rH  rH  r4  r2  rJ  znarrow.<locals>.<lambda>	  rÆ  r4  c                   ó   — y)Nz&narrow(): length must be non-negative.rH  rH  r4  r2  rJ  znarrow.<locals>.<lambda>
  rÆ  r4  c                  ó   •— d‰  › d‰ › d‰› d�S )Nz0start out of range (expected to be in range of [ú, z], but got ú)rH  )Ú
dim_lengthr’  s   €€r2  rJ  znarrow.<locals>.<lambda>  s%   ø€ ÐBÀJÀ;À-ÈrÐR\ÐQ]Ð]hÐinÐhoÐopÐq€ r4  c                  ó   •— d‰› d‰› d‰ › d�S )Nzstart (z) + length (z) exceeds dimension size (z).rH  )rë  rÐ  r’  s   €€€r2  rJ  znarrow.<locals>.<lambda>  s   ø€ �'˜%˜ ¨V¨HÐ4NÈzÈlÐZ\Ð]€ r4  ©Úaxis)r8  r%   rÀ  rÇ  rß  re  rô  r©  r²   r¦  r  r!  Ú_check_withÚ
IndexErrorrš  Úslice_in_dim)ru  rß  r’  rÐ  rë  s     ``@r2  ré   ré   þ  s  ú€ ô
 �%œÔ$Ü�‰Ø�I‰I‹K˜1ÑÒD¤×!7Ñ!7¸¿¹Ó!DÙ=ô	
ð —
‘
“ˆÜ	‡L�L�—‘“˜1‘ÑUÔVÜ	‡L�L�˜1‘ÑNÔOÜ
×
 Ñ
  §¡¨Ó
-€CØ—‘˜“€JÜ	×ÑÜØ	ˆ�uÑÒ4 ¨*Ñ!4Üqôð
 ˆq‚yØ˜
Ñ"ˆÜ	‡L�LØ�˜fÑ$Ñ$Ý]ôô ×Ñ˜a ¨°©¸SÔAÐAr4  Ú	norm_dimsÚepsc                 ó>  — t        j                  | j                  |«      }t        j                  | j                  «      }t        | |«      }t        |t        «      sJ ‚t        j                  ||dd¬«      \  }}t        j                  ||z   «      }| |z
  |z  }|||fS )a¼  Computes mean and 1/std of a tensor along norm_dims.

    Used as a helper function for normalization layers.

    Args:
        a (Tensor): input tensor
        norm_dims (DimsType): dimensions to normalize over
        eps (float): epsilon for numerical stability

    Returns:
        out (Tensor): normalized tensor.
        mean (Tensor): mean of the tensor along norm_dims.
        rstd (Tensor): 1/std of the tensor along norm_dims.
    FT)rß  rB  râ  )re  rÜ  r  rã  r©  r)   r8  r%   rÀ  rÃ   rô   )	ru  rò  ró  rå  Úa_accÚ
biased_varrº   Úrstdr�  s	            r2  Ú
_normalizerø    s—   € ô" ×'Ñ'¨¯©°	Ó:€IÜ×3Ñ3°A·G±GÓ<ÐÜ# AÐ'8Ó9€EÜ�eœZÔ(Ð(Ð(Ü—~‘~Ø�9 u°dôÑ€J�ô �;‰;�z CÑ'Ó(€DØˆt‰8�tÑ
€CØ��dˆ?Ðr4  Ú
dimensionsc                 óR   — t        |«      D ]  }t        j                  | |«      } Œ | S rA  )ÚsortedrÀ  r   )rE  rù  rß  s      r2  Ú_unsqueeze_multiplerü  9  s+   € Ü�jÓ!ò $ˆÜ�O‰O˜A˜sÓ#‰ð$à€Hr4  ÚweightÚbiasÚ
batch_sizeÚnum_channelsÚflattened_inner_sizeÚ
num_groupsc                 ó´  ‡ ‡— t        j                  ‰ j                  dk\  ˆ fd„«       t        j                  |‰z  dk(  ˆ ˆfd„«       ddg}t        j                  ‰ |‰|‰z  |g«      }	t	        |	||«      \  }
}}|
j                  ‰ j                  «      }
dgt        t        d‰ j                  «      «      z   }d }|�t        ||«      }d }|�t        ||«      }|�|
|z  }
|�|
|z   }
t        |
‰ j                  «      }
t        |‰ j                  «      }t        |‰ j                  «      }t        j                  ||«      }t        j                  ||«      }|
||fS )Nr  c                  ó"   •— d‰ j                   › �S )Nz=Expected at least 2 dimensions for input tensor but received rf  rª  s   €r2  rJ  z#native_group_norm.<locals>.<lambda>L  s   ø€ ÐOÐPU×PZÑPZÈ|Ð\€ r4  r   c                  ó.   •— dd‰ j                   › d‰› �z   S )NzDExpected number of channels in input to be divisible by num_groups, zbut got input of shape z and num_groups = r  )r¦  r  s   €€r2  rJ  z#native_group_norm.<locals>.<lambda>P  s#   ø€ ÐVØ# E§K¡K =Ð0BÀ:À,Ð
OñP€ r4  r†  )rÀ  rÇ  r  rð   rø  r  rO  r$  rV  rü  r)   r©  r÷   )r¦  rý  rþ  rÿ  r   r  r  ró  r  Úinput_reshapedr�  rº   r÷  r  Úunsqueeze_biasÚunsqueeze_weights   `     `         r2  rë   rë   ?  sb  ù€ ô 
‡L�LØ�
‰
�a‰Û\ôô 
‡L�LØ�zÑ! QÑ&ô	Pôð ˜�V€NÜ—]‘]ØØ	�Z °Ñ!;Ð=QÐRó€Nô ! °ÀÓE�O€CˆˆtØ
�(‰(�5—;‘;Ó
€Cà�Sœ4¤ a¨¯©Ó 4Ó5Ñ5€NØ€NØÐÜ,¨T°>ÓBˆØÐØÐÜ.¨v°~ÓFÐàÐ#ØÐ$Ñ$ˆØÐ!Ø�NÑ"ˆä
! # u§{¡{Ó
3€CÜ" 4¨¯©Ó5€DÜ" 4¨¯©Ó5€Dô �=‰=˜˜~Ó.€DÜ�=‰=˜˜~Ó.€DØ��tÐÐr4  Úout2Únormalized_shapec                 ó¸  ‡ ‡‡‡— t        ‰«      }t        j                  |dk\  ˆfd„«       t        j                  ‰d u xs ‰j                  t	        ‰«      k(  ˆˆfd„«       t        j                  ‰d u xs ‰j                  t	        ‰«      k(  ˆˆfd„«       t        j                  ‰ j
                  |k\  xr( ‰ j                  ‰ j
                  |z
  d  t	        ‰«      k(  ˆ ˆfd„«       ‰ j                  «       Š ‰�‰j                  «       Š‰�‰j                  «       Š‰ j
                  |z
  }t        t        |‰ j
                  «      «      }t        ‰ ||«      \  }}	}
‰€‰�|‰z   }n‰�‰€|‰z  }n‰�
‰�|‰z  ‰z   }t        |‰ j                  «      }‰ j                  j                  dk(  r,t        |	‰ j                  «      }	t        |
‰ j                  «      }
||	|
fS )NrK  c                  ó    •— dt        ‰ «      z   S )NzzExpected normalized_shape to be at least 1-dimensional, i.e., containing at least one element, but got normalized_shape = )rh  )r
  s   €r2  rJ  z#native_layer_norm.<locals>.<lambda>€  s   ø€ ð Iä
ÐÓ
ñ € r4  c                  óR   •— dt        ‰j                  «      z   dz   t        ‰ «      z   S )NzQExpected weight to be of same shape as normalized_shape, but got weight of shape ú and normalized_shape = ©rh  rO  )r
  rý  s   €€r2  rJ  z#native_layer_norm.<locals>.<lambda>‰  s5   ø€ ð ä
ˆf�l‰lÓ
ñð %ñ%ô ÐÓ
ñ	 € r4  c                  óR   •— dt        ‰ j                  «      z   dz   t        ‰«      z   S )NzMExpected bias to be of same shape as normalized_shape, but got bias of shape r  r  )rþ  r
  s   €€r2  rJ  z#native_layer_norm.<locals>.<lambda>‘  s4   ø€ ð ä
ˆd�j‰j‹/ñð %ñ%ô ÐÓ
ñ	 € r4  c                  óp   •— dt        ‰«      z   dz   t        ‰«      z   dz   t        ‰ j                  «      z   S )NzGiven normalized_shape=z, expected input with shape z, but got input of size r  )r¦  r
  s   €€r2  rJ  z#native_layer_norm.<locals>.<lambda>š  sK   ø€ Ð)Ü
ÐÓ
ñ à
(ñ)ô ÐÓ
ñ ð %ñ	%ô
 ˆe�k‰kÓ
ñ€ r4  r]  )rN  rÀ  rÇ  rO  rR  r  rÖ   r$  rV  rø  r)   r©  r1  r/  )r¦  r
  rý  rþ  ró  Únormalized_ndimrî  r  r�  rº   r÷  s   ````       r2  rì   rì   t  sÈ  û€ ô Ð*Ó+€OÜ	‡L�LØ˜1Ñó	 ôô 
‡L�LØ�$ˆÒA˜&Ÿ,™,¬%Ð0@Ó*AÑAô	 ôô 
‡L�LØ�ˆÒ=˜Ÿ
™
¤eÐ,<Ó&=Ñ=ô	 ôô 
‡L�LØ�
‰
�oÑ%ò 	UØ�K‰K˜Ÿ™ oÑ5Ð8Ð9¼UÐCSÓ=TÑTô	ô	ð ×ÑÓ€EØÐØ×"Ñ"Ó$ˆØÐØ�‰Ó ˆà�:‰:˜Ñ'€DÜœ%  e§j¡jÓ1Ó2€NÜ  ¨¸Ó<�O€Cˆˆtà€~˜$Ð*Ø�D‰j‰Ø	Ð	  Ø�F‰l‰Ø	Ð	 Ð 0Ø�F‰l˜TÑ!ˆä
! # u§{¡{Ó
3€CØ‡|�|×Ñ˜EÒ!Ü& t¨U¯[©[Ó9ˆÜ& t¨U¯[©[Ó9ˆØ��tÐÐr4  c                 ó”   — t        j                  | j                  t        j                  |«      «      }t	        j
                  | |«      S rA  )re  rÜ  r  Úextract_dims_from_varargsrš  rý   )ru  r(  Ú_permutations      r2  rí   rí   ¼  s9   € ä×*Ñ*Ø	�‰”×/Ñ/°Ó5ó€Lô �?‰?˜1˜lÓ+Ð+r4  r·  Úmaxnormc                 óh  ‡‡	— t        j                  t        |t        «       d„ «       t        j                  |dkD  d„ «       t        j                  t        ‰t        «       d„ «       t        j                  ‰dk\  ˆfd„«       | j                  Š	t        j                  ‰	dkD  ˆ	fd„«       t        j                  ‰	|«      }t        t        ‰	«      «      }||= t        j                  | j                  «      }|| j                  k7  r%t         j                  j                  | ||d|¬	«      }n#t         j                  j                  | ||d¬
«      }d}t        j                  |‰kD  ‰||z   z  d«      }|| j                  k7  r t        j                  || j                  «      }| |z  j!                  «       S )Nc                   ó   — y)Nzrenorm: p must be real-valuedrH  rH  r4  r2  rJ  zrenorm.<locals>.<lambda>É  rÆ  r4  r   c                   ó   — y)Nz'renorm: non-positive norm not supportedrH  rH  r4  r2  rJ  zrenorm.<locals>.<lambda>Ê  rÆ  r4  c                   ó   — y)Nz#renorm: maxnorm must be real-valuedrH  rH  r4  r2  rJ  zrenorm.<locals>.<lambda>Ì  rÆ  r4  c                  ó   •— d‰ › �S )Nz,renorm: expected maxnorm to be >= 0 but got rH  )r  s   €r2  rJ  zrenorm.<locals>.<lambda>Ï  s   ø€ Ð LÈWÈIÐV€ r4  rK  c                  ó   •— d‰ › d�S )Nz/renorm: input needs at least 2 dimensions, got ú dimensionsrH  rf  s   €r2  rJ  zrenorm.<locals>.<lambda>Ô  s   ø€ ÐAÀ$ÀÀ{ÐS€ r4  T)râ  r©  rá  gH¯¼šò×z>rU  )rÀ  rÇ  r8  r›  r  re  r¦  r$  rV  rã  r©  ÚlinalgÚvector_normr¯   rš  r�  rÖ   )
r¦  r·  rß  r  r9  Úacc_typer`   ró  Únorm_factorr  s
      `     @r2  r)  r)  Ä  so  ù€ ô
 
‡L�L”Z ¤7Ó+Ð+Ñ-TÔUÜ	‡L�L��Q‘ÑIÔJÜ	‡L�LÜ�w¤Ó(Ð(Ñ*Wôô 
‡L�LØ�1‰ÓVôð �:‰:€DÜ	‡L�LØˆq‰ÛSôô
 ×
 Ñ
   sÓ
+€CÜ”u˜T“{Ó#€KØ�CÐô ×*Ñ*¨5¯;©;Ó7€HØ�5—;‘;ÒÜ�|‰|×'Ñ'Ø�1�k¨4°xð (ó 
‰ô �|‰|×'Ñ'¨¨q°+ÀtÐ'ÓLˆà
€CÜ—+‘+˜d W™n¨g¸À¹Ñ.DÀcÓJ€KØ�5—;‘;ÒÜ×0Ñ0°¸e¿k¹kÓJˆØ�KÑ×+Ñ+Ó-Ð-r4  Ún_fftÚ
hop_lengthÚ
win_lengthÚwindowÚcenterÚpad_modeÚ
normalizedÚonesidedÚreturn_complexc
                 óˆ  ‡ ‡‡‡‡‡— t        j                  ‰d u xs ‰j                  ‰ j                  k(  ˆ ˆfd„«       |�|n‰dz  Š|�|n‰Š|	€N‰ j                  «       xs% ‰d uxr t	        j
                  ‰j                  «      }
t        j                  |
d«       n|	}
t        j                  t	        j                  ‰ j                  «      xs t	        j
                  ‰ j                  «      d„ «       t        j                  d‰ j                  cxk  xr dk  nc d„ «       ‰ j                  }|dk(  r‰ j                  d«      Š |r‚d	‰ j                  z
  }‰dz  }g t        j                  d|«      ¢‰ j                  ¢}t        j                  ‰ j                  |«      ||g|«      Š ‰ j                  ‰ j!                  «       |d  «      Š ‰ j!                  d«      }‰ j!                  d«      Št        j                  d‰cxk  xr ‰k  nc ˆˆfd
„«       t        j                  ‰dkD  ˆfd„«       t        j                  d‰cxk  xr ‰k  nc ˆfd„«       t        j                  ‰d u xs ‰j                  ‰fk(  ˆˆfd„«       ‰‰k  rT‰€,t        j"                  ‰‰ j                  ‰ j                  ¬«      Š‰‰z
  dz  }t        j%                  ‰|‰‰z
  |z
  g«      Š‰ j'                  d‰‰¬«      Š ‰�‰ ‰z  Š t	        j
                  ‰ j                  «      }|�|n| }|rdnd }|r;t        j                  | d„ «       t         j(                  j+                  ‰ d|¬«      }n"t         j(                  j)                  ‰ d|¬«      }|j-                  dd«       |dk(  r|j/                  d«      }|
r|S t        j0                  |«      S )Nc                  óB   •— d‰ j                   › �d‰j                   › �z   S )NzAstft input and window must be on the same device but got self on ú and window on r0  ©r¦  r%  s   €€r2  rJ  zstft.<locals>.<lambda>ü  s,   ø€ ØOÐPU×P\ÑP\È~Ð^Ø §¡˜Ð/ñ0ð r4  é   z“stft requires the return_complex parameter be given for real inputs, and will further require that return_complex=True in a future PyTorch release.c                   ó   — y)Nz:stft expected a tensor of floating point or complex valuesrH  rH  r4  r2  rJ  zstft.<locals>.<lambda>  rÆ  r4  rK  r  c                   ó   — y)Nzstft expected a 1D or 2D tensorrH  rH  r4  r2  rJ  zstft.<locals>.<lambda>  rÆ  r4  r   r†  c                  ó   •— d‰ › d‰› �S )Nzstft expected 0 < n_fft <= z, but got n_fft=rH  )rÐ  r"  s   €€r2  rJ  zstft.<locals>.<lambda>(  s   ø€ Ð-¨f¨XÐ5EÀeÀWÐM€ r4  c                  ó   •— d‰ › �S )Nz0stft expected hop_length > 0 but got hop_length=rH  )Úhop_length_s   €r2  rJ  zstft.<locals>.<lambda>,  s   ø€ ÐBÀ;À-ÐP€ r4  c                  ó   •— d‰ › �S )Nz9stft expected 0 < win_length <= n_fft but got win_length=rH  )Úwin_length_s   €r2  rJ  zstft.<locals>.<lambda>0  s   ø€ ÐKÈKÈ=ÐY€ r4  c                  ó0   •— d‰ › d�d‰j                   › �z   S )Nz8expected a 1D window tensor of size equal to win_length=ré  zbut got window with size r  )r6  r%  s   €€r2  rJ  zstft.<locals>.<lambda>4  s(   ø€ ØFÀ{ÀmÐSUÐVØ)¨&¯,©,¨Ð8ñ9ð r4  rL  rP  )Ú	dimensionr!  ÚstepÚorthoc                   ó   — y)Nz9Cannot have onesided output if window or input is complexrH  rH  r4  r2  rJ  zstft.<locals>.<lambda>J  rÆ  r4  ©rß  r`   )rÀ  rÇ  r1  r(  re  r¨  r©  rÊ  r  r   Ú	itertoolsrï   rO  r“  r°  r  r!  r  rÕ   rþ   ÚfftÚrfftÚ
transpose_Úsqueeze_Úview_as_real)r¦  r"  r#  r$  r%  r&  r'  r(  r)  r*  Úreturn_complex_Úoriginal_ndimÚ
extra_dimsÚ
pad_amountÚextended_shapeÚbatchÚleftÚcomplex_fftr`   r�  r4  rÐ  r6  s   ``  `               @@@r2  r*  r*  í  sK  ý€ ô 
‡L�LØ�$ˆÒ7˜&Ÿ-™-¨5¯<©<Ñ7ô	
ôð !+Ð 6‘*¸EÀQ¹J€KØ *Ð 6‘*¸E€KàÐØ×*Ñ*Ó,ò 
Ø˜$ÐÒG¤5×#9Ñ#9¸&¿,¹,Ó#Gð 	ô 	�‰Øðcõ	
ð )ˆä	‡L�LÜ×Ñ˜UŸ[™[Ó)ÒP¬U×-CÑ-CÀEÇKÁKÓ-PÙLôô 
‡L�L��e—j‘jÖ% AÔ%Ñ'PÔQà—J‘J€MØ˜ÒØ—‘ Ó"ˆáØ˜Ÿ™‘^ˆ
Ø˜a‘Zˆ
ØIœ9×+Ñ+¨A¨zÓ:ÐI¸U¿[¹[ÐIˆÜ—‘˜Ÿ™ NÓ3°jÀ*Ð5MÈxÓXˆØ—
‘
˜5Ÿ:™:›<¨
¨Ð4Ó5ˆà�J‰J�q‹M€EØ�Z‰Z˜‹]€FÜ	‡L�LØ	ˆEÖ�VÔÜMôô 
‡L�LØ�a‰ÛPôô 
‡L�LØ	ˆKÖ ˜5Ô ÛYôô 
‡L�LØ�$ˆÒ8˜&Ÿ,™,¨;¨.Ñ8ô	
ôð �UÒØˆ>Ü—Z‘Z °5·;±;ÀuÇ|Á|ÔTˆFØ˜Ñ#¨Ñ)ˆÜ×%Ñ% f¨t°U¸[Ñ5HÈ4Ñ5OÐ.PÓQˆà�L‰L 2¨E¸ˆLÓD€EØÐØ˜‘ˆä×(Ñ(¨¯©Ó5€KØ#Ð/‰x¸°_€HÙ ‰7 d€DÙÜ�‰ØˆOÙOô	
ô �i‰i�n‰n˜U¨°ˆnÓ6‰ä�i‰i�m‰m˜E r°ˆmÓ5ˆà‡N�N�1�aÔà˜ÒØ�l‰l˜1‹oˆá!ˆ3Ð>¤u×'9Ñ'9¸#Ó'>Ð>r4  c
                 óJ	  ‡ ‡— t        j                  ‰d u xs ‰j                  ‰ j                  k(  ˆ ˆfd„«       |�|n|dz  }
|�|n|}t        j                  t        j                  ‰ j
                  «      ˆ ˆfd„«       ‰ j                  d«      }‰ j                  d«      }||
|dz
  z  z   }t        j                  ‰ j                  «       dkD  d„ «       t        j                  d	‰ j                  cxk  xr d
k  nc ˆ fd„«       |�|n||k7  }|r!t        j                  |d	z  dz   |k(  d„ «       nt        j                  ||k(  d„ «       t        j                  d|
cxk  xr |k  nc d„ «       t        j                  d|cxk  xr |k  nc d„ «       t        j                  ‰d u xs ‰j                  |fk(  d„ «       ‰€Bt        j                  ‰ j
                  «      }t        j                  ||‰ j                  ¬«      }n‰}||k7  r'||z
  d	z  }t        j                  ||||z
  |z
  fd«      }‰ j                  }‰ j                  d	k(  r‰ j                  d«      Š ‰ j                  dd	«      Š |rdnd }|	r;t        j                  | d„ «       t         j                   j#                  ‰ d|¬«      Š nyt        j                  ‰d u xs  t        j                  ‰j
                  «       d„ «       |s‰ j%                  dd|d	z  dz   ¬«      Š t         j                   j'                  ‰ d|¬«      Š ‰ j                  d	«      |k(  sJ ‚‰ |j)                  dd|g«      z  }t        j+                  ||j                  d«      |fd||
¬«      }t        j+                  |j-                  d	«      j/                  d||f«      |j                  d«      |fd||
¬«      }||j                  d«      k(  sJ ‚||j                  d«      k(  sJ ‚|r|d	z  nd}|�||z   }n|r	||d	z  z
  }n|}t1        d||z
  «      }|j%                  d||¬«      }|j%                  d||¬«      }||z  }|d	k(  r|j3                  d«      }||kD  r1t5        j6                  d«       t        j                  |d||z
  fd«      }|S )Nc                  óB   •— d‰ j                   › �d‰j                   › �z   S ©NzBistft input and window must be on the same device but got self on r-  r0  r.  s   €€r2  rJ  zistft.<locals>.<lambda>h  s-   ø€ ØPÐQV×Q]ÑQ]ÐP^Ð_Ø §¡˜Ð/ñ0ð r4  r/  c                  ó@   •— d‰ j                   › d‰j                   › �z   S rM  r0  r.  s   €€r2  rJ  zistft.<locals>.<lambda>s  s&   ø€ ØPØ—‘�˜o¨f¯m©m¨_Ð=ñ>ð r4  rP  éþÿÿÿrK  r   c                   ó   — y)Nz"istft input tensor cannot be emptyrH  rH  r4  r2  rJ  zistft.<locals>.<lambda>|  rÆ  r4  r  r†  c                  ó"   •— d‰ j                   › �S )Nz8istft expected a tensor with 2 or 3 dimensions, but got rf  rª  s   €r2  rJ  zistft.<locals>.<lambda>  s   ø€ ÐJÈ5Ï:É:È,ÐW€ r4  c                   ó   — 	 y)NzŠistft expected the frequency dimension (3rd to the last) of the input tensor to match n_fft / 2 + 1 when onesided=True, but got {fft_size}rH  rH  r4  r2  rJ  zistft.<locals>.<lambda>†  s   € ðRð r4  c                   ó   — y)N)zƒistft expected the frequency dimension (3rd to the last) of the input tensor to match n_fft when onesided=False, but got {fft_size}rH  rH  r4  r2  rJ  zistft.<locals>.<lambda>Ž  rÆ  r4  c                   ó   — y)Nz+istft expected 0 < hop_length <= win_lengthrH  rH  r4  r2  rJ  zistft.<locals>.<lambda>–  rÆ  r4  c                   ó   — y)Nz&istft expected 0 < win_length <= n_fftrH  rH  r4  r2  rJ  zistft.<locals>.<lambda>™  rÆ  r4  c                   ó   — y)NzDInvalid window shape. window has to be 1D and length of `win_length`rH  rH  r4  r2  rJ  zistft.<locals>.<lambda>�  rÆ  r4  rL  r:  c                   ó   — y)Nz9cannot have onesided output if window or input is complexrH  rH  r4  r2  rJ  zistft.<locals>.<lambda>³  rÆ  r4  r<  c                   ó   — y)Nz:Complex windows are incompatible with return_complex=FalserH  rH  r4  r2  rJ  zistft.<locals>.<lambda>¹  rÆ  r4  )rß  r’  rÐ  )r¹  rß  r!  r9  zšThe length of signal is shorter than the length parameter. Result is being padded with zeros in the tail. Please check your center and hop_length settings)rÀ  rÇ  r1  re  r¨  r©  r!  rê  r  rO  Úcorresponding_real_dtyper  r“  rÕ   r   rý   r>  Úifftré   Úirfftr  Úunfold_backwardrŸ   rÞ   rT  r÷   ÚwarningsÚwarn)r¦  r"  r#  r$  r%  r&  r(  r)  rÐ  r*  r4  r6  Ún_framesÚfft_sizeÚexpected_output_signal_lenÚ	onesided_Ú
real_dtypeÚwindow_rI  rD  r`   Úy_tmpÚyÚwindow_envelopr’  Úends   `   `                     r2  r+  r+  Y  s€  ù€ ô 
‡L�LØ�$ˆÒ7˜&Ÿ-™-¨5¯<©<Ñ7ô	
ôð !+Ð 6‘*¸EÀQ¹J€KØ *Ð 6‘*¸E€Kä	‡L�LÜ×Ñ˜uŸ{™{Ó+ô	
ôð �z‰z˜"‹~€HØ�z‰z˜"‹~€Hà!&¨¸À1¹Ñ)EÑ!EÐÜ	‡L�L�—‘“ Ñ"Ñ$PÔQÜ	‡L�LØ	ˆU�Z‰ZÖ˜1ÔÛWôð %Ð0‘°hÀ%Ñ6G€IáÜ�‰Ø�Q‰J˜‰N˜hÑ&ñõ	
ô 	�‰Ø�XÑñô	
ô 
‡L�LØ	ˆKÖ&˜;Ô&Ù=ôô 
‡L�LØ	ˆKÖ ˜5Ô Ñ"Rôô 
‡L�LØ�$ˆÒ8˜&Ÿ,™,¨;¨.Ñ8ÙVôð
 €~Ü×3Ñ3°E·K±KÓ@ˆ
Ü—*‘*˜[°
À5Ç<Á<ÔP‰àˆà�eÒØ˜Ñ#¨Ñ)ˆÜ×&Ñ& w°°u¸{Ñ7JÈTÑ7QÐ0RÐTUÓVˆà—J‘J€MØ‡z�z�Q‚Ø—‘ Ó"ˆà�O‰O˜A˜qÓ!€EÙ ‰7 d€DÙÜ�‰ØˆMÙOô	
ô —	‘	—‘˜u¨"°4�Ó8‰ä�‰Ø�dˆNÒF¤%×"8Ñ"8¸¿¹Ó"FÐFÙPô	
ñ Ø—L‘L R¨q¸À!¹Àa¹�LÓHˆEÜ—	‘	—‘ ¨2°D�Ó9ˆà�:‰:�a‹=˜EÒ!Ð!Ð!à�G—L‘L ! Q¨ Ó/Ñ/€EÜ×ÑØØ—Z‘Z “]Ð$>Ð?ØØØð 	ó 	€Aô ×)Ñ)Ø�‰�A‹×Ñ˜q (¨EÐ2Ó3Ø—Z‘Z “]Ð$>Ð?ØØØð *ó €Nð &¨¯©°«Ò2Ð2Ð2Ø%¨×)<Ñ)<¸QÓ)?Ò?Ð?Ð?á ˆE�QŠJ a€EØÐØ�f‰n‰Ù	Ø(¨5°A©:Ñ5‰à(ˆä��C˜%‘KÓ €FØ	�‰�Q˜e¨FˆÓ3€AØ#×*Ñ*¨q¸ÀfÐ*ÓM€Nà	ˆNÑ€AØ˜ÒØ�I‰I�a‹Lˆà
Ð'Ò'Ü�‰ð`ô	
ô × Ñ   Q¨Ð.HÑ(HÐ$IÈ1ÓMˆØ€Hr4  Úa_shapeÚa_strider8  r9  c                 ó²  ‡‡‡	‡
— t        | «      }t        j                  ||d¬«      Š	|dk(  rdn| ‰	   Š
|dk(  rdn|‰	   }t        j                  ‰‰
k  ˆ	ˆ
ˆfd„«       t        j                  ‰dkD  ˆfd„«       t        | «      }t        |«      }|j                  ‰«       |j                  |«       ‰	|k  r|‰	   ‰z
  ‰z  dz   |‰	<   |‰	xx   ‰z  cc<   ||fS )NT)Úwrap_scalarr   rK  c                  ó   •— d‰ › d‰› d‰› �S )Nz%Maximum size for tensor at dimension z is z but size is rH  )rß  Úmax_sizer!  s   €€€r2  rJ  z*_get_unfold_shape_stride.<locals>.<lambda>ø  s   ø€ Ð7¸°u¸DÀÀ
È-ÐX\ÐW]Ð^€ r4  c                  ó   •— d‰ › d�S )NzStep is z but must be > 0rH  ©r9  s   €r2  rJ  z*_get_unfold_shape_stride.<locals>.<lambda>ý  s   ø€ �(˜4˜&Ð 0Ð1€ r4  )rN  re  r¦  rÀ  rÇ  r$  r•  )ri  rj  r8  r!  r9  Úa_ndimÚlast_striderO  Ústridesrß  rn  s      ``    @@r2  Ú_get_unfold_shape_stridert  î  sÚ   û€ ô �‹\€FÜ
×
 Ñ
  ¨ÀÔ
E€CØ˜a’K‰q W¨S¡\€HØ ’{‘!¨°©€Kä	‡L�LØ�ÑÝ^ôô
 
‡L�LØˆq‰Û1ôô
 �‹M€EÜ�8‹n€GØ	‡L�L�ÔØ‡N�N�;ÔØ
ˆV‚|Ø˜C‘j 4Ñ'¨DÑ0°1Ñ4ˆˆc‰
Ø�‹˜Ñ‹Ø�'ˆ>Ðr4  c                 óÞ  — t        j                  |d¬«      }t        j                  t	        |«      t	        | j
                  «      k\  d„ «       t	        |«      dk(  rt        j                  | «      S t	        |«      | j                  z
  }dg|z  }| j
                  D ]  }|j                  |«       Œ t        d„ t        ||«      D «       «      }d|v rKt        j                  || j                  | j                  | j                  t        j                  | «      ¬«      S |}t        j                   |«      }t#        |«      D ]!  \  }}t%        ||||t'        |d«      «      \  }}Œ# t)        t#        |«      «      }	|	j+                  t-        j.                  d«      d¬	«       t        |	Ž \  }
}| j1                  |«      }t        j                  |«      }|j3                  |
«      }|j5                  |«      S )
NFr-  c                   ó   — y)Nzbrepeat: Number of dimensions of repeat dims can not be smaller than number of dimensions of tensorrH  rH  r4  r2  rJ  zrepeat.<locals>.<lambda>  rÆ  r4  r   rK  c              3   ó,   K  — | ]  \  }}||z  –— Œ y ­wrA  rH  )rD  Úpadded_sizeÚrepeat_sizes      r2  rF  zrepeat.<locals>.<genexpr>  s!   è ø€ ò á$ˆK˜ð 	�kÕ!ñùr  r¤  T)ÚkeyÚreverse)re  r5  rÀ  rÇ  rN  rO  r°   r  r•  rR  Úzipr  r©  r1  r¡  r•  Úmake_contiguous_strides_forrU  rt  rT  r$  ÚsortrV  Ú
itemgetterrÞ   rí   rð   )ru  Úrepeat_shapeÚnum_new_dimensionsÚpadded_shapeÚdim_sizeÚtarget_shapeÚurtensor_shapeÚurtensor_striderß  Úenumerated_strideÚpermute_orderÚsorted_strideÚrepeat_xtensorÚcloned_resultÚpermuted_results                  r2  rï   rï   
  sÏ  € ô ×3Ñ3°LÈ5ÔQ€LÜ	‡L�LÜˆLÓœS §¡›\Ñ)Ùtôô
 ˆ<Ó˜AÒÜ�{‰{˜1‹~Ðä˜\Ó*¨Q¯V©VÑ3ÐØ�3Ð+Ñ+€LØ—G‘Gò &ˆØ×Ñ˜HÕ%ð&ô ñ ä(+¨L¸,Ó(Gôó €Lð 	ˆLÑÜ�{‰{ØØ—'‘'Ø—8‘8ØŸ/™/Ü×5Ñ5°aÓ8ô
ð 	
ð "€NÜ×7Ñ7¸ÓE€OÜ" <Ó0ò 
‰ˆˆXä*BØ˜O¨S°(¼CÀÈ!Ó<Ló+
Ñ'ˆ™ð
ô œY Ó7Ó8ÐØ×Ñœx×2Ñ2°1Ó5¸tÐÔDÜ#&Ð(9Ð#:Ñ €M�=ð —X‘X˜nÓ-€Nô —K‘K Ó/€Mð $×+Ñ+¨MÓ:€Oð ×"Ñ" <Ó0Ð0r4  Ú
allow_copyc                óî  ‡‡— ddl m}m} t        j                  |d¬«      }t        j
                  || j                  «       «      } || j                  «       dk(  «      r t        | |t        j                  |«      «      S | j                  dk(  r7| }|D ]  }|dk(  sJ ‚t        |d«      }Œ || u rt        j                  | «      S |S t        |«      dk(  rA| }| j                  D ]  }|dk(  sJ ‚t        |d«      }Œ || u rt        j                  | «      S |S | j!                  «       r†t        |«      dk(  r6| j                  dkD  r't#        j                  | | j                  «       gdg«      S t        |«      dk(  r4| j                  dk(  r%|d   }|d   }t#        j                  | ||g|dg«      S dŠ| Š|D �]S  }‰‰j                  k\  r@|dk(  sJ ‚‰j                  dz
  }	t        j$                  ‰|	‰j                  |	   «      Š‰dz   ŠŒS ||‰j                  ‰   k(  «      r‰dz   ŠŒq‰j                  ‰   }
‰} ||
|z  dk7  «      r&|dz   }|
‰j                  |   z  }
 ||
|z  dk7  «      rŒ&|‰k7  rrt        j&                  ‰‰|«      \  }}|€I|rt        j(                  | |«      c S d| j                  › d	| j+                  «       › d
|› d�}t-        |«      ‚t/        ‰‰|«      Š ||
|k7  «      rt        j$                  ‰‰|«      Š‰dz   Š�ŒV ‰‰j                  k  rFt#        j0                  ‰j                  ‰   dk(  ˆˆfd„«       t        ‰‰«      Š‰‰j                  k  rŒF‰| u rt        j                  | «      S ‰S )Nr   )r?  Úsym_eqFr-  rK  rP  r  z Cannot view a tensor with shape z and strides z as a tensor with shape rd  c                  ó.   •— d‰› d‰ j                   ‰   › �S )Nza.size(z) expected to be 1 but got r  )ræ  r]  s   €€r2  rJ  z&_reshape_view_helper.<locals>.<lambda>¸  s   ø€ �g˜c˜UÐ"=¸b¿h¹hÀs¹m¸_ÐM€ r4  )rQ  r?  r�  re  r5  Ú
infer_sizerê  rÊ   r}  r  r   rš  r8  rN  rO  r÷   Úis_contiguousrÀ  Ú	split_dimr×  rð   r  rW  rá   rÇ  )ru  r�  rO  r?  r�  Ú_arÐ  Údim0Údim1Úlast_dimÚaccumrh  r¾  rÚ  r¼  ræ  r]  s                  @@r2  Ú_reshape_view_helperr™  D  s~  ù€ ßRô ×,Ñ,¨U¸UÔC€Eô ×Ñ˜U A§G¡G£IÓ.€Eñ ˜AŸG™G›I¨™NÔ+Ü˜!˜U¤E×$EÑ$EÀeÓ$LÓMÐMð 	‡v�v�‚{ØˆØò 	#ˆFØ˜Q’;Ð�;Ü˜2˜rÓ"‰Bð	#ð �‰7Ü—=‘= Ó#Ð#àˆIô ˆ5ƒz�Q‚ØˆØ—g‘gò 	!ˆFØ˜Q’;Ð�;Ü˜˜R“‰Bð	!ð �‰7Ü—=‘= Ó#Ð#àˆIà‡�Ôäˆu‹:˜Š?˜qŸv™v¨šzÜ×#Ñ# A¨¯©«	 {°Q°CÓ8Ð8äˆu‹:˜Š?˜qŸv™v¨š{Ø˜‘8ˆDØ˜‘8ˆDÜ×#Ñ# A¨¨d |°d¸A°YÓ?Ð?ð* €CØ	
€BØó ,ˆà�"—'‘'Š>Ø˜Q’;Ð�;Ø—w‘w ‘{ˆHô —‘  X¨r¯x©x¸Ñ/AÓBˆBØ˜‘'ˆCØñ   ¨"¯(©(°3©-Ñ 7Ô8Ø˜‘'ˆCØð
 —‘˜‘ˆØˆÙ" 5¨6¡>°QÑ#6Ô7Ø˜‘'ˆCØ˜BŸH™H S™MÑ)ˆEñ # 5¨6¡>°QÑ#6Õ7ð �#Š:ô &+×%@Ñ%@ÀÀSÈ#Ó%NÑ"ˆI�{ØÐ ÙÜ Ÿ=™=¨¨EÓ2Ò2à8¸¿¹¸	ÀÈqÏxÉxËzÈlÐZrÐsxÐryÐyzÐ{�Ü  “oÐ%ä˜˜S #Ó&ˆBñ   ¨¡Ô0Ü—‘  S¨&Ó1ˆBà�A‰gŠðY,ð^ �—‘Š-Ü�‰Ø�H‰H�S‰M˜QÑÜMô	
ô �R˜Óˆð �—‘‹-ð 
ˆQ�wÜ�}‰}˜QÓÐàˆ	r4  rO  c                 ó    — t        | g|¢­ddiŽS )Nr�  T©r™  r1  s     r2  rð   rð   Æ  s   € Ü Ð; EÒ;°dÑ;Ð;r4  c                 ó@   — | j                  |j                  «       «      S rA  )rð   r!  ©rè  rò  s     r2  rñ   rñ   Ë  s   € Ø�<‰<˜Ÿ
™
›Ó%Ð%r4  Úshiftsc                 ó¾  — t        j                  | j                  |«      }t        |t        «      s|f}t        |t        «      s|f}| j                  «       dk(  r| j                  «       S | j                  «       dk(  r t        |«      dkD  rt        d|d   › d�«      ‚t        |«      }t        |«      }|dk7  s|dk7  r¹|dk(  rt        d«      ‚|dk(  rH|dk(  rCt        j                  t        j                  | «      |d«      j                  | j                  «      S ||k7  rt        d|› d|› �«      ‚|dkD  sJ ‚|dd }|dd }t        j                  | |d   f|d   «      }t        j                  |||«      S |d   }| j                  |   }	|	|d   z
  |	z  }
t        j                   |	| j"                  ¬	«      }| j%                  |t        j&                  |
|z   |	«      «      S )
z/Reference implementation of :func:`torch.roll`.r   zDimension specified as z but tensor has no dimensionsrK  z`shifts` requiredz*shifts and dimensions must align. shifts: z, dims: Nr0  )re  rÜ  r  r8  r   rê  r°   rß  rN  rð  rX  rÀ  rò   rá   r  rO  r  r1  rM   r†   )ru  rž  r(  Ú
len_shiftsÚlen_dimsÚtail_shiftsÚ	tail_dimsÚfirst_dim_rolledrß  r!  r’  r]  s               r2  rò   rò   Ï  sÕ  € ô ×"Ñ" 1§6¡6¨4Ó0€Dä�fœhÔ'Ø�ˆÜ�dœHÔ%Øˆwˆð 	‡w�wƒy�A‚~à�w‰w‹yÐà‡u�uƒw�!‚|œ˜D›	 AšÜØ% d¨1¡g YÐ.KÐLó
ð 	
ô �V“€JÜ�4‹y€HØ�Q‚˜( aš-Ø˜Š?ÜÐ2Ó3Ð3ð �qŠ=˜Z¨1š_Ü—:‘:œeŸm™m¨AÓ.°¸Ó:×?Ñ?ÀÇÁÓHÐHØ˜Ò!ÜØ<¸Z¸LÈÐQYÐPZÐ[óð ð ˜!Š|Ðˆ|Ø˜Q˜R�jˆØ˜˜�Hˆ	Ü Ÿ:™: a¨&°©)¨°t¸A±wÓ?ÐÜ�z‰zÐ*¨K¸ÓCÐCð ˆq‰'€CØ�7‰7�3‰<€DØ�F˜1‘IÑ Ñ%€EÜ
�,‰,�t A§H¡HÔ
-€CØ�>‰>˜#œuŸz™z¨%°#©+°tÓ<Ó=Ð=r4  ©r   rK  Úkc                 ó†  — t        |«      dk7  rt        dt        |«      › �«      ‚| j                  dk  rt        d| j                  › �«      ‚t        j                  | j                  |«      }|d   |d   k(  rt        d|d   › d|d   › �«      ‚|dz  }|dk(  r5t        j                  t        j                  | |d   f«      |d   |d   «      S |dk(  rt        j                  | |«      S |d	k(  r5t        j                  t        j                  | |d   f«      |d   |d   «      S | j                  t
        j                  ¬
«      S )z0Reference implementation of :func:`torch.rot90`.r  z2expected total rotation dims == 2, but got dims = z/expected total dims >= 2, but got total dims = r   rK  z7expected rotation dims to be different, but got dim0 = z and dim1 = r/  r†  rØ  )
rN  rX  r  re  rÜ  rÀ  rý   râ   r°   r  )ru  r¦  r(  s      r2  ró   ró      s?  € ô ˆ4ƒy�A‚~ÜØ@ÄÀTÃÀÐLó
ð 	
ð 	‡v�v�‚zÜÐLÈQÏVÉVÈHÐUÓVÐVô ×"Ñ" 1§6¡6¨4Ó0€DàˆA�w�$�q‘'ÒÜØEÀdÈ1ÁgÀYÈlÐ[_Ð`aÑ[bÐZcÐdó
ð 	
ð 	
ˆA‰€AØˆA‚vÜ�‰œuŸz™z¨!¨d°1©g¨ZÓ8¸$¸q¹'À4ÈÁ7ÓKÐKØ	
ˆaŠÜ�z‰z˜!˜TÓ"Ð"Ø	
ˆaŠÜ�‰œuŸz™z¨!¨d°1©g¨ZÓ8¸$¸q¹'À4ÈÁ7ÓKÐKà�w‰w¤U×%<Ñ%<ˆwÓ=Ð=r4  c                 ó´   — | d   j                   }t        dt        | «      «      D ]1  }| |   j                   |k(  rŒJ d|› d| |   j                   › d|› �«       ‚ y )Nr   rK  z4stack expects each tensor to be equal size, but got z at entry 0 and z
 at entry )rO  rV  rN  )r�  Úentry_shaper  s      r2  Ú_check_stack_inputsrª     sr   € Ø˜!‘*×"Ñ"€KÜ�1”c˜'“lÓ#ò 
ˆØ�q‰z×Ñ ;Ó.ð 	
ØBÀ;À-ð PØ˜1‘:×#Ñ#Ð$ J¨q¨cð3ó	
Ð.ñ
r4  c                 óÖ  — t        | «      dkD  sJ d«       ‚t        j                  | d   j                  dz   |«      }|| d   j                  k  ret	        | «       t        | d   j                  «      }|j                  |t        | «      «       t        j                  | |«      }|j                  |«      S t        j                  | D �cg c]  }|j                  |«      ‘Œ c}|«      S c c}w )Nr   z$stack expects a non-empty TensorListrK  )rN  re  r¦  r  rª  r$  rO  ÚinsertrÀ  rÑ   r  r   )r�  rß  Úwrapped_dimÚresult_sizesr�  rø   s         r2  rõ   rõ   )  sÄ   € ô ˆw‹<˜!ÒÐCÐCÓCÐÜ×(Ñ(¨°©¯©¸1Ñ)<¸cÓB€Kà�W˜Q‘Z—_‘_Ò$Ü˜GÔ$Ü˜G A™J×,Ñ,Ó-ˆØ×Ñ˜K¬¨W«Ô6Ü�i‰i˜ Ó-ˆØ�x‰x˜Ó%Ð%ô �9‰9¸Ö@°1�a—k‘k +Õ.Ò@À#ÓFÐFùÒ@s   ÃC&c           
      ó  — |xs | j                   }t        j                  |«      }t        | |«      }| j	                  «       dk(  rt        |«      }nt        ||d¬«      }t        ||z
  «      }t        t        |t        ||d¬«      «      |«      S )Nr   Trá  )	r©  re  rã  r)   rê  rA   rµ   r§   r¿   )ru  rß  r©  rä  rå  ræ  Úa_expÚa_maxs           r2  ro   ro   ;  sƒ   € ð Ò#˜AŸG™G€LÜ×3Ñ3°LÓAÐÜ	  Ð$5Ó	6€BØ‡w�wƒy�A‚~Ü�B“‰ä�R˜ dÔ+ˆÜ�B˜‘J“ˆÜ"Ü�Eœ3˜u c°4Ô8Ó9¸<óð r4  c                 ó¬   — t        j                  t        | «      dkD  d„ «       t        | Ž }|d   j                  dk(  rt        |d«      S t        |d«      S )Nr   c                   ó   — y)Nz%hstack expects a non-empty TensorListrH  rH  r4  r2  rJ  zhstack.<locals>.<lambda>Q  rÆ  r4  rK  )rÀ  rÇ  rN  rÇ   r  rÑ   r¬  s     r2  ræ   ræ   O  sQ   € ä	‡L�L”�W“ Ñ!Ñ#RÔSÜ  'Ð*€OØ�qÑ×Ñ !Ò#Ü�? AÓ&Ð&Üˆ Ó"Ð"r4  c                 óp   — t        j                  t        | «      dkD  d„ «       t        | Ž }t	        |d«      S )Nr   c                   ó   — y)Nz%vstack expects a non-empty TensorListrH  rH  r4  r2  rJ  zvstack.<locals>.<lambda>[  rÆ  r4  )rÀ  rÇ  rN  rÈ   rÑ   r¬  s     r2  r  r  Y  rÅ  r4  r&  c                 ó&  — t        j                  | j                  |«      }t        j                  t        |«      dk7  d„ «       | j                  t        | j                  d | «      t        |«      z   t        | j                  |dz   d  «      z   «      S )Nr   c                   ó   — y)Nz"unflatten: sizes must be non-emptyrH  rH  r4  r2  rJ  zunflatten.<locals>.<lambda>c  rÆ  r4  rK  )	re  r¦  r  rÀ  rÇ  rN  r  rR  rO  )ru  rß  r&  s      r2  r  r  a  so   € Ü
×
 Ñ
  §¡¨Ó
-€CÜ	‡L�L”�U“˜q‘Ñ"NÔOØ�6‰6”%˜Ÿ™  ˜Ó&¬¨u«Ñ5¼¸a¿g¹gÀcÈAÁgÀiÐ>PÓ8QÑQÓRÐRr4  rø   c                 óH  ‡— ddl m} t        j                  | j                  ‰«      Št        j                  t        | j                  «      dkD  d„ «        || j                  ‰   dk(  «      ryt        ˆfd„t        j                  | | j                  ‰   ‰«      D «       «      S )Nr   r>  c                   ó   — y)Nz5Dimension specified as 0 but tensor has no dimensionsrH  rH  r4  r2  rJ  zunbind.<locals>.<lambda>n  rÆ  r4  rH  c              3   óJ   •K  — | ]  }t        j                  |‰«      –— Œ y ­wrA  )rÀ  r÷   )rD  Úsrß  s     €r2  rF  zunbind.<locals>.<genexpr>s  s!   øè ø€ ò 
Ø&'ŒE�M‰M˜!˜S×!ñ
ùs   ƒ #)rQ  r?  re  r¦  r  rÀ  Ú_check_indexrN  rO  rR  rü   )rø   rß  r?  s    ` r2  r	  r	  g  sˆ   ø€ åJä
×
 Ñ
  §¡¨Ó
-€CÜ	×ÑÜˆA�G‰G‹�qÑÙGôñ ˜AŸG™G C™L¨AÑ-Ô.Øäó 
Ü+0×+=Ñ+=¸aÀÇÁÈÁÈsÓ+Sô
ó 
ð 	
r4  r÷  r¨  c                 ód   — | j                  t        j                  ¬«      j                  |||«      S rÛ  )r°   rÀ  r  rL   )rE  rß  r÷  r¨  s       r2  rK   rK   x  s-   € à�7‰7¤×!8Ñ!8ˆ7Ó9×EÑEØˆU�Fóð r4  c                 ó  ‡— t        j                  | j                  |«      }t        j                  ‰j                  dk  ˆfd„«       | j                  dk(  r| j                  d«      n| }t        d «      f|z  ‰fz   }|||<   | S )NrK  c                  ó$   •— d‰ j                   › d�S ©Nz(Index should have dimension 1 or 0 (got rê  rf  ©r÷  s   €r2  rJ  zindex_copy_.<locals>.<lambda>ƒ  ó   ø€ Ð:¸5¿:¹:¸,ÀaÐH€ r4  r   )re  rÜ  r  rÀ  rÇ  r   Úslice)rE  rß  r÷  r¨  rf  r]  s     `   r2  rL   rL     ss   ø€ Ü
×
!Ñ
! !§&¡&¨#Ó
.€CÜ	‡L�LØ�
‰
�a‰ÛHôð
 Ÿ&™& Aš+ˆ�‰�AŒ¨1€AÜ�‹;ˆ.˜3Ñ
 % Ñ
)€CØ€A€c�FØ€Hr4  c                 ó"   — t        | |||d¬«      S )NF©Úinplace©Ú_index_fill©rE  rß  r÷  r·  s       r2  rN   rN   Œ  s   € ô
 �q˜#˜u e°UÔ;Ð;r4  c                 ó"   — t        | |||d¬«      S )NTrÅ  rÇ  rÉ  s       r2  rO   rO   ”  s   € ô �q˜#˜u e°TÔ:Ð:r4  rÆ  c                ó"  ‡‡— t        j                  ‰j                  dk  ˆfd„«       t        ‰t        «      r't        j                  ‰j                  dk(  ˆfd„«       n7t        j
                  ‰| j                  | j                  | j                  ¬«      Š| j                  dk(  }|r| j                  d«      n| }t        |j                  «      }‰j                  «       ||<   ‰j                  |«      Š|rt        j                  nt         j                   } |||‰‰«      }	|r| S |r|	j#                  d«      j%                  «       }	|	j'                  «       | j'                  «       k7  r(t        j(                  | «      }
|
j+                  |	«       |
}	|	S )NrK  c                  ó$   •— d‰ j                   › d�S rÀ  rf  rÁ  s   €r2  rJ  z_index_fill.<locals>.<lambda>¥  rÂ  r4  r   c                  ó$   •— d‰ j                   › d�S )Nz<Only supports 0-dimensional value tensor. Got a tensor with r´  rf  r¿  s   €r2  rJ  z_index_fill.<locals>.<lambda>ª  s   ø€ ð !Ø!&§¡ ¨Lð:€ r4  )r©  rá  r1  )rÀ  rÇ  r  r8  r%   r!  r©  rá  r1  r   r$  rO  rê  rÞ   r7  rL   rK   r÷   r°   r  r  Úcopy_)rE  rß  r÷  r·  rÆ  Úzero_dimrf  rO  rK   r�  Únew_outs     ``       r2  rÈ  rÈ  ›  s8  ù€ ô 
‡L�LØ�
‰
�a‰ÛHôô �%œÔ$Ü�‰Ø�J‰J˜!‰Oó:õ	
ô ×#Ñ#Ø˜Ÿ™¨¯©¸!¿(¹(ô
ˆð
 �v‰v˜‰{€HÙ"ˆ�‰�AŒ¨€Aä�—‘‹M€EØ—‘“€Eˆ#�JØ�L‰L˜Ó€EÙ'.”×#Ò#´E×4DÑ4D€JÙ
�Q˜˜U EÓ
*€CÙØˆáà—+‘+˜a“.×&Ñ&Ó(ˆCà�:‰:‹<˜1Ÿ8™8›:Ò%Ü×&Ñ& qÓ)ˆGØ�M‰M˜#ÔØˆCØˆ
r4  c                óh   — | j                  t        j                  ¬«      j                  ||||¬«      S )NrØ  r;  )r°   rÀ  r  Ú
index_add_)rE  rß  r÷  r¨  r<  s        r2  rJ   rJ   É  s7   € ð �7‰7¤×!8Ñ!8ˆ7Ó9×DÑDØˆU�F %ð Eó ð r4  c                 óˆ  ‡— t        j                  | j                  |«      }t        j                  ‰j                  dk  ˆfd„«       ‰j                  dk(  r‰j                  d«      Š| j                  dk(  r5t        j                  | «      j                  d‰| j                  ‰«      «      S t        d «      f|z  ‰fz   }| |   S )NrK  c                  ó$   •— d‰ j                   › d�S rÀ  rf  rÁ  s   €r2  rJ  zindex_select.<locals>.<lambda>Þ  rÂ  r4  r   )
re  rÜ  r  rÀ  rÇ  r   r  rK   rß   rÃ  )rE  rß  r÷  r]  s     ` r2  rM   rM   Ø  s¦   ø€ ô ×
!Ñ
! !§&¡&¨#Ó
.€CÜ	‡L�LØ�
‰
�a‰ÛHôð ‡z�z�Q‚Ø—‘ Ó"ˆØ‡v�v�‚{ô ×Ñ Ó"×-Ñ-¨a°¸¿¹ÀEÓ8JÓKÐKä�‹;ˆ.˜3Ñ
 % Ñ
)€CØˆS‰6€Mr4  c                 ó˜  ‡ ‡— ddl mŠ |€Rt        d„ t        ‰ j                  «      D «       «      }|rt        j                  ‰ |«      S t        j                  ‰ «      S ‰ j                  }t        j                  ||«      }t        |t        «      r|fn|}|dk(  r*t        |«      dk(  s|dk(  sJ ‚t        j                  ‰ «      S t        ˆ ˆfd„|D «       «      }t        |«      dk(  rt        j                  ‰ «      S t        |«      dk(  rt        j                  ‰ |«      S t        |«      }t        |d¬«      }|D ]  }t        ‰ |«      Š Œ ‰ S )	Nr   r>  c              3   ó2   K  — | ]  \  }}|d k(  sŒ|–— Œ y­wr3  rH  )rD  r]  r!  s      r2  rF  zsqueeze.<locals>.<genexpr>ð  s   è ø€ ÒJ™Y˜S $ÀÈÃ	”SÑJùs   ‚�r£  c              3   óT   •K  — | ]  } ‰‰j                   |   d k(  «      sŒ|–— Œ! y­wr3  r  )rD  Údru  r?  s     €€r2  rF  zsqueeze.<locals>.<genexpr>ü  s%   øè ø€ ÒJ�qÑ$8¸¿¹À¹Àq¹Õ$I”ÑJùs   ƒ(¡(rK  T)r{  )rQ  r?  rR  rU  rO  rš  r÷   r8  r  re  rÜ  r8  r   rN  r$  rû  )ru  rß  r(  r  Ú	dims_listr  r?  s   `     @r2  r÷   r÷   ë  s  ù€ åJà
€{ÜÑJ¬)°A·G±GÓ*<ÔJÓJˆÙ)-Œu�}‰}˜Q Ó%ÐC´5·=±=ÀÓ3CÐCà�6‰6€DÜ
×
!Ñ
! $¨Ó
,€CÜ ¤SÔ)ˆC‰6¨s€Dàˆq‚yÜ�4‹y˜AŠ~ ¨¢Ð-Ð-Ü�}‰}˜QÓÐô ÔJ˜DÔJÓJ€DÜ
ˆ4ƒy�A‚~Ü�}‰}˜QÓÐÜ
ˆ4ƒy�A‚~Ü�}‰}˜Q Ó%Ð%Ü�T“
€IÜ�y¨$Ô/€IØò ˆÜ�A�q‹M‰ðà€Hr4  Úindices_or_sectionsc           	      óÖ  — t        j                  | j                  |«      }| j                  dk(  rd}t        |«      ‚t	        |t
        «      rl|j                  j                  dk(  sd|j                  › �}t        |«      ‚|j                  t        j                  k7  rd}d|j                  › � t        |«      ‚t	        |t        «      st	        |t
        «      rÏ|j                  dk(  rÀt	        |t        «      r|n|j                  «       }|dk  rd|› �}t        |«      ‚g }| j                  |   }t        j                   ||z  «      }||z  }	d}
t#        |«      D ]@  }||	k  r|dz   n|}t%        j&                  | |
|
|z   |¬	«      }|j)                  |«       |
|z   }
ŒB t+        |«      S |}t	        |t
        «      r<|j                  dk7  rd
}d|j                  › d� t        |«      ‚|j-                  «       }g }d}
|D ],  }|j)                  t%        j&                  | |
||¬	«      «       |}
Œ. |j)                  t%        j&                  | |
| j                  |   |¬	«      «       t+        |«      S )Nr   zXtensor_split: received a rank zero tensor, but expected a tensor of rank one or greater!r]  z\tensor_split: if indices_or_sections is a tensor it must be on the CPU, but received one on zJtensor_split: if indices_or_sections is a tensor it must have long dtype, z but received one with dtype zAtensor_split: number of sections must be greater than 0, but was rK  rí  zStensor_split: non-scalar indices_or_sections tensors must have only one dimension, zbut received a tensor with r  )re  r¦  r  rW  r8  r%   r1  r/  r©  rÀ  Úlongr   r   r²   rO  r  rG   rV  rš  rñ  r•  rR  Útolist)ru  rÚ  rß  Ú_dimr¼  ÚsectionsÚsplitsrƒ  Úmin_split_sizeÚnum_splits_one_extraÚ	start_idxÚ	split_idxÚ
split_sizer»  ÚindicesrE  s                   r2  rü   rü   
  s|  € ô
 ×!Ñ! !§&¡&¨#Ó.€DØ‡v�v�‚{ØhˆÜ˜‹oÐô Ð%¤zÔ2Ø"×)Ñ)×.Ñ.°%Ò7ð'Ø':×'AÑ'AÐ&BðDð ô ˜S“/Ð!Ø×$Ñ$¬¯
©
Ò2Ø^ˆCØ+Ð,?×,EÑ,EÐ+FÑGÜ˜S“/Ð!ô Ð%¤wÔ/ÜÐ&¬
Ô3Ð8K×8PÑ8PÐTUÒ8Uô Ð-¬vÔ6ñ  à$×)Ñ)Ó+ð 	ð �qŠ=ØUÐV^ÐU_Ð`ˆCÜ˜S“/Ð!àˆØ—7‘7˜4‘=ˆÜŸ™ H¨xÑ$7Ó8ˆØ'¨(Ñ2ÐØˆ	Ü˜x›ò 	/ˆIð Ð 4Ò4ð  Ò"à#ð ô
 ×"Ñ" 1 i°¸ZÑ1GÈdÔSˆAØ�M‰M˜!ÔØ! JÑ.‰Ið	/ô �V‹}Ðð &ˆÜÐ)¬:Ô6Ø"×'Ñ'¨1Ò,Øk�Ø-Ð.A×.FÑ.FÐ-GÀ{ÑSÜ  “oÐ%à)×0Ñ0Ó2ˆGàˆØˆ	Øò 	ˆAØ�M‰Mœ%×,Ñ,¨Q°	¸1À4ÔHÔIØ‰Ið	ð 	�‰”e×(Ñ(¨¨I°q·w±w¸t±}È4ÔPÔQÜ�V‹}Ðr4  c                 óœ  ‡ ‡‡‡— t        j                  ‰ j                  dk\  ˆ fd„«       ‰ j                  dk(  rdndŠt        ‰t        «      rD‰Št        j                  ‰dk7  xr ‰ j
                  ‰   ‰z  dk(  ˆ ˆˆfd„«       t        ‰ ‰‰«      S t        j                  t        ‰t        t        f«      ˆfd„«       ‰}t        ‰ |‰«      S )NrK  c                  ó:   •— dt        ‰ j                  «      z   dz   S )NzPtorch.hsplit requires a tensor with at least 1 dimension, but got a tensor with ú dimensions!©rh  r  rt  s   €r2  rJ  zhsplit.<locals>.<lambda>Y  ó#   ø€ Ø^Ü�!—&‘&‹kñàñð r4  r   c                  ó|   •— dt        ‰«      z   dz   t        ‰ j                  ‰   «      z   dz   t        ‰«      z   dz   S )Nz0torch.hsplit attempted to split along dimension z , but the size of the dimension ú$ is not divisible by the split_size rd  r  )ru  rß  rå  s   €€€r2  rJ  zhsplit.<locals>.<lambda>d  sX   ø€ ØBÜ�c“(ñà4ñ5ô �a—g‘g˜c‘lÓ#ñ$ð 9ñ	9ô
 �j“/ñ"ð ñð r4  c                  ó    •— dt        ‰ «      › �S )Nz“hsplit(): received an invalid combination of arguments. Expected indices_or_sections to be of type int, list of ints or tuple of ints but got type r.  ©rÚ  s   €r2  rJ  zhsplit.<locals>.<lambda>r  ó   ø€ ðä Ð!4Ó5Ð6ð8ð r4  ©
rÀ  rÇ  r  r8  r   rO  rü   Ú_check_typer$  rR  )ru  rÚ  Úsplit_sizesrß  rå  s   `` @@r2  rå   rå   T  s¼   û€ ô 
‡L�LØ	�‰�!‰ó	
ôð �v‰v˜Š{‰! €CÜÐ%¤wÔ/Ø(ˆ
Ü�‰Ø˜1‰_Ò? §¡¨¡°
Ñ!:¸aÑ!?õô	
ô ˜A˜z¨3Ó/Ð/ä	×ÑÜÐ&¬¬u¨Ó6ó	
ôð &€KÜ˜˜;¨Ó,Ð,r4  c                 ór  ‡ ‡‡— t        j                  ‰ j                  dk\  ˆ fd„«       t        ‰t        «      rC‰Št        j                  ‰dk7  xr ‰ j
                  d   ‰z  dk(  ˆ ˆfd„«       t        ‰ ‰d«      S t        j                  t        ‰t        t        f«      ˆfd„«       ‰}t        ‰ |d«      S )Nr  c                  ó:   •— dt        ‰ j                  «      z   dz   S )NzPtorch.vsplit requires a tensor with at least 2 dimension, but got a tensor with ré  rê  rt  s   €r2  rJ  zvsplit.<locals>.<lambda>ƒ  rë  r4  r   c                  ó0   •— d‰ j                   d   › d‰› d�S )NzQtorch.vsplit attempted to split along dimension 0, but the size of the dimension r   rí  rd  r  )ru  rå  s   €€r2  rJ  zvsplit.<locals>.<lambda>�  s*   ø€ ð3à—7‘7˜1‘:�,Ø6Ø�,Øðð r4  c                  ó    •— dt        ‰ «      › �S )Nz“vsplit(): received an invalid combination of arguments. Expected indices_or_sections to be of type int, list of ints or tuple of ints but got type r.  rï  s   €r2  rJ  zvsplit.<locals>.<lambda>š  rð  r4  rñ  )ru  rÚ  ró  rå  s   `` @r2  r  r  ~  s«   ú€ ô 
‡L�LØ	�‰�!‰ó	
ôô Ð%¤wÔ/Ø(ˆ
Ü�‰Ø˜1‰_Ò= §¡¨¡¨jÑ!8¸AÑ!=ôô
	
ô ˜A˜z¨1Ó-Ð-ä	×ÑÜÐ&¬¬u¨Ó6ó	
ôð &€KÜ˜˜;¨Ó*Ð*r4  rd  c                 ó¼   ‡— | j                  «       Št        j                  ‰dv ˆfd„«       ‰dk(  rt        j                  | |«      S t        j                  | |«      S )N)rK  r  c                  ó   •— d‰ › d�S )Nz'diag(): Supports 1D or 2D tensors. Got ÚDrH  rf  s   €r2  rJ  zdiag.<locals>.<lambda>­  s   ø€ Ð"IÈ$ÈÈqÐ Q€ r4  rK  )rß  rÀ  rÇ  r×   rÚ   )rè  rd  r  s     @r2  rØ   rØ   ¥  sU   ø€ ð �8‰8‹:€DÜ	‡L�LØ�ˆÓQôð ˆq‚yÜ×Ñ  fÓ-Ð-ä×"Ñ" 4¨Ó0Ð0r4  r–  Údim2c                 óÔ   ‡‡— t        j                  | «      }|j                  |||«      Št        j                  ‰j
                  ‰j
                  k(  ˆˆfd„«       t        ‰‰«       |S )Nc                  ó<   •— d‰j                   › d‰ j                   › �S )NzCexpected src to have a size equal to the diagonal of the input.Got z for a diagonal of shape r  )rØ   rŠ  s   €€r2  rJ  z"diagonal_scatter.<locals>.<lambda>Â  s$   ø€ ð Ø�y‰yˆkÐ2°4·:±:°,ð@€ r4  )re  Úclone_preserve_stridesrÙ   rÀ  rÇ  rO  r±   )r¦  rŠ  rd  r–  rû  r�  rØ   s    `    @r2  rÛ   rÛ   µ  sZ   ù€ ô ×
&Ñ
& uÓ
-€CØ�<‰<˜  dÓ+€DÜ	‡L�LØ�
‰
�c—i‘iÑô	@ôô
 ˆD�#ÔØ€Jr4  c                 óè  ‡‡— | j                  «       }t        j                  ‰|¬«      Št        j                  ‰|¬«      Št        j                  ‰‰k7  ˆˆfd„«       | j                  «       }|dk\  r<t        t        | j                  «       ‰   | j                  «       ‰   |z
  «      d«      }n;t        t        | j                  «       ‰   |z   | j                  «       ‰   «      d«      }|dkD  r8|dk\  r||| j                  «       ‰   z  z  }n||| j                  «       ‰   z  z  }t        | j                  «       «      D ��cg c]  \  }}|‰‰fvsŒ|‘Œ }	}}|	j                  |«       t        | j                  «       «      D ��cg c]  \  }}|‰‰fvsŒ|‘Œ }
}}|
j                  | j                  «       ‰   | j                  «       ‰   z   «       | j                  |	|
|¬«      }|S c c}}w c c}}w )z4
    Reference implementation of torch.diagonal
    )r]  Úrankc                  ó   •— d‰ › d‰› �S ©Nz(diagonal dimensions cannot be identical ré  rH  ©r–  rû  s   €€r2  rJ  zdiagonal.<locals>.<lambda>Ø  ó   ø€ Ð HÈÈÈbÐQUÐPVÐW€ r4  r   )r!  r  r#  )rß  re  r¦  rÀ  rÇ  r#  rT  rö  r!  r  rU  r•  rÊ   )rè  rd  r–  rû  Únum_dimsr#  Ú	diag_sizer  r»  r&  rs  rí  s     ``        r2  rÙ   rÙ   É  s±  ù€ ð �x‰x‹z€HÜ×!Ñ! d°Ô:€DÜ×!Ñ! d°Ô:€Dä	‡L�LØ�‰ÔWôð ×(Ñ(Ó*€Nà�‚{Üœ˜DŸI™I›K¨Ñ-¨t¯y©y«{¸4Ñ/@À6Ñ/IÓJÈAÓN‰	äœ˜DŸI™I›K¨Ñ-°Ñ6¸¿	¹	»ÀDÑ8IÓJÈAÓNˆ	à�1‚}Ø�QŠ;Ø˜f t§{¡{£}°TÑ':Ñ:Ñ:‰Nà˜f t§{¡{£}°TÑ':Ñ:Ñ:ˆNä$ T§Y¡Y£[Ó1×K‘4�1�a°Q¸tÀT¸lÒ5JŠQÐK€EÑKØ	‡L�L�Ôä& t§{¡{£}Ó5×O‘T�Q˜¸À4ÈÀ,Ò9NŠqÐO€GÑOØ‡N�N�4—;‘;“= Ñ&¨¯©«°tÑ)<Ñ<Ô=à�_‰_ %°Èˆ_ÓW€Fà€Mùó Lùó Ps   ÅG(ÅG(ÆG.ÆG.c                 ó8  ‡‡— | j                   dz   }t        j                  |‰¬«      Št        j                  |‰¬«      Š‰‰kD  r‰‰cŠŠ| }t        j                  ‰‰k7  ˆˆfd„«       | j                  d«      }|dk7  r–t        | j                  «      }t        j                  |«      |d<   t        j                  || j                  | j                  d¬«      }|dkD  r|| fn| |f}t        j                  |d¬«      } |t        j                  |«      z  }| j                  ‰«      j                  d‰«      } t        j                   || j                  t        j"                  ¬	«      }	t        j                   |||z   | j                  t        j"                  ¬	«      }
|	|
j                  d«      k(  }t%        t'        | j                  «      «      D �cg c]  }|‰‰fv r|nd‘Œ }}|j)                  |«      }t        j*                  || «      j-                  «       S c c}w )
z6
    Reference implementation of torch.diag_embed
    rK  )r   r]  c                  ó   •— d‰ › d‰› �S r  rH  r  s   €€r2  rJ  zdiag_embed.<locals>.<lambda>
  r  r4  rP  r   F©r©  r1  r¡  ©rß  ©r1  r©  )r  re  r¦  rÀ  rÇ  r!  r$  rO  r"  r/   r#  r©  r1  rÑ   r   rè   r  r)  rV  rN  rð   Úmask_tensorrÖ   )rø   rd  r–  rû  r   r—  Út_shapeÚzÚpairÚa_rangeÚb_rangeÚcondr  Ú
cond_shapes     ``          r2  r×   r×   ó  sÆ  ù€ ð �6‰6�A‰:€DÜ×!Ñ! t°Ô6€DÜ×!Ñ! t°Ô6€Dð ˆd‚{Ø˜4ˆ
ˆˆdØ�ˆä	‡L�LØ�‰ÔWôð
 �v‰v�b‹z€Hà�‚{ä�q—w‘w“-ˆÜ—l‘l 6Ó*ˆ�‰Ü�K‰K˜ q§w¡w°q·x±xÈuÔUˆØ !š��1‰v¨!¨Q¨ˆÜ�I‰I�d Ô#ˆà”H—L‘L Ó(Ñ(ˆð 	
�‰�DÓ×!Ñ! " dÓ+€Aô �l‰l˜8¨A¯H©H¼E¿K¹KÔH€GÜ�l‰lØ�˜6Ñ!¨!¯(©(¼%¿+¹+ô€Gð
 �g×'Ñ'¨Ó+Ñ+€DÜ@EÄcÈ!Ï'É'ÃlÓ@SÖT¸1˜a D¨$ <Ñ/‘(°QÑ6ÐT€JÐTØ�<‰<˜
Ó#€Dô ×Ñ˜T 1Ó%×0Ñ0Ó2Ð2ùò Us   ÇHc                 óÒ  ‡‡
‡— | D �cg c])  }|j                  «       dk  r|j                  dd«      n|‘Œ+ }}t        j                  d„ |D «       «      }|d   j                  Š
g }d}t        |«      D ]Ø  \  ŠŠt        j                  ‰j                  «       dk(  ˆˆfd„«       t        j                  ‰j                  ‰
k(  ˆ
ˆˆfd„«       ‰j                  \  }}t        j                  ||f‰
‰j                  ¬«      }t        j                  |||z
  |z
  f‰
‰j                  ¬«      }	|t        j                  |‰|	fd¬	«      gz  }||z  }ŒÚ t        j                  |d¬	«      S c c}w )
z6
    Reference implementation of torch.block_diag
    rK  rP  c              3   ó:   K  — | ]  }|j                   d    –— Œ y­wr3  r  )rD  r¨  s     r2  rF  z'_block_diag_iterable.<locals>.<genexpr>7  s   è ø€ ÒB¨V˜Ÿ™ a�ÑBùs   ‚r   r  c                  ó2   •— d‰ › d‰j                  «       › d�S )Nz5Input tensors must have 2 or fewer dimensions. Input z has r  r
  )r  r¨  s   €€r2  rJ  z&_block_diag_iterable.<locals>.<lambda>@  s"   ø€ ð Ø�C�u˜VŸZ™Z›\˜N¨+ð7€ r4  c                  ó0   •— d‰ › d‰› d‰j                   › d�S )NzCInput tensors must all be on the same device. Input 0 is on device z and input z is on device rQ  r0  )r1  r  r¨  s   €€€r2  rJ  z&_block_diag_iterable.<locals>.<lambda>E  s(   ø€ ð $Ø$* 8¨;°q°c¸ÈÏÉÀÐVWðY€ r4  r  r
  )rß  r  r"  r¿   r1  rU  rÀ  rÇ  rO  r#  r©  rÑ   )r�  r¨  Ú
tensors_2dÚncolsrí  Ú	col_startÚrowÚcolrI  Úrightr1  r  s    `        @@r2  Ú_block_diag_iterabler  -  sY  ú€ ð KRöØ@F˜fŸj™j›l¨aÒ/ˆ�‰�A�rÔ°VÑ;ð€Jð ô �L‰LÑB°zÔBÓB€EØ˜‰]×!Ñ!€Fà€Fà€IÜ˜zÓ*ò ‰	ˆˆ6Ü�‰Ø�J‰J‹L˜AÑô7ô	
ô
 	�‰Ø�M‰M˜VÑ#õYô	
ð
 —<‘<‰ˆˆSÜ�{‰{˜C Ð+°FÀ&Ç,Á,ÔOˆÜ—‘Ø�%˜)Ñ# cÑ)Ð*°6ÀÇÁô
ˆð 	”5—9‘9˜d F¨EÐ2¸Ô:Ð;Ñ;ˆØ�SÑ‰	ð#ô& �9‰9�V Ô#Ð#ùò;s   ˆ.E$c                  ó   — t        | «      S )z¶
    This is used as an input to PythonRefInfo. `torch.block_diag`
    expects arguments splatted, but `aten.block_diag` expects only
    one argument that is a list of Tensors.
    )r  r�  s    r2  rÍ   rÍ   S  s   € ô   Ó(Ð(r4  rß  c                 ó  — | j                   dk  rt        d| j                   › d�«      ‚t        |t        «      r<|dk(  s| j                  d   |z  dk7  r"t        dd| j                  d   › d|› d	�z   «      ‚t        | |d«      S )
Nr†  zPtorch.dsplit requires a tensor with at least 3 dimension, but got a tensor with ré  r   r  z3torch.dsplit attempted to split along dimension 2, zbut the size of the dimension rí  rd  )r  rX  r8  r   rO  rü   )ru  rß  s     r2  rÜ   rÜ   ]  s›   € Ø‡v�v�‚zÜØ^Ð_`×_eÑ_eÐ^fÐfrÐsó
ð 	
ô �(œGÔ$¨(°aª-¸1¿7¹7À1¹:ÈÑ;PÐTUÒ;UÜØAØ.¨q¯w©w°q©z¨lÐ:^Ð_gÐ^hÐhiÐjñkó
ð 	
ô ˜˜8 QÓ'Ð'r4  c                 óª   — | j                   dkD  rt        d| j                   › d�«      ‚t        j                  | d| j                   dk  rd«      S d«      S )Nr  z7t() expects a tensor with <= 2 dimensions, but self is rú  r   rK  )r  rX  rÀ  rý   rt  s    r2  rø   rø   j  sS   € ð 	‡v�v�‚zÜØEÀaÇfÁfÀXÈQÐOó
ð 	
ô �?‰?˜1˜a a§f¡f¨q¢j Ó8Ð8°aÓ8Ð8r4  c                 óh   — t        j                  | j                  dv d„ «       | j                  «       S )N)r   r  c                   ó   — 	 y)NzcThe use of `x.T` on tensors of dimension other than 0 or 2 to reverse their shape is not supported.rH  rH  r4  r2  rJ  zT.<locals>.<lambda>�  s   € ð7ð r4  )rÀ  rÇ  r  rø   rt  s    r2  rú   rú   }  s,   € ä	‡L�LØ	�‰�&Ðñ	
ôð �3‰3‹5€Lr4  c                 ó,   — t        j                  | «      S rA  )rš  r8  rt  s    r2  rÅ   rÅ   ‰  r¯  r4  r•  c                 ó0  — t        j                  | j                  ||f«      \  }}| j                  dk  s||k(  rt        j                  j                  | «      S t        t        d| j                  «      «      }|||<   |||<   t        j                  | |«      S )NrK  r   )
re  rÜ  r  r“  rÅ   Údefaultr$  rV  rÀ  rí   )ru  r•  r–  Ú_dim0Ú_dim1r  s         r2  rý   rý   Ž  s€   € ä×*Ñ*¨1¯6©6°D¸$°<Ó@�L€Eˆ5à‡v�v�‚{�d˜d’lÜ�z‰z×!Ñ! !Ó$Ð$äœ˜a §¡Ó(Ó)€LØ€L�ÑØ€L�ÑÜ�=‰=˜˜LÓ)Ð)r4  c                 óz   — t        | j                  | j                  «       |||«      \  }}| j                  ||«      S rA  )rt  rO  r  rÊ   )rè  r8  r!  r9  rO  rs  s         r2  rþ   rþ   Ÿ  s:   € ô .Ø�
‰
�D—K‘K“M 9¨d°Dó�N€Eˆ7ð �?‰?˜5 'Ó*Ð*r4  c                 ód   — | j                  |||«      j                  t        j                  ¬«      S rÛ  )rþ   r°   rÀ  r  )rè  r8  r!  r9  s       r2  rÿ   rÿ   ©  s2   € ð �;‰;�y $¨Ó-×3Ñ3Ü×-Ñ-ð 4ó ð r4  c                óÆ  — |j                   }t        j                  ||«      }|dk(  r | |j                  d«      d||¬«      S |j                  |dz   «      }t	        j
                  |j                  |   |j                  ¬«      }|j                  d«      |k  }t        ||z
  dz
  «      D ]  }	|j                  d«      }Œ t	        j                  |||«      }
 | |
|||¬«      S )Nr   )rß  r©  r�  rK  r0  rP  )
r  re  r¦  r   rÀ  r  rO  r1  rV  r¯   )ÚfuncÚinitru  rß  r©  r�  r  Úrgri  r�  Úmasked_as              r2  Ú_cumsumprod_commonr0  ±  sÌ   € ð �6‰6€DÜ
×
 Ñ
   sÓ
+€CØˆq‚yÙ�A—K‘K “N¨°¸CÔ@Ð@Ø	�‰�C˜!‘GÓ€AÜ	�‰�a—g‘g˜c‘l¨1¯8©8Ô	4€BØ�<‰<˜‹?˜bÑ €DÜ�4˜#‘: ‘>Ó"ò "ˆØ�~‰~˜bÓ!‰ð"ä�{‰{˜4  DÓ)€HÙ�˜c¨°CÔ8Ð8r4  c                ó,   — t        t        d| |||¬«      S )Nr   ©r,  r-  ru  rß  r©  r�  )r0  r¿   ©ru  rß  r©  r�  s       r2  r¸   r¸   É  s   € ô ¤3¨Q°!¸ÀEÈsÔSÐSr4  c                ó,   — t        t        d| |||¬«      S )NrK  r2  )r0  rÁ   r3  s       r2  r¹   r¹   Ô  s   € ô ¤4¨a°1¸#ÀUÐPSÔTÐTr4  c                 ó~   — | j                   dz   }t        j                  ||«      }t        j                  | |f|¬«      S )NrK  rf  )r  re  r¦  rš  Úexpand_dims)ru  rß  r  s      r2  r   r   à  s:   € ð �6‰6�A‰:€DÜ
×
 Ñ
   sÓ
+€CÜ×Ñ˜Q  ¨TÔ2Ð2r4  c                 ó    — t        | g|¢­ddiŽS )Nr�  Fr›  r1  s     r2  r  r  í  s   € ä Ð< EÒ<°eÑ<Ð<r4  c                 ó@   — | j                  |j                  «       «      S rA  )r  r!  r�  s     r2  r  r  ó  s   € Ø�9‰9�U—Z‘Z“\Ó"Ð"r4  c                 ó   — t        | d«      S )N)rP  )rð   rt  s    r2  rî   rî   ø  s   € Ü�1�eÓÐr4  ræ  c                 óÔ  ‡ ‡— t        j                  ‰ j                  ‰j                  k(  ˆ ˆfd„«       t        j                  t        j                  ‰j
                  «      ˆfd„«       |€5t        j                  ‰ j                  d«      d‰j                  d«      «      S t        ‰ j                  «      }‰j                  |«      ||<   t        j                  |‰j                  «       «      }t        ‰|«      }t        ‰j                  «      }‰ j                  |«      ||<   t        j                  |‰ j                  «       «      }t        ‰ |«      }t        j                  |||«      S )Nc                  ó>   •— d‰ j                   › d‰j                   › d�S )Nz]torch.take_along_dim(): input and indices should have the same number of dimensions, but got z dimensions for input, and z dimensions for indicesrf  )ru  ræ  s   €€r2  rJ  z take_along_dim.<locals>.<lambda>  s*   ø€ ð-Ø-.¯V©V¨HÐ4OØ�|‰|ˆnÐ3ð5ð r4  c                  ó$   •— d‰ j                   › d�S )Nz?torch.take_along_dim(): dtype of indices should be int but got rP  rÉ  )ræ  s   €r2  rJ  z take_along_dim.<locals>.<lambda>  s   ø€ ØMØ�}‰}ˆo˜Xð'ð r4  rP  r   )rÀ  rÇ  r  re  rô  r©  Úgatherr  r$  rO  r!  Úinfer_size_shapesrÐ   )ru  ræ  rß  Ú
self_sizesÚbroadcast_shapeÚindices_broadcastÚindices_sizesÚself_broadcasts   ``      r2  rû   rû   þ  s  ù€ ô 
‡L�LØ	�‰�'—,‘,Ñô	
ôô 
‡L�LÜ×Ñ˜wŸ}™}Ó-ó	
ôð €{Ü�|‰|˜AŸF™F 2›J¨¨7¯<©<¸Ó+;Ó<Ð<ä˜!Ÿ'™'“]ˆ
Ø!Ÿ,™, sÓ+ˆ
�3‰Ü×1Ñ1°*¸g¿l¹l»nÓMˆÜ(¨°/ÓBÐä˜WŸ]™]Ó+ˆØŸV™V C›[ˆ�cÑÜ×1Ñ1°-ÀÇÁÃÓJˆÜ% a¨Ó9ˆä�|‰|˜N¨CÐ1BÓCÐCr4  ©r©  rá  r1  r¡  râ  rÙ  r¡  c           	      óØ  ‡— t        j                  ‰t         j                  k7  d„ «       t        j                  |«      }‰t         j
                  k(  rt        j                  |«      }nh‰t         j                  k(  rt        j                  |«      }n?t        j                  ‰t         j                  k(  ˆfd„«       t        j                  |«      }t        j                  ||| ||||¬«      S )Nc                   ó   — y)Nz8torch.empty: the Preserve memory format is not supportedrH  rH  r4  r2  rJ  zempty.<locals>.<lambda>/  rÆ  r4  c                  ó   •— d‰ › d�S )Nz/torch.empty: received an unknown memory format rd  rH  rØ  s   €r2  rJ  zempty.<locals>.<lambda>;  s   ø€ ÐEÀmÀ_ÐTUÐV€ r4  ©r©  rá  r1  râ  r¡  )rÀ  rÇ  rå  re  r5  r  r}  Úchannels_last_3dÚ!make_channels_last_3d_strides_forÚchannels_lastÚ!make_channels_last_2d_strides_forr  )r©  rá  r1  r¡  râ  rÙ  rO  rs  s        `  r2  r  r  #  sÇ   ø€ ô 
‡L�LØœ×.Ñ.Ñ.ÙJôô
 ×,Ñ,¨UÓ3€Eàœ×/Ñ/Ò/Ü×3Ñ3°EÓ:‰Ø	œ%×0Ñ0Ò	0Ü×9Ñ9¸%Ó@‰ä�‰ØœU×0Ñ0Ñ0ÛVô	
ô ×9Ñ9¸%Ó@ˆä×ÑØØØØØØØ#ôð r4  c                 ó6   — t        j                  | ||||¬«      S )Nr	  )rš  r  )rO  Úphysical_layoutr©  rá  r1  r¡  râ  s          r2  r  r  J  s&   € ô ×ÑØØØØØ#ôð r4  ©r©  rá  r1  râ  c                ó–   — |€| j                   n|}|€| j                  n|}|€| j                  n|}t        j                  |||||¬«      S )N©r©  r1  râ  rá  )r©  rá  r1  rÀ  r  )ru  r!  r©  rá  r1  râ  s         r2  r  r  ]  sQ   € ð �}ˆA�GŠG¨%€EØ˜ˆQ�XŠX¨V€FØ˜ˆQ�XŠX¨V€Fä�;‰;ØØØØØôð r4  c                ó˜   — |€| j                   n|}|€| j                  n|}|€| j                  n|}t        j                  ||||||¬«      S )zD
    Reference implementation of torch.Tensor.new_empty_strided
    rQ  )r©  rá  r1  rÀ  r  )ru  r!  r  r©  rá  r1  râ  s          r2  r  r  u  sV   € ð  �}ˆA�GŠG¨%€EØ˜ˆQ�XŠX¨V€FØ˜ˆQ�XŠX¨V€Fä×ÑØØØØØØôð r4  rH  c           	      óº   — t        j                  |«      }| €t        j                  «       } t        j                  || t        j
                  k(  rdnd| ||||¬«      S ©NFr   rH  ©re  r5  rÀ  rŽ  r  rË  ©r©  rá  r1  râ  r¡  r!  s         r2  r#  r#  “  sZ   € ô ×+Ñ+¨DÓ1€Dà€}Ü×'Ñ'Ó)ˆä�:‰:ØØœ%Ÿ*™*Ò$‰¨!ØØØØØ#ôð r4  c          	      óà   — |€| j                   n|}|€| j                  n|}|€| j                  n|}t        j                  ||xs | j                   t        j
                  k(  rdnd|||||¬«      S rT  ©r©  rá  r1  rÀ  r  rË  ©ru  r!  r©  rá  r1  râ  r¡  s          r2  r  r  ­  sm   € ð �}ˆA�GŠG¨%€EØ˜ˆQ�XŠX¨V€FØ˜ˆQ�XŠX¨V€Fä�:‰:ØØÒ"˜1Ÿ7™7¤u§z¡zÒ1‰°qØØØØØ#ôð r4  c           	      óº   — t        j                  |«      }| €t        j                  «       } t        j                  || t        j
                  k(  rdnd| ||||¬«      S ©NTrK  rH  rU  rV  s         r2  r  r  È  sZ   € ô ×+Ñ+¨DÓ1€Dà€}Ü×'Ñ'Ó)ˆä�:‰:ØØœŸ™Ò#‰¨ØØØØØ#ôð r4  c          	      óà   — |€| j                   n|}|€| j                  n|}|€| j                  n|}t        j                  ||xs | j                   t        j
                  k(  rdnd|||||¬«      S r[  rX  rY  s          r2  r  r  â  sm   € ð �}ˆA�GŠG¨%€EØ˜ˆQ�XŠX¨V€FØ˜ˆQ�XŠX¨V€Fä�:‰:ØØÒ!˜!Ÿ'™'¤e§j¡jÒ0‰°aØØØØØ#ôð r4  Ú
fill_valuec                ó˜   — |€| j                   n|}|€| j                  n|}|€| j                  n|}t        j                  ||||||¬«      S )NrO  )r©  rá  r1  rÀ  r  )ru  r!  r]  r©  rá  r1  râ  s          r2  r  r  ý  sT   € ð �}ˆA�GŠG¨%€EØ˜ˆQ�XŠX¨V€FØ˜ˆQ�XŠX¨V€Fä�:‰:ØØØØØØôð r4  )r©  r1  rá  râ  r¡  rÙ  c          	      óJ  — |€| j                   n|}|€| j                  n|}|€| j                  n|}|t        j                  k7  r&t        j
                  | j                  ||||||¬«      S t        j                  | «      }t        j                  | j                  ||||||¬«      S )NrD  rH  )
r©  rá  r1  rÀ  rå  r  rO  re  Ú3compute_elementwise_output_logical_to_physical_permr  )ru  r©  r1  rá  râ  r¡  rÙ  Úlogical_to_physical_perms           r2  r  r    s¬   € ð �}ˆA�GŠG¨%€EØ˜ˆQ�XŠX¨V€FØ˜ˆQ�XŠX¨V€Fàœ×-Ñ-Ò-Ü�{‰{Ø�G‰GØØØØ'Ø!Ø'ô
ð 	
ô 	×AÑAÀ!ÓDð ô ×ÑØ	�‰Ø ØØØØØ#ôð r4  rh  c                ór  ‡ ‡‡— t        j                  |«       t        j                  |«       t        j                  t        j
                  |«      «      }t        ‰ t        «      rJ ‚t        ‰t        «      rJ ‚t        ‰t        «      rJ ‚‰€‰ ŠdŠ t        j                  ‰dk7  d„ «       ‰dkD  rt        j                  ‰‰ k\  d„ «       n‰dk  rt        j                  ‰‰ k  d„ «       d„ }t        j                   |‰ «      xr  |‰«      ˆˆ fd„«       t        j                   |‰«      ˆfd„«       ‰ ‰‰f}	t        j                  d„ |	D «       «      }
|€&|
rt        j                  nt        j                  «       }t        j                  |«      }|s|
r!t        ‰ «      }t        ‰«      }t        ‰«      }|t        j                  k(  s|
r,t        dkD  «      t        |dk  «      z
  }z
  |z   |z
  |z  }nt!        j"                  ‰‰ z
  ‰z  «      }|rt%        j&                  ||||¬	«      S t%        j&                  |dd
t        j                  |d¬	«      }|
rt        j(                  nt        j*                  ||«      }t-        ||«      }‰ ‰|z  z   }t-        ||«      }|r|j/                  d«       |S )Nr   c                   ó   — y)Nzstep must be nonzerorH  rH  r4  r2  rJ  zarange.<locals>.<lambda>[  rÆ  r4  c                   ó   — y©Nz7upper bound and lower bound inconsistent with step signrH  rH  r4  r2  rJ  zarange.<locals>.<lambda>_  rÆ  r4  c                   ó   — yre  rH  rH  r4  r2  rJ  zarange.<locals>.<lambda>d  rÆ  r4  c                 óR   — t        | t        «       xs t        j                  | «      S rA  )r8  r   r  rP   rI  s    r2  Ú	is_finitezarange.<locals>.is_finiteg  s!   € Ü˜aÔ!5Ó6Ð6ÒJ¼$¿-¹-ÈÓ:JÐJr4  c                  ó   •— d‰› d‰ › �S )Nzunsupported range: z -> rH  )rh  r’  s   €€r2  rJ  zarange.<locals>.<lambda>l  s   ø€ Ð% e W¨D°°Ð6€ r4  c                  ó   •— d‰ › �S )Nzstep must be finite but got rH  rp  s   €r2  rJ  zarange.<locals>.<lambda>p  s   ø€ Ð.¨t¨fÐ5€ r4  c              3   ó<   K  — | ]  }t        |t        «      –— Œ y ­wrA  rB  ©rD  rt  s     r2  rF  zarange.<locals>.<genexpr>t  s   è ø€ ÒI¸S¤
¨3´× 8ÑIùó   ‚)r’  r9  r©  r1  r¡  rK  FT)re  Úcheck_layoutÚcheck_pin_memoryrÀ  r1  Údevice_or_defaultr8  r›  rÇ  r"  r´   r)  rŽ  rô  r   rË  r  r7   rš  ÚiotarÜ  Úget_acc_typer)   Úrequires_grad_)r’  rh  r9  r©  rá  r1  râ  r¡  rh  rk  Úinteger_argsÚ
is_integerÚxstartÚxendÚxstepri   rÐ  r÷  rå  rí  s   ```                 r2  r  r  B  sz  ú€ ô 
×Ñ�vÔÜ	×Ñ˜:Ô&Ü�\‰\œ%×1Ñ1°&Ó9Ó:€Fä˜%¤Ô)Ð)Ð)Ü˜#œwÔ'Ð'Ð'Ü˜$¤Ô(Ð(Ð(ð €{ØˆØˆÜ	‡L�L�˜‘Ñ:Ô;Øˆa‚xÜ�‰Ø�5‰LÙMõ	
ð 
�ŠÜ�‰Ø�5‰LÙMô	
ò
Kô 
‡L�LÙ�%ÓÒ+™Y s›^Ü6ôô 
‡L�LÙ�$‹Û5ôð
 �3˜Ð€DÜ—<‘<ÑIÀDÔIÓI€Là€}Ù+”—’´×1HÑ1HÓ1Jˆä×'Ñ'¨Ó.€JÙ‘\Ü˜“ˆÜ�s‹|ˆÜ˜“ˆð ”—‘Ò™|ä�5˜1‘9‹o¤ U¨Q¡Y£Ñ/ˆØ˜‘- %Ñ'¨#Ñ-°%Ñ7‰ä—‘˜C %™K¨4Ñ/Ó0ˆáÜ�z‰zØØØØØØ'ô
ð 	
ô �J‰JØØØÜ�k‰kØØô€Eñ #Œ�
Š
¬×(:Ñ(:¸5À&Ó(Ið ô $ EÐ+<Ó=€EØ�T˜E‘\Ñ!€FÜ$ V¨UÓ3€FáØ×Ñ˜dÔ#Ø€Mr4  )r’  rh  rý  c                 óÎ  — | |g}t        |t        «      r| j                  d|«      }n|j                  |«       t        |t        «      sJ ‚|j                  «       dk\  }t        j                  ||dz
  |«      }t        j                  ||| «      }||| z
  z  |z   }t        j                  t        |Ž Ž }|j                  «       |k7  rt        j                  ||«      }t        ||«      S )NrH  rV  rK  )r8  r   r  r•  r7  r/   rÀ  r¯   re  Ú"compute_elementwise_output_stridesrl  r  rš  Úcopy_stridedr<  )	r’  rh  rý  r–  ri  ÚcoeffÚbaser;  r  s	            r2  rW   rW   §  sÓ   € ð �Sˆ\€FÜ�&œ&Ô!Ø—‘  FÓ+‰à�‰�fÔÜ�fœfÔ%Ð%Ð%ð �:‰:‹<˜3Ñ€DÜ�K‰K˜˜f q™j¨&Ó1€EÜ�;‰;�t˜S %Ó(€DØ�c˜E‘kÑ" TÑ)€Fä×5Ñ5Ô7GÈÐ7PÐQ€FØ‡}�}ƒ˜&Ò Ü×#Ñ# F¨FÓ3ˆä'¨°Ó7Ð7r4  )r©  r1  rá  râ  r¡  Ústepsc          
      ó  ‡ ‡‡‡‡— t        ‰ t        «      rBt        j                  ‰ j	                  «       dk(  d„ «       t        ‰ t        j                  «      Š t        ‰t        «      rBt        j                  ‰j	                  «       dk(  d„ «       t        ‰t        j                  «      Št        j                  d„ ‰ ‰‰fD «       «      rZt        j                  t        j                  «       «      Š‰€‰ŠnFt        j                  t        j                  ‰«      ˆˆfd„«       n‰xs t        j                  «       Št        ‰t        j                  «      sJ ‚t        j                  t        ‰t        «      ˆˆ ˆfd„«       t        ‰t        «      sJ ‚t        j                  ‰dk\  d„ «       ||||dœ}‰dk(  rt        j                   dd	‰i|¤ŽS ‰d
k(  rRt        ‰ t        «      r(t        j"                  ‰ffd	‰i|¤Žj%                  ‰ «      S t        j                   ‰f‰ fd	‰i|¤ŽS t        j&                  d‰fi |¤Ž}	t        j(                  ‰«      st        j*                  ‰«      rt        j,                  n‰}
t        j.                  |	t0        j2                  |
«      \  }}t5        t
        |¬«      }‰‰ z
  ‰d
z
  z  }t        j6                  |	‰dz  k  ‰ | ||	«      z  z   ‰| |‰d
z
  |	z
  «      z  z
  «      }t        |‰«      S )Nr   c                   ó   — y©Nz:linspace only supports 0-dimensional start and end tensorsrH  rH  r4  r2  rJ  zlinspace.<locals>.<lambda>Ö  rÆ  r4  c                   ó   — yr�  rH  rH  r4  r2  rJ  zlinspace.<locals>.<lambda>Ü  rÆ  r4  c              3   ó<   K  — | ]  }t        |t        «      –— Œ y ­wrA  ©r8  r›  rl  s     r2  rF  zlinspace.<locals>.<genexpr>à  ó   è ø€ ÒL°”J˜s¤G×,ÑLùrm  c                  ó   •— d‰ › d‰› �S )Nzlinspace(): inferred dtype z& can't be safely cast to passed dtype rH  )Údefault_complex_dtyper©  s   €€r2  rJ  zlinspace.<locals>.<lambda>é  s   ø€ Ð5Ð6KÐ5LÐLrÐsxÐryÐz€ r4  c                  óŽ   •— dt        ‰«      j                  › dt        ‰ «      j                  › dt        ‰«      j                  › d�S )Nz4received an invalid combination of arguments - got (ré  rê  )r/  r}  )rh  r’  r~  s   €€€r2  rJ  zlinspace.<locals>.<lambda>ò  sD   ø€ ð Ü€uƒ+×ÑÐ�rœ$˜s›)×,Ñ,Ð-¨R´°U³×0DÑ0DÐ/EÀQðH€ r4  c                   ó   — y)Nz$number of steps must be non-negativerH  rH  r4  r2  rJ  zlinspace.<locals>.<lambda>ö  rÆ  r4  )rá  r1  râ  r¡  r©  rK  rÉ  r  )r£  r   )r8  r&   rÀ  rÇ  rß  r)   rZ  r"  r·   re  r%  rŽ  r¨  r©  rò  r   r  r  rÎ  r  ró  rô  r)  r  r"   r*  r   r¯   )r’  rh  r~  r©  r1  rá  râ  r¡  Úfactory_kwargsr.  Ú	dtype_redrå  r�  Úcast_rgr9  r�  r‡  s   ````            @r2  r  r  Æ  s¯  ü€ ô �%œÔ(Ü�‰Ø�I‰I‹K˜1ÑÙPô	
ô (¨¬u¯}©}Ó=ˆÜ�#”~Ô&Ü�‰Ø�G‰G‹I˜‰NÙPô	
ô & c¬5¯=©=Ó9ˆä‡|�|ÑL¸ÀÀUÐ8KÔLÔLÜ %× AÑ AÜ×#Ñ#Ó%ó!
Ðð ˆ=Ø)‰Eä�L‰LÜ×&Ñ& uÓ-Üzõð
 Ò2œ×0Ñ0Ó2ˆÜ�eœUŸ[™[Ô)Ð)Ð)ô 
×ÑÜ�5œ'Ó"õ	Hôô
 �eœWÔ%Ð%Ð%Ü	‡L�L�˜!‘ÑKÔLð ØØ Ø&ñ	€Nð �‚zÜ�z‰zÑA¨ÐA°.ÑAÐAØ�‚zÜ�eœ^Ô,Ü—;‘; ˜xÑG¨uÐG¸ÑG×MÑMÈeÓTÐTä—:‘:˜u˜h¨ÑM°UÐM¸nÑMÐMô 
�‰�a˜Ñ	1 .Ñ	1€Bô
 ×"Ñ" 5Ô)¬U×-CÑ-CÀEÔ-Jô 	�Šàð ô
 !×1Ñ1Ø
Ô&×+Ñ+¨YóÑÐ�qô Ô-Ð5FÔG€Gð �%‰K˜E A™IÑ&€DÜ
�+‰+Ø
ˆU�Q‰Y‰Ø�‘w˜r“{Ñ"Ñ"Øˆd‘W˜e a™i¨2Ñ-Ó.Ñ.Ñ.ó€Cô
 # 3¨Ó.Ð.r4  r}  c          
      óV  — |€t        j                  «       }t        j                  j	                  |«      rÀt        | t        «      rt        | «      } nDt        | t        «      r4t        j                  | j                  «       dk(  d„ «       t        | |«      } t        |t        «      rt        |«      }nDt        |t        «      r4t        j                  |j                  «       dk(  d„ «       t        ||«      }t        j                  d„ | ||fD «       «      r,t        j                  t        j                  «       «      }	|	}d }
nt         j                  }
t        |t         «      rJ ‚|dk  rt"        ‚t        j$                  | |||
||||¬«      }t        t        j&                  ||«      |«      S )Nr   c                   ó   — y©Nz:logspace only supports 0-dimensional start and end tensorsrH  rH  r4  r2  rJ  zlogspace.<locals>.<lambda>7  rÆ  r4  c                   ó   — yr�  rH  rH  r4  r2  rJ  zlogspace.<locals>.<lambda>?  rÆ  r4  c              3   ó<   K  — | ]  }t        |t        «      –— Œ y ­wrA  r„  rl  s     r2  rF  zlogspace.<locals>.<genexpr>C  r…  rm  rH  )rÀ  rŽ  rš  re  rô  r8  r   r   r&   rÇ  rß  r)   r"  r·   r%  rZ  r›  rÖ  r  rŸ   )r’  rh  r~  r}  r©  r1  rá  râ  r¡  r‡  Ú_dtypeÚrets               r2  r  r    sb  € ð €}Ü×'Ñ'Ó)ˆô ‡{�{×#Ñ# EÔ*Ü�eœYÔ'Ü˜E“N‰EÜ˜œ~Ô.Ü�L‰LØ—	‘	“˜qÑ ÙTôô ,¨E°5Ó9ˆEÜ�cœ9Ô%Ü˜#“,‰CÜ˜œ^Ô,Ü�L‰LØ—‘“	˜Q‘ÙTôô *¨#¨uÓ5ˆCä‡|�|ÑL¸ÀÀUÐ8KÔLÔLÜ %× AÑ AÜ×#Ñ#Ó%ó!
Ðð &ˆØ‰ä—‘ˆä˜$¤Ô(Ð(Ð(Øˆa‚xÜ!Ð!Ü
�.‰.ØØØØØØØØ#ô	€Cô #¤5§9¡9¨T°3Ó#7¸Ó?Ð?r4  Úindexingc                  ó   — y rA  rH  )r�  r”  s     r2  rç   rç   \  ó   € àr4  c                  ó   — y rA  rH  )r”  r�  s     r2  rç   rç   a  r–  r4  c                 ó   ‡ ‡— t        |d   t        t        f«      rt        |«      dk(  sJ ‚t        |d   «      }t	        j
                  t        j                  d„ |D «       «      d„ «       t	        j
                  t        |«      dkD  d„ «       t        t        |«      dz
  «      D ]p  }t	        j
                  ||   j                  ||dz      j                  k(  d„ «       t	        j
                  ||   j                  ||dz      j                  k(  d„ «       Œr d}‰ d	k(  r!t        |«      d
k\  }|r-|d   |d   g|d
d  ¢­}nt	        j
                  ‰ dk(  ˆ fd„«       g }|D ]j  Št        ‰t        «      sJ ‚t	        j
                  ‰j                  dk(  xs ‰j                  dk(  ˆfd„«       |j                  ‰j                  «       «       Œl g }t        |«      D ]^  \  }Št        ‰t        «      sJ ‚‰j                  dk(  r‰j!                  d«      Š|j                  t#        j$                  ‰||f«      «       Œ` |r|d   |d   c|d<   |d<   |S )Nr   rK  c              3   ó<   K  — | ]  }t        |t        «      –— Œ y ­wrA  ©r8  r%   rw  s     r2  rF  zmeshgrid.<locals>.<genexpr>s  s   è ø€ Ò@°1”Z ¤:×.Ñ@ùrm  c                   ó   — y)Nz)meshgrid expects its inputs to be tensorsrH  rH  r4  r2  rJ  zmeshgrid.<locals>.<lambda>t  rÆ  r4  c                   ó   — y)Nz'meshgrid expects a non-empty TensorListrH  rH  r4  r2  rJ  zmeshgrid.<locals>.<lambda>w  rÆ  r4  c                   ó   — y)Nz3meshgrid expects all tensors to have the same dtyperH  rH  r4  r2  rJ  zmeshgrid.<locals>.<lambda>|  rÆ  r4  c                   ó   — y)Nz4meshgrid expects all tensors to have the same devicerH  rH  r4  r2  rJ  zmeshgrid.<locals>.<lambda>€  rÆ  r4  FÚxyr  Úijc                  ó   •— d‰ › �S )NzDtorch.meshgrid: indexing must be one of "xy" or "ij", but received: rH  )r”  s   €r2  rJ  zmeshgrid.<locals>.<lambda>‹  s   ø€ ð!Ø!) 
ð,ð r4  c                  ó   •— d‰ › �S )NzEtorch.meshgrid: Expected 0D or 1D tensor in the tensor list but got: rH  )rø   s   €r2  rJ  zmeshgrid.<locals>.<lambda>–  s   ø€ Ð[Ð\]Ð[^Ð_€ r4  rà  )r8  r$  rR  rN  rÀ  rÇ  r"  r´   rV  r©  r1  r%   r  r•  rê  rU  r  rš  r  )r”  r�  r  Úswap_first_and_second_tensorsÚresult_shapeÚgridsrø   s   `     @r2  rç   rç   f  s6  ù€ ô �'˜!‘*œt¤U˜mÔ,Ü�7‹|˜qÒ Ð Ð Ü˜ ™
Ó#ˆä	‡L�LÜ�‰Ñ@¸Ô@Ó@Ù;ôô
 
‡L�L”�W“ Ñ!Ñ#TÔUä”3�w“< !Ñ#Ó$ò 
ˆÜ�‰Ø�A‰J×Ñ ¨¨A©¡× 4Ñ 4Ñ4ÙIô	
ô 	�‰Ø�A‰J×Ñ ¨¨Q©¡×!6Ñ!6Ñ6ÙJõ	
ð
ð %*Ð!Ø�4ÒÜ(+¨G«¸Ñ(9Ð%Ù(Ø˜q‘z 7¨1¡:Ð<°¸¸°Ñ<‰Gä�‰Ø˜Ñóô	
ð !€LØò 'ˆÜ˜!œZÔ(Ð(Ð(Ü�‰Ø�F‰F�a‰KÒ&˜1Ÿ6™6 Q™;Û_ô	
ð 	×Ñ˜AŸG™G›IÕ&ð'ð #%€EÜ˜'Ó"ò D‰ˆˆ1Ü˜!œZÔ(Ð(Ð(Ø�6‰6�QŠ;Ø—‘�t“ˆAØ�‰”U×+Ñ+¨A¨|¸a¸TÓBÕCð	Dñ %à" 1™X u¨Q¡xÐˆˆa‰�%˜‘(à€Lr4  ÚsourceÚdestinationc                 óV  ‡‡— t        ‰«      t        u r‰fŠt        ‰«      t        u r‰fŠt        j                  t	        ‰«      t	        ‰«      k(  ˆˆfd„«       | j
                  }t        t        j                  |‰¬«      «      }t        t        j                  |‰¬«      «      }t        |«      }t        |«      }t        j                  t	        |«      t	        |«      k(  ˆfd„«       t        j                  t	        |«      t	        |«      k(  ˆfd„«       t        t        ||«      «      }g }	d}
t        |«      D ]K  }|j                  |«      }|�|	j                  |«       Œ(|
|v r
|
dz  }
|
|v rŒ
|	j                  |
«       |
dz  }
ŒM t        j                  | t        |	«      «      }|S )z3
    Reference implementation of torch.movedim
    c                  ó:   •— dt        ‰«      › dt        ‰ «      › d�S )Nz5movedim: Invalid source or destination dims: source (z> dims) should contain the same number of dims as destination (z dims)©r$  )r§  r¦  s   €€r2  rJ  zmovedim.<locals>.<lambda>º  s.   ø€ ðÜ�V“ˆ~ð 'Ü'+¨KÓ'8Ð&9¸ðAð r4  )r   ræ  c                  ó"   •— dt        ‰ «      › d�S )Nz#movedim: repeated dim in `source` (rê  rª  )r¦  s   €r2  rJ  zmovedim.<locals>.<lambda>Ë  s   ø€ Ð5´d¸6³l°^À1ÐE€ r4  c                  ó"   •— dt        ‰ «      › d�S )Nz(movedim: repeated dim in `destination` (rê  rª  )r§  s   €r2  rJ  zmovedim.<locals>.<lambda>Ï  s   ø€ Ð:¼4ÀÓ;LÐ:MÈQÐO€ r4  r   rK  )r/  rr  rÀ  rÇ  rN  r  rR  re  rÜ  ÚsetÚdictr|  rV  rý  r•  rí   )r¦  r¦  r§  r   ÚssÚdsÚsssÚdssr_  r(  ÚsiÚdir»  rí  s    ``           r2  rè   rè   ©  ss  ù€ ô ˆFƒ|”sÑØ�ˆÜˆKÓœCÑØ"�nˆô 
‡L�LÜˆF‹”s˜;Ó'Ñ'ô	
ôð �:‰:€DÜ	Œu×&Ñ&¨D¸&ÔAÓ	B€BÜ	Œu×&Ñ&¨D¸+ÔFÓ	G€Bä
ˆb‹'€CÜ
ˆb‹'€Cô 
‡L�LÜˆB‹”3�s“8ÑÛEôô 
‡L�LÜˆB‹”3�s“8ÑÛOôô
 	ŒS��R‹[Ó€AØ€DØ	
€BÜ�D‹kò ˆà�E‰E�"‹IˆØˆ=à�K‰K˜�Nð ˜‘)Ø�a‘�ð ˜’)à�K‰K˜ŒOØ�!‰G‰Bðô �]‰]˜5¤%¨£+Ó.€Fà€Mr4  )r©  r1  rá  r¡  râ  rs  c                ó  — t        j                  |«       t        j                  |«       t        j                  | «      } |€t	        j
                  «       n|}|€t	        j                  d«      n|}t        j                  | ||||¬«      S )Nr]  r	  )	re  rn  ro  r5  rÀ  rŽ  r1  rš  r  )rO  rs  r©  r1  rá  r¡  râ  s          r2  r  r  è  sz   € ô 
×Ñ�vÔÜ	×Ñ˜:Ô&ä×,Ñ,¨UÓ3€EØ).¨ŒE×#Ñ#Ô%¸E€EØ$* NŒU�\‰\˜%Ô ¸€Fä×ÑØØØØØ#ôð r4  Únr_  c                óÎ  ‡ ‡— ‰€‰ Št        j                  ‰ dk\  ˆ fd„«       t        j                  ‰dk\  ˆfd„«       t        j                  ‰ t         j                  |d¬«      }t        j                  ‰t         j                  |d¬«      }|j	                  d«      |k(  }	|t         j
                  u r|	S t        j                  d||||d¬«      }
t        j                  |	|
d«      S )	z/
    Reference implementation of torch.eye
    r   c                  ó   •— d‰ › �S )Nz%n must be greater or equal to 0, got rH  )r¶  s   €r2  rJ  zeye.<locals>.<lambda>  ó   ø€ Ð#HÈÈÐ!L€ r4  c                  ó   •— d‰ › �S )Nz%m must be greater or equal to 0, got rH  )r_  s   €r2  rJ  zeye.<locals>.<lambda>  r¹  r4  Fr	  rP  rà  rH  )rÀ  rÇ  r  r)  r   rË  r  r¯   )r¶  r_  r©  rá  r1  râ  r¡  Úrange_nÚrange_mr  Úones   ``         r2  r  r    sÀ   ù€ ð 	€yØˆä	‡L�L��a‘ÓLÔMÜ	‡L�L��a‘ÓLÔMä�l‰l˜1¤E§K¡K¸ÈeÔT€GÜ�l‰l˜1¤E§K¡K¸ÈeÔT€Gà×Ñ˜RÓ  GÑ+€DØ”—
‘
ÑØˆä�j‰jØØØØØ!Øô
ˆô �{‰{˜4  aÓ(Ð(r4  c                ó  — t        j                  |«       t        j                  |«       |�|nt        j                  t	        |«      «      }|�|nt        j                  d«      }t        | |||||¬«      }t        j                  ||«      S )Nr]  rH  )	re  rn  ro  Útype_to_dtyper/  rÀ  r1  r  rE   )rO  r]  r©  rá  r1  râ  r¡  Úes           r2  r  r  /  s€   € ô 
×Ñ�vÔÜ	×Ñ˜:Ô&àÐ&‰E¬E×,?Ñ,?ÄÀZÓ@PÓ,Q€EØÐ)‰V¬u¯|©|¸EÓ/B€FäØØØØØØ#ô	€Aô �:‰:�a˜Ó$Ð$r4  ©r©  rá  r1  râ  r¡  rÙ  c          	      óR   — t        j                  | ||||||¬«      }t        ||«      S )NrÁ  )rÀ  r  rE   )	ru  r]  r©  rá  r1  râ  r¡  rÙ  rÀ  s	            r2  r  r  L  s8   € ô 	×ÑØ	ØØØØØ#Ø#ô	€Aô ��:ÓÐr4  c          
      ó‚   — t        j                  | |xs | j                  t         j                  k(  rdnd||||||¬«      S )NFr   rÁ  ©rÀ  r  r©  rË  ©ru  r©  rá  r1  râ  r¡  rÙ  s          r2  r$  r$  c  sC   € ô �?‰?Ø	ØÒ"˜1Ÿ7™7¤u§z¡zÒ1‰°qØØØØØ#Ø#ô	ð 	r4  c          
      ó‚   — t        j                  | |xs | j                  t         j                  k(  rdnd||||||¬«      S )NTrK  rÁ  rÄ  rÅ  s          r2  r  r  {  sC   € ô �?‰?Ø	ØÒ!˜!Ÿ'™'¤e§j¡jÒ0‰°aØØØØØ#Ø#ô	ð 	r4  c                 óà   — t        j                  |«       t        j                  |«      }t        j                  | «      } t        j                  |«      }t        j                  |dd| ||¬«      S )Nrò  rU  )rº   r½   r©  r1  r¡  )re  ro  r5  Údtype_or_defaultrp  rš  ra   )r©  r1  rá  r¡  râ  rO  rÊ  s          r2  r   r   “  se   € ô 
×Ñ˜:Ô&ä×-Ñ-¨eÓ4€Fä×"Ñ" 5Ó)€EÜ×$Ñ$ VÓ,€Fä�<‰<ØØØØØØ#ôð r4  c                óü   — t        j                  |«       t        j                  |«       |�|nt        j                  t	        | «      «      }|�|nt        j                  d«      }t        j                  | ||¬«      S )Nr]  rL  )	re  rn  ro  r¿  r/  rÀ  r1  rš  r!  )ru  r©  rá  r1  râ  s        r2  r!  r!  ®  se   € ô 
×Ñ�vÔÜ	×Ñ˜:Ô&ØÐ&‰E¬E×,?Ñ,?ÄÀQÃÓ,H€EØÐ)‰V¬u¯|©|¸EÓ/B€FÜ×Ñ˜q¨°fÔ=Ð=r4  ÚlowÚhighc                ó6  — t        j                  | «       t        |t        «      sJ ‚t        |t        «      sJ ‚t	        |«      }t	        |«      }t        |t
        j                  «      sJ ‚t        j                  |«      }t        j                  | ||||¬«      S )N)rÊ  rË  r©  r1  )
re  rÉ  r8  r   r   rÀ  r©  Úcanonicalize_devicerš  Ú_uniform_helper)rO  rÊ  rË  r©  r1  s        r2  rÎ  rÎ  Â  s‚   € ô 
×Ñ˜Ôä�cœ6Ô"Ð"Ð"Ü�dœFÔ#Ð#Ð#Ü
�C‹.€CÜ�T‹?€Dä�eœUŸ[™[Ô)Ð)Ð)Ü×&Ñ& vÓ.€Fä× Ñ  ¨C°dÀ%ÐPVÔWÐWr4  ri  c                 óø  ‡‡— t        j                  | j                  «      Št        |t        «      rt        |«      }nÌ|j                  Št        j                  ‰dk(  ˆfd„«       | j                  j
                  ddt        j                  j                  «       dfv xr |j                  j
                  dk(  }t        j                  |xs |j                  | j                  k(  d„ «       t        j                  |j                  «      }|t        u r-t        j                  t        j                  |‰«      ˆfd„«       t        || j                  «      }t        j                  ||| «      }|j!                  «       S )	Nr   c                  ó   •— d‰ › d�S )Nz@only supports a 0-dimensional value tensor, but got tensor with z
 dimensionrH  )Ú
value_ndims   €r2  rJ  zmasked_fill.<locals>.<lambda>ã  s   ø€ ÐVÐWaÐVbÐblÐm€ r4  ÚcudaÚxpur-  r]  c                   ó   — y)Nz,Expected `value` to be on same device as `a`rH  rH  r4  r2  rJ  zmasked_fill.<locals>.<lambda>í  rÆ  r4  c                  ó   •— d‰ › d�S )Nzcould not convert to type z without overflowrH  )r»  s   €r2  rJ  zmasked_fill.<locals>.<lambda>ø  s   ø€ Ð0°°Ð=NÐO€ r4  )re  r   r©  r8  r   r/  r  rÀ  rÇ  r1  Ú_CÚ_get_privateuse1_backend_namer›  r   r)   r¯   rÖ   )ru  ri  r·  Ú
value_typeÚis_cpu_scalarr¾  r»  rÑ  s         @@r2  r­   r­   ×  s,  ù€ ô ×%Ñ% a§g¡gÓ.€KÜ�%œÔ Ü˜%“[‰
ð —Z‘Zˆ
Ü�‰Ø˜!‰OÛmô	
ð �H‰H�M‰MØ˜œuŸx™x×EÑEÓGÈÐOðPò +à—‘×!Ñ! UÑ*ð 	ô
 	�‰ØÒ5˜UŸ\™\¨Q¯X©XÑ5ÙBô	
ô ×(Ñ(¨¯©Ó5ˆ
à”WÑô
 	�‰Ü×'Ñ'¨
°KÓ@ÛOô	
ô $ E¨1¯7©7Ó3€EÜ�‰�D˜% Ó#€Að �<‰<‹>Ðr4  c                 óV   — t        j                  | ||«      }| j                  |«       | S rA  )rÀ  r­   rÎ  )ru  ri  r·  r,  s       r2  r®   r®     s(   € ô 	×Ñ˜!˜T 5Ó)€AØ‡G�GˆA„JØ€Hr4  c                 óª   — t        d| |||¬«       t        t        j                  t        j                  | ||||¬«      «      j                  «       «      S )z4
    Reference implementation of torch.allclose
    ztorch.allcloser‰  )r�  r‚  r‹  )rŠ  rË  rÀ  r´   r�   r²   )ru  r,  r�  r‚  r‹  s        r2  r%  r%    sH   € ô Ð+¨q°A¸DÀtÕLäÜ�	‰	”%—-‘-  1¨4°dÀiÔPÓQ×VÑVÓXóð r4  c                 óT  — t        j                  | |d¬«       t        j                  | |«       | j                  |j                  k7  ryt	        | j
                  |j
                  «      D ]  \  }}||k7  sŒ y | j                  «       dk(  ryt        t        t        | |«      «      «      S )NFrÓ  r   T)
re  r×  Úcheck_same_dtyper  r|  rO  rê  r²   r´   r�   )ru  r,  rE  rf  s       r2  r&  r&     sŒ   € Ü	×Ñ˜A˜q¸5ÕAÜ	×Ñ˜1˜aÔ ð 	‡v�v�—‘ÒØä�A—G‘G˜QŸW™WÓ%ò ‰ˆˆ1Ø�‹6Ùðð
 	‡w�wƒy�A‚~Øä””B�q˜!“H“ÓÐr4  )Úexact_dtyperÉ  c                ój  — |dk(  r |� t        |t        «      st        |«      dk  s|€d}t        |t        «      r|g}t        |t        «      rD|€t	        t        | j                  «      «      }t        j                  j                  | ||||¬«      S t        j                  j                  | ||||¬«      S )NÚfror  rÉ  )r8  r   rN  rh  rR  rV  r  rÀ  r  Úmatrix_normr  )r¦  r·  rß  râ  r©  s        r2  r`   r`   3  s¡   € ð 	
ˆUŠ
˜˜¤z°#´sÔ';¼sÀ3»xÈ1º}Ø	
ˆØˆÜ�#”sÔØˆeˆÜ�!”SÔð ˆ;Üœ˜eŸj™jÓ)Ó*ˆCÜ�|‰|×'Ñ'¨¨q°#°wÀeÐ'ÓLÐLä�|‰|×'Ñ'¨¨q°#°wÀeÐ'ÓLÐLr4  c                 óœ   — t        j                  | j                  dk(  d„ «       t        j                  t        j                  | d«      «      S )Nr  c                   ó   — y)Nz6expected a matrix, but got tensor with dim {self.ndim}rH  rH  r4  r2  rJ  ztrace.<locals>.<lambda>R  rÆ  r4  r   )rÀ  rÇ  r  r¿   rØ   rç  s    r2  rt   rt   N  s:   € ô 
‡L�LØ�	‰	�Q‰ÑXôô �9‰9”U—Z‘Z  aÓ(Ó)Ð)r4  c                 ól   ‡ — dt         t        t        f   dt         t        t        f   dt        fˆ fd„}|S )Nru  r,  rp  c                 ó   •—  ‰|| «      S rA  rH  )ru  r,  Úbase_ops     €r2  Úropz_make_r_binary_op.<locals>.ropX  s   ø€ ñ �q˜!‹}Ðr4  )r   r&   r    )ræ  rç  s   ` r2  Ú_make_r_binary_oprè  W  s=   ø€ ðÜ”¤Ð+Ñ,ðä”¤Ð+Ñ,ðô 
õð €Jr4  rÙ   c                 ó~  — t        j                  | j                  dk\  d„ «       | j                  dd  \  }}t        j                  || j
                  ¬«      j                  d«      t        j                  || j
                  ¬«      j                  d«      z
  |k\  }t        j                  || «      j                  «       S )Nr  c                   ó   — y)Nz2triu: input tensor must have at least 2 dimensionsrH  rH  r4  r2  rJ  ztriu.<locals>.<lambda>j  rÆ  r4  rO  r0  rP  ©
rÀ  rÇ  r  rO  r  r1  r   re  r  rÖ   ©ru  rÙ   ÚhÚwri  s        r2  r
  r
  f  óš   € ô 
‡L�LØ	�‰�!‰ÑQôð �7‰7�2�3ˆ<�D€A€qä�‰�Q˜qŸx™xÔ(×2Ñ2°2Ó6Ü
�,‰,�q §¡Ô
*×
4Ñ
4°RÓ
8ñ	9à	ñ€Dô ×Ñ˜T 1Ó%×0Ñ0Ó2Ð2r4  c                 ó~  — t        j                  | j                  dk\  d„ «       | j                  dd  \  }}t        j                  || j
                  ¬«      j                  d«      t        j                  || j
                  ¬«      j                  d«      z
  |k  }t        j                  || «      j                  «       S )Nr  c                   ó   — y)Nz2tril: input tensor must have at least 2 dimensionsrH  rH  r4  r2  rJ  ztril.<locals>.<lambda>{  rÆ  r4  rO  r0  rP  rë  rì  s        r2  r  r  w  rï  r4  r  r  c                 ó  — | dk(  s|dk(  ry|dkD  rt        |d|z   «      nt        | |z   dkD  «      }t        dt        || |z   «      «      }t        dt        | | |z   «      «      }||z
  dz   }||z   |z  dz  }||z
  }t        d||z  «      }	||	|fS )Nr   ©r   r   r   rK  r  )rö  rr  rT  )
r  r  rd  Úm_first_rowÚ
m_last_rowÚ	n_row_allÚn_row_trapezoidÚtrapezoid_sizeÚdiff_rowÚrectangle_sizes
             r2  Ú_get_tril_sizesrû  �  s²   € Ø
ˆa‚x�3˜!’8Øà*0°1ª*”#�c˜1˜v™:Ô&¼#¸cÀF¹lÈQÑ>NÓ:O€KÜ�Qœ˜C  v¡Ó.Ó/€JÜ�A”s˜3  f¡Ó-Ó.€IØ  ;Ñ.°Ñ2€Oð " JÑ.°/ÑAÀQÑF€Nà˜?Ñ*€HÜ˜˜H s™NÓ+€Nà˜>¨;Ð6Ð6r4  c                 óð   ‡ ‡‡‡— t        j                  ‰dk\  ˆfd„«       t        j                  ‰dk\  ˆfd„«       t        j                  ‰t         j                  t         j                  fv ˆˆ fd„«       y )Nr   c                  ó   •— d‰ › �S )Nzrow must be non-negative, got rH  )r  s   €r2  rJ  z_trilu_checks.<locals>.<lambda>§  ó   ø€ Ð%CÀCÀ5Ð#I€ r4  c                  ó   •— d‰ › �S )Nzcol must be non-negative, got rH  )r  s   €r2  rJ  z_trilu_checks.<locals>.<lambda>¨  rþ  r4  c                  ó   •— d‰› d‰ › d�S )Nr0  z" not implemented for 'ú'rH  )r©  r‹  s   €€r2  rJ  z_trilu_checks.<locals>.<lambda>«  s   ø€ �"�T�FÐ2°5°'¸Ð;€ r4  )rÀ  rÇ  r•  r)  )r‹  r  r  r©  rá  râ  s   ````  r2  Ú_trilu_checksr  Ÿ  sO   û€ ô 
‡L�L�˜‘ÓIÔJÜ	‡L�L�˜‘ÓIÔJÜ	‡L�LØ”%—+‘+œuŸ{™{Ð+Ð+Ü;õr4  r]  c                ó†  — t        d| ||||«       t        | ||«      \  }}}	t        d| «      }
t        t        j
                  |||¬«      } |d|t        j                  ¬«      }|	dz
  }t	        j                  | t	        j                  ||z  d|z  z   «      z   «      }t	        j                  |d|	z  dz
  |z   |z  dz  z
  «      }t        ||
z   |«      }t        ||«      } |d||¬«      }||z  ||	z
  dz   |
z   z   }||z  }t	        j                  t	        j                  ||f«      t	        j                  ||f«      f«      S )Nr  r   ©rá  r1  râ  rÉ  rV  r  rK  )r  rû  rT  r   rÀ  r  rZ  rG   rp   r)   rõ   rÑ   )r  r  rd  r©  rá  r1  râ  rø  rú  rô  Ú
row_offsetÚ	arange_kwÚxs1r,  Ú	row_inds1Ú	col_inds1Úxs2Ú	row_inds2Ú	col_inds2s                      r2  r  r  °  sK  € ô �. # s¨E°6¸:ÔFä2AÀ#ÀsÈFÓ2SÑ/€N�N KÜ�Q˜˜“€JäÜ�‰˜V¨F¸zô€Iñ
 �A�~¬U¯]©]Ô
;€CØ�cÑ€AÜ—‘˜Q˜B¤§¡¨A°©E°A¸±G©OÓ!<Ñ<Ó=€IÜ—‘˜C 1 {¡?°QÑ#6¸Ñ#BÀiÑ"OÐRUÑ"UÑUÓV€IÜ'¨	°JÑ(>ÀÓF€IÜ'¨	°5Ó9€Iñ �A�~¨UÔ
3€CØ�s‘
˜c KÑ/°!Ñ3°jÑ@ÑA€IØ�c‘	€Iä�;‰;Ü	�‰�I˜yÐ)Ó	*¬E¯I©I°yÀ)Ð6LÓ,MÐNóð r4  c                 óÊ   — | dk(  s|dk(  ry|dkD  rt        d||z
  «      n|}t        dt        | | «      |z  «      }t        | ||dz
  «      \  }}}| |z  ||z   z
  }||z
  }	|	||fS )Nr   ró  rK  )rT  rö  rû  )
r  r  rd  rô  rú  Útrapezoid_size_trilÚrectangle_size_trilr�  Ú	triu_sizerø  s
             r2  Ú_get_triu_sizesr  Û  s‘   € Ø
ˆa‚x�3˜!’8Øà*0°1ª*”#�a˜˜v™Ô&¸#€Kô ˜œC  f WÓ-°Ñ3Ó4€Nô 3BÀ#ÀsÈFÐUVÉJÓ2WÑ/ÐÐ,¨aØ�c‘	Ð0Ð3FÑFÑG€IØ Ñ/€Nà˜>¨;Ð6Ð6r4  c                ó„  — t        d| ||||«       t        | ||«      \  }}}	t        d|«      }
t        t        j
                  |||¬«      } |d||¬«      }||z  }||z  } |d|t        j                  ¬«      }d|	z
  }t	        j                  | t	        j                  ||z  d|z  z
  «      z
  «      }t	        j                  |d|	z  dz
  |z
  |z  dz  z
  «      }t        ||«      }t        ||«      }|r|||z  z   }||
z   }t	        j                  t	        j                  ||f«      t	        j                  ||f«      f«      S )	Nr  r   r  rÉ  g      à¿r  rK  rV  )r  r  rT  r   rÀ  r  rZ  rG   rp   r)   rõ   rÑ   )r  r  rd  r©  rá  r1  râ  rø  rú  rô  Ú
col_offsetr  r
  r  r  r  r,  r  r	  s                      r2  r  r  ì  sL  € ô �. # s¨E°6¸:ÔFä2AÀ#ÀsÈFÓ2SÑ/€N�N KÜ�Q˜“€JäÜ�‰˜V¨F¸zô€Iñ
 �A�~¨UÔ
3€CØ�s‘
€IØ�c‘	€Iñ �A�~¬U¯]©]Ô
;€CØˆ{Ñ€AÜ—‘˜Q˜B¤§¡¨A°©E°A¸±G©OÓ!<Ñ<Ó=€IÜ—‘˜C A¨¡O°aÑ$7¸)Ñ$CÀyÑ#PÐTWÑ"WÑWÓX€IÜ'¨	°5Ó9€IÜ'¨	°5Ó9€Iá
Ø °3Ñ!6Ñ7ˆ	Ø˜JÑ&€Iä�;‰;Ü	�‰�I˜yÐ)Ó	*¬E¯I©I°yÀ)Ð6LÓ,MÐNóð r4  )Ú	out_int32r  Ú
boundariesr  r  c                óî  ‡— t        j                  ‰j                  «       dk(  ˆfd„«       t        | t         j                  «      r| nt        j
                  | «      } |rt         j                  nt         j                  }‰j                  d   }|dk(  rt        j                  | «      S t        j                  | j                  | j                  t         j                  ¬«      }||z   }|||z
  dz  z   }‰|   }	|r|	| kD  }
n|	| k\  }
t        j                  |
||dz   «      }|dkD  rÂt        j                  | t         j                  ¬«      }t        t!        j"                  |«      «      }t%        |«      D ]q  }t        j                  |
|z  ||«      }||k  }t        j                  ||||z
  dz  z   d«      }‰|   }	|r|	| kD  }
n|	| k\  }
t        j                  |
 |z  |dz   |«      }Œs |j'                  |¬«      S )NrK  c                  ó,   •— d‰ j                  «       › d�S )Nz2boundaries tensor must be 1 dimension but got dim(rê  r
  )r  s   €r2  rJ  zbucketize.<locals>.<lambda>"  s   ø€ ÐDÀZÇ^Á^ÓEUÐDVÐVWÐX€ r4  rP  r   r  r  rÉ  )rÀ  rÇ  rß  r8  r7  r¨  r•  r)  rO  r$  r#  r1  r¯   r  rË  rr  r  r[   rV  r³   )ru  r  r  r  Ú	out_dtypeÚn_boundariesr’  rh  ÚmidÚmid_valÚcond_midÚcond_updateÚnitersr�  s    `            r2  r'  r'    sÂ  ø€ ô 
‡L�LØ�‰Ó˜AÑÛXôô
 ˜œ5Ÿ<™<Ô(‰¬e¯l©l¸1«o€AÙ(”—’¬e¯k©k€IØ×#Ñ# BÑ'€LØ�qÒÜ×Ñ Ó"Ð"ô
 �K‰K˜Ÿ™¨¯©¼¿¹ÔD€EØ
�,Ñ
€Cð �3˜‘; 1Ñ$Ñ
$€CØ˜‰o€GÙØ˜Q‘;‰à˜a‘<ˆÜ�K‰K˜ %¨¨q©Ó1€Eà�aÒÜ—o‘o a¬u¯z©zÔ:ˆÜ”T—Y‘Y˜|Ó,Ó-ˆÜ�v“ò 	KˆAÜ—+‘+˜h¨Ñ4°c¸3Ó?ˆCØ #™+ˆKä—+‘+˜k¨5°C¸%±KÀAÑ3EÑ+EÀqÓIˆCØ  ‘oˆGñ Ø" Q™;‘à" a™<�Ü—K‘K ( ¨kÑ 9¸3À¹7ÀEÓJ‰Eð	Kð �8‰8˜)ˆ8Ó$Ð$r4  c                 óÀ  ‡ ‡— |�J ‚t        j                  t        j                  ‰ j                  «       xrB t        j
                  ‰ j                  «       xr  t        j                  ‰ j                  «       ˆ fd„«       t        j                  ‰dkD  ˆfd„«       |‰t        j                  t        j                  t        j                  ‰ «      dz
  z  «      z  z   S )Nc                  ó"   •— d‰ j                   › �S )NzwCauchy distribution is a continuous probability distribution.         dtype must be a floating point but you specified rÉ  rç  s   €r2  rJ  zcauchy.<locals>.<lambda>_  ó   ø€ ð :Ø:>¿*¹*¸ðG€ r4  rò  c                  ó   •— d‰ › �S )Nz-cauchy_ expects sigma > 0.0, but found sigma=rH  )Úsigmas   €r2  rJ  zcauchy.<locals>.<lambda>d  s   ø€ Ð?À¸wÐG€ r4  rV  )rÀ  rÇ  re  r¨  r©  rô  ró  rr   r  r  Ú	rand_like)rè  Úmedianr#  Ú	generators   ` ` r2  r  r  S  s¶   ù€ ð ÐÐÐÜ	‡L�LÜ×"Ñ" 4§:¡:Ó.Ð.ò 	3Ü×&Ñ& t§z¡zÓ2Ð2ò	3ä×&Ñ& t§z¡zÓ2Ð2ó	Gô	ô 
‡L�LØ�‰ÛGôð �EœEŸI™I¤d§g¡g´·±ÀÓ1FÈÑ1LÑ&MÓNÑNÑNÐNr4  c                 ó4  ‡ ‡— |�J ‚t        j                  t        j                  ‰ j                  «       xrB t        j
                  ‰ j                  «       xr  t        j                  ‰ j                  «       ˆ fd„«       t        j                  ‰dkD  ˆfd„«       t        j                  ‰ «      }t        j                  |j                  «      j                  dz  }|d|z
  k\  }t        j                  || t        j                  |«      «      }d‰z  |z  S )Nc                  ó"   •— d‰ j                   › �S )Nz|Exponential distribution is a continuous probability distribution.         dtype must be a floating point but you specified rÉ  rç  s   €r2  rJ  zexponential.<locals>.<lambda>u  r!  r4  rò  c                  ó   •— d‰ › �S )Nz4exponential_ expects lambda > 0.0, but found lambda=rH  )Úrates   €r2  rJ  zexponential.<locals>.<lambda>z  s   ø€ ÐFÀtÀfÐM€ r4  r  rU  rP  )rÀ  rÇ  re  r¨  r©  rô  ró  r$  rõ  ró  r¯   rY   )rè  r*  r&  Úuniform_valÚepsilonrË  Úlog_uniforms   ``     r2  rC   rC   i  sï   ù€ ð ÐÐÐÜ	‡L�LÜ×"Ñ" 4§:¡:Ó.Ð.ò 	3Ü×&Ñ& t§z¡zÓ2Ð2ò	3ä×&Ñ& t§z¡zÓ2Ð2ó	Gô	ô 
‡L�LØˆs‰
ÛMôô
 —/‘/ $Ó'€Kô �k‰k˜+×+Ñ+Ó,×0Ñ0°1Ñ4€GØ˜s W™}Ñ,€IÜ—+‘+˜i¨'¨´5·9±9¸[Ó3IÓJ€Kà�‰9�{Ñ"Ð"r4  c                 ó²  ‡ ‡— |�J ‚t        j                  t        j                  ‰ j                  «       xr  t        j
                  ‰ j                  «       ˆ fd„«       t        j                  d‰k  xr ‰dk  ˆfd„«       t        j                  t        j                  t        j                  ‰ «       «      t        j                  ‰ «      z  «      dz   S )Nc                  ó"   •— d‰ j                   › �S )Nzgeometric not implemented for rÉ  rç  s   €r2  rJ  zgeometric.<locals>.<lambda>–  s   ø€ Ð0°·±°Ð=€ r4  r   rK  c                  ó   •— d‰ › �S )Nz0geometric_ expects p to be in (0, 1), but got p=rH  )r·  s   €r2  rJ  zgeometric.<locals>.<lambda>š  s   ø€ ÐBÀ1À#ÐF€ r4  )
rÀ  rÇ  re  r¨  r©  ró  rG   rZ   r$  r  )rè  r·  r&  s   `` r2  rI   rI   Š  s©   ù€ ð ÐÐÐä	‡L�LÜ×"Ñ" 4§:¡:Ó.Ð.ò 	3Ü×&Ñ& t§z¡zÓ2Ð2Û=ôô
 
‡L�LØ	ˆA‰Š�!�a‘%ÛFôô �;‰;”u—{‘{¤E§O¡O°DÓ$9Ð#9Ó:¼T¿Z¹ZÈÈ»^ÑKÓLÈqÑPÐPr4  c                 ó˜  ‡ ‡— |�J ‚t        j                  t        j                  ‰ j                  «       xrB t        j
                  ‰ j                  «       xr  t        j                  ‰ j                  «       ˆ fd„«       t        j                  d‰k  ˆfd„«       t        j                  ‰t        j                  ‰ «      z  |z   «      S )Nc                  ó"   •— d‰ j                   › �S )Nzlog_normal not implemented for rÉ  rç  s   €r2  rJ  zlog_normal.<locals>.<lambda>«  s   ø€ Ð1°$·*±*°Ð>€ r4  r   c                  ó   •— d‰ › �S )Nz-log_normal_ expects std > 0.0, but found std=rH  ©r½   s   €r2  rJ  zlog_normal.<locals>.<lambda>¯  s   ø€ Ð?À¸uÐE€ r4  )	rÀ  rÇ  re  r¨  r©  rô  ró  rA   Ú
randn_like©rè  rº   r½   r&  s   ` ` r2  r]   r]   Ÿ  s§   ù€ ð ÐÐÐÜ	‡L�LÜ×"Ñ" 4§:¡:Ó.Ð.ò 	3Ü×&Ñ& t§z¡zÓ2Ð2ò	3ä×&Ñ& t§z¡zÓ2Ð2Û>ô	ô 
‡L�LØ	ˆC‰ÛEôô �9‰9�Sœ5×+Ñ+¨DÓ1Ñ1°DÑ8Ó9Ð9r4  )rº   r½   )r&  r©  rá  r1  râ  c          	      ó²  ‡— |�|t         j                  k(  sJ ‚t        ‰t        «      st        j                  ‰dk\  ˆfd„«       |€„t        d„ | ‰fD «       «      }t        j                  t        |«      dkD  d„ «       t        j                  |d u xr |d u d„ «       t        d„ |D «       Ž }|d   j                  }|d   j                  }njt        j                  t        | t        «       xr t        ‰t        «       d„ «       |€t        j                  «       n|}|€t        j                  d«      n|}t        j                  |d	d
||d|¬«      }	‰|	z  | z   S )Nr   c                  ó   •— d‰ › �S )Nz)normal expects std >= 0.0, but found std rH  r4  s   €r2  rJ  znormal.<locals>.<lambda>Î  s   ø€ Ð IÈ#ÈÐO€ r4  c              3   óB   K  — | ]  }t        |t        «      sŒ|–— Œ y ­wrA  rš  rb  s     r2  rF  znormal.<locals>.<genexpr>Ò  s   è ø€ ÒL˜a´*¸QÄ
Õ2KœÑLùs   ‚˜c                   ó   — y)NzFnormal expects that either mean or std is a tensor, or size is definedrH  rH  r4  r2  rJ  znormal.<locals>.<lambda>Õ  rÆ  r4  c                   ó   — y)Nz.Cannot pass layout, or pin_memory without sizerH  rH  r4  r2  rJ  znormal.<locals>.<lambda>Ù  rÆ  r4  c              3   ó4   K  — | ]  }|j                   –— Œ y ­wrA  r  rb  s     r2  rF  znormal.<locals>.<genexpr>Ü  s   è ø€ Ò"<¨q 1§7¥7Ñ"<ùr¢  c                   ó   — y)Nz>normal expects mean and std to be scalars when size is definedrH  rH  r4  r2  rJ  znormal.<locals>.<lambda>â  rÆ  r4  r]  rò  rU  F)rº   r½   r©  r1  r¡  r&  )rÀ  Ústridedr8  r%   rÇ  rR  rN  r^  r©  r1  rŽ  rš  ra   )
rº   r½   r!  r&  r©  rá  r1  râ  r�  Únormal_sampless
    `        r2  ra   ra   ¶  sM  ø€ ð( ˆ>˜V¤u§}¡}Ò4Ð4Ð4ä�cœ:Ô&Ü�‰Ø�1‰HÓOô	
ð €|ÜÑL D¨# ;ÔLÓLˆÜ�‰Ü�‹L˜1ÑÙ\ô	
ô 	�‰Ø�dˆNÒ1˜z¨TÐ1ÙDô	
ô
 !Ñ"<°GÔ"<Ð=ˆØ˜‘
× Ñ ˆØ˜‘×"Ñ"‰ä�‰Ü˜4¤Ó,Ð,ÒP´ZÀÄZÓ5PÐ1PÙTô	
ð .3¨]”×'Ñ'Ô)ÀˆØ(.¨”—‘˜eÔ$¸Fˆä—\‘\ØØØØØØØô€Nð �Ñ $Ñ&Ð&r4  )r&  c                ó6   — t        ||| j                  | |¬«      S )N)r�  r&  )ra   rO  r6  s       r2  Únormal_rA  ó  s   € ä�$˜˜TŸZ™Z¨T¸YÔGÐGr4  c                 óz   — t        j                  t        j                  | j                  «       d„ «       d}| |z  S )Nc                   ó   — y)Nz-rad2deg is not supported for complex tensors.rH  rH  r4  r2  rJ  zrad2deg.<locals>.<lambda>ü  rÆ  r4  gøÁcÜ¥L@©rÀ  rÇ  re  r¨  r©  )rè  ÚM_180_PIs     r2  re   re   ø  s8   € ä	‡L�LÜ×"Ñ" 4§:¡:Ó.Ð.Ù?ôð C€HØ�(‰?Ðr4  c                 óz   — t        j                  t        j                  | j                  «       d„ «       d}| |z  S )Nc                   ó   — y)Nz-deg2rad is not supported for complex tensors.rH  rH  r4  r2  rJ  zdeg2rad.<locals>.<lambda>  rÆ  r4  g9�R¢Fß‘?rD  )rè  ÚM_PI_180s     r2  r<   r<     s8   € ä	‡L�LÜ×"Ñ" 4§:¡:Ó.Ð.Ù?ôð E€HØ�(‰?Ðr4  c                 ó*   — | dk7  j                  |«      S r  )r¿   )rè  rß  s     r2  r;   r;     s   € ð �A‰I�?‰?˜3ÓÐr4  c                 óþ   ‡ ‡— t        j                  ‰ j                  «       dk(  xr ‰j                  «       dk(  ˆˆ fd„«       ˆˆ fd„}t        j                  ‰ j                  «       ‰j                  «       k(  |«       y )NrK  c                  óN   •— d‰j                  «       › d‰ j                  «       › d�S )Nz1D tensors expected, but got zD and z	D tensorsr
  ©rò  rè  s   €€r2  rJ  z_dot_check.<locals>.<lambda>  s#   ø€ Ð/°·±³
¨|¸6À%Ç)Á)Ã+ÀÈiÐX€ r4  c            	      ó’   •— d‰j                  «       › d‰ j                  «       › d‰j                  «       › d‰ j                  «       › d�	S )Nz+inconsistent tensor size, expected tensor [z] and src [z.] to have thesame number of elements, but got r…  z elements respectively)rê  rL  s   €€r2  Únumel_errorz_dot_check.<locals>.numel_error  sL   ø€ à9¸$¿*¹*»,¸À{ÐSX×S^ÑS^ÓS`ÐRað b0Ø04·
±
³¨~¸UÀ5Ç;Á;Ã=À/ÐQgðið	
r4  )rÀ  rÇ  rß  rê  )rè  rò  rN  s   `` r2  Ú
_dot_checkrO    sU   ù€ Ü	‡L�LØ�‰‹
�a‰Ò,˜EŸI™I›K¨1Ñ,ÜXôõ

ô 
‡L�L�—‘“ §¡£Ñ.°Õ<r4  r�  c                 óÐ  — | j                  «       r¸| j                  «       rt|j                  «       r@t        j                  | j	                  «       |j	                  «       «      j	                  «       S t        j
                  | j	                  «       |«      S |j                  «       r$t        j
                  |j	                  «       | «      S t        | |«       | |z  j                  «       S rA  )r(  Úis_conjrÀ  r»   rÔ   r¼   rO  r¿   r�  s     r2  r»   r»   !  sš   € ð ‡�ÔØ�<‰<Œ>Ø�}‰}ŒÜ—y‘y §¡£¨e¯j©j«lÓ;×@Ñ@ÓBÐBä—z‘z $§)¡)£+¨uÓ5Ð5Ø�]‰]Œ_Ü—:‘:˜eŸj™j›l¨DÓ1Ð1äˆt�UÔØ�5‰L×ÑÓÐr4  c                 ó  — | j                  «       st        j                  | |«      S | j                  «       rf|j                  «       r2t        j                  |j                  «       | j                  «       «      S t        j                  | j                  «       |«      S |j                  «       r2t        j                  | |j                  «       «      j                  «       S t        | |«       | j                  «       |z  j                  «       S rA  )	r(  rÀ  r»   rQ  r¼   rÔ   rO  r8   r¿   r�  s     r2  r¼   r¼   5  sµ   € ð �?‰?ÔÜ�y‰y˜˜uÓ%Ð%à‡|�|„~Ø�=‰=Œ?Ü—:‘:˜eŸj™j›l¨D¯I©I«KÓ8Ð8ä—9‘9˜TŸY™Y›[¨%Ó0Ð0Ø	�‰ŒÜ�y‰y˜˜uŸz™z›|Ó,×1Ñ1Ó3Ð3äˆt�UÔà×ÑÓ  5Ñ(×-Ñ-Ó/Ð/r4  c                 ó¦  — t        j                  | j                  |«      }dg| j                  z  }d||<   |dk  r|| j                  |   z   }t	        j
                  | j                  |   | j                  ¬«      j                  |«      |k(  }t	        j                  ||«      j                  | j                  «      }t	        j                  ||| «      S )NrK  rP  r   r0  )re  r¦  r  rO  rÀ  r  r1  r  r   rÞ   r¯   )rE  rŠ  rß  r÷  Ú
mask_shaperi  s         r2  Úselect_scatterrU  L  s©   € ô ×
 Ñ
  §¡¨Ó
-€CØ��q—v‘v‘€JØ€Jˆs�OØˆq‚yØ˜Ÿ™ ™Ñ$ˆÜ�<‰<˜Ÿ™ ™¨Q¯X©XÔ6×;Ñ;¸JÓGÈ5ÑP€DÜ
�/‰/˜#˜sÓ
#×
*Ñ
*¨1¯7©7Ó
3€CÜ�;‰;�t˜S !Ó$Ð$r4  c                 óV   — t        | t        j                  t        j                  f«      S rA  )r8  rÀ  ÚTypedStorageÚUntypedStorage)Úobjs    r2  Ú
_isStoragerZ  Ç  s    € Ü�cœE×.Ñ.´×0DÑ0DÐEÓFÐFr4  c                 ó¶  — d}t        | «      }g }t        | t        t        f«      r„t	        | «      }|r||j
                  z  }|j                  |«       t	        |«      |kD  r"t        dt        | «      j                  › d�«      ‚|dk(  r	 |S 	 | d   }|} t        | t        t        f«      rŒ„|S # t        $ r# t        dt        | «      j                  › d�«      ‚w xY w)Né€   ztoo many dimensions 'r  r   z.could not determine the shape of object type ')rZ  r8  r$  rR  rN  Úitemsizer•  rW  r/  r}  r¥  )ÚseqÚscalar_typeÚMAX_DIMSÚ
is_storager&  rÐ  Úhandles          r2  Ú_compute_sizesrc  Ì  sê   € Ø€HÜ˜C“€JØ€Eä
�Sœ4¤˜-Ô
(Ü�S“ˆÙØ�{×+Ñ+Ñ+ˆFØ�‰�VÔÜˆu‹:˜Ò ÜÐ4´T¸#³Y×5GÑ5GÐ4HÈÐJÓKÐKØ�QŠ;Øð €Lð	Ø˜‘VˆFð
 ˆô �Sœ4¤˜-Õ
(ð" €Løô ò 	ÜØ@ÄÀcÃ×ASÑASÐ@TÐTUÐVóð ð	ús   ÂB, Â,,Cc                 ó&  — t        | t        «      rt        j                  «       S t        | t        «      r t        | t
        «      st        j                  S t        | t        «      rt        j
                  S t        | t        «      r…t        j                  «       }|t        j                  u rt        j                  S |t        j                  u rt        j                  S |t        j                  u rt        j                  S t        d«      ‚t        | t        j                   «      r| j"                  S t        | t$        «      r"t'        dt)        | «      j*                  › d�«      ‚t        | t,        t.        f«      rzd }t1        | «      }|dk(  rt        j                  «       S t3        |«      D ]D  }| |   }	 t5        |«      }|�t        j6                  ||«      }n|}|t        j                  u sŒB|c S  |S t        dt)        | «      j*                  › �«      ‚)Nz'invalid default scalar type for complexznew(): invalid data type 'r  r   zCould not infer dtype of )r8  r   rÀ  rŽ  r   rË  r)  r   r›  rÎ  ÚcfloatÚdoubleÚcdoubleÚhalfÚchalfrX  r7  r©  rh  Ú	TypeErrorr/  r}  r$  rR  rN  rV  Ú_infer_scalar_typeÚpromote_types)rY  Údefault_dtypeÚ
scalarTyperÐ  r  Úcur_itemÚitem_scalarTypes          r2  rk  rk  æ  s¬  € Ü�#”yÔ!Ü×&Ñ&Ó(Ð(Ü�#”wÔ¬
°3¼Ô(=Ü�{‰{ÐÜ�#”xÔ Ü�z‰zÐÜ�#”wÔÜ×/Ñ/Ó1ˆØœEŸK™KÑ'Ü—<‘<ÐØœeŸl™lÑ*Ü—=‘=Ð ØœeŸj™jÑ(Ü—;‘;ÐäÐHÓIÐIÜ�#”u—|‘|Ô$Ø�y‰yÐÜ�#”sÔÜÐ4´T¸#³Y×5GÑ5GÐ4HÈÐJÓKÐKä�#œœe�}Ô%Øˆ
Ü�S“ˆð �QŠ;Ü×*Ñ*Ó,Ð,Ü�v“ò 	"ˆAØ˜1‘vˆHðô 1°Ó:ˆOØÐ%Ü"×0Ñ0°¸_ÓM‘
à,�
ØœUŸ]™]Ò*ð "Ò!ð	"ð  ÐÜ
Ð2´4¸³9×3EÑ3EÐ2FÐGÓ
HÐHr4  rn  rY  c           	      óÄ  — t        |t        «      rD|j                  «       dk(  r1|j                  «       j	                  | dd¬«      j                  d«      S t        |t        «      r"|j                  «       j	                  | dd¬«      S t        |t        «      rt        j                  || ¬«      S |}t        j                  |D �cg c]  }t        | |«      ‘Œ c}«      S c c}w )NrK  r]  T)r©  r1  rà  rH  rÉ  )r8  r7  rê  Údetachr³   r  r   rÀ  r!  rõ   Ú_recursive_build)rn  rY  r^  r²   s       r2  rs  rs    s±   € ô �#”vÔ 3§9¡9£;°!Ò#3Ø�z‰z‹|�‰ Z¸ÀDˆÓI×NÑNÈrÓRÐRÜ	�CœÔ	 ð �z‰z‹|�‰ Z¸ÀDˆÓIÐIÜ	�CœÔ	 Ü×"Ñ" 3¨jÔ9Ð9ð €CÜ�;‰;ÀsÖK¸tÔ(¨°TÕ:ÒKÓLÐLùÒKs   ÃCc                 ó  — t        |t        j                  «      rat        j                  | d„ «       |}|r|j	                  «       }|r|j
                  n|}	|�|n|j                  }
|j                  |
|	d|¬«      S t        |d«      rt        S |�|n| d   }
|rt        |«      n|}	t        |«      rt        S t        j                  |
«      j                  dk(  rt        S t        |	|«      }|j                  |
|	dd¬«      }|S )Nc                   ó   — y)Nz,Can't pin tensor constructed from a variablerH  rH  r4  r2  rJ  z)_internal_new_from_data.<locals>.<lambda><  rÆ  r4  F)r1  r©  rã  rà  Ú__cuda_array_interface__r1  Úmeta)rã  rà  )r8  rÀ  r7  rÇ  rr  r©  r1  r³   ÚhasattrÚNotImplementedrk  rZ  r/  rs  )Úoptionsr_  Ú
device_optÚdataÚcopy_variablesÚ
copy_numpyÚtype_inferencerâ  rÂ   Úinferred_scalar_typer1  r¨  s               r2  Ú_internal_new_from_datar�  0  s  € ô �$œŸ™Ô%Ü�‰ØˆNÑRô	
ð ˆÙØ—*‘*“,ˆCÙ,:˜sŸyšyÀÐØ)Ð5‘¸3¿:¹:ˆØ�v‰vØØ&ØØð	 ó 
ð 	
ô ˆtÐ/Ô0ÜÐð &Ð1‰Z°w¸xÑ7H€FÙ7EÔ-¨dÔ3È;Ðô �$ÔÜÐä�<‰<˜Ó×$Ñ$¨Ò.Ü!Ð!ô "Ð"6¸Ó=ˆà—‘˜6Ð#7ÀeÐRW�ÓXˆð €Mr4  )r©  r1  râ  r¡  c          
      ó  — t        | t        j                  «      rt        j                  d«       |d u }t        ddi|�|nt        j                  «       || dd||¬«      }|j                  «        |r|j                  |«       |S )NzµTo copy construct from a tensor, it is recommended to use sourceTensor.clone().detach() or sourceTensor.clone().detach().requires_grad_(True), rather than torch.tensor(sourceTensor)r1  r]  T)r}  r~  r  râ  )	r8  rÀ  r7  r]  r^  r�  rŽ  Údetach_rs  )r|  r©  r1  râ  r¡  r  Ú
new_tensors          r2  r¨  r¨  i  s‹   € ä�$œŸ™Ô%Ü�‰ðlô	
ð ˜d�]€NÜ(ð 
�5ÐØÐ"‰¬×(?Ñ(?Ó(AØØØØØ%Øô€Jð ×ÑÔÙØ×!Ñ! -Ô0ØÐr4  rA  )F)rò  NN)gñhãˆµøä>g:Œ0âŽyE>Frà  )NN)NNNNNFF)FFN)NF)NNFr£  )r   rP  )NNNTÚreflectFNN)NNNTFNNF)rH  )rK  r¥  )r   r   rK  )r   rO  rP  )r   NrK  )r   )rò  rU  )rà  NF)r   rK  Nr3  )rK  r  N(ý  r"  rx  r†  r=  r  rV  r]  Úcollections.abcr   Úenumr   Ú	functoolsr   r   r   r   Útypingr	   r
   r   r   r   r   r   r   r   rÀ  Útorch._primsÚ_primsrš  Útorch._prims_commonÚ_prims_commonre  Útorch.utils._pytreeÚ_pytreer  r   r   r   r   r   r   r   r   r   r   r   r   r   r   r    r!   r"   r#   r$   r%   r&   r'   r(   Útorch._prims_common.wrappersr)   r*   r+   r,   r-   r.   r”  r7  rÖ  ÚDispatchKeyÚ_opsÚopsr“  r3  r<  r^  rl  Útorch._decomprm  Úobjectr{  r€  rŒ  r˜  rH  r/   ÚINT_TO_FLOATr0   r1   r3   r2   r4   r5   ÚDEFAULTr6   r7   r(  r8   r9   r:   r=   r>   r?   r@   rA   rB   rD   Ú	NO_OPMATHrE   rF   r"  rG   rH   rŽ   ÚALWAYS_BOOLrP   rQ   rR   rS   rT   ÚspecialÚmultigammalnr_   rU   rV   rX   rY   rZ   r[   r\   rr  r©  r^   r˜   rË  rb   rù  rc   rd   r    rf   rg   rô   rh   ri   rj   rk   rl   rm   rn   rp   ÚBOOL_TO_LONGrq   rr   rs   ru   r  r:  rv   rw   rx   ry   rz   r{   r|   r   r€   rh  r�   rŸ   r‚   rƒ   ra  r`  r„   r…   r†   ru  r‡   rˆ   r‰   rŠ   r‹   rŒ   r�   rÎ  rŠ  r�   r�   r‘   r’   r“   r”   r•   r–   r—   r™   rš   r›   rœ   r�   rž   r¢   r£   r¦   r§   r©   r¨   rª   r«   r¬   r}   r~   r¯   r°   rå  rÙ  r±   r²   rá  rç  ré  Úregisterr1  rí  rï  rñ  rô  r®  rû  r³   r  r   r´   r·   r¿   Údim_IntListÚIntList_outrÀ   rÁ   r¶   rµ   rC  rÂ   r½   rº   r¾   rÃ   rÄ   rÇ   r~  rÈ   rÉ   rÊ   rÌ   rÎ   rÏ   r&  Úpy_implÚCompositeImplicitAutogradÚMetarÐ   rÑ   rÓ   rÔ   rÕ   r  rÖ   rÝ   rÞ   rß   rÒ   rá   râ   rã   rä   ré   rø  rü  rë   rì   rí   r)  r*  r&  r+  rt  rï   r™  rð   rñ   rò   ró   rª  rõ   ro   ræ   r  r  r	  rK   rL   rN   rO   rÈ  rJ   rM   r÷   r(  rü   rå   r  rØ   r�  rÛ   rÙ   r×   rÍ   r  rÜ   rø   rú   rÅ   rý   rö   rþ   rÿ   r0  r¸   r¹   r   r  r  rî   rû   r>  r  r  r  r  r#  r  r  r  r  r  r  Ú
start_stepÚ	start_outrW   r  r  rç   rè   r  r  r  r  r$  r  r   r!  rÎ  r­   r®   r%  r&  r`   rt   rè  r¤   r¥   r¡   r
  r  rû  r  r  rÜ  r  r  r'  r  rC   rI   r]   ra   rA  re   r<   r;   rO  r»   r¼   rU  Úabs_Úacos_Úacosh_Úadd_Úaddcmul_Úaddcdiv_Úasin_Úasinh_Úatan_Úatanh_Úatan2_Úbitwise_and_Úbitwise_left_shift_Úbitwise_not_Úbitwise_or_Úbitwise_right_shift_Úbitwise_xor_Úceil_Úclamp_Ú
clamp_min_Ú
clamp_max_Úconj_physical_Ú	copysign_Úcos_Úcosh_Úcumsum_Úcumprod_Údeg2rad_Údigamma_Údiv_Úeq_Úerf_Úerfc_Úerfinv_Úexp_Úexp2_Úexpm1_Úfloat_power_Úfloor_Úfloor_divide_Úfmod_Úfrac_Úgcd_Úge_Úgt_Ú
heaviside_Úhypot_Úigamma_Úigammac_Úi0_Úlcm_Úle_Úlerp_Úlgamma_Úlog10_Úlog1p_Úlog2_Úlog_Úlogical_and_Úlogical_not_Úlogical_or_Úlogical_xor_Últ_Úmul_Ú	mvlgamma_Únan_to_num_Úne_Úneg_Ú
nextafter_Úpow_Úrad2deg_Úreciprocal_Ú
remainder_Úrsqrt_Úsgn_Úsigmoid_Úsign_Úsin_Úsinc_Úsinh_Úsqrt_Úsquare_Úsub_Útan_Útanh_Útril_Útriu_Útrue_divide_Útrunc_Úxlogy_Úcauchy_Úexponential_Ú
geometric_Úlog_normal_Úzero_rÆ   rË   rÚ   rà   rê   rù   r  r  rZ  rc  rk  rs  r�  r¨  Útorch._refs._conversionsÚtorch._refs.fftÚtorch._refs.linalgÚtorch._refs.nn.functionalÚtorch._refs.specialrH  r4  r2  ú<module>r	     s+O  ðó Û Û Û Û Û Û Ý $Ý ß <Ó <ß X× XÕ Xã Ý Ý #ß $Ð $ß $÷÷ ÷ ÷ ÷ õ ÷.÷ òg€ðR	 
�‰€Ø�h‰h×"Ñ"€Ø‡z�z‡~�~×Ñ€ò2òò%ðP 9=ô Cõ8 1ñ “€ð Øò	ð
 óòBò ñ2 #Ð#B×#SÑ#SÓTñó Uðñ #Ð#B×#OÑ#OÓPñó Qðñ #Ð#B×#OÑ#OÓPñó Qðñ #Ð#B×#OÑ#OÓPñó Qðñ #Ð#B×#OÑ#OÓPñó Qðñ #Ð#B×#OÑ#OÓPñó Qðñ #Ð#B×#OÑ#OÓPñó Qðñ #Ð#B×#JÑ#JÓKñ ó Lð ñ #Ð#B×#JÑ#JÓKñó Lðñ ˜Ÿ™Ó(ð/�nò /ó )ð/ñ ˜×*Ñ*Ó+Ùƒð&˜ò &ó ó ,ð&ñ #Ð#B×#OÑ#OÓPñó Qðñ #Ð#B×#OÑ#OÓPñó Qðñ #Ð#B×#OÑ#OÓPñó Qðñ #Ð#B×#OÑ#OÓPñó Qðñ #Ð#B×#OÑ#OÓPñó Qðñ #Ð#B×#OÑ#OÓPñó Qðñ #Ð#B×#OÑ#OÓPñó Qðñ #Ð#B×#OÑ#OÓPñó Qðñ #Ð#B×#OÑ#OÓPñó Qðñ ƒÙ#ØØ7×AÑAôð	 ˆNð 	  :ð 	 °.ò 	 ó	ó ð
	 ðˆ^ð  Jð °>ó ñ ˜Ÿ	™	Ó"Ùƒð#�ð # >ò #ó ó #ð#ñ #Ð#B×#JÑ#JÓKñó Lðñ #Ð#B×#JÑ#JÓKð!ˆNð !˜~ò !ó Lð!ðˆNð ˜~ó ñ #Ø#×/Ñ/Øôð*�ð * >ò *ó	ð*ñ #Ð#B×#NÑ#NÓOð1ˆ^ð 1 ò 1ó Pð1ñ #Ð#B×#NÑ#NÓOð1�ð 1 >ò 1ó Pð1ñ #Ð#B×#NÑ#NÓOð1�ð 1 >ò 1ó Pð1ñ #Ð#B×#NÑ#NÓOðˆ^ð  ò ó Pðñ
 �u—}‘}×1Ñ1°:Ó>€ñ #Ø#×/Ñ/Øôð0ˆnð 0 ò 0ó	ð0ñ #Ø#×0Ñ0¸$¿'¹'ôñóðñ #Ð#B×#OÑ#OÓPñó Qðñ #Ð#B×#OÑ#OÓPñó Qðñ #Ð#B×#OÑ#OÓPñó Qðñ #Ð#B×#OÑ#OÓPñó Qðñ #Ð#B×#OÑ#OÓPñó Qðñ
 ƒð $(òXØðXà	ðXð �E—K’KÑ ðXð ò	Xó ðXñ ˜ŸšÓ'ÙƒÙ#Ø!Ø7×DÑDôð
 :?ò,Ø
ð,Ø'ð,Ø26ð,àò,ó	ó ó (ð,ñ ˜ŸšÓ(Ùƒð !$Ø#'Ø#'ò	Øðà	�*Ñ	ðð �ZÑ ðð �ZÑ ð	ð
 òó ó )ðð4�ó ñ #Ø#×+Ñ+¸	ôñóðð�ð  >ó ðˆNð ˜~ó ñ #Ð#B×#OÑ#OÓPñó Qðñ ˜Ÿ
š
Ó#ÙƒÙ#ØØ7×?Ñ?ôð 12ò Jˆ^ð J¨#ð J°nò Jó	ó ó $ðJñ #Ð#B×#OÑ#OÓPñó Qðñ #Ð#B×#OÑ#OÓPð/ˆ~ð / .ò /ó Qð/ñ #Ð#B×#JÑ#JÓKñó Lðñ #Ð#B×#JÑ#JÓKñó Lðñ #Ð#B×#NÑ#NÓOñó Pðñ #Ð#B×#OÑ#OÓPñó Qðñ #Ð#B×#OÑ#OÓPñ4ó Qð4ñ
 #Ð#B×#OÑ#OÓPñó Qðñ #Ð#B×#OÑ#OÓPñó Qðñ #Ø#×0Ò0Øôðˆnð  ò ó	ðñ #Ð#B×#OÑ#OÓPñó Qðñ #Ð#B×#OÑ#OÓPñó Qðñ #Ð#B×#JÑ#JÓKñó Lðð
!˜.ð !¨^ó !ðL Ø	ØØ#Ø#Ø %Ø"&ñ6ð ó6ñt ˜ŸšÓ!ÙƒÙ#Ø"Ø7×?Ñ?ôð #'ò	8Øˆ^˜ZÐ'Ñ(ð8àˆ^˜ZÐ'Ñ(ð8ð �JÑò	8ó	ó ó "ð8ñ: $Ø7×DÑDØ$Ø$ôñ
óð
ñ $Ø7×?Ñ?ôð#�>ð # nð #¸ò #óð#ñ $Ø7×?Ñ?ôð"˜.ð "¨^ð "Àò "óð"ñ $Ø7×?Ñ?ôð"�.ð " ^ð "¸ò "óð"ñ $Ø7×?Ñ?ôð.˜>ð .¨nð .Àò .óð.ñ $Ø7×?Ñ?ôð#�>ð # nð #¸ò #óð#ñ $Ø7×DÑDØ$ôð2Øˆ^˜ZÐ'Ñ(ð2Ø-2°>À:Ð3MÑ-Nò2ó	ð2ñ ˜ŸšÓ!Ùƒð
 $(ò	Øˆ^˜ZÐ'Ñ(ðàˆ^˜ZÐ'Ñ(ðð ˜C‘=ò	ó ó "ðñ( $Ø7×CÑCØ$ôðˆ.ð ˜^ð °ò ó	ðñ $Ø7×DÒDôðØˆ^˜ZÐ'Ñ(ðàˆ^˜ZÐ'Ñ(ðð òóðñ4 ƒðØˆ^˜ZÐ'Ñ(ðàˆ^˜ZÐ'Ñ(ðð òó ðñl $Ø×=Ñ=×EÑEØ $Ø"'ôð
OØˆ^˜ZÐ'Ñ(ðOØ-2°>À:Ð3MÑ-NòOóð
Oð8F˜Vð F¨ð F°6ó Fð1˜6ð 1 fð 1°ó 1ñ2 $Ø7×?Ñ?Ø$Ø$ôð
ˆNð ˜~ð °.ò óð
ñ $Ø7×?Ñ?Ø$Ø$ôð
ˆNð ˜~ð °.ò óð
ñ $Ø7×?Ñ?Ø$Ø#ôð
ˆNð ˜~ð °.ò óð
ñ ˜Ÿ
š
Ó#ÙˆZ˜Ó$ð7�ð 7 5¨¸Ð)GÑ#Hò 7ó %ó $ð7ñ $Ø7×?Ñ?Ø$Ø$ôð
ˆ>ð ˜nð °ò óð
ñ $Ø7×CÑCØ$ôðˆ.ð ˜^ð °ò ó	ðñ $Ø7×CÑCØ$ôðˆ.ð ˜^ð °ò ó	ðñ $Ø7×?Ñ?Ø$Ø$ôð
�^ð ¨^ð Àò óð
ñ $Ø7×?Ñ?Ø$Ø$ôð
ˆ^ð  ð °>ò óð
ñ $Ø7×DÑDØ$Ø$ôð
ˆnð  ð °Nò óð
ñ $Ø7×DÑDØ$Ø$ôð
ˆ~ð  .ð °^ò óð
ðØ
ðàðð ðð ð	ð
 ðð 
óð2 ØØò(Øð(àð(ð ð(ð ð	(ð
 ð(ð ó(ñV $Ø7×?Ñ?Ø$Ø$ôð
Qˆ>ð Q˜nò Qóð
Qñ  $Ø7×CÑCØ$ôðˆ.ð ˜^ð °ò ó	ðñ $Ø7×?Ñ?Ø$Ø$ôð
T�ð T Nð T°~ò Tóð
Tñ0 $Ø7×?Ñ?Ø$Ø$ôð
,�.ð , ^ð ,¸ò ,óð
,ñ $Ø7×CÑCôð�>ð  nò óðñ #Ð#B×#NÑ#NÓOð�>ò ó Pðñ $Ø7×CÑCôð�.ð  ^ò óðñ $Ø7×CÑCôð�>ð  nò óðñ $Ø7×CÑCØ$ôðˆ.ð ˜^ð °ò ó	ðñ $Ø7×?Ñ?ôðˆ~ð  .ð °^ò óðñ $Ø7×?Ñ?ôðˆ~ð  .ð °^ò óðñ $Ø7×?Ñ?Ø $ôðˆ>ð ˜nð °ò ó	ðñ $Ø7×CÑCØ$ôðˆ.ð ˜^ð °ò ó	ðñ $Ø7×AÑAØ$Ø$ôð
!�ð ! Nð !°~ò !óð
!ñ $Ø7×?Ñ?ôð!�ð ! Nð !°~ò !óð!ñ
 ˜Ÿ	š	Ó"Ùƒð ò	(Øˆ^˜ZÐ'Ñ(ð	(àˆ^˜ZÐ'Ñ(ð	(ð ò	(ó ó #ð	(ñ ˜ŸšÓ!ÙƒÙ#Ø"Ø7×?Ñ?ôð ò	$8Øˆ^˜ZÐ'Ñ(ð$8àˆ^˜ZÐ'Ñ(ð$8ð ò	$8ó	ó ó "ð$8ñN $Ø7×DÑDØ	ØØ $ô	ð�>ð  nð ¸ò óðñ ˜Ÿ
š
Ó#ÙƒÙ#Ø"Ø7×DÑDôð:ˆU�> :Ð-Ñ.ð :°5¸ÈÐ9SÑ3Tò :ó	ó ó $ð:ñ& $Ø×=Ñ=×EÑEØØ $ôð
"Øˆ^˜ZÐ'Ñ(ð"Ø-2°>À:Ð3MÑ-Nò"óð
"ñ ˜ŸšÓ%ÙƒÙ#Ø6Ø7×DÑDôð ò,Ø
ð,àð,ð ð,ð
 ð,ð ò,ó	ó ó &ð,ñ* ˜ŸšÓ%ÙƒÙ#Ø6Ø7×?Ñ?ôð ò,Ø
ð,àð,ð ð,ð
 ð,ð ò,ó	ó ó &ð,ñ* ˜Ÿ
š
Ó#ÙƒÙ#Ø+Ø7×?Ñ?ôð -1Ø,0òØðà	Ð(Ñ	)ðð 
Ð(Ñ	)ðð ò	ó	ó ó $ðñ4 ˜ŸšÓ'Ùƒð -1ò&Ø
ð&à	Ð(Ñ	)ð&ð ò&ó ó (ð&ñ ˜ŸšÓ'Ùƒð -1ò&Ø
ð&à	Ð(Ñ	)ð&ð ò&ó ó (ð&ñ ˜Ÿ
š
Ó#ÙƒÙ#Ø"Ø7×AÑAôð +/Ø*.ò#Ø
ð#àÐ&Ñ'ð#ð Ð&Ñ'ò#ó	ó ó $ð#ñ. ˜Ÿ
š
Ó#Ùƒà?D×?TÒ?TòØðØ).×)<Ò)<ðàòó ó $ðð 9=ò ˆvð ˜&ó ñ ˜Ÿ	š	Ó"ð&ˆNð &˜zò &ó #ð&ð (,Ø#'ØØ%)Ø37Ø!&ØòØðà�^Ñ$ðð �E—K’KÑ ðð �4‰.ð	ð
 �U—\’\Ñ"ðð ˜E×/Ò/Ñ0ðð ˜‘ðð ðð 
óð2 ñó ðð ×Òð ØØ37òØ�LŠLðà�;Š;ðð ðð ð	ð
 ˜E×/Ò/Ñ0ðð 
ˆ#ˆsˆ(�^òó ðð" ×Òð ØØ37òØðà�;Š;ðð ðð ð	ð
 ˜E×/Ò/Ñ0ðð 
ˆ#ˆsˆ(�^òó ðð" ×Òð ØØ37ò	Ø�;Š;ðàðð ðð ˜E×/Ò/Ñ0ð	ð
 
ˆ#ˆsˆ(�^òó ðð ×Òð ØØ37ò	Øðàðð ðð ˜E×/Ò/Ñ0ð	ð
 
ˆ#ˆsˆ(�^òó ðð." &ð "°Tó "ð0ˆ.ð ¨nó ðV Ø"Ø#ØØ#'Ø ò<Øð<à
ð<ð ð	<ð
 ð<ð �8Ñ
ð<ð ð<ð �E—K’KÑ ð<ð 
�&Ñ	ð<ð 2ð<ð ó<ò~ñ4 ˜ŸšÓ!Ùƒð #Øò
Øð
à	�(Ñ	ð
ð ð
ð ò	
ó ó "ð
ñ ˜ŸšÓ!Ùƒð #ØòØðà	�(Ñ	ðð ðð ò	ó ó "ðñ$ ˜Ÿš×-Ò-¨t¯xªx×/CÒ/CÐDÓEð 6:Øñð
 $(Ø òØðà	ˆx˜‰}˜h t¨C¡yÑ1Ð1Ñ	2ðð ðð
 �E—K’KÑ ðð 
�&Ñ	ðð òó Fðð:CØðCð óCñ, ˜Ÿ	š	Ó"ð 6:Øñð
 Ø òØðà	ˆx˜‰}˜h t¨C¡yÑ1Ð1Ñ	2ðð ðð 
�&Ñ	ðð òó #ðñ: ˜Ÿ	š	Ó"ð #Øñð
 !òØðà	�(Ñ	ðð ðð
 
�&Ñ	ðð òó #ðñ. ˜Ÿ	š	Ó"ð #Øñð
 !òØðà	�(Ñ	ðð ðð
 
�&Ñ	ðð òó #ðô.ñ ˜ŸšÓ!Ùƒð #Ø#Øñ	ð (,òØðà	�(Ñ	ðð �t‰nðð ð	ð ˜Ñ$ðð òó ó "ðñ6 ˜ŸšÓ!Ùƒð 6:Ø#Øñ	1ð (,ò1Øð1à	ˆx˜‰}˜h t¨C¡yÑ1Ð1Ñ	2ð1ð �t‰nð1ð ð	1ð ˜Ñ$ð1ð ò1ó ó "ð1ñ* ˜Ÿ	š	Ó"ð #Øñ/ð
 Øò/Øð/à	�(Ñ	ð/ð ð/ð ò/ó #ð/ñd ˜ŸšÓ&ÙˆV�VÓð #ñð  $ØØ'+òØðà	�(Ñ	ðð �t‰nð	ð
 ðð ˜Ñ$òó ó 'ðñ0 ˜ŸšÓ&ÙˆV�VÓð #Ø#Øñ	ð (,òØðà	�(Ñ	ðð �t‰nðð ð	ð ˜Ñ$òó ó 'ðñ ˜Ÿ	š	Ó"ÙƒÙ#Ø0Ø7×?Ñ?ôð Øò7AØ
ð7Aà
ð7Að ð7Að
 ð7Að ð7Að ò7Aó	ó ó #ð7Aðv
+Ø	ˆ~˜x¨Ñ7Ð7Ñ	8ð
+ØAOð
+à
ˆ>˜5 °Ð!4Ñ5Ð5Ñ6ó
+ð Øð Ø #ð Ø*8ð àó ð+Ø	ˆ~˜x¨Ñ7Ð7Ñ	8ð+ØAOð+à
ˆ>˜5 °Ð!4Ñ5Ð5Ñ6ó+ð+Ø	ˆ~˜x¨Ñ7Ð7Ñ	8ð+ØAOð+à
ˆ>˜5 °Ð!4Ñ5Ð5Ñ6ó+ð$ %)ò		AØð	Aà
ñ	Að ñ	Að ˜S‘Mð		Að
 ô	Añ ˜×/Ò/Ó0Ùƒð %)òRØñRà	ðRð ñRð ñ	Rð
 ˜S‘MðRð óRó ó 1ðRð2 ô 2ð ×Ò×Ò×'Ò'¨×(MÒ(MÓNØ×Ò×Ò×'Ò'¨×(8Ò(8Ó9ðO 4¨Ñ#7ó Oó :ó OñOð1�Nð 1¨)ð 1¸õ 1ñ ˜ŸšÓ!ÙƒÙ#Ù$Ø7×AÑAôósGÐ#ð sG¨#ð sG°nó sGó	ó ó "ñsGñn ƒñ#Ð,ð #°ó #ó ñ#ð�ð  >õ ñ ˜×,Ò,Ó-Ùƒà?@òPØñPØ $ S¡	ðPØ2<ðPàóPó ó .ñPðh 8=×7NÒ7Nò7Øð7Ø!&×!4Ò!4ð7àõ7ñ ƒñ#Ð&ð #¨>ó #ó ñ#ñ ˜ŸšÓ$ð!ˆfð ! ó !ó %ñ!ðJ�ð ˜Fð  võ òˆ^ñ  Sð ¨sð ¸5ÀÐQTÐATÑ;Uõ ò01ˆ~ñ 1¨#ñ 1¸Cð 1Èõ 1ñ$ ˜Ÿ	š	Ó"ÙƒðˆNð Ð"2ð °~ó ó ó #ñðˆnð  õ ðˆnð  õ ðBØðBØñBØ(-¨c°>Ð.AÑ(BñBØLOðBàõBð:ØñØ"ñØ).ðà
ˆ6�6˜6Ð!Ñ"õð<˜>ñ °t¸C±yð À^õ ñ ˜×.Ò.×6Ò6Ó7ð1Øñ1à�VÑñ1ð �6Ñ
ñ1ð ñ	1ð
 ñ1ð ñ1ð ñ1ð 
ð1ð ˆ6�6˜6Ð!Ñ"ó1ó 8ñ1ñh ˜×.Ò.Ó/ÙˆV�V™VÓ$ðAØñAàñAð �VÑñAð �6Ñ
ñ	Að
 
ðAð ˆ6�6˜6Ð!Ñ"óAó %ó 0ñAñL ˜ŸšÓ%ð,ˆ~ð ,¨ó ,ó &ñ,ñ ˜ŸšÓ$Ùƒð#.Øñ#.Ø,ð#.Ø36ñ#.ØAOð#.àó#.ó ó %ñ#.ðN ‡‚×Ò×Ò˜+×?Ò?Ó@ð !%Ø $Ø#ØØØØ#Ø%)òg?Øñg?àñg?ð ˜‘ñg?ð ˜‘ñ	g?ð
 �VÑñg?ð ñg?ð ñg?ð ñg?ð �t‰nñg?ð ˜T‘Nðg?ð óg?ó Añg?ðV ‡‚×Ò×Ò˜K×AÒAÓBð !%Ø $Ø#ØØØ#Ø ØòPØñPàñPð ˜‘ñPð ˜‘ñ	Pð
 �VÑñPð ñPð ñPð �t‰nñPð �S‰MðPð óPó CñPñhØñØ",ñØ9<ðØDGñØORõñ8 ˜ŸšÓ$Ùƒð51ˆfð 51¨ó 51ó ó %ñ51ðp{˜Nñ {Àð {Èõ {ðD<ˆ~ñ < yð <°^õ <ð
&�^ð &¨Nð &¸~õ &ñ ˜Ÿ	š	Ó"Ùƒò,>ˆNñ ,> Hð ,>°Hð ,>Ànó ,>ó ó #ñ,>ñ^ ˜Ÿ
š
Ó#Ùƒà<Bò>Øñ>Øð>Ø)9ð>àó>ó ó $ñ>ñ<
Ð!3ð 
¸õ 
ñ ˜Ÿ
š
Ó#ÙƒóGÐ%ð G¨Cð G¸ó Gó ó $ñGñ  ƒð $(òØðà	ðð �E—K’KÑ ðð ó	ó ññ& ƒñ#Ð&ð #¨>ó #ó ñ#ñ ƒñ#Ð&ð #¨>ó #ó ñ#ðS�ð S cñ S°)ð SÀõ Sñ ˜ŸšÓ$ó
ˆnð 
 3ð 
Ð/Aó 
ó %ñ
ñ  ƒð�*ð  3ñ ¨zñ À:ó ó ñð
�:ð 
 Cñ 
°
ñ 
ÀJõ 
ñ ˜ŸšÓ(Ùƒð<Øð<Øñ<Ø$.ð<Ø7<¸ZÈÐ=SÑ7Tó<ó ó )ñ<ñ ˜×(Ò(Ó)ð;Øð;Øñ;Ø$.ð;Ø7<¸ZÈÐ=SÑ7Tó;ó *ñ;ð+Øð+à	ñ+ð ð+ð �˜ZÐ'Ñ(ñ	+ð õ+ñ\ ƒð òØðà	ñð ñð ð	ð óó ññ ˜×)Ò)Ó*Ùƒð�Jð  Sñ °ó ó ó +ññ" ˜Ÿš×)Ò)Ó*òˆ~ð  H¨XÑ$6ð À.ó ó +ñðB òFØñFà˜v xÐ/Ñ0ðFð 
ðFð ˆ>˜3ÐÑõ	FðT&-Øñ&-Ø,4ð&-à
ˆ>˜3ÐÑõ&-ðT$+Øñ$+Ø,4ð$+à
ˆ>˜3ÐÑõ$+ñN ˜Ÿ	š	ŸšÓ&Ùƒð ò1Ø
ñ1àð1ð ó1ó ó 'ñ1ñ ˜×-Ò-Ó.Ùƒð ØØòØñà	ñð ñð ñ	ð
 ðð óó ó /ññ$ ˜ŸšÓ&ð ØØò	&Ø
ñ&àñ&ð ñ&ð ð	&ð
 ó&ó 'ñ&ñR ˜ŸšÓ(Ùƒð ØØó	53Øñ53àñ53ð ñ53ð ð	53ð
 ó53ó ó )ñ53ñp ˜ŸšÓ(Ùƒñ!$ $ ~Ñ"6ð !$¸>ó !$ó ó )ñ!$ñH)˜˜nÑ-ð )°.õ )ð
(ˆnñ 
(¨ð 
(Ð5Gõ 
(ñ ˜ŸšŸšÓ'ð9ˆó 9ó (ñ9ð$	ˆð 	˜Nõ 	ñ ˜Ÿ
š
Ó#ðˆ^ð  ó ó $ññ ˜ŸšÓ'ð	*�ñ 	* sñ 	*°#ð 	*¸.ó 	*ó (ñ	*ñ �	ñ ˜ŸšÓ$ð+Ø
ñ+Ø%(ð+Ø03ñ+Ø;>ð+àó+ó %ñ+ñ ˜×(Ò(Ó)Ùƒð�nñ °ð ¸Cñ Àsó ó ó *ñð $(Ø ò9ð ð9ð 
ð	9ð �E—K’KÑ ð9ð 
�&Ñ	ð9ð õ9ñ0 ˜ŸšÓ$ð
 $(Ø òTØðTà	ðTð �E—K’KÑ ð	Tð
 
�&Ñ	ðTð óTó %ñTñ ˜ŸšÓ%ð
 $(Ø òUØðUà	ðUð �E—K’KÑ ð	Uð
 
�&Ñ	ðUð óUó &ñUñ ˜ŸšÓ'ð3�ð 3 cð 3¨nó 3ó (ñ3ñ ˜Ÿ	š	×)Ò)Ó*ð=ˆNñ = Ið =°.ó =ó +ñ=ð
#�.ð #¨ð #¸Nõ #ð
ˆ^ð  õ ñ ƒàAEò!DØ‡|�|ñ!DØ#Ÿl™lð!DØ19¸#±ð!Dà
‡\�\ó!Dó ñ!DñH ƒð $(Ø Ÿ=š=Ø'+ØØØ).×)@Ò)@ó#à�E—K’KÑ ð#ð �LŠLð#ð �^Ñ$ñ	#ð
 ð#ð ð#ð ×&Ò&ð#ð ó#ó ñ#ñL ƒð $(Ø Ÿ=š=Ø'+ØØñð �E—K’KÑ ðð �LŠLð	ð
 �^Ñ$ñð ðð ðð óó ññ$ ˜ŸšÓ'Ùƒð
 $(Ø%)Ø'+ØóØðà
ðð �E—K’KÑ ð	ð
 �U—\’\Ñ"ðð �^Ñ$ðð ðð óó ó (ññ, ˜×.Ò.Ó/Ùƒð $(Ø%)Ø'+ØóØðà
ñð ðð
 �E—K’KÑ ðð �U—\’\Ñ"ðð �^Ñ$ðð ðð óó ó 0ññ8 ˜Ÿ
š
×*Ò*Ó+Ùƒð $(Ø Ÿ=š=Ø'+ØØóà�E—K’KÑ ðð �LŠLðð �^Ñ$ð	ð
 ñð ðð óó ó ,ññ0 ˜ŸšÓ'Ùƒð
 $(Ø%)Ø'+ØØóØðà
ðð �E—K’KÑ ð	ð
 �U—\’\Ñ"ðð �^Ñ$ðð ñð ðð óó ó (ññ2 ˜Ÿ	š	×)Ò)Ó*Ùƒð $(Ø Ÿ=š=Ø'+ØØóà�E—K’KÑ ðð �LŠLðð �^Ñ$ð	ð
 ñð ðð óó ó +ññ0 ˜ŸšÓ&Ùƒð
 $(Ø%)Ø'+ØØóØðà
ðð �E—K’KÑ ð	ð
 �U—\’\Ñ"ðð �^Ñ$ðð ñð ðð óó ó 'ññ2 ˜ŸšÓ&Ùƒð $(Ø%)Ø'+ØóØðà
ñð ðð
 �E—K’KÑ ðð �U—\’\Ñ"ðð �^Ñ$ðð ðð óó ó 'ññ0 ˜ŸšÓ(Ùƒð $(Ø'+Ø%)ØØØ).×)>Ò)>ó&Øð&ð �E—K’KÑ ð&ð �^Ñ$ð	&ð
 �U—\’\Ñ"ð&ð ñ&ð ð&ð ×&Ò&ð&ð ó&ó ó )ñ&ñR ˜Ÿš×/Ò/°·²×1FÒ1FÐGÓHÙƒàØ $Øñ`ð
 $(Ø Ÿ=š=Ø'+ØØô`Øñ`à	�*Ñ	ñ`ð ð`ð
 �E—K’KÑ ð`ð �LŠLð`ð �^Ñ$ð`ð ñ`ð ð`ð ó`ó ó Iñ`ñF ˜Ÿ	š	Ó"ÙƒÙ#Ù2Ø7×?Ñ?ôñ8�ñ 8˜Vñ 8¨U°6¸:Ð3EÑ-Fó 8ó	ó ó #ñ8ñ2 ˜ŸšÓ&Ùƒð $(Ø'+Ø Ÿ=š=ØØôT/Ø�˜^Ð+Ñ,ñT/à	ˆz˜>Ð)Ñ	*ñT/ð ðT/ð
 �E—K’KÑ ðT/ð �^Ñ$ðT/ð �LŠLðT/ð ñT/ð ðT/ð óT/ó ó 'ñT/ñn ˜ŸšÓ&Ùƒð
 ñ	8@ð $(Ø'+Ø Ÿ=š=ØØô8@Ø�˜^Ð+Ñ,ñ8@à	ˆz˜>Ð)Ñ	*ñ8@ð ñ8@ð ð	8@ð �E—K’KÑ ð8@ð �^Ñ$ð8@ð �LŠLð8@ð ñ8@ð ð8@ð ó8@ó ó 'ñ8@ðv 
ñ	�h˜~Ñ.ñ 	¸#ó 	ó 
ñ	ð 
ñ	�~ñ 	°ó 	ó 
ñ	ñ ˜ŸšÓ&ñ>Ø�N D¨Ñ$8¸%ÀÑ:OÐOÑPñ>àð>ð 
ˆ.Ñó>ó 'ñ>ðD;Øñ;à�#Ð'Ð'Ñ(ñ;ð �sÐ,Ð,Ñ-ð;ð õ	;ñ~ ˜×*Ò*Ó+Ùƒð
 $(Ø'+Ø Ÿ=š=ØØôØ�˜E )Ñ,Ð,Ñ-ñàðð �E—K’KÑ ð	ð
 �^Ñ$ðð �LŠLñð ðð ðð óó ó ,ññ6 ˜ŸšÓ!Ùƒð ñ")ð $(Ø Ÿ=š=Ø'+ØØô")Ø
ñ")à��}ð")ð �E—K’KÑ ð	")ð
 �LŠLð")ð �^Ñ$ð")ð ñ")ð ð")ð ó")ó ó "ñ")ñP ˜Ÿš×*Ò*¨D¯IªI¯MªMÐ:Ó;Ùƒð
 $(Ø Ÿ=š=Ø'+ØØô%Øñ%àð%ð �E—K’KÑ ð	%ð
 �LŠLð%ð �^Ñ$ð%ð ñ%ð ð%ð ó%ó ó <ñ%ð> $(Ø%)Ø'+ØØØ).×)>Ò)>óØñàðð �E—K’KÑ ð	ð
 �U—\’\Ñ"ðð �^Ñ$ðð ñð ðð ×&Ò&ðð õñ. ˜ŸšÓ(Ùƒð $(Ø%)Ø'+ØØØ).×)>Ò)>óØðð �E—K’KÑ ðð �U—\’\Ñ"ð	ð
 �^Ñ$ðð ñð ðð ×&Ò&ðð óó ó )ññ, ˜ŸšÓ'Ùƒð $(Ø%)Ø'+ØØØ).×)>Ò)>óØðð �E—K’KÑ ðð �U—\’\Ñ"ð	ð
 �^Ñ$ðð ñð ðð ×&Ò&ðð óó ó (ññ, ˜Ÿ
š
×*Ò*Ó+Ùƒð $(Ø'+Ø%)ØØóà�E—K’KÑ ðð �^Ñ$ðð �U—\’\Ñ"ñ	ð
 ðð ðð óó ó ,ñð8 $(Ø Ÿ=š=Ø'+Øó>Øð>ð �E—K’KÑ ð>ð �LŠLð	>ð
 �^Ñ$ð>ð ð>ð õ>ð, $'Ø$'óXØñXà	ˆt�S˜%ÐÑ	 ñXð ��c˜5Ð Ñ
!ðXð
 �;Š;ðXð ðXð õXñ* ˜×(Ò(Ó)Ùƒð)�>ñ )¨ð )Ð@Vó )ó ó *ñ)ñX ˜×)Ò)Ó*ðØñØ+ðØ4Jðàóó +ñð ØØòØðàðð ðð ð	ð
 ðð 
õð"ˆ^ð  ð °4õ ñ& ˜Ÿ	š	Ó"Ù˜Õð &+Ø"Øñ	Mð $(óMØñMà��e˜S�jÑ!Ñ"ðMð 
�(Ñ	ðMð ð	Mð �E—K’KÑ ðMð óMó ó #ñMñ2 ˜Ÿ
š
Ó#Ùƒð*�ð * >ó *ó ó $ñ*ôò ˜[Ó)�Ú˜lÓ+�	Ú˜Ó�ñ ˜Ÿ	š	Ó"Ùƒò3ˆNñ 3 cð 3°.ó 3ó ó #ñ3ñ ˜Ÿ	š	Ó"Ùƒò3ˆNñ 3 cð 3°.ó 3ó ó #ñ3ñ(7˜ñ 7 3ñ 7°ð 7¸¸cÀ3È¸mÑ8Lõ 7ð$Ø
ñà	ñð 
ðð �;Š;ð	ð
 �LŠLðð õñ" ˜×)Ò)Ó*Ùƒð ñ"ð
 ŸšØ Ÿ=š=Ù"Øô"Ø	ñ"à	ñ"ð ð"ð
 �;Š;ð"ð �LŠLð"ð ð"ð ð"ð ó"ó ó +ñ"ñR7˜ñ 7 3ñ 7°ð 7¸¸cÀ3È¸mÑ8Lõ 7ñ" ˜×)Ò)Ó*Ùƒð ñ&ð
 ŸšØ Ÿ=š=Ù"Øô&Ø	ñ&à	ñ&ð ð&ð
 �;Š;ð&ð �LŠLð&ð ð&ð ð&ð ó&ó ó +ñ&ñR ˜ŸšÓ'Ù˜Õð
 Øó7%Øñ7%àñ7%ð ñ	7%ð
 ó7%ó ó (ñ7%ñt ˜ŸšÓ$ÙƒÙ#Ø!Ø7×?Ñ?ôôOó	ó ó %ñOñ  ˜×(Ò(Ó)ÙƒÙ#Ø!Ø7×?Ñ?ôô#ó	ó ó *ñ#ñ6 ˜ŸšÓ'ÙƒÙ#Ø!Ø7×?Ñ?ôôQó	ó ó (ñQñ ˜ŸšÓ(ÙƒÙ#Ø!Ø7×?Ñ?ôô:ó	ó ó )ñ:ñ" ˜ŸšÓ$ÙƒÙ#ñð 8×?Ñ?ôð 
Ø	Ø	ñ1'ð
 Ø
ØØØõ1'óó ó %ñ1'ñh ˜ŸšÓ%ñH¨dõ Hó &ñHñ #Ð#B×#OÑ#OÓPð�.ó ó Qññ #Ð#B×#OÑ#OÓPð�.ó ó Qññ ˜×*Ò*Ó+Ùƒò ˜X hÑ/ó  ó ó ,ñ ô=ñ ˜ŸšÓ!ÙƒÙ#Ù)Ø7×?Ñ?ôò ó	ó ó "ñ ñ ˜Ÿ	š	Ó"ÙƒÙ#Ù)Ø7×?Ñ?ôò0ó	ó ó #ñ0ñ" ˜×+Ò+Ó,Ùƒð%�nñ %¨>ð %Àñ %ÈCó %ó ó -ñ%ñ �SÓ�Ù�dÓ�Ù	�uÓ	�Ù�SÓ�Ù˜Ó!�Ù˜Ó!�Ù�dÓ�Ù	�uÓ	�Ù�dÓ�Ù	�uÓ	�Ù	�uÓ	�Ù˜[Ó)�Ù#Ð$6Ó7Ñ Ù˜[Ó)�Ù˜JÓ'�Ù$Ð%8Ó9Ñ Ù˜[Ó)�Ù�dÓ�Ù	�uÓ	�Ù˜9Ó%�
Ù˜9Ó%�
Ù˜}Ó-�Ù˜(Ó#�	Ù�SÓ�Ù�dÓ�Ù
™Ó
�Ù™Ó!�Ù™Ó!�Ù˜Ó!�Ù�SÓ�Ù�BÓ�Ù�SÓ�Ù�dÓ�Ù
˜Ó
�Ù�SÓ�Ù�dÓ�Ù	�uÓ	�Ù˜[Ó)�Ù	�uÓ	�Ù˜lÓ+�Ù�dÓ�Ù�dÓ�Ù�SÓ�Ù�BÓ�Ù�BÓ�Ù˜9Ó%�
Ù	�uÓ	�Ù
˜Ó
�Ù˜Ó!�Ù�BÓ�Ù�SÓ�Ù�BÓ�Ù‘dÓ�Ù
˜Ó
�Ù	�uÓ	�Ù	�uÓ	�Ù�dÓ�Ù�SÓ�Ù˜[Ó)�Ù˜[Ó)�Ù˜JÓ'�Ù˜[Ó)�Ù�BÓ�Ù�SÓ�Ù˜(Ó#�	Ù˜JÓ'�Ù�BÓ�Ù�SÓ�Ù˜9Ó%�
Ù�SÓ�Ù™Ó!�Ù˜JÓ'�Ù˜9Ó%�
Ù	�uÓ	�Ù�SÓ�Ù˜Ó!�Ù�dÓ�Ù�SÓ�Ù�dÓ�Ù�dÓ�Ù�dÓ�Ù
˜Ó
�Ù�SÓ�Ù�SÓ�Ù�dÓ�Ù‘dÓ�Ù‘dÓ�Ù˜[Ó)�Ù	�uÓ	�Ù	�uÓ	�Ù
™Ó
�Ù™[Ó)�Ù™9Ó%�
Ù™JÓ'�Ù�dÓ�á! $§*¢*Ó-�
Ù& t§¢Ó7�Ù$ T§]¢]Ó3�Ù" 4§;¢;Ó/�ñ # 4§;¢;Ó/�Ù	˜dŸfšfÓ	%�Ù% d§n¢nÓ5�Ù  §¢Ó+�	ôGô
ô4.IñfMØ—’ñMØ"'Ð(>Ð@RÐ(RÑ"SõMð> ö5ðr  t¸ÈU÷ ôH  Ü Ü Ü  Ý r4  