
    ij                       d dl Z d dlZd dlZd dlZd dlmZ d dlmZ d dlm	Z	 d dl
mZ d dl
mZ d dl
mZ d dlmZ d d	lmZ d d
lmZ d dlmZ d dlmZ d dlmZ ej,                  ej.                  ej0                  ej2                  fZddZd Zd Zd Zd Zd Z ddZ!ddZ"ddZ#ddZ$ddZ%d Z&d Z'd Z(ddZ)d Z*ddZ+ddZ,dd Z-dd!Z.dd"Z/d# Z0d$ Z1d% Z2d& Z3d' Z4d( Z5d) Z6dd*Z7dd+Z8dd,Z9dd-Z:dd.Z;dd/Z<d0 Z=d1 Z>d2 Z?d3 Z@d4 ZAdd5ZBd6 ZCd7 ZDd8 ZEd9 ZFd: ZGd; ZHd< ZId= ZJd> ZKd? ZLd@ ZMdA ZNdB ZOdC ZPddDZQdE ZRdF ZSdG ZTdH ZUdI ZVddJZWddKZXddLZYddMZZdN Z[dO Z\ddPZ]ddQZ^ddRZ_ddSZ`dT ZadU ZbdV ZcddWZdddXZedY ZfdZ Zgd[ Zhd\ Zid] Zjdd^Zkd_ Zld` Zmda ZnddbZoddcZpdd ZqddeZrdf Zsdg Ztdh Zudi Zvdj ZwddkZxdl Zydm ZzddnZ{ddoZ|dp Z}ddqZ~dr Zds Zdt Zdu Zdv Zdw Zdx Zdy Zdz Zd{ Z	 dd|Zd} Zd~ Zd Zd Zd Zd Zd Zd Zd ZddZd Zd ZddZdddZddZd Zd Zd Zd Zd ZddZddZddZddZddZddZddZddZddZddZddZddZddZddZddZd Zd Zd ZddZd ZddZddZddZddZddZd Zd Zd Zd ZddZd ZddZd dZd Zd Zd Zd Zd Zd ZddZddZddZddZddZd ZddZddZd ZdÄ ZΐddĄZddńZdƄ ZddǄZҐddȄZddɄZddʄZd˄ Zd̄ Zd̈́ Zd΄ Zdτ ZdddМdфZdd҄Zdӄ ZdԄ ZdՄ Zdք Zdׄ Zd؄ Zdل Zdڄ ZddۄZdd܄Zdd݄ZddބZdd߄ZddZddZd Zd Zd ZddZddZd ZddZddZ	 	 	 	 	 	 	 ddZd Zy(      N)KerasTensor)config)dtypes)canonicalize_axis)to_tuple_or_list)vectorize_impl)standardize_dtypecastconvert_to_tensor)
get_device)	is_tensor)to_torch_dtypec                     t                 j                  dk  rt        d j                         t        |      dk7  s|d   |d   k(  rt        d| d      t	         fd|D              }t        j                   fd|D              st        d	| d
 j                   d      t        j                   ||      }t         t        j                        r|j                         j                         }|S )a/  Rotate an array by 90 degrees in the specified plane using PyTorch.

    Args:
        array: Input tensor
        k: Number of 90-degree rotations (default=1)
        axes: Tuple of two axes that define the
            plane of rotation (defaults to `(0, 1)`).

    Returns:
        Rotated tensor
       zBInput array must have at least 2 dimensions. Received: array.ndim=r      zInvalid axes: z3. Axes must be a tuple of two different dimensions.c              3   J   K   | ]  }|d k\  r|nj                   |z     ywr   Nndim.0axisarrays     r/var/www/html/emotional.easysim.app/public_html/venv/lib/python3.12/site-packages/keras/src/backend/torch/numpy.py	<genexpr>zrot90.<locals>.<genexpr>5   s%     Kd

T(99Ks    #c              3   R   K   | ]  }d |cxk  xr j                   k  nc    ywr   r   r   s     r   r   zrot90.<locals>.<genexpr>7   s"     @4T.EJJ..@s   $'zInvalid axes z for tensor with z dimensions)kdims)r   r   
ValueErrorlentuplebuiltinsalltorchrot90
isinstancenpndarraycpunumpy)r   r   axesrotateds   `   r   r'   r'      s     e$EzzA~$$)JJ<1
 	
 4yA~aDG+TF #+ +
 	

 KdKKD<<@4@@D6!25::,kJ
 	
 kk%140G%$++-%%'N    c                 Z    t        |       } t        |      }t        j                  | |      S N)r   r&   addx1x2s     r   r2   r2   C   '    	2	B	2	B99Rr/   c                    |D cg c]  }t        |       }}t        t        d |D                    }t        |      dk(  rd|d   dk(  r\d}t	               dk(  rt        j                         }|D cg c]  }t        ||       }}t        t        j                  | g| d      S t        j                  | g| S c c}w c c}w )Nc              3   F   K   | ]  }t        |j                          y wr1   )r	   dtype)r   xs     r   r   zeinsum.<locals>.<genexpr>M   s      N!2177!; Ns   !r   r   int8int32cuda)
r   listsetr"   r   r   floatxr   r&   einsum)
subscriptsoperandskwargsoperanddtypes_to_resolvecompute_dtypes         r   rA   rA   I   s    :BCw!'*CHC S NX NNO
"'8';v'E<6!"MMOM@HIWD-0IIELL7h7AA<<
.X.. D Js   B<1Cc                    t        |       } t        |      }t        | j                        dk(  rt        | |j                        } t        |j                        dk(  rt        || j                        }t	        j
                  | |      S Nbool)r   r	   r9   r   r&   subtractr3   s     r   rK   rK   Y   si    	2	B	2	B"f,"bhh"f,"bhh>>"b!!r/   c                 v   t        |       } t        |      }t        | j                        t        |j                        fd} || |      r	 t        j                  | |      S dk(  rdk(  rd}n*t        j                  | j                  |j                        }|}|dk(  rt        j                         }t               dk(  r|dk(  rd}t               dk(  rd	|v rt        j                         }t        | |      } t        ||      }t        t        j                  | |      |      S # t
        $ r Y w xY w)
Nc                    t               dk7  rydk7  sdk7  ry| j                  }|j                  }| j                  dk7  s|j                  dk7  ry|d   dk  s|d   dk  s|d   dz  dk7  ry|d   dk  s|d   dz  dk7  s|d   dz  dk7  ryy	)
Nr=   Fr;   r   r      r      T)r   shaper   )r4   r5   x1_shapex2_shapex1_dtypex2_dtypes       r   can_use_int_matmulz"matmul.<locals>.can_use_int_matmulj   s     <6!vV!3888877a<277a<A;"b 0HQK!Oq4HA;x{Q!3x{Q!7Kr/   r;   r<   rJ   r+   float16float32r=   int)r   r	   r9   r&   _int_mmRuntimeErrorr   result_typer   r@   r   r   matmul)r4   r5   rU   result_dtyperG   rS   rT   s        @@r   r\   r\   d   s   	2	B	2	B *H *H4 "b!	==R(( 6h&0))"((BHH= M |u)!;!|v%="8	b-	 B	b-	 BR$l33+  		s   D, ,	D87D8c                 Z    t        |       } t        |      }t        j                  | |      S r1   )r   r&   multiplyr3   s     r   r_   r_      s'    	2	B	2	B>>"b!!r/   c                 l   t        | t        t        f      rt        |       } t	        |       } |dk(  s|g k(  r| S t        |      }t        | j                        }t        j                  | j                  d      }d|v s|dk(  r|}n|}t        | |      } t        j                  | ||      }t        ||      S )N rW   rX   rJ   )r(   r>   r#   stackr   r   r	   r9   r   r[   r   r&   mean)r:   r   keepdims	ori_dtyperG   r]   results          r   rc   rc      s    !dE]#!H!ArzTRZD!D!!''*I&&qww	:M	Y&0$  	QAZZ4*F%%r/   c                 :   t        |       } d| j                  v rP|t        d      |r,t        j                  dt        | j                        z  |      S t        j                  |      S |t        j                  |       }nt        | ||      }t        t        |dd       t        j                        r|j                  }|Xt        |j                        }t        ||      }t        j                  |t        j                  |j                  ||            S |S )Nr   z*Cannot compute the max of an empty tensor.r   r   rd   valuesr9   )r   rP   r!   r&   fullr"   tensormaxamaxr(   getattrTensorrj   r   r9   maximumr:   r   rd   initialrf   r9   s         r   rn   rn      s    !AAGG|?IJJ::dS\17;;<<((|1adX6'&(D15<<@v||,#G59}}EJJv||WEB
 	
 Mr/   c                     t        |xs t        j                               }t        | t              r| f} t        j                  | |t                     S Nsizer9   device)r   r   r@   r(   rX   r&   onesr   rP   r9   s     r   rz   rz      s=    53FMMO4E%::5jlCCr/   c                     t        |xs t        j                               }t        | t              r| f} t        j                  | |t                     S rv   )r   r   r@   r(   rX   r&   zerosr   r{   s     r   r}   r}      s=    53FMMO4E%;;Ez|DDr/   c                 x    t        |       } t        |xs | j                        }t        j                  | |      S Nrk   )r   r   r9   r&   
zeros_liker:   r9   s     r   r   r      s2    !A5+AGG,EAU++r/   c                 v    t        |       } t        | j                        dk(  r| S t        j                  |       S rI   )r   r	   r9   r&   absr:   s    r   absoluter      s0    !A!V+99Q<r/   c                     t        |       S r1   )r   r   s    r   r   r      s    A;r/   c                     t        |       } t        | j                        }d|v s|dk(  rt        | t	        j
                               } t        j                  |       S NrX   rJ   )r   r	   r9   r   r   r@   r&   r   r   s     r   fabsr     sG    !Aagg&E~&FMMO$99Q<r/   c                     t        |       } t        |      }|dk(  s|g k(  rt        | d      S t        |t              rt        |      }t        t        j                  | ||      d      S Nra   rJ   dimkeepdim)r   r   r   r(   r>   r#   r&   r%   r:   r   rd   s      r   r%   r%   
  \    !AD!DrzTRZAv$T{		!x8&AAr/   c                     t        |       } t        | j                        }t               dk7  r0|dk(  r+t	        | d      } t	        t        j                  |       d      S t        j                  |       S Nr+   rV   rW   )r   r	   r9   r   r   r&   angler:   re   s     r   r   r     s\    !A!!''*I |ui!7IEKKNI..;;q>r/   c                     t        |       } t        |      }|dk(  s|g k(  rt        | d      S t        |t              rt        |      }t        t        j                  | ||      d      S r   )r   r   r   r(   r>   r#   r&   anyr   s      r   r   r     r   r/   c                     t        |       } |t        j                  |       S |dk(  s|g k(  r| S t        j                  | ||      S Nra   r   )r   r&   ro   r   s      r   ro   ro   )  D    !A|zz!}rzTRZ::aT844r/   c                     t        |       } |t        j                  |       S |dk(  s|g k(  r| S t        j                  | ||      S r   )r   r&   aminr   s      r   r   r   3  r   r/   c                     t        |       t        |      }} |3t        j                  | j                         |j                         f      S t        j                  | |f|      S Nr   )r   r&   catflatten)r4   r5   r   s      r   appendr   =  sP    r"$5b$9B|yy"**,

56699b"X4((r/   c           	      b   |wt        | dt        |             g}|%|j                  t        |dt        |                   |%|j                  t        |dt        |                   t        j                  | }t        |      }|d| }} |d}t        j                  | |||t                     S )Nr9   r   r   )stepr9   ry   )	rp   typer   r   r[   r   r&   aranger   )startstopr   r9   rF   s        r   r   r   D  s    }$UGT%[AB$$WT7DJ%GH$$WT7DJ%GH""$565!E|t|<<t$eJL r/   c                 B    t        |       } t        j                  |       S r1   )r   r&   arccosr   s    r   r   r   V      !A<<?r/   c                 B    t        |       } t        j                  |       S r1   )r   r&   arccoshr   s    r   r   r   [      !A==r/   c                 B    t        |       } t        j                  |       S r1   )r   r&   arcsinr   s    r   r   r   `  r   r/   c                 B    t        |       } t        j                  |       S r1   )r   r&   arcsinhr   s    r   r   r   e  r   r/   c                 B    t        |       } t        j                  |       S r1   )r   r&   arctanr   s    r   r   r   j  r   r/   c                 (   t        |       } t        |      }t        j                  | j                  |j                  t              }|}t               dk(  r|dk(  rd}t        | |      } t        ||      }t        t        j                  | |      |      S r   )	r   r   r[   r9   floatr   r   r&   arctan2r4   r5   r]   rG   s       r   r   r   o  s}    	2	B	2	B%%bhh%@L M|u)!;!	b-	 B	b-	 Bb"%|44r/   c                 B    t        |       } t        j                  |       S r1   )r   r&   arctanhr   s    r   r   r   |  r   r/   c                     t        |       } t        | j                        dk(  rt        | d      } t        t	        j
                  | ||      d      S NrJ   uint8r   r<   rk   )r   r	   r9   r   r&   argmaxr   s      r   r   r     E    !A !V+GQD(;7KKr/   c                     t        |       } t        | j                        dk(  rt        | d      } t        t	        j
                  | ||      d      S r   )r   r	   r9   r   r&   argminr   s      r   r   r     r   r/   c                     t        |       } t        | j                        dk(  rt        | d      } |d}| j	                  d      } t        t        j                  | |d      d      S )NrJ   r   T)r   stabler<   rk   )r   r	   r9   r   reshaper&   argsortr:   r   s     r   r   r     s\    !A !V+G|IIbMaT$7wGGr/   c                     t        | |      S r   r   r   s     r   r   r     s    Qe,,r/   c                 R    t        |      }t        |       } | j                  |      S r   )r   r   viewr   s     r   r   r     s'    5!E!A666r/   c                    t        |       } | j                  t        g}|&t        |      }|j                  |j                         t	        j
                  | }t        | |      } |t        ||      }|dk(  s|g k(  r| S |Ct        j                  t        j                  | |      |      t        j                  |d      z  S t        j                  | |      S )Nra   r   r   )r   r9   r   r   r   r[   r   r&   summulrc   )r:   r   weightsrF   r9   s        r   averager     s    !A%(#G,  / 12EQAw&rzTRZyy1g.D9EII=
 
 	
 ::ar/   c                 j    t        |       } t        j                  j                  j	                  |       S r1   )r   r&   signalwindowsbartlettr   s    r   r   r     '    !A<<((++r/   c                 j    t        |       } t        j                  j                  j	                  |       S r1   )r   r&   r   r   hammingr   s    r   r   r     s'    !A<<''**r/   c                 j    t        |       } t        j                  j                  j	                  |       S r1   )r   r&   r   r   hannr   s    r   hanningr     s'    !A<<$$Q''r/   c                    t        |       } t        |      }t        j                  | j                  |j                        }|dv rt	        j
                         }n|dk(  rd}t        | |      } t        ||      }t        j                  | |      S N)r;   int16r<   r   uint16uint32int64float64)	r   r   r[   r9   r   r@   r   r&   	heavisider4   r5   r9   s      r   r   r     sx    	2	B	2	Brxx2EGG	'		b%B	b%B??2r""r/   c                 n    t        |       } t        j                  j                  j	                  | |      S )N)beta)r   r&   r   r   kaiser)r:   r   s     r   r   r     s,    !A<<&&qt&44r/   c           	         |rt        d      t        |       } | j                  g}|9t        |      }|j                  |j                         t	        j
                  | }nd}t        | j                        dk(  r`|fd}t        t        ||             }n$fd}t        t        |t        | |                  }t        t        j                  |      |      S t        t        j                  | |      |      S )Nz2Unsupported value `sparse=True` with torch backendr<   r   c                 2    t        j                  |       S )N)	minlengthr&   bincount)arrr   s    r   bincount_fnzbincount.<locals>.bincount_fn  s    ~~cY??r/   c                 @    t        j                  | d   | d         S )Nr   r   )r   r   r   )arr_wr   s    r   r   zbincount.<locals>.bincount_fn  s#    ~~!HeAh) r/   )r!   r   r9   r   r   r[   r"   rP   r>   mapzipr   r&   rb   r   )r:   r   r   sparserF   r9   r   	bincountss     `     r   r   r     s    MNN!A	#G,  /""$56
177|q?@ Sa01I
 Sc!Wo>?IEKK	*E22q'95u==r/   c                 Z    t        |       } t        |      }t        j                  | |      S r1   )r   r&   bitwise_andr:   ys     r   r   r     )    !A!AQ""r/   c                 B    t        |       } t        j                  |       S r1   )r   r&   bitwise_notr   s    r   bitwise_invertr   	      !AQr/   c                     t        |       S r1   )r   r   s    r   r   r     s    !r/   c                 Z    t        |       } t        |      }t        j                  | |      S r1   )r   r&   
bitwise_orr   s     r   r   r     s)    !A!AAq!!r/   c                 Z    t        |       } t        |      }t        j                  | |      S r1   )r   r&   bitwise_xorr   s     r   r   r     r   r/   c                 z    t        |       } t        |t              st        |      }t        j                  | |      S r1   )r   r(   rX   r&   bitwise_left_shiftr   s     r   r  r    s3    !Aaa ##Aq))r/   c                     t        | |      S r1   )r  r   s     r   
left_shiftr  %  s    a##r/   c                 z    t        |       } t        |t              st        |      }t        j                  | |      S r1   )r   r(   rX   r&   bitwise_right_shiftr   s     r   r  r  )  s3    !Aaa $$Q**r/   c                     t        | |      S r1   )r  r   s     r   right_shiftr  0  s    q!$$r/   c                 j    t        |       } t        j                  j                  j	                  |       S r1   )r   r&   r   r   blackmanr   s    r   r	  r	  4  r   r/   c                 D    t        |       } t        j                  | |      S r1   )r   r&   broadcast_to)r:   rP   s     r   r  r  9  s    !Aa''r/   c                     t        |       } t        | j                        }|dk(  rt        | d      } n|dk(  rt        | d      } t	        j
                  |       t	        j                  |       dz  z  S )NrJ   r<   r   r   gUUUUUU?)r   r	   r9   r   r&   signr   r   s     r   cbrtr  >  sa    !Aagg&EG	'	I::a=599Q<I666r/   c                 n   t        |       } t        | j                        }|dk(  rt        | d      } n0t	               dk(  r#|dk(  rt        | t        j                               } |dk(  rt        j                         }nt        j                  |t              }t        t        j                  |       |      S )NrJ   r   r+   rV   r   rk   )r   r	   r9   r   r   r   r@   r   r[   r   r&   ceil)r:   re   r9   s      r   r  r  J  s    !A!!''*I FG		9	#9FMMO$G""9e4

1U++r/   c                 @   t        |       } t        |      }t        |      }t        | j                        }t               dk(  r3|dk(  r.t	        | d      } t	        t        j                  | ||      d      S |dk(  rt	        | d      } t        j                  | ||      S )Nr+   rV   rW   )minrn   rJ   r<   )r   r	   r9   r   r   r&   clip)r:   x_minx_maxre   s       r   r  r  \  s    !Ae$Ee$E!!''*I |ui!7IEJJqe7CCFG::aU..r/   c                 j    | D cg c]  }t        |       } }t        j                  | |      S c c}w r   )r   r&   r   )xsr   r:   s      r   concatenater  l  s1    (*	+1
A
	+B	+99RT"" 
,   0c                     t        | t        j                        st        j                  |       } t        j                  |       j                         S r1   r(   r&   rq   
from_numpyconjresolve_conjr   s    r   	conjugater  q  7    a&Q::a=%%''r/   c                     t        | t        j                        st        j                  |       } t        j                  |       j                         S r1   r  r   s    r   r  r  w  r   r/   c                 B    t        |       } t        j                  |       S r1   )r   r&   cloner   s    r   copyr$  }      !A;;q>r/   c                 B    t        |       } t        j                  |       S r1   )r   r&   cosr   s    r   r'  r'        !A99Q<r/   c                 B    t        |       } t        j                  |       S r1   )r   r&   coshr   s    r   r*  r*        !A::a=r/   c                     t        |       } |dk(  s|g k(  r t        t        j                  | d      d      S t        t        j                  | |      j
                  d      S )Nra   r   r<   r   )r   r   r&   necount_nonzeroTr   s     r   r.  r.    sP    !ArzTRZEHHQNG,,##A4022G<<r/   c           	         |dk7  s
|dk7  s|dk7  rt        d| d| d| d      t        |       } t        |      }t        j                  | j                  |j                        }|}t               dk(  r|dk(  rd}nt               d	k(  r|d
k(  rd}t        | |      } t        ||      }t        t        j                  | ||      |      S )Nr   zMTorch backend does not support `axisa`, `axisb`, or `axisc`. Received: axisa=z, axisb=z, axisc=z). Please use `axis` arg in torch backend.r=   bfloat16rW   r+   rV   r   )	r!   r   r   r[   r9   r   r   r&   cross)r4   r5   axisaaxisbaxiscr   rG   r]   s           r   r2  r2    s    {erkUb[$gXeWHUG D//
 	

 
2	B	2	B&&rxx:M L|v-:"=!		=I#=!	b-	 B	b-	 BB-|<<r/   c           	      R   t        |       } || j                         } d}t        j                  |xs | j                        }|dk(  rd}n=t               dk(  r0|dk(  r+t        t        j                  | |t        d            d      S t        j                  | |t        |            S Nr   rJ   r<   r+   rV   rW   r   r9   )
r   r   r   r[   r9   r   r   r&   cumprodr   r:   r   r9   s      r   r9  r9    s    !A|IIKu/0E		5I#5MM!^I-FG
 	
 ==N5,ABBr/   c           	      R   t        |       } || j                         } d}t        j                  |xs | j                        }|dk(  rd}n=t               dk(  r0|dk(  r+t        t        j                  | |t        d            d      S t        j                  | |t        |            S r7  )
r   r   r   r[   r9   r   r   r&   cumsumr   r:  s      r   r<  r<    s    !A|IIKu/0E		5I#5LLN9,EF
 	
 <<t>%+@AAr/   c                     t        |       } t        | j                        dk(  rt        t	        j
                  |       d      S t	        j
                  |       S Nr   r   )r   r	   r9   r   r&   deg2radr   s    r   r?  r?    B    !A!W,EMM!$i00==r/   c                     t        |       } t        | j                        dk(  rt        t	        j
                  |       d      S t	        j
                  |       S r>  )r   r	   r9   r   r&   rad2degr   s    r   rB  rB    r@  r/   c                 F    t        |       } t        j                  | |      S Ndiagonal)r   r&   diagr:   r   s     r   rG  rG        !A::a!$$r/   c                 F    t        |       } t        j                  | |      S )N)offset)r   r&   diagflatrH  s     r   rL  rL    s    !A>>!A&&r/   c                 J    t        |       } t        j                  | |||      S )N)rK  dim1dim2)r   r&   rF  )r:   rK  axis1axis2s       r   rF  rF    s)    !A>>		 r/   c                 H    t        |       } t        j                  | ||      S )N)nr   )r   r&   diff)arS  r   s      r   rT  rT    s    !A::a1$''r/   c                     t        |       } t        |      }t        | j                        dk(  rt        | d      } t        t	        j
                  | |d      d      S )NrJ   r   T)rightr<   )r   r	   r9   r   r&   	bucketize)r:   binss     r   digitizerZ    sM    !AT"D!V+G4t4g>>r/   c                    t        |       } t        |      }t        j                  | j                  |j                        }t        j                  |t              }t               dk(  r|dk(  rd}t        | |      } t        ||      }| j                  dk(  s|j                  dk(  r t        t        j                  | |      |      S t        t        j                  | |      |      S )Nr+   rV   rW   r   )r   r   r[   r9   r   r   r   r   r&   r_   r\   r   s       r   dotr\    s    	2	B	2	B%%bhh9L&&|U;M |u)!;!	b-	 B	b-	 B	ww!|rww!|ENN2r*L99R$l33r/   c                 f    | D cg c]  }t        |       } }t        j                  |       S c c}w r1   )r   r&   dstackr  r:   s     r   r^  r^    /    (*	+1
A
	+B	+<< 
,   .c                     t        |xs t        j                               }t        j                  | |t                     S rv   )r   r   r@   r&   emptyr   r{   s     r   rc  rc    s,    53FMMO4E;;Ez|DDr/   c                     t        |       } t        |xs | j                        }t        j                  | |t                     S )Nr9   ry   )r   r   r9   r&   
empty_liker   r   s     r   rf  rf    s6    !A5+AGG,EAU:<@@r/   c                 Z    t        |       t        |      }} t        j                  | |      S r1   )r   r&   eqr3   s     r   equalri  !  s'    r"$5b$9B88Br/   c                     t        |       } t        | j                        }d|v s|dk(  rt        | t	        j
                               } t        j                  |       S r   )r   r	   r9   r   r   r@   r&   expr   s     r   rk  rk  &  sI    !A!!''*I	Y&0FMMO$99Q<r/   c                     t        |       } t        | j                        }d|v s|dk(  rt        | t	        j
                               } t        j                  |       S r   )r   r	   r9   r   r   r@   r&   exp2r   s     r   rm  rm  .  sI    !A!!''*I	Y&0FMMO$::a=r/   c           	          t        |       } t        |      }t        | j                        t        |      z   }t	        |D cg c]  }t        ||       c}      }|D ]  }t        j                  | |      }  | S c c}w r   )r   r   r"   rP   sortedr   r&   	unsqueeze)r:   r   out_ndimrU  s       r   expand_dimsrr  6  ss    !AD!D177|c$i'H4@a$Q1@AD &OOA1%&H As   A;c                     t        |       } t        | j                        }d|v s|dk(  rt        | t	        j
                               } t        j                  |       S r   )r   r	   r9   r   r   r@   r&   expm1r   s     r   rt  rt  @  sI    !A!!''*I	Y&0FMMO$;;q>r/   c                     t        |       } |t        t        | j                              }t	        |      }t        j                  | |      S Nr    )r   r#   ranger   r   r&   flipr   s     r   ry  ry  H  s>    !A|U166]#D!D::ad##r/   c                 B    t        |       } t        j                  |       S r1   )r   r&   fliplrr   s    r   r{  r{  P  r   r/   c                 B    t        |       } t        j                  |       S r1   )r   r&   flipudr   s    r   r}  r}  U  r   r/   c                     t        |       } t        | j                        dk(  rt        j                         n#t        j                  | j                  t              }t        | |      } t        j                  |       S Nr   )r   r	   r9   r   r@   r   r[   r   r   r&   floorr   s     r   r  r  Z  s^    !A QWW%0 	/ 

 	QA;;q>r/   c                 `   t        |      }t        ||      }t        |j                        dkD  r^t        |       t        |j                        z
  }t	        | d |       dt        |j                        z  z   }t        j                  ||      S t        j                  | ||t                     S )Nrk   r   rh   )rx   
fill_valuer9   ry   )	r   r   r"   rP   r#   r&   tilerl   r   )rP   r  r9   expand_size
tile_shapes        r   rl   rl   e  s    5!E":U;J
:q %j3z'7'7#885+./$Z=M=M9N2NN
zz*j11::zz| r/   c                 R    |xs | j                   }t        | j                  ||      S )N)rP   r  r9   )r9   rl   rP   )r:   r  r9   s      r   	full_liker  r  s#    QWWEagg*EBBr/   c                 Z    t        |       } t        |      }t        j                  | |      S r1   )r   r&   gcdr3   s     r   r  r  w  r6   r/   c                    |dk7  rt        d|       |Ct        | dt        |             t        |dt        |            t        g}t	        j
                  | }t        |      }t        | |      } t        ||      }t        j                  t        j                  |             }t        j                  t        j                  |            }t        ||||d|      }	|	t        j                  |       z  S )Nr   zGtorch does not support an `axis` argument for geomspace. Received axis=r9   rk   
   )numendpointbaser9   )r!   rp   r   r   r   r[   r   r   r&   log10r   logspacer  )
r   r   r  r  r9   r   rF   	log_startlog_stoprf   s
             r   	geomspacer  }  s    qy!F$
 	
 }E7DK0D'4:.

 ""$565!Ee51ET/DEIIe,-I{{599T?+H8xbF EJJu%%%r/   c                 Z    t        |       t        |      }} t        j                  | |      S r1   )r   r&   greaterr3   s     r   r  r    s'    r"$5b$9B==R  r/   c                 Z    t        |       t        |      }} t        j                  | |      S r1   )r   r&   greater_equalr3   s     r   r  r    s)    r"$5b$9Br2&&r/   c                 f    | D cg c]  }t        |       } }t        j                  |       S c c}w r1   )r   r&   hstackr_  s     r   r  r    r`  ra  c                     t        |       } t        |t              st        |      j                         }t	        t        j                  | |            S r1   )r   r(   rX   tolistr>   r&   hsplitr:   indices_or_sectionss     r   r  r    C    !A)3//0CDKKMQ 3455r/   c                    t        |       } t        |      }t        j                  | j                  |j                        }|dv rt	        j
                         }n|dk(  rd}t        | |      } t        ||      }t        j                  | |      S r   )	r   r   r[   r9   r   r@   r   r&   hypotr   s      r   r  r    sx    	2	B	2	Brxx2EGG	'		b%B	b%B;;r2r/   c                 *   t        |xs t        j                               }t               dk(  rF|t        j
                  k(  r3t        t	        j                  | t        d      t                     |      S t	        j                  | |t                     S )Nr+   rW   re  )r   r   r@   r   r&   r1  r   eye)rS  r9   s     r   identityr    sl    53FMMO4E |u%..!8IIa~i8N
 	
 99QeJL99r/   c                     t        | t        j                        st        j                  |       } t        j                  |       S r1   )r(   r&   rq   r  imagr   s    r   r  r    .    a&Q::a=r/   c                     t        |       } t        | j                        }|dv rd}n|dvrt        j                         }t        | |      } t        j                  |       S )N)r   r   r   )r1  rV   )r   r	   r9   r   r@   r   r&   i0r   s     r   r  r    sU    !Aagg&E$$	-	-QA88A;r/   c                 ,   t        |       } t        |      }t        j                  | j                  |j                        }t	        | |      } t	        ||      }dt        |      v rt        j                  | ||||      S t        j                  | |      S Nr   )rtolatol	equal_nan)	r   r   r[   r9   r   r	   r&   iscloserh  r4   r5   r  r  r  r]   s         r   r  r    s~    	2	B	2	B%%bhh9L	b,	B	b,	B#L11}}R$TYOO88Br/   c           	      x   t        |       } t        |      }t        j                  | j                  |j                        }t	        | |      } t	        ||      }dt        |      v r-t        j                  t        j                  | ||||            S t        j                  t        j                  | |            S r  )
r   r   r[   r9   r   r	   r&   r%   r  rh  r  s         r   allcloser    s    	2	B	2	B%%bhh9L	b,	B	b,	B#L11yyMM"bt$)L
 	
 99UXXb"%&&r/   c                 B    t        |       } t        j                  |       S r1   )r   r&   isfiniter   s    r   r  r        !A>>!r/   c                    t        |       } t        |      }t        j                  | j                  |j                        }|dk(  rt	        | d      } t	        |d      }t        | j                        dk(  rt	        | |j                        } t        |j                        dk(  rt	        || j                        }t        j                  | |||      S )NrJ   r<   )assume_uniqueinvert)r   r   r[   r9   r   r	   r&   isin)r4   r5   r  r  r9   s        r   r  r    s    	2	B	2	Brxx2E"g"g"f,"bhh"f,"bhh::b"M&IIr/   c                 B    t        |       } t        j                  |       S r1   )r   r&   isinfr   s    r   r  r  	  r%  r/   c                 B    t        |       } t        j                  |       S r1   )r   r&   isnanr   s    r   r  r    r%  r/   c                 B    t        |       } t        j                  |       S r1   )r   r&   isneginfr   s    r   r  r    r  r/   c                 B    t        |       } t        j                  |       S r1   )r   r&   isposinfr   s    r   r  r    r  r/   c                 B    t        |       } t        j                  |       S r1   )r   r&   isrealr   s    r   r  r    r   r/   c                 Z    t        |       } t        |      }t        j                  | |      S r1   )r   r&   kronr3   s     r   r  r  "  s'    	2	B	2	B::b"r/   c                 Z    t        |       } t        |      }t        j                  | |      S r1   )r   r&   lcmr3   s     r   r  r  (  r6   r/   c                 F   t        |       } t        |      }t        j                  | j                  |j                  t              }t        |j                        t        j                  vrt        d|j                         t        t        j                  | |      |      S )Nz;ldexp exponent must be an integer type. Received: x2 dtype=)r   r   r[   r9   r   r	   	INT_TYPES	TypeErrorr   r&   ldexpr   s      r   r  r  .  s    	2	B	2	Brxx59E"&*:*::""$((-
 	

 B#U++r/   c                 Z    t        |       t        |      }} t        j                  | |      S r1   )r   r&   lessr3   s     r   r  r  <  s'    r"$5b$9B::b"r/   c                 Z    t        |       t        |      }} t        j                  | |      S r1   )r   r&   
less_equalr3   s     r   r  r  A  )    r"$5b$9BB##r/   c                    |dk7  rt        d|       |Ct        | dt        |             t        |dt        |            t        g}t	        j
                  | }t        |      }t        t        j                        }|r|dkD  r)|| z
  |dz
  z  }n|dkD  r|| z
  |z  }|dkD  r||| z
  |z  z
  }t        | d      rt        |d      r}t        | |      } t        ||      }t        j                  ||t                     |dz
  z  }	t        | j                        D ]  }
|	j                  d      }	 | d    |	|| z
  d    z  z   }n"t        j                   | |||t               	      }|d
u r||fS |S )Nr   zBtorch.linspace does not support an `axis` argument. Received axis=r9   r   __len__rk   re  r   )r   endstepsr9   ry   T)r!   rp   r   r   r   r[   r   r   r&   nanhasattrr   r   rx  r   rp  linspace)r   r   r  r  retstepr9   r   rF   r   r  ir  s               r   r  r  F  s    qy!F$
 	
 }E7DK0D'4:.

 ""$565!EUYY'D75LS1W-D75LC'D7D5LC/0Dui WT9%=!%u5 U3SjlCsQwO uzz" 	(AOOB'E	( ;$,)=!==>><
 $$Or/   c                 B    t        |       } t        j                  |       S r1   )r   r&   logr   s    r   r  r  x  r(  r/   c                 B    t        |       } t        j                  |       S r1   )r   r&   r  r   s    r   r  r  }  r%  r/   c                 B    t        |       } t        j                  |       S r1   )r   r&   log1pr   s    r   r  r    r%  r/   c                 B    t        |       } t        j                  |       S r1   )r   r&   log2r   s    r   r  r    r+  r/   c                 |   t        |       } t        |      }t        j                  | j                  |j                  t              }t               dk(  r=|dk(  r8t        | d      } t        |d      }t        t        j                  | |      |      S t        | |      } t        ||      }t        j                  | |      S r   )	r   r   r[   r9   r   r   r   r&   	logaddexpr   s      r   r  r    s    	2	B	2	Brxx59E |u)!3"i "i EOOB+U33"e_"e_r2&&r/   c                     t        |       } t        |      }t        j                  | j                  |j                  t              }t        | |      } t        ||      }t        j                  | |      S r1   )r   r   r[   r9   r   r   r&   
logaddexp2r   s      r   r  r    s[    	2	B	2	Brxx59E	b%B	b%BB##r/   c                 Z    t        |       t        |      }} t        j                  | |      S r1   )r   r&   logical_andr3   s     r   r  r    )    r"$5b$9BR$$r/   c                 B    t        |       } t        j                  |       S r1   )r   r&   logical_notr   s    r   r  r    r   r/   c                 Z    t        |       t        |      }} t        j                  | |      S r1   )r   r&   
logical_orr3   s     r   r  r    r  r/   c                    |dk7  rt        d|       |Ct        | dt        |             t        |dt        |            t        g}t	        j
                  | }t        |      }|du r||| z
  |z  z
  }t        | d      rt        |d      rt        | |      } t        ||      }t        j                  ||t                     |dz
  z  }t        | j                        D ]  }	|j                  d	      } | d    ||| z
  d    z  z   }
||
z  }|S |}t               d
k(  r#|t        j                  k(  rt        j                   }t#        t        j$                  | ||||t                     |      }|S )Nr   zBtorch.logspace does not support an `axis` argument. Received axis=r9   Fr  rk   re  r   r   r+   )r   r  r  r  r9   ry   )r!   rp   r   r   r   r[   r   r  r   r&   r   r   rx  r   rp  rV   rW   r   r  )r   r   r  r  r  r9   r   rF   r  r  r  r  rG   s                r   r  r    s   qy!F$
 	
 }E7DK0D'4:.

 ""$565!E5u+,ui WT9%=!%u5 U3SjlCsQwO uzz" 	(AOOB'E	( ;$,)=!==>" O <5 Uemm%;!MMMNN#!| 

 Or/   c           
      ^   t        | t        t        f      st        |       } t        |t        t        f      st        |      }t	        j
                  t        | dt        |             t        |dt        |                  }t        | |      } t        ||      }t        j                  | |      S Nr9   )
r(   rX   r   r   r   r[   rp   r   r&   rr   r   s      r   rr   rr         b3,'r"b3,'r"GT"X&GT"X&E 
2u	%B	2u	%B==R  r/   c           
      ^   t        | t        t        f      st        |       } t        |t        t        f      st        |      }t	        j
                  t        | dt        |             t        |dt        |                  }t        | |      } t        ||      }t        j                  | |      S r  )
r(   rX   r   r   r   r[   rp   r   r&   fmaxr   s      r   r  r        b3,'r"b3,'r"GT"X&GT"X&E 
2u	%B	2u	%B::b"r/   c                 6    t        |       } t        | d||      S )N      ?qr   rd   )r   quantiler   s      r   medianr     s    !A A4(;;r/   xyindexingc                 j    |D cg c]  }t        |       }}t        j                  ||       S c c}w )Nr  )r   r&   meshgrid)r  r:   	sc_tensors      r   r  r  
  s1    789)	9	%9A9>>!h// 	:r  c                    t        |       } d| j                  v rP|t        d      |r,t        j                  dt        | j                        z  |      S t        j                  |      S |t        j                  |       }nt        | ||      }t        t        |dd       t        j                        r|j                  }|8t        |j                        }t        ||      }t        j                  ||      S |S )Nr   z*Cannot compute the min of an empty tensor.rh   ri   rj   rk   )r   rP   r!   r&   rl   r"   rm   r  r   r(   rp   rq   rj   r   r9   minimumrs   s         r   r  r    s    !AAGG|?IJJ::dS\17;;<<((|1adX6'&(D15<<@v||,#G59}}VW--Mr/   c           
      ^   t        | t        t        f      st        |       } t        |t        t        f      st        |      }t	        j
                  t        | dt        |             t        |dt        |                  }t        | |      } t        ||      }t        j                  | |      S r  )
r(   rX   r   r   r   r[   rp   r   r&   r   r   s      r   r   r   (  r  r/   c           
      ^   t        | t        t        f      st        |       } t        |t        t        f      st        |      }t	        j
                  t        | dt        |             t        |dt        |                  }t        | |      } t        ||      }t        j                  | |      S r  )
r(   rX   r   r   r   r[   rp   r   r&   fminr   s      r   r  r  6  r  r/   c                     t        |       } t        |      }t        j                  | j                  |j                        }|dk(  rt	        | d      } t	        |d      }t        j                  | |      S NrJ   r<   )r   r   r[   r9   r   r&   	remainderr   s      r   modr  D  s`    	2	B	2	Brxx2E"g"g??2r""r/   c                     t        |       } t        |      }t        j                  | j                  |j                        }|dk(  rt	        | d      } t	        |d      }t        j                  | |      S r  )r   r   r[   r9   r   r&   fmodr   s      r   r	  r	  N  s`    	2	B	2	Brxx2E"g"g::b"r/   c                 H    t        |       } t        j                  | ||      S )N)sourcedestination)r   r&   moveaxis)r:   r  r  s      r   r  r  X  s    !A>>!FDDr/   c           	         t        |       } t        j                  |       st        | ||      S t        j                  t        j
                  |       t        d      |       }t        j                  t        j
                  |       j                  ||      t        j                  dt        j                  t                     t        |||            S )Nri   -infr   r   re  )r   r&   is_floating_pointr   wherer  r   r%   rm   r<   r   r:   r   rd   x_cleans       r   	nanargmaxr  ]  s    !A""1%adX66kk%++a.%-;G;;AtX6Ru{{:<@wTH5 r/   c           	         t        |       } t        j                  |       st        | ||      S t        j                  t        j
                  |       t        d      |       }t        j                  t        j
                  |       j                  ||      t        j                  dt        j                  t                     t        |||            S )Nri   infr   r   re  )r   r&   r  r   r  r  r   r%   rm   r<   r   r  s       r   	nanargminr  l  s    !A""1%adX66kk%++a.%,:G;;AtX6Ru{{:<@wTH5 r/   c                 4    t        |       } t        | ||      S )Nr   r9   )
nan_to_numr<  r:  s      r   	nancumsumr  {  s    1A!$e,,r/   c                 8    t        | d      } t        | ||      S )N      ?r  r  )r  r9  r:  s      r   
nancumprodr    s    1#A14u--r/   c           	         t        |       } t        j                  |       st        j                  | ||      S |dk(  s|g k(  r| S t        j                  t        j
                  |       t        d      |       }t        j                  |||      }t        j                  t        j
                  |       j                  ||      t        j                  t        d      | j                  t                     |      S )Nr   ra   r  r  re  )r   r&   r  ro   r  r  r   r%   rm   r9   r   r:   r   rd   r  outs        r   nanmaxr#    s    !A""1%zz!x88rzTRZkk%++a.%-;G
**W$
9C;;AtX6U5\F r/   c                     t        |       } |dk(  s|g k(  r| S t        j                  t        | j                        t
              }t        j                  t        | |      ||      S r   )	r   r   r[   r	   r9   r   r&   nanmeanr   r:   r   rd   r9   s       r   r%  r%    sS    !ArzTRZ095AE==aT8DDr/   c                 N    t        |       } |dk(  s|g k(  r| S t        | d||      S )Nra   r  r  )r   nanquantiler   s      r   	nanmedianr)    s/    !ArzTRZqCdX>>r/   c           	         t        |       } t        j                  |       st        j                  | ||      S |dk(  s|g k(  r| S t        j                  t        j
                  |       t        d      |       }t        j                  |||      }t        j                  t        j
                  |       j                  ||      t        j                  t        d      | j                  t                     |      S )Nr   ra   r  r  re  )r   r&   r  r   r  r  r   r%   rm   r9   r   r!  s        r   nanminr+    s    !A""1%zz!x88rzTRZkk%++a.%,:G
**W$
9C;;AtX6U5\F r/   c                 |    t        |       } t        |t        j                               dz  }t        | ||||      S Nrk   g      Y@)r   methodrd   )r   r   r@   r(  r:   r  r   r.  rd   s        r   nanpercentiler0    s6    !A!6==?3e;Aq!$vIIr/   c           	         t        |       } |dk(  s|g k(  rt        j                  | d      S t        |t        t
        f      rt        |d      }t        j                  |       st        | ||      S t        t        j                  t        j                  |       t        j                  d| j                        |       ||      S )Nra   r   r  Treverseri   rk   )r   r&   r  r(   r>   r#   ro  r  prodr  r  rz   r9   r   s      r   nanprodr5    s    !ArzTRZq))$u&dD)""1%AD844EKKNEJJr$A1E r/   c                 >   t        |       } t        |      }t        |      }t        j                  | j                  d      }t        j                  | j                  t
              }t        | |      } | j                  |j                  k7  rt        || j                        }|t        | dg      }n|D cg c]  }t        || j                         }}t        t        t        | j                              j                  |            }	t        j                  | |	t!        |      z         }
t!        | j"                        }|	D cg c]  }||   	 }}t%        j&                  |D cg c]  }||   	 c}      g}||z   }t        |
|      }t        j(                  ||d|      }|r]|(t        | j                        D ]  }t+        |d      } n3t        |      D ]%  }|j                  dkD  r|dz   n|}t+        ||      }' t        ||      S c c}w c c}w c c}w NrW   r   rw  )r   interpolationr   r   r   )r   r   r   r[   r9   r   r   r   r   r   ro  r?   rx  
differencer&   permuter>   rP   mathr4  r(  rr  )r:   r  r   r.  rd   rG   r]   r   rU  
other_dimsx_permedx_shaper  other_shape	end_shape
full_shape_s                    r   r(  r(    s   !A!AD!D&&qww	:M%%aggu5LQAww!''AGG|At6:;!!QVV,;;Caff.99$?@
==*tDz*ACqww-+56awqz66YYD9q
9:;	 9,
Hj)!QBf=A<166] ,+, D\ +VVaZAEQ*+ <  + <
 79s   5HH'Hc                 H    t        | ||      }t        j                  |      S )Nri   )nanvarr&   sqrt)r:   r   rd   var_vals       r   nanstdrH    s    QTH5G::gr/   c                 *   t        | t        t        f      rt        |       } t	        |       } t        | j                        }|dv rd}|dk(  s|g k(  r!t        t        j                  | d      |      S t        t        j                  | ||      |      S )NrJ   r   r;   r   r<   ra   r   r  r   )r(   r>   r#   rb   r   r	   r9   r   r&   r  nansumr&  s       r   rK  rK    s    !dE]#!H!Aagg&E22rzTRZE$$QA.66QD(;UCCr/   c                    t        |       } t        j                  | j                  t              }t        | |      } |dk(  s|g k(  r=t        j                  t        j                  |       | t        j                  d            S t        | |d      }t        j                  |        }t        j                  || |z
  t        j                  |             }t        j                  |      r4|j                  |j                  z  |j                  |j                  z  z   }n|j                         }|j!                  ||      }|j!                  ||      |z  }|S )Nra   Tri   r   )r   r   r[   r9   r   r   r&   r  r  r}   r%  r   
is_complexrealr  squarer   )	r:   r   rd   r]   rc   validcenteredcountvars	            r   rE  rE    s   !A%%aggu5LQArzTRZ{{5;;q>1ekk"o>>14$/D[[^OE{{5!d(E,<,<Q,?@H!==8==08==8==3PP??$II$I1E
,,4,
2U
:CJr/   c                 J    t        |       } t        j                  | |||      S )N)r  posinfneginf)r   r&   r  )r:   r  rU  rV  s       r   r  r  '  s#    !AA3vfEEr/   c                 0    t        |       } | j                  S r1   )r   r   r   s    r   r   r   ,  s    !A66Mr/   c                 j    t        |       } t        t        j                  |       j                  d      S )Nr<   )r   r   r&   nonzeror/  r   s    r   rY  rY  1  s(    !Aa ""G,,r/   c                 Z    t        |       t        |      }} t        j                  | |      S r1   )r   r&   	not_equalr3   s     r   r[  r[  6  s'    r"$5b$9B??2r""r/   c                 x    t        |       } t        |xs | j                        }t        j                  | |      S r   )r   r   r9   r&   	ones_liker   s     r   r]  r]  ;  s0    !A5+AGG,E??1E**r/   c                     t        |       t        |      }} t        j                  | j                         |j                               S r1   )r   r&   outerr   r3   s     r   r_  r_  A  s3    r"$5b$9B;;rzz|RZZ\22r/   c           	      x   i }||dk7  rt        d|       ||d<   t        |       } g }t        |      d d d   }d}|D ]  }||d   |d   z   z  } |D ]  }||z  }||d   |d   z   z  }|dk(  s n |dk(  rd}|dk(  r-t        j                  j
                  j                  | f||d	|S | j                  }| j                  }	d
}
| j                  dk  r3d}
dgd| j                  z
  z  } | j                  g || j                   } d
}| j                  t        j                  t        j                  fvrd}t        | t        j                        } t        j                  j
                  j                  | ||	      } |rt        | |      } |
r,t        j                  | t        t!        d|	z
                    } | S )NconstantzZArgument `constant_values` can only be provided when `mode == 'constant'`. Received: mode=valuer   r   r   	symmetric	replicate)padmodeF   Tr   )r!   r   r>   r&   nn
functionalre  r9   r   r   rP   rW   r   r   squeezer#   rx  )r:   	pad_widthrf  constant_valuesrD   pad_sumpad_width_sumre  re   ori_ndimneed_squeezenew_dims	need_casts                r   re  re  F  s   F":""&) 
 *w!AGY"%IM )Q#a&() 3Q#a&(A	
 {zxx""&&qKgDKFKK
 IvvHLvvz3!aff*%AFF'H'qww'Iwwu}}emm44 	EMM"wT:AIMM!uQ\':!;<Hr/   c                 |    t        |       } t        |t        j                               dz  }t        | ||||      S r-  )r   r   r@   r  r/  s        r   
percentilert  x  s6    !A!6==?3e;AAqtFXFFr/   c                    t        |       } |5t        j                  | j                        }|dk(  rd}n|dv rd}n|dk(  rd}|}t	               dk(  r|dk(  rd}|*t        t        j                  | t        |            |      S t        |      }|D cg c]  }t        || j                         }}t        |d	
      D ].  }t        t        j                  | ||t        |            |      } 0 | S c c}w )NrJ   r<   )r;   r   r   r+   rV   rW   rk   Tr2  )r   r   r9   )r   r   r[   r9   r   r   r&   r4  r   r   r   r   ro  )r:   r   rd   r9   rG   rU  s         r   r4  r4  ~  s    !A}""177+F?E''EgEM|u)!;!|EJJq}(EFNND!D267Qa(7D7D$' 
JJq(.2O 	

 H 8s   C3c                     t        |       } |!| j                         | j                         z
  S |dk(  rt        j                  |       S t        j
                  | ||      t        j                  | ||      z
  S r   )r   rn   r  r&   r   ro   r   r   s      r   ptprw    sl    !A|uuw  	""zz!x85::4<
 
 	
r/   c                 B   t        |       } t        |      }t        |      }t        j                  | j                  d      }t        j                  | j                  t
              }t        | |      } | j                  |j                  k7  rt        || j                        }|t        | dg      }n|D cg c]  }t        || j                         }}t        t        t        | j                              j                  |            }	|	t        |      z   }
t        j                   | |
      }t        | j"                        }|	D cg c]  }||   	 }}t%        j&                  |D cg c]  }||   	 c}      g}||z   }t        ||      }t        j(                  ||d|      }|r]|(t        | j                        D ]  }t+        |d      } n3t        |      D ]%  }|j                  dkD  r|dz   n|}t+        ||      }' t        ||      S c c}w c c}w c c}w r7  )r   r   r   r[   r9   r   r   r   r   r   ro  r?   rx  r:  r>   r&   r;  rP   r<  r4  r  rr  )r:   r  r   r.  rd   rG   r]   r   rU  r=  permr>  r?  r  r@  rA  rB  rC  s                     r   r  r    s   !A!AD!D&&qww	:M%%aggu5LQAww!''AGG |At 7;;!!QVV,;;Caff.99$?@
DJ&==.qww-+56awqz66YYD9q
9:;	 9,
Hj)q!6:A<166] ,+, D\ +VVaZAEQ*+ <  - < 79s   5HH)Hc                 B    t        |       } t        j                  |       S r1   )r   r&   ravelr   s    r   r{  r{    r%  r/   c                     t        |       } t        j                  | j                        t	        fdt        j                  | |      D              S )Nc              3   6   K   | ]  }t        |        y wr1   r
   )r   idxr9   s     r   r   z unravel_index.<locals>.<genexpr>  s       S%s   )r   r   r[   r9   r#   r&   unravel_index)indicesrP   r9   s     @r   r  r    sH    (Gw}}-E $)$7$7$G  r/   c                     t        | t        j                        st        j                  |       } t        j                  |       S r1   )r(   r&   rq   r  rN  r   s    r   rN  rN    r  r/   c                 B    t        |       } t        j                  |       S r1   )r   r&   
reciprocalr   s    r   r  r    s    !AAr/   c                 .   t        |       } t               dk(  rtt        | j                  t	        | j
                              } t        | ||      }t        j                  |j                  t        |j
                        t                     S t        |t              r||dk  r| j                  |z   }t        | j                        }| j                  |dz         } dg| j                  z  }|||dz   <   | j                  |      } t        |      }||   |z  ||<   | j!                  |      S t        |t        t"        f      r,t%        d |D              r|t        j&                  | ||      S t        |t        	      }t        j&                  | ||      S )
Nmetar9  rw   r   r   r   c              3   <   K   | ]  }t        |t                y wr1   )r(   rX   )r   rs     r   r   zrepeat.<locals>.<genexpr>  s     4q
1c"4s   r   rk   )r   r   r   rP   r	   r9   repeatr&   rc  r   r(   rX   r   r>   rp  expandr   r#   r%   repeat_interleave)r:   repeatsr   outputsrP   expand_shape	new_shapes          r   r  r    sZ   !A|v!2177!;<G$/{{ /<
 	
 '3D$4!866D=DQWWKKq!taff}!(TAXHH\"K	+/	$yy## 	7T5M*4G44&&q't<<s3G""1g488r/   c                 v    t        |t        t        f      s|f}t        |       } t	        j
                  | |      S r1   )r(   r>   r#   r   r&   r   )r:   newshapes     r   r   r     s2    hu.;!A==H%%r/   c                 H    t        |       } t        j                  | ||      S rv  )r   r&   roll)r:   shiftr   s      r   r  r     s    !A::aT**r/   c                     t        |       dk7  rt        d| j                         | j                  d   t        j                  t        j
                        j                  k  }t        j                  | |||      S )Nr   z`searchsorted` only supports 1-D sorted sequences. You can use `keras.ops.vectorized_map` to extend it to N-D sequences. Received: sorted_sequence.shape=r   )side	out_int32)	r   r!   rP   r)   iinfor<   rn   r&   searchsorted)sorted_sequencerj   r  r  s       r   r  r  %  sz    O!% &5%:%:$;=
 	
  %%a(BHHRXX,>,B,BBIdi r/   c                 B    t        |       } t        j                  |       S r1   )r   r&   r  r   s    r   r  r  3  r+  r/   c                 B    t        |       } t        j                  |       S r1   )r   r&   signbitr   s    r   r  r  8  r   r/   c                 B    t        |       } t        j                  |       S r1   )r   r&   sinr   s    r   r  r  =  r(  r/   c                 B    t        |       } t        j                  |       S r1   )r   r&   sincr   s    r   r  r  B  r+  r/   c                 B    t        |       } t        j                  |       S r1   )r   r&   sinhr   s    r   r  r  G  r+  r/   c                 h    t        t        | j                              }t        j                  |      S r1   )r   r#   rP   r&   r4  )r:   r?  s     r   rx   rx   L  s#    agg/G::gr/   c                 <   t        |       } || j                  d      } d}t               dk(  rOt        | j                        dk(  r7t        | d      } t        t        j                  | |      j                  d      S t        j                  | |      j                  S )Nr   r   r=   rJ   r   r   )	r   r   r   r	   r9   r   r&   sortrj   r   s     r   r  r  Q  s    !A|IIbM|v"3AGG"<"FGEJJqd+22F;;::aT")))r/   c                 P   t        |       } | j                  |   }t        |t              sVt        |      }|dd }||dd  z
  }t	        j
                  |t	        j                  |      |gd      }|j                         }nA||z  dk7  r4t        d| d| d| d| j                  |    d	| d
| j                         ||z  }t	        j                  | ||      }|dk(  r9t        |t              r)t        |      D cg c]  }|d   j                          }}t        |      S c c}w )Nr   r   r   r   zReceived indices_or_sections=z0 (interpreted as a number of sections) and axis=z, but input dimension x.shape[z]=z is not divisible by z. Full input shape: x.shape=)rm   split_size_or_sectionsr   )r   rP   r(   rX   r&   concatrT  r  r!   splitrx  r#  r>   )	r:   r  r   r   
start_sizeend_sizechunk_sizesr"  rC  s	            r   r  r  ]  sT   !A
''$-C)3//0CD(1-
,RS11ll$78(C
 "((*$$)/0C/D EBBF H//3fBqwwt}o F'':&; <--.WWI	7  00
++*C
 axJ2C8',-@'AB!s1v||~BB9 Cs   <D#c                 ^    t        |       } t        j                  | ||      }t        |      S r   )r   r&   tensor_splitr>   )r:   r  r   r"  s       r   array_splitr  }  s+    !A


Q 3
>C9r/   c                 j    | D cg c]  }t        |       } }t        j                  | |      S c c}w r   )r   r&   rb   )r:   r   elems      r   rb   rb     s1    -./T	4	 /A/;;qd## 	0r  c                     t        |       } t        | j                        }d|v s|dk(  rt        | d      } t	        j
                  | ||d      S )NrX   rJ   rW   F)r   r   unbiased)r   r	   r9   r   r&   std)r:   r   rd   re   s       r   r  r    sJ    !A!!''*I	Y&0I99QD(UCCr/   c                 H    t        |       } t        j                  | ||      S )N)axis0rP  )r   r&   swapaxes)r:   rP  rQ  s      r   r  r    s    !A>>!566r/   c                    t        |       } t        |      j                         }|| j                  |   n| j                  d   }t        j                  |dk  ||z   |      }| j
                  dk(  r/|dk(  r*t        j                  j                  j                  ||       S |t        j                  | d      } d}|t        || j
                        }| j                  d | |j                  z   | j                  |dz   d  z   }|j                         }t        j                  | ||      j                  |      }|j                  |      S t        j                  | |      S )Nr   r   r   r   )r   index)r  )r   longrP   r&   r  r   rh  ri  	embeddingr   r   r{  index_selectrj  take)r:   r  r   x_dimrP   r"  s         r   r  r    s2   !A(--/G!-AGGDM1771:Ekk!%G
 	vv{tqyxx"",,Wa88|MM!U# qvv..1DD --/  G<DDTJ{{5!!::aw''r/   c                     t        |       } t        |      j                         }|| j                  |   n| j                  d   }t        j                  |dk  ||z   |      }t        j
                  | ||      S )Nr   r   )r   r  rP   r&   r  take_along_dim)r:   r  r   r  s       r   take_along_axisr    sq    !A(--/G!-AGGDM1771:Ekk!%G
 755r/   c                 B    t        |       } t        j                  |       S r1   )r   r&   tanr   s    r   r  r    r(  r/   c                 B    t        |       } t        j                  |       S r1   )r   r&   tanhr   s    r   r  r    r+  r/   c                    t        |       } t        |      }t        j                  | j                  |j                        }t        j                  |t              }t               dk(  r|dk(  rd}t        | |      } t        ||      }t        |t        t        f      r;|\  }}t        |t        t        f      s|f}t        |t        t        f      s|f}||f}t        t        j                  | ||      |      S )Nr+   rV   rW   rw  )r   r   r[   r9   r   r   r   r(   r>   r#   r&   	tensordot)r4   r5   r-   r]   rG   firstseconds          r   r  r    s    	2	B	2	B%%bhh9L&&|U;M|u)!;!	b-	 B	b-	 B$u&v%$/HE&4-0YFvBT2LAAr/   c                     t        |       } t        | j                        }d|v r?t        | t	        j
                               } t        t        j                  | |      |      S t        j                  | |      S )NrX   )decimals)r   r	   r9   r   r   r@   r&   round)r:   r  re   s      r   r  r    s]    !A!!''*I	FMMO$EKKH5yAA;;q8,,r/   c                     t        |      r't        |j                         j                               }t	        |t              r|f}t        |       } t        j                  | |      S rv  )r   r#   rX   r,   r(   r   r&   r  )r:   r  s     r   r  r    sO    ++-.'3*!A::ag&&r/   c                     t        |       } t        | j                        }|dv rd}t        j                  t        j
                  | |||      dt        |            S )N)rJ   r;   r   r   r<   r   r8  )r   r	   r9   r&   r   rF  r   )r:   rK  rP  rQ  r9   s        r   tracer    sV    !Aagg&E2299q&%/U# r/   c                     t        |xs t        j                               }|xs | }t        j                  | |f|t                     }t        j                  ||      S )Nre  rE  )r   r   r@   r&   rz   r   tril)NMr   r9   r:   s        r   trir    sI    53FMMO4E	QA

Aq6z|<A::a!$$r/   c                 F    t        |       } t        j                  | |      S rD  )r   r&   r  rH  s     r   r  r    rI  r/   c                 F    t        |       } t        j                  | |      S rD  )r   r&   triurH  s     r   r  r  
  rI  r/   c                 v    t        |       } t        | j                        dk(  r| S t        j                  |       S rI   )r   r	   r9   r&   truncr   s    r   r  r    s0    !A!V+;;q>r/   c                 N   t        |       } t        |      }t        j                  | j                  |j                        }t        j                  |t              }t               dk(  r|dk(  rd}t        | |      } t        ||      }t        t        j                  | |      |      S r   )	r   r   r[   r9   r   r   r   r&   vdotr   s       r   r  r    s    	2	B	2	B%%bhh9L&&|U;M |u)!;!	b-	 B	b-	 B

2r"L11r/   c                 N   t        |       } t        |      }t        j                  | j                  |j                        }t        j                  |t              }t               dk(  r|dk(  rd}t        | |      } t        ||      }t        t        j                  | |      |      S r   )	r   r   r[   r9   r   r   r   r&   innerr   s       r   r  r  &  s    	2	B	2	B%%bhh9L&&|U;M|u)!;!	b-	 B	b-	 BB#\22r/   c                 f    | D cg c]  }t        |       } }t        j                  |       S c c}w r1   )r   r&   vstackr_  s     r   r  r  4  r`  ra  c                     t        |       } t        |t              st        |      j                         }t	        t        j                  | |            S r1   )r   r(   rX   r  r>   r&   vsplitr  s     r   r  r  9  r  r/   excluded	signaturec                <    t        | t        j                  ||      S )Nr  )r   r&   vmap)pyfuncr  r  s      r   	vectorizer  @  s    

X r/   c                     t        | t              } |/|-t        |      }t        |      }t        j                  | ||      S t        j                  t        j                  |       d      S )Nrk   r   r   )r   rJ   r&   r  rb   )	conditionr4   r5   s      r   r  r  F  sZ    !)48I	~".r"r"{{9b"-- {{5;;y1q99r/   c                     t        | t        t        f      st        |       } t        |t        t        f      st        |      }t	        j
                  | |      S r1   )r(   rX   r   r   r&   divider3   s     r   r  r  Q  sC    b3,'r"b3,'r"<<Br/   c           
      n   t        j                  t        | dt        |             t        |dt        |            t              }t        | |      } t        ||      }t        j                  |dk(  t        j                  |      |      }t        j                  |dk(  dt        j                  | |            S )Nr9   r   )
r   r[   rp   r   r   r   r&   r  r]  r  )r4   r5   r9   safe_x2s       r   divide_no_nanr  Y  s    GT"X&GT"X&E
 
2u	%B	2u	%Bkk"'5??2#6;G;;rQw5<<G#<==r/   c                     t        | |      S r1   )r  r3   s     r   true_divider  e  s    "b>r/   c                 Z    t        |       t        |      }} t        j                  | |      S r1   )r   r&   powr3   s     r   powerr  i  s'    r"$5b$9B99Rr/   c                 B    t        |       } t        j                  |       S r1   )r   r&   negativer   s    r   r  r  n  r  r/   c                 4   t        |       } t        |      }t        j                  | j                  |j                  t              }t        | t        j                        } t        |t        j                        }t        t        j                  | |      |      S r1   )	r   r   r[   r9   r   r   r&   r   	nextafterr   s      r   r  r  s  sj    	2	B	2	Brxx59E	b%--	 B	b%--	 BB'//r/   c                     t        |       } t        | j                        dk(  rt        | d      } t	        j
                  |       S r  )r   r	   r9   r   r&   rO  r   s    r   rO  rO  }  s7    !A!V+G<<?r/   c                     t        |       } t        | j                        dk(  rt        | t	        j
                               } t        j                  |       S r  )r   r	   r9   r   r   r@   r&   rF  r   s    r   rF  rF    s=    !A!W,FMMO$::a=r/   c                 t    t        |       } |t        j                  | |      S t        j                  |       S r   )r   r&   rj  r   s     r   rj  rj    s2    !A}}QD))==r/   c                 b    t        |       } |t        j                  | |      S | j                  S rv  )r   r&   r;  r/  )r:   r-   s     r   	transposer    s,    !A}}QT**33Jr/   c                    t        |       } t        | j                        dk(  rt        | t	        j
                               } |#t        |      }t        j                  | ||      S t        |      }t        j                  | ||      S )NrJ   )r:   r   )dxr   )r   r	   r9   r   r   r@   r&   trapz)r   r:   r   r   s       r   	trapezoidr    sn    !A!V+FMMO$}a {{1t,,r"{{1..r/   c                     t        |       } t        j                  | j                        }t	        t        j                  | ||      |      S )N)r  
increasing)r   r   r[   r9   r   r&   vander)r:   r  r  r]   s       r   r  r    s:    !A%%agg.LQ!
;\JJr/   c                 *   t        |       } t        j                  | j                  d      }t        j                  | j                  t              }|g k(  s|dk(  rt        | |      S t        | |      } t        t        j                  | ||d      |      S )NrW   ra   r   )r   r   
correction)	r   r   r[   r9   r   r   r   r&   rS  )r:   r   rd   rG   r]   s        r   rS  rS    s    !A&&qww	:M%%aggu5LrzTRZ!\**QA		!xA> r/   c                 .   t        | t        t        f      rt        |       } t	        |       } |dk(  s|g k(  r| S t        | j                        }|dv rd}|"t        t        j                  | ||      |      S t        t        j                  |       |      S )Nra   rJ  r<   )r   r   )
r(   r>   r#   rb   r   r	   r9   r   r&   r   r&  s       r   r   r     s    !dE]#!H!ArzTRZagg&E 22EIIadH=uEE		!e$$r/   c           	         t        |xs t        j                               }|| n|}|dn|}|dk(  rut               dk(  rG|t        j
                  k(  r4t        t	        j                  | |t        d      t                     |      S t	        j                  | ||t                     S t        j                  | |      }t	        j                  ||t                     }t	        j                  ||      d | d |f   S )Nr   r+   rW   re  rE  )r   r   r@   r   r&   r1  r   r  r$   rn   rz   rG  )r  r  r   r9   diag_lengthrG  s         r   r  r    s    53FMMO4EYAAYAAAv<5 Uenn%<		qy 9*, 	  yyAU:<@@,,q!$K::kz|DD::dQ'BQB//r/   c           
      B   t        | t        t        f      st        |       } t        |t        t        f      st        |      }t	        j
                  t        | dt        |             t        |dt        |                  }t        t        j                  | |      |      S r  )r(   rX   r   r   r   r[   rp   r   r   r&   floor_divider   s      r   r  r    s~    b3,'r"b3,'r"GT"X&GT"X&E ""2r*E22r/   c                 Z    t        |       t        |      }} t        j                  | |      S r1   )r   r&   logical_xorr3   s     r   r  r    r  r/   c                     t        |       } t        | j                        dk(  rt        | t	        j
                               } n$t        | j                        dk(  rt        | d      } t        j                  |       S )NrJ   r   r   )r   r	   r9   r   r   r@   r&   corrcoefr   s    r   r  r    s[    !A!V+FMMO$	177	#w	.I>>!r/   c           
         t        |       } t        |      }t        j                  t        | dt	        |             t        |dt	        |                  }|dk(  rd}n|dvrd}t        | |      } t        ||      }| j                  d      |j                  d      }}| j                  d d |j                  d d k7  rt        | j                  d d |j                  d d       D cg c]  \  }}t        ||       }}}t        j                  | || j                  d   gz         } t        j                  |||j                  d   gz         }t        j                  | j                  d d       j                         }	t        j                  | t        |	      | j                  d      f      } t        j                  |t        |	      |j                  d      f      }t        j                   j"                  j%                  | |j'                  d      | j                  d      |j                  d      dz
  	      }
| j                  d d d
z   }|
j                  |      }|dk(  rSt)        j                  ||      t)        j*                  ||      z
  dz   }|j                  d      |z
  dz  }|d|||z   f   }|dk(  r#|j                  d      |z
  dz  }|d|||z   f   }t        j,                  |      S c c}}w )Nr9   r   r   )r1  rV   r   rW   r   r   r   )groupspaddingr  rP  r   .same)r   r   r[   rp   r   r   rx   rP   r   rn   r&   r  rm   r4  r   rX   rh  ri  conv1drp  r$   r  rj  )r4   r5   rf  r9   x1_lenx2_lenr  jr  num_signalsoutputoutput_shaperf   target_length	start_idxs                  r   	correlater    s   	2	B	2	BGT"X&GT"X&E 	8	8	b%B	b%BWWQZFF	xx}"%+.rxx}bhhsm+LM41aSAYM	MI"$>?I"$>?,,rxx}-224K	rC,bggbk:	;B	rC,bggbk:	;BXX  ''
BLLOBGGAJa ( F 88CR=5(L^^L)FwLL(8<<+GG!K 	 [[_}4:	Y])BBBCv~[[_v-!3	YV);;;<==  3 Ns   %K1c                 
   | D cg c]  }t        |       } }|D cg c]  }t        |       }}t        |      }t        t        t        | |                  D ]  \  }}t	        j
                  |||      } |S c c}w c c}w r1   )r   reversedr>   r   r&   r  )condlist
choicelistdefaultcr"  vs         r   selectr&  (	  s    .67!!$7H70:;1#A&;J;
G
$Cc(J789 %1kk!Q$%J 8;s
   A;B c                 h    t        |       } t        t        j                  j	                  |             S r1   )r   r#   r&   linalgslogdetr   s    r   r)  r)  1	  s&    !A%%a())r/   c                 p   t        | d      } |t        j                  |       } d}d }n|}t        j                  | |d      } t        j                  |  |dz         d   }d }t        | j                         dz
        D ]  }t        j                  |      }  |t        j                  | t        j                        |      }t        j                  || j                  d   |z
  dz
        d   }t        j                  ||gd      }	|t        |	d      S t        t        j                  |	d|      d      S )Nr<   r   r   r   c                 0    | j                         } d| |<   | S )Nr   )r#  )rU  r  s     r   set_to_zeroz!argpartition.<locals>.set_to_zeroD	  s    GGI!r/   rk   r   )r   r&   r   r  topkrx  r   r  r]  r<   rP   r   r   )
r:   kthr   original_axis
bottom_indr,  rC  proxytop_indr"  s
             r   argpartitionr3  6	  s   !W%A|MM!4$AQBa(+J
 1557Q; .jj-. =zJEjjc 1A 56q9G
))Z)r
2CC!!R.88r/   c                 b    t        j                  | ||      }|j                  |j                  fS )N)rY  rx  )r&   	histogramhist	bin_edges)r:   rY  rx  hist_results       r   r5  r5  X	  s+    //!$e<K[2222r/   c                    t        | t        j                        st        j                  |       } t        j                  | ||xs |||      }|s|s|s|g}nt        |      }|d   }	|d}
nt        || j                        }
|rt|d   }t        j                  |j                  d      |j                  |j                        }|j                  |	j                  |
            j                  d||dd      }|=|	j                  |
   }||kD  rQt        d       g|	j                  z  }t        d|      ||
<   |	t!        |         }	|r|d   ||
      |d<   |r||
      }n||k  r||z
  }ddg|	j                  z  }|	j                  dz
  |
z
  d	z  }|||dz   <   |dn|}t        j"                  j$                  j'                  |	||
      }	|r8t        j"                  j$                  j'                  |d   |||d	z    d
      |d<   |r2t        j"                  j$                  j'                  |||d	z    d
      }|	|d<   |r|r|j)                  d       n|r|d<   t+        |      dk(  r|d   S t!        |      S )N)ro  return_inversereturn_countsr   r   r   re  r  F)reduceinclude_selfr   r   )rb  )r(   r&   rq   	as_tensoruniquer>   r   r   r   rx   r9   ry   	new_emptyscatter_reduce_rP   slicer#   rh  ri  re  insertr"   )r:   ro  return_indexr:  r;  r   rx   r  r  rj   r   inversery  unique_indicesvalues_countr  rT  rk  r~  fills                       r   r?  r?  ]	  s    a&OOA\\	&6,#F m|fAYF|aff-)||LLO7==
 !**6;;s+;<LLwU M 
 ||C($T{mfkk1G D>GCLE'N+F#BZ5r
!/!=D ,&DA,I;;?S(A-C!%IcAg"*1
DXX((,,VYd,KF"XX00442J	#a 8 5 r
 !&!4!4!8!8"IcC!G$<A "9 " F1Ia(	"q	Fq(6!9;eFm;r/   c                     t        |       } t        |t              st        |      j                         }t	        t        j                  | |            S r1   )r   r(   rX   r  r>   r&   dsplitr  s     r   rJ  rJ  	  r  r/   )r   )r   r   )NF)NFNr1   )NNNr  )NN)Nr   F)r   )r   r   r   N)r   r   r   )r   r   )2   TNr   )gh㈵>g:0yE>F)FF)rK  TFNr   )rK  Tr  Nr   )NlinearF)g        NN)ra  N)left)r   )Nr   N)Nr  r   )rP  )r  N)TFFFNNN)r$   r<  r,   r)   r&   keras.src.backendr   r   keras.src.backend.commonr   &keras.src.backend.common.backend_utilsr   r   r   "keras.src.backend.common.variablesr	   keras.src.backend.torch.corer   r   r   r   r   r;   r   r<   r   TORCH_INT_TYPESr'   r2   rA   rK   r\   r_   rc   rn   rz   r}   r   r   r   r   r%   r   r   ro   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.  r2  r9  r<  r?  rB  rG  rL  rF  rT  rZ  r\  r^  rc  rf  ri  rk  rm  rr  rt  ry  r{  r}  r  rl   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  rr   r  r  r  r  r   r  r  r	  r  r  r  r  r  r#  r%  r)  r+  r0  r5  r(  rH  rK  rE  r  r   rY  r[  r]  r_  re  rt  r4  rw  r  r{  r  rN  r  r  r   r  r  r  r  r  r  r  rx   r  r  r  rb   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  rO  rF  rj  r  r  r  rS  r   r  r  r  r  r  r&  r)  r3  r5  r?  rJ  ra   r/   r   <module>rT     s       ) $ + D C A @ - : 3 2 7 
JJ	KK	KK	KK	$N/ "84v" &F4DE,BB55)$





5
LL
H-(,
+
(
# 5
>># 
"#*$+%,
(
	7,$/ #
((


==,C"B"%
'
(
?4$
E
A
$


C
&6!
'

6 	:
'
J"




,
$ IJ/d



' $%
 
$
-`!<  0
2!#E
-
.
$E?$J&$!N
D0F

-
#
+3
/dG<	
(!V

+9\&+






	*@$
D7
(6
6

B,-'
%%
%
2 3
6 #'$ : 	>

0	/K%"0&	3%
,!^*
9D3 		N<b6r/   