Ë
    ÄÓ^j(€ ã                   ó�j  — 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m	Z	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 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#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:m;Z;m<Z< d dl=m>Z>m?Z?m@Z@mAZAmBZBmCZC d d	lDmEZE g d
¢ZFejŽ                  ZGej�                  j’                  ZIej”                  j–                  j˜                  ZLd„ ZMd„ ZNd„ ZOddœd„ZPd dlQmRZR  eS«       ZTeTdddœdefd„ZUd„ ZVd„ ZW eUe,j°                  d¬«      d„ «       ZY eUe,j´                  «      d„ «       Z[ eUe,j´                  «      d„ «       Z\ eUe,j´                  «      d„ «       Z] eUe,j´                  «      d„ «       Z^ eUe,j´                  «      d„ «       Z_ eUe,j´                  «      d„ «       Z` eUe,jÂ                  «      d „ «       Zb eUe,jÂ                  d¬«      d!„ «       Zc eReLjÈ                  «      d"e:fd#„«       Zd eReLjÊ                  «       eC«       d"e:fd$„«       «       Ze eUe,j´                  «      d%„ «       Zf eUe,j´                  «      d&„ «       Zg eUe,j´                  «      d'„ «       Zh eUe,j´                  «      d(„ «       Zi eUe,j´                  «      d)„ «       Zj eUe,j´                  «      d*„ «       Zk eUe,j´                  «      d+„ «       Zl eUe,j´                  «      d,„ «       Zm eUe,j´                  «      d-„ «       Zn eC«        eAd.e,jÞ                  ¬/«      d0e:d1e4de:fd2„«       «       Zpd0e:d1e4de:fd3„Zq eReLjä                  «       eC«       d"e:de:fd4„«       «       Zr eUe,jÂ                  d¬«      d5„ «       Zs eUe,jÂ                  d¬«      d6e:de:fd7„«       Ztd0e:de:fd8„Zu eUe,jì                  d¬9«      d0e:de:fd:„«       Zw eUe,jì                  «      d0e:de:fd;„«       Zx eUe,jì                  d¬«      d0e:de:fd<„«       Zy eUe,jì                  d¬«      d0e:de:fd=„«       Zz eUe,jì                  «      d0e:de:fd>„«       Z{ eVejø                  jú                  d?«      Z~ eUe,jì                  d¬9«      d0e:de:fd@„«       Z eUe,j´                  eL�j                   ¬9«      dA„ «       Z€ eUe,j´                  «      dB„ «       Z� eUe,j´                  «      dC„ «       Z‚ eUe,j´                  «      dD„ «       Zƒ eUe,j´                  «      dE„ «       Z„ eUe,j´                  «      dF„ «       Z… eC«       	 �dñd0e:dGe†dHe�j                  dz  de:fdI„«       Zˆ eReL�j                  «       eC«        eAdJe,j´                  ¬/«      	 �dòdKe:dGe*dLeŠde:fdM„«       «       «       Z‰ eReL�j                  «       eC«       	 	 	 �dód0e:dNe4dz  dOe4dz  dPe4dz  de:f
dQ„«       «       Z‹d0e:fdR„ZŒ eUe,jÂ                  eŒ¬S«      dT„ «       Z�d0e:de:fdU„ZŽd0e:de:fdV„Z� eUe,j´                  «      dW„ «       Z� eReL�j"                  «       eC«        eAd.e,jÂ                  ¬/«      d dXœd0e:dYe†de:fdZ„«       «       «       Z‘ eUe,j´                  «      d[„ «       Z’ eUe,j´                  «      d0e:de:fd\„«       Z“ eUe,jÂ                  d¬«      d]„ «       Z” eUe,jÂ                  d¬«      d^„ «       Z• eUe,jì                  d¬«      d_„ «       Z– eUe,j´                  «      d`„ «       Z— eUe,j´                  «      da„ «       Z˜ eUe,j´                  «      db„ «       Z™ eUe,j´                  «      dc„ «       Zš eUe,�j6                  d¬9«      d0e:de:fdd„«       Zœ eUe,j´                  «      de„ «       Z� eUe,j´                  «      df„ «       Zž eUe,jÂ                  d¬«      dg„ «       ZŸdKe:de:fdh„Z eTddddddfdefdi„Z¡d0e:e4z  dje:e4z  de�j                  fdk„Z¢ eReL�jF                  «       eC«        eAdle,jÂ                  ¬/«      ddmœd0e:e4z  dje:e4z  dne4dz  fdo„«       «       «       Z£ e¡e,j´                  dd¬p«      dq„ «       Z¤ e¡e,jÂ                  ¬r«      d0e:dje:de:fds„«       Z¥ e¡e,jÂ                  ¬r«      d0e:dje:de:fdt„«       Z¦ e¡e,jÂ                  ¬r«      d0e:dje:de:fdu„«       Z§ e¡e,jÂ                  ¬r«      d0e:dje:de:fdv„«       Z¨ e¡e,jÂ                  ¬r«      d0e:dje:de:fdw„«       Z© e¡e,j´                  d¬x«      d0e:e4z  dje:e4z  fdy„«       Zª eReL�jV                  «       eC«       ddzœd0e:e4z  dje:e4z  d{e¬dz  fd|„«       «       Z« e¡e,jì                  d¬x«      d0e:dje:de:fd}„«       Z­ e¡e,�j6                  ¬r«      d0e:e4z  dje:e4z  de:fd~„«       Z® eC«       d0e:e4z  dje:e4z  deGfd„«       Z¯ e¡ejX                  jÂ                  dd¬€«      d0e:e4z  dje:e4z  fd�„«       Z°d0eGdjeGdeGfd‚„Z±d0eGdjeGdeGfdƒ„Z² e¡e,jÂ                  dd¬p«      d0e:dje:de:fd„„«       Z³ e¡e,jÂ                  dd¬p«      d0e:dje:de:fd…„«       Z´ e¡e,jÂ                  dd¬p«      d0e:dje:de:fd†„«       Zµ eReL�jl                  «       eCd‡dˆ«      dKe:de·e:e:f   fd‰„«       «       Z¶ e¡e,jÂ                  dd¬p«      d0e:dje:de:fdŠ„«       Z¸ e¡e,jì                  d¬x«      d0e:dje:de:fd‹„«       Z¹ e¡e,jì                  d¬x«      d0e:dje:de:fdŒ„«       Zº e¡e,jÂ                  dd¬p«      d"e:d�e:de:fdŽ„«       Z» e¡e,jÂ                  dd¬p«      d0e:dje:de:fd�„«       Z¼ e¡e,j´                  dd¬p«      d0e:dje:de:fd�„«       Z½ e¡e,j´                  dd¬p«      d0e:dje:de:fd‘„«       Z¾d’e¬d0e:dje:d“e¿d”e¿ddfd•„ZÀ	 	 	 �dôd0e:dje:d“e¿d”e¿d–eŠde:fd—„ZÁ e¡e,jÂ                  dd¬p«      d0e:dje:fd˜„«       ZÂ e¡e,jì                  d¬x«      d0e:dje:de:fd™„«       ZÃ e¡e,jÂ                  dd¬p«      d0e:dje:de:fdš„«       ZÄ e¡e,jÂ                  dd¬p«      d0e:dje:de:fd›„«       ZÅ e¡e,jì                  ¬r«      d0e:dje:fdœ„«       ZÆ eUe,jì                  «      d0e:fd�„«       ZÇ e¡e,jì                  ¬r«      d0e:dje:fdž„«       ZÈ e¡e,jì                  ¬r«      d0e:dje:fdŸ„«       ZÉ e¡e,jì                  d¬x«      d0e:dje:de:fd „«       ZÊ e¡e,jÂ                  ¬r«      d0e:dje:de:fd¡„«       ZË e¡e,jÂ                  ¬r«      d0e:dje:de:fd¢„«       ZÌ e¡e,jÂ                  d¬£«      d0e:dje:de:fd¤„«       ZÍ e¡e,jì                  d¬x«      d0e:dje:de:fd¥„«       ZÎ e¡e,jÞ                  dd¬p«      d0e:dje:de:fd¦„«       ZÏ e¡e,jÂ                  ¬r«      d0e:dje:de:fd§„«       ZÐ eReL�j¢                  «       eC«       	 �dõd0e:e4z  dje:e4z  dne4fd©„«       «       ZÑ eReL�j¤                  «       eC«        eAdle,jÂ                  ¬/«      d¨dmœd0e:e4z  dje:e4z  dne4fdª„«       «       «       ZÒ e¡e,j´                  d«dd¬¬«      d0e:dje:de:fd­„«       ZÓ eReL�j¨                  «       eC«        eAdle,j´                  ¬/«      d0e:e4z  dje:e4z  fd®„«       «       «       ZÔ e¡ejX                  jÂ                  dd¬¯«      d0e:e4z  dje:e4z  fd°„«       ZÕ eReL�j¬                  «       eC«        eAd±e,j´                  ¬/«      d¨d²œdKe:d³e:d´e:d1e4de:f
dµ„«       «       «       ZÖ eReL�j®                  «       eC«        eAd±e,jÂ                  ¬/«      d¨d²œdKe:d³e:d´e:d1e4de:f
d¶„«       «       «       Z× eReL�j°                  «       eC«        eAd·e,jÂ                  ¬/«      	 	 �död0e:d¸e;dz  d¹e;dz  de:fdº„«       «       «       ZØ eReL�j²                  «       eC«       	 �dñdKe:d¸e;dz  de:fd»„«       «       ZÙ eReL�j´                  «       eC«       	 �dñdKe:d¹e;dz  de:fd¼„«       «       ZÚ eReL�j¶                  �j¸                  «      d½eGde·eGd¾f   fd¿„«       ZÝ eReL�j¶                  �j¼                  «       eReL�j¶                  �j¾                  «       eReL�j¶                  �jÀ                  «       eReL�j¶                  �jÂ                  «       eReL�j¶                  �jÄ                  «       eCd¬«       eAdle,jÞ                  ¬/«      	 	 �död½eGd0e;dz  dje;dz  fdÀ„«       «       «       «       «       «       «       ZÛ eReL�jÆ                  «       eC«       e�jÈ                  dÁœd0e:dÂe�jÊ                  de:fdÃ„«       «       ZãddÄœd0eGdjeGfdÅ„Zæ eReL�jÎ                  «      d0e:de4fdÆ„«       Zç	 	 	 	 	 	 	 �d÷d0e:dÇe'dz  dHe�j                  dz  dÈeŠdz  dÉe�jÐ                  dz  dÂe�jÊ                  dz  dÊeŠdz  dËeŠdeŠfdÌ„ZéedÍ„ «       Zêeê�jÖ                  	 	 	 �dødÇe�jØ                  dHe�j                  dËeŠdÈeŠdÂe�jÊ                  dz  deíe¬ef   fdÎ„«       Zîeê�jÖ                  	 	 	 �dødÇe¬dHe�j                  dËeŠdÈeŠdÂe�jÊ                  dz  deíe¬ef   fdÏ„«       Zïeê�jÖ                  	 	 	 �dødHe�j                  dËeŠdÈeŠdÂe�jÊ                  dz  deíe¬ef   f
dÐ„«       Zðeê�jÖ                  	 	 	 �dødÑeGdËeŠdÈeŠdÂe�jÊ                  dz  deíe¬ef   f
dÒ„«       Zñd0eGdÓeífdÔ„Zòd0e:de:fdÕ„ZódddddddÖœd0e:d×edØeŠdÙeŠdÚe*dz  dÛeŠdHe�j                  dz  dÜeGdz  dÝe6de:fdÞ„Zô�dòdß„Zõ eReL�jì                  «       eC«       	 	 �dùd0e:dGe*dz  dLeŠde:fdà„«       «       Zö eReL�jî                  «       eC«       	 	 �dùd0e:dGe*dz  dLeŠde:fdá„«       «       Z÷ eReL�jð                  �jò                  eL�jð                  �jô                  g«      	 	 �dùdddâœd0e:dGe†dz  eûe†   z  dLeŠdHe�j                  dz  dÜeGdz  de:fdã„«       Zød0eGdeGfdä„Zü eReL�jú                  «      	 	 �dùdddâœd0e:dGe†dz  eûe†   z  dLeŠdÜeGdz  de:f
då„«       Zý eReL�jü                  «      	 	 �dùddæœd0e:dGe*dz  dLeŠdÜeGdz  de:f
dç„«       Zþ eReL�jþ                  «      	 	 �dùddæœd0e:dGe*dz  dLeŠdÜeGdz  de:f
dè„«       Zÿ�dödé„�Z  eReL�j                  «       eC«       	 	 	 �dúddêœd0e:dGe*dz  dëeŠdz  dLeŠdìe4dz  de:fdí„«       «       �Z eReL�j                  «       eC«       	 	 	 �dúddêœd0e:dGe†dz  eûe†   z  dëeŠdz  dLeŠdìe4dz  de:fdî„«       «       �Z eReL�j                  «      	 	 �dùdddâœd0e:dGe*dz  dLeŠde:fdï„«       �Z eReL�j                  «       eCdðdñ«      	 �dñddddòœd0e:dGe*dz  dëeŠdz  dLeŠdìe4dz  f
dó„«       «       �Z eReL�j
                  «       eCdðdñ«      	 	 	 �dúddêœd0e:dGe*dz  dëeŠdz  dLeŠdìe4dz  f
dô„«       «       �Z eReL�j                  «       eC«        eAdõe,jÂ                  ¬/«      d¨d¨döœdKe:d÷e:døe:dùe4dne4de:fdú„«       «       «       �Zdûe:e
e:   z  düe:de:e·e:d¾f   z  fdý„�ZdþedGe†dûe:de:fdÿ„�Zdûe:e
e:   z  düe:de:e·e:d¾f   z  f�d „�Z	dûe:e
e:   z  düe:de:e·e:d¾f   z  f�d„�Z
	 �dñd0e:�de7�de8�de†dz  de:f
�d„�Z eReL�j                  «       eC«       	 �dñd"e:�de:�de7�de8�de†dz  de:f�d„«       «       �Zde7f�d„�ZeL�j                  �j¸                  �j                  eI�j                   «      eL�j                  �j¸                  �j                  eI�j"                  «      deûe:   f�d	„«       «       �Zd0e:�de7de:f�d
„�Z eReL�j&                  «       eC«        eA�de,jÞ                  ¬/«      �dû�de<dGe†de:f�d„«       «       «       �Z eC«       �de<de:f�d„«       �Zd"e:de:f�d„�Z eReL�j,                  «       eC«       	 �dûd"e:�deûe†   d1e4de:f�d„«       «       �Ze�j.                  dÁœd0eGdÂe�jÊ                  deGf�d„�Z eC«       �de<de:f�d„«       �Z eReL�j4                  «      d�dœd0eG�deŠdeGf�d„«       �Zd0eGdjeGdeGf�d„�Z�dûd0e:�de†dGe†de·e:d¾f   f�d„�Z�düd0e:�de†�de†de:f�d„�Z eReL�j<                  «       eC«       d0e:dÚe)de:f�d„«       «       �Zd0e:de:f�d„�Zd0e:de:f�d„�Z d0e:dGe†�d e†e:z  �d!e†de:f
�d"„�Z!d0eG�d#e*�d$e¿de·eGeGeGf   f�d%„�Z"d6e:�d&eûe†   de:f�d'„�Z# eReL�jH                  �j¸                  «      d"eG�d(eGdz  �d)eGdz  �d*e†�d+e†�d,e†�d-e†�d$e¿de·eGeGeGf   f�d.„«       �Z$ eReL�jJ                  «       eCdðdñ�d/«      d"eG�d0e7�d(eGdz  �d)eGdz  �d$e¿de·eGeGeGf   f�d1„«       «       �Z%e�jL                  �jN                  �jQ                  eL�jJ                  �j¸                  «      �d2„ «       �Z) eReL�jT                  «      d0e:de:f�d3„«       �Z* eReL�jV                  «       eC«       d"e:�d4e5dGe†�d5e5de:f
�d6„«       «       �Z+eL�jX                  �jZ                  �j                  eI�j                   «      	 	 	 	 	 	 	 	 	 �dýd"eG�d7e†�d8e†dz  �d9e†dz  �d:eGdz  �d;eŠ�d<e¬�d=eŠ�d>eŠdz  �d?eŠdz  �d@eŠdz  deGf�dA„«       �Z,eL�j\                  �j¸                  �j                  eI�j                   «      	 	 	 	 	 	 	 	 �dþd"eG�d7e†�d8e†dz  �d9e†dz  �d:eGdz  �d;eŠ�d=eŠ�d>eŠdz  �d!e†dz  deGf�dB„«       �Z.�dCe7�dDe8�dEe†�de†�dFe†f
�dG„�Z/ eReL�j`                  «       eC«       d0eGdeGf�dH„«       «       �Z0d0e:�dIeŠde:f�dJ„�Z1d0e:�dIeŠde:f�dK„�Z2d0e:�dLe7de:f�dM„�Z3dKe:dÑe:de:f�dN„�Z4 eReL�jj                  «       eC«       �dÿd0e:�dOe*dÚe*de:f�dP„«       «       �Z5 eReL�jl                  «       eC«       	 �d d0e:�dRe†dÚe)de:f�dS„«       «       �Z6�de<ddf�dT„�Z7 eReL�jp                  «       eC«       �dû�de<dGe†de:f�dU„«       «       �Z8 eC«       	 �dñd0e:dGe†dHe�j                  dz  de:f�dV„«       �Z9 eC«       �de<de:f�dW„«       �Z: eC«       �de<de:f�dX„«       �Z;d0e:dGe†�dYe7de:f�dZ„�Z< eReL�jz                  «      �dû�d[e:dGe†de<f�d\„«       �Z= eC«       d6e9dGe†�d]e9�d^e9f�d_„«       �Z>d6e9dGe†�d]e9�d^e9f�d`„�Z? eReL�j€                  «       eC«       d6e9dGe†�d]e9d1e4e9z  f�da„«       «       �Z@ eReL�j‚                  «      d6e9dGe†�d]e9d1e4e9z  f�db„«       �ZAd6e9dGe†�d]e9d1e4e9z  �dceŠf
�dd„�ZB eC«       d¨dmœd6e9dGe†�d]e9�d^e9dne4f
�de„«       �ZC eReL�jˆ                  «       eC«       d6e9dGe†�d]e9f�df„«       «       �ZD eReL�jŠ                  �jŒ                  «      �dñd0e:dGe*dz  de:f�dg„«       �ZE eReL�jŽ                  «      	 �dûdKeG�dheûe†   dGe†deûeG   f�di„«       �ZG	 �dûd0e:�djeGe*z  dGe†de·e:d¾f   f�dk„�ZHd0e:�dje*de·e:d¾f   f�dl„�ZId0e:�dje*de·e:d¾f   f�dm„�ZJ eReL�j–                  �j˜                  «       eC«       	 �dûdKe:�dne†de:f�do„«       «       �ZK eReL�jš                  «       eC«       	 	 	 �dd"e:�de:�dne†�dpe†�dqe†de:f�dr„«       «       �ZM eReL�jœ                  «      	 	 	 �ddKe:�dne†�dpe†�dqe†de:f
�ds„«       �ZN eReL�jž                  «       eC«       	 	 	 �d�d[e:�dne†�dpe†�dqe†de:f
�dt„«       «       �ZO eReL�j                   «       eC«       �deûe:   de:f�du„«       «       �ZQ�deûe:   de:f�dv„�ZPd0e:�dwe*de<f�dx„�ZR eReL�j¦                  �j¸                  «      d0e:f�dy„«       �ZSd0e:de:f�dz„�ZT eReL�jª                  «      d0e:de:f�d{„«       �ZU eReL�j¬                  «      d0e:�d|e†�dpe†de:f�d}„«       �ZV�eV�ZW eReL�j°                  «      dKe:�dEe†�de†�dFe†de:f
�d~„«       �ZX eReL�j²                  «       eC«       dKe:�dEe†�de†�dFe†f�d„«       «       �ZYdddâœd0e:dGe†dHe�j                  dz  dÜeGdz  de:f
�d€„�ZZ eReL�j¶                  «      dddâœd0e:dGe†dHe�j                  dz  dÜeGdz  de:f
�d�„«       �Z[ eReL�j¸                  «      dddâœd0e:dGe†dHe�j                  dz  dÜeGdz  de:f
�d‚„«       �Z\ eReL�jº                  «      d0e:dGe†de:f�dƒ„«       �Z] eReL�j¼                  �j¸                  «      d0e:�dLe7e·e7   z  de:f�d„„«       �Z^dKe:dÑe:de:f�d…„�Z_d0e:de:f�d†„�Z` eC«       	 �dñd0ejŽ                  �d‡ejŽ                  dGe†dz  dejŽ                  f�dˆ„«       �Za eC«       de�jÄ                  ddde�j.                  �d‰œdHe�j                  dz  dÉe�jÐ                  dÇe'dz  �dŠeŠdÊeŠdÂe�jÊ                  de:f�d‹„«       �Zc eC«       de�jÄ                  dddfdHe�j                  dz  dÉe�jÐ                  dÇe'dz  �dŠeŠdÊeŠde:f�dŒ„«       �Zd eReL�jÊ                  «       eC«       dddd�d�œd0e:�de7dHe�j                  dz  dÉe�jÐ                  dz  dÇe'dz  dÊeŠde:f�dŽ„«       «       �Ze eReL�jÌ                  «       eC«       dddd�d�œd0e:�de7�de8dHe�j                  dz  dÉe�jÐ                  dz  dÇe'dz  dÊeŠde:f�d�„«       «       �Zf eReL�jÎ                  �j¸                  «       eC«       de�jÄ                  ddd�d�œdHe�j                  dz  dÉe�jÐ                  dÇe'dz  dÊeŠ�dŠeŠde:f�d‘„«       «       �Zg eReL�jÐ                  «       eC«       ddddd�d�œd0e:�de7dHe�j                  dz  dÉe�jÐ                  dz  dÇe'dz  dÊeŠ�dŠeŠde:f�d’„«       «       �Zh eReL�jÒ                  �j¸                  «       eC«       de�jÄ                  ddd�d�œdHe�j                  dz  dÉe�jÐ                  dÇe'dz  dÊeŠ�dŠeŠde:f�d“„«       «       �Zi eReL�jÔ                  «       eC«       ddddd�d�œd0e:�de7dHe�j                  dz  dÉe�jÐ                  dz  dÇe'dz  dÊeŠ�dŠeŠde:f�d”„«       «       �Zj eReL�jÖ                  «       eC«       dddd�d�œd0e:�de7�d•e4dHe�j                  dz  dÉe�jÐ                  dz  dÇe'dz  dÊeŠde:f�d–„«       «       �ZkeL�jÆ                  �j˜                  �j                  eI�j                   «      	 �dñ�de7dÜe:dÂe�jÊ                  dz  de:f�d—„«       �Zl eReL�jÚ                  «       eC«       ddddde�jÈ                  �d˜œd0e:dHe�j                  dz  dÇe'dz  dÉe�jÐ                  dz  dÊeŠ�dŠeŠdÂe�jÊ                  de:f�d™„«       «       �Zm eReL�jÜ                  �jÞ                  eL�jÜ                  �jà                  g«       eC«       	 	 	 �dde�jÄ                  ddd�d�œ�d e4�dše4dz  �dFe4dHe�j                  dz  dÉe�jÐ                  dÇe'dz  dÊeŠ�dŠeŠde:f�d›„«       «       �Zn eReL�jâ                  «       eC«        eA�dœe,jÂ                  ¬/«      �d eG�dšeG�d(eGe4z  f�d�„«       «       «       �Zq eReL�jä                  «       eC«       dde�jÄ                  dd�džœ�d e4e:z  �dše4e:z  �dŸe4dHe�j                  dz  dÇe'dz  dÉe�jÐ                  dÊeŠ�dŠeŠde:f�d „«       «       �Zr eReL�jæ                  «       eC«       	 �ddde�jÄ                  dd�džœ�d e4e:z  �dše4e:z  �dŸe4�d¡e4dHe�j                  dz  dÇe'dz  dÉe�jÐ                  dÊeŠ�dŠeŠde:f�d¢„«       «       �Zse�de
e:   �d£e¬f�d¤„«       �Zte�de:�d£e¬f�d¥„«       �Zt eReL�jè                  «      �de:eûe:   z  e·e:   z  �d£e¬deûe:   f�d¦„«       �Ztd"e:�d§e†e)z  �d¨e†e)z  de:f�d©„�Zu eReL�jì                  «       eC«       dde�jÄ                  dd�dªœ�dLe7e·e7   z  �d«e8dHe�j                  dz  dÇe'dz  dÉe�jÐ                  �dŠeŠdÊeŠde:f�d¬„«       «       �Zv�d­e†de�j                  f�d®„�Zw eReL�jð                  «       eC«       	 �dñde�jÄ                  ddd�d�œ�d¯e†�d°e†dz  dHe�j                  dz  dÉe�jÐ                  dÇe'dz  dÊeŠ�dŠeŠde:f�d±„«       «       �Zx eReL�jò                  �j¸                  eL�jò                  �j˜                  g«       eC«       de�jÄ                  ddd�d�œ�dLe7�d•e4dHe�j                  dz  dÉe�jÐ                  dÇe'dz  dÊeŠ�dŠeŠde:f�d²„«       «       �Zyddddde�jÈ                  �d³œd0e:�d•e4dHe�j                  dz  dÉe�jÐ                  dz  dÇe'dz  dÊeŠ�dŠeŠdÂe�jÊ                  de:f�d´„�Zz eReL�jö                  «       eC«       ddddde�jÈ                  �d³œd0e:dHe�j                  dz  dÉe�jÐ                  dz  dÇe'dz  dÊeŠ�dŠeŠdÂe�jÊ                  de:f�dµ„«       «       �Z{ eReL�jø                  «       eC«       ddddde�jÈ                  �d³œd0e:dHe�j                  dz  dÉe�jÐ                  dz  dÇe'dz  dÊeŠ�dŠeŠdÂe�jÊ                  de:f�d¶„«       «       �Z| eReL�jú                  �j¸                  «       eC«       ddddd�dªœdHe�j                  dz  dÇe'dz  dÉe�jÐ                  dz  �dŠeŠdÊeŠde:f�d·„«       «       �Z}de�jÄ                  dd�d�œd0e4dHe�j                  dz  dÉe�jÐ                  dÇe'dz  dÊeŠde:f�d¸„�Z~	 	 �d�dLe7�d¹eŠe†z  e¿z  �dºeŠe†z  e¿z  �de7dHe�j                  dÇe'de:f�d»„�Z eReL�j                   «       eC«       d0e:�d¼e:d1e;f�d½„«       «       �Z€ eReL�j                  «      d0e:�d¼e:d1e;de:f�d¾„«       �Z�	 	 	 �dôd0e:dje:d“e¿d”e¿d–eŠdeŠf�d¿„�Z‚d0e:dje:deŠf�dÀ„�Zƒ eReL�j                  «       eCd¬«      	 	 	 �dd�dÁœd"e:�d4e¿e¬z  dz  dGe*dz  dLeŠdHe�j                  dz  de:f�dÂ„«       «       �Z„ eReL�j
                  «       eC«       dKe:de:f�dÃ„«       «       �Z…�dÄ„ �Z† �e†eÓ«      �Z‡ �e†e°«      �Zˆ �e†e®«      �Z‰ eReL�j                  «       eC«       �dûd0e:�dÅe†de:f�dÆ„«       «       �ZŠ eReL�j                  «       eC«       �dûd0e:�dÅe†de:f�dÇ„«       «       �Z‹�dÈe†�dÉe†�dne†de·e†e†e†f   f�dÊ„�ZŒd’e¬�dÈe†�dÉe†dHe�j                  dÉe�jÐ                  dÊeŠf�dË„�Z� eReL�j                  «       eC«       	 �dûe�j                  e�jÄ                  �dÌd�d�œ�dÈe†�dÉe†�dne†dHe�j                  dÉe�jÐ                  dÇe'dÊeŠde:f�dÍ„«       «       �ZŽ�dÈe†�dÉe†�dne†de·e†e†e†f   f�dÎ„�Z� eReL�j"                  «       eC«       	 �dûe�j                  e�jÄ                  �dÌd�d�œ�dÈe†�dÉe†�dne†dHe�j                  dÉe�jÐ                  dÇe'dÊeŠde:f�dÏ„«       «       �Z‘ eReL�j$                  «       eCd¬«      dd�dÐœd0e;�dÑe:�dÒeŠ�dÓeŠf�dÔ„«       «       �Z’ eReL�j&                  «       eC«        eAdJe,jÂ                  ¬/«      �d�dÕ„«       «       «       �Z“ eReL�j(                  «       eC«        eAdJe,jÂ                  ¬/«      �d�dÖ„«       «       «       �Z” eReL�j*                  «       eC«        eAdJe,jÂ                  ¬/«      �dñ�d×„«       «       «       �Z• eReL�j,                  «       eC«        eAdJe,jÂ                  ¬/«      �d	�dØ„«       «       «       �Z– eReL�j.                  «       eC«        eA�dÙe,jÂ                  ¬/«      	 	 	 �dddddd�dÚœ�dÛ„«       «       «       �Z— eReL�j0                  «      �dQd�dÜœ�dÝ„«       �Z˜ eUe,j´                  «      dKe:f�dÞ„«       �Z™ eUe,j´                  «      dKe:f�dß„«       �Zš eReL�j6                  «       eC«       �dñdGe*dz  f�dà„«       «       �Z›�dá„ �Zœ�dâ„ �Z� eReL�j<                  «       eCd¬«      �e� eA�dãe,jÂ                  ¬/«      �dä„ «       «       «       «       �Zž eReL�j>                  «       eCd¬«      �e� eA�dãe,jÂ                  ¬/«      �då„ «       «       «       «       �ZŸ eReL�j@                  «       eC«       d6e:�de:dGe†�d]e†f�dæ„«       «       �Z  eWeY«      �Z¡ eWe[«      �Z¢ eWe\«      �Z£ eWe£«      �Z¤ eWe×«      �Z¥ eWeÖ«      �Z¦ eWe]«      �Z§ eWe^«      �Z¨ eWe_«      �Z© eWe`«      �Zª eWe¤«      �Z« eWe¥«      �Z¬ eWe¦«      �Z­ eWeb«      �Z® eWe§«      �Z¯ eWe¨«      �Z° eWe©«      �Z± eWec«      �Z² eWeØ«      �Z³ eWeÙ«      �Z´ eWeÚ«      �Zµ eWee«      �Z¶ eWeª«      �Z· eWef«      �Z¸ eWeg«      �Z¹ eW�e[«      �Zº eW�e\«      �Z» eW�eš«      �Z¼ eWeh«      �Z½ eWe««      �Z¾ eWe­«      �Z¿ eWei«      �ZÀ eWek«      �ZÁ eWej«      �ZÂ eWel«      �ZÃ eWen«      �ZÄ eWem«      �ZÅ eWe¯«      �ZÆ eWes«      �ZÇ eWe°«      �ZÈ eWeµ«      �ZÉ eWet«      �ZÊ eWe¸«      �ZË eWe¹«      �ZÌ eWeº«      �ZÍ eWe»«      �ZÎ eWe¼«      �ZÏ eWe½«      �ZÐ eWe¾«      �ZÑ eWe€«      �ZÒ eWeÂ«      �ZÓ eWeÃ«      �ZÔ eW�eq«      �ZÕ eWe�«      �ZÖ eWe…«      �Z× eWeƒ«      �ZØ eWe„«      �ZÙ eWe‚«      �ZÚ eWeÆ«      �ZÛ eWeÇ«      �ZÜ eWeÈ«      �ZÝ eWeÉ«      �ZÞ eWeÊ«      �Zß eWeÍ«      �Zà eWe~«      �Zá eWe‹«      �Zâ eWeÎ«      �Zã eWe�«      �Zä eWeÏ«      �Zå eWe®«      �Zæ eW�e™«      �Zç eWe�«      �Zè eWeÐ«      �Zé eWe’«      �Zê eWe”«      �Zë eWe“«      �Zì eWe•«      �Zí eWe—«      �Zî eWe˜«      �Zï eWe™«      �Zð eWeš«      �Zñ eWeœ«      �Zò eWeÒ«      �Zó eWe�«      �Zô eWež«      �Zõ eW�e‹«      �Zö eW�eŠ«      �Z÷ eWeÓ«      �Zø eWeŸ«      �Zù eWeÔ«      �Zú eW�e“«      �Zû eW�e”«      �Zü eW�e•«      �Zý eW�e–«      �Zþ eWer«      �Zÿ eõeL�jª                  «      �Z  eõeL�j                  «      �Z eõeL�jœ                  «      �Z eõeL�j4                  «      �Z eõeL�jB                  «      �Z eõeL�jŠ                  «      �Z eõeL�jT                  «      �Z eõeL�j¦                  «      �Z eõeL�j¬                  «      �Z eõeL�jz                  d�¬ç«      �Z	 eõeL�jº                  «      �Z
 eõeL�j¼                  «      �Z�dè„ �Z�dé„ �Z�dê„ �Z�dëe�j                  �dìe;e<z  f�dí„�Z	 �dò�dî„�Zdddd�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)ÚCallableÚIterableÚSequence)ÚEnum)ÚpartialÚreduceÚsingledispatchÚwraps)ÚAnyÚcastÚOptionalÚoverloadÚUnion)Ú	sym_floatÚsym_intÚsym_maxÚsym_min)ÚBoolLikeÚDeviceLikeTypeÚDimÚDimsSequenceTypeÚDimsTypeÚdtype_to_typeÚELEMENTWISE_TYPE_PROMOTION_KINDÚ	FloatLikeÚFloatWithoutSymFloatÚIntLikeÚ(is_contiguous_for_memory_format_or_falseÚis_contiguous_or_falseÚ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)Úhighest_precision_float(  Ú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Úpermute_copyÚravelÚrepeatÚreshapeÚ
reshape_asÚrollÚrot90ÚrsqrtÚsplit_with_sizesÚstackÚ	swap_axesÚsqueezeÚsqueeze_copyÚtÚt_copyÚTÚtake_along_dimÚtensor_splitÚ	transposeÚtranspose_copyÚunbind_copyÚ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    ú_/var/www/ramen.bs-engineer-server.com/venv/lib/python3.12/site-packages/torch/_refs/__init__.pyÚis_noncontiguous_supportedr;  q  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_tensorr>  Ú
isinstanceÚfake_devicer;  rÙ   )Úinput_tlistÚoutputr9  r>  rþ   s        r:  Úhandle_noncontiguous_outputsrD  u  sL   € Ø€FÝ8àò ˆÜ�a˜Õ$Ø—]‘]ˆFÙðô
 & fÔ-Ø×"Ñ"Ó$ˆà€Mr<  c            	      óø  ‡	‡
‡‡— ddl m}m}m}m} t
        j                  j                  j                  j                  }t        d„ t        d„ | «      D «       «      }t        |«      dk(  ry |D ]   Št        ‰t        «      rŒt        d‰› �«      ‚ dgt!        t"        d„ |D «       «      z  Š
t%        |«      D �]@  \  Š	Št'        ddt        ‰«      z
  d«      D �]  Š |‰‰   «      r |‰
‰   «      rœ |‰‰   ‰
‰   k(  «      r‹Œ,|rv |‰‰   «      rk |‰
‰   «      r` |‰‰   «      } |‰
‰   «      }|dk(  r |dk7  rt        j(                  ‰‰   dk(  «       |dk(  r |dk7  rt        j(                  ‰
‰   dk(  «        |‰‰   ‰
‰   k(  «      rŒ¶ |‰
‰   dk(  «      r‰‰   dk  rt+        d	«      ‚‰‰   ‰
‰<    |‰‰   «      s |‰‰   dk(  «      rŒùt        j(                  ‰
‰   ‰‰   k(  ˆ	ˆ
ˆˆfd
„«       �Œ  �ŒC ‰
S )Nr   )Úguard_or_falseÚguarding_hint_or_throwÚhas_guarding_hintÚis_nested_intc              3   óF   K  — | ]  }t        |t        «      r|fn|–— Œ y ­w©N©r@  r   ©Ú.0Úxs     r:  ú	<genexpr>z$_broadcast_shapes.<locals>.<genexpr>Ž  s(   è ø€ ò àô ˜1œgÔ&ˆ‰¨AÓ-ñùs   ‚!c                 ó
   — | d uS rK  © ©rO  s    r:  ú<lambda>z#_broadcast_shapes.<locals>.<lambda>�  s
   €  !¨4 -€ r<  zMInput shapes should be of type ints, a tuple of ints, or a list of ints, got é   c              3   ó2   K  — | ]  }t        |«      –— Œ y ­wrK  ©Úlen)rN  Úshapes     r:  rP  z$_broadcast_shapes.<locals>.<genexpr>   s   è ø€ Ò4 E”S˜—ZÑ4ùs   ‚éÿÿÿÿz9Attempting to broadcast a dimension with negative length!c            
      ó,   •— d‰‰   › d‰› d‰ › d‰› d‰› �
S )Nz.Attempting to broadcast a dimension of length z at z ! Mismatching argument at index z had z0; but expected shape should be broadcastable to rR  )Úarg_idxÚcommon_shapeÚidxrY  s   €€€€r:  rT  z#_broadcast_shapes.<locals>.<lambda>Ñ  s<   ø€ ÐLÈUÐSVÉZÈLÐX\Ð]`Ð\að b5Ø5<°I¸UÀ5À'ð J2Ø2>°ðA€ r<  )Ú%torch.fx.experimental.symbolic_shapesrF  rG  rH  rI  ÚtorchÚfxÚexperimentalÚ_configÚbacked_size_obliviousÚtupleÚfilterrX  r@  r   ÚRuntimeErrorr   ÚmaxÚ	enumerateÚrangeÚ_checkÚ
ValueError)Ú_shapesrF  rG  rH  rI  Ú	backed_soÚshapesÚaÚbr\  r]  r^  rY  s            @@@@r:  Ú_broadcast_shapesrr  „  sA  û€ ÷ó ô —‘×%Ñ%×-Ñ-×CÑC€Iäñ äÑ/°Ó9ôó €Fô ˆ6ƒ{�aÒØàò ˆÜ˜%¤Õ*ÜØ_Ð`eÐ_fÐgóð ðð 	
ð.äŒsÑ4¨VÔ4Ó5ñ.6€Lô $ FÓ+ó 3‰ˆ�Ü˜˜R¤# e£*™_¨bÓ1ó 2	ˆCá˜U 3™ZÔ(ñ ! ¨cÑ!2Ô3¹Ø˜#‘J ,¨sÑ"3Ñ3ô9ð ñ Ù)¨%°©*Ô5Ù)¨,°sÑ*;Ô<á.¨u°S©zÓ:�AÙ.¨|¸CÑ/@ÓA�AØ˜A’v ! q¢&ÜŸ™ U¨3¡Z°1¡_Ô5Ø˜A’v ! q¢&ÜŸ™ \°#Ñ%6¸!Ñ%;Ô<Ù! %¨¡*°¸SÑ0AÑ"AÔBØá˜l¨3Ñ/°1Ñ4Ô5Ø˜‘: ’>Ü$ØSóð ð %*¨#¡J�˜SÑ!á   s¡Ô,±ÀÀcÁ
ÈaÁÔ1Pàô —‘Ø  Ñ%¨¨s©Ñ3öAöò[2	ð3ðj Ðr<  T)Úpreserve_cpu_scalar_tensorsc                 óŒ   ‡ ‡‡‡— t        d„ |D «       Ž Šdt        dt        dt        fd„Šˆˆ ˆfd„Št        ˆˆfd„|D «       «      S )Nc              3   óX   K  — | ]"  }t        |t        «      r|j                  nd –— Œ$ y ­wrK  )r@  r'   rY  ©rN  rþ   s     r:  rP  z#_maybe_broadcast.<locals>.<genexpr>Ü  s"   è ø€ Ò	G¸Q”Z ¤:Ô.ˆ!�'Š'°DÓ
8Ñ	Gùs   ‚(*rp  rq  Úreturnc                 ó  — ddl m}m}m} t	        | «      t	        |«      k7  ryt        | |«      D ]Y  \  }} |||k7  «      r y | ||dk(  |dk(  «      «      rn | ||dk(  |dk(  «      «      r yt        j                  ||k(  d„ «       Œ[ y)Nr   )rF  Úsym_andÚsym_orTrU  c                   ó   — y)NzCsizes assumed to be the same due to unbacked broadcasting semanticsrR  rR  r<  r:  rT  z9_maybe_broadcast.<locals>.should_expand.<locals>.<lambda>ú  ó   � r<  F)r_  rF  ry  rz  rX  Úzipr`  rk  )rp  rq  rF  ry  rz  rO  Úys          r:  Úshould_expandz'_maybe_broadcast.<locals>.should_expandß  sœ   € ÷	
ñ 	
ô ˆq‹6”S˜“VÒØä˜˜1“Iò 	‰DˆAˆqÙ˜a 1™fÔ%áñ
 ™g a¨1¡f¨a°1©fÓ5Ô6ØÙ¡ q¨A¡v¨q°A©vÓ 6Ô7áô �L‰LØ�Q‘Ù]õð	ð( r<  c                 ó  •— | €y t        | t        «      r| S t        | t        «      r?‰rt        j                  | «      r| S  ‰| j
                  ‰«      r| j                  ‰«      S | S t        dt        t        | «      «      z   dz   «      ‚)Nz#Unexpected type when broadcasting: ú!)
r@  r!   r'   ÚutilsÚis_cpu_scalar_tensorrY  rá   rg  Ústrr7  )rO  rY  r]  rs  r  s     €€€r:  Ú__maybe_broadcastz+_maybe_broadcast.<locals>.__maybe_broadcastÿ  s}   ø€ Øˆ9ØÜ˜œ6Ô"ØˆHÜ˜œ:Ô&Ù*¬u×/IÑ/IÈ!Ô/LØ�á˜QŸW™W lÔ3Ø—x‘x Ó-Ð-àˆHäØ5¼¼DÀ»G»ÑDÀsÑJóð r<  c              3   ó0   •K  — | ]  } ‰|‰«      –— Œ y ­wrK  rR  )rN  rO  r…  r]  s     €€r:  rP  z#_maybe_broadcast.<locals>.<genexpr>  s   øè ø€ ÒB¸Ñ" 1 l×3ÑBùs   ƒ)rr  r%   Úboolre  )rs  Úargsr…  r]  r  s   ` @@@r:  Ú_maybe_broadcastr‰  Ù  sH   û€ ä$Ù	GÀ$Ô	Gð€Lðœð ¤yð ´Tó ö@ô$ ÔB¸TÔBÓBÐBr<  )Úregister_decompositionF)Úaten_opÚ
extra_metaÚexact_dtyperw  c                ó,   ‡ ‡‡‡— 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©r�  ©rp  ©Útype_promoting_argsÚtype_promotion_kindrp  rw  c                 óB   •— ‰� ‰| «        ‰| «      }t        | g|«      S rK  )rD  )rp  rC  rŒ  r�  s     €€r:  Ú_refz>_make_elementwise_unary_reference.<locals>.inner.<locals>._ref*  s*   ø€ ð Ð%Ù˜1”á˜!“WˆFÜ/°°°VÓ<Ð<r<  )
r
   r0   r/   r.   r(   Úinfer_aten_opr‚  Úget_aten_opÚ__name__rŠ  )r�  r—  r‹  r�  rŒ  r•  s   ` €€€€r:  Úinnerz0_make_elementwise_unary_reference.<locals>.inner'  sŒ   ù€ ô 
ˆt‹Ü	 Ô	-Ü	)Ü	+Ø &Ø 3ô

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

ó 
*ó 
.ó 
ð	=ð ”mÑ#Ü×'Ñ'¨¨d¯m©mÓ<ˆGØÐØ+Ô" 7Ó+¨DÔ1àˆr<  ©r   )r•  r‹  rŒ  r�  r›  s   ```` r:  Ú!_make_elementwise_unary_referencer�     s   û€ ð”H÷ ð ð0 €Lr<  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 rK  rR  )rˆ  ÚkwargsÚfns     €r:  Ú_fnz_make_alias.<locals>._fnJ  s   ø€ Ù�4Ð"˜6Ñ"Ð"r<  rš  )rš  ÚinspectÚcurrentframeÚf_backÚ	f_globalsÚ
__module__)r¡  Únamer¢  s   `  r:  Ú_make_aliasr©  B  s7   ø€ ô#ð €C„LÜ×)Ñ)Ó+×2Ñ2×<Ñ<¸ZÑH€C„NØ€Jr<  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ÚoutrR  )rp  rˆ  r   r¡  s      €r:  r¢  z_make_inplace.<locals>._fnY  s   ø€ á�!Ð,�dÒ, Ð, VÑ,Ð,r<  Ú_r   )Ú	getmodule)	r
   rš  rŠ  ÚgetattrÚatenr£  r®  Ú__all__Úappend)r¡  r¢  Úinplace_namer®  Ú_alls   `    r:  Ú_make_inplacerµ  R  sz   ø€ ô ˆ2ƒYó-ó ð-ð —k‘k�] !Ð$€LØ€C„LØ
=Ô
 ¤¬¨|Ó!<Ó
=¸cÓ
B€Cõ "á�R‹=× Ñ €DØ˜4ÑØ�‰�LÔ!Ø€Jr<  r‘  c                 ó,   — t        j                  | «      S rK  )Úprimsr2   r’  s    r:  r2   r2   k  s   € ô
 �9‰9�Q‹<Ðr<  c                 ó,   — t        j                  | «      S rK  )r·  r3   r’  s    r:  r3   r3   s  ó   € ä�:‰:�a‹=Ðr<  c                 ó,   — t        j                  | «      S rK  )r·  r4   r’  s    r:  r4   r4   x  ó   € ä�;‰;�q‹>Ðr<  c                 ó,   — t        j                  | «      S rK  )r·  r6   r’  s    r:  r6   r6   }  r¹  r<  c                 ó,   — t        j                  | «      S rK  )r·  r5   r’  s    r:  r5   r5   ‚  r»  r<  c                 ó,   — t        j                  | «      S rK  )r·  r7   r’  s    r:  r7   r7   ‡  r¹  r<  c                 ó,   — t        j                  | «      S rK  )r·  r8   r’  s    r:  r8   r8   Œ  r»  r<  c                 ó,   — t        j                  | «      S rK  )r·  r9   r’  s    r:  r9   r9   ‘  s   € ä×Ñ˜QÓÐr<  c                 ó,   — t        j                  | «      S rK  )r·  r:   r’  s    r:  r:   r:   –  ó   € ô
 �:‰:�a‹=Ðr<  Úinputc                 ó@   — t        j                  | j                  «      S rK  )r‚  Úis_complex_dtypeÚdtype©rÃ  s    r:  r0  r0  ž  s   € ä×!Ñ! %§+¡+Ó.Ð.r<  c                 ón   — t        j                  | j                  «      s| S t        j                  | «      S rK  )r‚  rÅ  rÆ  r·  r;   rÇ  s    r:  r;   r;   £  s,   € ô ×!Ñ! %§+¡+Ô.ØˆÜ×Ñ˜uÓ%Ð%r<  c                 ó,   — t        j                  | «      S rK  )r·  r<   r’  s    r:  r<   r<   «  ó   € ä�9‰9�Q‹<Ðr<  c                 ó,   — t        j                  | «      S rK  )r·  r=   r’  s    r:  r=   r=   °  r¹  r<  c                 ó,   — t        j                  | «      S rK  )r·  r@   r’  s    r:  r@   r@   µ  ó   € ä�=‰=˜ÓÐr<  c                 ó,   — t        j                  | «      S rK  )r·  rA   r’  s    r:  rA   rA   º  rÊ  r<  c                 ó,   — t        j                  | «      S rK  )r·  Úerf_invr’  s    r:  rB   rB   ¿  rÍ  r<  c                 ó,   — t        j                  | «      S rK  )r·  rC   r’  s    r:  rC   rC   Ä  r¹  r<  c                 ó,   — t        j                  | «      S rK  )r·  rD   r’  s    r:  rD   rD   É  rÊ  r<  c                 ó,   — t        j                  | «      S rK  )r·  rE   r’  s    r:  rE   rE   Î  r»  r<  c                 ó,   — t        j                  | «      S rK  )r·  rG   r’  s    r:  rG   rG   Ó  r¹  r<  r’  r“  rp  Úvaluec                 ó€  — t        | t        «      st        dt        | «      › �«      ‚t        |t        «      st        dt        |«      › �«      ‚t        j                  | j                  «      }t        j                  t        |«      |«      sdt        |«      › d|› d�}t        |«      ‚t        j                  | |«      S )Núa must be TensorLike, got zvalue must be Number, got úvalue argument of type ú cannot be safely cast to type r�  )r@  r'   ÚAssertionErrorr7  r!   r‚  r   rÆ  r    rl  r·  rH   )rp  rÕ  Úpython_typeÚmsgs       r:  rH   rH   Ú  s¥   € ô �aœÔ$ÜÐ9¼$¸q»'¸ÐCÓDÐDÜ�eœVÔ$ÜÐ9¼$¸u»+¸ÐGÓHÐHä×%Ñ% a§g¡gÓ.€KÜ×&Ñ&¤t¨E£{°KÔ@Ø'¬¨U« }Ð4SÐT_ÐS`Ð`aÐbˆÜ˜‹oÐä�:‰:�a˜ÓÐr<  c                 ó^   — t        j                  | |«      }t        j                  | |«       | S rK  )r·  rH   r´   )rp  rÕ  Úrs      r:  rI   rI   í  s%   € Ü�
‰
�1�eÓ€AÜ	‡M�M�!�QÔØ€Hr<  c                 ó,   — t        j                  | «      S rK  )r`  r,  rÇ  s    r:  r*  r*  ó  s   € ô ×Ñ˜EÓ"Ð"r<  c                 ó,   — t        j                  | «      S rK  )r·  rJ   r’  s    r:  rJ   rJ   ù  ó   € ô
 �;‰;�q‹>Ðr<  rO  c                 óT   — t        j                  | t        j                  | «      «      S rK  )r`  r©   rx   rS  s    r:  rK   rK     s   € ô
 �9‰9�QœŸ™ A›Ó'Ð'r<  c                 óâ   — t        | t        «      st        dt        | «      › �«      ‚t	        j
                  t        j                  | j                  «      d„ «       t        j                  | «      S )Nr×  c                   ó   — y)Nz#imag only supports complex tensors.rR  rR  r<  r:  rT  zimag.<locals>.<lambda>  r|  r<  )r@  r'   rÚ  r7  r`  rk  r‚  rÅ  rÆ  r·  r‘   r’  s    r:  r‘   r‘   
  sT   € Ü�aœÔ$ÜÐ9¼$¸q»'¸ÐCÓDÐDÜ	‡L�LÜ×Ñ˜qŸw™wÓ'Ñ)Vôô �:‰:�a‹=Ðr<  )r‹  c                 óÞ   — t        j                  | j                  «      st        j                  | j                  «      rt	        j
                  | «      S t        | t        j                  ¬«      S )N©rÆ  )	r‚  Úis_float_dtyperÆ  rÅ  r·  rS   r'  r`  r‡  r’  s    r:  rS   rS     sG   € ô
 ×Ñ˜AŸG™GÔ$¬×(>Ñ(>¸q¿w¹wÔ(GÜ�~‰~˜aÓ Ð ä�QœeŸj™jÔ)Ð)r<  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æ  )r‚  rÅ  rÆ  r`  r™   rT   r£   r‘   rç  r2   Úfloatr,  r‡  r’  s    r:  rT   rT     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Ð0r<  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æ  r’  s   €r:  rT  zisposinf.<locals>.<lambda>.  ó   ø€ ÐIÈ!Ï'É'ÈÐS€ r<  ré  ræ  ©	r`  rk  r‚  rÅ  rÆ  rç  rê  r,  r‡  r’  s   `r:  rU   rU   '  sc   ø€ ô
 
‡L�LÜ×"Ñ" 1§7¡7Ó+Ð+ÛSôô ×Ñ˜AŸG™GÔ$Ø”E˜%“LÑ Ð Ü×Ñ˜A¤U§Z¡ZÔ0Ð0r<  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æ  r’  s   €r:  rT  zisneginf.<locals>.<lambda><  rí  r<  z-infræ  rî  r’  s   `r:  rV   rV   5  sc   ø€ ô
 
‡L�LÜ×"Ñ" 1§7¡7Ó+Ð+ÛSôô ×Ñ˜AŸG™GÔ$Ø”E˜&“MÑ!Ð!Ü×Ñ˜A¤U§Z¡ZÔ0Ð0r<  c                 ó.   — t        j                  | | «      S rK  ©r·  r    r’  s    r:  rW   rW   C  s   € ä�8‰8�A�q‹>Ðr<  rb   c                 óº   — t        j                  | j                  «      rt        j                  | «      dk(  S t        j
                  | t        j                  ¬«      S )Nr   ræ  )r‚  rÅ  rÆ  r`  r‘   r'  r‡  r’  s    r:  rX   rX   L  s>   € ô
 ×Ñ˜aŸg™gÔ&Ü�z‰z˜!‹} Ñ!Ð!Ü�?‰?˜1¤E§J¡JÔ/Ð/r<  c                 ó,   — t        j                  | «      S rK  )r·  Ú	bessel_i0r’  s    r:  rY   rY   W  s   € ô �?‰?˜1ÓÐr<  c                 ó,   — t        j                  | «      S rK  )r·  r[   r’  s    r:  r[   r[   ^  s   € ä�<‰<˜‹?Ðr<  c                 ó,   — t        j                  | «      S rK  )r·  r\   r’  s    r:  r\   r\   c  rÊ  r<  c                 ó,   — t        j                  | «      S rK  )r·  r]   r’  s    r:  r]   r]   h  r»  r<  c                 ó,   — t        j                  | «      S rK  )r·  r^   r’  s    r:  r^   r^   m  r¹  r<  c                 ó,   — t        j                  | «      S rK  )r·  r_   r’  s    r:  r_   r_   r  r»  r<  ÚdimrÆ  c                 óš   — |xs | j                   }t        j                  |«      }t        | |«      }t        |t	        ||d¬«      z
  |«      S )NT©Úkeepdim)rÆ  r‚  Úget_computation_dtyper+   r›   )rp  rû  rÆ  Úresult_dtypeÚcomputation_dtypeÚa_s         r:  ra   ra   x  sK   € ð Ò#˜AŸG™G€LÜ×3Ñ3°LÓAÐÜ	  Ð$5Ó	6€BÜ" 2¬	°"°cÀ4Ô(HÑ#HÈ,ÓWÐWr<  ©Úselfr  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é  )r@  r   Únumelr`  rÂ   rD   r\   r¸   r£   r°   r2   rê  rü   ry   )r  rû  rþ  ÚmaxesÚmaxes_squeezedÚresults         r:  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Ó+Ð+r<  ÚnanÚposinfÚneginfc                 ó   — t        | t        «      st        dt        | «      › �«      ‚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 )Nr×  ç        )r@  r'   rÚ  r7  r‚  Úis_boolean_dtyperÆ  Úis_integer_dtyper³   r`  Úfinforh  Úminr²   rW   rV   rU   )rp  r
  r  r  r	  s        r:  re   re   ›  sí   € ô �aœÔ$ÜÐ9¼$¸q»'¸ÐCÓDÐDä×Ñ˜aŸg™gÔ&¬%×*@Ñ*@ÀÇÁÔ*IØ�w‰w‹yÐà
€{Øˆà€~Ü—‘˜QŸW™WÓ%×)Ñ)ˆà€~Ü—‘˜QŸW™WÓ%×)Ñ)ˆä�[‰[œŸ™ Q›¨¨aÓ0€FÜ�[‰[œŸ™¨Ó*¨F°FÓ;€FÜ�[‰[œŸ™¨Ó*¨F°FÓ;€FØ€Mr<  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.rR  rR  r<  r:  rT  z_neg_meta.<locals>.<lambda>»  s   € ð ð r<  )r`  rk  rÆ  r‡  r’  s    r:  Ú	_neg_metar  ¸  s#   € Ü	‡L�LØ	�‰”u—z‘zÐ!ñ	
õr<  )rŒ  c                 ó,   — t        j                  | «      S rK  )r·  rf   r’  s    r:  rf   rf   Ã  s   € ô �9‰9�Q‹<Ðr<  c                 ó¦   — t        | t        «      st        dt        | «      › �«      ‚| j                  t
        j                  u rd}t        |«      ‚| S )Nr×  z'positive does not support bool tensors.)r@  r'   rÚ  r7  rÆ  r`  r‡  rg  )rp  rÜ  s     r:  rg   rg   Ì  sH   € Ü�aœÔ$ÜÐ9¼$¸q»'¸ÐCÓDÐDØ‡w�w”%—*‘*ÑØ7ˆÜ˜3ÓÐØ€Hr<  c                 ó¼   — t        | t        «      st        dt        | «      › �«      ‚t	        j
                  | j                  «      rt        j                  | «      S | S )Nr×  )	r@  r'   rÚ  r7  r‚  rÅ  rÆ  r·  r£   r’  s    r:  r£   r£   Ö  sH   € Ü�aœÔ$ÜÐ9¼$¸q»'¸ÐCÓDÐDÜ×Ñ˜aŸg™gÔ&Ü�z‰z˜!‹}ÐØ€Hr<  c                 ó,   — t        j                  | «      S rK  )r·  ri   r’  s    r:  ri   ri   Þ  s   € ä×Ñ˜AÓÐr<  )Údecimalsr  c                óÆ   — |dk(  rt        j                  | «      S d|z  }d| z  }t        j                  t        j                  t        j                  | |«      «      |«      S )Nr   é
   )r·  rj   rŸ   )rp  r  Úten_powÚten_neg_pows       r:  rj   rj   ã  sS   € ð �1‚}Ü�{‰{˜1‹~Ðà�h‘,ˆØ˜h˜YÑ'ˆÜ�y‰yœŸ™¤U§Y¡Y¨q°'Ó%:Ó;¸[ÓIÐIr<  c                 ó,   — t        j                  | «      S rK  )r·  rø   r’  s    r:  rø   rø   ò  r»  r<  c                 óR   — t        dt        dt        t        | «      «      «      «      S ©NrU  )rª   ry   rD   rf   r’  s    r:  rk   rk   ÷  s   € ä�qœ#˜a¤¤S¨£V£Ó-Ó.Ð.r<  c                 óº   — t        j                  | j                  «      r-| j                  «       }t	        j
                  |dk(  d| |z  «      S | j                  «       S ©Nr   )r‚  rÅ  rÆ  r2   r`  r²   rm   )rp  Úa_abss     r:  rl   rl   ü  sG   € ô
 ×Ñ˜aŸg™gÔ&Ø—‘“ˆÜ�{‰{˜5 A™: q¨!¨e©)Ó4Ð4à�v‰v‹xˆr<  c                 ó,   — t        j                  | «      S rK  )r·  rm   r’  s    r:  rm   rm     rÂ  r<  c                 ó,   — t        j                  | «      S rK  )r·  rn   r’  s    r:  rn   rn     s   € ô
 �=‰=˜ÓÐr<  c                 ó,   — t        j                  | «      S rK  )r·  ro   r’  s    r:  ro   ro     rÊ  r<  c                 óˆ   — t         j                  | z  } t        j                  | dk(  dt        j                  | «      | z  «      S ©Nr   rU  )ÚmathÚpir`  r²   ro   r’  s    r:  rp   rp     s3   € ä�‰�!‰€AÜ�;‰;�q˜A‘v˜q¤%§)¡)¨A£,°Ñ"2Ó3Ð3r<  c                 ó,   — t        j                  | «      S rK  )r·  rq   r’  s    r:  rq   rq   %  r¹  r<  c                 ó,   — t        j                  | «      S rK  )r·  rs   r’  s    r:  rs   rs   *  r¹  r<  c                 ó   — t        | | «      S rK  )rŸ   r’  s    r:  rt   rt   /  s   € ô
 ˆq�!‹9Ðr<  c                 ó,   — t        j                  | «      S rK  )r·  ru   r’  s    r:  ru   ru   7  rÊ  r<  c                 ó,   — t        j                  | «      S rK  )r·  rv   r’  s    r:  rv   rv   <  r¹  r<  c                 ó,   — t        j                  | «      S rK  )r·  rx   r’  s    r:  rx   rx   A  rá  r<  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: rR  )Úinput_dtypes   €r:  rT  z!view_as_complex.<locals>.<lambda>N  s   ø€ ð 5Ø5@°MðC€ r<  r   c                   ó   — y)Nz-Input tensor must have one or more dimensionsrR  rR  r<  r:  rT  z!view_as_complex.<locals>.<lambda>T  r|  r<  rZ  é   c                   ó   — y)Nz+Tensor must have a last dimension of size 2rR  rR  r<  r:  rT  z!view_as_complex.<locals>.<lambda>X  r|  r<  rU  c                   ó   — y)Nz/Tensor must have a last dimension with stride 1rR  rR  r<  r:  rT  z!view_as_complex.<locals>.<lambda>^  r|  r<  c              3   ó,   K  — | ]  }|d z  dk(  –— Œ y­w)r6  r   NrR  )rN  Ústrides     r:  rP  z"view_as_complex.<locals>.<genexpr>b  s   è ø€ Ò8¨�V˜a‘Z 1•_Ñ8ùó   ‚c                   ó   — y)NzCTensor must have a stride divisible by 2 for all but last dimensionrR  rR  r<  r:  rT  z!view_as_complex.<locals>.<lambda>c  r|  r<  c                   ó   — y)Nz0Tensor must have a storage_offset divisible by 2rR  rR  r<  r:  rT  z!view_as_complex.<locals>.<lambda>g  r|  r<  )rÆ  r`  rk  r‚  rç  ÚsizerX  r:  Úbuiltinsr·   Ústorage_offsetr·  Úview_element_typeÚcorresponding_complex_dtyperü   )r  ÚsizesÚold_stridesÚdimsr4  s       @r:  r  r  J  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ðr<  c           	      ó<   ‡ ‡‡‡‡‡‡‡— dt         fˆˆˆˆˆˆˆˆ fd„}|S )Nr�  c                 óN  •‡ — ‰€‰ j                   Št        ‰ «      t        d‰	¬«      dt        t        z  dt        t        z  dt        fˆˆ ˆˆˆfd„«       «       }‰r t        «       |«      }‰|_         ‰t        u rt        j                  ‰ ‰«      Š‰�‰r t        ‰«      |«       |S )N©rp  rq  r“  rp  rq  rw  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!rR  ©r¨  s   €r:  rT  zQ_make_elementwise_binary_reference.<locals>.inner.<locals>._ref.<locals>.<lambda>ˆ  ó   ø€ ˜4˜&ð !>ð >€ r<  c                  ó   •— ‰ › d�S )Nzc: Received a rhs Python scalar to an elementwise binary operation that does not accept rhs scalars!rR  rK  s   €r:  rT  zQ_make_elementwise_binary_reference.<locals>.inner.<locals>._ref.<locals>.<lambda>�  rL  r<  c                  ó   •— ‰ › d�S )Nz?: Receive two Number inputs to an elementwise binary operation!rR  rK  s   €r:  rT  zQ_make_elementwise_binary_reference.<locals>.inner.<locals>._ref.<locals>.<lambda>“  s   ø€ ˜4˜&Ð _Ð`€ r<  )r`  Ú_check_valuer@  r!   r‰  rD  )rp  rq  rC  r¨  r�  Úsupports_lhs_python_scalarÚsupports_rhs_python_scalarÚsupports_two_python_scalarss      €€€€€r:  r—  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°¸Ó?Ð?r<  )
rš  r
   r.   ÚTensorr"   r0   r˜  r‚  r™  rŠ  )
r�  r—  r‹  Úhas_outr¨  Úshould_register_decompositionrP  rQ  rR  r•  s
   ` €€€€€€€€r:  r›  z1_make_elementwise_binary_reference.<locals>.innerx  s»   ù€ àˆ<Ø—=‘=ˆDä	ˆt‹Ü	+Ø *Ø 3ô

ð	@Üœ
Ñ"ð	@äœ
Ñ"ð	@ô ÷	@ð 	@ó	

ó 
ð
	@ñ. Ø ”;“= Ó&ˆDàˆŒØ”mÑ#Ü×'Ñ'¨¨dÓ3ˆGØÐÑ#@Ø+Ô" 7Ó+¨DÔ1àˆr<  rœ  )	r•  r‹  r¨  rT  rP  rQ  rR  rU  r›  s	   ```````` r:  Ú"_make_elementwise_binary_referencerV  n  s   ÿ€ ð*”H÷ *ô *ðX €Lr<  rq  c                 ó®   — t        | t        «      r| j                  S t        |t        «      r|j                  S t        j                  t        | «      «      S rK  )r@  r'   rÆ  r‚  Útype_to_dtyper7  rH  s     r:  Ú_binary_op_dtyperY  §  s?   € ô �!”ZÔ Ø�w‰wˆÜ�!”ZÔ Ø�w‰wˆÜ×Ñœt A›wÓ'Ð'r<  rH  ©Úalphar[  c                óŽ  — t        | |«      \  } }|�‘t        | |«      }t        j                  |«      }|t        u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Ù  r�  )r‰  rY  r‚  r   r‡  r    r7  rl  r@  r'   r·  rŸ   ry   rD  ©rp  rq  r[  rÆ  rÛ  rÜ  rC  s          r:  ry   ry   ²  s¿   € ô  ˜A˜qÓ!�D€A€qàÐÜ   AÓ&ˆÜ×)Ñ)¨%Ó0ˆØœdÑ"¬5×+FÑ+FÜ�‹K˜ô,
ð ,¬D°«K¨=Ð8WÐXcÐWdÐdeÐfˆCÜ˜S“/Ð!Ü�aœÔ$Ü—	‘	˜!˜UÓ#‰Aà�E‘	ˆAä�Y‰Y�q˜!‹_€FÜ'¨¨A¨°Ó7Ð7r<  )r•  rP  rQ  c                 ó.   — t        j                  | |«      S rK  )r·  rz   rH  s     r:  rz   rz   Õ  ó   € ô �;‰;�q˜!ÓÐr<  )r•  c                 ó.   — t        j                  | |«      S rK  )r·  r{   rH  s     r:  r{   r{   Þ  ó   € ô ×Ñ˜Q Ó"Ð"r<  c                 ó.   — t        j                  | |«      S rK  )r·  Ú
shift_leftrH  s     r:  r|   r|   å  ó   € ô ×Ñ˜A˜qÓ!Ð!r<  c                 ó.   — t        j                  | |«      S rK  )r·  r}   rH  s     r:  r}   r}   ì  re  r<  c                 ó.   — t        j                  | |«      S rK  )r·  Úshift_right_arithmeticrH  s     r:  r~   r~   ó  s   € ô ×'Ñ'¨¨1Ó-Ð-r<  c                 ó.   — t        j                  | |«      S rK  )r·  r   rH  s     r:  r   r   ú  rb  r<  )r•  rP  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Æ  r9  ú/Expected divisor (b) to be on the same device (ú&) as dividend (a), but it is found on r�  )r@  r!   rS  r)  rÆ  r9  rg  r²   rn   rf   r2   )rp  rq  rÜ  s      r:  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Ð1r<  )Úrounding_modern  c                ó„   — |€t        | |«      S |dk(  rt        | |«      S |dk(  rt        | |«      S d|› d�}t        |«      ‚)z/
    Reference implementation of torch.div
    rx   rJ   zLdiv expected rounding_mode to be one of None, 'trunc', or 'floor' but found ú.)rª   r«   r†   rl  )rp  rq  rn  rÜ  s       r:  rƒ   rƒ     s\   € ð ÐÜ˜1˜aÓ Ð Ø	˜'Ò	!Ü˜A˜qÓ!Ð!Ø	˜'Ò	!Ü˜A˜qÓ!Ð!à\Ð]jÐ\kÐklÐmˆÜ˜‹oÐr<  c                 ó.   — t        j                  | |«      S rK  )r·  r„   rH  s     r:  r„   r„   )  ó   € ô
 �8‰8�A�q‹>Ðr<  c                 ód  — ddl m} t        | t        «      st        |t        «      st	        d«      ‚t        |t
        «      rK ||dk(  «      r| j                  «       S  ||dk(  «      r| | z  S  ||dk(  «      r¤t        j                  | «      S t        | t
        «      r || dk(  «      rt        j                  |d«      S  || dk(  «      rSt        j                  |j                  «      st        j                  |j                  «      rt        j                  |«      S t        j                   | |«      S )Nr   )Ústatically_known_truez-at least one of a or b must be TensorLikeTypeç      ð?g       @ç      à?T)r_  rt  r@  r(   rÚ  r!   r³   r`  rs   rH   r‚  rç  rÆ  rÅ  rG   r·  r¢   )rp  rq  rt  s      r:  r¢   r¢   1  sì   € õ Lä�qœ.Ô)¬Z¸¼>Ô-JÜÐLÓMÐMä�!”VÔÙ   c¡Ô*Ø—7‘7“9ÐÙ" 1¨¡8Ô,Ø�q‘5ˆLÙ" 1¨¡8Ô,Ü—:‘:˜a“=Ð Ü	�A”vÔ	Ù   c¡Ô*Ü—:‘:˜a Ó&Ð&Ù   c¡Ô*Ü× Ñ  §¡Ô)¬U×-CÑ-CÀAÇGÁGÔ-Lä—:‘:˜a“=Ð ä�9‰9�Q˜‹?Ðr<  c                 óp  — t        | t        «      rt        |t        «      rt        d«      ‚t        j                  | |«      }|€t        d«      ‚t        j                  |«      rt        j                  }nt        j                  }t        | |«      } t        ||«      }t        | |«      \  } }t        | |«      S )Nz=Receive two Number inputs to an elementwise binary operation!z/dtype should not be None after get_higher_dtype)r@  r!   rl  r‚  Úget_higher_dtyperÚ  rÅ  r`  Ú
complex128Úfloat64r+   r‰  r¢   ©rp  rq  rÆ  s      r:  r…   r…   Q  s¤   € ô
 �!”VÔ¤¨A¬vÔ!6ÜØKó
ð 	
ô
 ×"Ñ" 1 aÓ(€EØ€}ÜÐNÓOÐOÜ×Ñ˜eÔ$Ü× Ñ ‰ä—‘ˆô
 	   5Ó)€Aä  5Ó)€Aä˜A˜qÓ!�D€A€qäˆq�!‹9Ðr<  )r•  rR  rU  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t        d«      ‚| j                  Št        j                  ‰«      rt        | |«      S t        j                  ‰«      rt        | |«      S t        j                   dˆfd	„«       y )
Nrk  Úcpurl  rm  r�  r8  z*a and b must both be Tensors at this pointFc                  ó   •— ‰ › d�S )Nz not supported for floor_dividerR  ræ  s   €r:  rT  zfloor_divide.<locals>.<lambda>­  s   ø€  u gÐ-LÐ$M€ r<  )r@  r!   r)  rS  rÆ  r9  r`  rg  r·  Ú
device_putrÚ  r‚  rç  Ú_floor_divide_floatr  Ú_floor_divide_integerrk  )rp  rq  rÜ  rÆ  s      @r:  r†   r†   Œ  se  ø€ ô �!”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ä�qœ&Ô!¤j°´FÔ&;ÜÐIÓJÐJØ�G‰G€EÜ×Ñ˜EÔ"Ü" 1 aÓ(Ð(Ü	×	Ñ	 Ô	&Ü$ Q¨Ó*Ð*ä�‰�UÓMÕNr<  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#  )
r‰  rÆ  Ú	is_signedr·  rƒ   r`  rn   r—   r‰   r+   )rp  rq  Úoffsets      r:  r�  r�  °  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ÐEr<  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   rU  rv  rk  )r‰   rª   r©   r   rœ   r    r{   r²   rJ   rŒ   ry   r)  rÆ  r9  r‚   )
rp  rq  Úmodrƒ   Údifferent_signed_inputsÚnon_zero_remainderÚmaskÚ	floor_divÚ	basic_divÚzero_tensors
             r:  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Ð0r<  c                 ó.   — t        j                  | |«      S rK  )r·  r‡   rH  s     r:  r‡   r‡   Ô  ó   € ô �:‰:�a˜ÓÐr<  c                 ó.   — t        j                  | |«      S rK  )r·  rˆ   rH  s     r:  rˆ   rˆ   Ý  rŽ  r<  c                 ó.   — t        j                  | |«      S rK  )r·  r‰   rH  s     r:  r‰   r‰   æ  rŽ  r<  ÚmantissaÚexponentc                 óf   — t         j                  j                  t        j                  | «      «      S rK  )r`  Úreturn_typesÚfrexpr·  r  s    r:  r•  r•  ï  s$   € ô ×Ñ×#Ñ#¤E§K¡K°Ó$5Ó6Ð6r<  c                 ó.   — t        j                  | |«      S rK  )r·  rŠ   rH  s     r:  rŠ   rŠ   õ  s   € ô �9‰9�Q˜‹?Ðr<  c                 ó.   — t        j                  | |«      S rK  )r·  r‹   rH  s     r:  r‹   r‹   þ  rr  r<  c                 ó.   — t        j                  | |«      S rK  )r·  rŒ   rH  s     r:  rŒ   rŒ     rr  r<  Úvaluesc                 ó  — t        j                  | d«      }t        j                  t        j                  | d«      t        j                  | «      «      }t        j
                  |dd«      }t        j
                  |||«      }|S r)  )r`  r„   r™   rœ   rW   r²   )rÃ  r™  Úinput_eq_zeroÚinput_lt_zeroÚzeros_and_onesrC  s         r:  r�   r�     sc   € ô —H‘H˜U AÓ&€MÜ×$Ñ$¤U§X¡X¨e°QÓ%7¼¿¹ÀUÓ9KÓL€MÜ—[‘[ °°1Ó5€NÜ�[‰[˜¨°Ó?€FØ€Mr<  c                 ó.   — t        j                  | |«      S rK  )r·  rŽ   rH  s     r:  rŽ   rŽ     r`  r<  c                 ó.   — t        j                  | |«      S rK  )r·  r�   rH  s     r:  r�   r�   $  s   € ô �<‰<˜˜1ÓÐr<  c                 ó.   — t        j                  | |«      S rK  )r·  r�   rH  s     r:  r�   r�   -  s   € ô �=‰=˜˜AÓÐr<  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 r�  ræ  )rp  rq  r¨  s   €€€r:  rT  z#_check_close_args.<locals>.<lambda>?  s)   ø€ �4�&ÐLÈQÏWÉWÈIÐUZÐ[\×[bÑ[bÐZcÐcdÐe€ r<  r   c                  ó   •— ‰ › d‰› d�S )Nz6: rtol must be greater than or equal to zero, but got r�  rR  )r¨  r¡  s   €€r:  rT  z#_check_close_args.<locals>.<lambda>C  ó   ø€ �4�&ÐNÈtÈfÐTUÐV€ r<  c                  ó   •— ‰› d‰ › d�S )Nz6: atol must be greater than or equal to zero, but got r�  rR  )r¢  r¨  s   €€r:  rT  z#_check_close_args.<locals>.<lambda>G  r§  r<  )r`  rO  rÆ  rk  ©r¨  rp  rq  r¡  r¢  s   `````r:  Ú_check_close_argsrª  6  sV   ü€ ô 
×ÑØ	�‰�1—7‘7ÑÝeôô 
‡L�LØ�‰	ÜVôô 
‡L�LØ�‰	ÜVõr<  Ú	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„   r‚  rç  rÆ  rÅ  r™   r—   rW   r·  Úconvert_element_typer`  Úget_default_dtypery   r2   rŸ   r©   rS   r”   )	rp  rq  r¡  r¢  r«  ÚcloseÚallowed_errorÚactual_errorr	  s	            r:  r’   r’   L  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ð €Mr<  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²   r2   rƒ   )rp  rq  rÆ  Úpromote_to_intÚgÚress         r:  r“   r“   w  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ÐPr<  c                 ó.   — t        j                  | |«      S rK  )r·  r”   rH  s     r:  r”   r”   Œ  rr  r<  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˜   rS   r‚  rÅ  rÆ  r\   rD   r]   rW   Úcomplexrê  )
rp  rq  r‰  Úmax_Úmin_Úinf_maskÚneg_min_maskÚinf_valsÚnon_nan_valsÚnan_masks
             r:  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ÐSr<  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 dtypesrR  rR  r<  r:  rT  zlogaddexp2.<locals>.<lambda>¹  r|  r<  ru  r6  )r`  rk  r‚  rÅ  rÆ  r²   r—   rT   r*  r\   r]   rG   )rp  rq  r‰  r¼  r½  r¾  Ú	inv_log_2r	  s           r:  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Ó+Ð+r<  c                 óœ   — t        j                  | j                  «      s| dk7  } t        j                  |j                  «      s|dk7  }| |z  S r#  ©r‚  r  rÆ  rH  s     r:  r—   r—   Å  óC   € ô ×!Ñ! !§'¡'Ô*Ø�‰FˆÜ×!Ñ! !§'¡'Ô*Ø�‰FˆØˆq‰5€Lr<  c                 óP   — t        j                  | j                  «      s| dk(  S |  S r#  rÇ  r’  s    r:  r˜   r˜   Ð  s$   € ä×!Ñ! !§'¡'Ô*Ø�A‰vˆØˆ2€Ir<  c                 óª   — t        j                  | j                  «      s| dk7  } t        j                  |j                  «      s|dk7  }t        | |«      S r#  )r‚  r  rÆ  r}   rH  s     r:  r™   r™   ×  sG   € ô ×!Ñ! !§'¡'Ô*Ø�‰FˆÜ×!Ñ! !§'¡'Ô*Ø�‰FˆÜ�a˜ÓÐr<  c                 óœ   — t        j                  | j                  «      s| dk7  } t        j                  |j                  «      s|dk7  }| |z  S r#  rÇ  rH  s     r:  rš   rš   ã  rÈ  r<  c                 ó.   — t        j                  | |«      S rK  )r·  rœ   rH  s     r:  rœ   rœ   î  rr  r<  c                 ó.   — t        j                  | |«      S rK  )r·  r�   rH  s     r:  r�   r�   ö  ó   € ô �=‰=˜˜AÓÐr<  c                 ó.   — t        j                  | |«      S rK  )r·  rž   rH  s     r:  rž   rž   ý  rÎ  r<  )r•  rR  c                 ó.   — t        j                  | |«      S rK  )r·  rŸ   rH  s     r:  rŸ   rŸ     s   € ô
 �9‰9�Q˜‹?Ðr<  c                 ó.   — t        j                  | |«      S rK  rò  rH  s     r:  r    r      rr  r<  c                 ó.   — t        j                  | |«      S rK  )r·  r¡   rH  s     r:  r¡   r¡     s   € ô �?‰?˜1˜aÓ Ð r<  c                 ó.   — t        j                  | |«      S rK  )r·  r¥   rH  s     r:  r¥   r¥     s   € ô �?‰?˜1˜aÓ Ð r<  rU  c                 ól   — t        | t        «      rd}t        |«      ‚t        j                  || |¬«      S )Nz?Received a Number for the first argument, but expected a TensorrZ  )r@  r!   rl  r`  r©   )rp  rq  r[  rÜ  s       r:  r¦   r¦   %  s0   € ô �!”VÔØOˆÜ˜‹oÐä�9‰9�Q˜ Ô'Ð'r<  c                ó†  — t        | |«      \  } }t        | t        «      rgt        |t        «      rWt        j                  t        j                  | j                  «       xr  t        j                  |j                  «       d„ «       |dk7  r“t        | |«      }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.rR  rR  r<  r:  rT  zsub.<locals>.<lambda>J  s   € ðCð r<  rU  r]  rÙ  r�  )r‰  r@  r'   r`  rk  r‚  r  rÆ  rY  r   r    r7  rl  rS  r·  rŸ   r©   rD  r^  s          r:  r©   r©   5  s  € ô  ˜A˜qÓ!�D€A€qä�!”ZÔ ¤Z°´:Ô%>Ü�‰Ü×&Ñ& q§w¡wÓ/Ð/ÒW¼×8NÑ8NÈqÏwÉwÓ8WÐ4Wñô	
ð �‚zÜ   AÓ&ˆÜ×)Ñ)¨%Ó0ˆÜ×*Ñ*¬4°«;¸ÔDØ+¬D°«K¨=Ð8WÐXcÐWdÐdeÐfˆCÜ˜S“/Ð!Ü�aœŸ™Ô&Ü—	‘	˜!˜UÓ#‰Að
 �E‘	ˆAä�Y‰Y�q˜!‹_€FÜ'¨¨A¨°Ó7Ð7r<  rª   )r•  r¨  r‹  rR  c                 ó.   — t        j                  | |«      S rK  )r·  rƒ   rH  s     r:  rª   rª   b  s   € ô �9‰9�Q˜‹?Ðr<  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t        dt        | «      › �«      ‚t        |t        «      st        dt        |«      › �«      ‚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"rR  rR  r<  r:  rT  zxlogy.<locals>.<lambda>u  r|  r<  rk  r×  zb must be TensorLike, got r   r
  )r`  rk  r@  r'   r!   r)  rÆ  r9  rÚ  r7  r²   r„   rŸ   r\   rW   rê  )rp  rq  Úrhss      r:  r¬   r¬   l  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œÔ$ÜÐ9¼$¸q»'¸ÐCÓDÐDÜ�aœÔ$ÜÐ9¼$¸q»'¸ÐCÓDÐDÜ
�+‰+”e—h‘h˜q !“n a¬¯©°1´e·i±iÀ³lÓ)CÓ
D€CÜ�;‰;”u—{‘{ 1“~¤u¨U£|°SÓ9Ð9r<  )r•  r‹  rR  c                 óÀ   — t        j                  | «      }t        j                  |«      rt        j                  | |«      S t        t        j                  | |«      «      S rK  )r‚  Ú	get_dtyper  r·  rƒ   rx   r{  s      r:  r«   r«   ‰  sE   € ô �O‰O˜AÓ€EÜ×Ñ˜eÔ$Ü�y‰y˜˜A‹Ðä”—‘˜1˜a“Ó!Ð!r<  )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 ©NrØ  rÙ  r�  r6  ©rÛ  rÕ  s   €€r:  rT  zaddcdiv.<locals>.<lambda>°  ó   ø€ Ð-¬d°5«k¨]Ð:YÐZeÐYfÐfgÐh€ r<  ©rÆ  r‚  r   r`  rO  r    r7  ©r  rÝ  rÞ  rÕ  rÆ  rÛ  s      ` @r:  r­   r­   ›  ó_   ù€ ð  ÐØ—
‘
ˆÜ×)Ñ)¨%Ó0ˆÜ×ÑÜ×'Ñ'¬¨U«°[ÓAÜhô	
ð
 �%˜'‘/ GÑ+Ñ+Ð+r<  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â  r6  rã  s   €€r:  rT  zaddcmul.<locals>.<lambda>Ë  rä  r<  rå  ræ  s      ` @r:  r®   r®   ¶  rç  r<  )rp  r  rh  r  rh  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!)rl  r`  rW   r}   r‹   r²   r”   )rp  r  rh  rÜ  Úa_isnanÚ	conditions         r:  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Ó*ˆà€Hr<  c                 ó0   — t        j                  | |¬«      S )N)r  ©r`  r¯   )r  r  s     r:  r€   r€   ò  ó   € ô �;‰;�t Ô%Ð%r<  c                 ó0   — t        j                  | |¬«      S )N)rh  rî  )r  rh  s     r:  r�   r�   û  rï  r<  Úpred.c                 ó0   — t        j                  | d¬«      S )NT)Úas_tuple)r`  Únonzero©rñ  s    r:  Ú_where_defaultrö  
  s   € ä�=‰=˜¨Ô-Ð-r<  c                 ó   ‡ — |�|€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   €r:  rT  zwhere.<locals>.<lambda>&  s   ø€ Ð5°d·j±j°\ÐB€ r<  )
ÚNotImplementedErrorr‚  Úcheck_same_devicer`  rk  rÆ  r‡  r‰  r·  r²   )rñ  rp  rq  s   `  r:  r²   r²     sp   ø€ ð" 	€y�A�IÜ!Ð!ä	×Ñ˜D ! QÀÕFÜ	‡L�LØ�
‰
”e—j‘jÐ ÛBôô
 " $¨¨1Ó-�J€Dˆ!ˆQÜ�;‰;�t˜Q Ó"Ð"r<  ©Úmemory_formatrÿ  c                ó4   — t        j                  | |¬«      }|S ©Nrþ  )r·  r³   )rp  rÿ  r	  s      r:  r³   r³   0  s   € ô
 �[‰[˜¨-Ô8€FØ€Mr<  )Ú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!)r9  rg  r·  r´   )rp  rq  r  rÜ  s       r:  r´   r´   9  sM   € Ù !§(¡(¨a¯h©hÒ"6Ø/°·±¨z¸ÀQÇXÁXÀJÐNxÐyˆÜ˜3ÓÐä�=‰=˜˜AÓÐr<  c                 óÚ   — | j                  «       dk7  rd| j                  «       › d�}t        |«      ‚t        j                  | j                  «      } |t        j                  | «      «      S )NrU  zCan't convert a tensor with z elements to a number!)r  rl  r‚  r   rÆ  r·  rµ   )rp  rÜ  Únumber_types      r:  rµ   rµ   A  sW   € à‡w�wƒy�A‚~Ø,¨Q¯W©W«Y¨KÐ7MÐNˆÜ˜‹oÐô ×%Ñ% a§g¡gÓ.€KÙ”u—z‘z !“}Ó%Ð%r<  r9  Ú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  )r9  rÆ  r  r`  Úpreserve_formatr‚  Úis_contiguous_for_memory_format)rp  r9  rÆ  r  r  rÿ  r  r	  s           r:  Ú_to_will_aliasr  N  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ðr<  c                  ó   — t         ‚rK  )rü  )rˆ  r   s     r:  Ú_to_dispatchr  g  s   € ä
Ðr<  c                 ó   — | ||||dœ}|S ©N)r9  rÆ  r	  r  rÿ  rR  ©r9  rÆ  r	  r  rÿ  r   s         r:  Ú
_to_devicer  l  s!   € ð ØØ$ØØ&ñ€Fð €Mr<  c                 ó<   — t        j                  | «      ||||dœ}|S r  )r`  r9  r  s         r:  Ú_to_device_strr  ~  s*   € ô —,‘,˜vÓ&ØØ$ØØ&ñ€Fð €Mr<  c                 ó   — | |||dœ}|S )N)rÆ  r	  r  rÿ  rR  )rÆ  r	  r  rÿ  r   s        r:  Ú	_to_dtyper  �  s   € ð Ø$ØØ&ñ	€Fð €Mr<  Úotherc                 ó`   — | j                   }| j                  }| j                  }||||||dœ}|S )N)r9  rÆ  r  r	  r  rÿ  )r9  rÆ  r  )r  r	  r  rÿ  r9  rÆ  r  r   s           r:  Ú	_to_otherr     sA   € ð �\‰\€FØ�K‰K€EØ�\‰\€Fð ØØØ$ØØ&ñ€Fð €Mr<  Ú	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Æ  r9  r  rÿ  r9  rÿ  )	r@  r„  r`  r9  r  r7  Úindexr¯  Úpop)rp  r  Úoptions_to_checkÚkws       r:  Ú_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Õ!ñ"r<  c                 óü  — t        |«      dk7  rt        |i |¤Ž}d|v rt        d«      ‚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  z#pin_memory is not supported in refsr  Fr	  rÆ  rÿ  r9  r  )rX  r  rÚ  r!  r  r  ÚgetrÆ  r·  r­  r`  r  r´   )rp  rˆ  r   r  r	  r	  s         r:  r¶   r¶   Ð  sþ   € ä
ˆ4ƒy�A‚~Ü˜tÐ. vÑ.ˆð �vÑÜÐBÓCÐCÜ˜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ÔØ€Mr<  )Úhas_identityÚaccepts_dim_tuplerE  ÚkeepdimsrÆ  r¬  r�  r$  r%  rE  r&  r¬  Úoutput_dtype_kindc                ó®  ‡ — t        ‰ t        «      st        dt        ‰ «      › �«      ‚‰ j                  dkD  rt        d‰ j                  › d�«      ‚|�Ct        |t        «      st        dt        |«      › �«      ‚|�||j                  k7  rt        d«      ‚|s)|�'t        |t        «      st        dt        |«      › �«      ‚t        |t        «      r|f}t        j                  ‰ j                  |«      }|s<dd	lm}	 ‰ j                  dk(  xs  |	ˆ fd
„|D «       Ž }
t        j                  |
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&                  |||«      }|�L|€t        d«      ‚|�||j                  k7  rt        d«      ‚t)        ||j                  «      }t+        ||¬«      S |j                  |k7  r|�t%        j,                  ||«      }|S c c}w c c}w )Nr×  é@   zReceived a tensor with z? dimensions, but only tensors with up to 64 dims are supported!úout must be TensorLike, got z4dtype argument and out dtype must match in reductionzdims must be None or Dim, got r   )ry  c              3   óB   •K  — | ]  }‰j                   |   d kD  –— Œ y­w©r   N©rY  ©rN  Úirp  s     €r:  rP  z_reduction.<locals>.<genexpr>	  s   øè ø€ Ò.LÀ!¨q¯w©w°q©z¸A­~Ñ.Lùs   ƒc                   ó   — y)NzJreducing over zero-size dimension for reduction operation without identityrR  rR  r<  r:  rT  z_reduction.<locals>.<lambda>!	  r|  r<  rU  z4result_dtype should not be None when out is providedz7Expected the dtype of reduction result and out to match©Ú	copy_fromr´   )r@  r'   rÚ  r7  Úndimrg  rÆ  r   r‚  Úreduction_dimsrY  r_  ry  r`  rk  Úreduction_dtypesr+   rj  r·  Úbroadcast_in_dimr,   r-   r­  )rp  r�  r$  r%  rE  r&  rÆ  r¬  r'  ry  Úvalid_shaper  r   r	  r/  Úoutput_shapeÚbroadcast_dimss   `                r:  Ú
_reductionr:  ø  sG  ø€ ô �aœÔ$ÜÐ9¼$¸q»'¸ÐCÓDÐDØ‡v�v�‚{ÜØ% a§f¡f XÐ-lÐmó
ð 	
ð €Ü˜#œzÔ*Ü Ð#?ÄÀSÃ	¸{Ð!KÓLÐLØÐà˜Ÿ	™	Ò!Ü"ØJóð ñ Ø�¤
¨4´Ô 5Ü Ð#AÄ$ÀtÃ*ÀÐ!NÓOÐOÜ�$œÔØˆwˆÜ×Ñ §¡¨Ó.€DÙÝAà—f‘f ‘kÒM¡WÓ.LÀtÔ.LÐ%MˆÜ�‰ØÙ`ô	
ô
 ',×&<Ñ&<Ø	Ð˜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ˆà
€ØÐÜ Ð!WÓXÐXØÐ °·±Ò!:ÜØIóð ô    V§\¡\Ó2ˆÜ¨¸Ô<Ð<à‡|�|�|Ò#¨Ð(@Ü×+Ñ+¨F°LÓAˆà€Mùò# SùÚDs   Å:IÆ/	IÆ9Ic                 óJ  ‡ ‡— t        t        ‰ j                  «      }t        ‰ di «      } t        d¬«      |«      Š 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__Tr‘  N©r¬  c                 óX   •—  ‰|d| i|¤Ž}‰r| �y | �|S t        j                  d„ |«      S )Nr¬  c                 óB   — | j                  t        j                  ¬«      S r  )r³   r`  Úcontiguous_formatrS  s    r:  rT  z3_make_copy_from_view.<locals>._fn.<locals>.<lambda>Q	  s   € �a—g‘g¬E×,CÑ,C�gÓD€ r<  )ÚpytreeÚtree_map)r¬  rˆ  r   r	  r¡  Úreturn_none_on_out_variants       €€r:  r¢  z!_make_copy_from_view.<locals>._fnH	  sB   ø€ á�TÐ-˜sÐ- fÑ-ˆÙ%¨#¨/ØØˆ?ØˆMä�‰ÙDØó
ð 	
r<  Ú_copy)r¯  r°  rš  r0   r
   r<  ÚupdaterŠ  )r¡  rC  Úaten_fnÚannotationsr¢  Ú	copy_names   ``    r:  Ú_make_copy_from_viewrI  >	  s™   ù€ ô ”d˜BŸK™KÓ(€GÜ˜"Ð/°Ó4€Kð 
'Œ Ô	& wÓ	/€Bä
ˆ2ƒYØö 

ó ð

ð —;‘;�-˜uÐ%€IØ€C„LØ×Ñ×Ñ˜{Ô+Ø4Ôœ7¤4¨Ó3Ó4°SÔ9Ø€Jr<  c                 óü   — t        j                  t        j                  t        j                  | «      ||¬«      «      }| j                  t         j                  k(  r |j                  t         j                  ¬«      }|S )Nrý  ræ  )r`  r˜   rº   rÆ  Úuint8r¶   )rp  rû  rþ  r	  s       r:  r·   r·   \	  sU   € ô ×ÑœuŸy™y¬×):Ñ):¸1Ó)=¸sÈGÔTÓU€Fà‡w�w”%—+‘+ÒØ—‘¤§¡�Ó-ˆà€Mr<  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‡  r@  Úlistre  rX  r³   rÂ   r    rÆ  rK  r·  r­  )rp  rû  rþ  r  r	  s        r:  rº   rº   k	  s‚   € ô 
! ¤E§J¡JÓ	/€BÜ�#œœe�}Ô%¬#¨c«(°aª-Ø—‘“‰à—‘˜C¨�Ó1×4Ñ4°UÓ;ˆð 	‡w�w”%—+‘+ÑÜ×)Ñ)¨&´%·+±+Ó>Ð>à€Mr<  )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 ©NrR  ©rE  r&  rÆ  r¬  r'  )rÆ  r‚  r  r  r`  Úint64r:  r·  rÂ   r$   ÚSAME©rp  rû  rþ  rÆ  r¬  s        r:  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ôð r<  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-  ©rp  rY  s   €€r:  rT  zsum_to_size.<locals>.<lambda>¤	  s   ø€ Ð% e WÐ,IÈ!Ï'É'ÈÐRSÐT€ r<  r   c              3   ó\   •K  — | ]#  }‰|‰z
     d k(  r‰j                   |   d k7  r|–— Œ% y­w©rU  Nr-  )rN  r/  rp  Úleading_dimsrY  s     €€€r:  rP  zsum_to_size.<locals>.<genexpr>«	  s9   øè ø€ ò 5àØ��\Ñ!Ñ" aÒ'¨A¯G©G°A©J¸!ªOô 	
ñ5ùs   ƒ),T)rû  rþ  rÆ  )r‚  Úextract_shape_from_varargsr`  rk  Úis_expandable_torY  Úis_same_shaperX  r·  Úview_ofr3  re  rj  rÂ   )rp  rY  Úreduce_dimsr\  s   `` @r:  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ÐBr<  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 rO  )rÆ  r‚  r  r  r`  rQ  r:  r·  rÄ   r$   rR  rS  s        r:  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ôð r<  r=  c          
      óx   — |dk(  s|g k(  rd }t        | t        j                  ||d |dt        j                  ¬«      S ©NrR  F©rE  r&  rÆ  r¬  r$  r'  )r:  r·  r¹   r$   rR  ©rp  rû  rþ  r¬  s       r:  r¹   r¹   Ñ	  óE   € ð ˆb‚y�C˜2’IØˆäØ	Ü�
‰
ØØØØØÜ4×9Ñ9ô	ð 	r<  c          
      óx   — |dk(  s|g k(  rd }t        | t        j                  ||d |dt        j                  ¬«      S rd  )r:  r·  r¸   r$   rR  rf  s       r:  r¸   r¸   é	  rg  r<  c                 ó6   — |€t        | t        «      r| }d } | |fS rK  )r@  r‡  )rû  Úunbiaseds     r:  Ú_dim_var_dispatchrk  
  s'   € ð ÐœJ s¬DÔ1ØˆØˆØ�ˆ=Ðr<  ©Ú
correctionrj  rm  c          
      óÜ   — t        ||«      \  }}t        j                  ||«      }|dk(  s|g k(  rd }t        | t	        t
        j                  |¬«      ||d d dt        j                  ¬«      }|S )NrR  rl  Tre  )	rk  r‚  Úset_correctionr:  r   r·  rÅ   r$   ÚCOMPLEX_TO_FLOAT)rp  rû  rj  rþ  rm  r	  s         r:  rÅ   rÅ   
  sr   € ô & c¨8Ó4�M€CˆÜ×%Ñ% h°
Ó;€Jà
ˆb‚y�C˜2’IØˆäØ	Ü”—	‘	 jÔ1ØØØØØÜ4×EÑEô	€Fð €Mr<  c                ó@  — t        ||«      \  }}t        j                  ||«      }t        j                  | t        j
                  «      \  }}t        | |«      } t        j                  | |||¬«      }t        j                  |«      }|€t        d«      ‚t        ||«      S ©N)rm  rþ  z/dtype should not be None after reduction_dtypes)rk  r‚  ro  r5  r$   rp  r+   r`  rÅ   rs   rÚ  )	rp  rû  rj  rþ  rm  Úopmath_dtyperÆ  Úa_varÚa_stds	            r:  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Ø€}ÜÐNÓOÐOÜ" 5¨%Ó0Ð0r<  c          	      óà  ‡ ‡‡	— |dk(  s|g k(  rd }‰Š	‰€‰ j                   Š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)        ||«      }|�Jt        |t*        «      st-        dt/        |«      › �«      ‚t1        ||j                  «      }t3        ||¬«      S |S )	NrR  rP  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: rR  )rÆ  Ú
orig_dtypes   €€r:  rT  zmean.<locals>.<lambda>Z
  s'   ø€ Ø4Ø$Ð,‰w°*Ð=ð >7Ø7<°gð?ð r<  r   rU  c              3   ó<   •K  — | ]  }‰j                   |   –— Œ y ­wrK  r-  r.  s     €r:  rP  zmean.<locals>.<genexpr>c
  s   øè ø€ Ò7QÀq¸¿¹À½
Ñ7Qùs   ƒr*  r1  )rÆ  r:  r·  rÂ   r$   ÚKEEP_PROMOTED_TYPEr`  rk  r‚  rç  rÅ  r@  r   r4  rY  r3  r   ÚoperatorrŸ   rª   r+   r'   rÚ  r7  r,   r-   )
rp  rû  rþ  rÆ  r¬  r	  rE  Únelemr   ry  s
   `  `     @r:  r½   r½   @
  sA  ú€ ð ˆb‚y�C˜2’IØˆØ€JØ€}Ø—‘ˆÜØ	Ü�	‰	ØØØØÜ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Ô*Ü Ð#?ÄÀSÃ	¸{Ð!KÓLÐLÜ  V§\¡\Ó2ˆÜ¨¸Ô<Ð<Ø€Mr<  Úout0Úout1)rj  rþ  rm  c                óv  — t        ||«      \  }}t        j                  ||«      }t        j                  | t        j
                  «      \  }}| j                  }t        | |«      } t        j                  | |||¬«      \  }}	t        j                  |«      }
|€t        d«      ‚t        |
|«      t        |	|«      fS rr  )rk  r‚  ro  r5  r$   rp  rÆ  r+   r`  rÆ   rs   rÚ  )rp  rû  rj  rþ  rm  rs  rÆ  Úoriginal_dtypert  Úa_meanru  s              r:  rÁ   rÁ   o
  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Ø€}ÜÐNÓOÐOä  uÓ-Ü ¨Ó7ðð r<  c                ób   — t        ||«      \  }}t        | ||||¬«      }t        | ||«      }||fS )Nrl  )rk  rÅ   r½   )rp  rû  rj  rþ  rm  ÚvÚms          r:  rÆ   rÆ   Š
  s=   € ô & c¨8Ó4�M€CˆÜˆAˆs�H˜g°*Ô=€AÜˆQ��WÓ€AØˆaˆ4€Kr<  )r  Úvec1Úvec2)Úbetar[  r†  r‡  rˆ  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 )NrU  c                  ó$   •— d‰ j                   › d�S )Nz*addr: Expected 1-D argument vec1, but got ú-D©r3  )r†  s   €r:  rT  zaddr.<locals>.<lambda>ª
  ó   ø€ Ð<¸T¿Y¹Y¸KÀrÐJ€ r<  c                  ó$   •— d‰ j                   › d�S )Nz*addr: Expected 1-D argument vec2, but got r‹  rŒ  )r‡  s   €r:  rT  zaddr.<locals>.<lambda>®
  r�  r<  r[  rˆ  c                  ó   •— d‰ › d�S )NzBoolean z$ only supported for Boolean results.rR  )Úarg_names   €r:  rT  zaddr.<locals>.<lambda>¶
  s   ø€ ˜( 8 *Ð,PÐQ€ r<  r   c                  ó    •— dt        ‰ «      › �S )Nzexpected bool/int beta but got r6  )rˆ  s   €r:  rT  zaddr.<locals>.<lambda>½
  s   ø€ Ð5´d¸4³j°\ÐB€ r<  c                  ó    •— dt        ‰ «      › �S )Nz expected bool/int alpha but got r6  rZ  s   €r:  rT  zaddr.<locals>.<lambda>Á
  s   ø€ Ð6´t¸E³{°mÐD€ r<  Fc                  ó:   •— dt        ‰ «      › d‰j                  › �S ©Nzcannot safely convert z to ©r7  rÆ  )rˆ  r  s   €€r:  rT  zaddr.<locals>.<lambda>Í
  s   ø€ Ð,¬T°$«Z¨L¸¸T¿Z¹Z¸LÐI€ r<  c                  ó:   •— dt        ‰ «      › d‰j                  › �S r”  r•  )r[  r  s   €€r:  rT  zaddr.<locals>.<lambda>Ñ
  s   ø€ Ð,¬T°%«[¨M¸¸d¿j¹j¸\ÐJ€ r<  )r`  rk  r3  r@  r‡  r‚  r  rÆ  rá   rY  r    r7  ÚintÚouterr  r™   r   )r  r†  r‡  rˆ  r[  Úargr�  s   ````` @r:  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ÛDô	
ñ Ù.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Ó)@Ñ!@Ñ@Ð@r<  r™  rˆ  c                 ó  — |s't        | t        j                  j                  «      r| }n5t        | t        j                  j                  «      rt	        d«      ‚| f|z   }t        d„ |D «       «      }t        |«      dkD  r|S |d   S )z5Reference implementation of :func:`torch.atleast_1d`.ú2arg should not be a Sequence when args is providedc              3   óV   K  — | ]!  }|j                   d k\  r|nt        |d«      –— Œ# y­w)rU  r   N)r3  r  ©rN  rp  s     r:  rP  zatleast_1d.<locals>.<genexpr>å
  s%   è ø€ ÒE¸!�Q—V‘V˜q’[‘¤i°°1£oÓ5ÑEùs   ‚')rU  r   )r@  ÚcollectionsÚabcr   rÚ  re  rX  )r™  rˆ  Úargs_r¸  s       r:  rÊ   rÊ   Û
  ss   € ñ ”J˜s¤K§O¡O×$<Ñ$<Ô=Ø‰ä�cœ;Ÿ?™?×3Ñ3Ô4Ü Ð!UÓVÐVØ�˜‘ˆÜ
ÑE¸uÔEÓ
E€CÜ�c“(˜Q’,ˆ3Ð* C¨¡FÐ*r<  Úat_least_fnc                 óx   —  | |«      }t        |t        «      st        dt        |«      › �«      ‚t	        ||«      S )Nz(at_least_fn must return TensorLike, got )r@  r'   rÚ  r7  r  )r¡  rû  r™  Úarg_s       r:  Ú_unsqueeze_atleastr¤  ë
  s<   € ñ �sÓ€DÜ�dœJÔ'ÜÐGÌÈTË
À|ÐTÓUÐUÜ�T˜3ÓÐr<  c                 ó<  ‡— |s't        | t        j                  j                  «      r| }n5t        | t        j                  j                  «      rt	        d«      ‚| 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›  r   c              3   óP   •K  — | ]  }|j                   d k\  r|n ‰|«      –— Œ y­w)r6  NrŒ  )rN  rp  Úunsqueeze_atleast_1ds     €r:  rP  zatleast_2d.<locals>.<genexpr>   ó&   øè ø€ ÒMÀ!�Q—V‘V˜q’[‘Ñ&:¸1Ó&=Ó=ÑMùó   ƒ#&rU  )
r@  rž  rŸ  r   rÚ  r   r¤  rÊ   re  rX  )r™  rˆ  r   r¸  r§  s       @r:  rË   rË   õ
  s„   ø€ ñ ”J˜s¤K§O¡O×$<Ñ$<Ô=Ø‰ä�cœ;Ÿ?™?×3Ñ3Ô4Ü Ð!UÓVÐVØ�˜‘ˆÜ"Ô#5´zÀ1ÓEÐÜ
ÓMÀuÔMÓ
M€CÜ�c“(˜Q’,ˆ3Ð* C¨¡FÐ*r<  c                 ó<  ‡— |s't        | t        j                  j                  «      r| }n5t        | t        j                  j                  «      rt	        d«      ‚| f|z   }t        t        t        d«      Št        ˆfd„|D «       «      }t        |«      dkD  r|S |d   S )z5Reference implementation of :func:`torch.atleast_3d`.r›  rZ  c              3   óP   •K  — | ]  }|j                   d k\  r|n ‰|«      –— Œ y­w)é   NrŒ  )rN  rp  Úunsqueeze_atleast_2ds     €r:  rP  zatleast_3d.<locals>.<genexpr>  r¨  r©  rU  r   )
r@  rž  rŸ  r   rÚ  r   r¤  rË   re  rX  )r™  rˆ  r   r¸  r­  s       @r:  rÌ   rÌ     s„   ø€ ñ ”J˜s¤K§O¡O×$<Ñ$<Ô=Ø‰ä�cœ;Ÿ?™?×3Ñ3Ô4Ü Ð!UÓVÐVØ�˜‘ˆÜ"Ô#5´zÀ2ÓFÐÜ
ÓMÀuÔMÓ
M€CÜ�c“(˜Q’,ˆ3Ð* C¨¡FÐ*r<  r>  r:  r@  c                 óZ   — |�|n| j                  «       }t        j                  | |||«      S rK  )r@  r·  rÍ   )rp  r>  r:  r@  Ústorage_offset_ints        r:  rÍ   rÍ     s6   € ð )Ð4‰¸!×:JÑ:JÓ:Lð ô ×Ñ˜A˜t VÐ-?Ó@Ð@r<  Úsrcc                 ó@   — |€dn|}t        j                  | ||||«      S r#  )r·  rÏ   )rÃ  r°  r>  r:  r@  r¯  s         r:  rÏ   rÏ      s+   € ð -Ð4™¸.ÐÜ×#Ñ# E¨3°°fÐ>PÓQÐQr<  c                  ó8   — t        j                  t        | Ž «      S rK  )r`  ÚSizerr  )ro  s    r:  rÑ   rÑ   -  s   € Ü�:‰:Ô'¨Ð0Ó1Ð1r<  c                  óv   — t        | «      dk(  rt        | d   t        «      s| d   } t        t	        | ddiŽ«      S )NrU  r   rs  F)rX  r@  rS  rM  r‰  ©Útensorss    r:  rÒ   rÒ   1  s<   € ô ˆ7ƒ|�qÒ¤¨G°A©J¼Ô!?Ø˜!‘*ˆÜÔ  'ÐMÀuÑMÓNÐNr<  c                 óÈ   — t        |«      t        | j                  «      z
  }t        t        |t        | j                  «      |z   «      «      }t	        j
                  | ||«      S rK  )rX  rY  re  rj  r·  r6  )rp  r>  ÚstartrE  s       r:  rÓ   rÓ   :  sK   € Ü�‹Iœ˜AŸG™G›Ñ$€EÜ”�uœc !§'¡'›l¨UÑ2Ó3Ó4€DÜ×!Ñ! ! T¨4Ó0Ð0r<  rµ  r¶  c                 ó  ‡
‡‡‡— d„ }t        | «      dk(  rd}t        |«      ‚| D ])  }t        |t        «      rŒt	        dt        |«      › �«      ‚ 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  rX|j                  dk7  rt	        d
|j                  › �«      ‚t        j                   ||j                  d   dk(  «      ˆ
ˆfd„«       Œ|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                  |«       t1        j2                  ||«      j5                  |¬«      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 |€t	        d«      ‚|S )Nz,format should not be None if len(inputs) > 0)r‚  Úsuggest_memory_formatr`  r@  rÚ  )ÚinputsÚformatrþ   Úfs       r:  Ú cat_compute_output_memory_formatz-cat.<locals>.cat_compute_output_memory_formatG  sn   € ØˆØò 	ˆAÜ×+Ñ+¨AÓ.ˆAØ”E×+Ñ+Ò+Ø’ØÐ! f°¢kÜ×.Ñ.Ò.Ø‰Fð	ð ˆ>Ü Ð!OÓPÐPØˆr<  r   z3cat expects at least one tensor, but received zero!ztensor must be TensorLike, got rú  F©rF  rU  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 listrŒ  )Úexampler/  rþ   s   €€€r:  rT  zcat.<locals>.<lambda>z  s0   ø€ ð  Ø '§¡˜~Ð-AÀ!Ç&Á&Àð J%Ø%& C |ð5€ r<  z+tensor.ndim should be 1 at this point, got c                  ó*   •— d‰ j                   › d‰› d�S )NrÂ  z*-D tensors, but got 1-D for tensor number rÃ  rŒ  )rÄ  Ú
tensor_idxs   €€r:  rT  zcat.<locals>.<lambda>™  s$   ø€ ð Ø#ŸL™L˜>ð *!Ø!+ ¨Lð:€ r<  c              3   ó4   K  — | ]  }|j                   –— Œ y ­wrK  )Úrequires_gradrM  s     r:  rP  zcat.<locals>.<genexpr>°  s   è ø€ Ò$F¸ Q§_¥_Ñ$Fùó   ‚©r   ©rÆ  r9  rÈ  rÿ  rþ  )rX  rl  r@  r'   rÚ  r7  r‚  rý  r_  rF  ri  r3  r`  rk  rY  r²  r‡  rº   Ú	Exceptionr  rÆ  r9  Úcanonicalize_dimÚvalidate_idxr·  rÔ   r³   )r¶  rû  r¿  rÜ  ÚtensorrF  rY  Úfilteredrÿ  rÈ  rÄ  r/  rþ   rÆ  s             @@@@r:  rÔ   rÔ   @  so  û€ òô ˆ7ƒ|�qÒØCˆÜ˜‹oÐàò SˆÜ˜&¤*Õ-Ü Ð#BÄ4ÈÃ<À.Ð!QÓRÐRðSô 
×Ñ˜WÐE¸uÒEåDð$ €Gä˜'Ó"ò ‰ˆˆ1Øˆ?Ø�v‰v˜‹{Ø‘à�v‰v˜‹{Ü—‘Ø—F‘F˜gŸl™lÑ*õ5õðð €ð ˜!‘*ˆà�M‰M€EØ€HÜ'¨Ó0ò $Ñˆ
�FÜˆu‹:œ˜VŸ\™\Ó*Ò*Ø�{‰{˜aÒÜ$ØAÀ&Ç+Á+ÀÐOóð ô �L‰Lñ ˜vŸ|™|¨A™°!Ñ3Ó4ô:õð$ �{‰{˜aÒ¡N°6·<±<À±?ÀaÑ3GÔ$HØà�O‰O˜FÕ#ð9$ñ< 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   ÇI9 É9JÊJc                 ó>   — t        d„ | D «       «      }t        |d«      S )Nc              3   ó€   K  — | ]6  }|j                   d kD  r|n |j                  |j                  «       d f«      –— Œ8 y­wr[  )r3  rô   r  rM  s     r:  rP  zcolumn_stack.<locals>.<genexpr>Å  s7   è ø€ ò Ø;<ˆQ�V‰V�aŠZ‰˜QŸY™Y¨¯©«	°1 ~Ó6Ó6ñùs   ‚<>rU  )re  rÔ   ©r¶  Úaligned_tensorss     r:  rÖ   rÖ   Ã  s(   € äñ Ø@Gôó €Oô ˆ Ó"Ð"r<  c                 ó°   — t        j                  | j                  «      s| S | j                  rt	        j
                  | «      S t        j                  | «      S rK  )r‚  rÅ  rÆ  Ú	is_sparser`  r;   r·  r×   rÇ  s    r:  r×   r×   Ë  s@   € Ü×!Ñ! %§+¡+Ô.ØˆØ‡‚Ü×"Ñ" 5Ó)Ð)Ü�:‰:�eÓÐr<  Ú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k\  ˆ
ˆˆˆˆ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 )
Nr6  r   c                  ó    •— dt        ‰ «      › �S )Nz1Length of pad must be even but instead it equals rW  )r×  s   €r:  rT  z!constant_pad_nd.<locals>.<lambda>Û  s   ø€ ÐCÄCÈÃHÀ:ÐN€ r<  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.rW  )Úl_inpr×  s   €€r:  rT  z!constant_pad_nd.<locals>.<lambda>æ  s"   ø€ ð 2Ü25°c³(°Ð;PØˆ'�ð€ r<  rU  c              3   ó&   K  — | ]	  }|d k  –— Œ y­wr,  rR  )rN  Úps     r:  rP  z"constant_pad_nd.<locals>.<genexpr>ý  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¥  rU  zG resulted in a negative output size, which is invalid. Check dimension z of your input.rR  )r/  Úinput_sizesÚl_diffr×  Úpad_idxs   €€€€€r:  rT  z!constant_pad_nd.<locals>.<lambda>  sG   ø€ �o k°&¸1±*Ñ&=Ð%>Ð>VØ�7‰|ˆn˜E # g°¡kÑ"2Ð!3ð 41Ø17¸!±°¸OðM€ r<  rË  F)r`  rk  rX  rY  rj  rì   r?  r·   r³   rM  r²  r‚  r»  r  rÆ  r9  rÈ  r‡  rH   r·  r´   )rÃ  r×  rÕ  Úl_padÚc_inputÚ	new_shapeÚnew_dimrÿ  rC  Úc_outputr/  rà  rá  rÜ  râ  s    `        @@@@@r:  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ˆÜ�‰Ø�q‰L÷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Ô$Ø€Mr<  c                óž   — t        j                  |t         j                  k7  d„ «       t        | |¬«      r| S t        j                  | |¬«      S )Nc                   ó   — y)Nz@preserve memory format is unsupported by the contiguous operatorrR  rR  r<  r:  rT  zcontiguous.<locals>.<lambda>.  r|  r<  rþ  )r`  rk  r  r   r³   )rp  rÿ  s     r:  rÙ   rÙ   )  sC   € ô 
‡L�LØœ×.Ñ.Ñ.ÙRôô 0°ÀÕOØˆä�;‰;�q¨Ô6Ð6r<  c                 óp   — t        j                  t        | «      dkD  d„ «       t        | Ž }t	        |d«      S )Nr   c                   ó   — y)Nz%dstack expects a non-empty TensorListrR  rR  r<  r:  rT  zdstack.<locals>.<lambda>:  r|  r<  r6  )r`  rk  rX  rÌ   rÔ   rÓ  s     r:  rà   rà   8  ó1   € ä	‡L�L”�W“ Ñ!Ñ#RÔSÜ  'Ð*€OÜˆ Ó"Ð"r<  )Úimplicitrí  c                óÆ  ‡‡— ddl m}m}m}m} t
        j                  j                  j                  j                  }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 ]¨  \  }
Š|
|z   }||   Š |‰dk(  «      r‰|	|<   Œ!|rB |‰«      r: |‰«      r2 |‰«      } |‰«      }|dk(  r|dk7  rt        j                  ‰dk(  «       t        j                   |‰dk(  ‰‰k(  «      ˆˆfd„«       t        j                  ‰dk\  «       ‰|	|<   Œª t%        j&                  |	«       t)        j*                  | |	t        t-        |t        | j                  «      |z   «      «      «      S )Nr   )rF  rG  rH  rz  rU  c                   ó   — y)Nz3expand: the requested shape has too few dimensions!rR  rR  r<  r:  rT  zexpand.<locals>.<lambda>R  r|  r<  rZ  c                  ó   •— d‰› d‰ › d�S )Nz3expand: attempting to expand a dimension of length ú -> r�  rR  )Úrequested_lengthrO  s   €€r:  rT  zexpand.<locals>.<lambda>|  s   ø€ ÐMÈaÈSÐPTÐUeÐTfÐfgÐh€ r<  )r_  rF  rG  rH  rz  r`  ra  rb  rc  rd  rX  r@  r   re  rk  rY  rM  ri  r‚  Úvalidate_shaper·  r6  rj  )rp  rí  rY  rF  rG  rH  rz  rn  r„  Úshape_r^  Ú
offset_idxÚx_hintÚrequested_hintrò  rO  s                 @@r:  rá   rá   ?  s®  ù€ ÷ó ô —‘×%Ñ%×-Ñ-×CÑC€Iô
 ˆ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Ó$ò (2‰ˆˆQØ˜6‘\ˆ
Ø  Ñ,Ðñ Ð*¨bÑ0Ô1Ø!"ˆF�:Òñ Ù% aÔ(Ù%Ð&6Ô7á/°Ó2�Ù!7Ð8HÓ!I�Ø˜Q’; >°QÒ#6Ü—L‘L  a¡Ô(ä�L‰LÙ�q˜A‘vÐ/°1Ñ4Ó5Ühôô �L‰LÐ)¨QÑ.Ô/Ø!1ˆF�:ÒðQ(2ôV 
×Ñ˜Ô ä×!Ñ!Ø	ˆ6”5œ˜v¤s¨1¯7©7£|°fÑ'<Ó=Ó>óð r<  c                 ó8   — | j                  |j                  «      S rK  )rá   rY  rH  s     r:  râ   râ   Š  s   € Ø�8‰8�A—G‘GÓÐr<  Úchunksc           	      ó®  — |dk  rd|› d�}t        |«      ‚t        j                  | j                  |«      }| j                  |   }t        j                  ||z  «      }t        j                  ||z  «      }||z  }t        |«      D �cg c]  }t        | |||z  |«      ‘Œ }	}|dk7  r |	j                  t        | |||z  |«      «       t        |	«      S c c}w )Nr   z%Expected at least one chunk, but got r�  )rl  r‚  rÍ  r3  rY  r*  r:   rJ   rj  rì   r²  re  )
rp  rù  rû  rÜ  ÚlengthÚ
chunk_sizeÚfull_chunksÚtail_chunk_sizer/  r	  s
             r:  rÕ   rÕ   Ž  sÎ   € Ø�‚{Ø5°f°X¸QÐ?ˆÜ˜‹oÐä
×
 Ñ
  §¡¨Ó
-€CØ�W‰W�S‰\€FÜ—‘˜6 F™?Ó+€JÜ—*‘*˜V jÑ0Ó1€KØ˜zÑ)€OäBGÈÓBTÖU¸QŒf�Q˜˜Q ™^¨ZÕ8ÐU€FÐUà˜!ÒØ�‰”f˜Q  [°:Ñ%=¸ÓOÔPä�‹=Ðùò Vs   ÂCÚ	start_dimÚend_dimc                 óF  — t        j                  | j                  |«      }t        j                  | j                  |«      }||k(  r| j                  dk7  r| S t        j                  | ||d ¬«      \  }}|�t        j
                  | ||«      S t        j                  | ||«      S )Nr   ©Úmust_be_valid)r‚  rÍ  r3  r·  Ú_collapse_view_helperÚcollapse_viewÚcollapse)rp  rÿ  r   rå  Ú_new_stridess        r:  rä   rä   ¤  s™   € Ü×&Ñ& q§v¡v¨yÓ9€IÜ×$Ñ$ Q§V¡V¨WÓ5€Gð �GÒ §¡¨!¢Øˆô
 $×9Ñ9Ø	ˆ9�g¨TôÑ€Iˆ|ð ÐÜ×"Ñ" 1 i°Ó9Ð9ô �>‰>˜!˜Y¨Ó0Ð0r<  c                 ó6  — t        |t        «      st        |t        «      st        d«      ‚t	        j
                  | j                  |«      }t	        j                  |«       | j                  dk(  rt        j                  | «      S t        j                  | |«      S )Nz!dims has to be a sequence of intsr   )r@  re  rM  rl  r‚  Úcanonicalize_dimsr3  Úvalidate_no_repeating_dimsr`  r³   r·  Úrev)rp  rE  s     r:  rå   rå   ¹  sq   € ô �dœEÔ"¬:°d¼DÔ+AÜÐ<Ó=Ð=Ü×"Ñ" 1§6¡6¨4Ó0€DÜ	×$Ñ$ TÔ*Ø‡v�v�‚{Ü�{‰{˜1‹~ÐÜ�9‰9�Q˜ÓÐr<  c                 óN   — | j                   dk  rt        d«      ‚t        | d«      S )Nr6  zInput must be >= 2-d.©rU  ©r3  rg  rå   r’  s    r:  ræ   ræ   Æ  ó%   € Ø‡v�v�‚zÜÐ2Ó3Ð3ä��4‹=Ðr<  c                 óN   — | j                   dk  rt        d«      ‚t        | d«      S )NrU  zInput must be >= 1-d.rÊ  r  r’  s    r:  rç   rç   Î  r  r<  r¸  rû  c                 óF  ‡‡‡— t        ‰t        «      rYt        j                  ‰j	                  «       dk(  xr t        j                  ‰j                  «      d„ «       ‰j                  «       Št        t        ‰«      Š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"                  «      }‰||<   | j%                  || j'                  «       | j)                  «       | j'                  |«      ‰z  z   «      S )Nr   c                   ó   — y)Nz'start must be an 0-dim integral Tensor.rR  rR  r<  r:  rT  znarrow.<locals>.<lambda>Þ  r|  r<  c                   ó   — y)Nz-narrow() cannot be applied to a 0-dim tensor.rR  rR  r<  r:  rT  znarrow.<locals>.<lambda>â  r|  r<  c                   ó   — y)Nz&narrow(): length must be non-negative.rR  rR  r<  r:  rT  znarrow.<locals>.<lambda>ã  r|  r<  c                  ó   •— d‰  › d‰ › d‰› d�S )Nz0start out of range (expected to be in range of [ú, z], but got ú)rR  )Ú
dim_lengthr¸  s   €€r:  rT  znarrow.<locals>.<lambda>é  s%   ø€ ÐBÀJÀ;À-ÈrÐR\ÐQ]Ð]hÐinÐhoÐopÐq€ r<  c                  ó   •— d‰› d‰› d‰ › d�S )Nzstart (z) + length (z) exceeds dimension size (z).rR  )r  rû  r¸  s   €€€r:  rT  znarrow.<locals>.<lambda>ï  s   ø€ �'˜%˜ ¨V¨HÐ4NÈzÈlÐZ\Ð]€ r<  )r@  r'   r`  rk  rû  r‚  r  rÆ  rµ   r   r—  rÍ  r3  r>  Ú_check_withÚ
IndexErrorrM  rY  rÍ   r:  r@  )rp  rû  r¸  rû  rå  r  s     `` @r:  rì   rì   Ö  sP  ú€ ô
 �%œÔ$Ü�‰Ø�I‰I‹K˜1ÑÒD¤×!7Ñ!7¸¿¹Ó!DÙ=ô	
ð —
‘
“ˆÜ”�eÓ€EÜ	‡L�L�—‘“˜1‘ÑUÔVÜ	‡L�L�˜1‘ÑNÔOÜ
×
 Ñ
  §¡¨Ó
-€CØ—‘˜“€JÜ	×ÑÜØ	ˆ�uÑÒ4 ¨*Ñ!4Üqôð
 ˆq‚yØ˜
Ñ"ˆÜ	‡L�LØ�˜fÑ$Ñ$Ý]ôô �Q—W‘W“€IØ€Iˆc�NØ�<‰<Ø�1—8‘8“:˜q×/Ñ/Ó1°A·H±H¸S³MÀEÑ4IÑIóð r<  Ú	norm_dimsÚepsc                 óh  — t        j                  | j                  |«      }t        j                  | j                  «      }t        | |«      }t        |t        «      st        dt        |«      › �«      ‚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.
    za_acc must be TensorLike, got FT©rû  rj  rþ  )r‚  r	  r3  rÿ  rÆ  r+   r@  r'   rÚ  r7  r`  rÆ   rø   )	rp  r  r  r  Úa_accÚ
biased_varr½   Úrstdr¬  s	            r:  Ú
_normalizer#  ø  s¨   € ô$ ×'Ñ'¨¯©°	Ó:€IÜ×3Ñ3°A·G±GÓ<ÐÜ# AÐ'8Ó9€EÜ�eœZÔ(ÜÐ=¼dÀ5»k¸]ÐKÓLÐLÜ—~‘~Ø�9 u°dôÑ€J�ô �;‰;�z CÑ'Ó(€DØ�4‰<˜4Ñ
€CØ��dˆ?Ðr<  Ú
dimensionsc                 óR   — t        |«      D ]  }t        j                  | |«      } Œ | S rK  )Úsortedr`  r  )rO  r$  rû  s      r:  Ú_unsqueeze_multipler'    s+   € Ü�jÓ!ò $ˆÜ�O‰O˜A˜sÓ#‰ð$à€Hr<  ÚweightÚbiasÚ
batch_sizeÚnum_channelsÚflattened_inner_sizeÚ
num_groupsc                 ón  ‡ ‡— t        j                  ‰ j                  dk\  ˆ fd„«       t        j                  |‰z  dk(  ˆ ˆfd„«       t        j                  ‰ j
                  «      }t        ‰ |«      }	ddg}
t        j                  |	|‰|‰z  |g«      }t        j                  |j                  |
«      }
t        j                  ||
dd¬«      \  }}t        j                  ||z   «      }‰ j                  j                  d	k(  rÖ|�Ôt        j                  |d
‰|‰z  d
g«      }||z  }| |z  }|�"t        j                  |d
‰|‰z  d
g«      }||z   }|j                  «       j                  ||g|d
g«      }|j                  «       j                  ||g|d
g«      }t        t!        d‰ j                  «      «      }t#        ||«      }t#        ||«      }|	|z  |z   }nl||z
  |z  }|j%                  ‰ j&                  «      }dgt        t!        d‰ j                  «      «      z   }|�t#        ||«      }||z  }|�t#        ||«      }||z   }t        |‰ j
                  «      }t        |‰ j
                  «      }t        |‰ j
                  «      }t        j(                  ||
«      }t        j(                  ||
«      }|||fS )Nr6  c                  ó"   •— d‰ j                   › �S )Nz=Expected at least 2 dimensions for input tensor but received rŒ  rÇ  s   €r:  rT  z#native_group_norm.<locals>.<lambda>+  s   ø€ ÐOÐPU×PZÑPZÈ|Ð\€ r<  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   €€r:  rT  z#native_group_norm.<locals>.<lambda>/  s#   ø€ ÐVØ# E§K¡K =Ð0BÀ:À,Ð
OñP€ r<  r¬  FTr  r}  rU  )r`  rk  r3  r‚  rÿ  rÆ  r+   rô   r	  rÆ   rø   r9  r7  rÙ   rÍ   rM  rj  r'  r
  rY  rü   )rÃ  r(  r)  r*  r+  r,  r-  r  r  Ú	input_accr4  Úinput_reshapedr!  r½   r"  Úweight_reshapedÚwrq  Úbias_reshapedr9  Úunsqueeze_wÚunsqueeze_br¬  Úunsqueeze_weightÚunsqueeze_biass   `     `                  r:  rî   rî     sµ  ù€ ô 
‡L�LØ�
‰
�a‰Û\ôô 
‡L�LØ�zÑ! QÑ&ô	Pôô ×3Ñ3°E·K±KÓ@ÐÜ'¨Ð/@ÓA€Ià˜�V€NÜ—]‘]ØØ	�Z °Ñ!;Ð=QÐRó€Nô ×,Ñ,¨^×-@Ñ-@À.ÓQ€NÜ—~‘~Ø˜N°UÀDôÑ€J�ô �;‰;�z CÑ'Ó(€DØ‡|�|×Ñ˜EÒ! fÐ&8ÜŸ-™-Ø�Q˜
 L°JÑ$>ÀÐBó
ˆð �?Ñ"ˆØˆE�A‰IˆØÐÜ!ŸM™MØ�q˜* l°jÑ&@À!ÐDóˆMð �MÑ!ˆAØ�L‰L‹N×%Ñ% z°<Ð&@À<ÐQRÐBSÓTˆØ�L‰L‹N×%Ñ% z°<Ð&@À<ÐQRÐBSÓTˆÜœe A u§z¡zÓ2Ó3ˆÜ)¨!¨^Ó<ˆÜ)¨!¨^Ó<ˆØ˜+Ñ%¨Ñ3‰à Ñ$¨Ñ,ˆØ�h‰h�u—{‘{Ó#ˆØ˜œt¤E¨!¨U¯Z©ZÓ$8Ó9Ñ9ˆØÐÜ2°6¸>ÓJÐØÐ(Ñ(ˆCØÐÜ0°°~ÓFˆNØ˜Ñ&ˆCä
! # u§{¡{Ó
3€CÜ" 4¨¯©Ó5€DÜ" 4¨¯©Ó5€Dô �=‰=˜˜~Ó.€DÜ�=‰=˜˜~Ó.€DØ��tÐÐr<  Úout2Únormalized_shapec                 ó  ‡ ‡‡‡— ddl m} t        ‰«      }t        j                  |dk\  ˆfd„«       t        j                  ‰d u xs  |‰j
                  t        ‰«      «      ˆˆfd„«       t        j                  ‰d u xs  |‰j
                  t        ‰«      «      ˆˆfd„«       t        j                  ‰ j                  |k\  xr,  |‰ j
                  ‰ j                  |z
  d  t        ‰«      «      ˆ ˆfd„«       t        j                  ‰ j                  «        d„ «       t        ‰ «      Š ‰�t        ‰«      Š‰�t        ‰«      Š‰ j                  |z
  }t        t        |‰ j                  «      «      }t        ‰ ||«      \  }	}
}‰€‰�|	‰z   }	n‰�‰€|	‰z  }	n‰�
‰�|	‰z  ‰z   }	t        |	‰ j                  «      }	‰ j                  j                   d	v r,t        |
‰ j                  «      }
t        |‰ j                  «      }|	|
|fS )
Nr   ©Úsym_eqrU  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 = )r„  )r;  s   €r:  rT  z#native_layer_norm.<locals>.<lambda>t  s   ø€ ð Iä
ÐÓ
ñ € r<  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 = ©r„  rY  )r;  r(  s   €€r:  rT  z#native_layer_norm.<locals>.<lambda>~  s5   ø€ ð ä
ˆf�l‰lÓ
ñð %ñ%ô ÐÓ
ñ	 € r<  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 rA  rB  )r)  r;  s   €€r:  rT  z#native_layer_norm.<locals>.<lambda>‡  s4   ø€ ð ä
ˆd�j‰j‹/ñð %ñ%ô ÐÓ
ñ	 € r<  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 rB  )rÃ  r;  s   €€r:  rT  z#native_layer_norm.<locals>.<lambda>“  sK   ø€ Ð)Ü
ÐÓ
ñ à
(ñ)ô ÐÓ
ñ ð %ñ	%ô
 ˆe�k‰kÓ
ñ€ r<  c                   ó   — y)Nz1native_layer_norm does not support complex inputsrR  rR  r<  r:  rT  z#native_layer_norm.<locals>.<lambda>œ  r|  r<  )r}  Úmtia)r_  r>  rX  r`  rk  rY  re  r3  r0  rÙ   rM  rj  r#  r+   rÆ  r9  r7  )rÃ  r;  r(  r)  r  r>  Únormalized_ndimÚaxisr4  r¬  r½   r"  s   ````        r:  rï   rï   f  sê  û€ õ =äÐ*Ó+€OÜ	‡L�LØ˜1Ñó	 ôô 
‡L�Là�$ˆÒG™& §¡¬uÐ5EÓ/FÓGô	 ôô 
‡L�Là�ˆÒC™˜tŸz™z¬5Ð1AÓ+BÓCô	 ôô 
‡L�LØ�
‰
�oÑ%ò 	
ÙØ�K‰K˜Ÿ™ oÑ5Ð8Ð9ÜÐ"Ó#ó
ô	ôô 
‡L�LØ×ÑÓÐÙCôô
 �uÓ€EØÐÜ˜FÓ#ˆØÐÜ˜$Óˆà�:‰:˜Ñ'€DÜœ%  e§j¡jÓ1Ó2€NÜ  ¨¸Ó<�O€Cˆˆtà€~˜$Ð*Ø�D‰j‰Ø	Ð	  Ø�F‰l‰Ø	Ð	 Ð 0Ø�F‰l˜TÑ!ˆä
! # u§{¡{Ó
3€CØ‡|�|×Ñ˜OÑ+Ü& t¨U¯[©[Ó9ˆÜ& t¨U¯[©[Ó9ˆØ��tÐÐr<  c                 ó   — t        |Ž S rK  )rï   )Ú	fake_modeÚfuncrˆ  r   s       r:  Únative_layer_norm_fakerL  ·  s   € ä˜dÐ#Ð#r<  c                 ó”   — t        j                  | j                  t        j                  |«      «      }t	        j
                  | |«      S rK  )r‚  r	  r3  Úextract_dims_from_varargsr·  r  )rp  rE  Ú_permutations      r:  rð   rð   ¾  s9   € ä×*Ñ*Ø	�‰”×/Ñ/°Ó5ó€Lô �?‰?˜1˜lÓ+Ð+r<  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-valuedrR  rR  r<  r:  rT  zrenorm.<locals>.<lambda>Ë  r|  r<  r   c                   ó   — y)Nz'renorm: non-positive norm not supportedrR  rR  r<  r:  rT  zrenorm.<locals>.<lambda>Ì  r|  r<  c                   ó   — y)Nz#renorm: maxnorm must be real-valuedrR  rR  r<  r:  rT  zrenorm.<locals>.<lambda>Î  r|  r<  c                  ó   •— d‰ › �S )Nz,renorm: expected maxnorm to be >= 0 but got rR  )rP  s   €r:  rT  zrenorm.<locals>.<lambda>Ñ  s   ø€ Ð LÈWÈIÐV€ r<  rU  c                  ó   •— d‰ › d�S )Nz/renorm: input needs at least 2 dimensions, got ú dimensionsrR  rŒ  s   €r:  rT  zrenorm.<locals>.<lambda>Ö  s   ø€ ÐAÀ$ÀÀ{ÐS€ r<  T)rþ  rÆ  rý  gH¯¼šò×z>ru  )r`  rk  r@  r»  r3  r‚  rÍ  rM  rj  rÿ  rÆ  ÚlinalgÚvector_normr²   r·  r­  rÙ   )
rÃ  rÞ  rû  rP  ra  Úacc_typerc   r  Únorm_factorr3  s
      `     @r:  r1  r1  Æ  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Ñ×+Ñ+Ó-Ð-r<  Ún_fftÚ
hop_lengthÚ
win_lengthÚwindowÚcenterÚpad_modeÚ
normalizedÚonesidedÚreturn_complexÚalign_to_windowc                 óî  ‡ ‡‡‡‡‡— t        j                  ‰d u xs ‰j                  ‰ j                  k(  ˆ ˆfd„«       t        j                  | xs |
d u d„ «       |�|n‰dz  Š|�|n‰Š|	€O‰ 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«      Š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«      Š|s#|
r!‰‰z
  dz  }t        j                  ‰ ||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 r8  ©rÃ  r_  s   €€r:  rT  zstft.<locals>.<lambda>ÿ  s,   ø€ ØOÐPU×P\ÑP\È~Ð^Ø §¡˜Ð/ñ0ð r<  c                   ó   — y)Nz6stft only supports align_to_window for center = False.rR  rR  r<  r:  rT  zstft.<locals>.<lambda>  r|  r<  é   c                   ó   — 	 y)Nz“stft requires the return_complex parameter be given for real inputs, and will further require that return_complex=True in a future PyTorch release.rR  rR  r<  r:  rT  zstft.<locals>.<lambda>  s   € ðcð r<  c                   ó   — y)Nz:stft expected a tensor of floating point or complex valuesrR  rR  r<  r:  rT  zstft.<locals>.<lambda>  r|  r<  rU  r6  c                   ó   — y)Nzstft expected a 1D or 2D tensorrR  rR  r<  r:  rT  zstft.<locals>.<lambda>  r|  r<  r   r¬  c                  ó   •— d‰ › d‰› �S )Nzstft expected 0 < n_fft <= z, but got n_fft=rR  )rû  r\  s   €€r:  rT  zstft.<locals>.<lambda>.  s   ø€ Ð-¨f¨XÐ5EÀeÀWÐM€ r<  c                  ó   •— d‰ › �S )Nz0stft expected hop_length > 0 but got hop_length=rR  )Úhop_length_s   €r:  rT  zstft.<locals>.<lambda>2  s   ø€ ÐBÀ;À-ÐP€ r<  c                  ó   •— d‰ › �S )Nz9stft expected 0 < win_length <= n_fft but got win_length=rR  )Úwin_length_s   €r:  rT  zstft.<locals>.<lambda>6  s   ø€ ÐKÈKÈ=ÐY€ r<  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-  )rs  r_  s   €€r:  rT  zstft.<locals>.<lambda>:  s(   ø€ ØFÀ{ÀmÐSUÐVØ)¨&¯,©,¨Ð8ñ9ð r<  rk  rZ  )Ú	dimensionr>  ÚstepÚorthoc                   ó   — y)Nz9Cannot have onesided output if window or input is complexrR  rR  r<  r:  rT  zstft.<locals>.<lambda>U  r|  r<  ©rû  rc   )r`  rk  r9  r0  r‚  rÅ  rÆ  rç  r3  r  Ú	itertoolsró   rY  r°  r×  r
  r>  r&  rØ   r  ÚfftÚrfftÚ
transpose_Úsqueeze_Úview_as_real)rÃ  r\  r]  r^  r_  r`  ra  rb  rc  rd  re  Úreturn_complex_Úoriginal_ndimÚ
extra_dimsÚ
pad_amountÚextended_shapeÚleftÚinput_pad_amountÚcomplex_fftrc   r¬  rq  rû  rs  s   ``  `                @@@r:  r2  r2  ï  s‹  ý€ ô 
‡L�LØ�$ˆÒ7˜&Ÿ-™-¨5¯<©<Ñ7ô	
ôô 
‡L�LØˆ
Ò-�o¨Ð-ÙHôð
 !+Ð 6‘*¸EÀQ¹J€KØ *Ð 6‘*¸E€KàÐØ×*Ñ*Ó,ò 
Ø˜$ÐÒG¤5×#9Ñ#9¸&¿,¹,Ó#Gð 	ô 	�‰Øñõ	
ð )ˆä	‡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ˆà�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ˆá‘oØ! KÑ/°AÑ5ÐÜ—‘˜Ð!1Ð3CÐ DÀhÓOˆà�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¸#Ó'>Ð>r<  c
                 ó.
  ‡ ‡‡— 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(  ˆfd„«       nt        j                  |‰k(  ˆf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	«      |k7  r t)        d‰ j                  d	«      › d|› �«      ‚‰ |j+                  dd|g«      z  }t        j-                  ||j                  d«      |fd||
¬«      }t        j-                  |j/                  d	«      j1                  d||f«      |j                  d«      |fd||
¬«      }||j                  d«      k7  r!t)        d|› d|j                  d«      › d�«      ‚||j                  d«      k7  r!t)        d|› d|j                  d«      › d�«      ‚|r|d	z  nd}|�||z   }n|r	||d	z  z
  }n|}t        j2                  j5                  |d||d«      }t        j2                  j5                  |d||d«      }||z  }|d	k(  r|j7                  d«      }||kD  r3t9        j:                  d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 rh  r8  ri  s   €€r:  rT  zistft.<locals>.<lambda>s  s-   ø€ ØPÐQV×Q]ÑQ]ÐP^Ð_Ø §¡˜Ð/ñ0ð r<  rk  c                  ó@   •— d‰ j                   › d‰j                   › �z   S rŠ  r8  ri  s   €€r:  rT  zistft.<locals>.<lambda>~  s&   ø€ ØPØ—‘�˜o¨f¯m©m¨_Ð=ñ>ð r<  rZ  éþÿÿÿrU  r   c                   ó   — y)Nz"istft input tensor cannot be emptyrR  rR  r<  r:  rT  zistft.<locals>.<lambda>‡  r|  r<  r6  r¬  c                  ó"   •— d‰ j                   › �S )Nz8istft expected a tensor with 2 or 3 dimensions, but got rŒ  rÇ  s   €r:  rT  zistft.<locals>.<lambda>Š  s   ø€ ÐJÈ5Ï:É:È,ÐW€ r<  c                  ó   •— dd‰ › �z   S )NúMistft expected the frequency dimension (3rd to the last) of the input tensor z3to match n_fft / 2 + 1 when onesided=True, but got rR  ©Úfft_sizes   €r:  rT  zistft.<locals>.<lambda>‘  s   ø€ Ø_ØGÈÀzÐRñSð r<  c                  ó   •— dd‰ › �z   fS )Nr�  z,to match n_fft when onesided=False, but got rR  r‘  s   €r:  rT  zistft.<locals>.<lambda>™  s   ø€ Ø_Ø@ÀÀ
ÐKñLð€ r<  c                   ó   — y)Nz+istft expected 0 < hop_length <= win_lengthrR  rR  r<  r:  rT  zistft.<locals>.<lambda>¡  r|  r<  c                   ó   — y)Nz&istft expected 0 < win_length <= n_fftrR  rR  r<  r:  rT  zistft.<locals>.<lambda>¤  r|  r<  c                   ó   — y)NzDInvalid window shape. window has to be 1D and length of `win_length`rR  rR  r<  r:  rT  zistft.<locals>.<lambda>¨  r|  r<  rk  rw  c                   ó   — y)Nz9cannot have onesided output if window or input is complexrR  rR  r<  r:  rT  zistft.<locals>.<lambda>¾  r|  r<  ry  c                   ó   — y)Nz:Complex windows are incompatible with return_complex=FalserR  rR  r<  r:  rT  zistft.<locals>.<lambda>Ä  r|  r<  )rû  r¸  rû  z%Expected input.size(2) == n_fft, got z != )rà  rû  r>  rv  zexpected_output_signal_len (z) != y.size(1) (r  z) != window_envelop.size(1) (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©Ú
stacklevel)r`  rk  r9  r‚  rÅ  rÆ  r>  r  r3  rY  Úcorresponding_real_dtyper&  r°  rØ   r  r  r{  Úifftrì   ÚirfftrÚ  r
  Úunfold_backwardr¢   rá   ÚslicerS  rü   ÚwarningsÚwarn)rÃ  r\  r]  r^  r_  r`  rb  rc  rû  rd  rq  rs  Ún_framesÚexpected_output_signal_lenÚ	onesided_Ú
real_dtypeÚwindow_r…  r�  rc   Úy_tmpr~  Úwindow_envelopr¸  Úendr’  s   `   `                    @r:  r3  r3  d  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ˆà‡z�z�!ƒ}˜ÒÜØ3°E·J±J¸q³M°?À$ÀuÀgÐNó
ð 	
ð �G—L‘L ! Q¨ Ó/Ñ/€EÜ×ÑØØ—Z‘Z “]Ð$>Ð?ØØØð 	ó 	€Aô ×)Ñ)Ø�‰�A‹×Ñ˜q (¨EÐ2Ó3Ø—Z‘Z “]Ð$>Ð?ØØØð *ó €Nð " Q§V¡V¨A£YÒ.ÜØ*Ð+EÐ*FÐFVÐWX×W]ÑW]Ð^_ÓW`ÐVaÐabÐcó
ð 	
ð " ^×%8Ñ%8¸Ó%;Ò;ÜØ*Ð+EÐ*FÐFcÐdr×dwÑdwÐxyÓdzÐc{Ð{|Ð}ó
ð 	
ñ !ˆE�QŠJ a€EØÐØ�f‰n‰Ù	Ø(¨5°A©:Ñ5‰à(ˆä�
‰
×Ñ˜!˜Q  s¨AÓ.€AÜ—Z‘Z×&Ñ& ~°q¸%ÀÀaÓH€Nà	ˆNÑ€AØ˜ÒØ�I‰I�a‹Lˆà
Ð'Ò'Ü�‰ð`àõ	
ô
 × Ñ   Q¨Ð.HÑ(HÐ$IÈ1ÓMˆØ€Hr<  Úa_shapeÚa_strideru  rv  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   rU  c                  ó   •— d‰ › d‰› d‰› �S )Nz%Maximum size for tensor at dimension z is z but size is rR  )rû  Úmax_sizer>  s   €€€r:  rT  z*_get_unfold_shape_stride.<locals>.<lambda>  s   ø€ Ð7¸°u¸DÀÀ
È-ÐX\ÐW]Ð^€ r<  c                  ó   •— d‰ › d�S )NzStep is z but must be > 0rR  ©rv  s   €r:  rT  z*_get_unfold_shape_stride.<locals>.<lambda>  s   ø€ �(˜4˜&Ð 0Ð1€ r<  )rX  r‚  rÍ  r`  rk  rM  r²  )rª  r«  ru  r>  rv  Úa_ndimÚlast_striderY  Ústridesrû  r¯  s      ``    @@r:  Ú_get_unfold_shape_striderµ    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‰
Ø�‹˜Ñ‹Ø�'ˆ>Ðr<  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 )
NFrU  c                   ó   — y)Nzbrepeat: Number of dimensions of repeat dims can not be smaller than number of dimensions of tensorrR  rR  r<  r:  rT  zrepeat.<locals>.<lambda>$  r|  r<  r   rU  c              3   ó,   K  — | ]  \  }}||z  –— Œ y ­wrK  rR  )rN  Úpadded_sizeÚrepeat_sizes      r:  rP  zrepeat.<locals>.<genexpr>/  s!   è ø€ ò á$ˆK˜ð 	�kÕ!ñùr;  rË  T)ÚkeyÚreverse)r‚  r]  r`  rk  rX  rY  r³   r3  r²  re  r}  r  rÆ  r9  rÈ  r»  Úmake_contiguous_strides_forri  rµ  rh  rM  Úsortr|  Ú
itemgetterrá   rð   rô   )rp  Ú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                  r:  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Ü$'Ð):Ð$;Ñ!€M�>ð —X‘X˜nÓ-€Nô —K‘K Ó/€Mð $×+Ñ+¨MÓ:€Oð ×"Ñ" <Ó0Ð0r<  Ú
allow_copyc                 óŽ  ‡
‡— dŠ| Š
|D �]J  }‰‰
j                   k\  rM|dk7  rt        d|› d�«      ‚‰
j                   dz
  }t        j                  ‰
|‰
j                  |   «      Š
‰dz   ŠŒ`|‰
j                  ‰   k(  r‰dz   ŠŒx‰
j                  ‰   }‰}||z  dk7  r |dz  }|‰
j                  |   z  }||z  dk7  rŒ |‰k7  rtt        j
                  ‰
‰|d ¬«      \  }}|€I|rt        j                  | |«      c S d| j                  › d| j                  «       › d|› d	�}	t        |	«      ‚t        ‰
‰|«      Š
||k7  rt        j                  ‰
‰|«      Š
‰dz   Š�ŒM ‰‰
j                   k  rFt        j                  ‰
j                  ‰   dk(  ˆ
ˆfd
„«       t        ‰
‰«      Š
‰‰
j                   k  rŒF‰
| u rt        j                  | «      S ‰
S )Nr   rU  z'Cannot unsqueeze dimension with length z, expected 1r  z Cannot view a tensor with shape z and strides ú as a tensor with shape r�  c                  ó.   •— d‰› d‰ j                   ‰   › �S )Nza.size(z) expected to be 1 but got r-  )r  r^  s   €€r:  rT  z/_reshape_view_helper_core_alg.<locals>.<lambda>£  s   ø€ �g˜c˜UÐ"=¸b¿h¹hÀs¹m¸_ÐM€ r<  )r3  rÚ  r·  Ú	split_dimrY  r  rô   r:  rl  rä   r`  rk  rü   r`  )rp  rY  rÍ  rû  Úlast_dimÚaccumr©  rå  r  rÜ  r  r^  s             @@r:  Ú_reshape_view_helper_core_algrÔ  X  sõ  ù€ ð( €CØ	
€BØó /ˆà�"—'‘'Š>Ø˜Š{Ü$Ø=¸f¸XÀ\ÐRóð ð —w‘w ‘{ˆHô —‘  X¨r¯x©x¸Ñ/AÓBˆBØ˜‘'ˆCØð �R—X‘X˜c‘]Ò"Ø˜‘'ˆCØà—‘˜‘ˆØˆØ�f‰n Ò!Ø�1‰HˆCØ�R—X‘X˜c‘]Ñ"ˆEð �f‰n Ó!ð �#Š:ô ',×&AÑ&AØ�C˜¨Dô'Ñ#ˆI�|ð Ð ÙÜ Ÿ=™=¨¨EÓ2Ò2à8¸¿¹¸	ÀÈqÏxÉxËzÈlÐZrÐsxÐryÐyzÐ{�Ü  “oÐ%ä˜˜S #Ó&ˆBð �FŠ?Ü—‘  S¨&Ó1ˆBà�A‰gŠð_/ðd �—‘Š-Ü�‰Ø�H‰H�S‰M˜QÑÜMô	
ô �R˜Óˆð �—‘‹-ð 
ˆQ�wÜ�}‰}˜QÓÐàˆ	r<  c                ó  ‡ ‡— t        j                  ‰d¬«      Št        j                  ‰‰ j                  «       «      Š‰ j                  «       dk(  r t	        ‰ ‰t        j
                  ‰«      «      S ‰ j                  dk(  rC‰ }‰D ]!  }|dk7  rt        d|› �«      ‚t        |d«      }Œ# |‰ u rt        j                  ‰ «      S |S t        ‰«      dk(  rM‰ }‰ j                  D ]!  }|dk7  rt        d|› �«      ‚t        |d«      }Œ# |‰ u rt        j                  ‰ «      S |S t        ‰ «      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 t!        t"        j$                  ‰d«      }t        j&                  ‰ j                  «       |k(  ˆ ˆfd	„«       t)        ‰ ‰|«      S )
NFrU  r   rU  z<Cannot reshape 0-dim tensor: shape dimension must be 1, got rZ  z?Cannot reshape to 0-dim tensor: shape dimension must be 1, got r6  c                  ó*   •— d‰ j                   › d‰› d�S )Nz&Could not reshape a tensor with shape rÏ  r�  r-  rY  s   €€r:  rT  z&_reshape_view_helper.<locals>.<lambda>á  s   ø€ Ð8¸¿¹¸	ÐAYÐZ_ÐY`Ð`aÐb€ r<  )r‚  r]  Ú
infer_sizer  rÍ   r½  r3  rÚ  r  r·  r`  rX  rY  rü   r   r`  r   r|  rŸ   rk  rÔ  )rp  rÍ  rY  Ú_arû  Údim0Údim1Úshape_numels   ` `     r:  Ú_reshape_view_helperrÜ  ­  só  ù€ ä×,Ñ,¨U¸UÔC€Eô ×Ñ˜U A§G¡G£IÓ.€Eð 	‡w�wƒy�A‚~Ü˜!˜U¤E×$EÑ$EÀeÓ$LÓMÐMð 	‡v�v�‚{ØˆØò 	#ˆFØ˜Š{Ü$ØRÐSYÐRZÐ[óð ô ˜2˜rÓ"‰Bð	#ð �‰7Ü—=‘= Ó#Ð#àˆIô ˆ5ƒz�Q‚ØˆØ—g‘gò 	!ˆFØ˜Š{Ü$ØUÐV\ÐU]Ð^óð ô ˜˜R“‰Bð	!ð �‰7Ü—=‘= Ó#Ð#àˆIä˜aÔ äˆu‹:˜Š?˜qŸv™v¨šzÜ×#Ñ# A¨¯©«	 {°Q°CÓ8Ð8äˆu‹:˜Š?˜qŸv™v¨š{Ø˜‘8ˆDØ˜‘8ˆDÜ×#Ñ# A¨¨d |°d¸A°YÓ?Ð?äœŸ™ u¨aÓ0€KÜ	‡L�LØ	�‰‹	�[Ñ Übôô )¨¨E°:Ó>Ð>r<  rY  c                 ó    — t        | g|¢­ddiŽS )NrÍ  T)rÜ  rY  s     r:  rô   rô   ì  s   € Ü Ð; EÒ;°dÑ;Ð;r<  c                 ó@   — | j                  |j                  «       «      S rK  )rô   r>  ©r  r  s     r:  rõ   rõ   ñ  s   € Ø�<‰<˜Ÿ
™
›Ó%Ð%r<  Ú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k  rt!        d|› �«      ‚|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 dimensionsrU  z`shifts` requiredz*shifts and dimensions must align. shifts: z, dims: zExpected len_dims > 1, got Nr8  )r‚  r	  r3  r@  r   r  r³   rû  rX  r  rg  r`  rö   rä   r
  rY  rÚ  r  r9  rP   r‰   )rp  rà  rE  Ú
len_shiftsÚlen_dimsÚtail_shiftsÚ	tail_dimsÚfirst_dim_rolledrû  r>  r¸  r^  s               r:  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Š=Ü Ð#>¸x¸jÐ!IÓJÐJà˜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Ó<Ó=Ð=r<  ©r   rU  Ú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`.r6  z2expected total rotation dims == 2, but got dims = z/expected total dims >= 2, but got total dims = r   rU  z7expected rotation dims to be different, but got dim0 = z and dim1 = rk  r¬  rþ  )
rX  rg  r3  r‚  r	  r`  r  rå   r³   r@  )rp  rè  rE  s      r:  r÷   r÷   2  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Ó=Ð=r<  c                 ó¾   ‡— ddl m} | d   j                  Št        dt	        | «      «      D ]/  }t        j                   || |   j                  ‰«      ˆfd„«       Œ1 y )Nr   r=  rU  c                  ó   •— d‰ › d�S )Nz4stack expects each tensor to be equal size, but got z at entry 0 rR  )Úentry_shapes   €r:  rT  z%_check_stack_inputs.<locals>.<lambda>Y  s   ø€ ÐJÈ;È-ÐWcÐd€ r<  )r_  r>  rY  rj  rX  r`  rk  )r¶  r>  r/  rì  s      @r:  Ú_check_stack_inputsrí  R  sR   ø€ Ý<à˜!‘*×"Ñ"€KÜ�1”c˜'“lÓ#ò 
ˆÜ�‰Ù�7˜1‘:×#Ñ# [Ó1Ûdõ	
ñ
r<  c                 óÞ  — t        | «      dk(  rt        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 TensorListrU  )rX  rÚ  r‚  rÍ  r3  rí  rM  rY  Úinsertr`  rÔ   r
  r  )r¶  rû  Úwrapped_dimÚresult_sizesr¬  rþ   s         r:  rú   rú   ]  sÄ   € ô ˆ7ƒ|�qÒÜÐCÓDÐDÜ×(Ñ(¨°©¯©¸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Æ  r‚  rÿ  r+   r  rD   r¸   rª   rÂ   )rp  rû  rÆ  r   r  r  Úa_expÚa_maxs           r:  rr   rr   p  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Øóð r<  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 TensorListrR  rR  r<  r:  rT  zhstack.<locals>.<lambda>ˆ  r|  r<  rU  )r`  rk  rX  rÊ   r3  rÔ   rÓ  s     r:  ré   ré   †  sQ   € ä	‡L�L”�W“ Ñ!Ñ#RÔSÜ  'Ð*€OØ�qÑ×Ñ !Ò#Ü�? AÓ&Ð&Üˆ Ó"Ð"r<  c                 óp   — t        j                  t        | «      dkD  d„ «       t        | Ž }t	        |d«      S )Nr   c                   ó   — y)Nz%vstack expects a non-empty TensorListrR  rR  r<  r:  rT  zvstack.<locals>.<lambda>’  r|  r<  )r`  rk  rX  rË   rÔ   rÓ  s     r:  r  r  �  rì  r<  rC  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-emptyrR  rR  r<  r:  rT  zunflatten.<locals>.<lambda>š  r|  r<  rU  )	r‚  rÍ  r3  r`  rk  rX  r
  re  rY  )rp  rû  rC  s      r:  r  r  ˜  so   € Ü
×
 Ñ
  §¡¨Ó
-€CÜ	‡L�L”�U“˜q‘Ñ"NÔOØ�6‰6”%˜Ÿ™  ˜Ó&¬¨u«Ñ5¼¸a¿g¹gÀcÈAÁgÀiÐ>PÓ8QÑQÓRÐRr<  rþ   c                 ó0  ‡— t        j                  | j                  ‰«      Št        j                  t        | j                  «      dkD  d„ «       | j                  ‰   dk(  ryt        ˆfd„t        j                  | | j                  ‰   ‰«      D «       «      S )Nr   c                   ó   — y)Nz5Dimension specified as 0 but tensor has no dimensionsrR  rR  r<  r:  rT  zunbind.<locals>.<lambda>£  r|  r<  rR  c              3   óJ   •K  — | ]  }t        j                  |‰«      –— Œ y ­wrK  )r`  rü   )rN  Úsrû  s     €r:  rP  zunbind.<locals>.<genexpr>«  s!   øè ø€ ò 
Ø&'ŒE�M‰M˜!˜S×!ñ
ùs   ƒ #)	r‚  rÍ  r3  r`  Ú_check_indexrX  rY  re  r  )rþ   rû  s    `r:  r  r  ž  s€   ø€ ä
×
 Ñ
  §¡¨Ó
-€CÜ	×ÑÜˆA�G‰G‹�qÑÙGôð 	‡w�wˆs�|�qÒØäó 
Ü+0×+=Ñ+=¸aÀÇÁÈÁÈsÓ+Sô
ó 
ð 	
r<  r  rÏ  c                 ód   — | j                  t        j                  ¬«      j                  |||«      S r  )r³   r`  r@  rO   )rO  rû  r  rÏ  s       r:  rN   rN   °  s-   € à�7‰7¤×!8Ñ!8ˆ7Ó9×EÑEØˆU�Fóð r<  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 )NrU  c                  ó$   •— d‰ j                   › d�S ©Nz(Index should have dimension 1 or 0 (got r  rŒ  ©r  s   €r:  rT  zindex_copy_.<locals>.<lambda>»  ó   ø€ Ð:¸5¿:¹:¸,ÀaÐH€ r<  r   )r‚  r	  r3  r`  rk  r  rŸ  )rO  rû  r  rÏ  r~  r^  s     `   r:  rO   rO   ·  ss   ø€ Ü
×
!Ñ
! !§&¡&¨#Ó
.€CÜ	‡L�LØ�
‰
�a‰ÛHôð
 Ÿ&™& Aš+ˆ�‰�AŒ¨1€AÜ�‹;ˆ.˜3Ñ
 % Ñ
)€CØ€A€c�FØ€Hr<  c                 ó"   — t        | |||d¬«      S )NF©Úinplace©Ú_index_fill©rO  rû  r  rÕ  s       r:  rQ   rQ   Ä  s   € ô
 �q˜#˜u e°UÔ;Ð;r<  c                 ó"   — t        | |||d¬«      S )NTr  r	  r  s       r:  rR   rR   Ì  s   € ô �q˜#˜u e°TÔ:Ð:r<  r  c                óD  ‡‡— 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  r9t)        j*                  | «      r$t-        j.                  |	| j'                  «       «      }	|	S )NrU  c                  ó$   •— d‰ j                   › d�S r  rŒ  r  s   €r:  rT  z_index_fill.<locals>.<lambda>Ý  r  r<  r   c                  ó$   •— d‰ j                   › d�S )Nz<Only supports 0-dimensional value tensor. Got a tensor with rÛ  rŒ  rß  s   €r:  rT  z_index_fill.<locals>.<lambda>â  s   ø€ ð !Ø!&§¡ ¨Lð:€ r<  )rÆ  r  r9  )r`  rk  r3  r@  r'   r)  rÆ  r  r9  r  rM  rY  r  rá   rS  rO   rN   rü   r³   r:  r‚  Ú%is_non_overlapping_and_dense_or_falser·  Úcopy_strided)
rO  rû  r  rÕ  r  Úzero_dimr~  rY  rN   r¬  s
     ``      r:  r
  r
  Ó  sF  ù€ ô 
‡L�LØ�
‰
�a‰ÛHôô �%œÔ$Ü�‰Ø�J‰J˜!‰Oó:õ	
ô ×#Ñ#ØØ—'‘'Ø—8‘8Ø—8‘8ô	
ˆð �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›:Ò%¬%×*UÑ*UØô+
ô ×$Ñ$ S¨!¯(©(«*Ó5ˆCØˆ
r<  c                óh   — | j                  t        j                  ¬«      j                  ||||¬«      S )Nrþ  rZ  )r³   r`  r@  Ú
index_add_)rO  rû  r  rÏ  r[  s        r:  rM   rM     s:   € ð �7‰7¤×!8Ñ!8ˆ7Ó9×DÑDØØØØð	 Eó ð r<  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   }| |   j                  t        j                  | «      ¬«      S )NrU  c                  ó$   •— d‰ j                   › d�S r  rŒ  r  s   €r:  rT  zindex_select.<locals>.<lambda>  r  r<  r   rþ  )r‚  r	  r3  r`  rk  r  r  rN   râ   rŸ  rÙ   r»  )rO  rû  r  r^  s     ` r:  rP   rP     sÀ   ø€ ô ×
!Ñ
! !§&¡&¨#Ó
.€CÜ	‡L�LØ�
‰
�a‰ÛHôð ‡z�z�Q‚Ø—‘ Ó"ˆØ‡v�v�‚{ô ×Ñ Ó"×-Ñ-¨a°¸¿¹ÀEÓ8JÓKÐKä�‹;ˆ.˜3Ñ
 % Ñ
)€CØˆS‰6×Ñ¬5×+FÑ+FÀqÓ+IÐÓJÐJr<  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(  r6t        |«      dk(  s|dk(  st        d|› �«      ‚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r[  rR  )rN  r^  r>  s      r:  rP  zsqueeze.<locals>.<genexpr>/  s   è ø€ ÒJ™Y˜S $ÀÈÃ	”SÑJùs   ‚�rÊ  z8Expected dims to be empty or (0,) for 0-dim tensor, got c              3   óT   •K  — | ]  } ‰‰j                   |   d k(  «      sŒ|–— Œ! y­wr[  r-  )rN  Údrp  rF  s     €€r:  rP  zsqueeze.<locals>.<genexpr>@  s$   øè ø€ ÒD�q¡N°1·7±7¸1±:À±?Õ$C”ÑDùs   ƒ(¡(rU  T)r¼  )r_  rF  re  ri  rY  r·  rü   r`  r3  r‚  r	  r@  r   rX  rÚ  rM  r&  )rp  rû  rE  r3  Ú	dims_listr/  rF  s   `     @r:  rü   rü   *  s.  ù€ åDà
€{ÜÑJ¬)°A·G±GÓ*<ÔJÓJˆÙ)-Œu�}‰}˜Q Ó%ÐC´5·=±=ÀÓ3CÐCà�6‰6€Dä
×
!Ñ
! $¨Ó
,€CÜ ¤SÔ)ˆC‰6¨s€Dàˆq‚yÜ�D“	˜Q’ $¨$¢,Ü ØJÈ4È&ÐQóð ô �}‰}˜QÓÐô ÔD˜DÔDÓD€DÜ
ˆ4ƒy�A‚~Ü�}‰}˜QÓÐÜ
ˆ4ƒy�A‚~Ü�}‰}˜Q Ó%Ð%Ü�T“
€IÜ�y¨$Ô/€IØò ˆÜ�A�q‹M‰ðà€Hr<  Úsplit_sizesc                 óö  ‡ ‡‡— t        t        ‰«      «      D ]  }t        j                  ‰|   dk\  d„ «       Œ! t        j                  t
        t        j                  ‰«      ‰ j                  ‰   k(  ˆˆ ˆfd„«       g }‰ j                  «       }‰D ]e  }t        ‰ j                  «      }||‰<   |j                  ‰ j                  |‰ j                  «       |«      «       |‰ j                  «       ‰   |z  z   }Œg |S )Nr   c                   ó   — y)NzCsplit_with_sizes expects split_sizes have only non-negative entriesrR  rR  r<  r:  rT  z"split_with_sizes.<locals>.<lambda>U  r|  r<  c                  óT   •— dt        j                  ‰«      › d‰j                  ‰    › �S )NzSplit sizes add up to z but got the tensor's size of )r?  rÂ   rY  )rû  r  r  s   €€€r:  rT  z"split_with_sizes.<locals>.<lambda>Z  s.   ø€ Ð(¬¯©°kÓ)BÐ(CÐCaÐbf×blÑblÐmpÑbqÐarÐs€ r<  )rj  rX  r`  rk  r  rl  r?  rÂ   rY  r@  rM  r²  rÍ   r:  )r  r  rû  r/  Úsplitsr„  Ú
split_sizerå  s   ```     r:  rù   rù   L  så   ú€ ô ”3�{Ó#Ó$ò 
ˆÜ�‰Ø˜‰N˜aÑÙYõ	
ð
ô
 
×ÑÜÜ�‰�[Ó! T§Z¡Z°¡_Ñ4Ýsôð €FØ× Ñ Ó"€Fà!ò :ˆ
Ü˜Ÿ™Ó$ˆ	Ø#ˆ	�#‰ð 	�‰�d—o‘o i°·±³ÀÓGÔHØ˜$Ÿ+™+›-¨Ñ,¨zÑ9Ñ9‰ð:ð €Mr<  Úindices_or_sectionsc                 ó¶  — t        j                  | j                  |«      }| j                  dk(  rd}t        |«      ‚t	        |t
        «      rj|j                  j                  dk7  rd|j                  › �}t        |«      ‚|j                  t        j                  k7  rd|j                  › �}t        |«      ‚t	        |t        «      st	        |t
        «      rÂ|j                  dk(  r³t	        |t        «      r|n|j                  «       }|dk  rd|› �}t        |«      ‚| j                  |   }t        j                   ||z  «      }||z  }g }	t#        |«      D ]  }
|
|k  r|dz   n|}|	j%                  |«       Œ! t'        t(        j+                  | |	|¬«      «      S |}t	        |t
        «      r:|j                  dk7  rd	|j                  › d
�}t        |«      ‚|j-                  «       }dgt/        |«      z   | j                  |   gz   }t#        t1        |«      dz
  «      D �cg c]  }||dz      ||   z
  ‘Œ }	}t'        t(        j+                  | |	|¬«      «      S c c}w )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 zgtensor_split: if indices_or_sections is a tensor it must have long dtype,  but received one with dtype zAtensor_split: number of sections must be greater than 0, but was rU  ©rû  zntensor_split: non-scalar indices_or_sections tensors must have only one dimension, but received a tensor with rW  )r‚  rÍ  r3  rl  r@  r'   r9  r7  rÆ  r`  Úlongr   r!   rµ   rY  r*  rJ   rj  r²  re  r°  rù   ÚtolistrM  rX  )rp  r"  rû  Ú_dimrÜ  ÚsectionsrÃ  Úmin_split_sizeÚnum_splits_one_extrar  Ú	split_idxr!  Úindicesr/  s                 r:  r  r  l  s~  € ô
 ×!Ñ! !§&¡&¨#Ó.€DØ‡v�v�‚{ØhˆÜ˜‹oÐô Ð%¤zÔ2Ø×%Ñ%×*Ñ*¨eÒ3ð'Ø':×'AÑ'AÐ&BðDð ô ˜S“/Ð!Ø×$Ñ$¬¯
©
Ò2ð0Ø0C×0IÑ0IÐ/JðLð ô ˜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ð  Ò"à#ð ð
 ×Ñ˜zÕ*ð	+ô ”T×*Ñ*¨1¨k¸tÐ*ÓDÓEÐEð &ˆÜÐ)¬:Ô6Ø"×'Ñ'¨1Ò,ð2Ø2E×2JÑ2JÐ1KÈ;ðXð ô ! “oÐ%à)×0Ñ0Ó2ˆGà�#œ˜W›Ñ%¨¯©°©¨Ñ7ˆÜ<AÄ#ÀgÃ,ÐQRÑBRÓ<SÖT°q�w˜q 1™u‘~¨°©
Ó2ÐTˆÐTÜ”T×*Ñ*¨1¨k¸tÐ*ÓDÓEÐEùò Us   ÈI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 )NrU  c                  ó:   •— dt        ‰ j                  «      z   dz   S )NzPtorch.hsplit requires a tensor with at least 1 dimension, but got a tensor with ú dimensions!©r„  r3  r’  s   €r:  rT  zhsplit.<locals>.<lambda>¹  ó#   ø€ Ø^Ü�!—&‘&‹kñàñð r<  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 r�  rB  )rp  rû  r!  s   €€€r:  rT  zhsplit.<locals>.<lambda>Å  sX   ø€ ØBÜ�c“(ñà4ñ5ô �a—g‘g˜c‘lÓ#ñ$ð 9ñ	9ô
 �j“/ñ"ð ñð r<  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 r6  ©r"  s   €r:  rT  zhsplit.<locals>.<lambda>Ô  ó   ø€ ðä Ð!4Ó5Ð6ð8ð r<  ©
r`  rk  r3  r@  r   rY  r  Ú_check_typerM  re  )rp  r"  r  rû  r!  s   `` @@r:  rè   rè   ´  s¼   û€ ô 
‡L�LØ	�‰�!‰ó	
ôð �v‰v˜Š{‰! €CÜÐ%¤wÔ/Ø(ˆ
Ü�‰à˜1‰_Ò? §¡¨¡°
Ñ!:¸aÑ!?õô	
ô ˜A˜z¨3Ó/Ð/ä	×ÑÜÐ&¬¬u¨Ó6ó	
ôð &€KÜ˜˜;¨Ó,Ð,r<  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 )Nr6  c                  ó:   •— dt        ‰ j                  «      z   dz   S )NzPtorch.vsplit requires a tensor with at least 2 dimension, but got a tensor with r/  r0  r’  s   €r:  rT  zvsplit.<locals>.<lambda>å  r1  r<  r   c                  ó0   •— d‰ j                   d   › d‰› d�S )NzQtorch.vsplit attempted to split along dimension 0, but the size of the dimension r   r3  r�  r-  )rp  r!  s   €€r:  rT  zvsplit.<locals>.<lambda>ð  s*   ø€ ð3à—7‘7˜1‘:�,Ø6Ø�,Øðð r<  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 r6  r5  s   €r:  rT  zvsplit.<locals>.<lambda>þ  r6  r<  r7  )rp  r"  r  r!  s   `` @r:  r  r  à  s«   ú€ ô 
‡L�LØ	�‰�!‰ó	
ôô Ð%¤wÔ/Ø(ˆ
Ü�‰à˜1‰_Ò= §¡¨¡¨jÑ!8¸AÑ!=ôô	
ô ˜A˜z¨1Ó-Ð-ä	×ÑÜÐ&¬¬u¨Ó6ó	
ôð &€KÜ˜˜;¨Ó*Ð*r<  r„  c                 ó¼   ‡— | j                  «       Št        j                  ‰dv ˆfd„«       ‰dk(  rt        j                  | |«      S t        j                  | |«      S )N)rU  r6  c                  ó   •— d‰ › d�S )Nz'diag(): Supports 1D or 2D tensors. Got ÚDrR  rŒ  s   €r:  rT  zdiag.<locals>.<lambda>  s   ø€ Ð"IÈ$ÈÈqÐ Q€ r<  rU  )rû  r`  rk  rÚ   rÝ   )r  r„  r3  s     @r:  rÛ   rÛ   	  sU   ø€ ð �8‰8‹:€DÜ	‡L�LØ�ˆÓQôð ˆq‚yÜ×Ñ  fÓ-Ð-ä×"Ñ" 4¨Ó0Ð0r<  rÚ  Údim2c                 óJ  ‡‡— ddl m}m} t        j                  | «      }|j                  |||«      Št        j                  ‰j                  ‰j                  k(  xr1  | |d„ t        ‰j                  ‰j                  «      D «       Ž «       ˆˆfd„«       t        ‰‰«       |S )Nr   )rF  rz  c              3   ó,   K  — | ]  \  }}||k7  –— Œ y ­wrK  rR  )rN  Úd1Úd2s      r:  rP  z#diagonal_scatter.<locals>.<genexpr>*  s   è ø€ ÒG¡& " b�R˜2•XÑGùr;  c                  ó<   •— 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   €€r:  rT  z"diagonal_scatter.<locals>.<lambda>,  s$   ø€ ð Ø�y‰yˆkÐ2°4·:±:°,ð@€ r<  )r_  rF  rz  r‚  Úclone_preserve_stridesrÜ   r`  rk  r3  r}  rY  r´   )	rÃ  r°  r„  rÚ  r@  rF  rz  r¬  rÛ   s	    `      @r:  rÞ   rÞ     s�   ù€ ÷ Mä
×
&Ñ
& uÓ
-€CØ�<‰<˜  dÓ+€Dä	‡L�LØ�	‰	�S—X‘XÑò 	
ÙÙÑG¬C°·
±
¸C¿I¹IÓ,FÔGÐHó
ð 
ô	@ôô ˆD�#ÔØ€Jr<  c                 óÒ  ‡‡— | j                  «       }t        j                  ‰|¬«      Št        j                  ‰|¬«      Št        j                  ‰‰k7  ˆˆfd„«       | j                  «       }|dk\  rUt        t        | j                  «       ‰   | j                  «       ‰   |z
  «      d«      }||| j                  «       ‰   z  z  }nTt        t        | j                  «       ‰   |z   | j                  «       ‰   «      d«      }||| 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  rR  ©rÚ  r@  s   €€r:  rT  zdiagonal.<locals>.<lambda>B  ó   ø€ Ð HÈÈÈbÐQUÐPVÐW€ r<  r   )r>  r:  r@  )rû  r‚  rÍ  r`  rk  r@  r   r   r>  r:  ri  r²  rÍ   )r  r„  rÚ  r@  Únum_dimsr@  Ú	diag_sizer/  rþ  rC  r´  r	  s     ``        r:  rÜ   rÜ   3  s§  ù€ ð �x‰x‹z€HÜ×!Ñ! d°Ô:€DÜ×!Ñ! d°Ô:€Dä	‡L�LØ�‰ÔWôð ×(Ñ(Ó*€Nð �‚{ÜœG D§I¡I£K°Ñ$5°t·y±y³{À4Ñ7HÈ6Ñ7QÓRÐTUÓVˆ	Ø˜& 4§;¡;£=°Ñ#6Ñ6Ñ6‰äœG D§I¡I£K°Ñ$5¸Ñ$>ÀÇ	Á	ÃÈDÑ@QÓRÐTUÓVˆ	Ø˜& 4§;¡;£=°Ñ#6Ñ6Ñ6ˆä$ 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   Ä8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
    rU  )rH  r^  c                  ó   •— d‰ › d‰› �S rJ  rR  rK  s   €€r:  rT  zdiag_embed.<locals>.<lambda>q  rL  r<  rZ  r   F©rÆ  r9  rÈ  r$  ©r9  rÆ  )r3  r‚  rÍ  r`  rk  r>  rM  rY  r?  r2   r+  rÆ  r9  rÔ   r  rë   r  rQ  rj  rX  rô   Úmask_tensorrÙ   )rþ   r„  rÚ  r@  rH  rÒ  Út_shapeÚzÚpairÚa_rangeÚb_rangeÚcondr/  Ú
cond_shapes     ``          r:  rÚ   rÚ   Z  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
    rU  rZ  c              3   ó:   K  — | ]  }|j                   d    –— Œ y­wr[  r-  )rN  rÏ  s     r:  rP  z'_block_diag_iterable.<locals>.<genexpr>ž  s   è ø€ ÒB¨V˜Ÿ™ a�ÑBùs   ‚r   r6  c                  ó2   •— d‰ › d‰j                  «       › d�S )Nz5Input tensors must have 2 or fewer dimensions. Input z has rW  r$  )r/  rÏ  s   €€r:  rT  z&_block_diag_iterable.<locals>.<lambda>§  s"   ø€ ð Ø�C�u˜VŸZ™Z›\˜N¨+ð7€ r<  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 rp  r8  )r9  r/  rÏ  s   €€€r:  rT  z&_block_diag_iterable.<locals>.<lambda>¬  s(   ø€ ð $Ø$* 8¨;°q°c¸ÈÏÉÀÐVWðY€ r<  rR  r$  )rû  r
  r?  rÂ   r9  ri  r`  rk  rY  r+  rÆ  rÔ   )r¶  rÏ  Ú
tensors_2dÚncolsr	  Ú	col_startÚrowÚcolr…  Úrightr9  r/  s    `        @@r:  Ú_block_diag_iterablere  ”  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.
    )re  rµ  s    r:  rÐ   rÐ   º  s   € ô   Ó(Ð(r<  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   r6  z3torch.dsplit attempted to split along dimension 2, zbut the size of the dimension r3  r�  )r3  rg  r@  r   rY  r  )rp  r(  s     r:  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Ó'Ð'r<  c                 óª   — | j                   dkD  rt        d| j                   › d�«      ‚t        j                  | d| j                   dk  rd«      S d«      S )Nr6  z7t() expects a tensor with <= 2 dimensions, but self is r?  r   rU  )r3  rg  r`  r  r’  s    r:  rþ   rþ   Ò  sS   € ð 	‡v�v�‚zÜØEÀaÇfÁfÀXÈQÐOó
ð 	
ô �?‰?˜1˜a a§f¡f¨q¢j Ó8Ð8°aÓ8Ð8r<  c                 óh   — t        j                  | j                  dv d„ «       | j                  «       S )N)r   r6  c                   ó   — 	 y)NzcThe use of `x.T` on tensors of dimension other than 0 or 2 to reverse their shape is not supported.rR  rR  r<  r:  rT  zT.<locals>.<lambda>é  s   € ð7ð r<  )r`  rk  r3  rþ   r’  s    r:  r   r   å  s,   € ä	‡L�LØ	�‰�&Ðñ	
ôð �3‰3‹5€Lr<  c                 ó,   — t        j                  | «      S rK  )r·  r`  r’  s    r:  rÈ   rÈ   ñ  rÍ  r<  rÙ  c                 ó.  — t        j                  | j                  ||f«      \  }}| j                  dk  s||k(  rt        j                  j                  | «      S t        t        | j                  «      «      }|||<   |||<   t        j                  | |«      S r!  )
r‚  r	  r3  r°  rÈ   ÚdefaultrM  rj  r`  rð   )rp  rÙ  rÚ  Ú_dim0Ú_dim1rO  s         r:  r  r  ö  s}   € ä×*Ñ*¨1¯6©6°D¸$°<Ó@�L€Eˆ5à‡v�v�‚{�d˜d’lÜ�z‰z×!Ñ! !Ó$Ð$äœ˜aŸf™f›Ó&€LØ€L�ÑØ€L�ÑÜ�=‰=˜˜LÓ)Ð)r<  c                 óz   — t        | j                  | j                  «       |||«      \  }}| j                  ||«      S rK  )rµ  rY  r:  rÍ   )r  ru  r>  rv  rY  r´  s         r:  r  r    s:   € ô .Ø�
‰
�D—K‘K“M 9¨d°Dó�N€Eˆ7ð �?‰?˜5 'Ó*Ð*r<  c                 ód   — | j                  |||«      j                  t        j                  ¬«      S r  )r  r³   r`  r@  )r  ru  r>  rv  s       r:  r  r    s2   € ð �;‰;�y $¨Ó-×3Ñ3Ü×-Ñ-ð 4ó ð r<  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¬  rU  r8  rZ  )
r3  r‚  rÍ  r  r`  r  rY  r9  rj  r²   )rK  Úinitrp  rû  rÆ  r¬  r3  Úrgr‰  r­  Úmasked_as              r:  Ú_cumsumprod_commonrv    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Ð8r<  c                ó,   — t        t        d| |||¬«      S )Nr   ©rK  rs  rp  rû  rÆ  r¬  )rv  rÂ   ©rp  rû  rÆ  r¬  s       r:  r»   r»   1  s   € ô ¤3¨Q°!¸ÀEÈsÔSÐSr<  c                ó,   — t        t        d| |||¬«      S )NrU  rx  )rv  rÄ   ry  s       r:  r¼   r¼   <  s   € ô ¤4¨a°1¸#ÀUÐPSÔTÐTr<  c                 ó~   — | j                   dz   }t        j                  ||«      }t        j                  | |f|¬«      S )NrU  rŒ  )r3  r‚  rÍ  r·  Úexpand_dims)rp  rû  r3  s      r:  r  r  H  s:   € ð �6‰6�A‰:€DÜ
×
 Ñ
   sÓ
+€CÜ×Ñ˜Q  ¨TÔ2Ð2r<  c                 ó  — ddl m}m} t        j                  t        t        t        t           z  |«      d¬«      }t        j                  j                  j                  j                  s	 || |«      r	 || |«      S t        | g|¢­ddiŽS )Nr   )Ú_view_has_unbacked_inputÚ_view_unbacked_metaFrU  rÍ  )Útorch._subclasses.fake_implsr~  r  r‚  r]  r   r%   re  r`  ra  rb  rc  rd  rÜ  )rp  rY  r~  r  Úshape_tuples        r:  r
  r
  U  s|   € ÷ô ×2Ñ2ÜŒYœœyÑ)Ñ)¨5Ó1¸Eô€Kô ‡x�x×Ñ×$Ñ$×:Ò:Ñ>VØ	Øô?ñ # 1 kÓ2Ð2Ü Ð< EÒ<°eÑ<Ð<r<  c                 ó@   — | j                  |j                  «       «      S rK  )r
  r>  rß  s     r:  r  r  k  s   € Ø�9‰9�U—Z‘Z“\Ó"Ð"r<  c                 ó   — t        | d«      S )N)rZ  )rô   r’  s    r:  rò   rò   p  s   € Ü�1�eÓÐr<  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        ‰ |«      }|j                  |«      }||z  }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 indicesrŒ  )rp  r,  s   €€r:  rT  z take_along_dim.<locals>.<lambda>|  s*   ø€ ð-Ø-.¯V©V¨HÐ4OØ�|‰|ˆnÐ3ð5ð r<  c                  ó$   •— d‰ j                   › d�S )Nz?torch.take_along_dim(): dtype of indices should be int but got z insteadræ  )r,  s   €r:  rT  z take_along_dim.<locals>.<lambda>…  s   ø€ ØMØ�}‰}ˆo˜Xð'ð r<  rZ  r   )r`  rk  r3  r‚  r  rÆ  Úgatherr
  rM  rY  r>  Úinfer_size_shapesrÓ   )	rp  r,  rû  Ú
self_sizesÚbroadcast_shapeÚindices_broadcastÚindices_sizesÚself_broadcastrÃ  s	   ``       r:  r  r  v  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ˆð "×&Ñ& sÓ+ˆØ-°Ñ8Ðä�|‰|˜N¨CÐ1BÓCÐCr<  ©rÆ  r  r9  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 supportedrR  rR  r<  r:  rT  zempty.<locals>.<lambda>«  r|  r<  c                  ó   •— d‰ › d�S )Nz/torch.empty: received an unknown memory format r�  rR  rþ  s   €r:  rT  zempty.<locals>.<lambda>¸  s   ø€ ÐEÀmÀ_ÐTUÐV€ r<  ©rÆ  r  r9  r  rÈ  )r`  rk  r  r‚  r]  r@  r½  Úchannels_last_3dÚ!make_channels_last_3d_strides_forÚchannels_lastÚ!make_channels_last_2d_strides_forr  )rÆ  r  r9  rÈ  r  rÿ  rY  r´  s        `  r:  r  r  Ÿ  sÇ   ø€ ô 
‡L�LØœ×.Ñ.Ñ.ÙJôô
 ×,Ñ,¨UÓ3€Eàœ×/Ñ/Ò/Ü×3Ñ3°EÓ:‰Ø	œ%×0Ñ0Ò	0ä×9Ñ9¸%Ó@‰ä�‰ØœU×0Ñ0Ñ0ÛVô	
ô
 ×9Ñ9¸%Ó@ˆä×ÑØØØØØØØ#ôð r<  c                 ó6   — t        j                  | ||||¬«      S )NrQ  )r·  r  )rY  Úphysical_layoutrÆ  r  r9  rÈ  r  s          r:  r  r  È  s&   € ô ×ÑØØØØØ#ôð r<  ©rÆ  r  r9  r  c                ó–   — |€| j                   n|}|€| j                  n|}|€| j                  n|}t        j                  |||||¬«      S )N©rÆ  r9  r  r  )rÆ  r  r9  r`  r  )rp  r>  rÆ  r  r9  r  s         r:  r!  r!  Û  sQ   € ð �}ˆA�GŠG¨%€EØ˜ˆQ�XŠX¨V€FØ˜ˆQ�XŠX¨V€Fä�;‰;ØØØØØôð r<  c                ó˜   — |€| j                   n|}|€| j                  n|}|€| j                  n|}t        j                  ||||||¬«      S )zD
    Reference implementation of torch.Tensor.new_empty_strided
    r›  )rÆ  r  r9  r`  r  )rp  r>  r:  rÆ  r  r9  r  s          r:  r"  r"  ó  sV   € ð  �}ˆA�GŠG¨%€EØ˜ˆQ�XŠX¨V€FØ˜ˆQ�XŠX¨V€Fä×ÑØØØØØØôð r<  r’  c           	      óº   — t        j                  |«      }| €t        j                  «       } t        j                  || t        j
                  k(  rdnd| ||||¬«      S ©NFr   r’  ©r‚  r]  r`  r®  r  r‡  ©rÆ  r  r9  r  rÈ  r>  s         r:  r+  r+    sZ   € ô ×+Ñ+¨DÓ1€Dà€}Ü×'Ñ'Ó)ˆä�:‰:ØØœ%Ÿ*™*Ò$‰¨!ØØØØØ#ôð r<  c          	      óà   — |€| j                   n|}|€| j                  n|}|€| j                  n|}t        j                  ||xs | j                   t        j
                  k(  rdnd|||||¬«      S rž  ©rÆ  r  r9  r`  r  r‡  ©rp  r>  rÆ  r  r9  r  rÈ  s          r:  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ØØØØØ#ôð r<  c           	      óº   — t        j                  |«      }| €t        j                  «       } t        j                  || t        j
                  k(  rdnd| ||||¬«      S ©NTrU  r’  rŸ  r   s         r:  r&  r&  F  sZ   € ô ×+Ñ+¨DÓ1€Dà€}Ü×'Ñ'Ó)ˆä�:‰:ØØœŸ™Ò#‰¨ØØØØØ#ôð r<  c          	      óà   — |€| j                   n|}|€| j                  n|}|€| j                  n|}t        j                  ||xs | j                   t        j
                  k(  rdnd|||||¬«      S r¥  r¢  r£  s          r:  r$  r$  `  sm   € ð �}ˆA�GŠG¨%€EØ˜ˆQ�XŠX¨V€FØ˜ˆQ�XŠX¨V€Fä�:‰:ØØÒ!˜!Ÿ'™'¤e§j¡jÒ0‰°aØØØØØ#ôð r<  Ú
fill_valuec                ó˜   — |€| j                   n|}|€| j                  n|}|€| j                  n|}t        j                  ||||||¬«      S )Nr™  )rÆ  r  r9  r`  r  )rp  r>  r§  rÆ  r  r9  r  s          r:  r#  r#  {  sT   € ð �}ˆA�GŠG¨%€EØ˜ˆQ�XŠX¨V€FØ˜ˆQ�XŠX¨V€Fä�:‰:ØØØØØØôð r<  c                 ó    — t        || |«       |S rK  )r,   )r>  r¬  rÿ  s      r:  Ú	empty_outrª  •  s   € ô �c˜4 Ô/Ø€Jr<  )rÆ  r9  r  r  rÈ  rÿ  c          	      óP  — |€| j                   n|}|€| j                  n|}|€| j                  n|}|t        j                  k7  r&t        j
                  | j                  ||||||¬«      S t        j                  | «      \  }}t        j                  | j                  ||||||¬«      S )NrŽ  r’  )
rÆ  r  r9  r`  r  r  rY  r‚  Ú3compute_elementwise_output_logical_to_physical_permr  )	rp  rÆ  r9  r  r  rÈ  rÿ  Úlogical_to_physical_permr­  s	            r:  r  r  Ÿ  s±   € ð �}ˆA�GŠG¨%€EØ˜ˆQ�XŠX¨V€FØ˜ˆQ�XŠX¨V€Fàœ×-Ñ-Ò-Ü�{‰{Ø�G‰GØØØØ'Ø!Ø'ô
ð 	
ô 	×AÑAÀ!ÓDñ  Ð˜aô ×ÑØ	�‰Ø ØØØØØ#ôð r<  r©  c                óÜ  ‡ ‡‡— t        j                  |«       t        j                  |«       t        j                  t        j
                  |«      «      }t        ‰ t        «      rt        d«      ‚t        ‰t        «      rt        d«      ‚t        ‰t        «      rt        d«      ‚‰€‰ Š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|
rFt        j                   dk7  d„ «       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.                  ||«      }t1        ||«      }‰ ‰|z  z   }t1        ||«      }|r|j3                  d«       |S )Nz%arange does not support complex startz#arange does not support complex endz$arange does not support complex stepr   c                   ó   — y©Nzstep must be nonzerorR  rR  r<  r:  rT  zarange.<locals>.<lambda>æ  r|  r<  c                   ó   — y©Nz7upper bound and lower bound inconsistent with step signrR  rR  r<  r:  rT  zarange.<locals>.<lambda>ê  r|  r<  c                   ó   — yr²  rR  rR  r<  r:  rT  zarange.<locals>.<lambda>ï  r|  r<  c                 óR   — t        | t        «       xs t        j                  | «      S rK  )r@  r   r*  rS   rS  s    r:  Ú	is_finitezarange.<locals>.is_finiteò  s!   € Ü˜aÔ!5Ó6Ð6ÒJ¼$¿-¹-ÈÓ:JÐJr<  c                  ó   •— d‰› d‰ › �S )Nzunsupported range: rñ  rR  )r©  r¸  s   €€r:  rT  zarange.<locals>.<lambda>÷  s   ø€ Ð% e W¨D°°Ð6€ r<  c                  ó   •— d‰ › �S )Nzstep must be finite but got rR  r±  s   €r:  rT  zarange.<locals>.<lambda>û  s   ø€ Ð.¨t¨fÐ5€ r<  c              3   ó<   K  — | ]  }t        |t        «      –— Œ y ­wrK  rL  ©rN  r™  s     r:  rP  zarange.<locals>.<genexpr>ÿ  s   è ø€ ÒI¸S¤
¨3´× 8ÑIùó   ‚c                   ó   — yr°  rR  rR  r<  r:  rT  zarange.<locals>.<lambda>  r|  r<  )r¸  rv  rÆ  r9  rÈ  rU  FT)r‚  Úcheck_layoutÚcheck_pin_memoryr`  r9  Údevice_or_defaultr@  r»  rÚ  rk  r?  r·   rQ  r®  r  r   rO  r‡  r*  r:   r·  Úiotar%  Úget_acc_typer+   Úrequires_grad_)r¸  r©  rv  rÆ  r  r9  r  rÈ  rµ  rˆ  Úinteger_argsÚ
is_integerÚxstartÚxendÚxsteprl   rû  r  r  r	  s   ```                 r:  r  r  Ê  s¡  ú€ ô 
×Ñ�vÔÜ	×Ñ˜:Ô&Ü�\‰\œ%×1Ñ1°&Ó9Ó:€Fä�%œÔ!ÜÐDÓEÐEÜ�#”wÔÜÐBÓCÐCÜ�$œÔ ÜÐCÓDÐDð €{ØˆØˆÜ	‡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 A™:Ñ'EÔFä�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Ô#Ø€Mr<  )r¸  r©  r(  c                 óø  — | |g}t        |t        «      r| j                  d|«      }n|j                  |«       t        |t        «      st        dt        |«      › �«      ‚|j                  «       dk\  }t        j                  ||dz
  |«      }t        j                  ||| «      }||| z
  z  |z   }t        j                  t        |Ž Ž }|j                  «       |k7  rt        j                  ||«      }t!        ||«      S )NrR  z)weight must be Tensor at this point, got rv  rU  )r@  r!   r#  r²  rS  rÚ  r7  r2   r`  r²   r‚  Ú"compute_elementwise_output_stridesr‰  r:  r·  r  rD  )	r¸  r©  r(  r¼  r‰  ÚcoeffÚbaserC  r:  s	            r:  rZ   rZ   3  sä   € ð �Sˆ\€FÜ�&œ&Ô!Ø—‘  FÓ+‰à�‰�fÔÜ�fœfÔ%ÜÐHÌÈfËÈÐWÓXÐXð �:‰:‹<˜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Ð7r<  )rÆ  r9  r  r  rÈ  Ústepsc          
      ó’  ‡ ‡‡‡‡— t        ‰ t        «      r=t        j                  ‰ j	                  «       dk(  d„ «       t        ‰ t        |«      «      Š t        ‰t        «      r=t        j                  ‰j	                  «       dk(  d„ «       t        ‰t        |«      «      Št        j                  d„ ‰ ‰‰fD «       «      rZt        j                  t        j                  «       «      Š‰€‰ŠnFt        j                  t        j                  ‰«      ˆˆfd„«       n‰xs t        j                  «       Št        ‰t        j                  «      st        dt        ‰«      › �«      ‚t        j                   t        ‰t"        «      ˆˆ ˆfd„«       t        ‰t"        «      st        dt        ‰«      › �«      ‚t        j                  ‰dk\  d	„ «       ||||d
œ}‰dk(  rt        j$                  dd‰i|¤ŽS ‰dk(  rwt        ‰ t        «      rMt        j&                  ‰ffd‰i|¤Ž}	t        j(                  j*                  j,                  j/                  |	‰ «      S t        j$                  ‰f‰ fd‰i|¤ŽS t        j0                  d‰fi |¤Ž}
t        j2                  ‰«      st        j4                  ‰«      rt        j6                  n‰}t        j8                  |
t:        j<                  |«      \  }}t?        t
        |¬«      }‰‰ z
  ‰dz
  z  }t        j@                  |
‰dz  k  ‰ | ||
«      z  z   ‰| |‰dz
  |
z
  «      z  z
  «      }t        |‰«      S )Nr   c                   ó   — y©Nz:linspace only supports 0-dimensional start and end tensorsrR  rR  r<  r:  rT  zlinspace.<locals>.<lambda>c  r|  r<  c                   ó   — yrÎ  rR  rR  r<  r:  rT  zlinspace.<locals>.<lambda>i  r|  r<  c              3   ó<   K  — | ]  }t        |t        «      –— Œ y ­wrK  ©r@  r»  r¹  s     r:  rP  zlinspace.<locals>.<genexpr>m  ó   è ø€ ÒL°”J˜s¤G×,ÑLùrº  c                  ó   •— d‰ › d‰› �S )Nzlinspace(): inferred dtype z& can't be safely cast to passed dtype rR  )Údefault_complex_dtyperÆ  s   €€r:  rT  zlinspace.<locals>.<lambda>v  s   ø€ Ð5Ð6KÐ5LÐLrÐsxÐryÐz€ r<  údtype must be torch.dtype, got c                  óŽ   •— dt        ‰«      j                  › dt        ‰ «      j                  › dt        ‰«      j                  › d�S )Nz4received an invalid combination of arguments - got (r  r  )r7  rš  )r©  r¸  rË  s   €€€r:  rT  zlinspace.<locals>.<lambda>€  sD   ø€ ð Ü€uƒ+×ÑÐ�rœ$˜s›)×,Ñ,Ð-¨R´°U³×0DÑ0DÐ/EÀQðH€ r<  zsteps must be IntLike, got c                   ó   — y)Nz$number of steps must be non-negativerR  rR  r<  r:  rT  zlinspace.<locals>.<lambda>…  r|  r<  )r  r9  r  rÈ  rÆ  rU  ræ  r6  )rÊ  r   )!r@  r(   r`  rk  rû  r+   r1   r?  rº   r‚  rB  r®  rÅ  rÆ  rÚ  r7  r8  r   r  r  Úopsr°  r  rm  r  r  r  rQ  r5  r$   rR  r   r²   )r¸  r©  rË  rÆ  r9  r  r  rÈ  Úfactory_kwargsÚempty_tensorrt  Ú	dtype_redr  r­  Úcast_rgrv  r¬  rÔ  s   ````             @r:  r  r  S  sê  ü€ ô �%œÔ(Ü�‰Ø�I‰I‹K˜1ÑÙPô	
ô (¨Ô/FÀvÓ/NÓOˆÜ�#”~Ô&Ü�‰Ø�G‰G‹I˜‰NÙPô	
ô & cÔ+BÀ6Ó+JÓKˆä‡|�|ÑL¸ÀÀUÐ8KÔLÔLÜ %× AÑ AÜ×#Ñ#Ó%ó!
Ðð ˆ=Ø)‰Eä�L‰LÜ×&Ñ& uÓ-Üzõð
 Ò2œ×0Ñ0Ó2ˆÜ�eœUŸ[™[Ô)ÜÐ>¼tÀE»{¸mÐLÓMÐMô 
×ÑÜ�5œ'Ó"õ	Hôô
 �eœWÔ%ÜÐ:¼4À»;¸-ÐHÓIÐIÜ	‡L�L�˜!‘ÑKÔLð ØØ Ø&ñ	€Nð �‚zÜ�z‰zÑA¨ÐA°.ÑAÐAØ�‚zÜ�eœ^Ô,Ü Ÿ;™;¨ xÑO°uÐOÀÑOˆLÜ—9‘9—>‘>×&Ñ&×.Ñ.¨|¸UÓCÐCä—:‘:˜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¨Ó.Ð.r<  rÊ  c          
      ó€  — |€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t#        dt%        |«      › �«      ‚|dk  rt&        ‚t        j(                  | |||
||||¬«      }t        t        j*                  ||«      |«      S )Nr   c                   ó   — y©Nz:logspace only supports 0-dimensional start and end tensorsrR  rR  r<  r:  rT  zlogspace.<locals>.<lambda>È  r|  r<  c                   ó   — yrß  rR  rR  r<  r:  rT  zlogspace.<locals>.<lambda>Ð  r|  r<  c              3   ó<   K  — | ]  }t        |t        «      –— Œ y ­wrK  rÑ  r¹  s     r:  rP  zlogspace.<locals>.<genexpr>Ô  rÒ  rº  zbase must not be complex, got r’  )r`  r®  r·  r‚  r  r@  r   r   r(   rk  rû  r+   r?  rº   rB  rz  r»  rÚ  r7  rü  r  r¢   )r¸  r©  rË  rÊ  rÆ  r9  r  r  rÈ  rÔ  Ú_dtypeÚrets               r:  r   r   °  ss  € ð €}Ü×'Ñ'Ó)ˆô ‡{�{×#Ñ# 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Ü×#Ñ#Ó%ó!
Ðð &ˆØ‰ä—‘ˆä�$œÔ ÜÐ=¼dÀ4»j¸\ÐJÓKÐKØˆa‚xÜ!Ð!Ü
�.‰.ØØØØØØØØ#ô	€Cô #¤5§9¡9¨T°3Ó#7¸Ó?Ð?r<  Úindexingc                  ó   — y rK  rR  )r¶  rä  s     r:  rê   rê   î  s   € ð 	r<  c                  ó   — y rK  rR  )rä  r¶  s     r:  rê   rê   ô  s   € àr<  c                 ó  ‡ ‡— t        |d   t        t        f«      r3t        |«      dk7  rt	        dt        |«      › �«      ‚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 ]  Št        ‰t        «      st	        dt        ‰«      › �«      ‚t        j                  ‰j                  dk(  xs ‰j                  dk(  ˆfd„«       |j                  ‰j!                  «       «       Œ� g }t#        |«      D ]s  \  }Št        ‰t        «      st	        dt        ‰«      › �«      ‚‰j                  dk(  r‰j%                  d«      Š|j                  t'        j(                  ‰||f«      «       Œu |r|d   |d   c|d<   |d<   |S )Nr   rU  z*Expected exactly 1 tensor list/tuple, got c              3   ó<   K  — | ]  }t        |t        «      –— Œ y ­wrK  ©r@  r'   r�  s     r:  rP  zmeshgrid.<locals>.<genexpr>	  s   è ø€ Ò@°1”Z ¤:×.Ñ@ùrº  c                   ó   — y)Nz)meshgrid expects its inputs to be tensorsrR  rR  r<  r:  rT  zmeshgrid.<locals>.<lambda>
  r|  r<  c                   ó   — y)Nz'meshgrid expects a non-empty TensorListrR  rR  r<  r:  rT  zmeshgrid.<locals>.<lambda>  r|  r<  c                   ó   — y)Nz3meshgrid expects all tensors to have the same dtyperR  rR  r<  r:  rT  zmeshgrid.<locals>.<lambda>  r|  r<  c                   ó   — y)Nz4meshgrid expects all tensors to have the same devicerR  rR  r<  r:  rT  zmeshgrid.<locals>.<lambda>  r|  r<  FÚxyr6  Úijc                  ó   •— d‰ › �S )NzDtorch.meshgrid: indexing must be one of "xy" or "ij", but received: rR  )rä  s   €r:  rT  zmeshgrid.<locals>.<lambda>!  s   ø€ ð!Ø!) 
ð,ð r<  zexpected TensorLike, got c                  ó   •— d‰ › �S )NzEtorch.meshgrid: Expected 0D or 1D tensor in the tensor list but got: rR  )rþ   s   €r:  rT  zmeshgrid.<locals>.<lambda>-  s   ø€ Ð[Ð\]Ð[^Ð_€ r<  r  )r@  rM  re  rX  rÚ  r`  rk  r?  r·   rj  rÆ  r9  r'   r7  r3  r²  r  ri  r
  r·  r6  )rä  r¶  r/  Úswap_first_and_second_tensorsÚresult_shapeÚgridsrþ   s   `     @r:  rê   rê   ù  so  ù€ ô �'˜!‘*œt¤U˜mÔ,Üˆw‹<˜1ÒÜ Ø<¼SÀ»\¸NÐKóð ô ˜ ™
Ó#ˆä	‡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Ô(Ü Ð#<¼TÀ!»W¸IÐ!FÓGÐGÜ�‰Ø�F‰F�a‰KÒ&˜1Ÿ6™6 Q™;Û_ô	
ð 	×Ñ˜AŸG™G›IÕ&ð'ð #%€EÜ˜'Ó"ò D‰ˆˆ1Ü˜!œZÔ(Ü Ð#<¼TÀ!»W¸IÐ!FÓGÐGØ�6‰6�QŠ;Ø—‘�t“ˆAØ�‰”U×+Ñ+¨A¨|¸a¸TÓBÕCðDñ %à" 1™X u¨Q¡xÐˆˆa‰�%˜‘(à€Lr<  Ú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)©rM  )rö  rõ  s   €€r:  rT  zmovedim.<locals>.<lambda>R  s.   ø€ ðÜ�V“ˆ~ð 'Ü'+¨KÓ'8Ð&9¸ðAð r<  )rH  r,  c                  ó"   •— dt        ‰ «      › d�S )Nz#movedim: repeated dim in `source` (r  rù  )rõ  s   €r:  rT  zmovedim.<locals>.<lambda>c  s   ø€ Ð5´d¸6³l°^À1ÐE€ r<  c                  ó"   •— dt        ‰ «      › d�S )Nz(movedim: repeated dim in `destination` (r  rù  )rö  s   €r:  rT  zmovedim.<locals>.<lambda>g  s   ø€ Ð:¼4ÀÓ;LÐ:MÈQÐO€ r<  r   rU  )r7  r—  r`  rk  rX  r3  re  r‚  r	  ÚsetÚdictr}  rj  r#  r²  rð   )rÃ  rõ  rö  rH  ÚssÚdsÚsssÚdssr…  rE  ÚsiÚdirþ  r	  s    ``           r:  rë   rë   A  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à€Mr<  )rÆ  r9  r  rÈ  r  r´  c                ó  — t        j                  |«       t        j                  |«       t        j                  | «      } |€t	        j
                  «       n|}|€t	        j                  d«      n|}t        j                  | ||||¬«      S )Nr}  rQ  )	r‚  r¼  r½  r]  r`  r®  r9  r·  r  )rY  r´  rÆ  r9  r  rÈ  r  s          r:  r  r  €  sz   € ô 
×Ñ�vÔÜ	×Ñ˜:Ô&ä×,Ñ,¨UÓ3€EØ).¨ŒE×#Ñ#Ô%¸E€EØ$* NŒU�\‰\˜%Ô ¸€Fä×ÑØØØØØ#ôð r<  Úvalc                 óÖ   — t         j                  t         j                  t         j                  fD ](  }| t        j                  |«      j
                  k  sŒ&|c S  t         j                  S rK  )r`  rK  Úuint16rµ  Úiinforh  rQ  )r  Úpossible_dtypes     r:  Ú_strength_reduce_integerr
  �  sM   € Ü Ÿ;™;¬¯©´e·k±kÐBò "ˆØ”%—+‘+˜nÓ-×1Ñ1Ó1Ø!Ò!ð"ô �;‰;Ðr<  Únr…  c                óš  ‡ ‡— ‰€‰ Št        j                  ‰ dk\  ˆ fd„«       t        j                  ‰dk\  ˆfd„«       t         j                  }t        ‰ t        j
                  «      r/t        ‰t        j
                  «      rt        t        ‰ ‰«      «      }t        j                  ‰ ||d¬«      }t        j                  ‰||d¬«      }	|j                  d«      |	k(  }
|t         j                  dfv r)|s'|
j                  |xs t        j                  «       «      S t        j                  d||||d¬	«      }t        j                  |
|d«      S )
z/
    Reference implementation of torch.eye
    Nr   c                  ó   •— d‰ › �S )Nz%n must be greater or equal to 0, got rR  )r  s   €r:  rT  zeye.<locals>.<lambda>¶  ó   ø€ Ð#HÈÈÐ!L€ r<  c                  ó   •— d‰ › �S )Nz%m must be greater or equal to 0, got rR  )r…  s   €r:  rT  zeye.<locals>.<lambda>·  r  r<  FrQ  rZ  r  r’  )r`  rk  rQ  r@  r‚  ÚIntWithoutSymIntr
  rh  r  r  Ústridedr¶   r®  r&  r²   )r  r…  rÆ  r  r9  r  rÈ  Úrange_dtypeÚrange_nÚrange_mrY  Úones   ``          r:  r  r  ¤  s  ù€ ð 	€yØˆä	‡L�L��a‘ÓLÔMÜ	‡L�L��a‘ÓLÔMä—+‘+€KÜ�!”U×+Ñ+Ô,´¸A¼u×?UÑ?UÔ1VÜ.¬s°1°a«yÓ9ˆÜ�l‰l˜1 K¸ÈeÔT€GÜ�l‰l˜1 K¸ÈeÔT€Gà×Ñ˜RÓ  GÑ+€DØ”%—-‘- Ð&Ñ&©zØ�w‰w�uÒ9¤× 7Ñ 7Ó 9Ó:Ð:ä�j‰jØØØØØ!Øô
ˆô �{‰{˜4  aÓ(Ð(r<  c                ó  — t        j                  |«       t        j                  |«       |�|nt        j                  t	        |«      «      }|�|nt        j                  d«      }t        | |||||¬«      }t        j                  ||«      S )Nr}  r’  )	r‚  r¼  r½  rX  r7  r`  r9  r  rH   )rY  r§  rÆ  r  r9  r  rÈ  Úes           r:  r  r  Ñ  s€   € ô 
×Ñ�vÔÜ	×Ñ˜:Ô&àÐ&‰E¬E×,?Ñ,?ÄÀZÓ@PÓ,Q€EØÐ)‰V¬u¯|©|¸EÓ/B€FäØØØØØØ#ô	€Aô �:‰:�a˜Ó$Ð$r<  ©rÆ  r  r9  r  rÈ  rÿ  c          	      óR   — t        j                  | ||||||¬«      }t        ||«      S )Nr  )r`  r  rH   )	rp  r§  rÆ  r  r9  r  rÈ  rÿ  r  s	            r:  r  r  î  s8   € ô 	×ÑØ	ØØØØØ#Ø#ô	€Aô ��:ÓÐr<  c          
      ó‚   — t        j                  | |xs | j                  t         j                  k(  rdnd||||||¬«      S )NFr   r  ©r`  r  rÆ  r‡  ©rp  rÆ  r  r9  r  rÈ  rÿ  s          r:  r,  r,    sC   € ô �?‰?Ø	ØÒ"˜1Ÿ7™7¤u§z¡zÒ1‰°qØØØØØ#Ø#ô	ð 	r<  c          
      ó‚   — t        j                  | |xs | j                  t         j                  k(  rdnd||||||¬«      S )NTrU  r  r  r  s          r:  r'  r'    sC   € ô �?‰?Ø	ØÒ!˜!Ÿ'™'¤e§j¡jÒ0‰°aØØØØØ#Ø#ô	ð 	r<  c                 óà   — t        j                  |«       t        j                  |«      }t        j                  | «      } t        j                  |«      }t        j                  |dd| ||¬«      S )Nr  ru  )r½   rÀ   rÆ  r9  rÈ  )r‚  r½  r]  Údtype_or_defaultr¾  r·  rd   )rÆ  r9  r  rÈ  r  rY  rô  s          r:  r(  r(  5  se   € ô 
×Ñ˜:Ô&ä×-Ñ-¨eÓ4€Fä×"Ñ" 5Ó)€EÜ×$Ñ$ VÓ,€Fä�<‰<ØØØØØØ#ôð r<  c                óü   — t        j                  |«       t        j                  |«       |�|nt        j                  t	        | «      «      }|�|nt        j                  d«      }t        j                  | ||¬«      S )Nr}  rk  )	r‚  r¼  r½  rX  r7  r`  r9  r·  r)  )rp  rÆ  r  r9  r  s        r:  r)  r)  P  se   € ô 
×Ñ�vÔÜ	×Ñ˜:Ô&ØÐ&‰E¬E×,?Ñ,?ÄÀQÃÓ,H€EØÐ)‰V¬u¯|©|¸EÓ/B€FÜ×Ñ˜q¨°fÔ=Ð=r<  ÚlowÚhighc                ó¶  — t        j                  | «       t        |t        «      st	        dt        |«      › �«      ‚t        |t        «      st	        dt        |«      › �«      ‚t        |«      }t        |«      }t        |t        j                  «      st	        dt        |«      › �«      ‚t        j                  |«      }t        j                  | |||||¬«      S )Nzlow must be Number, got zhigh must be Number, got rÕ  )r!  r"  rÆ  r9  r:  )r‚  ró  r@  r!   rÚ  r7  r   r`  rÆ  Úcanonicalize_devicer·  Ú_uniform_helper)rY  r!  r"  r:  rÆ  r9  s         r:  r%  r%  d  s»   € ô 
×Ñ˜Ôä�cœ6Ô"ÜÐ7¼¸S»	°{ÐCÓDÐDÜ�dœFÔ#ÜÐ8¼¸d»¸ÐEÓFÐFÜ
�C‹.€CÜ�T‹?€Dä�eœUŸ[™[Ô)ÜÐ>¼tÀE»{¸mÐLÓMÐMÜ×&Ñ& vÓ.€Fä× Ñ Ø�3˜T¨°vÀfôð r<  r‰  c                 óú  ‡‡— t        j                  | j                  «      Št        |t        «      rt        |«      }nÍ|j                  Št        j                  ‰dk(  ˆfd„«       | j                  j
                  d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
 dimensionrR  )Ú
value_ndims   €r:  rT  zmasked_fill.<locals>.<lambda>‹  s   ø€ ÐVÐWaÐVbÐblÐm€ r<  ÚcudaÚxpuÚmpsr5  r}  c                   ó   — y)Nz,Expected `value` to be on same device as `a`rR  rR  r<  r:  rT  zmasked_fill.<locals>.<lambda>•  r|  r<  c                  ó   •— d‰ › d�S )Nzcould not convert to type z without overflowrR  )rÛ  s   €r:  rT  zmasked_fill.<locals>.<lambda>   s   ø€ Ð0°°Ð=NÐO€ r<  )r‚  r   rÆ  r@  r!   r7  r3  r`  rk  r9  Ú_CÚ_get_privateuse1_backend_namer»  r    r+   r²   rÙ   )rp  r‰  rÕ  Ú
value_typeÚis_cpu_scalarrÞ  rÛ  r(  s         @@r:  r°   r°     s/  ù€ ô ×%Ñ% a§g¡gÓ.€KÜ�%œÔ Ü˜%“[‰
ð —Z‘Zˆ
Ü�‰Ø˜!‰OÛmô	
ð �H‰H�M‰MØ˜˜u¤e§h¡h×&LÑ&LÓ&NÐPUÐVðWò +à—‘×!Ñ! UÑ*ð 	ô
 	�‰ØÒ5˜UŸ\™\¨Q¯X©XÑ5ÙBô	
ô ×(Ñ(¨¯©Ó5ˆ
à”WÑô
 	�‰Ü×'Ñ'¨
°KÓ@ÛOô	
ô $ E¨1¯7©7Ó3€EÜ�‰�D˜% Ó#€Að �<‰<‹>Ðr<  c                 óV   — t        j                  | ||«      }| j                  |«       | S rK  )r`  r°   Úcopy_)rp  r‰  rÕ  rq  s       r:  r±   r±   ®  s(   € ô 	×Ñ˜!˜T 5Ó)€AØ‡G�GˆA„JØ€Hr<  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µ   )rp  rq  r¡  r¢  r«  s        r:  r-  r-  ¸  sH   € ô Ð+¨q°A¸DÀtÕLäÜ�	‰	”%—-‘-  1¨4°dÀiÔPÓQ×VÑVÓXóð r<  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)
r‚  rý  Úcheck_same_dtyper3  r}  rY  r  rµ   r·   r„   )rp  rq  rO  r~  s       r:  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“ÓÐr<  ræ  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Úfror6  ræ  )r@  r   rX  r„  re  rj  r3  r`  rX  Úmatrix_normrY  )rÃ  rÞ  rû  rþ  rÆ  s        r:  rc   rc   Ü  s¡   € ð 	
ˆUŠ
˜˜¤z°#´sÔ';¼sÀ3»xÈ1º}Ø	
ˆØˆÜ�#”sÔØˆeˆÜ�!”SÔð ˆ;Üœ˜eŸj™jÓ)Ó*ˆCÜ�|‰|×'Ñ'¨¨q°#°wÀeÐ'ÓLÐLä�|‰|×'Ñ'¨¨q°#°wÀeÐ'ÓLÐLr<  c                 ó¢   ‡ — t        j                  ‰ j                  dk(  ˆ fd„«       t        j                  t        j                  ‰ d«      «      S )Nr6  c                  ó"   •— d‰ j                   › �S )Nz+expected a matrix, but got tensor with dim rŒ  r  s   €r:  rT  ztrace.<locals>.<lambda>ü  s   ø€ Ð=¸d¿i¹i¸[ÐI€ r<  r   )r`  rk  r3  rÂ   rÛ   r  s   `r:  rw   rw   ÷  s;   ø€ ô 
‡L�LØ�	‰	�Q‰ÛIôô �9‰9”U—Z‘Z  aÓ(Ó)Ð)r<  c                 óT   ‡ — dt         t        z  dt         t        z  dt         fˆ fd„}|S )Nrp  rq  rw  c                 ó   •—  ‰|| «      S rK  rR  )rp  rq  Úbase_ops     €r:  Úropz_make_r_binary_op.<locals>.rop  s   ø€ ñ �q˜!‹}Ðr<  )r(   r"   )r>  r?  s   ` r:  Ú_make_r_binary_opr@    s3   ø€ ðÜœJÑ&ðäœJÑ&ðô 
õð €Jr<  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 )Nr6  c                   ó   — y)Nz2triu: input tensor must have at least 2 dimensionsrR  rR  r<  r:  rT  ztriu.<locals>.<lambda>  r|  r<  rŒ  r8  rZ  ©
r`  rk  r3  rY  r  r9  r  r‚  rS  rÙ   ©rp  rÜ   Úhr4  r‰  s        r:  r  r    óš   € ô 
‡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Ð2r<  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 )Nr6  c                   ó   — y)Nz2tril: input tensor must have at least 2 dimensionsrR  rR  r<  r:  rT  ztril.<locals>.<lambda>%  r|  r<  rŒ  r8  rZ  rC  rD  s        r:  r  r  !  rF  r<  rb  rc  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   rU  r6  )r  r—  rh  )
rb  rc  r„  Úm_first_rowÚ
m_last_rowÚ	n_row_allÚn_row_trapezoidÚtrapezoid_sizeÚdiff_rowÚrectangle_sizes
             r:  Ú_get_tril_sizesrR  7  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Ð6r<  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 rR  )rb  s   €r:  rT  z_trilu_checks.<locals>.<lambda>Q  ó   ø€ Ð%CÀCÀ5Ð#I€ r<  c                  ó   •— d‰ › �S )Nzcol must be non-negative, got rR  )rc  s   €r:  rT  z_trilu_checks.<locals>.<lambda>R  rU  r<  c                  ó   •— d‰› d‰ › d�S )NrX  z" not implemented for 'ú'rR  )rÆ  r¨  s   €€r:  rT  z_trilu_checks.<locals>.<lambda>U  s   ø€ �"�T�FÐ2°5°'¸Ð;€ r<  )r`  rk  rµ  rQ  )r¨  rb  rc  rÆ  r  r  s   ````  r:  Ú_trilu_checksrY  I  sO   û€ ô 
‡L�L�˜‘ÓIÔJÜ	‡L�L�˜‘ÓIÔJÜ	‡L�LØ”%—+‘+œuŸ{™{Ð+Ð+Ü;õr<  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  r9  r  ræ  rv  r6  rU  )rY  rR  rh  r   r`  r  rz  rJ   rs   r+   rú   rÔ   )rb  rc  r„  rÆ  r  r9  r  rO  rQ  rK  Ú
row_offsetÚ	arange_kwÚxs1rq  Ú	row_inds1Ú	col_inds1Úxs2Ú	row_inds2Ú	col_inds2s                      r:  r  r  Z  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óð r<  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   rJ  rU  )rh  r  rR  )
rb  rc  r„  rK  rQ  Útrapezoid_size_trilÚrectangle_size_trilr­  Ú	triu_sizerO  s
             r:  Ú_get_triu_sizesrh  …  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Ð6r<  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      à¿r6  rU  rv  )rY  rh  rh  r   r`  r  rz  rJ   rs   r+   rú   rÔ   )rb  rc  r„  rÆ  r  r9  r  rO  rQ  rK  Ú
col_offsetr]  ra  rb  rc  r^  rq  r_  r`  s                      r:  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óð r<  )Ú	out_int32rd  Ú
boundariesrk  rd  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 )NrU  c                  ó,   •— d‰ j                  «       › d�S )Nz2boundaries tensor must be 1 dimension but got dim(r  r$  )rl  s   €r:  rT  zbucketize.<locals>.<lambda>Ì  s   ø€ ÐDÀZÇ^Á^ÓEUÐDVÐVWÐX€ r<  rZ  r   rR  r6  ræ  )r`  rk  rû  r@  rS  rÏ  rµ  rQ  rY  r,  r+  r9  r²   r'  r‡  r—  r*  r^   rj  r¶   )rp  rl  rk  rd  Ú	out_dtypeÚn_boundariesr¸  r©  ÚmidÚmid_valÚcond_midÚcond_updateÚnitersr­  s    `            r:  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Ó$Ð$r<  c                 óÒ  ‡ ‡— |�t        d«      ‚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 )Nú"generator is not supported in refsc                  ó"   •— d‰ j                   › �S )NzwCauchy distribution is a continuous probability distribution.         dtype must be a floating point but you specified ræ  r  s   €r:  rT  zcauchy.<locals>.<lambda>
  ó   ø€ ð :Ø:>¿*¹*¸ðG€ r<  r  c                  ó   •— d‰ › �S )Nz-cauchy_ expects sigma > 0.0, but found sigma=rR  )Úsigmas   €r:  rT  zcauchy.<locals>.<lambda>  s   ø€ Ð?À¸wÐG€ r<  rv  )rÚ  r`  rk  r‚  rÅ  rÆ  r  r  ru   r*  r+  Ú	rand_like)r  Úmedianr{  Ú	generators   ` ` r:  r  r  ý  s¼   ù€ ð ÐÜÐAÓBÐBÜ	‡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ÐNr<  c                 óF  ‡ ‡— |�t        d«      ‚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 )Nrw  c                  ó"   •— d‰ j                   › �S )Nz|Exponential distribution is a continuous probability distribution.         dtype must be a floating point but you specified ræ  r  s   €r:  rT  zexponential.<locals>.<lambda>!  ry  r<  r  c                  ó   •— d‰ › �S )Nz4exponential_ expects lambda > 0.0, but found lambda=rR  )Úrates   €r:  rT  zexponential.<locals>.<lambda>&  s   ø€ ÐFÀtÀfÐM€ r<  r6  ru  rZ  )rÚ  r`  rk  r‚  rÅ  rÆ  r  r  r|  r  r  r²   r\   )r  r‚  r~  Úuniform_valÚepsilonrì  Úlog_uniforms   ``     r:  rF   rF     sõ   ù€ ð ÐÜÐAÓBÐBÜ	‡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�{Ñ"Ð"r<  c                 óÄ  ‡ ‡— |�t        d«      ‚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 )Nrw  c                  ó"   •— d‰ j                   › �S )Nzgeometric not implemented for ræ  r  s   €r:  rT  zgeometric.<locals>.<lambda>C  s   ø€ Ð0°·±°Ð=€ r<  r   rU  c                  ó   •— d‰ › �S )Nz0geometric_ expects p to be in (0, 1), but got p=rR  )rÞ  s   €r:  rT  zgeometric.<locals>.<lambda>G  s   ø€ ÐBÀ1À#ÐF€ r<  )rÚ  r`  rk  r‚  rÅ  rÆ  r  rJ   r]   r|  r*  )r  rÞ  r~  s   `` r:  rL   rL   6  s¯   ù€ ð ÐÜÐAÓBÐBä	‡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ÐPr<  c                 óª  ‡ ‡— |�t        d«      ‚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 )Nrw  c                  ó"   •— d‰ j                   › �S )Nzlog_normal not implemented for ræ  r  s   €r:  rT  zlog_normal.<locals>.<lambda>Y  s   ø€ Ð1°$·*±*°Ð>€ r<  r   c                  ó   •— d‰ › �S )Nz-log_normal_ expects std > 0.0, but found std=rR  ©rÀ   s   €r:  rT  zlog_normal.<locals>.<lambda>]  s   ø€ Ð?À¸uÐE€ r<  )
rÚ  r`  rk  r‚  rÅ  rÆ  r  r  rD   Ú
randn_like©r  r½   rÀ   r~  s   ` ` r:  r`   r`   L  s­   ù€ ð ÐÜÐAÓBÐBÜ	‡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Ð9r<  )r½   rÀ   )r~  rÆ  r  r9  r  c          	      óÊ  ‡— |�!|t         j                  k7  rt        d|› �«      ‚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 )Nz*layout must be None or torch.strided, got r   c                  ó   •— d‰ › �S )Nz)normal expects std >= 0.0, but found std rR  rŒ  s   €r:  rT  znormal.<locals>.<lambda>}  s   ø€ Ð IÈ#ÈÐO€ r<  c              3   óB   K  — | ]  }t        |t        «      sŒ|–— Œ y ­wrK  ré  rv  s     r:  rP  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 definedrR  rR  r<  r:  rT  znormal.<locals>.<lambda>„  r|  r<  c                   ó   — y)Nz.Cannot pass layout, or pin_memory without sizerR  rR  r<  r:  rT  znormal.<locals>.<lambda>ˆ  r|  r<  c              3   ó4   K  — | ]  }|j                   –— Œ y ­wrK  r-  rv  s     r:  rP  znormal.<locals>.<genexpr>‹  s   è ø€ Ò"<¨q 1§7¥7Ñ"<ùrÉ  c                   ó   — y)Nz>normal expects mean and std to be scalars when size is definedrR  rR  r<  r:  rT  znormal.<locals>.<lambda>‘  r|  r<  r}  r  ru  F)r½   rÀ   rÆ  r9  rÈ  r~  )r`  r  rÚ  r@  r'   rk  re  rX  rr  rÆ  r9  r®  r·  rd   )
r½   rÀ   r>  r~  rÆ  r  r9  r  r¶  Únormal_sampless
    `        r:  rd   rd   d  s[  ø€ ð( Ð˜f¬¯©Ò5ÜÐIÈ&ÈÐRÓSÐSä�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ð �Ñ $Ñ&Ð&r<  )r~  c                ó6   — t        ||| j                  | |¬«      S )N)r¬  r~  )rd   rY  rŽ  s       r:  Únormal_r˜  ¢  s   € ä�$˜˜TŸZ™Z¨T¸YÔGÐGr<  c                 óz   — t        j                  t        j                  | j                  «       d„ «       d}| |z  S )Nc                   ó   — y)Nz-rad2deg is not supported for complex tensors.rR  rR  r<  r:  rT  zrad2deg.<locals>.<lambda>«  r|  r<  gøÁcÜ¥L@©r`  rk  r‚  rÅ  rÆ  )r  ÚM_180_PIs     r:  rh   rh   §  s8   € ä	‡L�LÜ×"Ñ" 4§:¡:Ó.Ð.Ù?ôð C€HØ�(‰?Ðr<  c                 óz   — t        j                  t        j                  | j                  «       d„ «       d}| |z  S )Nc                   ó   — y)Nz-deg2rad is not supported for complex tensors.rR  rR  r<  r:  rT  zdeg2rad.<locals>.<lambda>µ  r|  r<  g9�R¢Fß‘?r›  )r  ÚM_PI_180s     r:  r?   r?   ±  s8   € ä	‡L�LÜ×"Ñ" 4§:¡:Ó.Ð.Ù?ôð E€HØ�(‰?Ðr<  c                 ó*   — | dk7  j                  |«      S r#  )rÂ   )r  rû  s     r:  r>   r>   »  s   € ð �A‰I�?‰?˜3ÓÐr<  c                 ó`  ‡ ‡— t        j                  ‰ j                  «       dk(  xr ‰j                  «       dk(  ˆˆ fd„«       t        j                  ‰ j                  ‰j                  k(  ˆˆ fd„«       ˆˆ fd„}t        j                  ‰ j	                  «       ‰j	                  «       k(  |«       y )NrU  c                  óN   •— d‰j                  «       › d‰ j                  «       › d�S )Nz1D tensors expected, but got zD and z	D tensorsr$  ©r  r  s   €€r:  rT  z_dot_check.<locals>.<lambda>Ä  s#   ø€ Ð/°·±³
¨|¸6À%Ç)Á)Ã+ÀÈiÐX€ r<  c                  ó<   •— d‰j                   › d‰ j                   › �S )Nz:dot : expected both vectors to have same dtype, but found r¥  ræ  r£  s   €€r:  rT  z_dot_check.<locals>.<lambda>É  s    ø€ ÐLØ�:‰:ˆ,�e˜EŸK™K˜=ð*€ r<  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  r£  s   €€r:  Únumel_errorz_dot_check.<locals>.numel_errorÍ  sL   ø€ à9¸$¿*¹*»,¸À{ÐSX×S^ÑS^ÓS`ÐRað b0Ø04·
±
³¨~¸UÀ5Ç;Á;Ã=À/ÐQgðið	
r<  )r`  rk  rû  rÆ  r  )r  r  r¦  s   `` r:  Ú
_dot_checkr§  Á  sx   ù€ Ü	‡L�LØ�‰‹
�a‰Ò,˜EŸI™I›K¨1Ñ,ÜXôô
 
‡L�LØ�
‰
�e—k‘kÑ!ô	*ôõ
ô 
‡L�L�—‘“ §¡£Ñ.°Õ<r<  c                 ó.   ‡ — t        ‰ «      ˆ fd„«       }|S )Nc                 ó.   •— t        | |«        ‰| |«      S rK  )r§  )r  r  r¡  s     €r:  Úwrapperz#_dot_check_wrapper.<locals>.wrapper×  s   ø€ ä�4˜ÔÙ�$˜‹Ðr<  )r
   )r¡  rª  s   ` r:  Ú_dot_check_wrapperr«  Ö  s    ø€ Ü
ˆ2ƒYóó ðð €Nr<  rß  c                 ó¸  — | j                  «       r¸| j                  «       rt|j                  «       r@t        j                  | j	                  «       |j	                  «       «      j	                  «       S t        j
                  | j	                  «       |«      S |j                  «       r$t        j
                  |j	                  «       | «      S | |z  j                  «       S rK  )r0  Úis_conjr`  r¾   r×   r¿   rÂ   rß  s     r:  r¾   r¾   ß  s�   € ð ‡�ÔØ�<‰<Œ>Ø�}‰}ŒÜ—y‘y §¡£¨e¯j©j«lÓ;×@Ñ@ÓBÐBä—z‘z $§)¡)£+¨uÓ5Ð5Ø�]‰]Œ_Ü—:‘:˜eŸj™j›l¨DÓ1Ð1à�5‰L×ÑÓÐr<  c                 ó   — | j                  «       st        j                  | |«      S | j                  «       rf|j                  «       r2t        j                  |j                  «       | j                  «       «      S t        j                  | j                  «       |«      S |j                  «       r2t        j                  | |j                  «       «      j                  «       S | j                  «       |z  j                  «       S rK  )r0  r`  r¾   r­  r¿   r×   r;   rÂ   rß  s     r:  r¿   r¿   ó  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ð ×ÑÓ  5Ñ(×-Ñ-Ó/Ð/r<  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 )NrU  rZ  r   r8  )r‚  rÍ  r3  rY  r`  r  r9  r
  r  rá   r²   )rO  r°  rû  r  Ú
mask_shaper‰  s         r:  Úselect_scatterr±  
  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 !Ó$Ð$r<  )rC  c                 óV   — t        | t        j                  t        j                  f«      S rK  )r@  r`  ÚTypedStorageÚUntypedStorage)Úobjs    r:  Ú
_isStorager¶  ‰  s    € Ü�cœE×.Ñ.´×0DÑ0DÐEÓFÐFr<  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 'rX  r   z.could not determine the shape of object type ')r¶  r@  rM  re  rX  Úitemsizer²  rl  r7  rš  rÌ  )ÚseqÚscalar_typeÚMAX_DIMSÚ
is_storagerC  rû  Úhandles          r:  Ú_compute_sizesr¿  Ž  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 'rX  r   zCould not infer dtype of )r@  r   r`  r®  r   r‡  rQ  r   r»  rê  ÚcfloatÚdoubleÚcdoubleÚhalfÚchalfrg  rS  rÆ  r„  Ú	TypeErrorr7  rš  rM  re  rX  rj  Ú_infer_scalar_typeÚpromote_types)rµ  Údefault_dtypeÚ
scalarTyperû  r/  Úcur_itemÚitem_scalarTypes          r:  rÇ  rÇ  ¨  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ÐHr<  rÊ  rµ  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 |}|st        j                  d«      S t        j                  |D �cg c]  }t        | |«      ‘Œ c}«      S c c}w )NrU  r}  T)rÆ  r9  r  rR  ræ  r   )r@  rS  r  Údetachr¶   r
  r!   r`  r)  r  rú   Ú_recursive_build)rÊ  rµ  rº  rµ   s       r:  rÏ  rÏ  Ü  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ñ ô 	�‰�A‹ðô �[‰[ÈÖMÀÔ*¨:°tÕ<ÒMÓNðùò Ns   ÃC4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¬«      }|r{t        j                  |
«      j                  dk(  rYt        j                  |j                  |j!                  «       |j
                  |j                  d	¬
«      }|j#                  |«       |}|S )Nc                   ó   — y)Nz,Can't pin tensor constructed from a variablerR  rR  r<  r:  rT  z)_internal_new_from_data.<locals>.<lambda>  r|  r<  F)r9  rÆ  r	  r  Ú__cuda_array_interface__r9  Úmeta)r	  r  r}  T)rÆ  r9  r  )r@  r`  rS  rk  rÎ  rÆ  r9  r¶   ÚhasattrÚNotImplementedrÇ  r¶  r7  rÏ  r  rY  r:  r3  )Úoptionsr»  Ú
device_optÚdataÚcopy_variablesÚ
copy_numpyÚtype_inferencer  rÅ   Úinferred_scalar_typer9  rÏ  Úpinned_tensors                r:  Ú_internal_new_from_datarÞ  ø  sk  € ô �$œŸ™Ô%Ü�‰Øˆ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ˆÙœ%Ÿ,™, vÓ.×3Ñ3°uÒ<Ü!×/Ñ/Ø—‘Ø—‘“Ø—l‘lØ—}‘}ØôˆMð ×Ñ Ô'Ø"ˆFð €Mr<  )rÆ  r9  r  rÈ  c          
      ó  — t        | t        j                  «      rt        j                  dt
        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.detach().clone() or sourceTensor.detach().clone().requires_grad_(True), rather than torch.tensor(sourceTensor)r6  r™  r9  r}  T)rÙ  rÚ  rÛ  r  )
r@  r`  rS  r   r¡  ÚUserWarningrÞ  r®  Údetach_rÁ  )rØ  rÆ  r9  r  rÈ  rÛ  Ú
new_tensors          r:  rÏ  rÏ  ;  s‘   € ä�$œŸ™Ô%Ü�‰ðläØõ		
ð ˜d�]€NÜ(ð 
�5ÐØÐ"‰¬×(?Ñ(?Ó(AØØØØØ%Øô€Jð ×ÑÔÙØ×!Ñ! -Ô0ØÐr<  rK  )F)r  NN)gñhãˆµøä>g:Œ0âŽyE>Fr  )NN)NNNNNFF)FFN)NF)NNFrÊ  )r   rZ  )	NNNTÚreflectFNNN)NNNTFNNF)rR  )rU  rç  )r   r   rU  )r   rŒ  rZ  )r   NrU  )r  )r  ru  )r8  NF)r   rU  Nr[  )rU  r6  N(  r?  rž  r£  rz  r*  r|  r   Úcollections.abcr   r   r   Úenumr   Ú	functoolsr   r   r	   r
   Útypingr   r   r   r   r   r`  Útorch._primsÚ_primsr·  Útorch._prims_commonÚ_prims_commonr‚  Útorch.utils._pytreeÚ_pytreerA  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*   Útorch._prims_common.wrappersr+   r,   r-   r.   r/   r0   Ú$torch.testing._internal.common_dtyper1   r±  rS  r.  ÚDispatchKeyÚ_opsrØ  r°  r;  rD  rr  r‰  Útorch._decomprŠ  Úobjectr˜  r�  r©  rµ  rp  r2   ÚINT_TO_FLOATr3   r4   r6   r5   r7   r8   ÚDEFAULTr9   r:   r0  r;   r<   r=   r@   rA   rB   rC   rD   rE   rG   Ú	NO_OPMATHrH   rI   r*  rJ   rK   r‘   ÚALWAYS_BOOLrS   rT   rU   rV   rW   ÚspecialÚmultigammalnrb   rX   rY   r[   r\   r]   r^   r_   r—  rÆ  ra   r›   r‡  re   r  rf   rg   r£   ri   rj   rø   rk   rl   rm   rn   ro   rp   rq   rs   ÚBOOL_TO_LONGrt   ru   rv   rx   r  rV  rY  ry   rz   r{   r|   r}   r~   r   r‚   rƒ   r„  r„   r¢   r…   r†   r�  r€  r‡   rˆ   r‰   r•  re  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²   rm  rö  r  Ú
ScalarSelfÚScalarOtherÚScalarÚself_outr³   r  rÿ  r´   rµ   r  r  r  Úregisterr9  rý  r  r  r  r  r!  r¶   r:  rI  r·   rº   rÂ   Údim_IntListÚIntList_outrM  rÃ   rÄ   r¹   r¸   rk  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ï   Ú_subclassesÚ
fake_implsÚregister_op_implrL  rð   r1  r2  r`  r3  rµ  ró   rÔ  rÜ  rô   rõ   rö   r÷   rí  rú   rr   ré   r  r  r  rN   rO   rQ   rR   r
  rM   rP   rü   rE  rù   r  rè   r  rÛ   r¬  rÞ   rÜ   rÚ   rÐ   re  rß   rþ   r   rÈ   r  rû   r  r  rv  r»   r¼   r  r
  r  rò   r  r  r  r  r!  r"  r+  r%  r&  r$  r#  rª  r  r  Ú
start_stepÚ	start_outrZ   r  r   rê   rë   r  r
  r  r  r  r,  r'  r(  r)  r%  r°   r±   r-  r.  rc   rw   r@  r§   r¨   r¤   r  r  rR  rY  r  r%  rh  r  r/  r  rF   rL   r`   rd   r˜  rh   r?   r>   r§  r«  r¾   r¿   r±  Ú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ÿ   r  r  r	  r  r¶  r¿  rÇ  rÏ  rÞ  rÏ  Útorch._refs._conversionsÚtorch._refs.fftÚtorch._refs.linalgÚtorch._refs.nn.functionalÚtorch._refs.specialrR  r<  r:  ú<module>rn     sÏP  ðó Û Û Û Û Û Û ß 8Ñ 8Ý ß <Ó <ß 7Õ 7ã Ý Ý #ß $Ð $ß 6Ó 6÷÷ ÷ ÷ ÷ ÷ ñ ÷2÷ õ Iòl€ð\	 
�‰€Ø�h‰h×"Ñ"€Ø‡z�z‡~�~×Ñ€ò2òòRðj 9=ô 8Cõx 1ñ “€ð ØØòð óòDò ñ2 #Ø#×4Ñ4Øôñó	ðñ #Ð#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ð ñ #Ø#×+Ñ+Øôñó	ðñ ˜Ÿ™Ó(ð/�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ð °>ó ñ ˜Ÿ	™	Ó"Ùƒð#�ð # >ò #ó ó #ð#ñ #Ø#×+Ñ+Øôñó	ðñ #Ø#×+Ñ+Øôð(ˆNð (˜~ò (ó	ð(ð
ˆNð ˜~ó ñ #Ø#×/Ñ/Øôð*�ð * >ò *ó	ð*ñ #Ð#B×#NÑ#NÓOð1ˆ^ð 1 ò 1ó Pð1ñ #Ø#×/Ñ/Øôð1�ð 1 >ò 1ó	ð1ñ #Ø#×/Ñ/Øôð1�ð 1 >ò 1ó	ð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ð �;Š;˜ÑðXð ò	Xó ðXñ ˜ŸšÓ'ÙƒÙ#Ø!Ø7×DÑDôð
 :?ò,Ø
ð,Ø'ð,Ø26ð,àò,ó	ó ó (ð,ñ" ˜ŸšÓ(Ùƒð !Ø $Ø $ò	Øðà	�dÑ	ðð ˜Ñðð ˜Ñð	ð
 òó ó )ðð6�ó ñ #Ø#×+Ñ+¸	ôñóðð�ð  >ó ðˆ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×#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ðñ #Ø#×+Ñ+Øôñó	ðð
!˜.ð !¨^ó !ðL Ø	ØØ#Ø#Ø %Ø"&ñ6ð ó6ðr(Ø˜
Ñ"ð(Ø'5¸
Ñ'Bð(à
‡[‚[ó(ñ ˜ŸšÓ!ÙƒÙ#Ø"Ø7×?Ñ?ôð  $ò	8Ø˜
Ñ"ð8à˜
Ñ"ð8ð ˜Ñò	8ó	ó ó "ð8ñ: $Ø7×DÑDØ$Ø$ôñ
óð
ñ $Ø7×?Ñ?ôð#�>ð # nð #¸ò #óð#ñ $Ø7×?Ñ?ôð"˜.ð "¨^ð "Àò "óð"ñ $Ø7×?Ñ?ôð"�.ð " ^ð "¸ò "óð"ñ $Ø7×?Ñ?ôð.˜>ð .¨nð .Àò .óð.ñ $Ø7×?Ñ?ôð#�>ð # nð #¸ò #óð#ñ $Ø7×DÑDØ$ôð2� Ñ+ð 2°ÀÑ0Kò 2ó	ð2ñ ˜ŸšÓ!Ùƒð
 !%ò	Ø˜
Ñ"ðà˜
Ñ"ðð ˜‘:ò	ó ó "ðñ( $Ø7×CÑCØ$ôðˆ.ð ˜^ð °ò ó	ðñ $Ø7×DÒDôðØ˜
Ñ"ðà˜
Ñ"ðð òóðñ: ƒðØ˜
Ñ"ðà˜
Ñ"ðð òó ðñt $Ø×=Ñ=×EÑEØ $Ø"'ôð
O�N ZÑ/ð O°NÀZÑ4Oò Oóð
Oð>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ð !°~ò !óð!ñ
 ˜Ÿ	š	Ó"Ùƒð ò	(Ø˜
Ñ"ð	(à˜
Ñ"ð	(ð ò	(ó ó #ð	(ñ ˜ŸšÓ!ÙƒÙ#Ø"Ø7×?Ñ?ôð ò	$8Ø˜
Ñ"ð$8à˜
Ñ"ð$8ð ò	$8ó	ó ó "ð$8ñN $Ø7×DÑDØ	ØØ $ô	ð�>ð  nð ¸ò óðñ ˜Ÿ
š
Ó#ÙƒÙ#Ø"Ø7×DÑDôð:ˆ^˜jÑ(ð :¨^¸jÑ-Hò :ó	ó ó $ð:ñ. $Ø×=Ñ=×EÑEØØ $ôð
"�N ZÑ/ð "°NÀZÑ4Oò "óð
"ñ ˜ŸšÓ%ÙƒÙ#Ø6Ø7×DÑDôð ò,Ø
ð,àð,ð ð,ð
 ð,ð ò,ó	ó ó &ð,ñ* ˜ŸšÓ%ÙƒÙ#Ø6Ø7×?Ñ?ôð ò,Ø
ð,àð,ð ð,ð
 ð,ð ò,ó	ó ó &ð,ñ* ˜Ÿ
š
Ó#ÙƒÙ#Ø+Ø7×?Ñ?ôð *.Ø)-òØðà	 $Ñ	&ðð 
  $Ñ	&ðð ò	ó	ó ó $ðñ6 ˜ŸšÓ'Ùƒð *.ò&Ø
ð&à	 $Ñ	&ð&ð ò&ó ó (ð&ñ ˜ŸšÓ'Ùƒð *.ò&Ø
ð&à	 $Ñ	&ð&ð ò&ó ó (ð&ñ ˜Ÿ
š
×*Ò*Ó+ð.˜ð . E¨&°#¨+Ñ$6ò .ó ,ð.ñ ˜Ÿ
š
ŸšÓ(Ù˜Ÿ
š
×-Ò-Ó.Ù˜Ÿ
š
×.Ò.Ó/Ù˜Ÿ
š
×)Ò)Ó*Ù˜Ÿ
š
×+Ò+Ó,Ù˜ÔÙ#Ø"Ø7×AÑAôð (,Ø'+ò#Ø
ð#à Ñ$ð#ð  Ñ$ò#ó	ó ó -ó +ó 0ó /ó )ð#ñ. ˜Ÿ
š
Ó#Ùƒà?D×?TÒ?TòØðØ).×)<Ò)<ðàòó ó $ðð 9=ò ˆvð ˜&ó ñ ˜Ÿ	š	Ó"ð&ˆNð &˜zò &ó #ð&ð %)Ø $ØØ"&Ø04Ø#ØòØðà˜TÑ!ðð �;Š;˜Ñðð �‰+ð	ð
 �LŠL˜4Ñðð ×&Ò&¨Ñ-ðð �t‘ðð ðð 
óð2 ñó ðð ×Òð ØØ04òØ�LŠLðà�;Š;ðð ðð ð	ð
 ×&Ò&¨Ñ-ðð 
ˆ#ˆsˆ(�^òó ðð" ×Òð ØØ04òØðà�;Š;ðð ðð ð	ð
 ×&Ò&¨Ñ-ðð 
ˆ#ˆsˆ(�^òó ðð" ×Òð ØØ04ò	Ø�;Š;ðàðð ðð ×&Ò&¨Ñ-ð	ð
 
ˆ#ˆsˆ(�^òó ðð ×Òð ØØ04ò	Øðàðð ðð ×&Ò&¨Ñ-ð	ð
 
ˆ#ˆsˆ(�^òó ðð." &ð "°Tó "ð0 ˆ.ð  ¨nó  ðX Ø"Ø ØØ $ØòCØðCà
ðCð ð	Cð
 ðCð �T‰/ðCð ðCð �;Š;˜ÑðCð 
�$‰ðCð 2ðCð óCôLñ< ˜ŸšÓ!Ùƒð  Øò
Øð
à	�D‰ð
ð ð
ð ò	
ó ó "ð
ñ ˜ŸšÓ!Ùƒð  ØòØðà	�D‰ðð ðð ò	ó ó "ðñ$ ˜Ÿš×-Ò-¨t¯xªx×/CÒ/CÐDÓEð #'Øñð
 !%ØòØðà	ˆt‰�d˜3‘iÑ	ðð ðð
 �;Š;˜Ñðð 
�$‰ðð òó Fðð:CØðCð óCñ, ˜Ÿ	š	Ó"ð #'Øñð
 ØòØðà	ˆt‰�d˜3‘iÑ	ðð ðð 
�$‰ðð òó #ðñ: ˜Ÿ	š	Ó"ð  Øñð
 òØðà	�D‰ðð ðð
 
�$‰ðð òó #ðñ. ˜Ÿ	š	Ó"ð  Øñð
 òØðà	�D‰ðð ðð
 
�$‰ðð òó #ðõ.ñ ˜ŸšÓ!Ùƒð  Ø Øñ	ð %)òØðà	�D‰ðð �T‰kðð ð	ð ˜TÑ!ðð òó ó "ññ6 ˜ŸšÓ!Ùƒð #'Ø Øñ	1ð %)ò1Øð1à	ˆt‰�d˜3‘iÑ	ð1ð �T‰kð1ð ð	1ð ˜TÑ!ð1ð ò1ó ó "ñ1ñ, ˜Ÿ	š	Ó"ð  Øñ+ð
 Øò+Øð+à	�D‰ð+ð ð+ð ò+ó #ñ+ñ\ ˜ŸšÓ&ÙˆV�VÓð  ñð !ØØ$(òØðà	�D‰ðð �T‰kð	ð
 ðð ˜TÑ!òó ó 'ññ2 ˜ŸšÓ&ÙˆV�VÓð  Ø Øñ	ð %)òØðà	�D‰ðð �T‰kðð ð	ð ˜TÑ!òó ó 'ññ ˜Ÿ	š	Ó"ÙƒÙ#Ø0Ø7×?Ñ?ôð Øò7AØ
ð7Aà
ð7Að ð7Að
 ð7Að ð7Að ò7Aó	ó ó #ñ7Aðv+Ø	˜( >Ñ2Ñ	2ð+Ø;Ið+à�e˜N¨CÐ/Ñ0Ñ0ô+ð  Øð Ø #ð Ø*8ð àô ð+Ø	˜( >Ñ2Ñ	2ð+Ø;Ið+à�e˜N¨CÐ/Ñ0Ñ0õ+ð +Ø	˜( >Ñ2Ñ	2ð+Ø;Ið+à�e˜N¨CÐ/Ñ0Ñ0õ+ð& "&ò		AØñ	Aà
ñ	Að ñ	Að ˜$‘Jð		Að
 õ	Añ ˜×/Ò/Ó0Ùƒð "&òRØñRà	ñRð ñRð ñ	Rð
 ˜$‘Jð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ôóyGÐ#ð yG¨#ð yG°nó yGó	ó ó "ñyGñz ƒñ#Ð,ð #°ó #ó ñ#ð�ð  >õ ñ ˜×,Ò,Ó-Ùƒà?@òPØñPØ $ S¡	ðPØ2<ðPàóPó ó .ñPðh 8=×7NÒ7Nò7Øð7Ø!&×!4Ò!4ð7àõ7ñ ƒñ#Ð&ð #¨>ó #ó ñ#ñ ˜ŸšÓ$Ø/4ó Fˆfñ F¨ð F¸ó Fó %ñFðT�ð ˜Fð  võ òˆ^ñ  Sð ¨sð ¸5ÀÐQTÐATÑ;Uõ ò,1ˆ~ñ 1¨#ñ 1¸Cð 1Èõ 1ñ* ˜Ÿ	š	Ó"ÙƒðˆNð Ð"2ð °~ó ó ó #ñðˆnð  õ ðˆnð  õ ðØðØñØ(+¨nÑ(<ñØFIðàõðDØñØ"ñØ).ðà
ˆ6�6˜6Ð!Ñ"õð@˜>ñ °t¸C±yð À^õ ñ ˜×.Ò.×6Ò6Ó7ðDØñDà�T‰MñDð �4‰-ñDð ñ	Dð
 ñDð ñDð ñDð 
ðDð ˆ6�6˜6Ð!Ñ"óDó 8ñDñN ˜×.Ò.Ó/ÙˆV�V™VÓ$ðLØñLàñLð �T‰MñLð �4‰-ñ	Lð
 
ðLð ˆ6�6˜6Ð!Ñ"óLó %ó 0ñLð^ ×Ò×Ò×.Ò.¨t×/EÒ/E×/MÒ/MÓNò$ó Oñ$ñ ˜ŸšÓ%ð,ˆ~ð ,¨ó ,ó &ñ,ñ ˜ŸšÓ$Ùƒð#.Øñ#.Ø,ð#.Ø36ñ#.ØAOð#.àó#.ó ó %ñ#.ðN ‡‚×Ò×Ò˜+×?Ò?Ó@ð "Ø!Ø ØØØØ Ø"&Ø#'òp?Øñp?àñp?ð �d‘
ñp?ð �d‘
ñ	p?ð
 �T‰Mñp?ð ñp?ð ñp?ð ñp?ð �T‰kñp?ð ˜4‘Kñp?ð ˜D‘[ðp?ð óp?ó Añp?ðh ‡‚×Ò×Ò˜K×AÒAÓBð "Ø!Ø ØØØ ØØòYØñYàñYð �d‘
ñYð �d‘
ñ	Yð
 �T‰MñYð ñYð ñYð �T‰kñYð �$‰JðYð óYó CñYñzØñØ",ñØ9<ñØDGñØORõñ8 ˜ŸšÓ$Ùƒð51ˆfð 51¨ó 51ó ó %ñ51ðpRØñRØ*.ðRàõRðj8?˜Nñ 8?Àð 8?Èõ 8?ð~<ˆ~ñ < yð <°^õ <ð
&�^ð &¨Nð &¸~õ &ñ ˜Ÿ	š	Ó"Ùƒò8>ˆNñ 8> Hð 8>°Hð 8>Ànó 8>ó ó #ñ8>ñv ˜Ÿ
š
Ó#Ùƒà<Bò>Øñ>Øð>Ø)9ð>àó>ó ó $ñ>ñ<
Ð!3ð 
¸õ 
ñ ˜Ÿ
š
Ó#ÙƒóGÐ%ð G¨Cð G¸ó Gó ó $ñGñ" ƒð !%òØðà	ðð �;Š;˜Ñðð ó	ó ññ* ƒñ#Ð&ð #¨>ó #ó ñ#ñ ƒñ#Ð&ð #¨>ó #ó ñ#ðS�ð S cñ S°)ð SÀõ Sñ ˜ŸšÓ$ó
ˆnð 
 3ð 
Ð/Aó 
ó %ñ
ñ" ƒð�*ð  3ñ ¨zñ À:ó ó ñð
�:ð 
 Cñ 
°
ñ 
ÀJõ 
ñ ˜ŸšÓ(Ùƒð<Øð<Øñ<Ø$.ð<Ø7AÀJÑ7Nó<ó ó )ñ<ñ ˜×(Ò(Ó)ð;Øð;Øñ;Ø$.ð;Ø7AÀJÑ7Nó;ó *ñ;ð/Øð/à	ñ/ð ð/ð ˜
Ñ"ñ	/ð õ/ñd ƒð òØðà	ñð ñð ð	ð óó ññ" ˜×)Ò)Ó*ÙƒðK�Jð K Sñ K°ó Kó ó +ñKñ" ˜Ÿš×)Ò)Ó*òˆ~ð  H¨t¡Oð ¸~ó ó +ññB ˜×-Ò-Ó.à56òØ
ñØ# C™yðØ/2ðà	ˆ&�\óó /ñðD òDFØñDFà (Ñ*ðDFð 
ðDFð ˆ>˜3ÐÑõ	DFðP(-Øñ(-Ø,4ð(-à
ˆ>˜3ÐÑõ(-ðX&+Øñ&+Ø,4ð&+à
ˆ>˜3ÐÑõ&+ñR ˜Ÿ	š	ŸšÓ&Ùƒð ò1Ø
ñ1àð1ð ó1ó ó 'ñ1ñ ˜×-Ò-Ó.Ùƒð ØØòØñà	ñð ñð ñ	ð
 ðð óó ó /ññ0 ˜ŸšÓ&ð ØØò	#Ø
ñ#àñ#ð ñ#ð ð	#ð
 ó#ó 'ñ#ñL ˜ŸšÓ(Ùƒð ØØó	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ð �;Š;˜Ñð9ð 
�$‰ð9ð õ9ñ0 ˜ŸšÓ$ð
 !%ØòTØðTà	ðTð �;Š;˜Ñð	Tð
 
�$‰ðTð óTó %ñTñ ˜ŸšÓ%ð
 !%ØòUØðUà	ðUð �;Š;˜Ñð	Uð
 
�$‰ðUð óUó &ñUñ ˜ŸšÓ'ð3�ð 3 cð 3¨nó 3ó (ñ3ñ ˜Ÿ	š	×)Ò)Ó*ð=ˆNñ = I°°iÑ0@Ñ$@ð =À^ó =ó +ñ=ð*#�.ð #¨ð #¸Nõ #ð
ˆ^ð  õ ñ ƒà>Bò%DØ‡|�|ñ%DØ#Ÿl™lð%DØ14°t±ð%Dà
‡\�\ó%Dó ñ%DñP ƒð !%Ø Ÿ=š=Ø$(ØØØ).×)@Ò)@ó%à�;Š;˜Ñð%ð �LŠLð%ð ˜TÑ!ñ	%ð
 ð%ð ð%ð ×&Ò&ð%ð ó%ó ñ%ñP ƒð !%Ø Ÿ=š=Ø$(ØØñð �;Š;˜Ñðð �LŠLð	ð
 ˜TÑ!ñð ðð ðð óó ññ$ ˜ŸšÓ'Ùƒð
 !%Ø"&Ø$(ØóØñà
ðð �;Š;˜Ñð	ð
 �LŠL˜4Ñðð ˜TÑ!ðð ðð óó ó (ññ, ˜×.Ò.Ó/Ùƒð !%Ø"&Ø$(ØóØñà
ñð ðð
 �;Š;˜Ñðð �LŠL˜4Ñðð ˜TÑ!ðð ðð óó ó 0ññ8 ˜Ÿ
š
×*Ò*Ó+Ùƒð !%Ø Ÿ=š=Ø$(ØØóà�;Š;˜Ñðð �LŠLðð ˜TÑ!ð	ð
 ñð ðð óó ó ,ññ0 ˜ŸšÓ'Ùƒð
 !%Ø"&Ø$(ØØóØñà
ðð �;Š;˜Ñð	ð
 �LŠL˜4Ñðð ˜TÑ!ðð ñð ðð óó ó (ññ2 ˜Ÿ	š	×)Ò)Ó*Ùƒð !%Ø Ÿ=š=Ø$(ØØóà�;Š;˜Ñðð �LŠLðð ˜TÑ!ð	ð
 ñð ðð óó ó +ññ0 ˜ŸšÓ&Ùƒð
 !%Ø"&Ø$(ØØóØñà
ðð �;Š;˜Ñð	ð
 �LŠL˜4Ñðð ˜TÑ!ðð ñð ðð óó ó 'ññ2 ˜ŸšÓ&Ùƒð !%Ø"&Ø$(ØóØñà
ñð ðð
 �;Š;˜Ñðð �LŠL˜4Ñðð ˜TÑ!ðð ðð óó ó 'ñð0 ‡‚‡‚×Ò˜×=Ò=Ó>ð 15óØ
ðà	ðð ×&Ò&¨Ñ-ðð ó	ó ?ññ ˜ŸšÓ(Ùƒð !%Ø$(Ø"&ØØØ).×)>Ò)>ó&Øð&ð �;Š;˜Ñð&ð ˜TÑ!ð	&ð
 �LŠL˜4Ñð&ð ñ&ð ð&ð ×&Ò&ð&ð ó&ó ó )ñ&ñR ˜Ÿš×/Ò/°·²×1FÒ1FÐGÓHÙƒàØ!Øñdð
 !%Ø Ÿ=š=Ø$(ØØôdØñdà	�dÑ	ñdð ðdð
 �;Š;˜Ñðdð �LŠLðdð ˜TÑ!ðdð ñdð ðdð ódó ó IñdñN ˜Ÿ	š	Ó"ÙƒÙ#Ù2Ø7×?Ñ?ôñ8�ñ 8˜Vñ 8¨V°jÑ-@ó 8ó	ó ó #ñ8ñ4 ˜ŸšÓ&Ùƒð !%Ø$(Ø Ÿ=š=ØØôX/Ø˜Ñ&ñX/à	�nÑ	$ñX/ð ðX/ð
 �;Š;˜ÑðX/ð ˜TÑ!ðX/ð �LŠLðX/ð ñX/ð ðX/ð óX/ó ó 'ñX/ñv ˜ŸšÓ&Ùƒð
 ñ	9@ð !%Ø$(Ø Ÿ=š=ØØô9@Ø˜Ñ&ñ9@à	�nÑ	$ñ9@ð ñ9@ð ð	9@ð �;Š;˜Ñð9@ð ˜TÑ!ð9@ð �LŠLð9@ð ñ9@ð ð9@ð ó9@ó ó 'ñ9@ðx 
ñ	�h˜~Ñ.ñ 	¸#ó 	ó 
ñ	ð 
ñ	�~ñ 	°ó 	ó 
ñ	ñ ˜ŸšÓ&ñCØ˜t NÑ3Ñ3°e¸NÑ6KÑKñCàðCð 
ˆ.ÑóCó 'ñCðN;Øñ;àÐ"Ñ"ñ;ð Ð'Ñ'ð;ð õ	;ñ~ ˜×*Ò*Ó+Ùƒð
 !%Ø$(Ø Ÿ=š=ØØôØ�u˜YÑ'Ñ'ñàðð �;Š;˜Ñð	ð
 ˜TÑ!ðð �LŠLñð ðð ðð óó ó ,ññ6 #ð ¨%¯+ª+õ ñ ˜ŸšÓ!Ùƒð ñ%)ð !%Ø Ÿ=š=Ø$(ØØô%)Ø
ñ%)à
ˆT�zð%)ð �;Š;˜Ñð	%)ð
 �LŠLð%)ð ˜TÑ!ð%)ð ñ%)ð ð%)ð ó%)ó ó "ñ%)ñV ˜Ÿš×*Ò*¨D¯IªI¯MªMÐ:Ó;Ùƒð
 !%Ø Ÿ=š=Ø$(ØØô%Øñ%àð%ð �;Š;˜Ñð	%ð
 �LŠLð%ð ˜TÑ!ð%ð ñ%ð ð%ð ó%ó ó <ñ%ð> !%Ø"&Ø$(ØØØ).×)>Ò)>óØñàðð �;Š;˜Ñð	ð
 �LŠL˜4Ñðð ˜TÑ!ðð ñð ðð ×&Ò&ðð õñ. ˜ŸšÓ(Ùƒð !%Ø"&Ø$(ØØØ).×)>Ò)>óØðð �;Š;˜Ñðð �LŠL˜4Ñð	ð
 ˜TÑ!ðð ñð ðð ×&Ò&ðð óó ó )ññ, ˜ŸšÓ'Ùƒð !%Ø"&Ø$(ØØØ).×)>Ò)>óØðð �;Š;˜Ñðð �LŠL˜4Ñð	ð
 ˜TÑ!ðð ñð ðð ×&Ò&ðð óó ó (ññ, ˜Ÿ
š
×*Ò*Ó+Ùƒð !%Ø$(Ø"&ØØóà�;Š;˜Ñðð ˜TÑ!ðð �LŠL˜4Ññ	ð
 ðð ðð óó ó ,ñð8 !%Ø Ÿ=š=Ø$(Øó>Øð>ð �;Š;˜Ñð>ð �LŠLð	>ð
 ˜TÑ!ð>ð ð>ð õ>ð, "Ø"óØñà	�‰�eÑ	ñð �‰*�uÑ
ñð
 ðð �;Š;ðð ðð õñ6 ˜×(Ò(Ó)Ùƒð*�>ñ *¨ð *Ð@Vó *ó ó *ñ*ñZ ˜×)Ò)Ó*ðØñØ+ðØ4Jðàóó +ñð ØØòØðàðð ðð ð	ð
 ðð 
õð"ˆ^ð  ð °4õ ñ& ˜Ÿ	š	Ó"Ù˜Ôð "ØØñ	Mð !%óMØñMàˆs�{�TÑðMð 
�D‰ðMð ð	Mð �;Š;˜Ñð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×?Ñ?ôô#ó	ó ó *ñ#ñ8 ˜ŸšÓ'ÙƒÙ#Ø!Ø7×?Ñ?ôôQó	ó ó (ñQñ  ˜ŸšÓ(ÙƒÙ#Ø!Ø7×?Ñ?ôô:ó	ó ó )ñ:ñ$ ˜ŸšÓ$ÙƒÙ#ñð 8×?Ñ?ôð 
Ø	Ø	ñ2'ð
 Ø
ØØØõ2'óó ó %ñ2'ñj ˜ŸšÓ%ñH¨dõ Hó &ñHñ #Ð#B×#OÑ#OÓPð�.ó ó Qññ #Ð#B×#OÑ#OÓPð�.ó ó Qññ ˜×*Ò*Ó+Ùƒò ˜X¨™_ó  ó ó ,ñ ô=ô*ñ ˜ŸšÓ!Ù˜ÔÙÙ#Ù)Ø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§L¢LÓ1�Ù# D§L¢LÓ1�Ù	˜dŸfšfÓ	%�Ù% d§n¢nÓ5�Ù" 4§;¢;È4ÕP�Ù% d§n¢nÓ5�Ù  §¢Ó+�	ôGô
ô4/IñhØ—’ñØ"8Ð;MÑ"MõðH ö?ðF  t¸ÈU÷ ôL  Ü Ü Ü  Ý r<  