Ë
    g^(hD ã                   ó<h  — 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	 d dl
mZ d dlmZmZmZmZ d dlmZmZmZmZmZmZ d dlZd dlmZ d dlmZ d dlmc m Z! d dlm"Z"m#Z# d dlm$Z$m%Z%m&Z&m'Z'm(Z(m)Z)m*Z*m+Z+m,Z,m-Z-m.Z.m/Z/m0Z0m1Z1m2Z2m3Z3m4Z4m5Z5m6Z6m7Z7m8Z8 d dl9m:Z:m;Z;m<Z<m=Z=m>Z>m?Z? g d	¢Z@ej‚                  ZAej„                  j†                  ZCejˆ                  jŠ                  jŒ                  ZFd
„ ZGd„ ZHd„ ZIddœd„ZJd dlKmLZL  eM«       ZNeNdddœdefd„ZOd„ ZPd„ ZQ eOe*j¤                  d¬«      d„ «       ZS eOe*j¨                  «      d„ «       ZU eOe*j¨                  «      d„ «       ZV eOe*j¨                  «      d„ «       ZW eOe*j¨                  «      d„ «       ZX eOe*j¨                  «      d„ «       ZY eOe*j¨                  «      d„ «       ZZ eOe*j¶                  «      d„ «       Z\ eOe*j¶                  d¬«      d „ «       Z] eLeFj¼                  «      d!e6fd"„«       Z^ eLeFj¾                  «       e?«       d!e6fd#„«       «       Z_ eOe*j¨                  «      d$„ «       Z` eOe*j¨                  «      d%„ «       Za eOe*j¨                  «      d&„ «       Zb eOe*j¨                  «      d'„ «       Zc eOe*j¨                  «      d(„ «       Zd eOe*j¨                  «      d)„ «       Ze eOe*j¨                  «      d*„ «       Zf eOe*j¨                  «      d+„ «       Zg eOe*j¨                  «      d,„ «       Zh e?«        e=d-e*jÒ                  ¬.«      d/e6d0e0de6fd1„«       «       Zjd/e6d0e0de6fd2„Zk eLeFjØ                  «       e?«       d!e6de6fd3„«       «       Zl eOe*j¶                  d¬«      d4„ «       Zm eOe*j¶                  d¬«      d5e6de6fd6„«       Znd/e6de6fd7„Zo eOe*jà                  d¬8«      d/e6de6fd9„«       Zq eOe*jà                  «      d/e6de6fd:„«       Zr eOe*jà                  d¬«      d/e6de6fd;„«       Zs eOe*jà                  d¬«      d/e6de6fd<„«       Zt eOe*jà                  «      d/e6de6fd=„«       Zu ePejì                  jî                  d>«      Zx eOe*jà                  d¬8«      d/e6de6fd?„«       Zy eOe*j¨                  eFjô                  ¬8«      d@„ «       Zz eOe*j¨                  «      dA„ «       Z{ eOe*j¨                  «      dB„ «       Z| eOe*j¨                  «      dC„ «       Z} eOe*j¨                  «      dD„ «       Z~ eOe*j¨                  «      dE„ «       Z e?«       	 �dèd/e6dFe€dGee�j                     de6fdH„«       Z‚ eLeF�j                  «       e?«        e=dIe*j¨                  ¬.«      	 �dédJe6dFe(dKe„de6fdL„«       «       «       Zƒ eLeF�j
                  «       e?«       	 	 	 �dêd/e6dMee0   dNee0   dOee0   de6f
dP„«       «       Z…d/e6fdQ„Z† eOe*j¶                  e†¬R«      dS„ «       Z‡d/e6de6fdT„Zˆd/e6de6fdU„Z‰ eOe*j¨                  «      dV„ «       ZŠ eLeF�j                  «       e?«        e=dWe*j¶                  ¬.«      d dXœd/e6dYe€de6fdZ„«       «       «       Z‹ eOe*j¨                  «      d[„ «       ZŒ eOe*j¨                  «      d/e6de6fd\„«       Z� eOe*j¶                  d¬«      d]„ «       ZŽ eOe*j¶                  d¬«      d^„ «       Z� eOe*jà                  d¬«      d_„ «       Z� eOe*j¨                  «      d`„ «       Z‘ eOe*j¨                  «      da„ «       Z’ eOe*j¨                  «      db„ «       Z“ eOe*j¨                  «      dc„ «       Z” eOe*�j*                  d¬8«      d/e6de6fdd„«       Z– eOe*j¨                  «      de„ «       Z— eOe*j¨                  «      df„ «       Z˜ eOe*j¶                  d¬«      dg„ «       Z™dJe6de6fdh„ZšeNddddddfdefdi„Z› eLeF�j8                  «       e?«        e=dje*j¶                  ¬.«      ddkœd/ee6e0f   dlee6e0f   dmee0   fdn„«       «       «       Zœ e›e*j¨                  dd¬o«      dp„ «       Z� e›e*j¶                  ¬q«      d/e6dle6de6fdr„«       Zž e›e*j¶                  ¬q«      d/e6dle6de6fds„«       ZŸ e›e*j¶                  ¬q«      d/e6dle6de6fdt„«       Z  e›e*j¶                  ¬q«      d/e6dle6de6fdu„«       Z¡ e›e*j¶                  ¬q«      d/e6dle6de6fdv„«       Z¢ e›e*j¨                  d¬w«      d/ee6e0f   dlee6e0f   fdx„«       Z£ eLeF�jH                  «       e?«       ddyœd/ee6e0f   dlee6e0f   dzee¥   fd{„«       «       Z¤ e›e*jà                  d¬w«      d/e6dle6de6fd|„«       Z¦ e›e*�j*                  ¬q«      d/ee6e0f   dlee6e0f   de6fd}„«       Z§ e?«       d/ee6e0f   dlee6e0f   deAfd~„«       Z¨ e›ejT                  j¶                  dd¬«      d/ee6e0f   dlee6e0f   fd€„«       Z©d/eAdleAdeAfd�„Zªd/eAdleAdeAfd‚„Z« e›e*j¶                  dd¬o«      d/e6dle6de6fdƒ„«       Z¬ e›e*j¶                  dd¬o«      d/e6dle6de6fd„„«       Z­ e›e*j¶                  dd¬o«      d/e6dle6de6fd…„«       Z® eLeF�j^                  «       e?d†d‡«      dJe6de°e6e6f   fdˆ„«       «       Z¯ e›e*j¶                  dd¬o«      d/e6dle6de6fd‰„«       Z± e›e*jà                  d¬w«      d/e6dle6de6fdŠ„«       Z² e›e*jà                  d¬w«      d/e6dle6de6fd‹„«       Z³ e›e*j¶                  dd¬o«      d!e6dŒe6de6fd�„«       Z´ e›e*j¶                  dd¬o«      d/e6dle6de6fdŽ„«       Zµ e›e*j¨                  dd¬o«      d/e6dle6de6fd�„«       Z¶ e›e*j¨                  dd¬o«      d/e6dle6de6fd�„«       Z·d‘e¥d/e6dle6d’e¸d“e¸ddfd”„Z¹	 	 	 �dëd/e6dle6d’e¸d“e¸d•e„de6fd–„Zº e›e*j¶                  dd¬o«      d/e6dle6fd—„«       Z» e›e*jà                  d¬w«      d/e6dle6de6fd˜„«       Z¼ e›e*j¶                  dd¬o«      d/e6dle6de6fd™„«       Z½ e›e*j¶                  dd¬o«      d/e6dle6de6fdš„«       Z¾ e›e*jà                  ¬q«      d/e6dle6fd›„«       Z¿ eOe*jà                  «      d/e6fdœ„«       ZÀ e›e*jà                  ¬q«      d/e6dle6fd�„«       ZÁ e›e*jà                  ¬q«      d/e6dle6fdž„«       ZÂ e›e*jà                  d¬w«      d/e6dle6de6fdŸ„«       ZÃ e›e*j¶                  ¬q«      d/e6dle6de6fd „«       ZÄ e›e*j¶                  ¬q«      d/e6dle6de6fd¡„«       ZÅ e›e*j¶                  d¬¢«      d/e6dle6de6fd£„«       ZÆ e›e*jà                  d¬w«      d/e6dle6de6fd¤„«       ZÇ e›e*jÒ                  dd¬o«      d/e6dle6de6fd¥„«       ZÈ e›e*j¶                  ¬q«      d/e6dle6de6fd¦„«       ZÉ eLeF�j”                  «       e?«       	 �dìd/ee6e0f   dlee6e0f   dme0fd¨„«       «       ZÊ eLeF�j–                  «       e?«        e=dje*j¶                  ¬.«      d§dkœd/ee6e0f   dlee6e0f   dme0fd©„«       «       «       ZË e›e*j¨                  dªdd¬««      d/e6dle6de6fd¬„«       ZÌ eLeF�jš                  «       e?«        e=dje*j¨                  ¬.«      d/ee6e0f   dlee6e0f   fd­„«       «       «       ZÍ e›ejT                  j¶                  dd¬®«      d/ee6e0f   dlee6e0f   fd¯„«       ZÎ eLeF�jž                  «       e?«        e=d°e*j¨                  ¬.«      d§d±œdJe6d²e6d³e6d0e0de6f
d´„«       «       «       ZÏ eLeF�j                   «       e?«        e=d°e*j¶                  ¬.«      d§d±œdJe6d²e6d³e6d0e0de6f
dµ„«       «       «       ZÐ eLeF�j¢                  «       e?«        e=d¶e*j¶                  ¬.«      	 	 �díd/e6d·ee7   d¸ee7   de6fd¹„«       «       «       ZÑ eLeF�j¤                  «       e?«       	 �dèdJe6d·ee7   de6fdº„«       «       ZÒ eLeF�j¦                  «       e?«       	 �dèdJe6d¸ee7   de6fd»„«       «       ZÓ eLeF�j¨                  «       e?«        e=dje*jÒ                  ¬.«      	 	 �díd¼eAd/ee7   dlee7   fd½„«       «       «       ZÔ eLeF�jª                  «       e?«       e�j¬                  d¾œd/e6d¿e�j®                  de6fdÀ„«       «       ZÕddÁœd/eAdleAfdÂ„ZØ eLeF�j²                  «      d/e6de0fdÃ„«       ZÙ	 	 	 	 	 	 	 �dîd/e6dÄee%   dGee�j                     dÅee„   dÆee�j´                     d¿ee�j®                     dÇee„   dÈe„de„fdÉ„ZÛedÊ„ «       ZÜeÜ�jº                  	 	 	 �dïdÄe�j¼                  dGe�j                  dÈe„dÅe„d¿ee�j®                     deße¥ef   fdË„«       ZàeÜ�jº                  	 	 	 �dïdÄe¥dGe�j                  dÈe„dÅe„d¿ee�j®                     deße¥ef   fdÌ„«       ZáeÜ�jº                  	 	 	 �dïdGe�j                  dÈe„dÅe„d¿ee�j®                     deße¥ef   f
dÍ„«       ZâeÜ�jº                  	 	 	 �dïdÎeAdÈe„dÅe„d¿ee�j®                     deße¥ef   f
dÏ„«       Zãd/eAdÐeßfdÑ„Zäd/e6de6fdÒ„ZådddddddÓœd/e6dÔedÕe„dÖe„d×ee(   dØe„dGee�j                     dÙeeA   dÚe2de6fdÛ„ZædÜ„ Zç eLeF�jÐ                  «       e?«       	 	 �dðd/e6dFee(   dKe„de6fdÝ„«       «       Zè eLeF�jÒ                  «       e?«       	 	 �dðd/e6dFee(   dKe„de6fdÞ„«       «       Zé eLeF�jÔ                  �jÖ                  eF�jÔ                  �jØ                  g«      	 	 �dðdddßœd/e6dFeee€   eeíe€      f   dKe„dGee�j                     dÙeeA   de6fdà„«       Zêd/eAdeAfdá„Zî eLeF�jÞ                  «      	 	 �dðdddßœd/e6dFeee€   eeíe€      f   dKe„dÙeeA   de6f
dâ„«       Zï eLeF�jà                  «      	 	 �dðddãœd/e6dFee(   dKe„dÙeeA   de6f
dä„«       Zð eLeF�jâ                  «      	 	 �dðddãœd/e6dFee(   dKe„dÙeeA   de6f
då„«       Zñ�dídæ„Zò eLeF�jæ                  «       e?«       	 	 	 �dñddçœd/e6dFee(   dèee„   dKe„déee0   de6fdê„«       «       Zó eLeF�jè                  «       e?«       	 	 	 �dñddçœd/e6dFeee€   eeíe€      f   dèee„   dKe„déee0   de6fdë„«       «       Zô eLeF�jê                  «      	 	 �dðdddßœd/e6dFee(   dKe„de6fdì„«       Zõ eLeF�jì                  «       e?dídî«      	 �dèddddïœd/e6dFee(   dèee„   dKe„déee0   f
dð„«       «       Zö eLeF�jî                  «       e?dídî«      	 	 	 �dñddçœd/e6dFee(   dèee„   dKe„déee0   f
dñ„«       «       Z÷ eLeF�jð                  «       e?«        e=dòe*j¶                  ¬.«      d§d§dóœdJe6dôe6dõe6döe0dme0de6fd÷„«       «       «       Zødøee6e	e6   f   dùe6dee6e°e6dúf   f   fdû„ZùdüedFe€døe6de6fdý„Zúdøee6e	e6   f   dùe6dee6e°e6dúf   f   fdþ„Zûdøee6e	e6   f   dùe6dee6e°e6dúf   f   fdÿ„Zü	 �dèd/e6�d e3�de4�dee€   de6f
�d„Zý eLeF�jü                  «       e?«       	 �dèd!e6�de6�d e3�de4�dee€   de6f�d„«       «       Zþde3f�d„ZÿeF�j                   �j                  �j                  eC�j                  «      eF�j                   �j                  �j                  eC�j                  «      deíe6   f�d„«       «       �Z d/e6�d e3de6f�d„�Z eLeF�j                  «       e?«        e=�d	e*jÒ                  ¬.«      �dò�d
e8dFe€de6f�d„«       «       «       �Z e?«       �d
e8de6f�d„«       �Zd!e6de6f�d„�Z eLeF�j                  «       e?«       	 �dòd!e6�deíe€   d0e0de6f�d„«       «       �Z	e�j                  d¾œd/eAd¿e�j®                  deAf�d„�Z e?«       �d
e8de6f�d„«       �Z eLeF�j                  «      d/eAdeAf�d„«       �Zd/eAdleAdeAf�d„�Z�dòd/e6�de€dFe€de°e6dúf   f�d„�Z�dód/e6�de€�de€de6f�d„�Z eLeF�j"                  «       e?«       d/e6d×e'de6f�d„«       «       �Zd/e6de6f�d„�Zd/e6de6f�d„�Zd/e6dFe€�dee€e6f   �de€de6f
�d„�Zd/eA�de(�d e¸de°eAeAeAf   f�d!„�Zd5e6�d"eíe€   de6f�d#„�Z eLeF�j.                  �j                  «      d!eA�d$eeA   �d%eeA   �d&e€�d'e€�d(e€�d)e€�d e¸de°eAeAeAf   f�d*„«       �Z eLeF�j0                  «       e?dídî�d+«      d!eA�d,e3�d$eeA   �d%eeA   �d e¸de°eAeAeAf   f�d-„«       «       �Ze�j2                  �j4                  �j7                  eF�j0                  �j                  «      �d.„ «       �Z eLeF�j:                  «      d/e6de6f�d/„«       �Z eLeF�j<                  «       e?«       d!e6�d0e1dFe€�d1e1de6f
�d2„«       «       �ZeF�j>                  �j@                  �j                  eC�j                  «      	 	 	 	 	 	 	 	 	 �dôd!eA�d3e€�d4ee€   �d5ee€   �d6eeA   �d7e„�d8e¥�d9e„�d:ee„   �d;ee„   �d<ee„   deAf�d=„«       �ZeF�jB                  �j                  �j                  eC�j                  «      	 	 	 	 	 	 	 	 �dõd!eA�d3e€�d4ee€   �d5ee€   �d6eeA   �d7e„�d9e„�d:ee„   �dee€   deAf�d>„«       �Z!�d?e3�d@e4�dAe€�d e€�dBe€f
�dC„�Z" eLeF�jF                  «       e?«       d/eAdeAf�dD„«       «       �Z#d/e6�dEe„de6f�dF„�Z$d/e6�dGe3de6f�dH„�Z%dJe6dÎe6de6f�dI„�Z& eLeF�jN                  «       e?«       �död/e6�dJe(d×e(de6f�dK„«       «       �Z' eLeF�jP                  «       e?«       	 �d÷d/e6�dMe€d×e'de6f�dN„«       «       �Z(�d
e8ddf�dO„�Z) eLeF�jT                  «       e?«       �dò�d
e8dFe€de6f�dP„«       «       �Z* e?«       	 �dèd/e6dFe€dGee�j                     de6f�dQ„«       �Z+ e?«       �d
e8de6f�dR„«       �Z, e?«       �d
e8de6f�dS„«       �Z-d/e6dFe€�dTe3de6f�dU„�Z. eLeF�j^                  «      �dò�dVe6dFe€de8f�dW„«       �Z/ e?«       d5e5dFe€�dXe5�dYe5f�dZ„«       �Z0d5e5dFe€�dXe5�dYe5f�d[„�Z1 eLeF�jd                  «       e?«       d5e5dFe€�dXe5d0ee0e5f   f�d\„«       «       �Z2 eLeF�jf                  «      d5e5dFe€�dXe5d0ee0e5f   f�d]„«       �Z3d5e5dFe€�dXe5d0ee0e5f   �d^e„f
�d_„�Z4 e?«       d§dkœd5e5dFe€�dXe5�dYe5dme0f
�d`„«       �Z5 eLeF�jl                  «       e?«       d5e5dFe€�dXe5f�da„«       «       �Z6 eLeF�jn                  �jp                  «      �dèd/e6dFee(   de6f�db„«       �Z7 eLeF�jr                  «      	 �dòdJeA�dceíe€   dFe€deíeA   f�dd„«       �Z9	 �dòd/e6�deeeAe(f   dFe€de°e6dúf   f�df„�Z:d/e6�dee(de°e6dúf   f�dg„�Z;d/e6�dee(de°e6dúf   f�dh„�Z< eLeF�jz                  �j|                  «       e?«       	 �dòdJe6�die€de6f�dj„«       «       �Z= eLeF�j~                  «       e?«       	 	 	 �død!e6�de6�die€�dke€�dle€de6f�dm„«       «       �Z? eLeF�j€                  «      	 	 	 �dødJe6�die€�dke€�dle€de6f
�dn„«       �Z@ eLeF�j‚                  «       e?«       	 	 	 �dù�dVe6�die€�dke€�dle€de6f
�do„«       «       �ZA eLeF�j„                  «       e?«       �d
eíe6   de6f�dp„«       «       �ZC�d
eíe6   de6f�dq„�ZBd/e6�dre(de8f�ds„�ZD eLeF�jŠ                  �j                  «      d/e6f�dt„«       �ZEd/e6de6f�du„�ZF eLeF�jŽ                  «      d/e6de6f�dv„«       �ZG eLeF�j�                  «      d/e6�dwe€�dke€de6f�dx„«       �ZH�eH�ZI eLeF�j”                  «      dJe6�dAe€�d e€�dBe€de6f
�dy„«       �ZJ eLeF�j–                  «       e?«       dJe6�dAe€�d e€�dBe€f�dz„«       «       �ZKdddßœd/e6dFe€dGee�j                     dÙeeA   de6f
�d{„�ZL eLeF�jš                  «      dddßœd/e6dFe€dGee�j                     dÙeeA   de6f
�d|„«       �ZM eLeF�jœ                  «      dddßœd/e6dFe€dGee�j                     dÙeeA   de6f
�d}„«       �ZN eLeF�jž                  «      d/e6dFe€de6f�d~„«       �ZO eLeF�j                   �j                  «      d/e6�dGe3de6f�d„«       �ZPdJe6dÎe6de6f�d€„�ZQd/e6de6f�d�„�ZR e?«       	 �dèd/ej‚                  �d‚ej‚                  dFee€   dej‚                  f�dƒ„«       �ZS e?«       de�j¨                  ddde�j                  �d„œdGee�j                     dÆe�j´                  dÄee%   �d…e„dÇe„d¿e�j®                  de6f�d†„«       �ZU e?«       de�j¨                  dddfdGee�j                     dÆe�j´                  dÄee%   �d…e„dÇe„de6f�d‡„«       �ZV eLeF�j®                  «       e?«       dddd�dˆœd/e6�d e3dGee�j                     dÆee�j´                     dÄee%   dÇe„de6f�d‰„«       «       �ZW eLeF�j°                  «       e?«       dddd�dˆœd/e6�d e3�de4dGee�j                     dÆee�j´                     dÄee%   dÇe„de6f�dŠ„«       «       �ZX eLeF�j²                  �j                  «       e?«       de�j¨                  ddd�d‹œdGee�j                     dÆe�j´                  dÄee%   dÇe„�d…e„de6f�dŒ„«       «       �ZY eLeF�j´                  «       e?«       ddddd�d‹œd/e6�d e3dGee�j                     dÆee�j´                     dÄee%   dÇe„�d…e„de6f�d�„«       «       �ZZ eLeF�j¶                  �j                  «       e?«       de�j¨                  ddd�d‹œdGee�j                     dÆe�j´                  dÄee%   dÇe„�d…e„de6f�dŽ„«       «       �Z[ eLeF�j¸                  «       e?«       ddddd�d‹œd/e6�d e3dGee�j                     dÆee�j´                     dÄee%   dÇe„�d…e„de6f�d�„«       «       �Z\ eLeF�jº                  «       e?«       dddd�dˆœd/e6�d e3�d�e0dGee�j                     dÆee�j´                     dÄee%   dÇe„de6f�d‘„«       «       �Z] eLeF�j¼                  «       e?«       ddddde�j¬                  �d’œd/e6dGee�j                     dÄee%   dÆee�j´                     dÇe„�d…e„d¿e�j®                  de6f�d“„«       «       �Z^ eLeF�j¾                  �jÀ                  eF�j¾                  �jÂ                  g«       e?«       	 	 	 �dúde�j¨                  ddd�d‹œ�de0�d”ee0   �dBe0dGee�j                     dÆe�j´                  dÄee%   dÇe„�d…e„de6f�d•„«       «       �Z_ eLeF�jÄ                  «       e?«        e=�d–e*j¶                  ¬.«      �deA�d”eA�d$eeAe0f   f�d—„«       «       «       �Zb eLeF�jÆ                  «       e?«       dde�j¨                  dd�d˜œ�dee0e6f   �d”ee0e6f   �d™e0dGee�j                     dÄee%   dÆe�j´                  dÇe„�d…e„de6f�dš„«       «       �Zc eLeF�jÈ                  «       e?«       	 �dûdde�j¨                  dd�d˜œ�dee0e6f   �d”ee0e6f   �d™e0�d›e0dGee�j                     dÄee%   dÆe�j´                  dÇe„�d…e„de6f�dœ„«       «       �Zde�d
e	e6   �d�e¥f�dž„«       �Zee�d
e6�d�e¥f�dŸ„«       �Ze eLeF�jÊ                  «      �d
ee6eíe6   e°e6   f   �d�e¥deíe6   f�d „«       �Zed!e6�d¡ee€e'f   �d¢ee€e'f   de6f�d£„�Zf eLeF�jÎ                  «       e?«       dde�j¨                  dd�d¤œ�dGee3e°e3   f   �d¥e4dGee�j                     dÄee%   dÆe�j´                  �d…e„dÇe„de6f�d¦„«       «       �Zg eLeF�jÐ                  «       e?«       	 �dède�j¨                  ddd�d‹œ�d§e€�d¨ee€   dGee�j                     dÆe�j´                  dÄee%   dÇe„�d…e„de6f�d©„«       «       �Zh eLeF�jÒ                  �j                  eF�jÒ                  �j|                  g«       e?«       de�j¨                  ddd�d‹œ�dGe3�d�e0dGee�j                     dÆe�j´                  dÄee%   dÇe„�d…e„de6f�dª„«       «       �Ziddddde�j¬                  �d«œd/e6�d�e0dGee�j                     dÆee�j´                     dÄee%   dÇe„�d…e„d¿e�j®                  de6f�d¬„�Zj eLeF�jÖ                  «       e?«       ddddde�j¬                  �d«œd/e6dGee�j                     dÆee�j´                     dÄee%   dÇe„�d…e„d¿e�j®                  de6f�d­„«       «       �Zk eLeF�jØ                  «       e?«       ddddde�j¬                  �d«œd/e6dGee�j                     dÆee�j´                     dÄee%   dÇe„�d…e„d¿e�j®                  de6f�d®„«       «       �Zl eLeF�jÚ                  �j                  «       e?«       ddddd�d¤œdGee�j                     dÄee%   dÆee�j´                     �d…e„dÇe„de6f�d¯„«       «       �Zmde�j¨                  dd�dˆœd/e0dGee�j                     dÆe�j´                  dÄee%   dÇe„de6f�d°„�Zn	 	 �dü�dGe3�d±ee„e€e¸f   �d²ee„e€e¸f   dGe�j                  dÄe%de6f�d³„�Zo eLeF�jà                  «       e?«       d/e6�d´e6d0e7f�dµ„«       «       �Zp eLeF�jâ                  «      d/e6�d´e6d0e7de6f�d¶„«       �Zq	 	 	 �dëd/e6dle6d’e¸d“e¸d•e„de„f�d·„�Zrd/e6dle6de„f�d¸„�Zs eLeF�jè                  «       e?d¬«      	 	 	 �dýd�d¹œd!e6�d0eee¸e¥f      dFee(   dKe„dGee�j                     de6f�dº„«       «       �Zt eLeF�jê                  «       e?«       dJe6de6f�d»„«       «       �Zu�d¼„ �Zv �eveÌ«      �Zw �eve©«      �Zx �eve§«      �Zy eLeF�jô                  «       e?«       �dòd/e6�d½e€de6f�d¾„«       «       �Zz eLeF�jö                  «       e?«       �dòd/e6�d½e€de6f�d¿„«       «       �Z{�dÀe€�dÁe€�die€de°e€e€e€f   f�dÂ„�Z|d‘e¥�dÀe€�dÁe€dGe�j                  dÆe�j´                  dÇe„f�dÃ„�Z} eLeF�jü                  «       e?«       	 �dòe�jþ                  e�j¨                  �dÄd�dˆœ�dÀe€�dÁe€�die€dGe�j                  dÆe�j´                  dÄe%dÇe„de6f�dÅ„«       «       �Z~�dÀe€�dÁe€�die€de°e€e€e€f   f�dÆ„�Z€ eLeF�j                  «       e?«       	 �dòe�jþ                  e�j¨                  �dÄd�dˆœ�dÀe€�dÁe€�die€dGe�j                  dÆe�j´                  dÄe%dÇe„de6f�dÇ„«       «       �Z� eLeF�j                  «       e?d¬«      dd�dÈœd/e7�dÉe6�dÊe„�dËe„f�dÌ„«       «       �Z‚ eLeF�j                  «       e?«        e=dIe*j¶                  ¬.«      �dþ�dÍ„«       «       «       �Zƒ eLeF�j                  «       e?«        e=dIe*j¶                  ¬.«      �dÿ�dÎ„«       «       «       �Z„ eLeF�j
                  «       e?«        e=dIe*j¶                  ¬.«      �dè�dÏ„«       «       «       �Z… eLeF�j                  «       e?«        e=dIe*j¶                  ¬.«      �d �dÐ„«       «       «       �Z† eLeF�j                  «       e?«        e=�dÑe*j¶                  ¬.«      	 	 	 �dþddddd�dÒœ�dÓ„«       «       «       �Z‡ eLeF�j                  «      �dLd�dÔœ�dÕ„«       �Zˆ eOe*j¨                  «      dJe6f�dÖ„«       �Z‰ eOe*j¨                  «      dJe6f�d×„«       �ZŠ eLeF�j                  «       e?«       �dèdFee(   f�dØ„«       «       �Z‹�dÙ„ �ZŒ�dÚ„ �Z� eLeF�j                  «       e?«       �e� e=�dÛe*j¶                  ¬.«      �dÜ„ «       «       «       «       �ZŽ eLeF�j                  «       e?«       �e� e=�dÛe*j¶                  ¬.«      �dÝ„ «       «       «       «       �Z� eLeF�j                   «       e?«       d5e6�de6dFe€�dXe€f�dÞ„«       «       �Z� eQeS«      �Z‘ eQeU«      �Z’ eQeV«      �Z“ eQeœ«      �Z” eQeÐ«      �Z• eQeÏ«      �Z– eQeW«      �Z— eQeX«      �Z˜ eQeY«      �Z™ eQeZ«      �Zš eQe�«      �Z› eQež«      �Zœ eQeŸ«      �Z� eQe\«      �Zž eQe «      �ZŸ eQe¡«      �Z  eQe¢«      �Z¡ eQe]«      �Z¢ eQeÑ«      �Z£ eQeÒ«      �Z¤ eQeÓ«      �Z¥ eQe_«      �Z¦ eQe£«      �Z§ eQe`«      �Z¨ eQea«      �Z© eQ�eM«      �Zª eQ�eN«      �Z« eQ�eŠ«      �Z¬ eQeb«      �Z­ eQe¤«      �Z® eQe¦«      �Z¯ eQec«      �Z° eQee«      �Z± eQed«      �Z² eQef«      �Z³ eQeh«      �Z´ eQeg«      �Zµ eQe¨«      �Z¶ eQem«      �Z· eQe©«      �Z¸ eQe®«      �Z¹ eQen«      �Zº eQe±«      �Z» eQe²«      �Z¼ eQe³«      �Z½ eQe´«      �Z¾ eQeµ«      �Z¿ eQe¶«      �ZÀ eQe·«      �ZÁ eQez«      �ZÂ eQe»«      �ZÃ eQe¼«      �ZÄ eQ�eb«      �ZÅ eQe{«      �ZÆ eQe«      �ZÇ eQe}«      �ZÈ eQe~«      �ZÉ eQe|«      �ZÊ eQe¿«      �ZË eQeÀ«      �ZÌ eQeÁ«      �ZÍ eQeÂ«      �ZÎ eQeÃ«      �ZÏ eQeÆ«      �ZÐ eQex«      �ZÑ eQe…«      �ZÒ eQeÇ«      �ZÓ eQe‡«      �ZÔ eQeÈ«      �ZÕ eQe§«      �ZÖ eQ�e‰«      �Z× eQeŠ«      �ZØ eQeÉ«      �ZÙ eQeŒ«      �ZÚ eQeŽ«      �ZÛ eQe�«      �ZÜ eQe�«      �ZÝ eQe‘«      �ZÞ eQe’«      �Zß eQe“«      �Zà eQe”«      �Zá eQe–«      �Zâ eQeË«      �Zã eQe—«      �Zä eQe˜«      �Zå eQ�e{«      �Zæ eQ�ez«      �Zç eQeÌ«      �Zè eQe™«      �Zé eQeÍ«      �Zê eQ�eƒ«      �Zë eQ�e„«      �Zì eQ�e…«      �Zí eQ�e†«      �Zî eQel«      �Zï eçeF�jŽ                  «      �Zð eçeF�jú                  «      �Zñ eçeF�j€                  «      �Zò eçeF�j                  «      �Zó eçeF�j(                  «      �Zô eçeF�jn                  «      �Zõ eçeF�j:                  «      �Zö eçeF�jŠ                  «      �Z÷ eçeF�j�                  «      �Zø eçeF�j^                  «      �Zù eçeF�jž                  «      �Zú eçeF�j                   «      �Zû�dß„ �Zü�dà„ �Zý�dá„ �Zþ�dâe�j                  �dãee7e8f   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)ÚIterableÚSequence)ÚEnum)ÚpartialÚreduceÚsingledispatchÚwraps)ÚAnyÚCallableÚcastÚOptionalÚoverloadÚUnion)Ú	sym_floatÚsym_int)ÚBoolLikeÚDeviceLikeTypeÚDimÚDimsSequenceTypeÚDimsTypeÚdtype_to_typeÚELEMENTWISE_TYPE_PROMOTION_KINDÚ	FloatLikeÚFloatWithoutSymFloatÚIntLikeÚis_weakly_lesser_typeÚNumberÚ
NumberTypeÚRealNumberTypeÚREDUCTION_OUTPUT_TYPE_KINDÚ	ShapeTypeÚ
StrideTypeÚ
TensorLikeÚTensorLikeTypeÚTensorOrNumberLikeTypeÚTensorSequenceType)Ú_maybe_convert_to_dtypeÚ_maybe_resize_outÚ_safe_copy_outÚ"elementwise_type_promotion_wrapperÚ elementwise_unary_scalar_wrapperÚout_wrapper(  ÚabsÚacosÚacoshÚasinhÚasinÚatanÚatanhÚbitwise_notÚceilÚconj_physicalÚcosÚcoshÚcount_nonzeroÚdeg2radÚdigammaÚerfÚerfinvÚerfcÚexpÚexpm1ÚexponentialÚexp2ÚfillÚfill_ÚfloorÚfracÚ	geometricÚ	index_addÚ
index_copyÚindex_copy_Úindex_selectÚ
index_fillÚindex_fill_ÚisfiniteÚisinfÚisposinfÚisneginfÚisnanÚisrealÚi0ÚlerpÚlgammaÚlogÚlog1pÚlog2Úlog10Ú
log_normalÚlog_softmaxÚmvlgammaÚnormÚnormalÚ
nan_to_numÚnegÚpositiveÚrad2degÚ
reciprocalÚroundÚsigmoidÚsgnÚsignÚsignbitÚsinÚsincÚsinhÚsoftmaxÚsqrtÚsquareÚtanÚtanhÚtraceÚtruncÚaddÚatan2Úbitwise_andÚbitwise_left_shiftÚ
bitwise_orÚbitwise_right_shiftÚbitwise_xorÚ	clamp_minÚ	clamp_maxÚcopysignÚdivÚeqÚfloat_powerÚfloor_divideÚfmaxÚfminÚfmodÚgcdÚgeÚgtÚ	heavisideÚhypotÚigammaÚigammacÚimagÚiscloseÚlcmÚleÚ	logaddexpÚ
logaddexp2Úlogical_andÚlogical_notÚ
logical_orÚlogical_xorÚ	logsumexpÚltÚmaximumÚminimumÚmulÚneÚ	nextafterÚpowÚrealÚrpowÚ	remainderÚrsubÚrtruedivÚ	rfloordivÚsubÚtrue_divideÚtrunc_divideÚxlogyÚaddcdivÚaddcmulÚclampÚmasked_fillÚmasked_fill_ÚwhereÚcloneÚcopy_toÚitemÚtoÚallÚamaxÚaminÚanyÚcumsumÚcumprodÚmeanÚdotÚvdotÚstdÚstd_meanÚsumÚsum_to_sizeÚprodÚvarÚvar_meanÚaddrÚaliasÚ
alias_copyÚ
atleast_1dÚ
atleast_2dÚ
atleast_3dÚ
as_stridedÚas_strided_copyÚas_strided_scatterÚ
block_diagÚbroadcast_shapesÚbroadcast_tensorsÚbroadcast_toÚcatÚchunkÚcolumn_stackÚconjÚconstant_pad_ndÚ
contiguousÚ
diag_embedÚdiagÚdiagonalÚdiagonal_copyÚdiagonal_scatterÚdsplitÚdstackÚexpandÚ	expand_asÚexpand_copyÚflattenÚflipÚfliplrÚflipudÚhsplitÚhstackÚmeshgridÚmovedimÚnarrowÚnarrow_copyÚnative_group_normÚnative_layer_normÚpermuteÚ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    úR/var/www/skyplay_api_hub/venv/lib/python3.12/site-packages/torch/_refs/__init__.pyÚis_noncontiguous_supportedr6  n  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_tensorr9  Ú
isinstanceÚfake_devicer6  rÔ   )Úinput_tlistÚoutputr4  r9  rù   s        r5  Úhandle_noncontiguous_outputsr?  r  sL   € Ø€FÝ8àò ˆÜ�a˜Õ$Ø—]‘]ˆFÙðô
 & fÔ-Ø×"Ñ"Ó$ˆà€Mr7  c            	      óø  ‡‡‡‡— ddl m} t        d„ t        d„ | «      D «       «      }t	        |«      dk(  ry |D ]  Št        ‰t        «      rŒJ ‚ dgt        t        d„ |D «       «      z  Št        |«      D ]�  \  ŠŠt        ddt	        ‰«      z
  d«      D ]`  Š |‰‰   dk(  «      r‰‰   dk  rt        d«      ‚‰‰   ‰‰<   Œ- |‰‰   dk7  «      sŒ<t        j                  ‰‰   ‰‰   k(  ˆˆˆˆfd	„«       Œb Œƒ ‰S )
Nr   ©Úguard_size_obliviousc              3   óF   K  — | ]  }t        |t        «      r|fn|–— Œ y ­w©N©r;  r   ©Ú.0Úxs     r5  ú	<genexpr>z$_broadcast_shapes.<locals>.<genexpr>„  s(   è ø€ ò àô ˜1œgÔ&ˆ‰¨AÓ-ñùs   ‚!c                 ó
   — | d uS rD  © ©rH  s    r5  ú<lambda>z#_broadcast_shapes.<locals>.<lambda>†  s
   €  !¨4 -€ r7  é   c              3   ó2   K  — | ]  }t        |«      –— Œ y ­wrD  ©Úlen)rG  Úshapes     r5  rI  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 rK  )Úarg_idxÚcommon_shapeÚidxrR  s   €€€€r5  rM  z#_broadcast_shapes.<locals>.<lambda>¡  s<   ø€ ÐLÈUÐSVÉZÈLÐX\Ð]`Ð\að b5Ø5<°I¸UÀ5À'ð J2Ø2>°ðA€ r7  )Ú%torch.fx.experimental.symbolic_shapesrB  ÚtupleÚfilterrQ  r;  r   r   ÚmaxÚ	enumerateÚrangeÚ
ValueErrorÚtorchÚ_check)Ú_shapesrB  ÚshapesrU  rV  rW  rR  s      @@@@r5  Ú_broadcast_shapesrc  �  s*  û€ ÝJäñ äÑ/°Ó9ôó €Fô ˆ6ƒ{�aÒØð ò +ˆÜ˜%¤Õ*Ð*Ð*ð+ð
 	
ð4äŒsÑ4¨VÔ4Ó5ñ46€Lô $ FÓ+ò ‰ˆ�Ü˜˜R¤# e£*™_¨bÓ1ò 	ˆCÙ# L°Ñ$5¸Ñ$:Ô;Ø˜‘: ’>Ü$ØSóð ð %*¨#¡J�˜SÒ!Ù% e¨C¡j°A¡oÕ6Ü—‘Ø  Ñ%¨¨s©Ñ3öAõñ	ðð  Ðr7  T)Úpreserve_cpu_scalar_tensorsc                 ó\   ‡ ‡‡— t        d„ |D «       Ž Šˆˆ fd„Št        ˆˆfd„|D «       «      S )Nc              3   óX   K  — | ]"  }t        |t        «      r|j                  nd –— Œ$ y ­wrD  )r;  r#   rR  ©rG  rù   s     r5  rI  z#_maybe_broadcast.<locals>.<genexpr>¬  s"   è ø€ Ò	G¸Q”Z ¤:Ô.ˆ!�'Š'°DÓ
8Ñ	Gùs   ‚(*c                 ó,  •— | €y t        | t        «      r| S t        | t        «      rL‰rt        j                  | «      r| S t        j
                  | j                  ‰«      s| j                  ‰«      S | S t        dt        t        | «      «      z   dz   «      ‚)Nz#Unexpected type when broadcasting: ú!)r;  r   r#   ÚutilsÚis_cpu_scalar_tensorÚ
same_shaperR  rÜ   ÚRuntimeErrorÚstrr2  )rH  rR  rV  rd  s     €€r5  Ú__maybe_broadcastz+_maybe_broadcast.<locals>.__maybe_broadcast¯  sƒ   ø€ Øˆ9ØÜ˜œ6Ô"ØˆHÜ˜œ:Ô&Ù*¬u×/IÑ/IÈ!Ô/LØ�ä×#Ñ# A§G¡G¨\Ô:Ø—x‘x Ó-Ð-àˆHäØ5¼¼DÀ»G»ÑDÀsÑJóð r7  c              3   ó0   •K  — | ]  } ‰|‰«      –— Œ y ­wrD  rK  )rG  rH  ro  rV  s     €€r5  rI  z#_maybe_broadcast.<locals>.<genexpr>Á  s   øè ø€ ÒB¸Ñ" 1 l×3ÑBùs   ƒ)rc  rY  )rd  Úargsro  rV  s   ` @@r5  Ú_maybe_broadcastrr  ©  s-   ú€ ä$Ù	GÀ$Ô	Gð€Lõô$ ÔB¸TÔBÓBÐBr7  )Úregister_decompositionF)Úaten_opÚ
extra_metaÚexact_dtypeÚreturnc                ó,   ‡ ‡‡‡— dt         fˆˆˆˆ fd„}|S )NÚprimc                 ó  •‡ — t        ‰ «      t        ‰¬«      t        t        d‰¬«      dt        dt        fˆˆ fd„«       «       «       «       }‰t
        u r t        j                  ‰ ‰ j                  «      Š‰� t        ‰«      |«       |S )N©rv  ©Úa©Útype_promoting_argsÚtype_promotion_kindr}  rw  c                 óB   •— ‰� ‰| «        ‰| «      }t        | g|«      S rD  )r?  )r}  r>  ru  ry  s     €€r5  Ú_refz>_make_elementwise_unary_reference.<locals>.inner.<locals>._refÚ  s*   ø€ ð Ð%Ù˜1”á˜!“WˆFÜ/°°°VÓ<Ð<r7  )
r	   r,   r+   r*   r$   Úinfer_aten_oprj  Úget_aten_opÚ__name__rs  )ry  r‚  rt  rv  ru  r€  s   ` €€€€r5  Úinnerz0_make_elementwise_unary_reference.<locals>.inner×  sŒ   ù€ ô 
ˆt‹Ü	 Ô	-Ü	)Ü	+Ø &Ø 3ô

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

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

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

ó 
ð
	@ñ. Ø ”;“= Ó&ˆDàˆŒØ”mÑ#Ü×'Ñ'¨¨dÓ3ˆGØÐÑ#@Ø+Ô" 7Ó+¨DÔ1àˆr7  r‡  )	r€  rt  r“  r@  r<  r=  r>  rA  r†  s	   ```````` r5  Ú"_make_elementwise_binary_referencerB    s   ÿ€ ð*”H÷ *ô *ðX €Lr7  r3  ©Úalphar4  rD  c                óÈ  — t        | |«      \  } }|�®t        | t        «      r| j                  n|j                  }t	        j
                  |«      }|t        k7  r<t	        j                  t        |«      |«      sdt        |«      › d|› d�}t        |«      ‚t        |t        «      rt        j                  ||«      }n||z  }t        j                  | |«      }t        | |g|«      S )z/
    Reference implementation of torch.add
    úalpha argument of type rÃ  ri  )rr  r;  r#   r±  rj  r   rÓ  r   r2  r^  r¢  rš   rt   r?  ©r}  r4  rD  r±  rÄ  rÅ  r>  s          r5  rt   rt   P  sË   € ô  ˜A˜qÓ!�D€A€qàÐÜ% a¬Ô4�—’¸!¿'¹'ˆÜ×)Ñ)¨%Ó0ˆØœ$Ò¤u×'BÑ'BÜ�‹K˜ô(
ð ,¬D°«K¨=Ð8WÐXcÐWdÐdeÐfˆCÜ˜S“/Ð!Ü�aœÔ$Ü—	‘	˜!˜UÓ#‰Aà�E‘	ˆAä�Y‰Y�q˜!‹_€FÜ'¨¨A¨°Ó7Ð7r7  )r€  r<  r=  c                 ó.   — t        j                  | |«      S rD  )r¢  ru   r3  s     r5  ru   ru   s  ó   € ô �;‰;�q˜!ÓÐr7  )r€  c                 ó.   — t        j                  | |«      S rD  )r¢  rv   r3  s     r5  rv   rv   |  ó   € ô ×Ñ˜Q Ó"Ð"r7  c                 ó.   — t        j                  | |«      S rD  )r¢  Ú
shift_leftr3  s     r5  rw   rw   ƒ  ó   € ô ×Ñ˜A˜qÓ!Ð!r7  c                 ó.   — t        j                  | |«      S rD  )r¢  rx   r3  s     r5  rx   rx   Š  rN  r7  c                 ó.   — t        j                  | |«      S rD  )r¢  Úshift_right_arithmeticr3  s     r5  ry   ry   ‘  s   € ô ×'Ñ'¨¨1Ó-Ð-r7  c                 ó.   — t        j                  | |«      S rD  )r¢  rz   r3  s     r5  rz   rz   ˜  rK  r7  )r€  r<  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±  r4  ú/Expected divisor (b) to be on the same device (ú&) as dividend (a), but it is found on ri  )r;  r   r?  r$  r±  r4  rm  r­   ri   ra   r-   )r}  r4  rÅ  s      r5  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Ð1r7  )Úrounding_moderW  c                ó„   — |€t        | |«      S |dk(  rt        | |«      S |dk(  rt        | |«      S d|› d�}t        |«      ‚)z/
    Reference implementation of torch.div
    rs   rE   zLdiv expected rounding_mode to be one of None, 'trunc', or 'floor' but found ú.)r¥   r¦   r�   r^  )r}  r4  rW  rÅ  s       r5  r~   r~   ±  s\   € ð ÐÜ˜1˜aÓ Ð Ø	˜'Ò	!Ü˜A˜qÓ!Ð!Ø	˜'Ò	!Ü˜A˜qÓ!Ð!à\Ð]jÐ\kÐklÐmˆÜ˜‹oÐr7  c                 ó.   — t        j                  | |«      S rD  )r¢  r   r3  s     r5  r   r   Ç  ó   € ô
 �8‰8�A�q‹>Ðr7  c                 ó
  — t        | t        «      st        |t        «      sJ ‚t        |t        «      r9|dk(  r| j                  «       S |dk(  r| | z  S |dk(  r˜t	        j
                  | «      S t        | t        «      rs| dk(  rt	        j                  |d«      S | dk(  rSt        j                  |j                  «      st        j                  |j                  «      rt	        j                  |«      S t        j                  | |«      S )Nç      ð?g       @ç      à?T)r;  r$   r   r®   r_  rn   rC   rj  rÒ  r±  r°  rB   r¢  r�   r3  s     r5  r�   r�   Ï  sÉ   € ô �aœÔ(¬J°q¼.Ô,IÐIÐIä�!”VÔØ�Š8Ø—7‘7“9ÐØ�#ŠXØ�q‘5ˆLØ�#ŠXÜ—:‘:˜a“=Ð Ü	�A”vÔ	Ø�Š8Ü—:‘:˜a Ó&Ð&Ø�Š8Ü× Ñ  §¡Ô)¬U×-CÑ-CÀAÇGÁGÔ-Lä—:‘:˜a“=Ð ä�9‰9�Q˜‹?Ðr7  c                 ó^  — t        | t        «      rt        |t        «      rt        d«      ‚t        j                  | |«      }|€J ‚t        j
                  |«      rt        j                  }nt        j                  }t        | |«      } t        ||«      }t        | |«      \  } }t        | |«      S )Nz=Receive two Number inputs to an elementwise binary operation!)r;  r   r^  rj  Úget_higher_dtyper°  r_  Ú
complex128Úfloat64r'   rr  r�   ©r}  r4  r±  s      r5  r€   r€   ì  sŸ   € ô
 �!”VÔ¤¨A¬vÔ!6ÜØKó
ð 	
ô
 ×"Ñ" 1 aÓ(€EØÐÐÐÜ×Ñ˜eÔ$Ü× Ñ ‰ä—‘ˆô 	   5Ó)€AÜ  5Ó)€Aä˜A˜qÓ!�D€A€qÜˆq�!‹9Ðr7  )r€  r>  rA  c                 óÜ  ‡— t        | t        «      r(t        |t        «      rt        | «      } t        |«      }�n*t        |t        «      r3t        | t        «      r#t        || j                  | j
                  ¬«      }nçt        | t        «      r3t        |t        «      r#t        | |j                  |j
                  ¬«      } n¤t        | t        «      r”t        |t        «      r„| j
                  |j
                  k7  rk| j
                  t        j
                  d«      k(  r(d| j
                  › d|j
                  › d�}t        |«      ‚t        j                  || j
                  ¬«      }t        | t        «      rt        |t        «      sJ ‚| j                  Št        j                  ‰«      rt        | |«      S t        j                  ‰«      rt        | |«      S t        j                  dˆfd„«       y )	NrT  ÚcpurU  rV  ri  r3  Fc                  ó   •— ‰ › d�S )Nz not supported for floor_dividerK  rÑ  s   €r5  rM  zfloor_divide.<locals>.<lambda>A  s   ø€  u gÐ-LÐ$M€ r7  )r;  r   r$  r?  r±  r4  r_  rm  r¢  Ú
device_putrj  rÒ  Ú_floor_divide_floatrü  Ú_floor_divide_integerr`  )r}  r4  rÅ  r±  s      @r5  r�   r�   #  s_  ø€ ô �!”VÔ¤¨A¬vÔ!6Ü˜!ÓˆÜ˜!ÓŠÜ	�A”vÔ	¤:¨a´Ô#8Ü˜! 1§7¡7°1·8±8Ô<‰Ü	�A”vÔ	¤:¨a´Ô#8Ü˜! 1§7¡7°1·8±8Ô<‰Ü	�A”vÔ	¤:¨a´Ô#8¸Q¿X¹XÈÏÉÒ=QØ�8‰8”u—|‘| EÓ*Ò*ØCÀAÇHÁHÀ:ÐMsÐtu×t|Ñt|Ðs}Ð}~ÐˆCÜ˜sÓ#Ð#ä× Ñ  ¨1¯8©8Ô4ˆAä�aœÔ ¤Z°´6Ô%:Ð:Ð:Ø�G‰G€EÜ×Ñ˜EÔ"Ü" 1 aÓ(Ð(Ü	×	Ñ	 Ô	&Ü$ Q¨Ó*Ð*ä�‰�UÓMÕNr7  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  )
rr  r±  Ú	is_signedr¢  r~   r_  ri   r’   r„   r'   )r}  r4  Úoffsets      r5  ri  ri  D  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ÐEr7  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   rN  r^  rT  )r„   r¥   r¤   rz   r—   r›   rv   r­   rE   r‡   rt   r$  r±  r4  r}   )
r}  r4  Úmodr~   Údifferent_signed_inputsÚnon_zero_remainderÚmaskÚ	floor_divÚ	basic_divÚzero_tensors
             r5  rh  rh  O  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Ð0r7  c                 ó.   — t        j                  | |«      S rD  )r¢  r‚   r3  s     r5  r‚   r‚   h  ó   € ô �:‰:�a˜ÓÐr7  c                 ó.   — t        j                  | |«      S rD  )r¢  rƒ   r3  s     r5  rƒ   rƒ   q  rv  r7  c                 ó.   — t        j                  | |«      S rD  )r¢  r„   r3  s     r5  r„   r„   z  rv  r7  ÚmantissaÚexponentc                 óf   — t         j                  j                  t        j                  | «      «      S rD  )r_  Úreturn_typesÚfrexpr¢  rï  s    r5  r}  r}  ƒ  s$   € ô ×Ñ×#Ñ#¤E§K¡K°Ó$5Ó6Ð6r7  c                 ó.   — t        j                  | |«      S rD  )r¢  r…   r3  s     r5  r…   r…   ‰  s   € ô �9‰9�Q˜‹?Ðr7  c                 ó.   — t        j                  | |«      S rD  )r¢  r†   r3  s     r5  r†   r†   ’  r[  r7  c                 ó.   — t        j                  | |«      S rD  )r¢  r‡   r3  s     r5  r‡   r‡   š  r[  r7  Úvaluesc                 ó  — t        j                  | d«      }t        j                  t        j                  | d«      t        j                  | «      «      }t        j
                  |dd«      }t        j
                  |||«      }|S r  )r_  r   r”   r—   rR   r­   )r®  r�  Úinput_eq_zeroÚinput_lt_zeroÚzeros_and_onesr>  s         r5  rˆ   rˆ   ¢  sc   € ô —H‘H˜U AÓ&€MÜ×$Ñ$¤U§X¡X¨e°QÓ%7¼¿¹ÀUÓ9KÓL€MÜ—[‘[ °°1Ó5€NÜ�[‰[˜¨°Ó?€FØ€Mr7  c                 ó.   — t        j                  | |«      S rD  )r¢  r‰   r3  s     r5  r‰   r‰   ¯  rI  r7  c                 ó.   — t        j                  | |«      S rD  )r¢  rŠ   r3  s     r5  rŠ   rŠ   ¸  s   € ô �<‰<˜˜1ÓÐr7  c                 ó.   — t        j                  | |«      S rD  )r¢  r‹   r3  s     r5  r‹   r‹   Á  s   € ô �=‰=˜˜AÓÐr7  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 ri  rÑ  )r}  r4  r“  s   €€€r5  rM  z#_check_close_args.<locals>.<lambda>Ó  s)   ø€ �4�&ÐLÈQÏWÉWÈIÐUZÐ[\×[bÑ[bÐZcÐcdÐe€ r7  r   c                  ó   •— ‰ › d‰› d�S )Nz6: rtol must be greater than or equal to zero, but got ri  rK  )r“  r‰  s   €€r5  rM  z#_check_close_args.<locals>.<lambda>×  ó   ø€ �4�&ÐNÈtÈfÐTUÐV€ r7  c                  ó   •— ‰› d‰ › d�S )Nz6: atol must be greater than or equal to zero, but got ri  rK  )rŠ  r“  s   €€r5  rM  z#_check_close_args.<locals>.<lambda>Û  r�  r7  )r_  r;  r±  r`  ©r“  r}  r4  r‰  rŠ  s   `````r5  Ú_check_close_argsr’  Ê  sV   ü€ ô 
×ÑØ	�‰�1—7‘7ÑÝeôô 
‡L�LØ�‰	ÜVôô 
‡L�LØ�‰	ÜVõr7  Ú	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   rj  rÒ  r±  r°  r”   r’   rR   r¢  Úconvert_element_typer_  Úget_default_dtypert   r-   rš   r¤   rN   r�   )	r}  r4  r‰  rŠ  r“  ÚcloseÚallowed_errorÚactual_errorrõ  s	            r5  r�   r�   à  s  € ô ˜?¨a°1¸4ÀdÕKäˆq�!‹H€EÙ”e×*Ñ*¨1¯7©7Ô3´u×7MÑ7MÈaÏgÉgÔ7VÜ˜5¤+¬e°A«h¼¸a»Ó"AÓBˆð ˆq‚y�T˜Q’YØˆô ×Ñ §¡Ô(´×1GÑ1GÈÏÉÔ1PÜ×&Ñ& q¬%×*AÑ*AÓ*CÓDˆÜ×&Ñ& q¬%×*AÑ*AÓ*CÓDˆä˜œc¤# a¨£,Ó/Ó0€MÜ”s˜1˜a“y“>€Lô ØŒ{œ8 LÓ1´2°lÀMÓ3RÓSó€Fð €Mr7  c                 óÞ  — | j                   }|t        j                  t        j                  fv }|rHt	        j
                  | t        j                  «      } t	        j
                  |t        j                  «      }t        j                  | |«      }t        j                  |dk(  d|«      }t        j                  t	        j                  | |«      |z  «      }|s|S t	        j
                  ||«      S r  )r±  r_  Úint8Úint16r¢  r•  Úint32r…   r­   r-   r~   )r}  r4  r±  Úpromote_to_intÚgÚress         r5  rŽ   rŽ     s±   € ð �G‰G€Eð œuŸz™z¬5¯;©;Ð7Ð7€NÙÜ×&Ñ& q¬%¯+©+Ó6ˆÜ×&Ñ& q¬%¯+©+Ó6ˆä�	‰	�!�Q‹€Aä�‰�A˜‘F˜A˜qÓ!€AÜ
�)‰)”E—I‘I˜a “O aÑ'Ó
(€CÙ$ˆ3ÐP¬%×*DÑ*DÀSÈ%Ó*PÐPr7  c                 ó.   — t        j                  | |«      S rD  )r¢  r�   r3  s     r5  r�   r�      r[  r7  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“   rN   rj  r°  r±  rW   r?   rX   rR   ÚcomplexrÖ  )
r}  r4  rq  Úmax_Úmin_Úinf_maskÚneg_min_maskÚinf_valsÚnon_nan_valsÚnan_masks
             r5  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ÐSr7  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 dtypesrK  rK  r7  r5  rM  zlogaddexp2.<locals>.<lambda>M  rÏ  r7  r]  r!  )r_  r`  rj  r°  r±  r­   r’   rO   r  rW   rX   rB   )r}  r4  rq  r¤  r¥  r¦  Ú	inv_log_2rõ  s           r5  r‘   r‘   E  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Ó+Ð+r7  c                 óœ   — t        j                  | j                  «      s| dk7  } t        j                  |j                  «      s|dk7  }| |z  S r  ©rj  rû  r±  r3  s     r5  r’   r’   Y  óC   € ô ×!Ñ! !§'¡'Ô*Ø�‰FˆÜ×!Ñ! !§'¡'Ô*Ø�‰FˆØˆq‰5€Lr7  c                 óP   — t        j                  | j                  «      s| dk(  S |  S r  r¯  r|  s    r5  r“   r“   d  s$   € ä×!Ñ! !§'¡'Ô*Ø�A‰vˆØˆ2€Ir7  c                 óª   — t        j                  | j                  «      s| dk7  } t        j                  |j                  «      s|dk7  }t        | |«      S r  )rj  rû  r±  rx   r3  s     r5  r”   r”   k  sG   € ô ×!Ñ! !§'¡'Ô*Ø�‰FˆÜ×!Ñ! !§'¡'Ô*Ø�‰FˆÜ�a˜ÓÐr7  c                 óœ   — t        j                  | j                  «      s| dk7  } t        j                  |j                  «      s|dk7  }| |z  S r  r¯  r3  s     r5  r•   r•   w  r°  r7  c                 ó.   — t        j                  | |«      S rD  )r¢  r—   r3  s     r5  r—   r—   ‚  r[  r7  c                 ó.   — t        j                  | |«      S rD  )r¢  r˜   r3  s     r5  r˜   r˜   Š  ó   € ô �=‰=˜˜AÓÐr7  c                 ó.   — t        j                  | |«      S rD  )r¢  r™   r3  s     r5  r™   r™   ‘  r¶  r7  )r€  r>  c                 ó.   — t        j                  | |«      S rD  )r¢  rš   r3  s     r5  rš   rš   ˜  s   € ô
 �9‰9�Q˜‹?Ðr7  c                 ó.   — t        j                  | |«      S rD  rÞ  r3  s     r5  r›   r›      r[  r7  c                 ó.   — t        j                  | |«      S rD  )r¢  rœ   r3  s     r5  rœ   rœ   ¨  s   € ô �?‰?˜1˜aÓ Ð r7  c                 ó.   — t        j                  | |«      S rD  )r¢  r    r3  s     r5  r    r    ±  s   € ô �?‰?˜1˜aÓ Ð r7  rN  c                 ól   — t        | t        «      rd}t        |«      ‚t        j                  || |¬«      S )Nz?Received a Number for the first argument, but expected a TensorrC  )r;  r   r^  r_  r¤   )r}  r4  rD  rÅ  s       r5  r¡   r¡   ¹  s0   € ô �!”VÔØOˆÜ˜‹oÐä�9‰9�Q˜ Ô'Ð'r7  c                ó¾  — t        | |«      \  } }t        | t        «      rgt        |t        «      rWt        j                  t        j                  | j                  «       xr  t        j                  |j                  «       d„ «       |dk7  r¯t        | t        «      r| j                  n|j                  }t        j                  |«      }t        j                  t        |«      |«      sdt        |«      › d|› d�}t        |«      ‚t        |t        j                  «      rt        j                  ||«      }n||z  }t        j                  | |«      }t!        | |g|«      S )z/
    Reference implementation of torch.sub
    c                   ó   — 	 y)NzwSubtraction, the `-` operator, with two bool tensors is not supported. Use the `^` or `logical_xor()` operator instead.rK  rK  r7  r5  rM  zsub.<locals>.<lambda>Þ  s   € ðCð r7  rN  rF  rÃ  ri  )rr  r;  r#   r_  r`  rj  rû  r±  r   r   r2  r^  r?  r¢  rš   r¤   r?  rG  s          r5  r¤   r¤   É  s  € ô  ˜A˜qÓ!�D€A€qä�!”ZÔ ¤Z°´:Ô%>Ü�‰Ü×&Ñ& q§w¡wÓ/Ð/ÒW¼×8NÑ8NÈqÏwÉwÓ8WÐ4Wñô	
ð �‚zÜ% a¬Ô4�—’¸!¿'¹'ˆÜ×)Ñ)¨%Ó0ˆÜ×*Ñ*¬4°«;¸ÔDØ+¬D°«K¨=Ð8WÐXcÐWdÐdeÐfˆCÜ˜S“/Ð!Ü�aœŸ™Ô&Ü—	‘	˜!˜UÓ#‰Að
 �E‘	ˆAä�Y‰Y�q˜!‹_€FÜ'¨¨A¨°Ó7Ð7r7  r¥   )r€  r“  rt  r>  c                 ó.   — t        j                  | |«      S rD  )r¢  r~   r3  s     r5  r¥   r¥   ö  s   € ô �9‰9�Q˜‹?Ðr7  c           
      óÌ  — t        j                  t        | t        «      xs t        |t        «      d„ «       t        |t        «      r3t        | t        «      r#t        | |j                  |j                  ¬«      } nBt        | t        «      r2t        |t        «      r"t        || j                  | j                  ¬«      }t        | t        «      sJ ‚t        |t        «      sJ ‚t        j                  t        j                  | d«      dt        j                  | t        j                  |«      «      «      }t        j                  t        j                  |«      t        d«      |«      S )Nc                   ó   — y)Nz/Expected either argument a or b to be a Tensor"rK  rK  r7  r5  rM  zxlogy.<locals>.<lambda>	  rÏ  r7  rT  r   rö  )r_  r`  r;  r#   r   r$  r±  r4  r­   r   rš   rW   rR   rÖ  )r}  r4  Úrhss      r5  r§   r§      sí   € ô 
‡L�LÜ�1”jÓ!Ò>¤Z°´:Ó%>ÙAôô �!”ZÔ ¤Z°´6Ô%:Ü˜! 1§7¡7°1·8±8Ô<‰Ü	�A”zÔ	"¤z°!´VÔ'<Ü˜! 1§7¡7°1·8±8Ô<ˆô �aœÔ$Ð$Ð$Ü�aœÔ$Ð$Ð$Ü
�+‰+”e—h‘h˜q !“n a¬¯©°1´e·i±iÀ³lÓ)CÓ
D€CÜ�;‰;”u—{‘{ 1“~¤u¨U£|°SÓ9Ð9r7  )r€  rt  r>  c                 óÀ   — t        j                  | «      }t        j                  |«      rt        j                  | |«      S t        t        j                  | |«      «      S rD  )rj  Ú	get_dtyperü  r¢  r~   rs   rc  s      r5  r¦   r¦     sE   € ô �O‰O˜AÓ€EÜ×Ñ˜eÔ$Ü�y‰y˜˜A‹Ðä”—‘˜1˜a“Ó!Ð!r7  )rð  Útensor1Útensor2©rÀ  rÅ  rÆ  c                óÐ   ‡‡— ‰�X| j                   }t        j                  |«      Št        j                  t        j
                  t        ‰«      ‰«      ˆˆfd„«       | ‰|z  |z  z   S )z3
    Reference implementation of torch.addcdiv
    c                  ó(   •— dt        ‰«      › d‰ › d�S rÂ  r1  ©rÄ  rÀ  s   €€r5  rM  zaddcdiv.<locals>.<lambda>B  ó   ø€ Ð-¬d°5«k¨]Ð:YÐZeÐYfÐfgÐh€ r7  ©r±  rj  r   r_  r;  r   r2  ©rð  rÅ  rÆ  rÀ  r±  rÄ  s      ` @r5  r¨   r¨   -  ó_   ù€ ð  ÐØ—
‘
ˆÜ×)Ñ)¨%Ó0ˆÜ×ÑÜ×'Ñ'¬¨U«°[ÓAÜhô	
ð
 �%˜'‘/ GÑ+Ñ+Ð+r7  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Â  r1  rÊ  s   €€r5  rM  zaddcmul.<locals>.<lambda>]  rË  r7  rÌ  rÍ  s      ` @r5  r©   r©   H  rÎ  r7  )r}  rþ  r[  rþ  r[  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!)r^  r_  rR   rx   r†   r­   r�   )r}  rþ  r[  rÅ  Úa_isnanÚ	conditions         r5  rª   rª   c  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Ó*ˆà€Hr7  c                 ó0   — t        j                  | |¬«      S )N)rþ  ©r_  rª   )rð  rþ  s     r5  r{   r{   ƒ  ó   € ô �;‰;�t Ô%Ð%r7  c                 ó0   — t        j                  | |¬«      S )N)r[  rÕ  )rð  r[  s     r5  r|   r|   Œ  rÖ  r7  Úpredc                 ó   ‡ — |�|€t         ‚t        j                  ‰ ||d¬«       t        j                  ‰ j
                  t        j                  u ˆ fd„«       t        ‰ ||«      \  Š }}t        j                  ‰ ||«      S )ú T©Úallow_cpu_scalar_tensorsc                  ó"   •— d‰ j                   › �S )Nz#expected predicate to be bool, got rÑ  )rØ  s   €r5  rM  zwhere.<locals>.<lambda>¯  s   ø€ Ð5°d·j±j°\ÐB€ r7  )
ÚNotImplementedErrorrj  Úcheck_same_devicer_  r`  r±  rÓ  rr  r¢  r­   )rØ  r}  r4  s   `  r5  r­   r­   œ  sp   ø€ ð 	€y�A�IÜ!Ð!ä	×Ñ˜D ! QÀÕFÜ	‡L�LØ�
‰
”e—j‘jÐ ÛBôô
 " $¨¨1Ó-�J€Dˆ!ˆQÜ�;‰;�t˜Q Ó"Ð"r7  ©Úmemory_formatrá  c                ó4   — t        j                  | |¬«      }|S ©Nrà  )r¢  r®   )r}  rá  rõ  s      r5  r®   r®   ¹  s   € ô
 �[‰[˜¨-Ô8€FØ€Mr7  )Ú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!)r4  rm  r¢  r¯   )r}  r4  rä  rÅ  s       r5  r¯   r¯   Â  sM   € Ù !§(¡(¨a¯h©hÒ"6Ø/°·±¨z¸ÀQÇXÁXÀJÐNxÐyˆÜ˜3ÓÐä�=‰=˜˜AÓÐr7  c                 óÚ   — | j                  «       dk7  rd| j                  «       › d�}t        |«      ‚t        j                  | j                  «      } |t        j                  | «      «      S )NrN  zCan't convert a tensor with z elements to a number!)rò  r^  rj  r   r±  r¢  r°   )r}  rÅ  Únumber_types      r5  r°   r°   Ê  sW   € à‡w�wƒy�A‚~Ø,¨Q¯W©W«Y¨KÐ7MÐNˆÜ˜‹oÐô ×%Ñ% a§g¡gÓ.€KÙ”u—z‘z !“}Ó%Ð%r7  r4  Ú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ã  )r4  r±  ré  r_  Úpreserve_formatrj  Úis_contiguous_for_memory_format)r}  r4  r±  rè  ré  rá  rê  rë  s           r5  Ú_to_will_aliasrï  ×  s—   € ð ˆò 
	
Ø�tˆ^Ò1˜qŸx™x¨6Ñ1ò
	
à�dˆ]Ò.˜aŸg™g¨Ñ.ò
	
ð �tˆ^Ò1˜qŸx™x¨6Ñ1ò
	
ð ˜TÐ!ò UØ¤× 5Ñ 5Ñ5òUä×4Ñ4°QÀmÔTðr7  c                  ó   — t         ‚rD  )rÞ  )rq  r‹  s     r5  Ú_to_dispatchrñ  ð  s   € ä
Ðr7  c                 ó   — | ||||dœ}|S ©N)r4  r±  rë  rè  rá  rK  ©r4  r±  rë  rè  rá  r‹  s         r5  Ú
_to_devicerõ  õ  s!   € ð ØØ$ØØ&ñ€Fð €Mr7  c                 ó<   — t        j                  | «      ||||dœ}|S ró  )r_  r4  rô  s         r5  Ú_to_device_strr÷    s*   € ô —,‘,˜vÓ&ØØ$ØØ&ñ€Fð €Mr7  c                 ó   — | |||dœ}|S )N)r±  rë  rè  rá  rK  )r±  rë  rè  rá  r‹  s        r5  Ú	_to_dtyperù    s   € ð Ø$ØØ&ñ	€Fð €Mr7  Úotherc                 ó`   — | j                   }| j                  }| j                  }||||||dœ}|S )N)r4  r±  ré  rë  rè  rá  )r4  r±  ré  )rú  rë  rè  rá  r4  r±  ré  r‹  s           r5  Ú	_to_otherrü  )  sA   € ð �\‰\€FØ�K‰K€EØ�\‰\€Fð ØØØ$ØØ&ñ€Fð €Mr7  Ú	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±  r4  ré  rá  r4  rá  )	r;  rn  r_  r4  rí  r2  Úindexrš  Úpop)r}  rý  Úoptions_to_checkÚkws       r5  Ú_canonicalize_to_argumentsr  A  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Õ!ñ"r7  c                 óê  — t        |«      dk7  rt        |i |¤Ž}d|vsJ ‚t        | |«       t        | fi |¤Žr| S d|v r|j	                  d«      nd}d|v r|j	                  d«      nd}|s)|j                  d| j                  «      | j                  k7  r>|s<d|vr8d|vr4d	|vr0t        j                  | |j                  d| j                  «      «      S t        j                  | fi |¤Ž}t        || «       |S )
Nr   rê  rè  Frë  r±  rá  r4  ré  )rQ  rñ  r  rï  r   Úgetr±  r¢  r•  r_  r  r¯   )r}  rq  r‹  rè  rë  rõ  s         r5  r±   r±   Y  sø   € ä
ˆ4ƒy�A‚~Ü˜tÐ. vÑ.ˆð ˜vÑ%Ð%Ð%Ü˜q &Ô)ä�aÑ"˜6Ò"Øˆà!'¨6Ñ!1ˆ6�:‰:�fÔ°u€DØ1?À6Ñ1I�6—:‘:˜nÔ-Èu€Lñ 
�&—*‘*˜W a§g¡gÓ.°!·'±'Ò9ÙØ FÑ*Ø˜VÑ#Ø˜VÑ#ô ×)Ñ)¨!¨V¯Z©Z¸ÀÇÁÓ-IÓJÐJä×Ñ˜aÑ* 6Ñ*€FäˆF�AÔØ€Mr7  )Úhas_identityÚaccepts_dim_tupler0  Úkeepdimsr±  r—  ry  r  r  r0  r  r—  Úoutput_dtype_kindc                ó  ‡ — t        ‰ t        «      sJ ‚‰ j                  dkD  rt        d‰ j                  › d�«      ‚|�.t        |t        «      sJ ‚|�||j                  k7  rt        d«      ‚|s|�t        |t
        «      sJ ‚t        |t
        «      r|f}t        j                  ‰ j                  |«      }|s<‰ j                  dk(  xs t        j                  ˆ fd„|D «       «      }	|	st        d«      ‚t        j                  ‰ ||«      \  }
}t        ‰ |
«      Š  |‰ |«      }|rst        ‰ j                  «      D �cg c]  }||vr‰ j                  |   nd‘Œ }}t        ‰ j                  «      D �cg c]	  }||vsŒ|‘Œ }}t        j                  |||«      }|�C|€J ‚|�||j                  k7  rt        d	«      ‚t!        ||j                  «      }t#        ||¬
«      S |j                  |k7  r|�t        j$                  ||«      }|S c c}w c c}w )Né@   zReceived a tensor with z? dimensions, but only tensors with up to 64 dims are supported!z4dtype argument and out dtype must match in reductionr   c              3   ó<   •K  — | ]  }‰j                   |   –— Œ y ­wrD  ©rR  ©rG  Úir}  s     €r5  rI  z_reduction.<locals>.<genexpr>¡  s   øè ø€ Ò1KÀ°!·'±'¸!µ*Ñ1Kùó   ƒzJreducing over zero-size dimension for reduction operation without identityrN  z7Expected the dtype of reduction result and out to match©Ú	copy_fromr¯   )r;  r#   Úndimrm  r±  r   rj  Úreduction_dimsrR  r*  r²   Úreduction_dtypesr'   r]  r¢  Úbroadcast_in_dimr(   r)   r•  )r}  ry  r  r  r0  r  r±  r—  r	  Úvalid_shaperí  rì  rõ  r  Úoutput_shapeÚbroadcast_dimss   `               r5  Ú
_reductionr  €  s  ø€ ô �aœÔ$Ð$Ð$Ø‡v�v�‚{ÜØ% a§f¡f XÐ-lÐmó
ð 	
ð €Ü˜#œzÔ*Ð*Ð*ØÐà˜Ÿ	™	Ò!Ü"ØJóð ñ Øˆ|œz¨$´Ô4Ð4Ð4Ü�$œÔØˆwˆÜ×Ñ §¡¨Ó.€DÙØ—f‘f ‘kÒK¤X§\¡\Ó1KÀdÔ1KÓ%KˆÙÜØ\óð ô ',×&<Ñ&<Ø	Ð˜eó'Ñ#Ð�|ô 	  Ð#4Ó5€AÙ�!�T‹]€FÙÜDIÈ!Ï&É&ÃMÖR¸q a¨t¡m˜Ÿ™ š
¸Ñ:ÐRˆÐRÜ%*¨1¯6©6£]ÖD °a¸t²mš!ÐDˆÐDÜ×'Ñ'¨°¸nÓMˆà
€ØÐ'Ð'Ð'ØÐ °·±Ò!:ÜØIóð ô    V§\¡\Ó2ˆÜ¨¸Ô<Ð<à‡|�|�|Ò#¨Ð(@Ü×+Ñ+¨F°LÓAˆà€Mùò! SùÚDs   Ä;HÅ0	H
Å:H
c                 óB  ‡ — t        t        ‰ j                  «      }t        ‰ di «      } t        «       |«      Š t	        ‰ «      ddœˆ fd„
«       }‰ j                  › d�}||_        |j
                  j                  |«        t        t        t        |«      «      |«       |S )zk
    Given a view function (e.g. torch.diagonal) generates its copy variant (e.g. torch.diagonal_copy)
    Ú__annotations__N©r—  c                 óN   •—  ‰|d| i|¤Ž}| �|S t        j                  d„ |«      S )Nr—  c                 óB   — | j                  t        j                  ¬«      S rã  )r®   r_  Úcontiguous_formatrL  s    r5  rM  z3_make_copy_from_view.<locals>._fn.<locals>.<lambda>Î  s   € �a—g‘g¬E×,CÑ,C�gÓD€ r7  )ÚpytreeÚtree_map)r—  rq  r‹  rõ  rŒ  s       €r5  r�  z!_make_copy_from_view.<locals>._fnÇ  s8   ø€ á�TÐ-˜sÐ- fÑ-ˆØˆ?ØˆMä�‰ÙDØó
ð 	
r7  Ú_copy)rš  r›  r…  r,   r	   r  Úupdaters  )rŒ  Úaten_fnÚannotationsr�  Ú	copy_names   `    r5  Ú_make_copy_from_viewr(  ¿  s”   ø€ ô ”d˜BŸK™KÓ(€GÜ˜"Ð/°Ó4€KØ	Œ‹�wÓ	€Bä
ˆ2ƒYØõ 
ó ð
ð —;‘;�-˜uÐ%€IØ€C„LØ×Ñ×Ñ˜{Ô+Ø4Ôœ7¤4¨Ó3Ó4°SÔ9Ø€Jr7  c                 óü   — t        j                  t        j                  t        j                  | «      ||¬«      «      }| j                  t         j                  k(  r |j                  t         j                  ¬«      }|S )Nré  rÑ  )r_  r“   rµ   r±  Úuint8r±   )r}  rç  rê  rõ  s       r5  r²   r²   Ù  sU   € ô ×ÑœuŸy™y¬×):Ñ):¸1Ó)=¸sÈGÔTÓU€Fà‡w�w”%—+‘+ÒØ—‘¤§¡�Ó-ˆà€Mr7  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;  ÚlistrY  rQ  r®   r½   r›   r±  r*  r¢  r•  )r}  rç  rê  rî  rõ  s        r5  rµ   rµ   è  s‚   € ô 
! ¤E§J¡JÓ	/€BÜ�#œœe�}Ô%¬#¨c«(°aª-Ø—‘“‰à—‘˜C¨�Ó1×4Ñ4°UÓ;ˆð 	‡w�w”%—+‘+ÑÜ×)Ñ)¨&´%·+±+Ó>Ð>à€Mr7  )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 ©NrK  ©r0  r  r±  r—  r	  )r±  rj  rû  rü  r_  Úint64r  r¢  r½   r    ÚSAME©r}  rç  rê  r±  r—  s        r5  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ôð r7  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  ©r}  rR  s   €€r5  rM  zsum_to_size.<locals>.<lambda>!	  s   ø€ Ð% e WÐ,IÈ!Ï'É'ÈÐRSÐT€ r7  r   c              3   ó\   •K  — | ]#  }‰|‰z
     d k(  r‰j                   |   d k7  r|–— Œ% y­w©rN  Nr  )rG  r  r}  Úleading_dimsrR  s     €€€r5  rI  zsum_to_size.<locals>.<genexpr>(	  s9   øè ø€ ò 5àØ��\Ñ!Ñ" aÒ'¨A¯G©G°A©J¸!ªOô 	
ñ5ùs   ƒ),T)rç  rê  r±  )rj  Úextract_shape_from_varargsr_  r`  Úis_expandable_torR  Úis_same_shaperQ  r¢  Úview_ofr  rY  r]  r½   )r}  rR  Úreduce_dimsr;  s   `` @r5  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ÐBr7  c          	      óN  — |€j|�|j                   }n[t        j                  | j                   «      st        j                  | j                   «      rt        j
                  }n| j                   }|dk(  s|g k(  rd }t        | t        j                  ||||t        j                  ¬«      S r.  )r±  rj  rû  rü  r_  r0  r  r¢  r¿   r    r1  r2  s        r5  r¿   r¿   0	  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ôð r7  r  c          
      óx   — |dk(  s|g k(  rd }t        | t        j                  ||d |dt        j                  ¬«      S ©NrK  F©r0  r  r±  r—  r  r	  )r  r¢  r´   r    r1  ©r}  rç  rê  r—  s       r5  r´   r´   N	  óE   € ð ˆb‚y�C˜2’IØˆäØ	Ü�
‰
ØØØØØÜ4×9Ñ9ô	ð 	r7  c          
      óx   — |dk(  s|g k(  rd }t        | t        j                  ||d |dt        j                  ¬«      S rC  )r  r¢  r³   r    r1  rE  s       r5  r³   r³   f	  rF  r7  c                 ó6   — |€t        | t        «      r| }d } | |fS rD  )r;  rÓ  )rç  Úunbiaseds     r5  Ú_dim_var_dispatchrJ  ~	  s'   € ð ÐœJ s¬DÔ1ØˆØˆØ�ˆ=Ðr7  ©Ú
correctionrI  rL  c          
      óÜ   — t        ||«      \  }}t        j                  ||«      }|dk(  s|g k(  rd }t        | t	        t
        j                  |¬«      ||d d dt        j                  ¬«      }|S )NrK  rK  TrD  )	rJ  rj  Úset_correctionr  r   r¢  rÀ   r    ÚCOMPLEX_TO_FLOAT)r}  rç  rI  rê  rL  rõ  s         r5  rÀ   rÀ   ˆ	  sr   € ô & c¨8Ó4�M€CˆÜ×%Ñ% h°
Ó;€Jà
ˆb‚y�C˜2’IØˆäØ	Ü”—	‘	 jÔ1ØØØØØÜ4×EÑEô	€Fð €Mr7  c                ó.  — t        ||«      \  }}t        j                  ||«      }t        j                  | t        j
                  «      \  }}t        | |«      } t        j                  | |||¬«      }t        j                  |«      }|€J ‚t        ||«      S ©N)rL  rê  )
rJ  rj  rN  r  r    rO  r'   r_  rÀ   rn   )	r}  rç  rI  rê  rL  Úopmath_dtyper±  Úa_varÚa_stds	            r5  r»   r»   ¥	  s�   € ô & c¨8Ó4�M€CˆÜ×%Ñ% h°
Ó;€Jä×0Ñ0Ø	Ô%×6Ñ6óÑ€L�%ô 	   <Ó0€AÜ�I‰I�a˜¨¸WÔE€EÜ�J‰J�uÓ€EØÐÐÐÜ" 5¨%Ó0Ð0r7  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)        ||«      }|�5t        |t*        «      sJ ‚t-        ||j                  «      }t/        ||¬«      S |S )NrK  r/  c                  ó   •— d‰€dnd› d‰ › �S )Nz&mean(): could not infer output dtype. ÚInputr   z> dtype must be either a floating point or complex dtype. Got: rK  )r±  Ú
orig_dtypes   €€r5  rM  zmean.<locals>.<lambda>Ö	  s'   ø€ Ø4Ø$Ð,‰w°*Ð=ð >7Ø7<°gð?ð r7  r   rN  c              3   ó<   •K  — | ]  }‰j                   |   –— Œ y ­wrD  r  r  s     €r5  rI  zmean.<locals>.<genexpr>ß	  s   øè ø€ Ò7QÀq¸¿¹À½
Ñ7Qùr  r  )r±  r  r¢  r½   r    ÚKEEP_PROMOTED_TYPEr_  r`  rj  rÒ  r°  r;  r   r  rR  r  r   Úoperatorrš   r¥   r'   r#   r(   r)   )
r}  rç  rê  r±  r—  rõ  r0  Únelemrì  rX  s
   `  `     @r5  r¸   r¸   ¼	  s0  ú€ ð ˆ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Ô*Ð*Ð*Ü  V§\¡\Ó2ˆÜ¨¸Ô<Ð<Ø€Mr7  Úout0Úout1)rI  rê  rL  c                ód  — t        ||«      \  }}t        j                  ||«      }t        j                  | t        j
                  «      \  }}| j                  }t        | |«      } t        j                  | |||¬«      \  }}	t        j                  |«      }
|€J ‚t        |
|«      t        |	|«      fS rQ  )rJ  rj  rN  r  r    rO  r±  r'   r_  rÁ   rn   )r}  rç  rI  rê  rL  rR  r±  Úoriginal_dtyperS  Úa_meanrT  s              r5  r¼   r¼   ê	  s®   € ô & c¨8Ó4�M€CˆÜ×%Ñ% h°
Ó;€JÜ×0Ñ0Ø	Ô%×6Ñ6óÑ€L�%ð —W‘W€NÜ  <Ó0€AÜ—N‘N 1 c°jÈ'ÔR�M€Eˆ6Ü�J‰J�uÓ€EØÐÐÐä  uÓ-Ü ¨Ó7ðð r7  c                ób   — t        ||«      \  }}t        | ||||¬«      }t        | ||«      }||fS )NrK  )rJ  rÀ   r¸   )r}  rç  rI  rê  rL  ÚvÚms          r5  rÁ   rÁ   
  s=   € ô & c¨8Ó4�M€CˆÜˆAˆs�H˜g°*Ô=€AÜˆQ��WÓ€AØˆaˆ4€Kr7  )rð  Úvec1Úvec2)ÚbetarD  re  rf  rg  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 )NrN  c                  ó$   •— d‰ j                   › d�S )Nz*addr: Expected 1-D argument vec1, but got ú-D©r  )re  s   €r5  rM  zaddr.<locals>.<lambda>$
  ó   ø€ Ð<¸T¿Y¹Y¸KÀrÐJ€ r7  c                  ó$   •— d‰ j                   › d�S )Nz*addr: Expected 1-D argument vec2, but got rj  rk  )rf  s   €r5  rM  zaddr.<locals>.<lambda>(
  rl  r7  rD  rg  c                  ó   •— d‰ › d�S )NzBoolean z$ only supported for Boolean results.rK  )Úarg_names   €r5  rM  zaddr.<locals>.<lambda>0
  s   ø€ ˜( 8 *Ð,PÐQ€ r7  r   c                  ó    •— dt        ‰ «      › �S )Nzexpected bool/int beta but got r1  ©rg  s   €r5  rM  zaddr.<locals>.<lambda>7
  s   ø€ Ð5´d¸4³j°\ÐB€ r7  c                  ó    •— dt        ‰ «      › �S )Nz expected bool/int alpha but got r1  rq  s   €r5  rM  zaddr.<locals>.<lambda>;
  s   ø€ Ð6´t¸D³z°lÐC€ r7  Fc                  ó:   •— dt        ‰ «      › d‰j                  › �S ©Nzcannot safely convert z to ©r2  r±  )rg  rð  s   €€r5  rM  zaddr.<locals>.<lambda>G
  s   ø€ Ð,¬T°$«Z¨L¸¸T¿Z¹Z¸LÐI€ r7  c                  ó:   •— dt        ‰ «      › d‰j                  › �S rt  ru  )rD  rð  s   €€r5  rM  zaddr.<locals>.<lambda>K
  s   ø€ Ð,¬T°%«[¨M¸¸d¿j¹j¸\ÐJ€ r7  )r_  r`  r  r;  rÓ  rj  rû  r±  rÜ   rR  r   r2  ÚintÚouterr  r”   r   )rð  re  rf  rg  rD  Úargro  s   ````` @r5  rÂ   rÂ   
  s  ý€ ô 
‡L�LØ�	‰	�Q‰ÛJôô 
‡L�LØ�	‰	�Q‰ÛJôð ! 'Ð*¨T°6¨NÐ;ò ‰ˆˆXÜ�cœ4Õ Ü�L‰LÜ×&Ñ& t§z¡zÓ2ò 7Ü×*Ñ*¨4¯:©:Ó6ò7ä×*Ñ*¨4¯:©:Ó6ÛQõ	ðð �;‰;�t—z‘z !‘} d§j¡j°¡mÓ4€DÜ×Ñ˜dŸj™jÔ)ä�‰Ü!¤$ t£*¬cÓ2ÛBô	
ô 	�‰Ü!¤$ u£+¬sÓ3ÛCô	
ñ Ù.3”5—;‘;˜t TÓ*ÐU¼¿¹ÈÈuÓ9UÐUä×#Ñ#ØÙ+0”—‘˜D $Ó'óð ä6;·o±oÀdÈEÓ6Róð ô
 	�‰Ü!¤$ t£*¬m¸D¿J¹JÓ.GÓHÜIô	
ô 	�‰Ü!¤$ u£+¬}¸T¿Z¹ZÓ/HÓIÜJô	
ð �1Š9àœ5Ÿ;™; t¨TÓ2Ñ2Ð2à˜$‘; ¬¯©°T¸4Ó)@Ñ!@Ñ@Ð@r7  ry  rq  .c                 óú   — |s't        | t        j                  j                  «      r| }n,t        | t        j                  j                  «      rJ ‚| f|z   }t	        d„ |D «       «      }t        |«      dkD  r|S |d   S )z5Reference implementation of :func:`torch.atleast_1d`.c              3   óV   K  — | ]!  }|j                   d k\  r|nt        |d«      –— Œ# y­w)rN  r   N)r  r  ©rG  r}  s     r5  rI  zatleast_1d.<locals>.<genexpr>^
  s%   è ø€ ÒE¸!�Q—V‘V˜q’[‘¤i°°1£oÓ5ÑEùs   ‚')rN  r   )r;  ÚcollectionsÚabcr   rY  rQ  )ry  rq  Úargs_r   s       r5  rÅ   rÅ   U
  sm   € ñ ”J˜s¤K§O¡O×$<Ñ$<Ô=Ø‰ä˜c¤;§?¡?×#;Ñ#;Ô<Ð<Ð<Ø�˜‘ˆÜ
ÑE¸uÔEÓ
E€CÜ�c“(˜Q’,ˆ3Ð* C¨¡FÐ*r7  Úat_least_fnc                 óN   —  | |«      }t        |t        «      sJ ‚t        ||«      S rD  )r;  r#   r  )r€  rç  ry  Úarg_s       r5  Ú_unsqueeze_atleastrƒ  d
  s+   € ñ �sÓ€DÜ�dœJÔ'Ð'Ð'Ü�T˜3ÓÐr7  c                 ó*  ‡— |s't        | t        j                  j                  «      r| }n,t        | t        j                  j                  «      rJ ‚| f|z   }t	        t
        t        d«      Št        ˆfd„|D «       «      }t        |«      dkD  r|S |d   S )z5Reference implementation of :func:`torch.atleast_2d`.r   c              3   óP   •K  — | ]  }|j                   d k\  r|n ‰|«      –— Œ y­w)r!  Nrk  )rG  r}  Úunsqueeze_atleast_1ds     €r5  rI  zatleast_2d.<locals>.<genexpr>w
  ó&   øè ø€ ÒMÀ!�Q—V‘V˜q’[‘Ñ&:¸1Ó&=Ó=ÑMùó   ƒ#&rN  )	r;  r}  r~  r   r   rƒ  rÅ   rY  rQ  )ry  rq  r  r   r†  s       @r5  rÆ   rÆ   m
  s~   ø€ ñ ”J˜s¤K§O¡O×$<Ñ$<Ô=Ø‰ä˜c¤;§?¡?×#;Ñ#;Ô<Ð<Ð<Ø�˜‘ˆÜ"Ô#5´zÀ1ÓEÐÜ
ÓMÀuÔMÓ
M€CÜ�c“(˜Q’,ˆ3Ð* C¨¡FÐ*r7  c                 ó*  ‡— |s't        | t        j                  j                  «      r| }n,t        | t        j                  j                  «      rJ ‚| f|z   }t	        t
        t        d«      Št        ˆfd„|D «       «      }t        |«      dkD  r|S |d   S )z5Reference implementation of :func:`torch.atleast_3d`.rS  c              3   óP   •K  — | ]  }|j                   d k\  r|n ‰|«      –— Œ y­w)é   Nrk  )rG  r}  Úunsqueeze_atleast_2ds     €r5  rI  zatleast_3d.<locals>.<genexpr>†
  r‡  rˆ  rN  r   )	r;  r}  r~  r   r   rƒ  rÆ   rY  rQ  )ry  rq  r  r   rŒ  s       @r5  rÇ   rÇ   |
  s~   ø€ ñ ”J˜s¤K§O¡O×$<Ñ$<Ô=Ø‰ä˜c¤;§?¡?×#;Ñ#;Ô<Ð<Ð<Ø�˜‘ˆÜ"Ô#5´zÀ2ÓFÐÜ
ÓMÀuÔMÓ
M€CÜ�c“(˜Q’,ˆ3Ð* C¨¡FÐ*r7  r)  r%  r+  c                 óZ   — |�|n| j                  «       }t        j                  | |||«      S rD  )r+  r¢  rÈ   )r}  r)  r%  r+  Ústorage_offset_ints        r5  rÈ   rÈ   Š
  s6   € ð )Ð4‰¸!×:JÑ:JÓ:Lð ô ×Ñ˜A˜t VÐ-?Ó@Ð@r7  Úsrcc                 ó@   — |€dn|}t        j                  | ||||«      S r  )r¢  rÊ   )r®  r�  r)  r%  r+  rŽ  s         r5  rÊ   rÊ   –
  s+   € ð -Ð4™¸.ÐÜ×#Ñ# E¨3°°fÐ>PÓQÐQr7  c                  ó8   — t        j                  t        | Ž «      S rD  )r_  ÚSizerc  )rb  s    r5  rÌ   rÌ   £
  s   € Ü�:‰:Ô'¨Ð0Ó1Ð1r7  c                  óv   — t        | «      dk(  rt        | d   t        «      s| d   } t        t	        | ddiŽ«      S )NrN  r   rd  F)rQ  r;  r?  r,  rr  ©Útensorss    r5  rÍ   rÍ   §
  s<   € ô ˆ7ƒ|�qÒ¤¨G°A©J¼Ô!?Ø˜!‘*ˆÜÔ  'ÐMÀuÑMÓNÐNr7  c                 óÈ   — t        |«      t        | j                  «      z
  }t        t        |t        | j                  «      |z   «      «      }t	        j
                  | ||«      S rD  )rQ  rR  rY  r]  r¢  r  )r}  r)  Ústartr0  s       r5  rÎ   rÎ   °
  sK   € Ü�‹Iœ˜AŸG™G›Ñ$€EÜ”�uœc !§'¡'›l¨UÑ2Ó3Ó4€DÜ×!Ñ! ! T¨4Ó0Ð0r7  r”  r•  c                 ó¾  ‡
‡‡‡— d„ }t        | «      dk(  rd}t        |«      ‚| D ]  }t        |t        «      rŒJ ‚ t	        j
                  | ddiŽ ddlm} d Š
t        | «      D ]\  \  ŠŠ‰
€‰j                  dk7  sŒ‰Š
Œ‰j                  dk7  sŒ+t        j                  ‰j                  ‰
j                  k(  ˆ
ˆˆfd„«       Œ^ ‰
€| d   Š
‰
j                  }g }t        | «      D ]¡  \  Š}t        |«      t        |j                  «      k7  rB|j                  dk(  sJ ‚t        j                   ||j                  d   dk(  «      ˆ
ˆfd	„«       Œi|j                  dk(  r ||j                  d   dk(  «      rŒ‘|j                  |«       Œ£  || «      }t        |«      dk(  rE| d   Š	 t        t        d
„ | D «       «      «      }	t#        d‰j$                  ‰j&                  |	|¬«      S t	        j(                  |d   j                  |«      }t	        j*                  |d   j                  |«       t-        j.                  ||«      j1                  |¬«      S # t         $ r d}	Y Œ�w xY w)Nc                 ó®   — d }| D ]I  }t        j                  |«      }|t        j                  k(  r|c S |�||k7  rt        j                  c S |}ŒK |€J ‚|S rD  )rj  Úsuggest_memory_formatr_  r   )ÚinputsÚformatrù   Úfs       r5  Ú cat_compute_output_memory_formatz-cat.<locals>.cat_compute_output_memory_format½
  si   € ØˆØò 	ˆAÜ×+Ñ+¨AÓ.ˆAØ”E×+Ñ+Ò+Ø’ØÐ! f°¢kÜ×.Ñ.Ò.Ø‰Fð	ð Ð!Ð!Ð!Øˆr7  r   z3cat expects at least one tensor, but received zero!rÜ  FrA  rN  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 listrk  )Úexampler  rù   s   €€€r5  rM  zcat.<locals>.<lambda>í
  s0   ø€ ð  Ø '§¡˜~Ð-AÀ!Ç&Á&Àð J%Ø%& C |ð5€ r7  c                  ó*   •— d‰ j                   › d‰› d�S )Nr   z*-D tensors, but got 1-D for tensor number r¡  rk  )r¢  Ú
tensor_idxs   €€r5  rM  zcat.<locals>.<lambda>	  s$   ø€ ð Ø#ŸL™L˜>ð *!Ø!+ ¨Lð:€ r7  c              3   ó4   K  — | ]  }|j                   –— Œ y ­wrD  )Úrequires_gradrF  s     r5  rI  zcat.<locals>.<genexpr>   s   è ø€ Ò$F¸ Q§_¥_Ñ$Fùó   ‚©r   ©r±  r4  r¦  rá  rà  )rQ  r^  r;  r#   rj  rß  rX  rB  r\  r  r_  r`  rR  r�  rÓ  rµ   Ú	Exceptionr  r±  r4  Úcanonicalize_dimÚvalidate_idxr¢  rÏ   r®   )r•  rç  rž  rÅ  ÚtensorrB  rR  Úfilteredrá  r¦  r¢  r  rù   r¤  s             @@@@r5  rÏ   rÏ   ¶
  sF  û€ ò
ô ˆ7ƒ|�qÒØCˆÜ˜‹oÐàò .ˆÜ˜&¤*Õ-Ð-Ð-ð.ô 
×Ñ˜WÐE¸uÒEåJð$ €GÜ˜'Ó"ò ‰ˆˆ1Øˆ?Ø�v‰v˜‹{Ø‘à�v‰v˜‹{Ü—‘Ø—F‘F˜gŸl™lÑ*õ5õðð €ð ˜!‘*ˆà�M‰M€EØ€HÜ'¨Ó0ò $Ñˆ
�FÜˆu‹:œ˜VŸ\™\Ó*Ò*Ø—;‘; !Ò#Ð#Ð#ä�L‰Lñ % V§\¡\°!¡_¸Ñ%9Ó:ô:õð$ �{‰{˜aÒÑ$8¸¿¹Àa¹ÈAÑ9MÔ$NØà�O‰O˜FÕ#ð3$ñ6 5°WÓ=€Mä
ˆ8ƒ}˜ÒØ�A‰Jˆð	"ô !¤Ñ$F¸gÔ$FÓ!FÓGˆMô ØØ—'‘'Ø—8‘8Ø'Ø'ô
ð 	
ô ×
 Ñ
  ¨!¡×!1Ñ!1°3Ó
7€CÜ	×Ñ�x ‘{×'Ñ'¨Ô-ä�9‰9�X˜sÓ#×)Ñ)¸Ð)ÓFÐFøô ò 	"Ø!ŠMð	"ús   Æ#I ÉIÉIc                 ó>   — t        d„ | D «       «      }t        |d«      S )Nc              3   ó€   K  — | ]6  }|j                   d kD  r|n |j                  |j                  «       d f«      –— Œ8 y­wr:  )r  rï   rò  rF  s     r5  rI  zcolumn_stack.<locals>.<genexpr>5  s7   è ø€ ò Ø;<ˆQ�V‰V�aŠZ‰˜QŸY™Y¨¯©«	°1 ~Ó6Ó6ñùs   ‚<>rN  )rY  rÏ   ©r•  Úaligned_tensorss     r5  rÑ   rÑ   3  s(   € äñ Ø@Gôó €Oô ˆ Ó"Ð"r7  c                 ó°   — t        j                  | j                  «      s| S | j                  rt	        j
                  | «      S t        j                  | «      S rD  )rj  r°  r±  Ú	is_sparser_  r6   r¢  rÒ   r²  s    r5  rÒ   rÒ   ;  s@   € Ü×!Ñ! %§+¡+Ô.ØˆØ‡‚Ü×"Ñ" 5Ó)Ð)Ü�:‰:�eÓÐr7  Úpadc           	      óˆ  ‡‡
‡‡‡‡— t        j                  t        ‰«      dz  dk(  ˆfd„«       | j                  Št        ‰«      Št        ‰«      dz  }‰|z
  Št        j                  ‰|k\  ˆˆfd„«       | }t	        ‰‰«      D ]t  Š
d‰‰
z
  dz
  z  Š‰‰   dk  r*|j                  ‰
‰‰    |j                  ‰
   ‰‰   z   «      }‰‰dz      dk  sŒL|j                  ‰
d|j                  ‰
   ‰‰dz      z   «      }Œv t        j                  d„ ‰D «       «      r|j                  «       S t        ‰d ‰ «      }t	        |«      D ]^  Š
t        ‰«      ‰
dz   dz  z
  Š‰‰‰
z      ‰‰   z   ‰‰dz      z   }t        j                  |dkD  ˆ
ˆˆˆˆfd„«       |j                  |«       Œ` t        j                  | «      }t        j                  || j                  | j                  | j                   |¬«      }|dk(  r| j                  t         j"                  k(  rd	}t        j$                  ||«      }|}	t	        ‰‰«      D ]s  Š
d‰‰
z
  dz
  z  Š‰‰   dk\  r)|	j                  ‰
‰‰   |	j                  ‰
   ‰‰   z
  «      }	‰‰dz      dk\  sŒK|	j                  ‰
d|	j                  ‰
   ‰‰dz      z
  «      }	Œu t'        j(                  |	|«       |S )
Nr!  r   c                  ó    •— dt        ‰ «      › �S )Nz1Length of pad must be even but instead it equals rP  )rµ  s   €r5  rM  z!constant_pad_nd.<locals>.<lambda>K  s   ø€ ÐCÄCÈÃHÀ:ÐN€ r7  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.rP  )Úl_inprµ  s   €€r5  rM  z!constant_pad_nd.<locals>.<lambda>V  s"   ø€ ð 2Ü25°c³(°Ð;PØˆ'�ð€ r7  rN  c              3   ó&   K  — | ]	  }|d k  –— Œ y­w)r   NrK  )rG  Úps     r5  rI  z"constant_pad_nd.<locals>.<genexpr>m  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�  rN  zG resulted in a negative output size, which is invalid. Check dimension z of your input.rK  )r  Úinput_sizesÚl_diffrµ  Úpad_idxs   €€€€€r5  rM  z!constant_pad_nd.<locals>.<lambda>w  sG   ø€ �o k°&¸1±*Ñ&=Ð%>Ð>VØ�7‰|ˆn˜E # g°¡kÑ"2Ð!3ð 41Ø17¸!±°¸OðM€ r7  r©  F)r_  r`  rQ  rR  r]  rç   r*  r²   r®   r,  r�  rj  rš  r  r±  r4  r¦  rÓ  rC   r¢  r¯   )r®  rµ  rÀ  Úl_padÚc_inputÚ	new_shapeÚnew_dimrá  r>  Úc_outputr  r¾  r¿  rº  rÀ  s    `        @@@@@r5  rÓ   rÓ   D  sÑ  ý€ ô
 
‡L�LÜˆC‹�1‰˜ÑÛNôð
 —+‘+€KÜ�Ó€Eä�‹H˜‰M€EØ�U‰]€Fä	‡L�LØ�‰ô	ôð €GÜ�6˜5Ó!ò PˆØ�u˜q‘y 1‘}Ñ%ˆØˆw‰<˜!ÒØ—n‘n Q¨¨W©¨°w·}±}ÀQÑ7GÈ#ÈgÉ,Ñ7VÓWˆGàˆw˜‰{Ñ˜aÓØ—n‘n Q¨¨7¯=©=¸Ñ+;¸cÀ'ÈAÁ+Ñ>NÑ+NÓO‰GðPô" ‡|�|Ñ' 3Ô'Ô'Ø�}‰}‹Ðä�[  &Ð)Ó*€Iä�5‹\ò 	"ˆÜ�c“(˜q 1™u¨™kÑ*ˆØ˜f q™jÑ)¨C°©LÑ8¸3¸wÈ¹{Ñ;KÑKˆÜ�‰Ø�a‰K÷Mô	
ð 	×Ñ˜Õ!ð	"ô ×/Ñ/°Ó6€MÜ�[‰[ØØ�k‰kØ�|‰|Ø×)Ñ)Ø#ô€Fð �‚z�e—k‘k¤U§Z¡ZÒ/Øˆä�Z‰Z˜ Ó&€Fà€HÜ�6˜5Ó!ò SˆØ�u˜q‘y 1‘}Ñ%ˆØˆw‰<˜1ÒØ—‘Ø�3�w‘< §¡°Ñ!2°S¸±\Ñ!AóˆHð ˆw˜‰{Ñ˜qÓ Ø—‘ q¨!¨X¯^©^¸AÑ->ÀÀWÈqÁ[ÑAQÑ-QÓR‰HðSô 
‡M�M�(˜GÔ$Ø€Mr7  c                ó²   — t        j                  |t         j                  k7  d„ «       t        j                  | |¬«      r| S t        j
                  | |¬«      S )Nc                   ó   — y)Nz@preserve memory format is unsupported by the contiguous operatorrK  rK  r7  r5  rM  zcontiguous.<locals>.<lambda>ž  rÏ  r7  rà  )r_  r`  rí  rj  rî  r®   )r}  rá  s     r5  rÔ   rÔ   ™  sI   € ô 
‡L�LØœ×.Ñ.Ñ.ÙRôô
 ×,Ñ,¨Q¸mÕLØˆä�;‰;�q¨Ô6Ð6r7  c                 óp   — t        j                  t        | «      dkD  d„ «       t        | Ž }t	        |d«      S )Nr   c                   ó   — y)Nz%dstack expects a non-empty TensorListrK  rK  r7  r5  rM  zdstack.<locals>.<lambda>©  rÏ  r7  r!  )r_  r`  rQ  rÇ   rÏ   r±  s     r5  rÛ   rÛ   §  ó1   € ä	‡L�L”�W“ Ñ!Ñ#RÔSÜ  'Ð*€OÜˆ Ó"Ð"r7  c                 ó®  ‡— ddl m} t        |«      dk(  r!t        |d   t        «      rt        |d   «      }t        j                  t        |«      t        | j                  «      k\  d„ «       t        |«      t        | j                  «      z
  }t        |«      }t        | j                  «      D ]Q  \  }Š||z   }||   }t        j                   ||‰k(  «      xs  |‰dk(  «      xs |dk(  ˆfd„«       |dk7  r|n‰||<   ŒS t        j                  |«       t        j                  | |t        t        |t        | j                  «      |z   «      «      «      S )Nr   rA  rN  c                   ó   — y)Nz3expand: the requested shape has too few dimensions!rK  rK  r7  r5  rM  zexpand.<locals>.<lambda>º  rÏ  r7  rS  c                  ó   •— d‰ › d�S )Nz3expand: attempting to expand a dimension of length ri  rK  rL  s   €r5  rM  zexpand.<locals>.<lambda>Æ  s   ø€ ÐIÈ!ÈÈAÐN€ r7  )rX  rB  rQ  r;  r   rY  r_  r`  rR  r,  r\  rj  Úvalidate_shaper¢  r  r]  )	r}  rR  rB  rl  Úshape_rW  Ú
offset_idxÚrequested_lengthrH  s	           @r5  rÜ   rÜ   ®  s8  ø€ åJô
 ˆ5ƒz�Q‚œ: e¨A¡h´Ô9Ü�e˜A‘h“ˆä	‡L�LÜˆE‹
”c˜!Ÿ'™'“lÑ"ÙEôô
 �‹Zœ#˜aŸg™g›,Ñ&€FÜ�%‹[€FÜ˜AŸG™GÓ$ò 
O‰ˆˆQØ˜6‘\ˆ
Ø  Ñ,ÐÜ�‰Ù Ð!1°QÑ!6Ó7ò &Ù# A¨¡FÓ+ò&à 2Ñ%ÛNô		
ð 2BÀRÒ1GÑ-ÈQˆˆzÒð
Oô 
×Ñ˜Ô ä×!Ñ!Ø	ˆ6”5œ˜v¤s¨1¯7©7£|°fÑ'<Ó=Ó>óð r7  c                 ó8   — | j                  |j                  «      S rD  )rÜ   rR  r3  s     r5  rÝ   rÝ   Ô  s   € Ø�8‰8�A—G‘GÓÐr7  Ú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 ri  )r^  rj  r«  r  rR  r  r5   rE   r]  rç   r�  rY  )
r}  rÓ  rç  rÅ  ÚlengthÚ
chunk_sizeÚfull_chunksÚtail_chunk_sizer  rõ  s
             r5  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                 óB  — t        j                  | j                  |«      }t        j                  | j                  |«      }||k(  r| j                  dk7  r| S t        j                  | ||«      \  }}|�t        j
                  | ||«      S t        j                  | ||«      S r  )rj  r«  r  r¢  Ú_collapse_view_helperÚcollapse_viewÚcollapse)r}  rÙ  rÚ  rÃ  Ú_new_stridess        r5  rß   rß   î  s’   € Ü×&Ñ& q§v¡v¨yÓ9€IÜ×$Ñ$ Q§V¡V¨WÓ5€Gð �GÒ §¡¨!¢Øˆô $×9Ñ9¸!¸YÈÓPÑ€Iˆ|ØÐÜ×"Ñ" 1 i°Ó9Ð9ô �>‰>˜!˜Y¨Ó0Ð0r7  c                 óî   — t        |t        «      st        |t        «      st        d«      ‚t	        j
                  | j                  |«      }t	        j                  |«       t        j                  | |«      S )Nz!dims has to be a sequence of ints)
r;  rY  r,  r^  rj  Úcanonicalize_dimsr  Úvalidate_no_repeating_dimsr¢  Úrev)r}  r0  s     r5  rà   rà      sX   € ô �dœEÔ"¬:°d¼DÔ+AÜÐ<Ó=Ð=Ü×"Ñ" 1§6¡6¨4Ó0€DÜ	×$Ñ$ TÔ*Ü�9‰9�Q˜ÓÐr7  c                 óN   — | j                   dk  rt        d«      ‚t        | d«      S )Nr!  zInput must be >= 2-d.©rN  ©r  rm  rà   r|  s    r5  rá   rá     ó%   € Ø‡v�v�‚zÜÐ2Ó3Ð3ä��4‹=Ðr7  c                 óN   — | j                   dk  rt        d«      ‚t        | d«      S )NrN  zInput must be >= 1-d.r¨  ræ  r|  s    r5  râ   râ     rç  r7  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.rK  rK  r7  r5  rM  znarrow.<locals>.<lambda>#  rÏ  r7  c                   ó   — y)Nz-narrow() cannot be applied to a 0-dim tensor.rK  rK  r7  r5  rM  znarrow.<locals>.<lambda>'  rÏ  r7  c                   ó   — y)Nz&narrow(): length must be non-negative.rK  rK  r7  r5  rM  znarrow.<locals>.<lambda>(  rÏ  r7  c                  ó   •— d‰  › d‰ › d‰› d�S )Nz0start out of range (expected to be in range of [ú, z], but got ú)rK  )Ú
dim_lengthr—  s   €€r5  rM  znarrow.<locals>.<lambda>.  s%   ø€ ÐBÀJÀ;À-ÈrÐR\ÐQ]Ð]hÐinÐhoÐopÐq€ r7  c                  ó   •— d‰› d‰› d‰ › d�S )Nzstart (z) + length (z) exceeds dimension size (z).rK  )rð  rÕ  r—  s   €€€r5  rM  znarrow.<locals>.<lambda>4  s   ø€ �'˜%˜ ¨V¨HÐ4NÈzÈlÐZ\Ð]€ r7  )r;  r#   r_  r`  rç  rj  rü  r±  r°   r   rw  r«  r  r)  Ú_check_withÚ
IndexErrorr,  rR  rÈ   r%  r+  )r}  rç  r—  rÕ  rÃ  rð  s     `` @r5  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óð r7  Ú	norm_dimsÚepsc                 ó>  — t        j                  | j                  |«      }t        j                  | j                  «      }t        | |«      }t        |t        «      sJ ‚t        j                  ||dd¬«      \  }}t        j                  ||z   «      }||z
  |z  }|||fS )a¼  Computes mean and 1/std of a tensor along norm_dims.

    Used as a helper function for normalization layers.

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

    Returns:
        out (Tensor): normalized tensor.
        mean (Tensor): mean of the tensor along norm_dims.
        rstd (Tensor): 1/std of the tensor along norm_dims.
    FT)rç  rI  rê  )rj  rá  r  rë  r±  r'   r;  r#   r_  rÁ   ró   )	r}  rô  rõ  rí  Úa_accÚ
biased_varr¸   Úrstdr—  s	            r5  Ú
_normalizerú  =  s—   € ô" ×'Ñ'¨¯©°	Ó:€IÜ×3Ñ3°A·G±GÓ<ÐÜ# AÐ'8Ó9€EÜ�eœZÔ(Ð(Ð(Ü—~‘~Ø�9 u°dôÑ€J�ô �;‰;�z CÑ'Ó(€DØ�4‰<˜4Ñ
€CØ��dˆ?Ðr7  Ú
dimensionsc                 óR   — t        |«      D ]  }t        j                  | |«      } Œ | S rD  )Úsortedr_  r  )rH  rû  rç  s      r5  Ú_unsqueeze_multiplerþ  [  s+   € Ü�jÓ!ò $ˆÜ�O‰O˜A˜sÓ#‰ð$à€Hr7  ÚweightÚbiasÚ
batch_sizeÚnum_channelsÚflattened_inner_sizeÚ
num_groupsc                 ó´  ‡ ‡— t        j                  ‰ j                  dk\  ˆ fd„«       t        j                  |‰z  dk(  ˆ ˆfd„«       ddg}t        j                  ‰ |‰|‰z  |g«      }	t	        |	||«      \  }
}}|
j                  ‰ j                  «      }
dgt        t        d‰ j                  «      «      z   }d }|�t        ||«      }d }|�t        ||«      }|�|
|z  }
|�|
|z   }
t        |
‰ j                  «      }
t        |‰ j                  «      }t        |‰ j                  «      }t        j                  ||«      }t        j                  ||«      }|
||fS )Nr!  c                  ó"   •— d‰ j                   › �S )Nz=Expected at least 2 dimensions for input tensor but received rk  r²  s   €r5  rM  z#native_group_norm.<locals>.<lambda>n  s   ø€ ÐOÐPU×PZÑPZÈ|Ð\€ r7  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   €€r5  rM  z#native_group_norm.<locals>.<lambda>r  s#   ø€ ÐVØ# E§K¡K =Ð0BÀ:À,Ð
OñP€ r7  r‹  )r_  r`  r  rï   rú  r  rR  r,  r]  rþ  r'   r±  r÷   )r®  rÿ  r   r  r  r  r  rõ  r  Úinput_reshapedr—  r¸   rù  r  Úunsqueeze_biasÚunsqueeze_weights   `     `         r5  ré   ré   a  sb  ù€ ô 
‡L�LØ�
‰
�a‰Û\ôô 
‡L�LØ�zÑ! QÑ&ô	Pôð ˜�V€NÜ—]‘]ØØ	�Z °Ñ!;Ð=QÐRó€Nô ! °ÀÓE�O€CˆˆtØ
�(‰(�5—;‘;Ó
€Cà�Sœ4¤ a¨¯©Ó 4Ó5Ñ5€NØ€NØÐÜ,¨T°>ÓBˆØÐØÐÜ.¨v°~ÓFÐàÐ#ØÐ$Ñ$ˆØÐ!Ø�NÑ"ˆä
! # u§{¡{Ó
3€CÜ" 4¨¯©Ó5€DÜ" 4¨¯©Ó5€Dô �=‰=˜˜~Ó.€DÜ�=‰=˜˜~Ó.€DØ��tÐÐr7  Úout2Únormalized_shapec                 ó¶  ‡ ‡‡‡— t        ‰«      }t        j                  |dk\  ˆfd„«       t        j                  ‰d u xs ‰j                  t	        ‰«      k(  ˆˆfd„«       t        j                  ‰d u xs ‰j                  t	        ‰«      k(  ˆˆfd„«       t        j                  ‰ j
                  |k\  xr( ‰ j                  ‰ j
                  |z
  d  t	        ‰«      k(  ˆ ˆfd„«       ‰ j                  «       Š ‰�‰j                  «       Š‰�‰j                  «       Š‰ j
                  |z
  }t        t        |‰ j
                  «      «      }t        ‰ ||«      \  }}	}
‰€‰�|‰z   }n‰�‰€|‰z  }n‰�
‰�|‰z  ‰z   }t        |‰ j                  «      }‰ j                  j                  dv r,t        |	‰ j                  «      }	t        |
‰ j                  «      }
||	|
fS )NrN  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 = )rn  )r  s   €r5  rM  z#native_layer_norm.<locals>.<lambda>¢  s   ø€ ð Iä
ÐÓ
ñ € r7  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 = ©rn  rR  )r  rÿ  s   €€r5  rM  z#native_layer_norm.<locals>.<lambda>«  s5   ø€ ð ä
ˆf�l‰lÓ
ñð %ñ%ô ÐÓ
ñ	 € r7  c                  óR   •— dt        ‰ j                  «      z   dz   t        ‰«      z   S )NzMExpected bias to be of same shape as normalized_shape, but got bias of shape r  r  )r   r  s   €€r5  rM  z#native_layer_norm.<locals>.<lambda>³  s4   ø€ ð ä
ˆd�j‰j‹/ñð %ñ%ô ÐÓ
ñ	 € r7  c                  óp   •— dt        ‰«      z   dz   t        ‰«      z   dz   t        ‰ j                  «      z   S )NzGiven normalized_shape=z, expected input with shape z, but got input of size r  )r®  r  s   €€r5  rM  z#native_layer_norm.<locals>.<lambda>¼  sK   ø€ Ð)Ü
ÐÓ
ñ à
(ñ)ô ÐÓ
ñ ð %ñ	%ô
 ˆe�k‰kÓ
ñ€ r7  )re  Úmtia)rQ  r_  r`  rR  rY  r  rÔ   r,  r]  rú  r'   r±  r4  r2  )r®  r  rÿ  r   rõ  Únormalized_ndimÚaxisr  r—  r¸   rù  s   ````       r5  rê   rê   –  sÈ  û€ ô Ð*Ó+€OÜ	‡L�LØ˜1Ñó	 ôô 
‡L�LØ�$ˆÒA˜&Ÿ,™,¬%Ð0@Ó*AÑAô	 ôô 
‡L�LØ�ˆÒ=˜Ÿ
™
¤eÐ,<Ó&=Ñ=ô	 ôô 
‡L�LØ�
‰
�oÑ%ò 	UØ�K‰K˜Ÿ™ oÑ5Ð8Ð9¼UÐCSÓ=TÑTô	ô	ð ×ÑÓ€EØÐØ×"Ñ"Ó$ˆØÐØ�‰Ó ˆà�:‰:˜Ñ'€DÜœ%  e§j¡jÓ1Ó2€NÜ  ¨¸Ó<�O€Cˆˆtà€~˜$Ð*Ø�D‰j‰Ø	Ð	  Ø�F‰l‰Ø	Ð	 Ð 0Ø�F‰l˜TÑ!ˆä
! # u§{¡{Ó
3€CØ‡|�|×Ñ˜OÑ+Ü& t¨U¯[©[Ó9ˆÜ& t¨U¯[©[Ó9ˆØ��tÐÐr7  c                 ó   — t        |Ž S rD  )rê   )Ú	fake_modeÚfuncrq  r‹  s       r5  Únative_layer_norm_faker  Ü  s   € ä˜dÐ#Ð#r7  c                 ó”   — t        j                  | j                  t        j                  |«      «      }t	        j
                  | |«      S rD  )rj  rá  r  Úextract_dims_from_varargsr¢  rþ   )r}  r0  Ú_permutations      r5  rë   rë   ã  s9   € ä×*Ñ*Ø	�‰”×/Ñ/°Ó5ó€Lô �?‰?˜1˜lÓ+Ð+r7  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-valuedrK  rK  r7  r5  rM  zrenorm.<locals>.<lambda>ð  rÏ  r7  r   c                   ó   — y)Nz'renorm: non-positive norm not supportedrK  rK  r7  r5  rM  zrenorm.<locals>.<lambda>ñ  rÏ  r7  c                   ó   — y)Nz#renorm: maxnorm must be real-valuedrK  rK  r7  r5  rM  zrenorm.<locals>.<lambda>ó  rÏ  r7  c                  ó   •— d‰ › �S )Nz,renorm: expected maxnorm to be >= 0 but got rK  )r  s   €r5  rM  zrenorm.<locals>.<lambda>ö  s   ø€ Ð LÈWÈIÐV€ r7  rN  c                  ó   •— d‰ › d�S )Nz/renorm: input needs at least 2 dimensions, got ú dimensionsrK  rk  s   €r5  rM  zrenorm.<locals>.<lambda>û  s   ø€ ÐAÀ$ÀÀ{ÐS€ r7  T)rê  r±  ré  gH¯¼šò×z>r]  )r_  r`  r;  r£  r  rj  r«  r,  r]  rë  r±  ÚlinalgÚvector_normr­   r¢  r•  rÔ   )
r®  r¼  rç  r  r@  Úacc_typer^   rõ  Únorm_factorr  s
      `     @r5  r,  r,  ë  so  ù€ ô
 
‡L�L”Z ¤7Ó+Ð+Ñ-TÔUÜ	‡L�L��Q‘ÑIÔJÜ	‡L�LÜ�w¤Ó(Ð(Ñ*Wôô 
‡L�LØ�1‰ÓVôð �:‰:€DÜ	‡L�LØˆq‰ÛSôô
 ×
 Ñ
   sÓ
+€CÜ”u˜T“{Ó#€KØ�CÐô ×*Ñ*¨5¯;©;Ó7€HØ�5—;‘;ÒÜ�|‰|×'Ñ'Ø�1�k¨4°xð (ó 
‰ô �|‰|×'Ñ'¨¨q°+ÀtÐ'ÓLˆà
€CÜ—+‘+˜d W™n¨g¸À¹Ñ.DÀcÓJ€KØ�5—;‘;ÒÜ×0Ñ0°¸e¿k¹kÓJˆØ�KÑ×+Ñ+Ó-Ð-r7  Ú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‰Š|	€N‰ j                  «       xs% ‰d uxr t	        j
                  ‰j                  «      }t        j                  |d«       n|	}t        j                  t	        j                  ‰ j                  «      xs t	        j
                  ‰ j                  «      d„ «       t        j                  d‰ j                  cxk  xr dk  nc d„ «       ‰ j                  }|dk(  r‰ j                  d	«      Š |r‚d
‰ j                  z
  }‰dz  }g t        j                  d|«      ¢‰ j                  ¢}t        j                  ‰ j                  |«      ||g|«      Š ‰ j                  ‰ j!                  «       |d  «      Š ‰ j!                  d«      Št        j                  d	‰cxk  xr ‰k  nc ˆˆfd„«       t        j                  ‰d	kD  ˆfd„«       t        j                  d	‰cxk  xr ‰k  nc ˆfd„«       t        j                  ‰d u xs ‰j                  ‰fk(  ˆˆfd„«       ‰‰k  rT‰€,t        j"                  ‰‰ j                  ‰ j                  ¬«      Š‰‰z
  dz  }t        j%                  ‰|‰‰z
  |z
  g«      Š‰ j'                  d‰‰¬«      Š |s#|
r!‰‰z
  dz  }t        j                  ‰ ||g|«      Š ‰�‰ ‰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 r3  ©r®  r-  s   €€r5  rM  zstft.<locals>.<lambda>$  s,   ø€ ØOÐPU×P\ÑP\È~Ð^Ø §¡˜Ð/ñ0ð r7  z6stft only supports align_to_window for center = False.é   z“stft requires the return_complex parameter be given for real inputs, and will further require that return_complex=True in a future PyTorch release.c                   ó   — y)Nz:stft expected a tensor of floating point or complex valuesrK  rK  r7  r5  rM  zstft.<locals>.<lambda>A  rÏ  r7  rN  r!  c                   ó   — y)Nzstft expected a 1D or 2D tensorrK  rK  r7  r5  rM  zstft.<locals>.<lambda>C  rÏ  r7  r   r‹  c                  ó   •— d‰ › d‰› �S )Nzstft expected 0 < n_fft <= z, but got n_fft=rK  )rÕ  r*  s   €€r5  rM  zstft.<locals>.<lambda>S  s   ø€ Ð-¨f¨XÐ5EÀeÀWÐM€ r7  c                  ó   •— d‰ › �S )Nz0stft expected hop_length > 0 but got hop_length=rK  )Úhop_length_s   €r5  rM  zstft.<locals>.<lambda>W  s   ø€ ÐBÀ;À-ÐP€ r7  c                  ó   •— d‰ › �S )Nz9stft expected 0 < win_length <= n_fft but got win_length=rK  )Úwin_length_s   €r5  rM  zstft.<locals>.<lambda>[  s   ø€ ÐKÈKÈ=ÐY€ r7  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  )r?  r-  s   €€r5  rM  zstft.<locals>.<lambda>_  s(   ø€ ØFÀ{ÀmÐSUÐVØ)¨&¯,©,¨Ð8ñ9ð r7  rT  rS  )Ú	dimensionr)  ÚstepÚorthoc                   ó   — y)Nz9Cannot have onesided output if window or input is complexrK  rK  r7  r5  rM  zstft.<locals>.<lambda>x  rÏ  r7  ©rç  r^   )r_  r`  r4  r+  rj  r°  r±  rÒ  r  r  Ú	itertoolsrî   rR  r›  rµ  r  r)  r!  rÓ   r  ÚfftÚrfftÚ
transpose_Úsqueeze_Úview_as_real)r®  r*  r+  r,  r-  r.  r/  r0  r1  r2  r3  Úreturn_complex_Úoriginal_ndimÚ
extra_dimsÚ
pad_amountÚextended_shapeÚleftÚinput_pad_amountÚcomplex_fftr^   r—  r=  rÕ  r?  s   ``  `                @@@r5  r-  r-    sŒ  ý€ ô 
‡L�LØ�$ˆÒ7˜&Ÿ-™-¨5¯<©<Ñ7ô	
ôô 
‡L�LØˆ
Ò-�o¨Ð-Ø@ôð
 !+Ð 6‘*¸EÀQ¹J€KØ *Ð 6‘*¸E€KàÐØ×*Ñ*Ó,ò 
Ø˜$ÐÒG¤5×#9Ñ#9¸&¿,¹,Ó#Gð 	ô 	�‰Øðcõ	
ð )ˆä	‡L�LÜ×Ñ˜UŸ[™[Ó)ÒP¬U×-CÑ-CÀEÇKÁKÓ-PÙLôô 
‡L�L��e—j‘jÖ% AÔ%Ñ'PÔQà—J‘J€MØ˜ÒØ—‘ Ó"ˆáØ˜Ÿ™‘^ˆ
Ø˜a‘Zˆ
ØIœ9×+Ñ+¨A¨zÓ:ÐI¸U¿[¹[ÐIˆÜ—‘˜Ÿ™ NÓ3°jÀ*Ð5MÈxÓXˆØ—
‘
˜5Ÿ:™:›<¨
¨Ð4Ó5ˆà�Z‰Z˜‹]€FÜ	‡L�LØ	ˆEÖ�VÔÜMôô 
‡L�LØ�a‰ÛPôô 
‡L�LØ	ˆKÖ ˜5Ô ÛYôô 
‡L�LØ�$ˆÒ8˜&Ÿ,™,¨;¨.Ñ8ô	
ôð �UÒØˆ>Ü—Z‘Z °5·;±;ÀuÇ|Á|ÔTˆFØ˜Ñ#¨Ñ)ˆÜ×%Ñ% f¨t°U¸[Ñ5HÈ4Ñ5OÐ.PÓQˆà�L‰L 2¨E¸ˆLÓD€EÙ‘oØ! KÑ/°AÑ5ÐÜ—‘˜Ð!1Ð3CÐ DÀhÓOˆØÐØ˜‘ˆä×(Ñ(¨¯©Ó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¸#Ó'>Ð>r7  c
                 óJ	  ‡ ‡— t        j                  ‰d u xs ‰j                  ‰ j                  k(  ˆ ˆfd„«       |�|n|dz  }
|�|n|}t        j                  t        j                  ‰ j
                  «      ˆ ˆfd„«       ‰ j                  d«      }‰ j                  d«      }||
|dz
  z  z   }t        j                  ‰ j                  «       dkD  d„ «       t        j                  d	‰ j                  cxk  xr d
k  nc ˆ fd„«       |�|n||k7  }|r!t        j                  |d	z  dz   |k(  d„ «       nt        j                  ||k(  d„ «       t        j                  d|
cxk  xr |k  nc d„ «       t        j                  d|cxk  xr |k  nc d„ «       t        j                  ‰d u xs ‰j                  |fk(  d„ «       ‰€Bt        j                  ‰ j
                  «      }t        j                  ||‰ j                  ¬«      }n‰}||k7  r'||z
  d	z  }t        j                  ||||z
  |z
  fd«      }‰ j                  }‰ j                  d	k(  r‰ j                  d«      Š ‰ j                  dd	«      Š |rdnd }|	r;t        j                  | d„ «       t         j                   j#                  ‰ d|¬«      Š nyt        j                  ‰d u xs  t        j                  ‰j
                  «       d„ «       |s‰ j%                  dd|d	z  dz   ¬«      Š t         j                   j'                  ‰ d|¬«      Š ‰ j                  d	«      |k(  sJ ‚‰ |j)                  dd|g«      z  }t        j+                  ||j                  d«      |fd||
¬«      }t        j+                  |j-                  d	«      j/                  d||f«      |j                  d«      |fd||
¬«      }||j                  d«      k(  sJ ‚||j                  d«      k(  sJ ‚|r|d	z  nd}|�||z   }n|r	||d	z  z
  }n|}t1        d||z
  «      }|j%                  d||¬«      }|j%                  d||¬«      }||z  }|d	k(  r|j3                  d«      }||kD  r1t5        j6                  d«       t        j                  |d||z
  fd«      }|S )Nc                  óB   •— d‰ j                   › �d‰j                   › �z   S ©NzBistft input and window must be on the same device but got self on r6  r3  r7  s   €€r5  rM  zistft.<locals>.<lambda>–  s-   ø€ ØPÐQV×Q]ÑQ]ÐP^Ð_Ø §¡˜Ð/ñ0ð r7  r8  c                  ó@   •— d‰ j                   › d‰j                   › �z   S rV  r3  r7  s   €€r5  rM  zistft.<locals>.<lambda>¡  s&   ø€ ØPØ—‘�˜o¨f¯m©m¨_Ð=ñ>ð r7  rS  éþÿÿÿrN  r   c                   ó   — y)Nz"istft input tensor cannot be emptyrK  rK  r7  r5  rM  zistft.<locals>.<lambda>ª  rÏ  r7  r!  r‹  c                  ó"   •— d‰ j                   › �S )Nz8istft expected a tensor with 2 or 3 dimensions, but got rk  r²  s   €r5  rM  zistft.<locals>.<lambda>­  s   ø€ ÐJÈ5Ï:É:È,ÐW€ r7  c                   ó   — 	 y)NzŠistft expected the frequency dimension (3rd to the last) of the input tensor to match n_fft / 2 + 1 when onesided=True, but got {fft_size}rK  rK  r7  r5  rM  zistft.<locals>.<lambda>´  s   € ðRð r7  c                   ó   — y)N)zƒistft expected the frequency dimension (3rd to the last) of the input tensor to match n_fft when onesided=False, but got {fft_size}rK  rK  r7  r5  rM  zistft.<locals>.<lambda>¼  rÏ  r7  c                   ó   — y)Nz+istft expected 0 < hop_length <= win_lengthrK  rK  r7  r5  rM  zistft.<locals>.<lambda>Ä  rÏ  r7  c                   ó   — y)Nz&istft expected 0 < win_length <= n_fftrK  rK  r7  r5  rM  zistft.<locals>.<lambda>Ç  rÏ  r7  c                   ó   — y)NzDInvalid window shape. window has to be 1D and length of `win_length`rK  rK  r7  r5  rM  zistft.<locals>.<lambda>Ë  rÏ  r7  rT  rC  c                   ó   — y)Nz9cannot have onesided output if window or input is complexrK  rK  r7  r5  rM  zistft.<locals>.<lambda>á  rÏ  r7  rE  c                   ó   — y)Nz:Complex windows are incompatible with return_complex=FalserK  rK  r7  r5  rM  zistft.<locals>.<lambda>ç  rÏ  r7  )rç  r—  rÕ  )r¾  rç  r)  rB  zšThe length of signal is shorter than the length parameter. Result is being padded with zeros in the tail. Please check your center and hop_length settings)r_  r`  r4  rj  r°  r±  r)  rò  r  rR  Úcorresponding_real_dtyper!  r›  rÓ   r  rþ   rG  Úifftrç   Úirfftr  Úunfold_backwardr�   rÜ   r[  r÷   ÚwarningsÚwarn)r®  r*  r+  r,  r-  r.  r0  r1  rÕ  r2  r=  r?  Ún_framesÚfft_sizeÚexpected_output_signal_lenÚ	onesided_Ú
real_dtypeÚwindow_rQ  rM  r^   Úy_tmpÚyÚwindow_envelopr—  Úends   `   `                     r5  r.  r.  ‡  s€  ù€ ô 
‡L�LØ�$ˆÒ7˜&Ÿ-™-¨5¯<©<Ñ7ô	
ôð !+Ð 6‘*¸EÀQ¹J€KØ *Ð 6‘*¸E€Kä	‡L�LÜ×Ñ˜uŸ{™{Ó+ô	
ôð �z‰z˜"‹~€HØ�z‰z˜"‹~€Hà!&¨¸À1¹Ñ)EÑ!EÐÜ	‡L�L�—‘“ Ñ"Ñ$PÔQÜ	‡L�LØ	ˆU�Z‰ZÖ˜1ÔÛWôð %Ð0‘°hÀ%Ñ6G€IáÜ�‰Ø�Q‰J˜‰N˜hÑ&ñõ	
ô 	�‰Ø�XÑñô	
ô 
‡L�LØ	ˆKÖ&˜;Ô&Ù=ôô 
‡L�LØ	ˆKÖ ˜5Ô Ñ"Rôô 
‡L�LØ�$ˆÒ8˜&Ÿ,™,¨;¨.Ñ8ÙVôð
 €~Ü×3Ñ3°E·K±KÓ@ˆ
Ü—*‘*˜[°
À5Ç<Á<ÔP‰àˆà�eÒØ˜Ñ#¨Ñ)ˆÜ×&Ñ& w°°u¸{Ñ7JÈTÑ7QÐ0RÐTUÓVˆà—J‘J€MØ‡z�z�Q‚Ø—‘ Ó"ˆà�O‰O˜A˜qÓ!€EÙ ‰7 d€DÙÜ�‰ØˆMÙOô	
ô —	‘	—‘˜u¨"°4�Ó8‰ä�‰Ø�dˆNÒF¤%×"8Ñ"8¸¿¹Ó"FÐFÙPô	
ñ Ø—L‘L R¨q¸À!¹Àa¹�LÓHˆEÜ—	‘	—‘ ¨2°D�Ó9ˆà�:‰:�a‹=˜EÒ!Ð!Ð!à�G—L‘L ! Q¨ Ó/Ñ/€EÜ×ÑØØ—Z‘Z “]Ð$>Ð?ØØØð 	ó 	€Aô ×)Ñ)Ø�‰�A‹×Ñ˜q (¨EÐ2Ó3Ø—Z‘Z “]Ð$>Ð?ØØØð *ó €Nð &¨¯©°«Ò2Ð2Ð2Ø%¨×)<Ñ)<¸QÓ)?Ò?Ð?Ð?á ˆE�QŠJ a€EØÐØ�f‰n‰Ù	Ø(¨5°A©:Ñ5‰à(ˆä��C˜%‘KÓ €FØ	�‰�Q˜e¨FˆÓ3€AØ#×*Ñ*¨q¸ÀfÐ*ÓM€Nà	ˆNÑ€AØ˜ÒØ�I‰I�a‹Lˆà
Ð'Ò'Ü�‰ð`ô	
ô × Ñ   Q¨Ð.HÑ(HÐ$IÈ1ÓMˆØ€Hr7  Úa_shapeÚa_striderA  rB  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   rN  c                  ó   •— d‰ › d‰› d‰› �S )Nz%Maximum size for tensor at dimension z is z but size is rK  )rç  Úmax_sizer)  s   €€€r5  rM  z*_get_unfold_shape_stride.<locals>.<lambda>&  s   ø€ Ð7¸°u¸DÀÀ
È-ÐX\ÐW]Ð^€ r7  c                  ó   •— d‰ › d�S )NzStep is z but must be > 0rK  ©rB  s   €r5  rM  z*_get_unfold_shape_stride.<locals>.<lambda>+  s   ø€ �(˜4˜&Ð 0Ð1€ r7  )rQ  rj  r«  r_  r`  r,  r�  )rr  rs  rA  r)  rB  Úa_ndimÚlast_striderR  Ústridesrç  rw  s      ``    @@r5  Ú_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‰
Ø�‹˜Ñ‹Ø�'ˆ>Ðr7  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 )
NFr4  c                   ó   — y)Nzbrepeat: Number of dimensions of repeat dims can not be smaller than number of dimensions of tensorrK  rK  r7  r5  rM  zrepeat.<locals>.<lambda>>  rÏ  r7  r   rN  c              3   ó,   K  — | ]  \  }}||z  –— Œ y ­wrD  rK  )rG  Úpadded_sizeÚrepeat_sizes      r5  rI  zrepeat.<locals>.<genexpr>I  s!   è ø€ ò á$ˆK˜ð 	�kÕ!ñùr&  r©  T)ÚkeyÚreverse)rj  r<  r_  r`  rQ  rR  r®   r  r�  rY  Úzipr  r±  r4  r¦  rš  Úmake_contiguous_strides_forr\  r}  r[  r,  Úsortr[  Ú
itemgetterrÜ   rë   rï   )r}  Ú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                  r5  rî   rî   8  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Ð0r7  Ú
allow_copyc                óî  ‡‡— ddl m}m} t        j                  |d¬«      }t        j
                  || j                  «       «      } || j                  «       dk(  «      r t        | |t        j                  |«      «      S | j                  dk(  r7| }|D ]  }|dk(  sJ ‚t        |d«      }Œ || u rt        j                  | «      S |S t        |«      dk(  rA| }| j                  D ]  }|dk(  sJ ‚t        |d«      }Œ || u rt        j                  | «      S |S | j!                  «       r†t        |«      dk(  r6| j                  dkD  r't#        j                  | | j                  «       gdg«      S t        |«      dk(  r4| j                  dk(  r%|d   }|d   }t#        j                  | ||g|dg«      S dŠ| Š|D �]S  }‰‰j                  k\  r@|dk(  sJ ‚‰j                  dz
  }	t        j$                  ‰|	‰j                  |	   «      Š‰dz   ŠŒS ||‰j                  ‰   k(  «      r‰dz   ŠŒq‰j                  ‰   }
‰} ||
|z  dk7  «      r&|dz   }|
‰j                  |   z  }
 ||
|z  dk7  «      rŒ&|‰k7  rrt        j&                  ‰‰|«      \  }}|€I|rt        j(                  | |«      c S d| j                  › d	| j+                  «       › d
|› d�}t-        |«      ‚t/        ‰‰|«      Š ||
|k7  «      rt        j$                  ‰‰|«      Š‰dz   Š�ŒV ‰‰j                  k  rFt#        j0                  ‰j                  ‰   dk(  ˆˆfd„«       t        ‰‰«      Š‰‰j                  k  rŒF‰| u rt        j                  | «      S ‰S )Nr   )rB  Úsym_eqFr4  rN  rS  r!  z Cannot view a tensor with shape z and strides z as a tensor with shape ri  c                  ó.   •— d‰› d‰ j                   ‰   › �S )Nza.size(z) expected to be 1 but got r  )rî  rW  s   €€r5  rM  z&_reshape_view_helper.<locals>.<lambda>æ  s   ø€ �g˜c˜UÐ"=¸b¿h¹hÀs¹m¸_ÐM€ r7  )rX  rB  r˜  rj  r<  Ú
infer_sizerò  rÈ   r†  r  r  r¢  r?  rQ  rR  r÷   Úis_contiguousr_  Ú	split_dimrÜ  rï   r%  r^  rß   r`  )r}  r–  rR  rB  r˜  Ú_arÕ  Údim0Údim1Úlast_dimÚaccumrq  rÃ  rß  rÅ  rî  rW  s                  @@r5  Ú_reshape_view_helperr¢  r  s~  ù€ ßRô ×,Ñ,¨U¸UÔC€Eô ×Ñ˜U A§G¡G£IÓ.€Eñ ˜AŸG™G›I¨™NÔ+Ü˜!˜U¤E×$EÑ$EÀeÓ$LÓMÐMð 	‡v�v�‚{ØˆØò 	#ˆFØ˜Q’;Ð�;Ü˜2˜rÓ"‰Bð	#ð �‰7Ü—=‘= Ó#Ð#àˆIô ˆ5ƒz�Q‚ØˆØ—g‘gò 	!ˆFØ˜Q’;Ð�;Ü˜˜R“‰Bð	!ð �‰7Ü—=‘= Ó#Ð#àˆIà‡�Ôäˆu‹:˜Š?˜qŸv™v¨šzÜ×#Ñ# A¨¯©«	 {°Q°CÓ8Ð8äˆu‹:˜Š?˜qŸv™v¨š{Ø˜‘8ˆDØ˜‘8ˆDÜ×#Ñ# A¨¨d |°d¸A°YÓ?Ð?ð* €CØ	
€BØó ,ˆà�"—'‘'Š>Ø˜Q’;Ð�;Ø—w‘w ‘{ˆHô —‘  X¨r¯x©x¸Ñ/AÓBˆBØ˜‘'ˆCØñ   ¨"¯(©(°3©-Ñ 7Ô8Ø˜‘'ˆCØð
 —‘˜‘ˆØˆÙ" 5¨6¡>°QÑ#6Ô7Ø˜‘'ˆCØ˜BŸH™H S™MÑ)ˆEñ # 5¨6¡>°QÑ#6Õ7ð �#Š:ô ',×&AÑ&AÀ"ÀcÈ3Ó&OÑ#ˆI�|ØÐ ÙÜ Ÿ=™=¨¨EÓ2Ò2à8¸¿¹¸	ÀÈqÏxÉxËzÈlÐZrÐsxÐryÐyzÐ{�Ü  “oÐ%ä˜˜S #Ó&ˆBñ   ¨¡Ô0Ü—‘  S¨&Ó1ˆBà�A‰gŠðY,ð^ �—‘Š-Ü�‰Ø�H‰H�S‰M˜QÑÜMô	
ô �R˜Óˆð �—‘‹-ð 
ˆQ�wÜ�}‰}˜QÓÐàˆ	r7  rR  c                 ó    — t        | g|¢­ddiŽS )Nr–  T©r¢  r8  s     r5  rï   rï   ô  s   € Ü Ð; EÒ;°dÑ;Ð;r7  c                 ó@   — | j                  |j                  «       «      S rD  )rï   r)  ©rð  rú  s     r5  rð   rð   ù  s   € Ø�<‰<˜Ÿ
™
›Ó%Ð%r7  Úshiftsc                 ó¾  — t        j                  | j                  |«      }t        |t        «      s|f}t        |t        «      s|f}| j                  «       dk(  r| j                  «       S | j                  «       dk(  r t        |«      dkD  rt        d|d   › d�«      ‚t        |«      }t        |«      }|dk7  s|dk7  r¹|dk(  rt        d«      ‚|dk(  rH|dk(  rCt        j                  t        j                  | «      |d«      j                  | j                  «      S ||k7  rt        d|› d|› �«      ‚|dkD  sJ ‚|dd }|dd }t        j                  | |d   f|d   «      }t        j                  |||«      S |d   }| j                  |   }	|	|d   z
  |	z  }
t        j                   |	| j"                  ¬	«      }| j%                  |t        j&                  |
|z   |	«      «      S )
z/Reference implementation of :func:`torch.roll`.r   zDimension specified as z but tensor has no dimensionsrN  z`shifts` requiredz*shifts and dimensions must align. shifts: z, dims: Nr3  )rj  rá  r  r;  r   rò  r®   rç  rQ  ró  rm  r_  rñ   rß   r  rR  r  r4  rK   r„   )r}  r§  r0  Ú
len_shiftsÚlen_dimsÚtail_shiftsÚ	tail_dimsÚfirst_dim_rolledrç  r)  r—  rW  s               r5  rñ   rñ   ý  sÕ  € ô ×"Ñ" 1§6¡6¨4Ó0€Dä�fœhÔ'Ø�ˆÜ�dœHÔ%Øˆwˆð 	‡w�wƒy�A‚~à�w‰w‹yÐà‡u�uƒw�!‚|œ˜D›	 AšÜØ% d¨1¡g YÐ.KÐLó
ð 	
ô �V“€JÜ�4‹y€HØ�Q‚˜( aš-Ø˜Š?ÜÐ2Ó3Ð3ð �qŠ=˜Z¨1š_Ü—:‘:œeŸm™m¨AÓ.°¸Ó:×?Ñ?ÀÇÁÓHÐHØ˜Ò!ÜØ<¸Z¸LÈÐQYÐPZÐ[óð ð ˜!Š|Ðˆ|Ø˜Q˜R�jˆØ˜˜�Hˆ	Ü Ÿ:™: a¨&°©)¨°t¸A±wÓ?ÐÜ�z‰zÐ*¨K¸ÓCÐCð ˆq‰'€CØ�7‰7�3‰<€DØ�F˜1‘IÑ Ñ%€EÜ
�,‰,�t A§H¡HÔ
-€CØ�>‰>˜#œuŸz™z¨%°#©+°tÓ<Ó=Ð=r7  ©r   rN  Úkc                 ó†  — t        |«      dk7  rt        dt        |«      › �«      ‚| j                  dk  rt        d| j                  › �«      ‚t        j                  | j                  |«      }|d   |d   k(  rt        d|d   › d|d   › �«      ‚|dz  }|dk(  r5t        j                  t        j                  | |d   f«      |d   |d   «      S |dk(  rt        j                  | |«      S |d	k(  r5t        j                  t        j                  | |d   f«      |d   |d   «      S | j                  t
        j                  ¬
«      S )z0Reference implementation of :func:`torch.rot90`.r!  z2expected total rotation dims == 2, but got dims = z/expected total dims >= 2, but got total dims = r   rN  z7expected rotation dims to be different, but got dim0 = z and dim1 = r8  r‹  rà  )
rQ  rm  r  rj  rá  r_  rþ   rà   r®   r   )r}  r¯  r0  s      r5  rò   rò   .  s?  € ô ˆ4ƒy�A‚~ÜØ@ÄÀTÃÀÐLó
ð 	
ð 	‡v�v�‚zÜÐLÈQÏVÉVÈHÐUÓVÐVô ×"Ñ" 1§6¡6¨4Ó0€DàˆA�w�$�q‘'ÒÜØEÀdÈ1ÁgÀYÈlÐ[_Ð`aÑ[bÐZcÐdó
ð 	
ð 	
ˆA‰€AØˆA‚vÜ�‰œuŸz™z¨!¨d°1©g¨ZÓ8¸$¸q¹'À4ÈÁ7ÓKÐKØ	
ˆaŠÜ�z‰z˜!˜TÓ"Ð"Ø	
ˆaŠÜ�‰œuŸz™z¨!¨d°1©g¨ZÓ8¸$¸q¹'À4ÈÁ7ÓKÐKà�w‰w¤U×%<Ñ%<ˆwÓ=Ð=r7  c                 ó´   — | d   j                   }t        dt        | «      «      D ]1  }| |   j                   |k(  rŒJ d|› d| |   j                   › d|› �«       ‚ y )Nr   rN  z4stack expects each tensor to be equal size, but got z at entry 0 and z
 at entry )rR  r]  rQ  )r•  Úentry_shaper  s      r5  Ú_check_stack_inputsr³  N  sr   € Ø˜!‘*×"Ñ"€KÜ�1”c˜'“lÓ#ò 
ˆØ�q‰z×Ñ ;Ó.ð 	
ØBÀ;À-ð PØ˜1‘:×#Ñ#Ð$ J¨q¨cð3ó	
Ð.ñ
r7  c                 óÖ  — t        | «      dkD  sJ d«       ‚t        j                  | d   j                  dz   |«      }|| d   j                  k  ret	        | «       t        | d   j                  «      }|j                  |t        | «      «       t        j                  | |«      }|j                  |«      S t        j                  | D �cg c]  }|j                  |«      ‘Œ c}|«      S c c}w )Nr   z$stack expects a non-empty TensorListrN  )rQ  rj  r«  r  r³  r,  rR  Úinsertr_  rÏ   r  r  )r•  rç  Úwrapped_dimÚresult_sizesr—  rù   s         r5  rõ   rõ   W  sÄ   € ô ˆw‹<˜!ÒÐCÐCÓCÐÜ×(Ñ(¨°©¯©¸1Ñ)<¸cÓB€Kà�W˜Q‘Z—_‘_Ò$Ü˜GÔ$Ü˜G A™J×,Ñ,Ó-ˆØ×Ñ˜K¬¨W«Ô6Ü�i‰i˜ Ó-ˆØ�x‰x˜Ó%Ð%ô �9‰9¸Ö@°1�a—k‘k +Õ.Ò@À#ÓFÐFùÒ@s   ÃC&c           
      ó  — |xs | j                   }t        j                  |«      }t        | |«      }| j	                  «       dk(  rt        |«      }nt        ||d¬«      }t        ||z
  «      }t        t        |t        ||d¬«      «      |«      S )Nr   Tré  )	r±  rj  rë  r'   rò  r?   r³   r¥   r½   )r}  rç  r±  rì  rí  rî  Úa_expÚa_maxs           r5  rm   rm   i  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¸<óð r7  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 TensorListrK  rK  r7  r5  rM  zhstack.<locals>.<lambda>  rÏ  r7  rN  )r_  r`  rQ  rÅ   r  rÏ   r±  s     r5  rä   rä   }  sQ   € ä	‡L�L”�W“ Ñ!Ñ#RÔSÜ  'Ð*€OØ�qÑ×Ñ !Ò#Ü�? AÓ&Ð&Üˆ Ó"Ð"r7  c                 óp   — t        j                  t        | «      dkD  d„ «       t        | Ž }t	        |d«      S )Nr   c                   ó   — y)Nz%vstack expects a non-empty TensorListrK  rK  r7  r5  rM  zvstack.<locals>.<lambda>‰  rÏ  r7  )r_  r`  rQ  rÆ   rÏ   r±  s     r5  r	  r	  ‡  rÊ  r7  r.  c                 ó&  — t        j                  | j                  |«      }t        j                  t        |«      dk7  d„ «       | j                  t        | j                  d | «      t        |«      z   t        | j                  |dz   d  «      z   «      S )Nr   c                   ó   — y)Nz"unflatten: sizes must be non-emptyrK  rK  r7  r5  rM  zunflatten.<locals>.<lambda>‘  rÏ  r7  rN  )	rj  r«  r  r_  r`  rQ  r  rY  rR  )r}  rç  r.  s      r5  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ÐRr7  rù   c                 óH  ‡— ddl m} t        j                  | j                  ‰«      Št        j                  t        | j                  «      dkD  d„ «        || j                  ‰   dk(  «      ryt        ˆfd„t        j                  | | j                  ‰   ‰«      D «       «      S )Nr   rA  c                   ó   — y)Nz5Dimension specified as 0 but tensor has no dimensionsrK  rK  r7  r5  rM  zunbind.<locals>.<lambda>œ  rÏ  r7  rK  c              3   óJ   •K  — | ]  }t        j                  |‰«      –— Œ y ­wrD  )r_  r÷   )rG  Úsrç  s     €r5  rI  zunbind.<locals>.<genexpr>¡  s!   øè ø€ ò 
Ø&'ŒE�M‰M˜!˜S×!ñ
ùs   ƒ #)rX  rB  rj  r«  r  r_  Ú_check_indexrQ  rR  rY  rý   )rù   rç  rB  s    ` r5  r  r  •  sˆ   ø€ åJä
×
 Ñ
  §¡¨Ó
-€CÜ	×ÑÜˆA�G‰G‹�qÑÙGôñ ˜AŸG™G C™L¨AÑ-Ô.Øäó 
Ü+0×+=Ñ+=¸aÀÇÁÈÁÈsÓ+Sô
ó 
ð 	
r7  rÿ  r­  c                 ód   — | j                  t        j                  ¬«      j                  |||«      S rã  )r®   r_  r   rJ   )rH  rç  rÿ  r­  s       r5  rI   rI   ¦  s-   € à�7‰7¤×!8Ñ!8ˆ7Ó9×EÑEØˆU�Fóð r7  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 )NrN  c                  ó$   •— d‰ j                   › d�S ©Nz(Index should have dimension 1 or 0 (got rï  rk  ©rÿ  s   €r5  rM  zindex_copy_.<locals>.<lambda>±  ó   ø€ Ð:¸5¿:¹:¸,ÀaÐH€ r7  r   )rj  rá  r  r_  r`  r  Úslice)rH  rç  rÿ  r­  ro  rW  s     `   r5  rJ   rJ   ­  ss   ø€ Ü
×
!Ñ
! !§&¡&¨#Ó
.€CÜ	‡L�LØ�
‰
�a‰ÛHôð
 Ÿ&™& Aš+ˆ�‰�AŒ¨1€AÜ�‹;ˆ.˜3Ñ
 % Ñ
)€CØ€A€c�FØ€Hr7  c                 ó"   — t        | |||d¬«      S )NF©Úinplace©Ú_index_fill©rH  rç  rÿ  rÀ  s       r5  rL   rL   º  s   € ô
 �q˜#˜u e°UÔ;Ð;r7  c                 ó"   — t        | |||d¬«      S )NTrÎ  rÐ  rÒ  s       r5  rM   rM   Â  s   € ô �q˜#˜u e°TÔ:Ð:r7  rÏ  c                ó"  ‡‡— t        j                  ‰j                  dk  ˆfd„«       t        ‰t        «      r't        j                  ‰j                  dk(  ˆfd„«       n7t        j
                  ‰| j                  | j                  | j                  ¬«      Š| j                  dk(  }|r| j                  d«      n| }t        |j                  «      }‰j                  «       ||<   ‰j                  |«      Š|rt        j                  nt         j                   } |||‰‰«      }	|r| S |r|	j#                  d«      j%                  «       }	|	j'                  «       | j'                  «       k7  r(t        j(                  | «      }
|
j+                  |	«       |
}	|	S )NrN  c                  ó$   •— d‰ j                   › d�S rÉ  rk  rÊ  s   €r5  rM  z_index_fill.<locals>.<lambda>Ó  rË  r7  r   c                  ó$   •— d‰ j                   › d�S )Nz<Only supports 0-dimensional value tensor. Got a tensor with r¹  rk  rÇ  s   €r5  rM  z_index_fill.<locals>.<lambda>Ø  s   ø€ ð !Ø!&§¡ ¨Lð:€ r7  )r±  ré  r4  )r_  r`  r  r;  r#   r$  r±  ré  r4  r  r,  rR  rò  rÜ   r?  rJ   rI   r÷   r®   r%  r  Úcopy_)rH  rç  rÿ  rÀ  rÏ  Úzero_dimro  rR  rI   r—  Únew_outs     ``       r5  rÑ  rÑ  É  s;  ù€ ô 
‡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›:Ò%Ü×&Ñ& qÓ)ˆGØ�M‰M˜#ÔØˆCØˆ
r7  c                óh   — | j                  t        j                  ¬«      j                  ||||¬«      S )Nrà  rC  )r®   r_  r   Ú
index_add_)rH  rç  rÿ  r­  rD  s        r5  rH   rH   ú  s:   € ð �7‰7¤×!8Ñ!8ˆ7Ó9×DÑDØØØØð	 Eó ð r7  c                 óˆ  ‡— t        j                  | j                  |«      }t        j                  ‰j                  dk  ˆfd„«       ‰j                  dk(  r‰j                  d«      Š| j                  dk(  r5t        j                  | «      j                  d‰| j                  ‰«      «      S t        d «      f|z  ‰fz   }| |   S )NrN  c                  ó$   •— d‰ j                   › d�S rÉ  rk  rÊ  s   €r5  rM  zindex_select.<locals>.<lambda>  rË  r7  r   )
rj  rá  r  r_  r`  r  r  rI   rÝ   rÌ  )rH  rç  rÿ  rW  s     ` r5  rK   rK     s¦   ø€ ô ×
!Ñ
! !§&¡&¨#Ó
.€CÜ	‡L�LØ�
‰
�a‰ÛHôð ‡z�z�Q‚Ø—‘ Ó"ˆØ‡v�v�‚{ô ×Ñ Ó"×-Ñ-¨a°¸¿¹ÀEÓ8JÓKÐKä�‹;ˆ.˜3Ñ
 % Ñ
)€CØˆS‰6€Mr7  c                 ó˜  ‡ ‡— ddl mŠ |€Rt        d„ t        ‰ j                  «      D «       «      }|rt        j                  ‰ |«      S t        j                  ‰ «      S ‰ j                  }t        j                  ||«      }t        |t        «      r|fn|}|dk(  r*t        |«      dk(  s|dk(  sJ ‚t        j                  ‰ «      S t        ˆ ˆfd„|D «       «      }t        |«      dk(  rt        j                  ‰ «      S t        |«      dk(  rt        j                  ‰ |«      S t        |«      }t        |d¬«      }|D ]  }t        ‰ |«      Š Œ ‰ S )	Nr   rA  c              3   ó2   K  — | ]  \  }}|d k(  sŒ|–— Œ y­wr:  rK  )rG  rW  r)  s      r5  rI  zsqueeze.<locals>.<genexpr>$  s   è ø€ ÒJ™Y˜S $ÀÈÃ	”SÑJùs   ‚�r¨  c              3   óT   •K  — | ]  } ‰‰j                   |   d k(  «      sŒ|–— Œ! y­wr:  r  )rG  Údr}  rB  s     €€r5  rI  zsqueeze.<locals>.<genexpr>0  s%   øè ø€ ÒJ�qÑ$8¸¿¹À¹Àq¹Õ$I”ÑJùs   ƒ(¡(rN  T)r„  )rX  rB  rY  r\  rR  r¢  r÷   r?  r  rj  rá  r;  r   rQ  r,  rý  )r}  rç  r0  r  Ú	dims_listr  rB  s   `     @r5  r÷   r÷     s  ù€ åJà
€{ÜÑJ¬)°A·G±GÓ*<ÔJÓJˆÙ)-Œu�}‰}˜Q Ó%ÐC´5·=±=ÀÓ3CÐCà�6‰6€DÜ
×
!Ñ
! $¨Ó
,€CÜ ¤SÔ)ˆC‰6¨s€Dàˆq‚yÜ�4‹y˜AŠ~ ¨¢Ð-Ð-Ü�}‰}˜QÓÐô ÔJ˜DÔJÓJ€DÜ
ˆ4ƒy�A‚~Ü�}‰}˜QÓÐÜ
ˆ4ƒy�A‚~Ü�}‰}˜Q Ó%Ð%Ü�T“
€IÜ�y¨$Ô/€IØò ˆÜ�A�q‹M‰ðà€Hr7  Úsplit_sizesc                 óð  ‡ ‡‡— t        t        ‰«      «      D ]  }t        j                  ‰|   d„ «       Œ t        j                  t
        t        j                  ‰«      ‰ j                  ‰   k(  ˆˆ ˆfd„«       g }‰ j                  «       }‰D ]e  }t        ‰ j                  «      }||‰<   |j                  ‰ j                  |‰ j                  «       |«      «       |‰ j                  «       ‰   |z  z   }Œg |S )Nc                   ó   — y)NzCsplit_with_sizes expects split_sizes have only non-negative entriesrK  rK  r7  r5  rM  z"split_with_sizes.<locals>.<lambda>E  rÏ  r7  c                  óT   •— dt        j                  ‰«      › d‰j                  ‰    › �S )NzSplit sizes add up to z but got the tensor's size of )r*  r½   rR  )rç  rð  rã  s   €€€r5  rM  z"split_with_sizes.<locals>.<lambda>J  s.   ø€ Ð(¬¯©°kÓ)BÐ(CÐCaÐbf×blÑblÐmpÑbqÐarÐs€ r7  )r]  rQ  r_  Ú_check_is_sizerò  r^  r*  r½   rR  r+  r,  r�  rÈ   r%  )rð  rã  rç  r  Úsplitsrl  Ú
split_sizerÃ  s   ```     r5  rô   rô   <  sâ   ú€ ô ”3�{Ó#Ó$ò 
ˆÜ×ÑØ˜‰NÙYõ	
ð
ô
 
×ÑÜÜ�‰�[Ó! T§Z¡Z°¡_Ñ4Ýsôð €FØ× Ñ Ó"€Fà!ò :ˆ
Ü˜Ÿ™Ó$ˆ	Ø#ˆ	�#‰ð 	�‰�d—o‘o i°·±³ÀÓGÔHØ˜$Ÿ+™+›-¨Ñ,¨zÑ9Ñ9‰ð:ð €Mr7  Úindices_or_sectionsc                 ó¶  — t        j                  | j                  |«      }| j                  dk(  rd}t        |«      ‚t	        |t
        «      rj|j                  j                  dk(  s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!re  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 rN  ©rç  zntensor_split: non-scalar indices_or_sections tensors must have only one dimension, but received a tensor with r%  )rj  r«  r  r^  r;  r#   r4  r2  r±  r_  Úlongr   r   r°   rR  r  rE   r]  r�  rY  r›  rô   Útolistr,  rQ  )r}  rê  rç  Ú_dimrÅ  ÚsectionsrŒ  Úmin_split_sizeÚnum_splits_one_extrarã  Ú	split_idxré  Úindicesr  s                 r5  rý   rý   \  s~  € ô
 ×!Ñ! !§&¡&¨#Ó.€DØ‡v�v�‚{ØhˆÜ˜‹oÐô Ð%¤zÔ2Ø"×)Ñ)×.Ñ.°%Ò7ð'Ø':×'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 )NrN  c                  ó:   •— dt        ‰ j                  «      z   dz   S )NzPtorch.hsplit requires a tensor with at least 1 dimension, but got a tensor with ú dimensions!©rn  r  r|  s   €r5  rM  zhsplit.<locals>.<lambda>©  ó#   ø€ Ø^Ü�!—&‘&‹kñàñð r7  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 ri  r  )r}  rç  ré  s   €€€r5  rM  zhsplit.<locals>.<lambda>´  sX   ø€ ØBÜ�c“(ñà4ñ5ô �a—g‘g˜c‘lÓ#ñ$ð 9ñ	9ô
 �j“/ñ"ð ñð r7  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 r1  ©rê  s   €r5  rM  zhsplit.<locals>.<lambda>Â  ó   ø€ ðä Ð!4Ó5Ð6ð8ð r7  ©
r_  r`  r  r;  r   rR  rý   Ú_check_typer,  rY  )r}  rê  rã  rç  ré  s   `` @@r5  rã   rã   ¤  s¼   û€ ô 
‡L�LØ	�‰�!‰ó	
ôð �v‰v˜Š{‰! €CÜÐ%¤wÔ/Ø(ˆ
Ü�‰Ø˜1‰_Ò? §¡¨¡°
Ñ!:¸aÑ!?õô	
ô ˜A˜z¨3Ó/Ð/ä	×ÑÜÐ&¬¬u¨Ó6ó	
ôð &€KÜ˜˜;¨Ó,Ð,r7  c                 ór  ‡ ‡‡— t        j                  ‰ j                  dk\  ˆ fd„«       t        ‰t        «      rC‰Št        j                  ‰dk7  xr ‰ j
                  d   ‰z  dk(  ˆ ˆfd„«       t        ‰ ‰d«      S t        j                  t        ‰t        t        f«      ˆfd„«       ‰}t        ‰ |d«      S )Nr!  c                  ó:   •— dt        ‰ j                  «      z   dz   S )NzPtorch.vsplit requires a tensor with at least 2 dimension, but got a tensor with r÷  rø  r|  s   €r5  rM  zvsplit.<locals>.<lambda>Ó  rù  r7  r   c                  ó0   •— d‰ j                   d   › d‰› d�S )NzQtorch.vsplit attempted to split along dimension 0, but the size of the dimension r   rû  ri  r  )r}  ré  s   €€r5  rM  zvsplit.<locals>.<lambda>Ý  s*   ø€ ð3à—7‘7˜1‘:�,Ø6Ø�,Øðð r7  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 r1  rý  s   €r5  rM  zvsplit.<locals>.<lambda>ê  rþ  r7  rÿ  )r}  rê  rã  ré  s   `` @r5  r  r  Î  s«   ú€ ô 
‡L�LØ	�‰�!‰ó	
ôô Ð%¤wÔ/Ø(ˆ
Ü�‰Ø˜1‰_Ò= §¡¨¡¨jÑ!8¸AÑ!=ôô
	
ô ˜A˜z¨1Ó-Ð-ä	×ÑÜÐ&¬¬u¨Ó6ó	
ôð &€KÜ˜˜;¨Ó*Ð*r7  rl  c                 ó¼   ‡— | j                  «       Št        j                  ‰dv ˆfd„«       ‰dk(  rt        j                  | |«      S t        j                  | |«      S )N)rN  r!  c                  ó   •— d‰ › d�S )Nz'diag(): Supports 1D or 2D tensors. Got ÚDrK  rk  s   €r5  rM  zdiag.<locals>.<lambda>ý  s   ø€ Ð"IÈ$ÈÈqÐ Q€ r7  rN  )rç  r_  r`  rÕ   rØ   )rð  rl  r  s     @r5  rÖ   rÖ   õ  sU   ø€ ð �8‰8‹:€DÜ	‡L�LØ�ˆÓQôð ˆq‚yÜ×Ñ  fÓ-Ð-ä×"Ñ" 4¨Ó0Ð0r7  rŸ  Údim2c                 óÔ   ‡‡— t        j                  | «      }|j                  |||«      Št        j                  ‰j
                  ‰j
                  k(  ˆˆfd„«       t        ‰‰«       |S )Nc                  ó<   •— d‰j                   › d‰ j                   › �S )NzCexpected src to have a size equal to the diagonal of the input.Got z for a diagonal of shape r  )rÖ   r�  s   €€r5  rM  z"diagonal_scatter.<locals>.<lambda>  s$   ø€ ð Ø�y‰yˆkÐ2°4·:±:°,ð@€ r7  )rj  Úclone_preserve_stridesr×   r_  r`  rR  r¯   )r®  r�  rl  rŸ  r  r—  rÖ   s    `    @r5  rÙ   rÙ     sZ   ù€ ô ×
&Ñ
& uÓ
-€CØ�<‰<˜  dÓ+€DÜ	‡L�LØ�
‰
�c—i‘iÑô	@ôô
 ˆD�#ÔØ€Jr7  c                 óè  ‡‡— | j                  «       }t        j                  ‰|¬«      Št        j                  ‰|¬«      Št        j                  ‰‰k7  ˆˆfd„«       | j                  «       }|dk\  r<t        t        | j                  «       ‰   | j                  «       ‰   |z
  «      d«      }n;t        t        | j                  «       ‰   |z   | j                  «       ‰   «      d«      }|dkD  r8|dk\  r||| j                  «       ‰   z  z  }n||| j                  «       ‰   z  z  }t        | j                  «       «      D ��cg c]  \  }}|‰‰fvsŒ|‘Œ }	}}|	j                  |«       t        | j                  «       «      D ��cg c]  \  }}|‰‰fvsŒ|‘Œ }
}}|
j                  | j                  «       ‰   | j                  «       ‰   z   «       | j                  |	|
|¬«      }|S c c}}w c c}}w )z4
    Reference implementation of torch.diagonal
    )rW  Úrankc                  ó   •— d‰ › d‰› �S ©Nz(diagonal dimensions cannot be identical rî  rK  ©rŸ  r  s   €€r5  rM  zdiagonal.<locals>.<lambda>(  ó   ø€ Ð HÈÈÈbÐQUÐPVÐW€ r7  r   )r)  r%  r+  )rç  rj  r«  r_  r`  r+  r[  rþ  r)  r%  r\  r�  rÈ   )rð  rl  rŸ  r  Únum_dimsr+  Ú	diag_sizer  rÄ  r.  r|  rõ  s     ``        r5  r×   r×     s±  ù€ ð �x‰x‹z€HÜ×!Ñ! d°Ô:€DÜ×!Ñ! d°Ô:€Dä	‡L�LØ�‰ÔWôð ×(Ñ(Ó*€Nà�‚{Üœ˜DŸI™I›K¨Ñ-¨t¯y©y«{¸4Ñ/@À6Ñ/IÓJÈAÓN‰	äœ˜DŸI™I›K¨Ñ-°Ñ6¸¿	¹	»ÀDÑ8IÓJÈAÓNˆ	à�1‚}Ø�QŠ;Ø˜f t§{¡{£}°TÑ':Ñ:Ñ:‰Nà˜f t§{¡{£}°TÑ':Ñ:Ñ:ˆNä$ T§Y¡Y£[Ó1×K‘4�1�a°Q¸tÀT¸lÒ5JŠQÐK€EÑKØ	‡L�L�Ôä& t§{¡{£}Ó5×O‘T�Q˜¸À4ÈÀ,Ò9NŠqÐO€GÑOØ‡N�N�4—;‘;“= Ñ&¨¯©«°tÑ)<Ñ<Ô=à�_‰_ %°Èˆ_ÓW€Fà€Mùó Lùó Ps   ÅG(ÅG(ÆG.ÆG.c                 ó8  ‡‡— | j                   dz   }t        j                  |‰¬«      Št        j                  |‰¬«      Š‰‰kD  r‰‰cŠŠ| }t        j                  ‰‰k7  ˆˆfd„«       | j                  d«      }|dk7  r–t        | j                  «      }t        j                  |«      |d<   t        j                  || j                  | j                  d¬«      }|dkD  r|| fn| |f}t        j                  |d¬«      } |t        j                  |«      z  }| j                  ‰«      j                  d‰«      } t        j                   || j                  t        j"                  ¬	«      }	t        j                   |||z   | j                  t        j"                  ¬	«      }
|	|
j                  d«      k(  }t%        t'        | j                  «      «      D �cg c]  }|‰‰fv r|nd‘Œ }}|j)                  |«      }t        j*                  || «      j-                  «       S c c}w )
z6
    Reference implementation of torch.diag_embed
    rN  )r  rW  c                  ó   •— d‰ › d‰› �S r  rK  r  s   €€r5  rM  zdiag_embed.<locals>.<lambda>Z  r  r7  rS  r   F©r±  r4  r¦  rì  ©r4  r±  )r  rj  r«  r_  r`  r)  r,  rR  r*  r-   r&  r±  r4  rÏ   r  ræ   r  r0  r]  rQ  rï   Úmask_tensorrÔ   )rù   rl  rŸ  r  r  r   Út_shapeÚzÚpairÚa_rangeÚb_rangeÚcondr  Ú
cond_shapes     ``          r5  rÕ   rÕ   C  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
    rN  rS  c              3   ó:   K  — | ]  }|j                   d    –— Œ y­wr:  r  )rG  r­  s     r5  rI  z'_block_diag_iterable.<locals>.<genexpr>‡  s   è ø€ ÒB¨V˜Ÿ™ a�ÑBùs   ‚r   r!  c                  ó2   •— d‰ › d‰j                  «       › d�S )Nz5Input tensors must have 2 or fewer dimensions. Input z has r%  rì  )r  r­  s   €€r5  rM  z&_block_diag_iterable.<locals>.<lambda>�  s"   ø€ ð Ø�C�u˜VŸZ™Z›\˜N¨+ð7€ r7  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 rY  r3  )r4  r  r­  s   €€€r5  rM  z&_block_diag_iterable.<locals>.<lambda>•  s(   ø€ ð $Ø$* 8¨;°q°c¸ÈÏÉÀÐVWðY€ r7  r  rì  )rç  r  r*  r½   r4  r\  r_  r`  rR  r&  r±  rÏ   )r•  r­  Ú
tensors_2dÚncolsrõ  Ú	col_startÚrowÚcolrQ  Úrightr4  r  s    `        @@r5  Ú_block_diag_iterabler*  }  sY  ú€ ð KRöØ@F˜fŸj™j›l¨aÒ/ˆ�‰�A�rÔ°VÑ;ð€Jð ô �L‰LÑB°zÔBÓB€EØ˜‰]×!Ñ!€Fà€Fà€IÜ˜zÓ*ò ‰	ˆˆ6Ü�‰Ø�J‰J‹L˜AÑô7ô	
ô
 	�‰Ø�M‰M˜VÑ#õYô	
ð
 —<‘<‰ˆˆSÜ�{‰{˜C Ð+°FÀ&Ç,Á,ÔOˆÜ—‘Ø�%˜)Ñ# cÑ)Ð*°6ÀÇÁô
ˆð 	”5—9‘9˜d F¨EÐ2¸Ô:Ð;Ñ;ˆØ�SÑ‰	ð#ô& �9‰9�V Ô#Ð#ùò;s   ˆ.E$c                  ó   — t        | «      S )z¶
    This is used as an input to PythonRefInfo. `torch.block_diag`
    expects arguments splatted, but `aten.block_diag` expects only
    one argument that is a list of Tensors.
    )r*  r”  s    r5  rË   rË   £  s   € ô   Ó(Ð(r7  rð  c                 ó  — | j                   dk  rt        d| j                   › d�«      ‚t        |t        «      r<|dk(  s| j                  d   |z  dk7  r"t        dd| j                  d   › d|› d	�z   «      ‚t        | |d«      S )
Nr‹  zPtorch.dsplit requires a tensor with at least 3 dimension, but got a tensor with r÷  r   r!  z3torch.dsplit attempted to split along dimension 2, zbut the size of the dimension rû  ri  )r  rm  r;  r   rR  rý   )r}  rð  s     r5  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Ó'Ð'r7  c                 óª   — | j                   dkD  rt        d| j                   › d�«      ‚t        j                  | d| j                   dk  rd«      S d«      S )Nr!  z7t() expects a tensor with <= 2 dimensions, but self is r  r   rN  )r  rm  r_  rþ   r|  s    r5  rù   rù   º  sS   € ð 	‡v�v�‚zÜØEÀaÇfÁfÀXÈQÐOó
ð 	
ô �?‰?˜1˜a a§f¡f¨q¢j Ó8Ð8°aÓ8Ð8r7  c                 óh   — t        j                  | j                  dv d„ «       | j                  «       S )N)r   r!  c                   ó   — 	 y)NzcThe use of `x.T` on tensors of dimension other than 0 or 2 to reverse their shape is not supported.rK  rK  r7  r5  rM  zT.<locals>.<lambda>Ñ  s   € ð7ð r7  )r_  r`  r  rù   r|  s    r5  rû   rû   Í  s,   € ä	‡L�LØ	�‰�&Ðñ	
ôð �3‰3‹5€Lr7  c                 ó,   — t        j                  | «      S rD  )r¢  r?  r|  s    r5  rÃ   rÃ   Ù  r¸  r7  rž  c                 ó0  — t        j                  | j                  ||f«      \  }}| j                  dk  s||k(  rt        j                  j                  | «      S t        t        d| j                  «      «      }|||<   |||<   t        j                  | |«      S )NrN  r   )
rj  rá  r  r›  rÃ   Údefaultr,  r]  r_  rë   )r}  rž  rŸ  Ú_dim0Ú_dim1r  s         r5  rþ   rþ   Þ  s€   € ä×*Ñ*¨1¯6©6°D¸$°<Ó@�L€Eˆ5à‡v�v�‚{�d˜d’lÜ�z‰z×!Ñ! !Ó$Ð$äœ˜a §¡Ó(Ó)€LØ€L�ÑØ€L�ÑÜ�=‰=˜˜LÓ)Ð)r7  c                 óz   — t        | j                  | j                  «       |||«      \  }}| j                  ||«      S rD  )r}  rR  r%  rÈ   )rð  rA  r)  rB  rR  r|  s         r5  r  r  ï  s:   € ô .Ø�
‰
�D—K‘K“M 9¨d°Dó�N€Eˆ7ð �?‰?˜5 'Ó*Ð*r7  c                 ód   — | j                  |||«      j                  t        j                  ¬«      S rã  )r  r®   r_  r   )rð  rA  r)  rB  s       r5  r  r  ù  s2   € ð �;‰;�y $¨Ó-×3Ñ3Ü×-Ñ-ð 4ó ð r7  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—  rN  r3  rS  )
r  rj  r«  r  r_  r  rR  r4  r]  r­   )r  Úinitr}  rç  r±  r—  r  Úrgrq  r˜  Úmasked_as              r5  Ú_cumsumprod_commonr;    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Ð8r7  c                ó,   — t        t        d| |||¬«      S )Nr   ©r  r8  r}  rç  r±  r—  )r;  r½   ©r}  rç  r±  r—  s       r5  r¶   r¶     s   € ô ¤3¨Q°!¸ÀEÈsÔSÐSr7  c                ó,   — t        t        d| |||¬«      S )NrN  r=  )r;  r¿   r>  s       r5  r·   r·   $  s   € ô ¤4¨a°1¸#ÀUÐPSÔTÐTr7  c                 ó~   — | j                   dz   }t        j                  ||«      }t        j                  | |f|¬«      S )NrN  rk  )r  rj  r«  r¢  Úexpand_dims)r}  rç  r  s      r5  r  r  0  s:   € ð �6‰6�A‰:€DÜ
×
 Ñ
   sÓ
+€CÜ×Ñ˜Q  ¨TÔ2Ð2r7  c                 ó    — t        | g|¢­ddiŽS )Nr–  Fr¤  r8  s     r5  r  r  =  s   € ä Ð< EÒ<°eÑ<Ð<r7  c                 ó@   — | j                  |j                  «       «      S rD  )r  r)  r¦  s     r5  r  r  C  s   € Ø�9‰9�U—Z‘Z“\Ó"Ð"r7  c                 ó   — t        | d«      S )N)rS  )rï   r|  s    r5  rí   rí   H  s   € Ü�1�eÓÐr7  rô  c                 óÔ  ‡ ‡— t        j                  ‰ j                  ‰j                  k(  ˆ ˆfd„«       t        j                  t        j                  ‰j
                  «      ˆfd„«       |€5t        j                  ‰ j                  d«      d‰j                  d«      «      S t        ‰ j                  «      }‰j                  |«      ||<   t        j                  |‰j                  «       «      }t        ‰|«      }t        ‰j                  «      }‰ j                  |«      ||<   t        j                  |‰ j                  «       «      }t        ‰ |«      }t        j                  |||«      S )Nc                  ó>   •— d‰ j                   › d‰j                   › d�S )Nz]torch.take_along_dim(): input and indices should have the same number of dimensions, but got z dimensions for input, and z dimensions for indicesrk  )r}  rô  s   €€r5  rM  z take_along_dim.<locals>.<lambda>T  s*   ø€ ð-Ø-.¯V©V¨HÐ4OØ�|‰|ˆnÐ3ð5ð r7  c                  ó$   •— d‰ j                   › d�S )Nz?torch.take_along_dim(): dtype of indices should be int but got z insteadrÑ  )rô  s   €r5  rM  z take_along_dim.<locals>.<lambda>]  s   ø€ ØMØ�}‰}ˆo˜Xð'ð r7  rS  r   )r_  r`  r  rj  rü  r±  Úgatherr  r,  rR  r)  Úinfer_size_shapesrÎ   )r}  rô  rç  Ú
self_sizesÚbroadcast_shapeÚindices_broadcastÚindices_sizesÚself_broadcasts   ``      r5  rü   rü   N  s  ù€ ô 
‡L�LØ	�‰�'—,‘,Ñô	
ôô 
‡L�LÜ×Ñ˜wŸ}™}Ó-ó	
ôð €{Ü�|‰|˜AŸF™F 2›J¨¨7¯<©<¸Ó+;Ó<Ð<ä˜!Ÿ'™'“]ˆ
Ø!Ÿ,™, sÓ+ˆ
�3‰Ü×1Ñ1°*¸g¿l¹l»nÓMˆÜ(¨°/ÓBÐä˜WŸ]™]Ó+ˆØŸV™V C›[ˆ�cÑÜ×1Ñ1°-ÀÇÁÃÓJˆÜ% a¨Ó9ˆä�|‰|˜N¨CÐ1BÓCÐCr7  ©r±  ré  r4  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 supportedrK  rK  r7  r5  rM  zempty.<locals>.<lambda>  rÏ  r7  c                  ó   •— d‰ › d�S )Nz/torch.empty: received an unknown memory format ri  rK  rà  s   €r5  rM  zempty.<locals>.<lambda>‹  s   ø€ ÐEÀmÀ_ÐTUÐV€ r7  ©r±  ré  r4  rê  r¦  )r_  r`  rí  rj  r<  r   r†  Úchannels_last_3dÚ!make_channels_last_3d_strides_forÚchannels_lastÚ!make_channels_last_2d_strides_forr  )r±  ré  r4  r¦  rê  rá  rR  r|  s        `  r5  r  r  s  sÇ   ø€ ô 
‡L�LØœ×.Ñ.Ñ.ÙJôô
 ×,Ñ,¨UÓ3€Eàœ×/Ñ/Ò/Ü×3Ñ3°EÓ:‰Ø	œ%×0Ñ0Ò	0Ü×9Ñ9¸%Ó@‰ä�‰ØœU×0Ñ0Ñ0ÛVô	
ô ×9Ñ9¸%Ó@ˆä×ÑØØØØØØØ#ôð r7  c                 ó6   — t        j                  | ||||¬«      S )Nr  )r¢  r  )rR  Úphysical_layoutr±  ré  r4  r¦  rê  s          r5  r  r  š  s&   € ô ×ÑØØØØØ#ôð r7  ©r±  ré  r4  rê  c                ó–   — |€| j                   n|}|€| j                  n|}|€| j                  n|}t        j                  |||||¬«      S )N©r±  r4  rê  ré  )r±  ré  r4  r_  r  )r}  r)  r±  ré  r4  rê  s         r5  r  r  ­  sQ   € ð �}ˆA�GŠG¨%€EØ˜ˆQ�XŠX¨V€FØ˜ˆQ�XŠX¨V€Fä�;‰;ØØØØØôð r7  c                ó˜   — |€| j                   n|}|€| j                  n|}|€| j                  n|}t        j                  ||||||¬«      S )zD
    Reference implementation of torch.Tensor.new_empty_strided
    r\  )r±  ré  r4  r_  r  )r}  r)  r%  r±  ré  r4  rê  s          r5  r  r  Å  sV   € ð  �}ˆA�GŠG¨%€EØ˜ˆQ�XŠX¨V€FØ˜ˆQ�XŠX¨V€Fä×ÑØØØØØØôð r7  rS  c           	      óº   — t        j                  |«      }| €t        j                  «       } t        j                  || t        j
                  k(  rdnd| ||||¬«      S ©NFr   rS  ©rj  r<  r_  r–  r  rÓ  ©r±  ré  r4  rê  r¦  r)  s         r5  r&  r&  ã  sZ   € ô ×+Ñ+¨DÓ1€Dà€}Ü×'Ñ'Ó)ˆä�:‰:ØØœ%Ÿ*™*Ò$‰¨!ØØØØØ#ôð r7  c          	      óà   — |€| j                   n|}|€| j                  n|}|€| j                  n|}t        j                  ||xs | j                   t        j
                  k(  rdnd|||||¬«      S r_  ©r±  ré  r4  r_  r  rÓ  ©r}  r)  r±  ré  r4  rê  r¦  s          r5  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ØØØØØ#ôð r7  c           	      óº   — t        j                  |«      }| €t        j                  «       } t        j                  || t        j
                  k(  rdnd| ||||¬«      S ©NTrN  rS  r`  ra  s         r5  r!  r!    sZ   € ô ×+Ñ+¨DÓ1€Dà€}Ü×'Ñ'Ó)ˆä�:‰:ØØœŸ™Ò#‰¨ØØØØØ#ôð r7  c          	      óà   — |€| j                   n|}|€| j                  n|}|€| j                  n|}t        j                  ||xs | j                   t        j
                  k(  rdnd|||||¬«      S rf  rc  rd  s          r5  r  r  2  sm   € ð �}ˆA�GŠG¨%€EØ˜ˆQ�XŠX¨V€FØ˜ˆQ�XŠX¨V€Fä�:‰:ØØÒ!˜!Ÿ'™'¤e§j¡jÒ0‰°aØØØØØ#ôð r7  Ú
fill_valuec                ó˜   — |€| j                   n|}|€| j                  n|}|€| j                  n|}t        j                  ||||||¬«      S )NrZ  )r±  ré  r4  r_  r  )r}  r)  rh  r±  ré  r4  rê  s          r5  r  r  M  sT   € ð �}ˆA�GŠG¨%€EØ˜ˆQ�XŠX¨V€FØ˜ˆQ�XŠX¨V€Fä�:‰:ØØØØØØôð r7  )r±  r4  ré  rê  r¦  rá  c          	      óJ  — |€| j                   n|}|€| j                  n|}|€| j                  n|}|t        j                  k7  r&t        j
                  | j                  ||||||¬«      S t        j                  | «      }t        j                  | j                  ||||||¬«      S )NrO  rS  )
r±  ré  r4  r_  rí  r  rR  rj  Ú3compute_elementwise_output_logical_to_physical_permr  )r}  r±  r4  ré  rê  r¦  rá  Úlogical_to_physical_perms           r5  r  r  g  s¬   € ð �}ˆA�GŠG¨%€EØ˜ˆQ�XŠX¨V€FØ˜ˆQ�XŠX¨V€Fàœ×-Ñ-Ò-Ü�{‰{Ø�G‰GØØØØ'Ø!Ø'ô
ð 	
ô 	×AÑAÀ!ÓDð ô ×ÑØ	�‰Ø ØØØØØ#ôð r7  rq  c                ór  ‡ ‡‡— t        j                  |«       t        j                  |«       t        j                  t        j
                  |«      «      }t        ‰ t        «      rJ ‚t        ‰t        «      rJ ‚t        ‰t        «      rJ ‚‰€‰ ŠdŠ t        j                  ‰dk7  d„ «       ‰dkD  rt        j                  ‰‰ k\  d„ «       n‰dk  rt        j                  ‰‰ k  d„ «       d„ }t        j                   |‰ «      xr  |‰«      ˆˆ fd„«       t        j                   |‰«      ˆfd„«       ‰ ‰‰f}	t        j                  d„ |	D «       «      }
|€&|
rt        j                  nt        j                  «       }t        j                  |«      }|s|
r!t        ‰ «      }t        ‰«      }t        ‰«      }|t        j                  k(  s|
r,t        dkD  «      t        |dk  «      z
  }z
  |z   |z
  |z  }nt!        j"                  ‰‰ z
  ‰z  «      }|rt%        j&                  ||||¬	«      S t%        j&                  |dd
t        j                  |d¬	«      }|
rt        j(                  nt        j*                  ||«      }t-        ||«      }‰ ‰|z  z   }t-        ||«      }|r|j/                  d«       |S )Nr   c                   ó   — y)Nzstep must be nonzerorK  rK  r7  r5  rM  zarange.<locals>.<lambda>«  rÏ  r7  c                   ó   — y©Nz7upper bound and lower bound inconsistent with step signrK  rK  r7  r5  rM  zarange.<locals>.<lambda>¯  rÏ  r7  c                   ó   — yrp  rK  rK  r7  r5  rM  zarange.<locals>.<lambda>´  rÏ  r7  c                 óR   — t        | t        «       xs t        j                  | «      S rD  )r;  r   r  rN   rL  s    r5  Ú	is_finitezarange.<locals>.is_finite·  s!   € Ü˜aÔ!5Ó6Ð6ÒJ¼$¿-¹-ÈÓ:JÐJr7  c                  ó   •— d‰› d‰ › �S )Nzunsupported range: z -> rK  )rq  r—  s   €€r5  rM  zarange.<locals>.<lambda>¼  s   ø€ Ð% e W¨D°°Ð6€ r7  c                  ó   •— d‰ › �S )Nzstep must be finite but got rK  ry  s   €r5  rM  zarange.<locals>.<lambda>À  s   ø€ Ð.¨t¨fÐ5€ r7  c              3   ó<   K  — | ]  }t        |t        «      –— Œ y ­wrD  rE  ©rG  ry  s     r5  rI  zarange.<locals>.<genexpr>Ä  s   è ø€ ÒI¸S¤
¨3´× 8ÑIùó   ‚)r—  rB  r±  r4  r¦  rN  FT)rj  Úcheck_layoutÚcheck_pin_memoryr_  r4  Údevice_or_defaultr;  r£  r`  r*  r²   r0  r–  rü  r   rÓ  r  r5   r¢  Úiotarí  Úget_acc_typer'   Úrequires_grad_)r—  rq  rB  r±  ré  r4  rê  r¦  rs  rq  Úinteger_argsÚ
is_integerÚxstartÚxendÚxsteprg   rÕ  rÿ  rí  rõ  s   ```                 r5  r  r  ’  sz  ú€ ô 
×Ñ�vÔÜ	×Ñ˜:Ô&Ü�\‰\œ%×1Ñ1°&Ó9Ó:€Fä˜%¤Ô)Ð)Ð)Ü˜#œwÔ'Ð'Ð'Ü˜$¤Ô(Ð(Ð(ð €{ØˆØˆÜ	‡L�L�˜‘Ñ:Ô;Øˆa‚xÜ�‰Ø�5‰LÙMõ	
ð 
�ŠÜ�‰Ø�5‰LÙMô	
ò
Kô 
‡L�LÙ�%ÓÒ+™Y s›^Ü6ôô 
‡L�LÙ�$‹Û5ôð
 �3˜Ð€DÜ—<‘<ÑIÀDÔIÓI€Là€}Ù+”—’´×1HÑ1HÓ1Jˆä×'Ñ'¨Ó.€JÙ‘\Ü˜“ˆÜ�s‹|ˆÜ˜“ˆð ”—‘Ò™|ä�5˜1‘9‹o¤ U¨Q¡Y£Ñ/ˆØ˜‘- %Ñ'¨#Ñ-°%Ñ7‰ä—‘˜C %™K¨4Ñ/Ó0ˆáÜ�z‰zØØØØØØ'ô
ð 	
ô �J‰JØØØÜ�k‰kØØô€Eñ #Œ�
Š
¬×(:Ñ(:¸5À&Ó(Ið ô $ EÐ+<Ó=€EØ�T˜E‘\Ñ!€FÜ$ V¨UÓ3€FáØ×Ñ˜dÔ#Ø€Mr7  )r—  rq  rÿ  c                 óÎ  — | |g}t        |t        «      r| j                  d|«      }n|j                  |«       t        |t        «      sJ ‚|j                  «       dk\  }t        j                  ||dz
  |«      }t        j                  ||| «      }||| z
  z  |z   }t        j                  t        |Ž Ž }|j                  «       |k7  rt        j                  ||«      }t        ||«      S )NrK  r^  rN  )r;  r   r  r�  r?  r-   r_  r­   rj  Ú"compute_elementwise_output_stridesrr  r%  r¢  Úcopy_stridedr?  )	r—  rq  rÿ  r›  rq  ÚcoeffÚbaser>  r%  s	            r5  rU   rU   ÷  sÓ   € ð �Sˆ\€FÜ�&œ&Ô!Ø—‘  FÓ+‰à�‰�fÔÜ�fœfÔ%Ð%Ð%ð �:‰:‹<˜3Ñ€DÜ�K‰K˜˜f q™j¨&Ó1€EÜ�;‰;�t˜S %Ó(€DØ�c˜E‘kÑ" TÑ)€Fä×5Ñ5Ô7GÈÐ7PÐQ€FØ‡}�}ƒ˜&Ò Ü×#Ñ# F¨FÓ3ˆä'¨°Ó7Ð7r7  )r±  r4  ré  rê  r¦  Ústepsc          
      óR  ‡ ‡‡‡‡— t        ‰ t        «      rBt        j                  ‰ j	                  «       dk(  d„ «       t        ‰ t        j                  «      Š t        ‰t        «      rBt        j                  ‰j	                  «       dk(  d„ «       t        ‰t        j                  «      Št        j                  d„ ‰ ‰‰fD «       «      rZt        j                  t        j                  «       «      Š‰€‰ŠnFt        j                  t        j                  ‰«      ˆˆfd„«       n‰xs t        j                  «       Št        ‰t        j                  «      sJ ‚t        j                  t        ‰t        «      ˆˆ ˆfd„«       t        ‰t        «      sJ ‚t        j                  ‰dk\  d„ «       ||||dœ}‰dk(  rt        j                   dd	‰i|¤ŽS ‰d
k(  rwt        ‰ t        «      rMt        j"                  ‰ffd	‰i|¤Ž}	t        j$                  j&                  j(                  j+                  |	‰ «      S t        j                   ‰f‰ fd	‰i|¤ŽS t        j,                  d‰fi |¤Ž}
t        j.                  ‰«      st        j0                  ‰«      rt        j2                  n‰}t        j4                  |
t6        j8                  |«      \  }}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 tensorsrK  rK  r7  r5  rM  zlinspace.<locals>.<lambda>&  rÏ  r7  c                   ó   — yrŒ  rK  rK  r7  r5  rM  zlinspace.<locals>.<lambda>,  rÏ  r7  c              3   ó<   K  — | ]  }t        |t        «      –— Œ y ­wrD  ©r;  r£  rw  s     r5  rI  zlinspace.<locals>.<genexpr>0  ó   è ø€ ÒL°”J˜s¤G×,ÑLùrx  c                  ó   •— d‰ › d‰› �S )Nzlinspace(): inferred dtype z& can't be safely cast to passed dtype rK  )Údefault_complex_dtyper±  s   €€r5  rM  zlinspace.<locals>.<lambda>9  s   ø€ Ð5Ð6KÐ5LÐLrÐsxÐryÐz€ r7  c                  óŽ   •— dt        ‰«      j                  › dt        ‰ «      j                  › dt        ‰«      j                  › d�S )Nz4received an invalid combination of arguments - got (rî  rï  )r2  r…  )rq  r—  r‰  s   €€€r5  rM  zlinspace.<locals>.<lambda>B  sD   ø€ ð Ü€uƒ+×ÑÐ�rœ$˜s›)×,Ñ,Ð-¨R´°U³×0DÑ0DÐ/EÀQðH€ r7  c                   ó   — y)Nz$number of steps must be non-negativerK  rK  r7  r5  rM  zlinspace.<locals>.<lambda>F  rÏ  r7  )ré  r4  rê  r¦  r±  rN  rÑ  r!  )r¨  r   )r;  r$   r_  r`  rç  r'   rb  r*  rµ   rj  r-  r–  r°  r±  r   r   r  r  Úopsr›  rè  r2  r  rû  rü  r0  r  r    r1  r   r­   )r—  rq  r‰  r±  r4  ré  rê  r¦  Úfactory_kwargsÚempty_tensorr9  Ú	dtype_redrí  r˜  Úcast_rgrB  r—  r’  s   ````             @r5  r  r    sÄ  ü€ ô �%œÔ(Ü�‰Ø�I‰I‹K˜1ÑÙPô	
ô (¨¬u¯}©}Ó=ˆÜ�#”~Ô&Ü�‰Ø�G‰G‹I˜‰NÙPô	
ô & c¬5¯=©=Ó9ˆä‡|�|ÑL¸ÀÀUÐ8KÔLÔLÜ %× AÑ AÜ×#Ñ#Ó%ó!
Ðð ˆ=Ø)‰Eä�L‰LÜ×&Ñ& uÓ-Üzõð
 Ò2œ×0Ñ0Ó2ˆÜ�eœUŸ[™[Ô)Ð)Ð)ô 
×ÑÜ�5œ'Ó"õ	Hôô
 �eœWÔ%Ð%Ð%Ü	‡L�L�˜!‘ÑKÔLð ØØ Ø&ñ	€Nð �‚zÜ�z‰zÑA¨ÐA°.ÑAÐAØ�‚zÜ�eœ^Ô,Ü Ÿ;™;¨ xÑ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¨Ó.Ð.r7  rˆ  c          
      óV  — |€t        j                  «       }t        j                  j	                  |«      rÀt        | t        «      rt        | «      } nDt        | t        «      r4t        j                  | j                  «       dk(  d„ «       t        | |«      } t        |t        «      rt        |«      }nDt        |t        «      r4t        j                  |j                  «       dk(  d„ «       t        ||«      }t        j                  d„ | ||fD «       «      r,t        j                  t        j                  «       «      }	|	}d }
nt         j                  }
t        |t         «      rJ ‚|dk  rt"        ‚t        j$                  | |||
||||¬«      }t        t        j&                  ||«      |«      S )Nr   c                   ó   — y©Nz:logspace only supports 0-dimensional start and end tensorsrK  rK  r7  r5  rM  zlogspace.<locals>.<lambda>ˆ  rÏ  r7  c                   ó   — yrœ  rK  rK  r7  r5  rM  zlogspace.<locals>.<lambda>�  rÏ  r7  c              3   ó<   K  — | ]  }t        |t        «      –— Œ y ­wrD  r�  rw  s     r5  rI  zlogspace.<locals>.<genexpr>”  r�  rx  rS  )r_  r–  r¢  rj  rü  r;  r   r   r$   r`  rç  r'   r*  rµ   r-  rb  r£  rÞ  r  r�   )r—  rq  r‰  rˆ  r±  r4  ré  rê  r¦  r’  Ú_dtypeÚrets               r5  r  r  p  sb  € ð €}Ü×'Ñ'Ó)ˆô ‡{�{×#Ñ# EÔ*Ü�eœYÔ'Ü˜E“N‰EÜ˜œ~Ô.Ü�L‰LØ—	‘	“˜qÑ ÙTôô ,¨E°5Ó9ˆEÜ�cœ9Ô%Ü˜#“,‰CÜ˜œ^Ô,Ü�L‰LØ—‘“	˜Q‘ÙTôô *¨#¨uÓ5ˆCä‡|�|ÑL¸ÀÀUÐ8KÔLÔLÜ %× AÑ AÜ×#Ñ#Ó%ó!
Ðð &ˆØ‰ä—‘ˆä˜$¤Ô(Ð(Ð(Øˆa‚xÜ!Ð!Ü
�.‰.ØØØØØØØØ#ô	€Cô #¤5§9¡9¨T°3Ó#7¸Ó?Ð?r7  Úindexingc                  ó   — y rD  rK  )r•  r¡  s     r5  rå   rå   ­  ó   € àr7  c                  ó   — y rD  rK  )r¡  r•  s     r5  rå   rå   ²  r£  r7  c                 ó   ‡ ‡— t        |d   t        t        f«      rt        |«      dk(  sJ ‚t        |d   «      }t	        j
                  t        j                  d„ |D «       «      d„ «       t	        j
                  t        |«      dkD  d„ «       t        t        |«      dz
  «      D ]p  }t	        j
                  ||   j                  ||dz      j                  k(  d„ «       t	        j
                  ||   j                  ||dz      j                  k(  d„ «       Œr d}‰ d	k(  r!t        |«      d
k\  }|r-|d   |d   g|d
d  ¢­}nt	        j
                  ‰ dk(  ˆ fd„«       g }|D ]j  Št        ‰t        «      sJ ‚t	        j
                  ‰j                  dk(  xs ‰j                  dk(  ˆfd„«       |j                  ‰j                  «       «       Œl g }t        |«      D ]^  \  }Št        ‰t        «      sJ ‚‰j                  dk(  r‰j!                  d«      Š|j                  t#        j$                  ‰||f«      «       Œ` |r|d   |d   c|d<   |d<   |S )Nr   rN  c              3   ó<   K  — | ]  }t        |t        «      –— Œ y ­wrD  ©r;  r#   r|  s     r5  rI  zmeshgrid.<locals>.<genexpr>Ä  s   è ø€ Ò@°1”Z ¤:×.Ñ@ùrx  c                   ó   — y)Nz)meshgrid expects its inputs to be tensorsrK  rK  r7  r5  rM  zmeshgrid.<locals>.<lambda>Å  rÏ  r7  c                   ó   — y)Nz'meshgrid expects a non-empty TensorListrK  rK  r7  r5  rM  zmeshgrid.<locals>.<lambda>È  rÏ  r7  c                   ó   — y)Nz3meshgrid expects all tensors to have the same dtyperK  rK  r7  r5  rM  zmeshgrid.<locals>.<lambda>Í  rÏ  r7  c                   ó   — y)Nz4meshgrid expects all tensors to have the same devicerK  rK  r7  r5  rM  zmeshgrid.<locals>.<lambda>Ñ  rÏ  r7  FÚxyr!  Úijc                  ó   •— d‰ › �S )NzDtorch.meshgrid: indexing must be one of "xy" or "ij", but received: rK  )r¡  s   €r5  rM  zmeshgrid.<locals>.<lambda>Ü  s   ø€ ð!Ø!) 
ð,ð r7  c                  ó   •— d‰ › �S )NzEtorch.meshgrid: Expected 0D or 1D tensor in the tensor list but got: rK  )rù   s   €r5  rM  zmeshgrid.<locals>.<lambda>ç  s   ø€ Ð[Ð\]Ð[^Ð_€ r7  rå  )r;  r,  rY  rQ  r_  r`  r*  r²   r]  r±  r4  r#   r  r�  rò  r\  r  r¢  r  )r¡  r•  r  Úswap_first_and_second_tensorsÚresult_shapeÚgridsrù   s   `     @r5  rå   rå   ·  s6  ù€ ô �'˜!‘*œt¤U˜mÔ,Ü�7‹|˜qÒ Ð Ð Ü˜ ™
Ó#ˆä	‡L�LÜ�‰Ñ@¸Ô@Ó@Ù;ôô
 
‡L�L”�W“ Ñ!Ñ#TÔUä”3�w“< !Ñ#Ó$ò 
ˆÜ�‰Ø�A‰J×Ñ ¨¨A©¡× 4Ñ 4Ñ4ÙIô	
ô 	�‰Ø�A‰J×Ñ ¨¨Q©¡×!6Ñ!6Ñ6ÙJõ	
ð
ð %*Ð!Ø�4ÒÜ(+¨G«¸Ñ(9Ð%Ù(Ø˜q‘z 7¨1¡:Ð<°¸¸°Ñ<‰Gä�‰Ø˜Ñóô	
ð !€LØò 'ˆÜ˜!œZÔ(Ð(Ð(Ü�‰Ø�F‰F�a‰KÒ&˜1Ÿ6™6 Q™;Û_ô	
ð 	×Ñ˜AŸG™G›IÕ&ð'ð #%€EÜ˜'Ó"ò D‰ˆˆ1Ü˜!œZÔ(Ð(Ð(Ø�6‰6�QŠ;Ø—‘�t“ˆAØ�‰”U×+Ñ+¨A¨|¸a¸TÓBÕCð	Dñ %à" 1™X u¨Q¡xÐˆˆa‰�%˜‘(à€Lr7  ÚsourceÚdestinationc                 óV  ‡‡— t        ‰«      t        u r‰fŠt        ‰«      t        u r‰fŠt        j                  t	        ‰«      t	        ‰«      k(  ˆˆfd„«       | j
                  }t        t        j                  |‰¬«      «      }t        t        j                  |‰¬«      «      }t        |«      }t        |«      }t        j                  t	        |«      t	        |«      k(  ˆfd„«       t        j                  t	        |«      t	        |«      k(  ˆfd„«       t        t        ||«      «      }g }	d}
t        |«      D ]K  }|j                  |«      }|�|	j                  |«       Œ(|
|v r
|
dz  }
|
|v rŒ
|	j                  |
«       |
dz  }
ŒM t        j                  | t        |	«      «      }|S )z3
    Reference implementation of torch.movedim
    c                  ó:   •— dt        ‰«      › dt        ‰ «      › d�S )Nz5movedim: Invalid source or destination dims: source (z> dims) should contain the same number of dims as destination (z dims)©r,  )r´  r³  s   €€r5  rM  zmovedim.<locals>.<lambda>  s.   ø€ ðÜ�V“ˆ~ð 'Ü'+¨KÓ'8Ð&9¸ðAð r7  )r  rô  c                  ó"   •— dt        ‰ «      › d�S )Nz#movedim: repeated dim in `source` (rï  r·  )r³  s   €r5  rM  zmovedim.<locals>.<lambda>  s   ø€ Ð5´d¸6³l°^À1ÐE€ r7  c                  ó"   •— dt        ‰ «      › d�S )Nz(movedim: repeated dim in `destination` (rï  r·  )r´  s   €r5  rM  zmovedim.<locals>.<lambda>   s   ø€ Ð:¼4ÀÓ;LÐ:MÈQÐO€ r7  r   rN  )r2  rw  r_  r`  rQ  r  rY  rj  rá  ÚsetÚdictr…  r]  r  r�  rë   )r®  r³  r´  r  ÚssÚdsÚsssÚdssrd  r0  ÚsiÚdirÄ  rõ  s    ``           r5  ræ   ræ   ú  ss  ù€ ô ˆFƒ|”sÑØ�ˆÜˆKÓœCÑØ"�nˆô 
‡L�LÜˆF‹”s˜;Ó'Ñ'ô	
ôð �:‰:€DÜ	Œu×&Ñ&¨D¸&ÔAÓ	B€BÜ	Œu×&Ñ&¨D¸+ÔFÓ	G€Bä
ˆb‹'€CÜ
ˆb‹'€Cô 
‡L�LÜˆB‹”3�s“8ÑÛEôô 
‡L�LÜˆB‹”3�s“8ÑÛOôô
 	ŒS��R‹[Ó€AØ€DØ	
€BÜ�D‹kò ˆà�E‰E�"‹IˆØˆ=à�K‰K˜�Nð ˜‘)Ø�a‘�ð ˜’)à�K‰K˜ŒOØ�!‰G‰Bðô �]‰]˜5¤%¨£+Ó.€Fà€Mr7  )r±  r4  ré  r¦  rê  r|  c                ó  — t        j                  |«       t        j                  |«       t        j                  | «      } |€t	        j
                  «       n|}|€t	        j                  d«      n|}t        j                  | ||||¬«      S )Nre  r  )	rj  ry  rz  r<  r_  r–  r4  r¢  r  )rR  r|  r±  r4  ré  r¦  rê  s          r5  r  r  9  sz   € ô 
×Ñ�vÔÜ	×Ñ˜:Ô&ä×,Ñ,¨UÓ3€EØ).¨ŒE×#Ñ#Ô%¸E€EØ$* NŒU�\‰\˜%Ô ¸€Fä×ÑØØØØØ#ôð r7  Únrd  c                óÎ  ‡ ‡— ‰€‰ Št        j                  ‰ dk\  ˆ fd„«       t        j                  ‰dk\  ˆfd„«       t        j                  ‰ t         j                  |d¬«      }t        j                  ‰t         j                  |d¬«      }|j	                  d«      |k(  }	|t         j
                  u r|	S t        j                  d||||d¬«      }
t        j                  |	|
d«      S )	z/
    Reference implementation of torch.eye
    r   c                  ó   •— d‰ › �S )Nz%n must be greater or equal to 0, got rK  )rÃ  s   €r5  rM  zeye.<locals>.<lambda>h  ó   ø€ Ð#HÈÈÐ!L€ r7  c                  ó   •— d‰ › �S )Nz%m must be greater or equal to 0, got rK  )rd  s   €r5  rM  zeye.<locals>.<lambda>i  rÆ  r7  Fr  rS  rå  rS  )r_  r`  r  r0  r  rÓ  r!  r­   )rÃ  rd  r±  ré  r4  rê  r¦  Úrange_nÚrange_mr  Úones   ``         r5  r  r  V  sÀ   ù€ ð 	€yØˆä	‡L�L��a‘ÓLÔMÜ	‡L�L��a‘ÓLÔMä�l‰l˜1¤E§K¡K¸ÈeÔT€GÜ�l‰l˜1¤E§K¡K¸ÈeÔT€Gà×Ñ˜RÓ  GÑ+€DØ”—
‘
ÑØˆä�j‰jØØØØØ!Øô
ˆô �{‰{˜4  aÓ(Ð(r7  c                ó  — t        j                  |«       t        j                  |«       |�|nt        j                  t	        |«      «      }|�|nt        j                  d«      }t        | |||||¬«      }t        j                  ||«      S )Nre  rS  )	rj  ry  rz  Útype_to_dtyper2  r_  r4  r  rC   )rR  rh  r±  ré  r4  rê  r¦  Úes           r5  r  r  €  s€   € ô 
×Ñ�vÔÜ	×Ñ˜:Ô&àÐ&‰E¬E×,?Ñ,?ÄÀZÓ@PÓ,Q€EØÐ)‰V¬u¯|©|¸EÓ/B€FäØØØØØØ#ô	€Aô �:‰:�a˜Ó$Ð$r7  ©r±  ré  r4  rê  r¦  rá  c          	      óR   — t        j                  | ||||||¬«      }t        ||«      S )NrÎ  )r_  r  rC   )	r}  rh  r±  ré  r4  rê  r¦  rá  rÍ  s	            r5  r  r  �  s8   € ô 	×ÑØ	ØØØØØ#Ø#ô	€Aô ��:ÓÐr7  c          
      ó‚   — t        j                  | |xs | j                  t         j                  k(  rdnd||||||¬«      S )NFr   rÎ  ©r_  r  r±  rÓ  ©r}  r±  ré  r4  rê  r¦  rá  s          r5  r'  r'  ´  sC   € ô �?‰?Ø	ØÒ"˜1Ÿ7™7¤u§z¡zÒ1‰°qØØØØØ#Ø#ô	ð 	r7  c          
      ó‚   — t        j                  | |xs | j                  t         j                  k(  rdnd||||||¬«      S )NTrN  rÎ  rÑ  rÒ  s          r5  r"  r"  Ì  sC   € ô �?‰?Ø	ØÒ!˜!Ÿ'™'¤e§j¡jÒ0‰°aØØØØØ#Ø#ô	ð 	r7  c                 óà   — t        j                  |«       t        j                  |«      }t        j                  | «      } t        j                  |«      }t        j                  |dd| ||¬«      S )Nrú  r]  )r¸   r»   r±  r4  r¦  )rj  rz  r<  Údtype_or_defaultr{  r¢  r_   )r±  r4  ré  r¦  rê  rR  rÏ  s          r5  r#  r#  ä  se   € ô 
×Ñ˜:Ô&ä×-Ñ-¨eÓ4€Fä×"Ñ" 5Ó)€EÜ×$Ñ$ VÓ,€Fä�<‰<ØØØØØØ#ôð r7  c                óü   — t        j                  |«       t        j                  |«       |�|nt        j                  t	        | «      «      }|�|nt        j                  d«      }t        j                  | ||¬«      S )Nre  rT  )	rj  ry  rz  rÌ  r2  r_  r4  r¢  r$  )r}  r±  ré  r4  rê  s        r5  r$  r$  ÿ  se   € ô 
×Ñ�vÔÜ	×Ñ˜:Ô&ØÐ&‰E¬E×,?Ñ,?ÄÀQÃÓ,H€EØÐ)‰V¬u¯|©|¸EÓ/B€FÜ×Ñ˜q¨°fÔ=Ð=r7  ÚlowÚhighc                ó6  — t        j                  | «       t        |t        «      sJ ‚t        |t        «      sJ ‚t	        |«      }t	        |«      }t        |t
        j                  «      sJ ‚t        j                  |«      }t        j                  | ||||¬«      S )N)r×  rØ  r±  r4  )
rj  rÎ  r;  r   r   r_  r±  Úcanonicalize_devicer¢  Ú_uniform_helper)rR  r×  rØ  r±  r4  s        r5  rÛ  rÛ    s‚   € ô 
×Ñ˜Ôä�cœ6Ô"Ð"Ð"Ü�dœFÔ#Ð#Ð#Ü
�C‹.€CÜ�T‹?€Dä�eœUŸ[™[Ô)Ð)Ð)Ü×&Ñ& vÓ.€Fä× Ñ  ¨C°dÀ%ÐPVÔWÐWr7  rq  c                 óø  ‡‡— t        j                  | j                  «      Št        |t        «      rt        |«      }nÌ|j                  Št        j                  ‰dk(  ˆfd„«       | j                  j
                  ddt        j                  j                  «       dfv xr |j                  j
                  dk(  }t        j                  |xs |j                  | j                  k(  d„ «       t        j                  |j                  «      }|t        u r-t        j                  t        j                  |‰«      ˆfd„«       t        || j                  «      }t        j                  ||| «      }|j!                  «       S )	Nr   c                  ó   •— d‰ › d�S )Nz@only supports a 0-dimensional value tensor, but got tensor with z
 dimensionrK  )Ú
value_ndims   €r5  rM  zmasked_fill.<locals>.<lambda>4  s   ø€ ÐVÐWaÐVbÐblÐm€ r7  ÚcudaÚxpur0  re  c                   ó   — y)Nz,Expected `value` to be on same device as `a`rK  rK  r7  r5  rM  zmasked_fill.<locals>.<lambda>>  rÏ  r7  c                  ó   •— d‰ › d�S )Nzcould not convert to type z without overflowrK  )rÄ  s   €r5  rM  zmasked_fill.<locals>.<lambda>I  s   ø€ Ð0°°Ð=NÐO€ r7  )rj  r   r±  r;  r   r2  r  r_  r`  r4  Ú_CÚ_get_privateuse1_backend_namer£  r   r'   r­   rÔ   )r}  rq  rÀ  Ú
value_typeÚis_cpu_scalarrÇ  rÄ  rÞ  s         @@r5  r«   r«   (  s,  ù€ ô ×%Ñ% a§g¡gÓ.€KÜ�%œÔ Ü˜%“[‰
ð —Z‘Zˆ
Ü�‰Ø˜!‰OÛmô	
ð �H‰H�M‰MØ˜œuŸx™x×EÑEÓGÈÐOðPò +à—‘×!Ñ! UÑ*ð 	ô
 	�‰ØÒ5˜UŸ\™\¨Q¯X©XÑ5ÙBô	
ô ×(Ñ(¨¯©Ó5ˆ
à”WÑô
 	�‰Ü×'Ñ'¨
°KÓ@ÛOô	
ô $ E¨1¯7©7Ó3€EÜ�‰�D˜% Ó#€Að �<‰<‹>Ðr7  c                 óV   — t        j                  | ||«      }| j                  |«       | S rD  )r_  r«   r×  )r}  rq  rÀ  r4  s       r5  r¬   r¬   V  s(   € ô 	×Ñ˜!˜T 5Ó)€AØ‡G�GˆA„JØ€Hr7  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°   )r}  r4  r‰  rŠ  r“  s        r5  r(  r(  `  sH   € ô Ð+¨q°A¸DÀtÕLäÜ�	‰	”%—-‘-  1¨4°dÀiÔPÓQ×VÑVÓXóð r7  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)
rj  rß  Úcheck_same_dtyper  r…  rR  rò  r°   r²   r   )r}  r4  rH  ro  s       r5  r)  r)  q  sŒ   € Ü	×Ñ˜A˜q¸5ÕAÜ	×Ñ˜1˜aÔ ð 	‡v�v�—‘ÒØä�A—G‘G˜QŸW™WÓ%ò ‰ˆˆ1Ø�‹6Ùðð
 	‡w�wƒy�A‚~Øä””B�q˜!“H“ÓÐr7  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Úfror!  rÑ  )r;  r   rQ  rn  rY  r]  r  r_  r&  Úmatrix_normr'  )r®  r¼  rç  rê  r±  s        r5  r^   r^   „  s¡   € ð 	
ˆUŠ
˜˜¤z°#´sÔ';¼sÀ3»xÈ1º}Ø	
ˆØˆÜ�#”sÔØˆeˆÜ�!”SÔð ˆ;Üœ˜eŸj™jÓ)Ó*ˆCÜ�|‰|×'Ñ'¨¨q°#°wÀeÐ'ÓLÐLä�|‰|×'Ñ'¨¨q°#°wÀeÐ'ÓLÐLr7  c                 óœ   — t        j                  | j                  dk(  d„ «       t        j                  t        j                  | d«      «      S )Nr!  c                   ó   — y)Nz6expected a matrix, but got tensor with dim {self.ndim}rK  rK  r7  r5  rM  ztrace.<locals>.<lambda>£  rÏ  r7  r   )r_  r`  r  r½   rÖ   rï  s    r5  rr   rr   Ÿ  s:   € ô 
‡L�LØ�	‰	�Q‰ÑXôô �9‰9”U—Z‘Z  aÓ(Ó)Ð)r7  c                 ól   ‡ — dt         t        t        f   dt         t        t        f   dt        fˆ fd„}|S )Nr}  r4  rw  c                 ó   •—  ‰|| «      S rD  rK  )r}  r4  Úbase_ops     €r5  Úropz_make_r_binary_op.<locals>.rop©  s   ø€ ñ �q˜!‹}Ðr7  )r   r$   r   )rò  ró  s   ` r5  Ú_make_r_binary_oprô  ¨  s=   ø€ ðÜ”¤Ð+Ñ,ðä”¤Ð+Ñ,ðô 
õð €Jr7  r×   c                 ó~  — t        j                  | j                  dk\  d„ «       | j                  dd  \  }}t        j                  || j
                  ¬«      j                  d«      t        j                  || j
                  ¬«      j                  d«      z
  |k\  }t        j                  || «      j                  «       S )Nr!  c                   ó   — y)Nz2triu: input tensor must have at least 2 dimensionsrK  rK  r7  r5  rM  ztriu.<locals>.<lambda>»  rÏ  r7  rX  r3  rS  ©
r_  r`  r  rR  r  r4  r  rj  r  rÔ   ©r}  r×   ÚhÚwrq  s        r5  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Ð2r7  c                 ó~  — t        j                  | j                  dk\  d„ «       | j                  dd  \  }}t        j                  || j
                  ¬«      j                  d«      t        j                  || j
                  ¬«      j                  d«      z
  |k  }t        j                  || «      j                  «       S )Nr!  c                   ó   — y)Nz2tril: input tensor must have at least 2 dimensionsrK  rK  r7  r5  rM  ztril.<locals>.<lambda>Ì  rÏ  r7  rX  r3  rS  r÷  rø  s        r5  r  r  È  rû  r7  r'  r(  c                 ó  — | dk(  s|dk(  ry|dkD  rt        |d|z   «      nt        | |z   dkD  «      }t        dt        || |z   «      «      }t        dt        | | |z   «      «      }||z
  dz   }||z   |z  dz  }||z
  }t        d||z  «      }	||	|fS )Nr   ©r   r   r   rN  r!  )rþ  rw  r[  )
r'  r(  rl  Úm_first_rowÚ
m_last_rowÚ	n_row_allÚn_row_trapezoidÚtrapezoid_sizeÚdiff_rowÚrectangle_sizes
             r5  Ú_get_tril_sizesr  Þ  s²   € Ø
ˆa‚x�3˜!’8Øà*0°1ª*”#�c˜1˜v™:Ô&¼#¸cÀF¹lÈQÑ>NÓ:O€KÜ�Qœ˜C  v¡Ó.Ó/€JÜ�A”s˜3  f¡Ó-Ó.€IØ  ;Ñ.°Ñ2€Oð " JÑ.°/ÑAÀQÑF€Nà˜?Ñ*€HÜ˜˜H s™NÓ+€Nà˜>¨;Ð6Ð6r7  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 rK  )r'  s   €r5  rM  z_trilu_checks.<locals>.<lambda>ø  ó   ø€ Ð%CÀCÀ5Ð#I€ r7  c                  ó   •— d‰ › �S )Nzcol must be non-negative, got rK  )r(  s   €r5  rM  z_trilu_checks.<locals>.<lambda>ù  r
  r7  c                  ó   •— d‰› d‰ › d�S )Nr7  z" not implemented for 'ú'rK  )r±  r“  s   €€r5  rM  z_trilu_checks.<locals>.<lambda>ü  s   ø€ �"�T�FÐ2°5°'¸Ð;€ r7  )r_  r`  r�  r0  )r“  r'  r(  r±  ré  rê  s   ````  r5  Ú_trilu_checksr  ð  sO   û€ ô 
‡L�L�˜‘ÓIÔJÜ	‡L�L�˜‘ÓIÔJÜ	‡L�LØ”%—+‘+œuŸ{™{Ð+Ð+Ü;õr7  re  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é  r4  rê  rÑ  r^  r!  rN  )r  r  r[  r   r_  r  rb  rE   rn   r'   rõ   rÏ   )r'  r(  rl  r±  ré  r4  rê  r  r  r   Ú
row_offsetÚ	arange_kwÚxs1r4  Ú	row_inds1Ú	col_inds1Úxs2Ú	row_inds2Ú	col_inds2s                      r5  r  r    sK  € ô �. # s¨E°6¸:ÔFä2AÀ#ÀsÈFÓ2SÑ/€N�N KÜ�Q˜˜“€JäÜ�‰˜V¨F¸zô€Iñ
 �A�~¬U¯]©]Ô
;€CØ�cÑ€AÜ—‘˜Q˜B¤§¡¨A°©E°A¸±G©OÓ!<Ñ<Ó=€IÜ—‘˜C 1 {¡?°QÑ#6¸Ñ#BÀiÑ"OÐRUÑ"UÑUÓV€IÜ'¨	°JÑ(>ÀÓF€IÜ'¨	°5Ó9€Iñ �A�~¨UÔ
3€CØ�s‘
˜c KÑ/°!Ñ3°jÑ@ÑA€IØ�c‘	€Iä�;‰;Ü	�‰�I˜yÐ)Ó	*¬E¯I©I°yÀ)Ð6LÓ,MÐNóð r7  c                 óÊ   — | dk(  s|dk(  ry|dkD  rt        d||z
  «      n|}t        dt        | | «      |z  «      }t        | ||dz
  «      \  }}}| |z  ||z   z
  }||z
  }	|	||fS )Nr   rÿ  rN  )r[  rþ  r  )
r'  r(  rl  r   r  Útrapezoid_size_trilÚrectangle_size_trilr˜  Ú	triu_sizer  s
             r5  Ú_get_triu_sizesr  ,  s‘   € Ø
ˆa‚x�3˜!’8Øà*0°1ª*”#�a˜˜v™Ô&¸#€Kô ˜œC  f WÓ-°Ñ3Ó4€Nô 3BÀ#ÀsÈFÐUVÉJÓ2WÑ/ÐÐ,¨aØ�c‘	Ð0Ð3FÑFÑG€IØ Ñ/€Nà˜>¨;Ð6Ð6r7  c                ó„  — t        d| ||||«       t        | ||«      \  }}}	t        d|«      }
t        t        j
                  |||¬«      } |d||¬«      }||z  }||z  } |d|t        j                  ¬«      }d|	z
  }t	        j                  | t	        j                  ||z  d|z  z
  «      z
  «      }t	        j                  |d|	z  dz
  |z
  |z  dz  z
  «      }t        ||«      }t        ||«      }|r|||z  z   }||
z   }t	        j                  t	        j                  ||f«      t	        j                  ||f«      f«      S )	Nr  r   r  rÑ  g      à¿r!  rN  r^  )r  r  r[  r   r_  r  rb  rE   rn   r'   rõ   rÏ   )r'  r(  rl  r±  ré  r4  rê  r  r  r   Ú
col_offsetr  r  r  r  r  r4  r  r  s                      r5  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óð r7  )Ú	out_int32r)  Ú
boundariesr   r)  c                óî  ‡— t        j                  ‰j                  «       dk(  ˆfd„«       t        | t         j                  «      r| nt        j
                  | «      } |rt         j                  nt         j                  }‰j                  d   }|dk(  rt        j                  | «      S t        j                  | j                  | j                  t         j                  ¬«      }||z   }|||z
  dz  z   }‰|   }	|r|	| kD  }
n|	| k\  }
t        j                  |
||dz   «      }|dkD  rÂt        j                  | t         j                  ¬«      }t        t!        j"                  |«      «      }t%        |«      D ]q  }t        j                  |
|z  ||«      }||k  }t        j                  ||||z
  dz  z   d«      }‰|   }	|r|	| kD  }
n|	| k\  }
t        j                  |
 |z  |dz   |«      }Œs |j'                  |¬«      S )NrN  c                  ó,   •— d‰ j                  «       › d�S )Nz2boundaries tensor must be 1 dimension but got dim(rï  rì  )r!  s   €r5  rM  zbucketize.<locals>.<lambda>s  s   ø€ ÐDÀZÇ^Á^ÓEUÐDVÐVWÐX€ r7  rS  r   r  r!  rÑ  )r_  r`  rç  r;  r?  r­  r�  r0  rR  r'  r&  r4  r­   r"  rÓ  rw  r  rY   r]  r±   )r}  r!  r   r)  Ú	out_dtypeÚn_boundariesr—  rq  ÚmidÚmid_valÚcond_midÚcond_updateÚnitersr˜  s    `            r5  r*  r*  h  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Ó$Ð$r7  c                 óÀ  ‡ ‡— |�J ‚t        j                  t        j                  ‰ j                  «       xrB t        j
                  ‰ j                  «       xr  t        j                  ‰ j                  «       ˆ fd„«       t        j                  ‰dkD  ˆfd„«       |‰t        j                  t        j                  t        j                  ‰ «      dz
  z  «      z  z   S )Nc                  ó"   •— d‰ j                   › �S )NzwCauchy distribution is a continuous probability distribution.         dtype must be a floating point but you specified rÑ  rï  s   €r5  rM  zcauchy.<locals>.<lambda>°  ó   ø€ ð :Ø:>¿*¹*¸ðG€ r7  rú  c                  ó   •— d‰ › �S )Nz-cauchy_ expects sigma > 0.0, but found sigma=rK  )Úsigmas   €r5  rM  zcauchy.<locals>.<lambda>µ  s   ø€ Ð?À¸wÐG€ r7  r^  )r_  r`  rj  r°  r±  rü  rû  rp   r  r  Ú	rand_like)rð  Úmedianr/  Ú	generators   ` ` r5  r  r  ¤  s¶   ù€ ð ÐÐÐÜ	‡L�LÜ×"Ñ" 4§:¡:Ó.Ð.ò 	3Ü×&Ñ& t§z¡zÓ2Ð2ò	3ä×&Ñ& t§z¡zÓ2Ð2ó	Gô	ô 
‡L�LØ�‰ÛGôð �EœEŸI™I¤d§g¡g´·±ÀÓ1FÈÑ1LÑ&MÓNÑNÑNÐNr7  c                 ó4  ‡ ‡— |�J ‚t        j                  t        j                  ‰ j                  «       xrB t        j
                  ‰ j                  «       xr  t        j                  ‰ j                  «       ˆ fd„«       t        j                  ‰dkD  ˆfd„«       t        j                  ‰ «      }t        j                  |j                  «      j                  dz  }|d|z
  k\  }t        j                  || t        j                  |«      «      }d‰z  |z  S )Nc                  ó"   •— d‰ j                   › �S )Nz|Exponential distribution is a continuous probability distribution.         dtype must be a floating point but you specified rÑ  rï  s   €r5  rM  zexponential.<locals>.<lambda>Æ  r-  r7  rú  c                  ó   •— d‰ › �S )Nz4exponential_ expects lambda > 0.0, but found lambda=rK  )Úrates   €r5  rM  zexponential.<locals>.<lambda>Ë  s   ø€ ÐFÀtÀfÐM€ r7  r!  r]  rS  )r_  r`  rj  r°  r±  rü  rû  r0  rý  rõ  r­   rW   )rð  r6  r2  Úuniform_valÚepsilonrÓ  Úlog_uniforms   ``     r5  rA   rA   º  sï   ù€ ð ÐÐÐÜ	‡L�LÜ×"Ñ" 4§:¡:Ó.Ð.ò 	3Ü×&Ñ& t§z¡zÓ2Ð2ò	3ä×&Ñ& t§z¡zÓ2Ð2ó	Gô	ô 
‡L�LØˆs‰
ÛMôô
 —/‘/ $Ó'€Kô �k‰k˜+×+Ñ+Ó,×0Ñ0°1Ñ4€GØ˜s W™}Ñ,€IÜ—+‘+˜i¨'¨´5·9±9¸[Ó3IÓJ€Kà�‰9�{Ñ"Ð"r7  c                 ó²  ‡ ‡— |�J ‚t        j                  t        j                  ‰ j                  «       xr  t        j
                  ‰ j                  «       ˆ fd„«       t        j                  d‰k  xr ‰dk  ˆfd„«       t        j                  t        j                  t        j                  ‰ «       «      t        j                  ‰ «      z  «      dz   S )Nc                  ó"   •— d‰ j                   › �S )Nzgeometric not implemented for rÑ  rï  s   €r5  rM  zgeometric.<locals>.<lambda>ç  s   ø€ Ð0°·±°Ð=€ r7  r   rN  c                  ó   •— d‰ › �S )Nz0geometric_ expects p to be in (0, 1), but got p=rK  )r¼  s   €r5  rM  zgeometric.<locals>.<lambda>ë  s   ø€ ÐBÀ1À#ÐF€ r7  )
r_  r`  rj  r°  r±  rû  rE   rX   r0  r  )rð  r¼  r2  s   `` r5  rG   rG   Û  s©   ù€ ð ÐÐÐä	‡L�LÜ×"Ñ" 4§:¡:Ó.Ð.ò 	3Ü×&Ñ& t§z¡zÓ2Ð2Û=ôô
 
‡L�LØ	ˆA‰Š�!�a‘%ÛFôô �;‰;”u—{‘{¤E§O¡O°DÓ$9Ð#9Ó:¼T¿Z¹ZÈÈ»^ÑKÓLÈqÑPÐPr7  c                 ó˜  ‡ ‡— |�J ‚t        j                  t        j                  ‰ j                  «       xrB t        j
                  ‰ j                  «       xr  t        j                  ‰ j                  «       ˆ fd„«       t        j                  d‰k  ˆfd„«       t        j                  ‰t        j                  ‰ «      z  |z   «      S )Nc                  ó"   •— d‰ j                   › �S )Nzlog_normal not implemented for rÑ  rï  s   €r5  rM  zlog_normal.<locals>.<lambda>ü  s   ø€ Ð1°$·*±*°Ð>€ r7  r   c                  ó   •— d‰ › �S )Nz-log_normal_ expects std > 0.0, but found std=rK  ©r»   s   €r5  rM  zlog_normal.<locals>.<lambda>   s   ø€ Ð?À¸uÐE€ r7  )	r_  r`  rj  r°  r±  rü  rû  r?   Ú
randn_like©rð  r¸   r»   r2  s   ` ` r5  r[   r[   ð  s§   ù€ ð ÐÐÐÜ	‡L�LÜ×"Ñ" 4§:¡:Ó.Ð.ò 	3Ü×&Ñ& t§z¡zÓ2Ð2ò	3ä×&Ñ& t§z¡zÓ2Ð2Û>ô	ô 
‡L�LØ	ˆC‰ÛEôô �9‰9�Sœ5×+Ñ+¨DÓ1Ñ1°DÑ8Ó9Ð9r7  )r¸   r»   )r2  r±  ré  r4  rê  c          	      ó²  ‡— |�|t         j                  k(  sJ ‚t        ‰t        «      st        j                  ‰dk\  ˆfd„«       |€„t        d„ | ‰fD «       «      }t        j                  t        |«      dkD  d„ «       t        j                  |d u xr |d u d„ «       t        d„ |D «       Ž }|d   j                  }|d   j                  }njt        j                  t        | t        «       xr t        ‰t        «       d„ «       |€t        j                  «       n|}|€t        j                  d«      n|}t        j                  |d	d
||d|¬«      }	‰|	z  | z   S )Nr   c                  ó   •— d‰ › �S )Nz)normal expects std >= 0.0, but found std rK  r@  s   €r5  rM  znormal.<locals>.<lambda>  s   ø€ Ð IÈ#ÈÐO€ r7  c              3   óB   K  — | ]  }t        |t        «      sŒ|–— Œ y ­wrD  r§  rg  s     r5  rI  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 definedrK  rK  r7  r5  rM  znormal.<locals>.<lambda>&  rÏ  r7  c                   ó   — y)Nz.Cannot pass layout, or pin_memory without sizerK  rK  r7  r5  rM  znormal.<locals>.<lambda>*  rÏ  r7  c              3   ó4   K  — | ]  }|j                   –— Œ y ­wrD  r  rg  s     r5  rI  znormal.<locals>.<genexpr>-  s   è ø€ Ò"<¨q 1§7¥7Ñ"<ùr§  c                   ó   — y)Nz>normal expects mean and std to be scalars when size is definedrK  rK  r7  r5  rM  znormal.<locals>.<lambda>3  rÏ  r7  re  rú  r]  F)r¸   r»   r±  r4  r¦  r2  )r_  Ústridedr;  r#   r`  rY  rQ  rc  r±  r4  r–  r¢  r_   )
r¸   r»   r)  r2  r±  ré  r4  rê  r•  Únormal_sampless
    `        r5  r_   r_     sM  ø€ ð( ˆ>˜V¤u§}¡}Ò4Ð4Ð4ä�cœ:Ô&Ü�‰Ø�1‰HÓOô	
ð €|ÜÑL D¨# ;ÔLÓLˆÜ�‰Ü�‹L˜1ÑÙ\ô	
ô 	�‰Ø�dˆNÒ1˜z¨TÐ1ÙDô	
ô
 !Ñ"<°GÔ"<Ð=ˆØ˜‘
× Ñ ˆØ˜‘×"Ñ"‰ä�‰Ü˜4¤Ó,Ð,ÒP´ZÀÄZÓ5PÐ1PÙTô	
ð .3¨]”×'Ñ'Ô)ÀˆØ(.¨”—‘˜eÔ$¸Fˆä—\‘\ØØØØØØØô€Nð �Ñ $Ñ&Ð&r7  )r2  c                ó6   — t        ||| j                  | |¬«      S )N)r—  r2  )r_   rR  rB  s       r5  Únormal_rM  D  s   € ä�$˜˜TŸZ™Z¨T¸YÔGÐGr7  c                 óz   — t        j                  t        j                  | j                  «       d„ «       d}| |z  S )Nc                   ó   — y)Nz-rad2deg is not supported for complex tensors.rK  rK  r7  r5  rM  zrad2deg.<locals>.<lambda>M  rÏ  r7  gøÁcÜ¥L@©r_  r`  rj  r°  r±  )rð  ÚM_180_PIs     r5  rc   rc   I  s8   € ä	‡L�LÜ×"Ñ" 4§:¡:Ó.Ð.Ù?ôð C€HØ�(‰?Ðr7  c                 óz   — t        j                  t        j                  | j                  «       d„ «       d}| |z  S )Nc                   ó   — y)Nz-deg2rad is not supported for complex tensors.rK  rK  r7  r5  rM  zdeg2rad.<locals>.<lambda>W  rÏ  r7  g9�R¢Fß‘?rP  )rð  ÚM_PI_180s     r5  r:   r:   S  s8   € ä	‡L�LÜ×"Ñ" 4§:¡:Ó.Ð.Ù?ôð E€HØ�(‰?Ðr7  c                 ó*   — | dk7  j                  |«      S r  )r½   )rð  rç  s     r5  r9   r9   ]  s   € ð �A‰I�?‰?˜3ÓÐr7  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 )NrN  c                  óN   •— d‰j                  «       › d‰ j                  «       › d�S )Nz1D tensors expected, but got zD and z	D tensorsrì  ©rú  rð  s   €€r5  rM  z_dot_check.<locals>.<lambda>f  s#   ø€ Ð/°·±³
¨|¸6À%Ç)Á)Ã+ÀÈiÐX€ r7  c                  ó<   •— d‰j                   › d‰ j                   › �S )Nz:dot : expected both vectors to have same dtype, but found r�  rÑ  rX  s   €€r5  rM  z_dot_check.<locals>.<lambda>k  s    ø€ ÐLØ�:‰:ˆ,�e˜EŸK™K˜=ð*€ r7  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ò  rX  s   €€r5  Únumel_errorz_dot_check.<locals>.numel_erroro  sL   ø€ à9¸$¿*¹*»,¸À{ÐSX×S^ÑS^ÓS`ÐRað b0Ø04·
±
³¨~¸UÀ5Ç;Á;Ã=À/ÐQgðið	
r7  )r_  r`  rç  r±  rò  )rð  rú  r[  s   `` r5  Ú
_dot_checkr\  c  sx   ù€ Ü	‡L�LØ�‰‹
�a‰Ò,˜EŸI™I›K¨1Ñ,ÜXôô
 
‡L�LØ�
‰
�e—k‘kÑ!ô	*ôõ
ô 
‡L�L�—‘“ §¡£Ñ.°Õ<r7  c                 ó.   ‡ — t        ‰ «      ˆ fd„«       }|S )Nc                 ó.   •— t        | |«        ‰| |«      S rD  )r\  )rð  rú  rŒ  s     €r5  Úwrapperz#_dot_check_wrapper.<locals>.wrappery  s   ø€ ä�4˜ÔÙ�$˜‹Ðr7  )r	   )rŒ  r_  s   ` r5  Ú_dot_check_wrapperr`  x  s    ø€ Ü
ˆ2ƒYóó ðð €Nr7  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 rD  )r+  Úis_conjr_  r¹   rÒ   rº   r½   r¦  s     r5  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×ÑÓÐr7  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 rD  )r+  r_  r¹   rb  rº   rÒ   r6   r½   r¦  s     r5  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Ñ(×-Ñ-Ó/Ð/r7  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 )NrN  rS  r   r3  )rj  r«  r  rR  r_  r  r4  r  r  rÜ   r­   )rH  r�  rç  rÿ  Ú
mask_shaperq  s         r5  Úselect_scatterrf  ¬  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 !Ó$Ð$r7  c                 óV   — t        | t        j                  t        j                  f«      S rD  )r;  r_  ÚTypedStorageÚUntypedStorage)Úobjs    r5  Ú
_isStoragerk  +  s    € Ü�cœE×.Ñ.´×0DÑ0DÐEÓFÐFr7  c                 ó¶  — d}t        | «      }g }t        | t        t        f«      r„t	        | «      }|r||j
                  z  }|j                  |«       t	        |«      |kD  r"t        dt        | «      j                  › d�«      ‚|dk(  r	 |S 	 | d   }|} t        | t        t        f«      rŒ„|S # t        $ r# t        dt        | «      j                  › d�«      ‚w xY w)Né€   ztoo many dimensions 'r  r   z.could not determine the shape of object type ')rk  r;  r,  rY  rQ  Úitemsizer�  r^  r2  r…  rª  )ÚseqÚscalar_typeÚMAX_DIMSÚ
is_storager.  rÕ  Úhandles          r5  Ú_compute_sizesrt  0  sê   € Ø€HÜ˜C“€JØ€Eä
�Sœ4¤˜-Ô
(Ü�S“ˆÙØ�{×+Ñ+Ñ+ˆFØ�‰�VÔÜˆu‹:˜Ò ÜÐ4´T¸#³Y×5GÑ5GÐ4HÈÐJÓKÐKØ�QŠ;Øð €Lð	Ø˜‘VˆFð
 ˆô �Sœ4¤˜-Õ
(ð" €Løô ò 	ÜØ@ÄÀcÃ×ASÑASÐ@TÐTUÐVóð ð	ús   ÂB, Â,,Cc                 ó&  — t        | t        «      rt        j                  «       S t        | t        «      r t        | t
        «      st        j                  S t        | t        «      rt        j
                  S t        | t        «      r…t        j                  «       }|t        j                  u rt        j                  S |t        j                  u rt        j                  S |t        j                  u rt        j                  S t        d«      ‚t        | t        j                   «      r| j"                  S t        | t$        «      r"t'        dt)        | «      j*                  › d�«      ‚t        | t,        t.        f«      rzd }t1        | «      }|dk(  rt        j                  «       S t3        |«      D ]D  }| |   }	 t5        |«      }|�t        j6                  ||«      }n|}|t        j                  u sŒB|c S  |S t        dt)        | «      j*                  › �«      ‚)Nz'invalid default scalar type for complexznew(): invalid data type 'r  r   zCould not infer dtype of )r;  r   r_  r–  r   rÓ  r0  r   r£  rÖ  ÚcfloatÚdoubleÚcdoubleÚhalfÚchalfrm  r?  r±  rn  Ú	TypeErrorr2  r…  r,  rY  rQ  r]  Ú_infer_scalar_typeÚpromote_types)rj  Údefault_dtypeÚ
scalarTyperÕ  r  Úcur_itemÚitem_scalarTypes          r5  r|  r|  J  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ÐHr7  r  rj  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 )NrN  re  T)r±  r4  rè  rK  rÑ  r   )r;  r?  rò  Údetachr±   r  r   r_  r$  r  rõ   Ú_recursive_build)r  rj  ro  r°   s       r5  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¬«      }|S )Nc                   ó   — y)Nz,Can't pin tensor constructed from a variablerK  rK  r7  r5  rM  z)_internal_new_from_data.<locals>.<lambda>¤  rÏ  r7  F)r4  r±  rë  rè  Ú__cuda_array_interface__r4  Úmeta)rë  rè  )r;  r_  r?  r`  rƒ  r±  r4  r±   ÚhasattrÚNotImplementedr|  rk  r2  r„  )Úoptionsrp  Ú
device_optÚdataÚcopy_variablesÚ
copy_numpyÚtype_inferencerê  rÀ   Úinferred_scalar_typer4  r­  s               r5  Ú_internal_new_from_datar’  ˜  s  € ô �$œŸ™Ô%Ü�‰ØˆNÑRô	
ð ˆÙØ—*‘*“,ˆCÙ,:˜sŸyšyÀÐØ)Ð5‘¸3¿:¹:ˆØ�v‰vØØ&ØØð	 ó 
ð 	
ô ˆtÐ/Ô0ÜÐð &Ð1‰Z°w¸xÑ7H€FÙ7EÔ-¨dÔ3È;Ðô �$ÔÜÐä�<‰<˜Ó×$Ñ$¨Ò.Ü!Ð!ô "Ð"6¸Ó=ˆà—‘˜6Ð#7ÀeÐRW�ÓXˆð €Mr7  )r±  r4  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)r!  )Ú
stacklevelr4  re  T)rŽ  r�  r�  rê  )
r;  r_  r?  rf  rg  ÚUserWarningr’  r–  Údetach_r~  )r�  r±  r4  rê  r¦  r�  Ú
new_tensors          r5  r­  r­  Ñ  s‘   € ä�$œŸ™Ô%Ü�‰ðläØõ		
ð ˜d�]€NÜ(ð 
�5ÐØÐ"‰¬×(?Ñ(?Ó(AØØØØØ%Øô€Jð ×ÑÔÙØ×!Ñ! -Ô0ØÐr7  rD  )F)rú  NN)gñhãˆµøä>g:Œ0âŽyE>Frå  )NN)NNNNNFF)FFN)NF)NNFr¨  )r   rS  )	NNNTÚreflectFNNN)NNNTFNNF)rK  )rN  r®  )r   r   rN  )r   rX  rS  )r   NrN  )r  )rú  r]  )rì  NF)r   rN  Nr:  )rN  r!  N(  r*  r}  rŽ  rF  r  r[  rf  Úcollections.abcr   r   Úenumr   Ú	functoolsr   r   r   r	   Útypingr
   r   r   r   r   r   r_  Útorch._primsÚ_primsr¢  Útorch._prims_commonÚ_prims_commonrj  Útorch.utils._pytreeÚ_pytreer!  r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r    r!   r"   r#   r$   r%   r&   Útorch._prims_common.wrappersr'   r(   r)   r*   r+   r,   rœ  r?  rã  ÚDispatchKeyÚ_opsr•  r›  r6  r?  rc  rr  Útorch._decomprs  Úobjectrƒ  rˆ  r”  r   rO  r-   ÚINT_TO_FLOATr.   r/   r1   r0   r2   r3   ÚDEFAULTr4   r5   r+  r6   r7   r8   r;   r<   r=   r>   r?   r@   rB   Ú	NO_OPMATHrC   rD   r%  rE   rF   rŒ   ÚALWAYS_BOOLrN   rO   rP   rQ   rR   ÚspecialÚmultigammalnr]   rS   rT   rV   rW   rX   rY   rZ   rw  r±  r\   r–   rÓ  r`   r  ra   rb   rž   rd   re   ró   rf   rg   rh   ri   rj   rk   rl   rn   ÚBOOL_TO_LONGro   rp   rq   rs   r
  rB  rt   ru   rv   rw   rx   ry   rz   r}   r~   rn  r   r�   r€   r�   ri  rh  r‚   rƒ   r„   r}  rY  r…   r†   r‡   rˆ   r‰   rŠ   r‹   rÖ  r’  r�   rŽ   r�   r�   r‘   r’   r“   r”   r•   r—   r˜   r™   rš   r›   rœ   r    r¡   r¤   r¥   r§   r¦   r¨   r©   rª   r{   r|   r­   r®   rí  rá  r¯   r°   ré  rï  rñ  Úregisterr4  r»  rõ  r÷  rù  rü  r  r±   r  r(  r²   rµ   r½   Údim_IntListÚIntList_outr,  r¾   r¿   r´   r³   rJ  rÀ   r»   r¸   r¼   rÁ   rÂ   rÅ   rƒ  rÆ   rÇ   rÈ   rÊ   rÌ   rÍ   r2  Ú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_implr  rë   r,  r-  r.  r.  r}  rî   r¢  rï   rð   rñ   rò   r³  rõ   rm   rä   r	  r  r  rI   rJ   rL   rM   rÑ  rH   rK   r÷   r0  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ü   rJ  r  r  r  r  r&  r   r!  r  r  r  r  Ú
start_stepÚ	start_outrU   r  r  rå   ræ   r  r  r  r  r'  r"  r#  r$  rÛ  r«   r¬   r(  r)  r^   rr   rô  r¢   r£   rŸ   r  r  r  r  r  rí  r  r  r*  r  rA   rG   r[   r_   rM  rc   r:   r9   r\  r`  r¹   rº   rf  Ú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  rk  rt  r|  r„  r’  r­  Útorch._refs._conversionsÚtorch._refs.fftÚtorch._refs.linalgÚtorch._refs.nn.functionalÚtorch._refs.specialrK  r7  r5  ú<module>r     s2P  ðó Û Û Û Û Û Û ß .Ý ß <Ó <ß A× Aã Ý Ý #ß $Ð $ß $÷÷ ÷ ÷ ÷ õ ÷.÷ òl€ð\	 
�‰€Ø�h‰h×"Ñ"€Ø‡z�z‡~�~×Ñ€ò2òò%ðP 9=ô Cõ8 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ð �E—K’KÑ ðXð ò	Xó ðXñ ˜ŸšÓ'ÙƒÙ#Ø!Ø7×DÑDôð
 :?ò,Ø
ð,Ø'ð,Ø26ð,àò,ó	ó ó (ð,ñ ˜ŸšÓ(Ùƒð !$Ø#'Ø#'ò	Øðà	�*Ñ	ðð �ZÑ ðð �ZÑ ð	ð
 òó ó )ðð4�ó ñ #Ø#×+Ñ+¸	ôñóðð�ð  >ó ðˆNð ˜~ó ñ #Ð#B×#OÑ#OÓPñó Qðñ ˜Ÿ
š
Ó#ÙƒÙ#ØØ7×?Ñ?ôð 12ò Jˆ^ð J¨#ð J°nò Jó	ó ó $ðJñ #Ð#B×#OÑ#OÓPñó Qðñ #Ð#B×#OÑ#OÓPð/ˆ~ð / .ò /ó Qð/ñ #Ø#×+Ñ+Øôñó	ðñ #Ø#×+Ñ+Øôñó	ðñ #Ø#×/Ñ/Øôñó	ðñ #Ð#B×#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ñt ˜ŸšÓ!ÙƒÙ#Ø"Ø7×?Ñ?ôð #'ò	8Øˆ^˜ZÐ'Ñ(ð8àˆ^˜ZÐ'Ñ(ð8ð �JÑò	8ó	ó ó "ð8ñ: $Ø7×DÑDØ$Ø$ôñ
óð
ñ $Ø7×?Ñ?ôð#�>ð # nð #¸ò #óð#ñ $Ø7×?Ñ?ôð"˜.ð "¨^ð "Àò "óð"ñ $Ø7×?Ñ?ôð"�.ð " ^ð "¸ò "óð"ñ $Ø7×?Ñ?ôð.˜>ð .¨nð .Àò .óð.ñ $Ø7×?Ñ?ôð#�>ð # nð #¸ò #óð#ñ $Ø7×DÑDØ$ôð2Øˆ^˜ZÐ'Ñ(ð2Ø-2°>À:Ð3MÑ-Nò2ó	ð2ñ ˜ŸšÓ!Ùƒð
 $(ò	Øˆ^˜ZÐ'Ñ(ðàˆ^˜ZÐ'Ñ(ðð ˜C‘=ò	ó ó "ðñ( $Ø7×CÑCØ$ôðˆ.ð ˜^ð °ò ó	ðñ $Ø7×DÒDôðØˆ^˜ZÐ'Ñ(ðàˆ^˜ZÐ'Ñ(ðð òóðñ4 ƒðØˆ^˜ZÐ'Ñ(ðàˆ^˜ZÐ'Ñ(ðð òó ðñl $Ø×=Ñ=×EÑEØ $Ø"'ôð
OØˆ^˜ZÐ'Ñ(ðOØ-2°>À:Ð3MÑ-NòOóð
Oð8F˜Vð F¨ð F°6ó Fð1˜6ð 1 fð 1°ó 1ñ2 $Ø7×?Ñ?Ø$Ø$ôð
ˆNð ˜~ð °.ò óð
ñ $Ø7×?Ñ?Ø$Ø$ôð
ˆNð ˜~ð °.ò óð
ñ $Ø7×?Ñ?Ø$Ø#ôð
ˆNð ˜~ð °.ò óð
ñ ˜Ÿ
š
Ó#ÙˆZ˜Ó$ð7�ð 7 5¨¸Ð)GÑ#Hò 7ó %ó $ð7ñ $Ø7×?Ñ?Ø$Ø$ôð
ˆ>ð ˜nð °ò óð
ñ $Ø7×CÑCØ$ôðˆ.ð ˜^ð °ò ó	ðñ $Ø7×CÑCØ$ôðˆ.ð ˜^ð °ò ó	ðñ $Ø7×?Ñ?Ø$Ø$ôð
�^ð ¨^ð Àò óð
ñ $Ø7×?Ñ?Ø$Ø$ôð
ˆ^ð  ð °>ò óð
ñ $Ø7×DÑDØ$Ø$ôð
ˆnð  ð °Nò óð
ñ $Ø7×DÑDØ$Ø$ôð
ˆ~ð  .ð °^ò óð
ðØ
ðàðð ðð ð	ð
 ðð 
óð2 ØØò(Øð(àð(ð ð(ð ð	(ð
 ð(ð ó(ñV $Ø7×?Ñ?Ø$Ø$ôð
Qˆ>ð Q˜nò Qóð
Qñ  $Ø7×CÑCØ$ôðˆ.ð ˜^ð °ò ó	ðñ $Ø7×?Ñ?Ø$Ø$ôð
T�ð T Nð T°~ò Tóð
Tñ0 $Ø7×?Ñ?Ø$Ø$ôð
,�.ð , ^ð ,¸ò ,óð
,ñ $Ø7×CÑCôð�>ð  nò óðñ #Ð#B×#NÑ#NÓOð�>ò ó Pðñ $Ø7×CÑCôð�.ð  ^ò óðñ $Ø7×CÑCôð�>ð  nò óðñ $Ø7×CÑCØ$ôðˆ.ð ˜^ð °ò ó	ðñ $Ø7×?Ñ?ôðˆ~ð  .ð °^ò óðñ $Ø7×?Ñ?ôðˆ~ð  .ð °^ò óðñ $Ø7×?Ñ?Ø $ôðˆ>ð ˜nð °ò ó	ðñ $Ø7×CÑCØ$ôðˆ.ð ˜^ð °ò ó	ðñ $Ø7×AÑAØ$Ø$ôð
!�ð ! Nð !°~ò !óð
!ñ $Ø7×?Ñ?ôð!�ð ! Nð !°~ò !óð!ñ
 ˜Ÿ	š	Ó"Ùƒð ò	(Øˆ^˜ZÐ'Ñ(ð	(àˆ^˜ZÐ'Ñ(ð	(ð ò	(ó ó #ð	(ñ ˜ŸšÓ!ÙƒÙ#Ø"Ø7×?Ñ?ôð ò	$8Øˆ^˜ZÐ'Ñ(ð$8àˆ^˜ZÐ'Ñ(ð$8ð ò	$8ó	ó ó "ð$8ñN $Ø7×DÑDØ	ØØ $ô	ð�>ð  nð ¸ò óðñ ˜Ÿ
š
Ó#ÙƒÙ#Ø"Ø7×DÑDôð:ˆU�> :Ð-Ñ.ð :°5¸ÈÐ9SÑ3Tò :ó	ó ó $ð:ñ& $Ø×=Ñ=×EÑEØØ $ôð
"Øˆ^˜ZÐ'Ñ(ð"Ø-2°>À:Ð3MÑ-Nò"óð
"ñ ˜ŸšÓ%ÙƒÙ#Ø6Ø7×DÑDôð ò,Ø
ð,àð,ð ð,ð
 ð,ð ò,ó	ó ó &ð,ñ* ˜ŸšÓ%ÙƒÙ#Ø6Ø7×?Ñ?ôð ò,Ø
ð,àð,ð ð,ð
 ð,ð ò,ó	ó ó &ð,ñ* ˜Ÿ
š
Ó#ÙƒÙ#Ø+Ø7×?Ñ?ôð -1Ø,0òØðà	Ð(Ñ	)ðð 
Ð(Ñ	)ðð ò	ó	ó ó $ðñ4 ˜ŸšÓ'Ùƒð -1ò&Ø
ð&à	Ð(Ñ	)ð&ð ò&ó ó (ð&ñ ˜ŸšÓ'Ùƒð -1ò&Ø
ð&à	Ð(Ñ	)ð&ð ò&ó ó (ð&ñ ˜Ÿ
š
Ó#ÙƒÙ#Ø"Ø7×AÑAôð +/Ø*.ò#Ø
ð#àÐ&Ñ'ð#ð Ð&Ñ'ò#ó	ó ó $ð#ñ. ˜Ÿ
š
Ó#Ùƒà?D×?TÒ?TòØðØ).×)<Ò)<ðàòó ó $ðð 9=ò ˆvð ˜&ó ñ ˜Ÿ	š	Ó"ð&ˆNð &˜zò &ó #ð&ð (,Ø#'ØØ%)Ø37Ø!&ØòØðà�^Ñ$ðð �E—K’KÑ ðð �4‰.ð	ð
 �U—\’\Ñ"ðð ˜E×/Ò/Ñ0ðð ˜‘ðð ðð 
óð2 ñó ðð ×Òð ØØ37òØ�LŠLðà�;Š;ðð ðð ð	ð
 ˜E×/Ò/Ñ0ðð 
ˆ#ˆsˆ(�^òó ðð" ×Òð ØØ37òØðà�;Š;ðð ðð ð	ð
 ˜E×/Ò/Ñ0ðð 
ˆ#ˆsˆ(�^òó ðð" ×Òð ØØ37ò	Ø�;Š;ðàðð ðð ˜E×/Ò/Ñ0ð	ð
 
ˆ#ˆsˆ(�^òó ðð ×Òð ØØ37ò	Øðàðð ðð ˜E×/Ò/Ñ0ð	ð
 
ˆ#ˆsˆ(�^òó ðð." &ð "°Tó "ð0ˆ.ð ¨nó ðV Ø"Ø#ØØ#'Ø ò<Øð<à
ð<ð ð	<ð
 ð<ð �8Ñ
ð<ð ð<ð �E—K’KÑ ð<ð 
�&Ñ	ð<ð 2ð<ð ó<ò~ñ4 ˜ŸšÓ!Ùƒð #Øò
Øð
à	�(Ñ	ð
ð ð
ð ò	
ó ó "ð
ñ ˜ŸšÓ!Ùƒð #ØòØðà	�(Ñ	ðð ðð ò	ó ó "ðñ$ ˜Ÿš×-Ò-¨t¯xªx×/CÒ/CÐDÓEð 6:Øñð
 $(Ø òØðà	ˆx˜‰}˜h t¨C¡yÑ1Ð1Ñ	2ðð ðð
 �E—K’KÑ ðð 
�&Ñ	ðð òó Fðð:CØðCð óCñ, ˜Ÿ	š	Ó"ð 6:Øñð
 Ø òØðà	ˆx˜‰}˜h t¨C¡yÑ1Ð1Ñ	2ðð ðð 
�&Ñ	ðð òó #ðñ: ˜Ÿ	š	Ó"ð #Øñð
 !òØðà	�(Ñ	ðð ðð
 
�&Ñ	ðð òó #ðñ. ˜Ÿ	š	Ó"ð #Øñð
 !òØðà	�(Ñ	ðð ðð
 
�&Ñ	ðð òó #ðô.ñ ˜ŸšÓ!Ùƒð #Ø#Øñ	ð (,òØðà	�(Ñ	ðð �t‰nðð ð	ð ˜Ñ$ðð òó ó "ðñ6 ˜ŸšÓ!Ùƒð 6:Ø#Øñ	1ð (,ò1Øð1à	ˆx˜‰}˜h t¨C¡yÑ1Ð1Ñ	2ð1ð �t‰nð1ð ð	1ð ˜Ñ$ð1ð ò1ó ó "ð1ñ* ˜Ÿ	š	Ó"ð #Øñ*ð
 Øò*Øð*à	�(Ñ	ð*ð ð*ð ò*ó #ð*ñZ ˜ŸšÓ&ÙˆV�VÓð #ñð  $ØØ'+òØðà	�(Ñ	ðð �t‰nð	ð
 ðð ˜Ñ$òó ó 'ðñ0 ˜ŸšÓ&ÙˆV�VÓð #Ø#Øñ	ð (,òØðà	�(Ñ	ðð �t‰nðð ð	ð ˜Ñ$òó ó 'ðñ ˜Ÿ	š	Ó"ÙƒÙ#Ø0Ø7×?Ñ?ôð Øò7AØ
ð7Aà
ð7Að ð7Að
 ð7Að ð7Að ò7Aó	ó ó #ð7Aðv
+Ø	ˆ~˜x¨Ñ7Ð7Ñ	8ð
+ØAOð
+à
ˆ>˜5 °Ð!4Ñ5Ð5Ñ6ó
+ð Øð Ø #ð Ø*8ð àó ð+Ø	ˆ~˜x¨Ñ7Ð7Ñ	8ð+ØAOð+à
ˆ>˜5 °Ð!4Ñ5Ð5Ñ6ó+ð+Ø	ˆ~˜x¨Ñ7Ð7Ñ	8ð+ØAOð+à
ˆ>˜5 °Ð!4Ñ5Ð5Ñ6ó+ð$ %)ò		AØñ	Aà
ñ	Að ñ	Að ˜S‘Mð		Að
 ô	Añ ˜×/Ò/Ó0Ùƒð %)òRØñRà	ñRð ñRð ñ	Rð
 ˜S‘MðRð óRó ó 1ðRð2 ô 2ð ×Ò×Ò×'Ò'¨×(MÒ(MÓNØ×Ò×Ò×'Ò'¨×(8Ò(8Ó9ðO 4¨Ñ#7ó Oó :ó OñOð1�Nñ 1¨)ð 1¸õ 1ñ ˜ŸšÓ!ÙƒÙ#Ù$Ø7×AÑAôósGÐ#ð sG¨#ð sG°nó sGó	ó ó "ñsGñn ƒñ#Ð,ð #°ó #ó ñ#ð�ð  >õ ñ ˜×,Ò,Ó-Ùƒà?@òPØñPØ $ S¡	ðPØ2<ðPàóPó ó .ñPðh 8=×7NÒ7Nò7Øð7Ø!&×!4Ò!4ð7àõ7ñ ƒñ#Ð&ð #¨>ó #ó ñ#ñ ˜ŸšÓ$ð!ˆfð ! ó !ó %ñ!ðJ�ð ˜Fð  võ òˆ^ñ  Sð ¨sð ¸5ÀÐQTÐATÑ;Uõ ò,1ˆ~ñ 1¨#ñ 1¸Cð 1Èõ 1ñ$ ˜Ÿ	š	Ó"ÙƒðˆNð Ð"2ð °~ó ó ó #ñðˆnð  õ ðˆnð  õ ðØðØñØ(-¨c°>Ð.AÑ(BñØLOðàõðDØñØ"ñØ).ðà
ˆ6�6˜6Ð!Ñ"õð<˜>ñ °t¸C±yð À^õ ñ ˜×.Ò.×6Ò6Ó7ð1Øñ1à�VÑñ1ð �6Ñ
ñ1ð ñ	1ð
 ñ1ð ñ1ð ñ1ð 
ð1ð ˆ6�6˜6Ð!Ñ"ó1ó 8ñ1ñh ˜×.Ò.Ó/ÙˆV�V™VÓ$ðAØñAàñAð �VÑñAð �6Ñ
ñ	Að
 
ðAð ˆ6�6˜6Ð!Ñ"óAó %ó 0ñAðH ×Ò×Ò×.Ò.¨t×/EÒ/E×/MÒ/MÓNò$ó Oñ$ñ ˜ŸšÓ%ð,ˆ~ð ,¨ó ,ó &ñ,ñ ˜ŸšÓ$Ùƒð#.Øñ#.Ø,ð#.Ø36ñ#.ØAOð#.àó#.ó ó %ñ#.ðN ‡‚×Ò×Ò˜+×?Ò?Ó@ð !%Ø $Ø#ØØØØ#Ø%)Ø&*òn?Øñn?àñn?ð ˜‘ñn?ð ˜‘ñ	n?ð
 �VÑñn?ð ñn?ð ñn?ð ñn?ð �t‰nñn?ð ˜T‘Nñn?ð ˜d‘^ðn?ð ón?ó Añn?ðd ‡‚×Ò×Ò˜K×AÒAÓBð !%Ø $Ø#ØØØ#Ø ØòPØñPàñPð ˜‘ñPð ˜‘ñ	Pð
 �VÑñPð ñPð ñPð �t‰nñPð �S‰MðPð óPó CñPñhØñØ",ñØ9<ñØDGñØORõñ8 ˜ŸšÓ$Ùƒð51ˆfð 51¨ó 51ó ó %ñ51ðp{˜Nñ {Àð {Èõ {ðD<ˆ~ñ < yð <°^õ <ð
&�^ð &¨Nð &¸~õ &ñ ˜Ÿ	š	Ó"Ùƒò,>ˆNñ ,> Hð ,>°Hð ,>Ànó ,>ó ó #ñ,>ñ^ ˜Ÿ
š
Ó#Ùƒà<Bò>Øñ>Øð>Ø)9ð>àó>ó ó $ñ>ñ<
Ð!3ð 
¸õ 
ñ ˜Ÿ
š
Ó#ÙƒóGÐ%ð G¨Cð G¸ó Gó ó $ñGñ  ƒð $(òØðà	ðð �E—K’KÑ ðð ó	ó ññ& ƒñ#Ð&ð #¨>ó #ó ñ#ñ ƒñ#Ð&ð #¨>ó #ó ñ#ðS�ð S cñ S°)ð SÀõ Sñ ˜ŸšÓ$ó
ˆnð 
 3ð 
Ð/Aó 
ó %ñ
ñ  ƒð�*ð  3ñ ¨zñ À:ó ó ñð
�:ð 
 Cñ 
°
ñ 
ÀJõ 
ñ ˜ŸšÓ(Ùƒð<Øð<Øñ<Ø$.ð<Ø7<¸ZÈÐ=SÑ7Tó<ó ó )ñ<ñ ˜×(Ò(Ó)ð;Øð;Øñ;Ø$.ð;Ø7<¸ZÈÐ=SÑ7Tó;ó *ñ;ð.Øð.à	ñ.ð ð.ð �˜ZÐ'Ñ(ñ	.ð õ.ñb ƒð òØðà	ñð ñð ð	ð óó ññ" ˜×)Ò)Ó*Ùƒð�Jð  Sñ °ó ó ó +ññ" ˜Ÿš×)Ò)Ó*òˆ~ð  H¨XÑ$6ð À.ó ó +ññ8 ˜×-Ò-Ó.à56òØ
ñØ# C™yðØ/2ðà	ˆ&�\óó /ñðD òDFØñDFà˜v xÐ/Ñ0ðDFð 
ðDFð ˆ>˜3ÐÑõ	DFðP&-Øñ&-Ø,4ð&-à
ˆ>˜3ÐÑõ&-ðT$+Øñ$+Ø,4ð$+à
ˆ>˜3ÐÑõ$+ñN ˜Ÿ	š	ŸšÓ&Ùƒð ò1Ø
ñ1àð1ð ó1ó ó 'ñ1ñ ˜×-Ò-Ó.Ùƒð ØØòØñà	ñð ñð ñ	ð
 ðð óó ó /ññ$ ˜ŸšÓ&ð ØØò	&Ø
ñ&àñ&ð ñ&ð ð	&ð
 ó&ó 'ñ&ñR ˜ŸšÓ(Ùƒð ØØó	53Øñ53àñ53ð ñ53ð ð	53ð
 ó53ó ó )ñ53ñp ˜ŸšÓ(Ùƒñ!$ $ ~Ñ"6ð !$¸>ó !$ó ó )ñ!$ñH)˜˜nÑ-ð )°.õ )ð
(ˆnñ 
(¨ð 
(Ð5Gõ 
(ñ ˜ŸšŸšÓ'ð9ˆó 9ó (ñ9ð$	ˆð 	˜Nõ 	ñ ˜Ÿ
š
Ó#ðˆ^ð  ó ó $ññ ˜ŸšÓ'ð	*�ñ 	* sñ 	*°#ð 	*¸.ó 	*ó (ñ	*ñ �	ñ ˜ŸšÓ$ð+Ø
ñ+Ø%(ñ+Ø03ñ+Ø;>ð+àó+ó %ñ+ñ ˜×(Ò(Ó)Ùƒð�nñ °ñ ¸Cñ Àsó ó ó *ñð $(Ø ò9ð ð9ð 
ð	9ð �E—K’KÑ ð9ð 
�&Ñ	ð9ð õ9ñ0 ˜ŸšÓ$ð
 $(Ø òTØðTà	ðTð �E—K’KÑ ð	Tð
 
�&Ñ	ðTð óTó %ñTñ ˜ŸšÓ%ð
 $(Ø òUØðUà	ðUð �E—K’KÑ ð	Uð
 
�&Ñ	ðUð óUó &ñUñ ˜ŸšÓ'ð3�ð 3 cð 3¨nó 3ó (ñ3ñ ˜Ÿ	š	×)Ò)Ó*ð=ˆNñ = Ið =°.ó =ó +ñ=ð
#�.ð #¨ð #¸Nõ #ð
ˆ^ð  õ ñ ƒàAEò!DØ‡|�|ñ!DØ#Ÿl™lð!DØ19¸#±ð!Dà
‡\�\ó!Dó ñ!DñH ƒð $(Ø Ÿ=š=Ø'+ØØØ).×)@Ò)@ó#à�E—K’KÑ ð#ð �LŠLð#ð �^Ñ$ñ	#ð
 ð#ð ð#ð ×&Ò&ð#ð ó#ó ñ#ñL ƒð $(Ø Ÿ=š=Ø'+ØØñð �E—K’KÑ ðð �LŠLð	ð
 �^Ñ$ñð ðð ðð óó ññ$ ˜ŸšÓ'Ùƒð
 $(Ø%)Ø'+ØóØñà
ðð �E—K’KÑ ð	ð
 �U—\’\Ñ"ðð �^Ñ$ðð ðð óó ó (ññ, ˜×.Ò.Ó/Ùƒð $(Ø%)Ø'+ØóØñà
ñð ðð
 �E—K’KÑ ðð �U—\’\Ñ"ðð �^Ñ$ðð ðð óó ó 0ññ8 ˜Ÿ
š
×*Ò*Ó+Ùƒð $(Ø Ÿ=š=Ø'+ØØóà�E—K’KÑ ðð �LŠLðð �^Ñ$ð	ð
 ñð ðð óó ó ,ññ0 ˜ŸšÓ'Ùƒð
 $(Ø%)Ø'+ØØóØñà
ðð �E—K’KÑ ð	ð
 �U—\’\Ñ"ðð �^Ñ$ðð ñð ðð óó ó (ññ2 ˜Ÿ	š	×)Ò)Ó*Ùƒð $(Ø Ÿ=š=Ø'+ØØóà�E—K’KÑ ðð �LŠLðð �^Ñ$ð	ð
 ñð ðð óó ó +ññ0 ˜ŸšÓ&Ùƒð
 $(Ø%)Ø'+ØØóØñà
ðð �E—K’KÑ ð	ð
 �U—\’\Ñ"ðð �^Ñ$ðð ñð ðð óó ó 'ññ2 ˜ŸšÓ&Ùƒð $(Ø%)Ø'+ØóØñà
ñð ðð
 �E—K’KÑ ðð �U—\’\Ñ"ðð �^Ñ$ðð ðð óó ó 'ññ0 ˜ŸšÓ(Ùƒð $(Ø'+Ø%)ØØØ).×)>Ò)>ó&Øð&ð �E—K’KÑ ð&ð �^Ñ$ð	&ð
 �U—\’\Ñ"ð&ð ñ&ð ð&ð ×&Ò&ð&ð ó&ó ó )ñ&ñR ˜Ÿš×/Ò/°·²×1FÒ1FÐGÓHÙƒàØ $Øñ`ð
 $(Ø Ÿ=š=Ø'+ØØô`Øñ`à	�*Ñ	ñ`ð ð`ð
 �E—K’KÑ ð`ð �LŠLð`ð �^Ñ$ð`ð ñ`ð ð`ð ó`ó ó Iñ`ñF ˜Ÿ	š	Ó"ÙƒÙ#Ù2Ø7×?Ñ?ôñ8�ñ 8˜Vñ 8¨U°6¸:Ð3EÑ-Fó 8ó	ó ó #ñ8ñ2 ˜ŸšÓ&Ùƒð $(Ø'+Ø Ÿ=š=ØØôU/Ø�˜^Ð+Ñ,ñU/à	ˆz˜>Ð)Ñ	*ñU/ð ðU/ð
 �E—K’KÑ ðU/ð �^Ñ$ðU/ð �LŠLðU/ð ñU/ð ðU/ð óU/ó ó 'ñU/ñp ˜ŸšÓ&Ùƒð
 ñ	8@ð $(Ø'+Ø Ÿ=š=ØØô8@Ø�˜^Ð+Ñ,ñ8@à	ˆz˜>Ð)Ñ	*ñ8@ð ñ8@ð ð	8@ð �E—K’KÑ ð8@ð �^Ñ$ð8@ð �LŠLð8@ð ñ8@ð ð8@ð ó8@ó ó 'ñ8@ðv 
ñ	�h˜~Ñ.ñ 	¸#ó 	ó 
ñ	ð 
ñ	�~ñ 	°ó 	ó 
ñ	ñ ˜ŸšÓ&ñ>Ø�N D¨Ñ$8¸%ÀÑ:OÐOÑPñ>àð>ð 
ˆ.Ñó>ó 'ñ>ðD;Øñ;à�#Ð'Ð'Ñ(ñ;ð �sÐ,Ð,Ñ-ð;ð õ	;ñ~ ˜×*Ò*Ó+Ùƒð
 $(Ø'+Ø Ÿ=š=ØØôØ�˜E )Ñ,Ð,Ñ-ñàðð �E—K’KÑ ð	ð
 �^Ñ$ðð �LŠLñð ðð ðð óó ó ,ññ6 ˜ŸšÓ!Ùƒð ñ")ð $(Ø Ÿ=š=Ø'+ØØô")Ø
ñ")à��}ð")ð �E—K’KÑ ð	")ð
 �LŠLð")ð �^Ñ$ð")ð ñ")ð ð")ð ó")ó ó "ñ")ñP ˜Ÿš×*Ò*¨D¯IªI¯MªMÐ:Ó;Ùƒð
 $(Ø Ÿ=š=Ø'+ØØô%Øñ%àð%ð �E—K’KÑ ð	%ð
 �LŠLð%ð �^Ñ$ð%ð ñ%ð ð%ð ó%ó ó <ñ%ð> $(Ø%)Ø'+ØØØ).×)>Ò)>óØñàðð �E—K’KÑ ð	ð
 �U—\’\Ñ"ðð �^Ñ$ðð ñð ðð ×&Ò&ðð õñ. ˜ŸšÓ(Ùƒð $(Ø%)Ø'+ØØØ).×)>Ò)>óØðð �E—K’KÑ ðð �U—\’\Ñ"ð	ð
 �^Ñ$ðð ñð ðð ×&Ò&ðð óó ó )ññ, ˜ŸšÓ'Ùƒð $(Ø%)Ø'+ØØØ).×)>Ò)>óØðð �E—K’KÑ ðð �U—\’\Ñ"ð	ð
 �^Ñ$ðð ñð ðð ×&Ò&ðð óó ó (ññ, ˜Ÿ
š
×*Ò*Ó+Ùƒð $(Ø'+Ø%)ØØóà�E—K’KÑ ðð �^Ñ$ðð �U—\’\Ñ"ñ	ð
 ðð ðð óó ó ,ñð8 $(Ø Ÿ=š=Ø'+Øó>Øð>ð �E—K’KÑ ð>ð �LŠLð	>ð
 �^Ñ$ð>ð ð>ð õ>ð, $'Ø$'óXØñXà	ˆt�S˜%ÐÑ	 ñXð ��c˜5Ð Ñ
!ðXð
 �;Š;ðXð ðXð õXñ* ˜×(Ò(Ó)Ùƒð)�>ñ )¨ð )Ð@Vó )ó ó *ñ)ñX ˜×)Ò)Ó*ðØñØ+ðØ4Jðàóó +ñð ØØòØðàðð ðð ð	ð
 ðð 
õð"ˆ^ð  ð °4õ ñ& ˜Ÿ	š	Ó"Ù˜Ôð &+Ø"Øñ	Mð $(óMØñMà��e˜S�jÑ!Ñ"ðMð 
�(Ñ	ðMð ð	Mð �E—K’KÑ ðMð óMó ó #ñMñ2 ˜Ÿ
š
Ó#Ùƒð*�ð * >ó *ó ó $ñ*ôò ˜[Ó)�Ú˜lÓ+�	Ú˜Ó�ñ ˜Ÿ	š	Ó"Ùƒò3ˆNñ 3 cð 3°.ó 3ó ó #ñ3ñ ˜Ÿ	š	Ó"Ùƒò3ˆNñ 3 cð 3°.ó 3ó ó #ñ3ñ(7˜ñ 7 3ñ 7°ð 7¸¸cÀ3È¸mÑ8Lõ 7ð$Ø
ñà	ñð 
ðð �;Š;ð	ð
 �LŠLðð õñ" ˜×)Ò)Ó*Ùƒð ñ"ð
 ŸšØ Ÿ=š=Ù"Øô"Ø	ñ"à	ñ"ð ð"ð
 �;Š;ð"ð �LŠLð"ð ð"ð ð"ð ó"ó ó +ñ"ñR7˜ñ 7 3ñ 7°ð 7¸¸cÀ3È¸mÑ8Lõ 7ñ" ˜×)Ò)Ó*Ùƒð ñ&ð
 ŸšØ Ÿ=š=Ù"Øô&Ø	ñ&à	ñ&ð ð&ð
 �;Š;ð&ð �LŠLð&ð ð&ð ð&ð ó&ó ó +ñ&ñR ˜ŸšÓ'Ù˜Ôð
 Øó7%Øñ7%àñ7%ð ñ	7%ð
 ó7%ó ó (ñ7%ñt ˜ŸšÓ$ÙƒÙ#Ø!Ø7×?Ñ?ôôOó	ó ó %ñOñ  ˜×(Ò(Ó)ÙƒÙ#Ø!Ø7×?Ñ?ôô#ó	ó ó *ñ#ñ6 ˜ŸšÓ'ÙƒÙ#Ø!Ø7×?Ñ?ôôQó	ó ó (ñQñ ˜ŸšÓ(ÙƒÙ#Ø!Ø7×?Ñ?ôô:ó	ó ó )ñ:ñ" ˜ŸšÓ$ÙƒÙ#ñð 8×?Ñ?ôð 
Ø	Ø	ñ1'ð
 Ø
ØØØõ1'óó ó %ñ1'ñh ˜ŸšÓ%ñH¨dõ Hó &ñHñ #Ð#B×#OÑ#OÓPð�.ó ó Qññ #Ð#B×#OÑ#OÓPð�.ó ó Qññ ˜×*Ò*Ó+Ùƒò ˜X hÑ/ó  ó ó ,ñ ô=ô*ñ ˜ŸšÓ!ÙƒÙÙ#Ù)Ø7×?Ñ?ôò
 ó	ó ó ó "ñ
 ñ ˜Ÿ	š	Ó"ÙƒÙÙ#Ù)Ø7×?Ñ?ôò0ó	ó ó ó #ñ0ñ  ˜×+Ò+Ó,Ùƒð%�nñ %¨>ð %Àñ %ÈCó %ó ó -ñ%ñ �SÓ�Ù�dÓ�Ù	�uÓ	�Ù�SÓ�Ù˜Ó!�Ù˜Ó!�Ù�dÓ�Ù	�uÓ	�Ù�dÓ�Ù	�uÓ	�Ù	�uÓ	�Ù˜[Ó)�Ù#Ð$6Ó7Ñ Ù˜[Ó)�Ù˜JÓ'�Ù$Ð%8Ó9Ñ Ù˜[Ó)�Ù�dÓ�Ù	�uÓ	�Ù˜9Ó%�
Ù˜9Ó%�
Ù˜}Ó-�Ù˜(Ó#�	Ù�SÓ�Ù�dÓ�Ù
™Ó
�Ù™Ó!�Ù™Ó!�Ù˜Ó!�Ù�SÓ�Ù�BÓ�Ù�SÓ�Ù�dÓ�Ù
˜Ó
�Ù�SÓ�Ù�dÓ�Ù	�uÓ	�Ù˜[Ó)�Ù	�uÓ	�Ù˜lÓ+�Ù�dÓ�Ù�dÓ�Ù�SÓ�Ù�BÓ�Ù�BÓ�Ù˜9Ó%�
Ù	�uÓ	�Ù
˜Ó
�Ù˜Ó!�Ù�BÓ�Ù�SÓ�Ù�BÓ�Ù‘dÓ�Ù
˜Ó
�Ù	�uÓ	�Ù	�uÓ	�Ù�dÓ�Ù�SÓ�Ù˜[Ó)�Ù˜[Ó)�Ù˜JÓ'�Ù˜[Ó)�Ù�BÓ�Ù�SÓ�Ù˜(Ó#�	Ù˜JÓ'�Ù�BÓ�Ù�SÓ�Ù˜9Ó%�
Ù�SÓ�Ù™Ó!�Ù˜JÓ'�Ù˜9Ó%�
Ù	�uÓ	�Ù�SÓ�Ù˜Ó!�Ù�dÓ�Ù�SÓ�Ù�dÓ�Ù�dÓ�Ù�dÓ�Ù
˜Ó
�Ù�SÓ�Ù�SÓ�Ù�dÓ�Ù‘dÓ�Ù‘dÓ�Ù˜[Ó)�Ù	�uÓ	�Ù	�uÓ	�Ù
™Ó
�Ù™[Ó)�Ù™9Ó%�
Ù™JÓ'�Ù�dÓ�á! $§*¢*Ó-�
Ù& t§¢Ó7�Ù$ T§]¢]Ó3�Ù" 4§;¢;Ó/�ñ # 4§;¢;Ó/�Ù# D§L¢LÓ1�Ù# D§L¢LÓ1�Ù	˜dŸfšfÓ	%�Ù% d§n¢nÓ5�Ù" 4§;¢;Ó/�Ù% d§n¢nÓ5�Ù  §¢Ó+�	ôGô
ô4.IñfØ—’ñØ"'Ð(>Ð@RÐ(RÑ"SõðF ö5ðr  t¸ÈU÷ ôL  Ü Ü Ü  Ý r7  