
    0;jis>                    L   d Z ddlZddlZddlZddlmZ ddlmZm	Z	 ddl
mZmZmZ ddlmZ ddlmZ ddlmZmZ dd	lmZ dd
lmZ  ed          Zej        Z ej        d          Z ej        d          Zd Z ej                    Z dZ! ej"        ee!          Z# ej$        e ej%        ee!          ee eg          Z& ej'        e&          Z(d Z)d Z*d Z+d Z,d Z-d Z.d Z/d Z0d Z1d Z2d Z3d Z4 eej5                  d             Z6 eej        j5                  d             Z6d Z7 eej                  d             Z8 eej        j                   eej        j9                   eej        j:                   eej        j;                  d                                                  Z< eej        j                   eej        j9                   eej        j:                   eej        j;                  dd!                                                Z= eej>                   eej?                  d"                         Z@ eej        jA                   eej        jB                  d#                         ZC eej        jB                  d$             ZD eej        jB                  d%             ZE eej        jA                  d&             ZF eej        jB                  d'             ZGd( ZHd) ZId* ZJ eejK                  d+             ZLd, ZM eejN                  d-             ZO eejN                  d.             ZPd/ ZQ eejN                  d0             ZR eejS                  d1             ZT eej        jS                  d2             ZU eej        jS                  d3             ZV eej        jS                  d4             ZW eej        jX                  d5             ZY eejX                  d6             ZZ eej        jX                  d7             Z[d8 Z\ eej        jX                  d9             Z] eej^                  d:             Z_ eej^                  d;             Z` eej        j^                  d<             Z` eej        j^                  dd=            Za eejb                  d>             Zc eej        jd                   eej        je                  d?                         Zf eej        je                  d@             ZgdA Zh eej        je                  dB             Zi eej        jd                  dC             Zj eejk                  dD             Zl eej        jm                  dE             ZndF Zo eej        jm                  dG             Zp eejq                  dH             Zr eej        js                  dI             Zt eej        js                  dJ             Zt eej        ju                   eej        js                  dK                         Zt eej        ju                  dL             Zv eej        jw                  dM             Zx eej        jw                  dN             Zy eej        jw                  dO             Zz eej        jw                  dP             Z{ eej|                  dQ             Z}dR Z~ eej                  dS             Z eej        j                  dT             Z eej        j                  dU             Z eej                  dV             Z eej        j                  dW             Z eej        j                  dX             Z eej                  dY             Z eej        j                  dZ             Zd[ Z eej        j                  d\             Z eej        j                  d]             Z eej        j                  d^             Z eej        j                  d_             Z eej        j                  d`             Z eej        j                  da             Z eej        j                  db             Z eej        j                  dc             Z eej        j                  dd             Z eej        j                  de             Z eej        j                  df             Z eej        j                  dg             Z eej        j                  dh             Z eej        j                  di             Z eej        j                  dj             Z eej        j                  dk             Z eej        j                  dl             Zdm Z eej        j                  dn             Z eej        j                  do             Z eej        j                  dp             Z eej        j                  dq             Zdr Zds Z eej        j                  dt             Z eej        j                  du             Z eej        j                  dv             Z eej        j                  dw             Z eej        j                  dx             Z eej        j                  dy             Z eej        j                  dz             Z eej        j                  d{             Z eej        j                  d|             Z eej        j                  d}             Z eej        j                  d~             Z eej        j                  d             Z eej        j                  d             Z eej        j                  d             Z eej        j                  d             Z eej        j                  d             Z eej        j                  d             Z eej        j                  d             Z eej        j                  d             Zd Z eej                  d             Z eej        j                  d             Z eej        j                  d             Z eej        j                  d             Z eej        j                  d             Z eej        j                  dd            Z eej        j                  dd            Z eej        j                  d             Z eej        j                  dd            Zed             Z eej        j                  d             Z eej        j                  dd            Zed             Zed             ZdS )z6
Implement the random and np.random module functions.
    N)ir)is_nonelikeis_empty_tuple)	intrinsicoverloadregister_jitable)Registry	signature)typescgutils)NumbaTypeError)LONG_MAX
randomimpl    @   c                 6    t          j        t          |           S N)r   Constantint32_txs    R/root/voice-cloning/.venv/lib/python3.11/site-packages/numba/cpython/randomimpl.py	const_intr      s    ;w"""    ip  c                    |dv sJ d|z  }t          j        t          d          }t          j        |j        ||          }|j                            d           |j                            d           |                    |d          S )z
    Get a pointer to the given thread-local random state
    (depending on *name*: "py" or "np").
    If the state isn't initialized, it is lazily initialized with
    system entropy.
    )pynpinternalznumba_get_%s_random_state readnonenounwind)	r   FunctionTypernd_state_ptr_tr   get_or_insert_functionmodule
attributesaddcall)contextbuildername	func_namefntyfns         r   get_state_ptrr0   2   s     ++++++d2I??B//D		'i	H	HB Mj!!!Mj!!!<<Br   c                 $    t          | |d          S )z@
    Get a pointer to the thread-local Python random state.
    r   r0   r*   r+   s     r   get_py_state_ptrr4   C        '4000r   c                 $    t          | |d          S )z?
    Get a pointer to the thread-local Numpy random state.
    r   r2   r3   s     r   get_np_state_ptrr7   I   r5   r   c                 $    t          | |d          S )zB
    Get a pointer to the thread-local internal random state.
    r   r2   r3   s     r   get_internal_state_ptrr9   O   s     ':666r   c                 0    t          j        | |dd          S Nr   r   gep_inboundsr+   	state_ptrs     r   get_index_ptrr@   V       Aq999r   c                 0    t          j        | |dd          S Nr      r<   r>   s     r   get_array_ptrrE   Y   rA   r   c                 0    t          j        | |dd          S )Nr      r<   r>   s     r   get_has_gauss_ptrrH   \   rA   r   c                 0    t          j        | |dd          S )Nr      r<   r>   s     r   get_gauss_ptrrK   _   rA   r   c                     t          j        t          j                    t          f          }t	          j        | j        j        |d          }|j        d         	                    d           |S )z<
    Get the internal function to shuffle the MT taste.
    numba_rnd_shuffler   	nocapture)
r   r#   VoidTyper$   r   r%   functionr&   argsadd_attribute)r+   r.   r/   s      r   get_rnd_shufflerS   b   s\     ?2;==?*<==D		'(8(?(;
= 
=BGAJ[)))Ir   c                    t          ||          }|                    |          }|                    d|t                    }t	          j        ||          5  t          |          }|                    ||f           |                    t          d          |           ddd           n# 1 swxY w Y   |                    |          }t          ||          }|                    t	          j        ||d|                    }|                    |t          d                    }|                    ||           |                    ||                    |t          d                              }|                    ||                    |                    |t          d                    t          d                              }|                    ||                    |                    |t          d                    t          d	                              }|                    ||                    |t          d
                              }|S )zB
    Get the next int32 generated by the PRNG at *state_ptr*.
    >=r   NrD         l   VX:    l     _    )r@   loadicmp_unsignedN_constr   if_unlikelyrS   r)   storer   rE   r=   r(   xorlshrand_shl)	r*   r+   r?   idxptridxneed_reshuffler/   	array_ptrys	            r   get_next_int32rh   m   s0    7I..F
,,v

C**4g>>N		Wn	5	5 , ,W%%R)&&&illF+++, , , , , , , , , , , , , , , ,,v

Cgy11IW)'9aEEFFA
++c9Q<<
(
(CMM#vAw||Ay}}5566AAw||GKK9Q<<$@$@$-j$9$9; ; 	< 	<AAw||GKK9R==$A$A$-j$9$9; ; 	< 	<AAw||Ay}}5566AHs   A
B--B14B1c                    |                     t          | ||          t          d                    }|                     t          | ||          t          d                    }|                    |t                    }|                    |t                    }|                    |                    ||                    |t          j	        t          d                              t          j	        t          d                    S )zC
    Get the next double generated by the PRNG at *state_ptr*.
          g      Ag      @C)
r`   rh   r   uitofpdoublefdivfaddfmulr   r   )r*   r+   r?   abs        r   get_next_doublers      s    
 	^GWi@@)A,,OOA^GWi@@)A,,OOA 	q&!!Aq&!!A<<QQFJ(G(GHHII
F.//1 1 1r   c                     t          j        |j        d           fd}t          j        t          j        t
          d                    }                    d|          }                    |          5 \  }}	|5   ||          }
                    	                    |
t
                    |           ddd           n# 1 swxY w Y   |	5  r |
                    |                    }t                     }
s |
                    |                    }                    	                    |
t
                                        	                    |t
                    t          j        t
          d                              }                    ||           ddd           n# 1 swxY w Y   ddd           n# 1 swxY w Y                       |          S )z2
    Get the next integer with width *nbits*.
    r   c                 
                        |           }t                    }| j        j        |j        j        k     r                    ||j                  }n5| j        j        |j        j        k    r                    ||j                  }rY                    t          j        |j        d                    }	                    ||          }
                    ||          S 	                    ||          S r;   )subrh   typewidthzexttruncnot_r   r   r`   ra   )	nbitsshiftrg   maskr+   c32r*   is_numpyr?   s	       r   get_shifted_intz%get_next_int.<locals>.get_shifted_int   s    C''7GY77 :afl**LL//EEZ,,MM%00E 	*<<AFA 6 677D<<e,,D<<4((( <<5)))r   r   <=N)r   r   rw   r   alloca_once_valueint64_tr[   if_elser^   ry   rv   rh   r(   rb   rZ   )r*   r+   r?   r|   r   r   retis_32bifsmalliflargelowhightotalr   s   ``` `        @r   get_next_intr      s    +ej"
%
%C* * * * * * * * *& 
#GR[!-D-D
E
EC""444F		 	  &$6Wg 	; 	;!/%((CMM',,sG44c:::	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	;  	& 	& @&w{{5#'>'>?? '9==C @&w{{5#'>'>??KKS'**GLLw77K446 67 7E MM%%%%	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	&	& & & & & & & & & & & & & & && <<s[   G;CGC	GC	GCG:GG
	
GG
	GG!$G!c                     t          | t          j                  r#t          t	          d                    fd}|S d S )Nr   c                      |           S r   r    )rq   r/   s    r   implzseed_impl.<locals>.impl   s    2a55Lr   )
isinstancer   Integerr   
_seed_impl)rq   r   r/   s     @r   	seed_implr      sT    !U]## j..//	 	 	 	 		 r   c                 X    t          | t          j                  rt          d          S d S Nr   )r   r   r   r   )seeds    r   r   r      s.    $&&  $   r   c                 4     t            fd            fdS )Nc                 Z    fd}t          t          j        t          j                  |fS )Nc                 >   |\  }t          j        t          j                    t          t          f          }t          j        |j        j        |d          }|	                    |t          | |          |f           |                     t          j        d           S )Nnumba_rnd_init)r   r#   rO   r$   r   r   r%   rP   r&   r)   r0   get_constantr   none)r*   r+   sigrQ   
seed_valuer.   r/   
state_types          r   codegenz*_seed_impl.<locals>._impl.<locals>.codegen   s    KJ?2;==?G2LMMD/0@0G0@B BBLLmGWjII(* + + +''
D999r   )r   r   voiduint32)typingcontextr   r   r   s      r   _implz_seed_impl.<locals>._impl   s7    	: 	: 	: 	: 	: U\22G;;r   c                      |           S r   r    )r   r   s    r   <lambda>z_seed_impl.<locals>.<lambda>   s    d r   r   )r   r   s   `@r   r   r      s8    	< 	< 	< 	< Y	< $####r   c                  .     t           d               fdS )Nc                 >    d }t          t          j                  |fS )Nc                 F    t          | |d          }t          | ||          S Nr   r0   rs   r*   r+   r   rQ   r?   s        r   r   z+random_impl.<locals>._impl.<locals>.codegen   %    %gw==I"7GY???r   )r   r   rm   r   r   s     r   r   zrandom_impl.<locals>._impl   s+    	@ 	@ 	@ &&//r   c                                    S r   r    r   s   r   r   zrandom_impl.<locals>.<lambda>       5577 r   r   r   s   @r   random_implr      s*    0 0 Y0
 ???r   c                  .     t           d               fdS )Nc                 >    d }t          t          j                  |fS )Nc                 F    t          | |d          }t          | ||          S r   r   r   s        r   r   z,random_impl0.<locals>._impl.<locals>.codegen   r   r   )r   r   float64r   s     r   r   zrandom_impl0.<locals>._impl   s+    	@ 	@ 	@ ''00r   c                                    S r   r    r   s   r   r   zrandom_impl0.<locals>.<lambda>   r   r   r   r   s   @r   random_impl0r      s,    
 1 1 Y1
 ???r   c                    t          |           rddS t          |           rddS t          | t          j                  s9t          | t          j                  r%t          | j        t          j                  rdd}|S d S d S )Nc                 >    t           j                                        S r   r   randomsizes    r   r   zrandom_impl1.<locals>.<lambda>  s    !1!1!3!3 r   c                 b    t          j        t           j                                                  S r   )r   arrayr   r   s    r   r   zrandom_impl1.<locals>.<lambda>  s    ")*:*:*<*<!=!= r   c                     t          j        |           }|j        }t          |j                  D ]#}t           j                                        ||<   $|S r   )r   emptyflatranger   r   r   outout_flatrd   s       r   r   zrandom_impl1.<locals>._impl
  sK    (4..CxHSX 3 3 "	 0 0 2 2Jr   r   r   r   r   r   r   UniTupledtyper   r   s     r   random_impl1r      s    
 4 43333d >====$&& 	:dEN+K+K 	/9$*:?-0I 0I		 	 	 	 	 	 	 	r   c                     t          | t          j        t          j        f          r;t          |t          j        t          j        f          rt          d             fdS d S d S )Nc                     t          |          }t          |          }t          t          j        ||          t	          d||          fS r   _double_preprocessorr   r   r   _gauss_impl)r   musigmaloc_preprocessorscale_preprocessors        r   r   zgauss_impl.<locals>._impl  sL    3B77!5e!<!<U]B66t%57IJJK Kr   c                      | |          S r   r    r   r   r   s     r   r   zgauss_impl.<locals>.<lambda>  s    r5!1!1 r   r   r   Floatr   r   r   s     @r   
gauss_implr     s     "u{EM233 2
EK/91 91 2		K 	K 
	K
 211112 2 2 2r   c                      d S )Nc                  B    t           j                            dd          S N              ?r   r   normalr    r   r   r   z np_gauss_impl0.<locals>.<lambda>$  s    29##C-- r   r    r    r   r   np_gauss_impl0r   !  s     .--r   c                 X    t          | t          j        t          j        f          rd S d S )Nc                 B    t           j                            | d          S Nr   r   locs    r   r   z np_gauss_impl1.<locals>.<lambda>*  s    29++C55 r   r   r   r   r   r   s    r   np_gauss_impl1r   '  s0    #U]344 65556 6r   c                     t          | t          j        t          j        f          r;t          |t          j        t          j        f          rt          d             fdS d S d S )Nc                     t          |          }t          |          }t          t          j        ||          t	          d||          fS r   r   )r   r   scaler   r   s        r   r   znp_gauss_impl2.<locals>._impl1  sL    3C88!5e!<!<U]C77t%57IJJK Kr   c                      | |          S r   r    r   r   r   s     r   r   z np_gauss_impl2.<locals>.<lambda>7  s    %%U"3"3 r   r   r   s     @r   np_gauss_impl2r   -  s~    #U]344 4EK/:1 :1 4		K 	K 
	K
 433334 4 4 4r   c                    t          |           rd S t          |           rd S t          | t          j                  s9t          | t          j                  r$t          | j        t          j                  rd }|S d S d S )Nc                 >    t           j                                        S r   r   r   standard_normalr   s    r   r   z'standard_normal_impl1.<locals>.<lambda>=      BI5577 r   c                 b    t          j        t           j                                                  S r   )r   r   r   r   r   s    r   r   z'standard_normal_impl1.<locals>.<lambda>@      BHRY%>%>%@%@AA r   c                     t          j        |           }|j        }t          |j                  D ]#}t           j                                        ||<   $|S r   )r   r   r   r   r   r   r   r   s       r   r   z$standard_normal_impl1.<locals>._implD  K    (4..CxHSX < < "	 9 9 ; ;Jr   r   r   s     r   standard_normal_impl1r   :  s    4 8777d BAAA$&& 	:dEN+K+K 	+5dj6;m,E ,E		 	 	 	 	 	 	r   c                    t          | t          j        t          j        f          r8t          |t          j        t          j        f          rt	          |          rd S t          | t          j        t          j        f          r8t          |t          j        t          j        f          rt          |          rd S t          | t          j        t          j        f          r~t          |t          j        t          j        f          rZt          |t          j                  s9t          |t          j                  r(t          |j        t          j                  rd }|S d S d S d S d S )Nc                 B    t           j                            | |          S r   r   r   r   r   s      r   r   z np_gauss_impl3.<locals>.<lambda>R      	(8(8e(D(D r   c                 f    t          j        t           j                            | |                    S r   )r   r   r   r   r   s      r   r   z np_gauss_impl3.<locals>.<lambda>W  "    1A1A#u1M1M(N(N r   c                     t          j        |          }|j        }t          |j                  D ]%}t           j                            | |          ||<   &|S r   )r   r   r   r   r   r   r   r   r   r   r   r   rd   s         r   r   znp_gauss_impl3.<locals>._impl]  O    (4..CxHSX = = "	 0 0e < <Jr   r   r   r   r   r   r   r   r   r   r   r   r   s       r   np_gauss_impl3r  M  ss   3em455 E*EK/;1 ;1 E4E EDD3em455 O*EK/;1 ;1 OdO ONN3em455 *EK/;1 ;1 4'',6tU^,L,L 1;4:;@=1J 1J
	 	 	        r   c                       fd}|S )Nc                      	 d             z  dz
  } d             z  dz
  }| | z  ||z  z   }|dk     r|dk    rn9t          j        dt          j        |          z  |z            }|| z  ||z  fS )zG
        Compute a pair of numbers on the normal distribution.
        T       @r   r          )mathsqrtlog)x1x2r2f_randoms       r   compute_gauss_pairz,_gauss_pair_impl.<locals>.compute_gauss_pairg  s    	wwyy3&Bwwyy3&BBBBCxxB#II	 IdTXb\\)B.//2vq2v~r   r    )r  r  s   ` r   _gauss_pair_implr  f  s$         r   c                       fd}|S )Nc                    |j         }|                     |          }t          j        t          j        j        d         }t	          | |          }t          j        ||d          }t          ||          }	t          ||          }
t          j	        ||
                    |
                    }|                    |          5 \  }}|5  |                    |
                    |	          |           |                    t          d          |
           d d d            n# 1 swxY w Y   |5  |                     |t          |          t!          t#          j        |d                    d          }t          j        ||d          \  }}|                    ||	           |                    ||           |                    t          d          |
           d d d            n# 1 swxY w Y   d d d            n# 1 swxY w Y   |\  }}|                     ||          |                     ||          |
                    |                              S )N)r   r   resultr,   r   rG   r    rD   )return_typeget_data_typer   r   r0   r   alloca_oncerK   rH   is_truerZ   r   r^   r   compile_internalr  r   r   r   unpack_tuplero   rp   )r*   r+   r   rQ   tylltyr  r?   r   	gauss_ptrhas_gauss_ptr	has_gaussthen	otherwisepairfirstsecondr   r   r   r   states                      r   r   z_gauss_impl.<locals>._imply  s   _$$R(()+ ++02 "'7E::	!'4h???!'955	)'9==OGW\\--H-HII	__Y'' 	;+<D) ; ;gll955s;;;illM:::; ; ; ; ; ; ; ; ; ; ; ; ; ; ;  ; ; //0@0I0I09%.Q:O:O0P0P024 4
 !( 4WdA F FveY///fc***illM:::; ; ; ; ; ; ; ; ; ; ; ; ; ; ;	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	;$ 	E||,,Wb99#LL););GU)K)K)0c):):< <= = 	=s\   HAD&H&D*	*H-D*	.H3B.G-!H-G1	1H4G1	5HHHr    )r*  r   r   r   s   ``` r   r   r   x  s0    #= #= #= #= #= #= #=H Lr   c                    t           j                                        t          | t          j                  r| j        rfdS fdS t          | t          j                  r| j        dk    rfdS d S t          d| z            )Nc                 0    |                      |          S r   )sitofpr+   vr   s     r   r   z&_double_preprocessor.<locals>.<lambda>      gnnQ&;&; r   c                 0    |                      |          S r   )rl   r.  s     r   r   z&_double_preprocessor.<locals>.<lambda>  r0  r   r   c                 0    |                      |          S r   )fpextr.  s     r   r   z&_double_preprocessor.<locals>.<lambda>  s    gmmAr&:&: r   c                     |S r   r    )_builderr/  s     r   r   z&_double_preprocessor.<locals>.<lambda>  s    q r   z(Cannot convert {} to floating point type)	r   r   
DoubleTyper   r   signedr   bitwidthr   )valuer   s    @r   r   r     s    					B%'' Q< 	<;;;;;;;;;;	E5;	'	' Q>R:::::(((G%OPPPr   c                 f    t          | t          j                  rt          d             fdS d S )Nc                 @    d }t          t          j        |          |fS )Nc                    |\  }|                     d|t          d                    }|                     d|t          d                    }t          j        ||                    ||                    5  d}| j                            |t          |f           d d d            n# 1 swxY w Y   t          | |d          }t          | |||d          S )NrU   A   ==r   z getrandbits() limited to 64 bitsr   F)
r[   r   r   r]   or_	call_convreturn_user_excOverflowErrorr0   r   )	r*   r+   r   rQ   r|   	too_large	too_smallmsgr?   s	            r   r   z0getrandbits_impl.<locals>._impl.<locals>.codegen  s   #11$y}}MM	#11$y||LL	('++i>G3I 3I J J > ><C%55g}7:f> > >> > > > > > > > > > > > > > >
 *'7DAA	#GWiNNNs   6%B''B+.B+)r   r   uint64)r   kr   s      r   r   zgetrandbits_impl.<locals>._impl  s-    O O O U\1--w66r   c                      |           S r   r    rG  r   s    r   r   z"getrandbits_impl.<locals>.<lambda>  s    q r   )r   r   r   r   rI  s    @r   getrandbits_implrJ    sK    !U]## "		7 	7 
	7 "!!!!!" "r   c                 j    t                     t          j        d          }t          j        d          }	t          j        d          }
                                        ||          |
                                                   d||                    5  	                    	                    
                    |
          |          |	          }                    ||                              |
           d d d            n# 1 swxY w Y                                           d||	                    5                      	                    
                    |
          |          |	          }                    ||                              |
           d d d            n# 1 swxY w Y   
                    |
          t          j                            d|                    5  d} j                            t          |f           d d d            n# 1 swxY w Y   t          j        t          j        j        g          }t          j        j        j        |d	z            }d
k    r                    |	          n}                                        ||t          j        g          t0                                        t          j        t0          j                            t          j        d           fd}d
k    r                                        d|	                    5 \  }}|5                      |           d d d            n# 1 swxY w Y   |5   |             d d d            n# 1 swxY w Y   d d d            n# 1 swxY w Y   n
 |             	                    |                    
                              |                    S )Nr   rD   nr  <>r   zempty range for randrange()zllvm.ctlz.%sr   rc                                          d          }                      d          }                    |                                |            t          
	dk              }                    |          }                    d|          }                    || |                               |                               |           d S )Nwhilez	while.endr   rU   )append_basic_blockbranchposition_at_endr   rz   icmp_signedcbranchr^   )bbwhilebbendrO  rC  r+   r*   rL  r|   rptrr*  r?   r   s       r   get_numz _randrange_impl.<locals>.get_num  s    ,,W55**;77w((('9eUd]KKMM!R  ''a33		7E222&&&ar   r>  )r0   r   r   r   r  r^   rv   if_thenrU  r(   rZ   sdivr]   r@  rA  
ValueErrorr#   true_bitrw   r%   rP   r&   rz   r)   r   rx   r   mul)r*   r+   startstopstepr   r7  r*  zeroonenptrwrE  r.   r/   nm1rZ  is_one
is_not_onerL  r|   rY  r?   s   ``   ` `           @@@@r   _randrange_implrj    sl   gw66I;r1D
+b!

Cw555D MM'++dE**D111	,,S$==	>	>  KKGLL$6$6==sCCLLD!!a	              
 
,,S$<<	=	=  KKGLL$6$6==sCCLLD!!a	               	TA		Wg&9&9$4&H&H	I	I G G+))':vFFFG G G G G G G G G G G G G G G
 ?2G$4$9:;;D		'(8(?(6(;
= 
=B "'$'++a


ACMM',,rC1A+BCCWMMEKKGRX66>>Ew555D            }}__W00q#>>?? 	CWFJ * *dD)))* * * * * * * * * * * * * * *  			              	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 				;;ugkk',,t*<*<dCCDDDs   /A*D%%D),D)A*GGG%III>O"N'O"'N+	+O".N+	/O"4O?O"O	O"O	O""O&)O&c                 @    t          | t          j                  rd S d S )Nc                 .    t          j        d| d          S rC   r   	randranger`  s    r   r   z"randrange_impl_1.<locals>.<lambda>  s    V-a:: r   r   r   r   ro  s    r   randrange_impl_1rq    s)    %'' ;:::; ;r   c                 x    t          | t          j                  rt          |t          j                  rd S d S d S )Nc                 .    t          j        | |d          S NrD   rm  r`  ra  s     r   r   z"randrange_impl_2.<locals>.<lambda>  s    6#3E4#C#C r   rp  ru  s     r   randrange_impl_2rv    sL    %'' DJtU],K,K DCCCD D D Dr   c                 p    |j         | k    r)|j        rt          j        j        nt          j        j        S d S )Nc                     |S r   r    )r5  r/  _tys      r   r   z)_randrange_preprocessor.<locals>.<lambda>  s     r   )r8  r7  r   	IRBuildersextry   )r8  r   s     r   _randrange_preprocessorr|    s;    	{h%'Y '!!\&	( *))r   c                 8  	
 t          | t          j                  rt          |t          j                  rt          |t          j                  rt          | j        |j        |j                  t          | j        |j        |j                  }t          j                            |          t          j        |          t          ||           t          ||          
t          ||          	t          	
fd            fdS d S d S d S )Nc                 >    	
fd}t          |||          |fS )Nc           
          |\  }}} 	||          } ||          } 
||          }t          | ||||d          S r   )rj  )r*   r+   r   rQ   r`  ra  rb  	llvm_typer7  start_preprocessorstep_preprocessorstop_preprocessors          r   r   z0randrange_impl_3.<locals>._impl.<locals>.codegen/  sq    $(!tT**7E9EE(($	BB(($	BB&wd'0&$@ @ @r   r
   )r   r`  ra  rb  r   int_tyr  r7  r  r  r  s        r   r   zrandrange_impl_3.<locals>._impl-  sT    @ @ @ @ @ @ @ @ @ VUD$77@@r   c                      | ||          S r   r    )r`  ra  rb  r   s      r   r   z"randrange_impl_3.<locals>.<lambda>8  s    udD)A)A r   r   r   r   maxr7  r8  from_bitwidthr   IntTyper|  r   )r`  ra  rb  r8  r   r  r  r7  r  r  r  s       @@@@@@@r   randrange_impl_3r     sG   5%-(( BZem-L-L B$&&BU\4;<<u~t}dmDD,,Xv>>Jx((	4XuEE3HdCC3HdCC			A 		A 		A 		A 		A 		A 		A 		A 		A 
		A BAAAA-B B B B B Br   c                 x    t          | t          j                  rt          |t          j                  rd S d S d S )Nc                 4    t          j        | |dz   d          S rt  rm  rq   rr   s     r   r   z randint_impl_1.<locals>.<lambda>>  s    F,QAq99 r   rp  r  s     r   randint_impl_1r  ;  sF    !U]## :
1em(D(D :999: : : :r   c                 @    t          | t          j                  rd S d S )Nc                 B    t           j                            d|           S r;   r   r   randintr   s    r   r   z#np_randint_impl_1.<locals>.<lambda>D  s    29,,Q44 r   rp  r  s    r   np_randint_impl_1r  A  s)    #u}%% 54445 5r   c                    t          | t          j                  rt          |t          j                  rt          | j        |j                  t          | j        |j                  }t          j                            |          t          j        |          t          ||           t          ||          t          fd            fdS d S d S )Nc                 :    fd}t          ||          |fS )Nc           
          |\  }} 	||          } 
||          }t          j        d          }t          | ||||d          S )NrD   r   )r   r   rj  )r*   r+   r   rQ   r`  ra  rb  r  r7  r  r  s          r   r   z1np_randint_impl_2.<locals>._impl.<locals>.codegenT  sk    "t**7E9EE(($	BB{9a00&wd'0&$@ @ @r   r
   )	r   r   r   r   r  r  r7  r  r  s	       r   r   z np_randint_impl_2.<locals>._implR  sL    @ @ @ @ @ @ @ @ VS$//88r   c                      | |          S r   r    r   r   r   s     r   r   z#np_randint_impl_2.<locals>.<lambda>]      sD!1!1 r   r  )	r   r   r8  r   r  r  r7  r  r  s	      @@@@@@r   np_randint_impl_2r  G  s    #u}%% 2*T5=*I*I 2SZ--s|T]33,,Xv>>Jx((	4XsCC3HdCC			9 		9 		9 		9 		9 		9 		9 		9 
		9 21111)2 2 2 2r   c                    t          | t          j                  r,t          |t          j                  rt          |          rd S t          | t          j                  r,t          |t          j                  rt	          |          rd S t          | t          j                  rt          |t          j                  rt          |t          j                  s9t          |t          j                  r\t          |j        t          j                  r?t          | j        |j                  }t          t          d|           fd}|S d S d S d S d S )Nc                 B    t           j                            | |          S r   r  r   r   r   s      r   r   z#np_randint_impl_3.<locals>.<lambda>d      ry'8'8d'C'C r   c                 f    t          j        t           j                            | |                    S r   )r   r   r   r  r  s      r   r   z#np_randint_impl_3.<locals>.<lambda>h  "    rx	0A0A#t0L0L'M'M r   intc                     t          j        |          }|j        }t          |j                  D ]%}t           j                            | |          ||<   &|S N)r   )r   r   r   r   r   r   r  )r   r   r   r   r   rd   result_types         r   r   z np_randint_impl_3.<locals>._implp  sW    (4{333CxHSX = = "	 1 1#t < <Jr   )r   r   r   r   r   r   r   r  r8  getattrr   )r   r   r   r8  r   r  s        @r   np_randint_impl_3r  `  sm   3&& D:dEM+J+J D4DCCC3&& N:dEM+J+J NdN NMM3&& :dEM+J+J 4'',6tU^,L,L0:4:;@=1J 1J s|T]33b"2"2"233	 	 	 	 	        r   c                      d S )Nc                  B    t           j                            dd          S r   r   r   uniformr    r   r   r   z"np_uniform_impl0.<locals>.<lambda>{      29$$S#.. r   r    r    r   r   np_uniform_impl0r  y      ...r   c                     t          | t          j        t          j        f          r;t          |t          j        t          j        f          rt          d             fdS d S d S )Nc                     t          |          }t          |          }t          t          j        ||          t	          d||          fS r   r   r   r   r   uniform_impl)r   rq   rr   low_preprocessorhigh_preprocessors        r   r   zuniform_impl2.<locals>._impl  sN    3A66 4Q 7 7U]Aq11<&(94; 4; ; ;r   c                      | |          S r   r    rq   rr   r   s     r   r   zuniform_impl2.<locals>.<lambda>  s    EE!QKK r   r   r  s     @r   uniform_impl2r  ~  s{    !ek5=122 (zU]+8- 8- (		; 	; 
	;
 (''''( ( ( (r   c                     t          | t          j        t          j        f          r;t          |t          j        t          j        f          rt          d             fdS d S d S )Nc                     t          |          }t          |          }t          t          j        ||          t	          d||          fS r   r  )r   r   r   r  r  s        r   r   znp_uniform_impl2.<locals>._impl  sN    3C88 4T : :U]C66&(99; 9; ; ;r   c                      | |          S r   r    r  s     r   r   z"np_uniform_impl2.<locals>.<lambda>  r  r   r   r  s     @r   np_uniform_impl2r    s{    #U]344 25;.:0 :0 2		; 	; 
	;
 211112 2 2 2r   c                       fd}|S )Nc                    t          | |          }|\  }} 	||          } 
||          }|                    ||          }t          | ||          }|                    ||                    ||                    S r   )r0   fsubrs   ro   rp   )r*   r+   r   rQ   r?   rq   rr   rx   rO  a_preprocessorb_preprocessorr*  s            r   r   zuniform_impl.<locals>.impl  s    !'7E::	1N7A&&N7A&&Q""GWi88||Aw||E155666r   r    )r*  r  r  r   s   ``` r   r  r    s/    7 7 7 7 7 7 7 Kr   c                    t          | t          j        t          j        f          r8t          |t          j        t          j        f          rt	          |          rd S t          | t          j        t          j        f          r8t          |t          j        t          j        f          rt          |          rd S t          | t          j        t          j        f          r~t          |t          j        t          j        f          rZt          |t          j                  s9t          |t          j                  r(t          |j        t          j                  rd }|S d S d S d S d S )Nc                 B    t           j                            | |          S r   r  r  s      r   r   z"np_uniform_impl3.<locals>.<lambda>  r  r   c                 f    t          j        t           j                            | |                    S r   )r   r   r   r  r  s      r   r   z"np_uniform_impl3.<locals>.<lambda>  r  r   c                     t          j        |          }|j        }t          |j                  D ]%}t           j                            | |          ||<   &|S r   )r   r   r   r   r   r   r  )r   r   r   r   r   rd   s         r   r   znp_uniform_impl3.<locals>._impl  sO    (4..CxHSX = = "	 1 1#t < <Jr   r  )r   r   r   r   s       r   np_uniform_impl3r    ss   3em455 D*5;.;0 ;0 D4D DCC3em455 N*5;.;0 ;0 NdN
 NMM3em455 *5;.;0 ;0 4'',6tU^,L,L 1;4:;@=1J 1J
	 	 	        r   c                     d }t          | t          j        t          j        f          r(t          |t          j        t          j        f          r|S d S d S )Nc                     t          j                     }d}||k    r	d|z
  }|| }} | || z
  t          j        ||z            z  z   S )N      ?r   r   r  r  )r   r   ucs       r   r   z triangular_impl_2.<locals>._impl  sO    MOOq55aAcCdSjDIa!e$4$4444r   r   r  s      r   triangular_impl_2r    sf    5 5 5 #U]344 5;.:0 :0    r   c                     t          | t          j        t          j        f          rQt          |t          j        t          j        f          r-t          |t          j        t          j        f          r	d }|S d S d S d S )Nc                     || k    r| S t          j                     }|| z
  || z
  z  }||k    rd|z
  }d|z
  }|| }} | || z
  t          j        ||z            z  z   S r   r  )r   r   moder  r  s        r   r   z triangular_impl_3.<locals>._impl  ss    s{{
As
+A1uu!G!G #T$*	!a%(8(8888r   r   )r   r   r  r   s       r   triangular_impl_3r    s    3em455 *5;.;0 ;0 $em455		9 		9 		9      r   c                     t          | t          j        t          j        f          rQt          |t          j        t          j        f          r-t          |t          j        t          j        f          r	d }|S d S d S d S )Nc                     || k    r| S t           j                                        }|| z
  || z
  z  }||k    rd|z
  }d|z
  }|| }} | || z
  t          j        ||z            z  z   S r   )r   r   r  r  )leftr  rightr  r  s        r   r   z triangular_impl_3.<locals>._impl  s{    }}	  ""A.A1uu!G!G#Te54<49QU+;+;;;;r   r   )r  r  r  r   s       r   r  r    s    4%+u}566 :5;.<0 <0 uu{EM:;;		< 		< 		<      r   c                    t          |          rddS t          |          rddS t          |t          j                  s9t          |t          j                  r%t          |j        t          j                  rdd}|S d S d S )Nc                 D    t           j                            | ||          S r   )r   r   
triangularr  r  r  r   s       r   r   z!triangular_impl.<locals>.<lambda>  s"    BI4H4HIMIN5P 5P r   c                 h    t          j        t           j                            | ||                    S r   )r   r   r   r  r  s       r   r   z!triangular_impl.<locals>.<lambda>  s)    BHI  tU335
 5
 r   c                     t          j        |          }|j        }t          |j                  D ]&}t           j                            | ||          ||<   '|S r   )r   r   r   r   r   r   r  )r  r  r  r   r   r   rd   s          r   r   ztriangular_impl.<locals>._impl  sS    (4..CxHSX H H "	 4 4T4 G GJr   r   r   )r  r  r  r   r   s        r   triangular_implr    s    4 PP P P 	P d 

 
 
 	
 	4'' 	JtU^,L,L 	,6tz7<}-F -F		 	 	 	 	 	 	 	r   c                     t          | t          j        t          j        f          r?t          |t          j        t          j        f          rt	          t
          j                  S d S d S r   )r   r   r   r   _gammavariate_implr   alphabetas     r   gammavariate_implr  
  s`    %%+u}566 1:5;.<0 <0 1!&-0001 1 1 1r   c                 X    t          | t          j        t          j        f          rd S d S )Nc                 B    t           j                            | d          S r   r   r   gammashapes    r   r   z%ol_np_random_gamma1.<locals>.<lambda>  s    RY__UC88 r   r   r  s    r   ol_np_random_gamma1r    s2     %%+u}566 98889 9r   c                    t          | t          j        t          j        f          rXt          |t          j        t          j        f          r4t	          t          t          j        j                            fd}|S d S d S )Nc                      | |          S r   r    )r  r   r/   s     r   r   z!ol_np_random_gamma2.<locals>.impl  s    2eU###r   )r   r   r   r   r   r  r   r   )r  r   r   r/   s      @r   ol_np_random_gamma2r    s    %%+u}566 :EK/<1 <1 01ABBCC	$ 	$ 	$ 	$ 	$   r   c                       fd}|S )Nc                    dt          j        d          z   }| dk    s|dk    rt          d          | dk    rt          j        d| z  dz
            }| t          j        d          z
  }| |z   }	              }d|cxk     rd	k     sn d             z
  }t          j        |d|z
  z            |z  }| t          j        |          z  }	||z  |z  }
|||z  z   |	z
  }||z   d|
z  z
  dk    s|t          j        |
          k    r|	|z  S | dk    r#t          j        d             z
             |z  S 	              }t           j        | z   t           j        z  }||z  }|dk    r	|d| z  z  }	nt          j        ||z
  | z             }	             }|dk    r||	| dz
  z  k    rnn|t          j        |	           k    rn|	|z  S )
z1Gamma distribution.  Taken from CPython.
        r   g      @r   z*gammavariate: alpha and beta must be > 0.0r
  g      @rD   gHz>gP?)r  r  r]  r  expe)r  r  SG_MAGICCONSTainvbbbcccu1u2r/  r   zrO  r  rr   pr  s                  r   r   z!_gammavariate_impl.<locals>._impl#  s"    dhsmm+
 C<<43;;IJJJ3;; 9S5[3.//D$(3--'C$,C
$WYYb++++8++++7799_HRR[))$.$(1++%rE"HAIaK}$s1u,33qDHQKK7G7Gt8O
$ c\\
 HS7799_---44GIIVe^TV+aC88c%i(AA1Q3+...AWYYs77Q53;/// 048QB<<'' t8Or   r    r  r   s   ` r   r  r  "  s$    6 6 6 6 6n Lr   c                    t          |          rd S t          |          rd S t          |t          j                  s9t          |t          j                  r$t          |j        t          j                  rd }|S d S d S )Nc                 B    t           j                            | |          S r   r  r  r   r   s      r   r   zgamma_impl.<locals>.<lambda>`  s    ")//%*G*G r   c                 f    t          j        t           j                            | |                    S r   )r   r   r   r  r  s      r   r   zgamma_impl.<locals>.<lambda>c  s     "(29??5%3P3P*Q*Q r   c                     t          j        |          }|j        }t          |j                  D ]%}t           j                            | |          ||<   &|S r   )r   r   r   r   r   r   r  )r  r   r   r   r   rd   s         r   r   zgamma_impl.<locals>._implg  sM    (4..CxHSX > > "	u = =Jr   r   )r  r   r   r   s       r   
gamma_implr  ]  s    4 HGGGd RQQQ$&& 	:dEN+K+K 	+5dj6;m,E ,E		 	 	 	 	 	 	r   c                    t          |          rd S t          |          rd S t          |t          j                  s9t          |t          j                  r$t          |j        t          j                  rd }|S d S d S )Nc                 @    t           j                            |           S r   r   r   standard_gammar  r   s     r   r   z%standard_gamma_impl.<locals>.<lambda>s  s    29#;#;E#B#B r   c                 d    t          j        t           j                            |                     S r   )r   r   r   r  r  s     r   r   z%standard_gamma_impl.<locals>.<lambda>v  s     28BI,D,DU,K,K#L#L r   c                     t          j        |          }|j        }t          |j                  D ]$}t           j                            |           ||<   %|S r   )r   r   r   r   r   r   r  )r  r   r   r   rd   s        r   r   z"standard_gamma_impl.<locals>._implz  sO    (4..CxHSX @ @ "	 8 8 ? ?Jr   r   )r  r   r   s      r   standard_gamma_implr  p  s    4 CBBBd MLLL4'' 	JtU^,L,L 	0:4:;@=1J 1J		 	 	 	 	 	 	r   c                     t          | t          j        t          j        f          r?t          |t          j        t          j        f          rt	          t
          j                  S d S d S r   )r   r   r   r   _betavariate_implr   gammavariater  s     r   betavariate_implr
    sa    %%+u}566 6:5;.<0 <0 6 !45556 6 6 6r   c                    t          | t          j        t          j        f          rXt          |t          j        t          j        f          r4t	          t          t          j        j                            fd}|S d S d S )Nc                      | |          S r   r    )rq   rr   r/   s     r   r   zol_np_random_beta.<locals>.impl  s    2a88Or   )	r   r   r   r   r   r  r   r   r  )rq   rr   r   r/   s      @r   ol_np_random_betar    s    !ek5=122 zU]+8- 8- 0AABB	 	 	 	 	   r   c                       fd}|S )Nc                 P     | d          }|dk    rdS || |d          z   z  S )z0Beta distribution.  Taken from CPython.
        r   r   r    )r  r  rg   r  s      r   r   z _betavariate_impl.<locals>._impl  s>    
 E%883EE$OO+,,r   r    )r  r   s   ` r   r  r    s#    	- 	- 	- 	- 	- Lr   c                    t          |          rd S t          |          rd S t          |t          j                  s9t          |t          j                  r$t          |j        t          j                  rd }|S d S d S )Nc                 B    t           j                            | |          S r   )r   r   r  rq   rr   r   s      r   r   zbeta_impl.<locals>.<lambda>  s    ")..A"6"6 r   c                 f    t          j        t           j                            | |                    S r   )r   r   r   r  r  s      r   r   zbeta_impl.<locals>.<lambda>  s     "(29>>!Q+?+?"@"@ r   c                     t          j        |          }|j        }t          |j                  D ]%}t           j                            | |          ||<   &|S r   )r   r   r   r   r   r   r  )rq   rr   r   r   r   rd   s         r   r   zbeta_impl.<locals>._impl  sM    (4..CxHSX 5 5 "	q! 4 4Jr   r   )rq   rr   r   r   s       r   	beta_implr    s    4 7666d A A@@4'' 	JtU^,L,L 	0:4:;@=1J 1J		 	 	 	 	 	 	r   c                 D    t          | t          j                  rd }|S d S )Nc                 Z    t          j        dt          j                    z
             | z  S )z;Exponential distribution.  Taken from CPython.
            r   )r  r  r   )lambds    r   r   zexpovariate_impl.<locals>._impl  s'     HS6=??2333e;;r   r   r   r   )r  r   s     r   expovariate_implr    s6    %%% 	< 	< 	<  r   c                 \    t          | t          j        t          j        f          rd }|S d S )Nc                 p    t          j        dt          j                                        z
             | z  S r   r  r  r   r   r   s    r   r   zexponential_impl.<locals>._impl  s-    HS29#3#3#5#55666>>r   r   )r   r   s     r   exponential_implr    s;    %%+u}566 	? 	? 	? r   c                    t          |          rd S t          |          rd S t          |t          j                  s9t          |t          j                  r$t          |j        t          j                  rd }|S d S d S )Nc                 @    t           j                            |           S r   )r   r   exponentialr   r   s     r   r   z"exponential_impl.<locals>.<lambda>  s    29#8#8#?#? r   c                 d    t          j        t           j                            |                     S r   )r   r   r   r"  r#  s     r   r   z"exponential_impl.<locals>.<lambda>  s     28BI,A,A%,H,H#I#I r   c                     t          j        |          }|j        }t          |j                  D ]$}t           j                            |           ||<   %|S r   )r   r   r   r   r   r   r"  r   r   r   r   rd   s        r   r   zexponential_impl.<locals>._impl  sM    (4..CxHSX = = "	 5 5e < <Jr   r   r   r   r   s      r   r  r    s    4 @???d JIII4'' 	JtU^,L,L 	,6tz7<}-F -F		 	 	 	 	 	 	r   c                      d } | S )Nc                  j    t          j        dt          j                                        z
             S r   r  r    r   r   r   zexponential_impl.<locals>._impl  s(    ry//1112222r   r    r   s    r   r  r    s    3 3 3Lr   c                    t          |           rd S t          |           rd S t          | t          j                  s9t          | t          j                  r$t          | j        t          j                  rd }|S d S d S )Nc                 >    t           j                                        S r   )r   r   standard_exponentialr   s    r   r   z+standard_exponential_impl.<locals>.<lambda>  s    BI::<< r   c                 b    t          j        t           j                                                  S r   )r   r   r   r,  r   s    r   r   z+standard_exponential_impl.<locals>.<lambda>  s    BHRY%C%C%E%EFF r   c                     t          j        |           }|j        }t          |j                  D ]#}t           j                                        ||<   $|S r   )r   r   r   r   r   r   r,  r   s       r   r   z(standard_exponential_impl.<locals>._impl  sM    (4..CxHSX A A "	 > > @ @Jr   r   r   s     r   standard_exponential_implr/    s    4 =<<<d GFFF4'' 
4((
-7
8=.G .G
	 	 	 
 
 
 
r   c                      d S )Nc                  B    t           j                            dd          S r   r   r   	lognormalr    r   r   r   z$np_lognormal_impl0.<locals>.<lambda>  s    29&&sC00 r   r    r    r   r   np_lognormal_impl0r4    s    000r   c                 X    t          | t          j        t          j        f          rd S d S )Nc                 B    t           j                            | d          S r   r2  means    r   r   z%np_log_normal_impl1.<locals>.<lambda>  s    BI//c:: r   r   r7  s    r   np_log_normal_impl1r9    s0    $em455 ;:::; ;r   c                    t          | t          j        t          j        f          rVt          |t          j        t          j        f          r2t	          t          t          j        j                            fdS d S d S )Nc                      | |          S r   r    r8  r   r/   s     r   r   z%np_log_normal_impl2.<locals>.<lambda>  s    22dE?? r   )	r   r   r   r   r   _lognormvariate_implr   r   r   r<  s     @r   np_log_normal_impl2r>    s{    $em455 3*EK/;1 ;1 32293CDDEE222223 3 3 3r   c                    t          |          rd S t          |          rd S t          |t          j                  s9t          |t          j                  r$t          |j        t          j                  rd }|S d S d S )Nc                 B    t           j                            | |          S r   r2  r8  r   r   s      r   r   z lognormal_impl.<locals>.<lambda>  s    )<)<T5)I)I r   c                 f    t          j        t           j                            | |                    S r   )r   r   r   r3  rA  s      r   r   z lognormal_impl.<locals>.<lambda>  s"    ")2E2EdE2R2R)S)S r   c                     t          j        |          }|j        }t          |j                  D ]%}t           j                            | |          ||<   &|S r   )r   r   r   r   r   r   r3  )r8  r   r   r   r   rd   s         r   r   zlognormal_impl.<locals>._impl  sQ    (4..CxHSX A A "	 3 3D% @ @Jr   r   )r8  r   r   r   s       r   lognormal_implrD    s    4 JIIId TSSS4'' 	JtU^,L,L 	,6tz7<}-F -F		 	 	 	 	 	 	r   c                     t          | t          j                  rEt          |t          j                  r-t          t	          t
          j                            fdS d S d S )Nc                      | |          S r   r    r   r   r/   s     r   r   z%lognormvariate_impl.<locals>.<lambda>'  s    B r   )r   r   r   r   r=  r   gaussrG  s     @r   lognormvariate_implrI  #  se    "ek"" /z%'E'E /26<@@AA...../ / / /r   c                       fdS )Nc                 @    t          j         | |                    S r   )r  r  )r   r   _gausss     r   r   z&_lognormvariate_impl.<locals>.<lambda>+  s    TXffR&7&788 r   r    )rL  s   `r   r=  r=  *  s    88888r   c                 D    t          | t          j                  rd }|S d S )Nc                 D    dt          j                     z
  }d|d| z  z  z  S )z)Pareto distribution.  Taken from CPython.r   )r   )r  r  s     r   r   z!paretovariate_impl.<locals>._impl1  s(     fmoo%As5y)))r   r  )r  r   s     r   paretovariate_implrO  .  s6    %%% 	* 	* 	*  r   c                 D    t          | t          j                  rd }|S d S )Nc                 `    dt           j                                        z
  }d|d| z  z  z  dz
  S )Nr   rD   r   rq   r  s     r   r   zpareto_impl.<locals>._impl=  s2    bi&&(((As1u%))r   r  rq   r   s     r   pareto_implrT  :  s6    !U[!! 	* 	* 	*
  r   c                    t          |          rd S t          |          rd S t          |t          j                  s9t          |t          j                  r$t          |j        t          j                  rd }|S d S d S )Nc                 @    t           j                            |           S r   )r   r   paretorq   r   s     r   r   zpareto_impl.<locals>.<lambda>H  s    ry//22 r   c                 d    t          j        t           j                            |                     S r   )r   r   r   rW  rX  s     r   r   zpareto_impl.<locals>.<lambda>K  s     rx	(8(8(;(;<< r   c                     t          j        |          }|j        }t          |j                  D ]$}t           j                            |           ||<   %|S r   )r   r   r   r   r   r   rW  rq   r   r   r   rd   s        r   r   zpareto_impl.<locals>._implO  sM    (4..CxHSX 4 4 "	 0 0 3 3Jr   r   rq   r   r   s      r   rT  rT  E  s    4 3222d =<<<4'' 	JtU^,L,L 	,6tz7<}-F -F		 	 	 	 	 	 	r   c                     t          | t          j        t          j        f          r+t          |t          j        t          j        f          rd }|S d S d S )Nc                 j    dt          j                     z
  }| t          j        |           d|z  z  z  S )z*Weibull distribution.  Taken from CPython.r   )r   r  r  )r  r  r  s      r   r   z"weibullvariate_impl.<locals>._impl\  s2     fmoo%ATXa[[Lc$h777r   r   )r  r  r   s      r   weibullvariate_implr_  X  sf    %%+u}566 :5;.<0 <0 	8 	8 	8    r   c                 \    t          | t          j        t          j        f          rd }|S d S )Nc                 z    dt           j                                        z
  }t          j        |           d| z  z  S r   r   r   r  r  rR  s     r   r   zweibull_impl.<locals>._implh  s3    bi&&(((AXa[[Lc!e,,r   r   rS  s     r   weibull_implrc  e  s=    !ek5=122 	- 	- 	-
  r   c                    t          |          rd S t          |          rd S t          |t          j                  s9t          |t          j                  r$t          |j        t          j                  rd }|S d S d S )Nc                 @    t           j                            |           S r   )r   r   weibullrX  s     r   r   zweibull_impl2.<locals>.<lambda>s  s    ry0033 r   c                 d    t          j        t           j                            |                     S r   )r   r   r   rf  rX  s     r   r   zweibull_impl2.<locals>.<lambda>v  s     rx	(9(9!(<(<== r   c                     t          j        |          }|j        }t          |j                  D ]$}t           j                            |           ||<   %|S r   )r   r   r   r   r   r   rf  r[  s        r   r   zweibull_impl2.<locals>._implz  sM    (4..CxHSX 5 5 "	 1 1! 4 4Jr   r   r\  s      r   weibull_impl2ri  p  s    4 4333d >===4'' 	JtU^,L,L 	,6tz7<}-F -F		 	 	 	 	 	 	r   c                     t          | t          j                  r3t          |t          j                  rt          t          j                  S d S d S r   )r   r   r   _vonmisesvariate_implr   r   kappas     r   vonmisesvariate_implrn    sM    "ek"" 4z%'E'E 4$V]3334 4 4 4r   c                     t          | t          j                  r8t          |t          j                  r t          t          j        j                  S d S d S r   )r   r   r   rk  r   r   rl  s     r   rn  rn    sP    "ek"" 7z%'E'E 7$RY%56667 7 7 7r   c                       fd}|S )Nc                 D   |dk    rdt           j        z               z  S d|z  }|t          j        d||z  z             z   }	              }t          j        t           j        |z            }|||z   z  }             }|d||z  z
  k     s|d|z
  t          j        |          z  k    rnid|z  }||z   d||z  z   z  }	             }
|
dk    r(| t          j        |	          z   dt           j        z  z  }n'| t          j        |	          z
  dt           j        z  z  }|S )zCircular data distribution.  Taken from CPython.
        Note the algorithm in Python 2.6 and Numpy is different:
        http://bugs.python.org/issue17141
        gư>r
  r  r   )r  pir  cosr  acos)r   rm  srO  r  r  dr  qr  u3thetar  s               r   r   z$_vonmisesvariate_impl.<locals>._impl  s3    D===7799,,%K	#A+&&&	B2&&AQUABC!a%K2#'TXa[[)@#@#@	 !GUsQU{#WYY88$)A,,&3=9EE$)A,,&3=9Er   r    r  s   ` r   rk  rk    s$    & & & & &P Lr   c                    t          |          rd S t          |          rd S t          |t          j                  s9t          |t          j                  r$t          |j        t          j                  rd }|S d S d S )Nc                 B    t           j                            | |          S r   )r   r   vonmisesr   rm  r   s      r   r   zvonmises_impl.<locals>.<lambda>  s    ry'9'9"e'D'D r   c                 f    t          j        t           j                            | |                    S r   )r   r   r   r|  r}  s      r   r   zvonmises_impl.<locals>.<lambda>  s"    rx	0B0B2u0M0M'N'N r   c                     t          j        |          }|j        }t          |j                  D ]%}t           j                            | |          ||<   &|S r   )r   r   r   r   r   r   r|  )r   rm  r   r   r   rd   s         r   r   zvonmises_impl.<locals>._impl  sO    (4..CxHSX > > "	 2 22u = =Jr   r   )r   rm  r   r   s       r   vonmises_implr        4 EDDDd ONNN4'' 	JtU^,L,L 	0:4:;@=1J 1J		 	 	 	 	 	 	r   c                     t          | t          j                  r+t          |t          j        t          j        f          rd }|S d S d S )Nc           	      N   | dk     rt          d          d|cxk    rdk    sn t          d          |dk    rdS |dk    r| S |dk    }|rd|z
  }d|z
  }d}|| z  }|dk    r|d	z  }| d	z  } || z  }| dk    sJ |dk    | |z  }t          | |d
t          j        ||z  dz             z  z             }d}|dk    rjd}	t          j                                        }
|}|	|k    r<|
|k    r||r| |	z
  n|	z  }|dz  }n$|
|z  }
|	dz  }	| |	z
  dz   |z  |z  |	|z  z  }|	|k    <|dk    j|S )z
            Binomial distribution.  Numpy's variant of the BINV algorithm
            is used.
            (Numpy uses BTPE for n*p >= 30, though)
            r   zbinomial(): n <= 0r   r   zbinomial(): p outside of [0, 1]r  rD   gx0 rG         $@)r]  minr  r  r   r   )rL  r  flippedrw  nitersqnnp_prodboundr   XUpxs               r   r   zbinomial_impl.<locals>._impl  s    1uu !56661OOOOOOOO !BCCCCxxqCxx#gG !GaAFaB,, 1a!V1uuuu ,, !eG7TDIgkAo,F,F%FFGGEE1**I$$&&5jjBww'!8Qq8!GAFAq519/B.1q59B 5jj	 1** Lr   )r   r   r   r   rL  r  r   s      r   binomial_implr    sa    !U]## 3
U]+)- )- 3/	 /	 /	b g3 3 3 3r   c                    t          |          rd S t          |          rd S t          |t          j                  s9t          |t          j                  r$t          |j        t          j                  rd }|S d S d S )Nc                 B    t           j                            | |          S r   )r   r   binomialrL  r  r   s      r   r   zbinomial_impl.<locals>.<lambda>	  s    ")"4"4Q":": r   c                 f    t          j        t           j                            | |                    S r   )r   r   r   r  r  s      r   r   zbinomial_impl.<locals>.<lambda>  s"    "(29+=+=a+C+C"D"D r   c                     t          j        |t           j                  }|j        }t	          |j                  D ]%}t           j                            | |          ||<   &|S r  )r   r   intpr   r   r   r   r  )rL  r  r   r   r   rd   s         r   r   zbinomial_impl.<locals>._impl  sX    (4rw///CxHSX 9 9 "	 2 21a 8 8Jr   r   )rL  r  r   r   s       r   r  r    s    4 ;:::d E EDD4'' 	JtU^,L,L 	,6tz7<}-F -F		 	 	 	 	 	 	r   c                 \    t          | t          j        t          j        f          rd }|S d S )Nc                 L    dt           j                            | dz            z  S Nr
  r  )dfs    r   r   zchisquare_impl.<locals>._impl  s!    11"s(;;;;r   r   r  r   s     r   chisquare_implr    s=    "u{EM233 	< 	< 	< 	 r   c                    t          |          rd S t          |          rd S t          |t          j                  s9t          |t          j                  r$t          |j        t          j                  rd }|S d S d S )Nc                 @    t           j                            |           S r   r   r   	chisquarer  r   s     r   r   z!chisquare_impl2.<locals>.<lambda>&  s    	 3 3B 7 7 r   c                 d    t          j        t           j                            |                     S r   )r   r   r   r  r  s     r   r   z!chisquare_impl2.<locals>.<lambda>(  s     )<)<R)@)@ A A r   c                     t          j        |          }|j        }t          |j                  D ]$}t           j                            |           ||<   %|S r   )r   r   r   r   r   r   r  r  r   r   r   rd   s        r   r   zchisquare_impl2.<locals>._impl,  sM    (4..CxHSX 8 8 "	 3 3B 7 7Jr   r   r  r   r   s      r   chisquare_impl2r  #  s    4 8777d BAAA4'' 	JtU^,L,L 	,6tz7<}-F -F		 	 	 	 	 	 	r   c                     t          | t          j        t          j        f          r+t          |t          j        t          j        f          rd }|S d S d S )Nc                     t           j                            |           |z  t           j                            |          | z  z  S r   r  )dfnumdfdens     r   r   zf_impl.<locals>._impl9  s<    Y((//%7Y((//%79 :r   r   )r  r  r   s      r   f_implr  5  sf    %%+u}566 :EK/<1 <1 	: 	: 	:    r   c                 2   t          | t          j        t          j        f          r8t          |t          j        t          j        f          rt	          |          rd S t          | t          j        t          j        f          r8t          |t          j        t          j        f          rt          |          rd S t          |t          j                  s9t          |t          j                  r$t          |j        t          j                  rd }|S d S d S )Nc                 B    t           j                            | |          S r   )r   r   r  r  r  r   s      r   r   zf_impl.<locals>.<lambda>E  s    ")++eU*C*C r   c                 f    t          j        t           j                            | |                    S r   )r   r   r   r  r  s      r   r   zf_impl.<locals>.<lambda>J  s     "(29;;ue3L3L*M*M r   c                     t          j        |          }|j        }t          |j                  D ]%}t           j                            | |          ||<   &|S r   )r   r   r   r   r   r   r  )r  r  r   r   r   rd   s         r   r   zf_impl.<locals>._implN  sM    (4..CxHSX : : "	E5 9 9Jr   r  )r  r  r   r   s       r   r  r  @  s"   55;677 DJEK/=1 =1 D4D DCC55;677 NJEK/=1 =1 NdN NMM4'' 	JtU^,L,L 	0:4:;@=1J 1J		 	 	 	 	 	 	r   c                 \    t          | t          j        t          j        f          rd }|S d S )Nc                    | dk    s| dk    rt          d          d| z
  }| dk    rNt          d          }| x}}t          j                                        }||k    r||z  }||z  }|dz  }||k    |S t	          j        t	          j        dt          j                                        z
            t	          j        |          z            S )Nr   r   z geometric(): p outside of (0, 1]gUUUUUU?rD   )r]  r  r   r   r  ceilr  )r  rw  r  sumprodr  s         r   r   zgeometric_impl.<locals>._implZ  s    Cxx1s77 !CDDDaA...FFdI$$&&#ggAID4KCFA #gg y#	0@0@0B0B*B!C!C!%!"- . . .r   r   )r  r   s     r   geometric_implr  W  s=    !ek5=122 	. 	. 	.$ ' r   c                    t          |          rd S t          |          rd S t          |t          j                  s9t          |t          j                  r$t          |j        t          j                  rd }|S d S d S )Nc                 @    t           j                            |           S r   )r   r   	geometricr  r   s     r   r   z geometric_impl.<locals>.<lambda>r      ry22155 r   c                 d    t          j        t           j                            |                     S r   )r   r   r   r  r  s     r   r   z geometric_impl.<locals>.<lambda>u       rx	(;(;A(>(>?? r   c                     t          j        |t           j                  }|j        }t	          |j                  D ]$}t           j                            |           ||<   %|S r  )r   r   int64r   r   r   r   r  r  r   r   r   rd   s        r   r   zgeometric_impl.<locals>._imply  V    (4rx000CxHSX 7 7 "	 3 3A 6 6Jr   r   r  r   r   s      r   r  r  o  s    4 6555d @???4'' 	JtU^,L,L 	,6tz7<}-F -F		 	 	 	 	 	 	r   c                     t          | t          j        t          j        f          r+t          |t          j        t          j        f          rd }|S d S d S )Nc                     dt           j                                        z
  }| |t          j        t          j        |                     z  z
  S r   rb  r   r   r  s      r   r   zgumbel_impl.<locals>._impl  s>    bi&&(((A48A;;,!7!7777r   r   r   s      r   gumbel_implr    sf    #U]344 EK/:1 :1 	8 	8 	8    r   c                    t          |          rd S t          |          rd S t          |t          j                  s9t          |t          j                  r$t          |j        t          j                  rd }|S d S d S )Nc                 B    t           j                            | |          S r   )r   r   gumbelr   s      r   r   zgumbel_impl3.<locals>.<lambda>  r   r   c                 f    t          j        t           j                            | |                    S r   )r   r   r   r  r   s      r   r   zgumbel_impl3.<locals>.<lambda>  r  r   c                     t          j        |          }|j        }t          |j                  D ]%}t           j                            | |          ||<   &|S r   )r   r   r   r   r   r   r  r  s         r   r   zgumbel_impl3.<locals>._impl  r  r   r   r  s       r   gumbel_impl3r    r  r   c                     t          | t          j        t          j        f          rQt          |t          j        t          j        f          r-t          |t          j        t          j        f          r	d }|S d S d S d S )Nc                    t          |          t          |           z   t          |          z
  }t          t          ||                     }|}t          |          }|dk    rS|dk    rM|t          j        t
          j                                        |||z   z  z             z  }|dz  }|dk    r|dk    Mt          ||z
            }| |k    rt          |          |z
  S |S )z'Numpy's algorithm for hypergeometric().r   r   rD   )r  floatr  r  floorr   r   )ngoodnbadnsampled1d2YKZs           r   r   z"hypergeometric_impl.<locals>._impl  s    TSZZ'#g,,6Bs4''((BAGAc''a!eeTZ	 0 0 2 2Q"q&\ ABBBQ c''a!ee BFAt||7||a''r   r   )r  r  r  r   s       r   hypergeometric_implr    s    55;677 J5;.=0 =0 gU];<<	 	 	  '     r   c                    t          |          rd S t          |          rd S t          |t          j                  s9t          |t          j                  r$t          |j        t          j                  rd }|S d S d S )Nc                 D    t           j                            | ||          S r   )r   r   hypergeometricr  r  r  r   s       r   r   z%hypergeometric_impl.<locals>.<lambda>  s    I$$UD':: r   c                 h    t          j        t           j                            | ||                    S r   )r   r   r   r  r  s       r   r   z%hypergeometric_impl.<locals>.<lambda>  s(    HRY--eT7CCDD r   c                     t          j        |t           j                  }|j        }t	          |j                  D ]&}t           j                            | ||          ||<   '|S r  )r   r   r  r   r   r   r   r  )r  r  r  r   r   r   rd   s          r   r   z"hypergeometric_impl.<locals>._impl  s\    (4rw///CxHSX O O "	 8 8g N NJr   r   )r  r  r  r   r   s        r   r  r    s    4 ;; ; 	;d EE E 	E4'' 	JtU^,L,L 	0:4:;@=1J 1J		 	 	 	 	 	 	r   c                      d S )Nc                  B    t           j                            dd          S r   r   r   laplacer    r   r   r   zlaplace_impl0.<locals>.<lambda>  r  r   r    r    r   r   laplace_impl0r    r  r   c                 X    t          | t          j        t          j        f          rd S d S )Nc                 B    t           j                            | d          S r   r  r   s    r   r   zlaplace_impl1.<locals>.<lambda>  s    29,,S#66 r   r   r   s    r   laplace_impl1r    s0    #U]344 76667 7r   c                     t          | t          j        t          j        f          r-t          |t          j        t          j        f          r	t          S d S d S r   )r   r   r   r   laplace_implr   r   s     r   laplace_impl2r    sV    #U]344 EK/:1 :1    r   c                    t          |          rd S t          |          rd S t          |t          j                  s9t          |t          j                  r$t          |j        t          j                  rd }|S d S d S )Nc                 B    t           j                            | |          S r   r  r   s      r   r   zlaplace_impl3.<locals>.<lambda>  s    	(9(9#u(E(E r   c                 f    t          j        t           j                            | |                    S r   )r   r   r   r  r   s      r   r   zlaplace_impl3.<locals>.<lambda>  s"    1B1B31N1N(O(O r   c                     t          j        |          }|j        }t          |j                  D ]%}t           j                            | |          ||<   &|S r   )r   r   r   r   r   r   r  r  s         r   r   zlaplace_impl3.<locals>._impl  sO    (4..CxHSX > > "	 1 1#u = =Jr   r   r  s       r   laplace_impl3r    s    4 FEEEd POOO$&& 	:dEN+K+K 	+5dj6;m,E ,E		 	 	 	 	 	 	r   c                     t           j                                        }|dk     r| |t          j        ||z             z  z   S | |t          j        d|z
  |z
            z  z
  S )Nr  r
  rb  r  s      r   r  r    s\    
	A3wwUTXa!e__,,,UTXcAgk22222r   c                      d S )Nc                  B    t           j                            dd          S r   r   r   logisticr    r   r   r   z logistic_impl0.<locals>.<lambda>  s    29%%c3// r   r    r    r   r   logistic_impl0r    s    ///r   c                 X    t          | t          j        t          j        f          rd S d S )Nc                 B    t           j                            | d          S r   r  r   s    r   r   z logistic_impl1.<locals>.<lambda>  s    29--c377 r   r   r   s    r   logistic_impl1r    s0    #U]344 87778 8r   c                     t          | t          j        t          j        f          r-t          |t          j        t          j        f          r	t          S d S d S r   )r   r   r   r   logistic_implr  s     r   logistic_impl2r    sV    #U]344 EK/:1 :1    r   c                    t          |          rd S t          |          rd S t          |t          j                  s9t          |t          j                  r$t          |j        t          j                  rd }|S d S d S )Nc                 B    t           j                            | |          S r   r  r   s      r   r   z logistic_impl3.<locals>.<lambda>  s    	(:(:3(F(F r   c                 f    t          j        t           j                            | |                    S r   )r   r   r   r  r   s      r   r   z logistic_impl3.<locals>.<lambda>  s"    1C1CC1O1O(P(P r   c                     t          j        |          }|j        }t          |j                  D ]%}t           j                            | |          ||<   &|S r   )r   r   r   r   r   r   r  r  s         r   r   zlogistic_impl3.<locals>._impl  sO    (4..CxHSX ? ? "	 2 23 > >Jr   r   r  s       r   logistic_impl3r    s    4 GFFFd QPPP4'' 	JtU^,L,L 	0:4:;@=1J 1J		 	 	 	 	 	 	r   c                 ~    t           j                                        }| |t          j        |d|z
  z            z  z   S r   rb  r  s      r   r  r    s7    
	A!sQw-00000r   c                    | dk    s| dk    rt          d          t          j        d| z
            }	 t          j                                        }|| k    rdS t          j                                        }dt          j        ||z            z
  }|||z  k    r>t          j        dt          j        |          t          j        |          z  z             S ||k    rdS dS )z"Numpy's algorithm for logseries().r   r   z logseries(): p outside of (0, 1]rD   rG   )r]  r  r  r   r   r  r  )r  rO  Vr  rw  s        r   _logseries_implr  $  s    Cxx1s77;<<<qAI661I$(1q5//!A::8C$(1++";;<<<!VV11r   c                 `    t          | t          j        t          j        f          rt          S d S r   )r   r   r   r   r  )r  s    r   logseries_implr  9  s-    !ek5=122  r   c                    t          |          rd S t          |          rd S t          |t          j                  s9t          |t          j                  r$t          |j        t          j                  rd }|S d S d S )Nc                 @    t           j                            |           S r   )r   r   	logseriesr  s     r   r   z logseries_impl.<locals>.<lambda>B  r  r   c                 d    t          j        t           j                            |                     S r   )r   r   r   r
  r  s     r   r   z logseries_impl.<locals>.<lambda>D  r  r   c                     t          j        |t           j                  }|j        }t	          |j                  D ]$}t           j                            |           ||<   %|S r  )r   r   r  r   r   r   r   r
  r  s        r   r   zlogseries_impl.<locals>._implH  r  r   r   r  s      r   r  r  ?  s    4 6555d @???$&& 	:dEN+K+K 	+5dj6;m,E ,E		 	 	 	 	 	 	r   c                     t          | t          j        t          j        f          r+t          |t          j        t          j        f          rd }|S d S d S )Nc                     | dk    rt          d          |dk     s|dk    rt          d          t          j                            | d|z
  |z            }t          j                            |          S )Nr   znegative_binomial(): n <= 0r   r   z(negative_binomial(): p outside of [0, 1])r]  r   r   r  poisson)rL  r  r  s      r   r   z%negative_binomial_impl.<locals>._implU  sm    Avv !>???3ww!c'' !KLLL	C!Gq=11A9$$Q'''r   r   r  s      r   negative_binomial_implr  Q  sf    !ek5=122 
zu{EM*8, 8, 
	( 	( 	( 
 
 
 
r   c                      d S )Nc                  @    t           j                            d          S r   r   r   r  r    r   r   r   zpoisson_impl0.<locals>.<lambda>b  s    29$$S)) r   r    r    r   r   poisson_impl0r  `  s    )))r   c                 ~    t          | t          j        t          j        f          rt          d             fdS d S )Nc                 d    t          |          fd}t          t          j        |          |fS )Nc                    t          | |          }t          j        |t          d          }|                    d          }|                    d          }|\  } ||          }|                    d|t          j        t          d                    }	|	                    |	          5  t          j
        t          t          t          f          }
t          j        |j        j        |
d          }|                    |||f          }|                    ||           |                    |           d d d            n# 1 swxY w Y   |                    |           |                    |           t&          j        j        t*          j        fd}|                     ||||          }|                    ||           |                    |           |                    |           |                    |          S )	Nr   r  bbcontrX  rU   r  numba_poisson_ptrsc                     | dk     rt          d          | dk    rdS  |            }d}d}	              }||z  }||k    r|S |dz  })ag  Numpy's algorithm for poisson() on small *lam*.

                    This method is invoked only if the parameter lambda of the
                    distribution is small ( < 10 ). The algorithm used is
                    described in "Knuth, D. 1969. 'Seminumerical Algorithms.
                    The Art of Computer Programming' vol 2.
                    r   zpoisson(): lambda < 0r   r   rD   r]  )lamenlamr  r  r  _expr  s        r   poisson_implzCpoisson_impl1.<locals>._impl.<locals>.codegen.<locals>.poisson_impl  sy     Syy()@AAAczz q D#JJEAD#GII	5==#$HQr   )r7   r   r  r   rR  fcmp_orderedr   r   rm   r[  r#   r$   r%   rP   r&   r)   r^   rS  rT  r   r   r  r  r  rZ   )r*   r+   r   rQ   r?   retptrr  rX  r  big_lamr.   r/   r   r  r  r  lam_preprocessors                 @@r   r   z-poisson_impl1.<locals>._impl.<locals>.codegenl  s3   ,Wg>>	 ,WgEJJJ 33H==227;;&&w44!..tS/1{64/H/HJ J__W-- 	* 	* ?7_f4MNND 78H8O8<8LN NB ",,rIs+;<<CMM#v...NN5)))	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* v&&&''///)*x     , ..wc4PPc6***u%%%''...||F+++s   .B
EEE)r   r   r   r  )r   r  r   r#  s      @r   r   zpoisson_impl1.<locals>._implh  sD    3C886, 6, 6, 6, 6,n U[#..77r   c                      |           S r   r    r  r   s    r   r   zpoisson_impl1.<locals>.<lambda>  s    55:: r   r   r%  s    @r   poisson_impl1r&  e  sT    #U]344 =&	:	8 :	8 
:	8v &%%%%{=& =&r   c                    t          | t          j        t          j        f          rt	          |          rd S t          | t          j        t          j        f          rt          |          rd S t          | t          j        t          j        f          rXt          |t          j                  s9t          |t          j                  r&t          |j        t          j                  r	d }|S d S d S d S )Nc                 @    t           j                            |           S r   r  r  r   s     r   r   zpoisson_impl2.<locals>.<lambda>  s    !2!23!7!7 r   c                 d    t          j        t           j                            |                     S r   )r   r   r   r  r)  s     r   r   zpoisson_impl2.<locals>.<lambda>  s     ")*;*;C*@*@!A!A r   c                     t          j        |t           j                  }|j        }t	          |j                  D ]$}t           j                            |           ||<   %|S r  )r   r   r  r   r   r   r   r  )r  r   r   r   rd   s        r   r   zpoisson_impl2.<locals>._impl  sV    (4rw///CxHSX 7 7 "	 1 1# 6 6Jr   r  )r  r   r   s      r   poisson_impl2r,    s    #U]344 8T9J9J 8777#U]344 B9M9M BAAA#U]344 tU]++4((-7
8=.G .G
	 	 	      r   c                 \    t          | t          j        t          j        f          rd }|S d S )Nc                     | dk    rt          d          t          j        dt          j        t          j                                                   z
  d| z            S )Nr   zpower(): a <= 0rD   r   )r]  r  powr  r   r   r,  rq   s    r   r   zpower_impl.<locals>._impl  sW    Cxx !23338A")*H*H*J*J)J K KKqD" " "r   r   rS  s     r   
power_implr1    s=    !ek5=122 	" 	" 	"  r   c                    t          |          rd S t          |          rd S t          |t          j                  s9t          |t          j                  r$t          |j        t          j                  rd }|S d S d S )Nc                 @    t           j                            |           S r   )r   r   powerrX  s     r   r   zpower_impl.<locals>.<lambda>  s    ryq11 r   c                 d    t          j        t           j                            |                     S r   )r   r   r   r4  rX  s     r   r   zpower_impl.<locals>.<lambda>  s    rx	(:(:;; r   c                     t          j        |          }|j        }t          |j                  D ]$}t           j                            |           ||<   %|S r   )r   r   r   r   r   r   r4  r[  s        r   r   zpower_impl.<locals>._impl  sK    (4..CxHSX 3 3 "	 2 2Jr   r   r\  s      r   r1  r1    s    4 2111d <;;;$&& 	:dEN+K+K 	+5dj6;m,E ,E		 	 	 	 	 	 	r   c                      d S )Nc                  @    t           j                            d          S r   r   r   rayleighr    r   r   r   z rayleigh_impl0.<locals>.<lambda>  s    29%%c** r   r    r    r   r   rayleigh_impl0r;    s    ***r   c                 \    t          | t          j        t          j        f          rd }|S d S )Nc           	          | dk    rt          d          | t          j        dt          j        dt          j                                        z
            z            z  S )Nr   zrayleigh(): scale <= 0r  r   )r]  r  r  r  r   r   r  s    r   r   zrayleigh_impl1.<locals>.impl  sQ    || !9:::49TDHS29;K;K;M;M5M,N,N%NOOOOr   r   )r   r   s     r   rayleigh_impl1r>    s@    %%+u}566 	P 	P 	P  r   c                    t          |          rd S t          |          rd S t          |t          j                  s9t          |t          j                  r$t          |j        t          j                  rd }|S d S d S )Nc                 @    t           j                            |           S r   r9  r#  s     r   r   z rayleigh_impl2.<locals>.<lambda>  s    29#5#5e#<#< r   c                 d    t          j        t           j                            |                     S r   )r   r   r   r:  r#  s     r   r   z rayleigh_impl2.<locals>.<lambda>  s     28BI,>,>u,E,E#F#F r   c                     t          j        |          }|j        }t          |j                  D ]$}t           j                            |           ||<   %|S r   )r   r   r   r   r   r   r:  r&  s        r   r   zrayleigh_impl2.<locals>._impl  sM    (4..CxHSX : : "	 2 25 9 9Jr   r   r'  s      r   rayleigh_impl2rC    s    4 =<<<d GFFF$&& 	:dEN+K+K 	+5dj6;m,E ,E		 	 	 	 	 	 	r   c                      d } | S )Nc                  |    t           j                                        t           j                                        z  S r   r   r    r   r   r   zcauchy_impl.<locals>._impl  s)    y((**RY-F-F-H-HHHr   r    r   s    r   cauchy_implrF    s    I I I Lr   c                    t          |           rd S t          |           rd S t          | t          j                  s9t          | t          j                  r$t          | j        t          j                  rd }|S d S d S )Nc                 >    t           j                                        S r   )r   r   standard_cauchyr   s    r   r   z&standard_cauchy_impl.<locals>.<lambda>
  r   r   c                 b    t          j        t           j                                                  S r   )r   r   r   rI  r   s    r   r   z&standard_cauchy_impl.<locals>.<lambda>  r   r   c                     t          j        |           }|j        }t          |j                  D ]#}t           j                                        ||<   $|S r   )r   r   r   r   r   r   rI  r   s       r   r   z#standard_cauchy_impl.<locals>._impl  r   r   r   r   s     r   standard_cauchy_implrL    s    4 8777d BAAA$&& 	:dEN+K+K 	/9$*:?-0I 0I		 	 	 	 	 	 	r   c                 \    t          | t          j        t          j        f          rd }|S d S )Nc                     t           j                                        }t           j                            | dz            }t	          j        | dz            |z  t	          j        |          z  }|S r  )r   r   r   r  r  r  )r  NGr  s       r   r   zstandard_t_impl.<locals>._impl  sX    	))++A	((c22A	"s(##a'$)A,,6AHr   r   r  s     r   standard_t_implrQ    s=    "u{EM233 	 	 	  r   c                    t          |          rd S t          |          rd S t          |t          j                  s9t          |t          j                  r$t          |j        t          j                  rd }|S d S d S )Nc                 @    t           j                            |           S r   )r   r   
standard_tr  s     r   r   z"standard_t_impl2.<locals>.<lambda>)  s    	 4 4R 8 8 r   c                 d    t          j        t           j                            |                     S r   )r   r   r   rT  r  s     r   r   z"standard_t_impl2.<locals>.<lambda>+  s     )=)=b)A)A B B r   c                     t          j        |          }|j        }t          |j                  D ]$}t           j                            |           ||<   %|S r   )r   r   r   r   r   r   rT  r  s        r   r   zstandard_t_impl2.<locals>._impl/  sM    (4..CxHSX 9 9 "	 4 4R 8 8Jr   r   r  s      r   standard_t_impl2rW  &  s    4 9888d CBBB$&& 	:dEN+K+K 	+5dj6;m,E ,E		 	 	 	 	 	 	r   c                 |    t          | t          j                  rt          |t          j                  rd }|S d S d S )Nc                 l   | dk    rt          d          |dk    rt          d          | d|z  z  }t          j                                        }| |z  |z  }| ||t	          j        d|z  |z  ||z  z             z
  z  z   }t          j                                        }|| | |z   z  k    r|S | | z  |z  S )Nr   zwald(): mean <= 0zwald(): scale <= 0r
     )r]  r   r   r   r  r  )r8  r   mu_2lr  r  r  s         r   r   zwald_impl.<locals>._impl;  s    s{{ !4555|| !5666C%K(E	))++Aq1AuDIa%i!ma!e.C$D$D DEEA	  ""ADD1H%%%d{Q&r   r  )r8  r   r   s      r   	wald_implr\  8  sS    $$$ E5;)G)G 	' 	' 	' !   r   c                    t          |          rd S t          |          rd S t          |t          j                  s9t          |t          j                  r$t          |j        t          j                  rd }|S d S d S )Nc                 B    t           j                            | |          S r   )r   r   waldr8  r   r   s      r   r   zwald_impl2.<locals>.<lambda>P  s    e)D)D r   c                 f    t          j        t           j                            | |                    S r   )r   r   r   r_  r`  s      r   r   zwald_impl2.<locals>.<lambda>S  s     ")..u2M2M)N)N r   c                     t          j        |          }|j        }t          |j                  D ]%}t           j                            | |          ||<   &|S r   )r   r   r   r   r   r   r_  )r8  r   r   r   r   rd   s         r   r   zwald_impl2.<locals>._implW  sM    (4..CxHSX < < "	tU ; ;Jr   r   )r8  r   r   r   s       r   
wald_impl2rc  M  s    4 EDDDd ONNN$&& 	:dEN+K+K 	+5dj6;m,E ,E		 	 	 	 	 	 	r   c                 D    t          | t          j                  rd }|S d S )Nc                    | dk    rt          d          | dz
  }d|z  }	 dt          j                                        z
  }t          j                                        }t          t	          j        |d|z  z                      }|t          k    s|dk     rydd|z  z   |z  }|dk    r||z  |dz
  z  |dz
  z  ||z  k    r|S )Nr   zzipf(): a <= 1r
  rD   g      )r]  r   r   r  r  r  r   )rq   am1rr   r  r  r  Ts          r   r   zzipf_impl.<locals>._implc  s    Cxx !1222c'Cs
A
")**,,,I$$&&
1#45566LLAGG37]s*66a!eq3w/1s7;AFFH
r   r  rS  s     r   	zipf_implrh  `  s6    !U[!! 	 	 	" % r   c                    t          |          rd S t          |          rd S t          |t          j                  s9t          |t          j                  r$t          |j        t          j                  rd }|S d S d S )Nc                 @    t           j                            |           S r   )r   r   zipfrX  s     r   r   zzipf_impl.<locals>.<lambda>z  s    ry~~a00 r   c                 d    t          j        t           j                            |                     S r   )r   r   r   rk  rX  s     r   r   zzipf_impl.<locals>.<lambda>}  s    rx	q(9(9:: r   c                     t          j        |t           j                  }|j        }t	          |j                  D ]$}t           j                            |           ||<   %|S r  )r   r   r  r   r   r   r   rk  r[  s        r   r   zzipf_impl.<locals>._impl  sT    (4rw///CxHSX 2 2 "	q 1 1Jr   r   r\  s      r   rh  rh  w  s    4 1000d ;:::$&& 	:dEN+K+K 	+5dj6;m,E ,E		 	 	 	 	 	 	r   c                     t          | t          j                  sd}t          |          |dk    rt          j        j        n|dk    rt
          j        | j        dk    rfd}nfd}|S )Nz1The argument to shuffle() should be a buffer typer   r   rD   c                     | j         d         dz
  }|dk    r2 |dz             }| |         | |         c| |<   | |<   |dz  }|dk    0d S d S rC   r  r   ijrands      r   r   zdo_shuffle_impl.<locals>.impl  sc    
QAa%%DQKKqT1Q4
!adQ a%%%%%%r   c                     | j         d         dz
  }|dk    rV |dz             }t          j        | |                   t          j        | |                   c| |<   | |<   |dz  }|dk    Td S d S rC   )r  r   copyrp  s      r   r   zdo_shuffle_impl.<locals>.impl  ss    
QAa%%DQKKWQqT]]BGAaDMM
!adQ a%%%%%%r   )	r   r   Bufferr   r   r   r  rn  ndim)r   rngrE  r   rs  s       @r   do_shuffle_implry    s    a&& "AS!!!
d{{y 	v{{	 	 	 	 	 		 	 	 	 	 Kr   c                 "    t          | d          S r   ry  r   s    r   shuffle_implr|        1d###r   c                 "    t          | d          S r   r{  r   s    r   r|  r|    r}  r   c                     t          | t          j                  rd }n t          | t          j                  rd }nd }|S )Nc                 l    t          j        |           }t           j                            |           |S r   )r   aranger   shuffle)r   rg   s     r   permutation_implz*permutation_impl.<locals>.permutation_impl  s*    	!AIa   Hr   c                 l    |                                  }t          j                            |           |S r   )ru  r   r   r  )r   arr_copys     r   r  z*permutation_impl.<locals>.permutation_impl  s*    vvxxHIh'''Or   )r   r   r   Array)r   r  s     r   r  r    sb    !U]##  	 	 	 	 
Au{	#	#  	 	 	 	
  r   c                  :    t          |           dk    rd }nd }|S )Nr   c                  >    t           j                                        S r   r   r   s    r   	rand_implzrand.<locals>.rand_impl  s    9##%%%r   c                  @    t           j                            |           S r   r   r   s    r   r  zrand.<locals>.rand_impl  s    9##D)))r   len)r   r  s     r   rs  rs    s<    
4yyA~~	& 	& 	& 	&
	* 	* 	* r   c                  :    t          |           dk    rd }nd }|S )Nr   c                  >    t           j                                        S r   r   r   s    r   
randn_implzrandn.<locals>.randn_impl  s    9,,...r   c                  @    t           j                            |           S r   r   r   s    r   r  zrandn.<locals>.randn_impl  s    9,,T222r   r  )r   r  s     r   randnr    s<    
4yyA~~	/ 	/ 	/ 	/
	3 	3 	3 r   Tc                    t          | t          j                  rE| j        dk    sJ | j        t
          d             t
          d             }t
          d             nit          | t          j                  r=t          j        t
          d             t
          d             }t
          d             nt          d|           |d t          j
        fv rdfd
	}ndfd	}|S )NrD   c                      t          |           S r   r  r0  s    r   get_source_sizezchoice.<locals>.get_source_size  s    q66Mr   c                 *    |                                  S r   )ru  r0  s    r   copy_sourcezchoice.<locals>.copy_source  s    6688Or   c                     | |         S r   r    rq   a_is     r   getitemzchoice.<locals>.getitem  s    S6Mr   c                     | S r   r    r0  s    r   r  zchoice.<locals>.get_source_size  s    Hr   c                 *    t          j        |           S r   )r   r  r0  s    r   r  zchoice.<locals>.copy_source  s    9Q<<r   c                     |S r   r    r  s     r   r  zchoice.<locals>.getitem  s    Jr   z>np.random.choice() first argument should be int or array, got Tc                 r     |           }t           j                            d|          } | |          S )zs
            choice() implementation returning a single sample
            (note *replace* is ignored)
            r   r  )rq   r   replacerL  rq  r  r  s        r   choice_implzchoice.<locals>.choice_impl  s;    
  ""A	!!!Q''A71a== r   c                     
|           }|rlt          j        |	          }|j        }t          t	          |                    D ]1}t           j                            d|          } | |          ||<   2|S t          j        |	          }|j        |k    rt          d          t           j        	                    |           }|j        }t          t	          |                    D ]}||         ||<   |S )zO
            choice() implementation returning an array of samples
            r   z@Cannot take a larger sample than population when 'replace=False')
r   r   r   r   r  r   r  r   r]  permutation)rq   r   r  rL  r   flrq  rr  
permuted_ar   r  r  s            r   r  zchoice.<locals>.choice_impl  s     ""A htU++Xs2ww * *A	))!Q//A#GAqMMBqEE
 htU++8a<<$ &G H H H  Y22155
Xs2ww * *A&qMBqEE
r   NT)r   r   r  rw  r   r   r   r   r  r   r   )rq   r   r  r  r  r   r  r  s        @@@r   choicer    s    !U[!! #<v{{{{		 	 
		 
	 	 
		 
	 	 
		 	 
Au}	%	% <		 	 
		 
	  	  
		  
	 	 
		 	 n78q; < < 	< ej!!!	! 	! 	! 	! 	! 	! 	! 	!	 	 	 	 	 	 	 	< r   c                    t           j        t          d             t          | t          j                  st          d|           t          |t          j        t          j        f          st          d|          |d t          j	        fv rdfd	}nVt          |t          j                  rdfd	}n4t          |t          j
                  rdfd	}nt          d|          |S )	Nc                 H   |j         }|j        }t          |          }t          d||          D ]r}d}| }t          d|dz
            D ]G}	||	         }
t          j                            ||
|z            x}|||	z   <   ||z  }|dk    r n||
z  }H|dk    r||||z   dz
  <   sd S )Nr   r   rD   )r   r   r  r   r   r   r  )rL  pvalsr   r  szplenrq  p_sumn_experimentsrr  p_jn_js               r   multinomial_innerz&multinomial.<locals>.multinomial_innerA  s     XX5zzq"d## 	1 	1A
 EM
 1dQh''  Ah"$)"4"4]C%K"P"PPbQi$ A%%Eq  #01t8a< -	1 	1r   z5np.random.multinomial(): n should be an integer, got zCnp.random.multinomial(): pvals should be an array or sequence, got c                 f    t          j        t          |                    } | ||           |S )z5
            multinomial(..., size=None)
            r   zerosr  rL  r  r   r   r   r  s       r   multinomial_implz%multinomial.<locals>.multinomial_impli  s6     (3u::u--Ca,,,Jr   c                 j    t          j        |t          |          f          } | ||           |S )z4
            multinomial(..., size=int)
            r  r  s       r   r  z%multinomial.<locals>.multinomial_implr  s;     (D#e**-u55Ca,,,Jr   c                 n    t          j        |t          |          fz             } | ||           |S )z6
            multinomial(..., size=tuple)
            r  r  s       r   r  z%multinomial.<locals>.multinomial_impl{  s=     (43u::-/77Ca,,,Jr   zBnp.random.multinomial(): size should be int or tuple or None, got r   )r   r  r   r   r   r   r   Sequencer  r   	BaseTuple)rL  r  r   r  r   r  s       @@r   multinomialr  <  s    GE1 1 1< a'' 7n23!6 7 7 	7 eenek:;; En<AED E E 	E ej!!!	 	 	 	 	 	 	 	 
D%-	(	( @	 	 	 	 	 	 	 	 
D%/	*	* @	 	 	 	 	 	 	 	 n8<? @ @ 	@ r   c                 \    t          | t          j        t          j        f          rd }|S d S )Nc                 h    t          j        t          |                     }t          | |           |S r   r   r   r  dirichlet_arr)r  r   s     r   dirichlet_implz!dirichlet.<locals>.dirichlet_impl  ,    (3u::&&C%%%%Jr   )r   r   r  r  )r  r  s     r   	dirichletr    s>    %%.%+677 	 	 	  r   c                    t          | t          j        t          j        f          st	          d|           |d t          j        fv st          |          rdd}not          |t          j                  rdd}nPt          |t          j                  r$t          |j	        t          j                  rdd}nt	          d|z            |S )NzAnp.random.dirichlet(): alpha should be an array or sequence, got c                 h    t          j        t          |                     }t          | |           |S r   r  r  r   r   s      r   r  z!dirichlet.<locals>.dirichlet_impl  r  r   c                 l    t          j        |t          |           f          }t          | |           |S )z2
            dirichlet(..., size=int)
            r  r  s      r   r  z!dirichlet.<locals>.dirichlet_impl  s3     (D#e**-..C%%%%Jr   c                 p    t          j        |t          |           fz             }t          | |           |S )z4
            dirichlet(..., size=tuple)
            r  r  s      r   r  z!dirichlet.<locals>.dirichlet_impl  s5     (43u::-/00C%%%%Jr   zJnp.random.dirichlet(): size should be int or tuple of ints or None, got %sr   )
r   r   r  r  r   r   r   r   r   r   )r  r   r  s      r   r  r    s   eenek:;; 
n+053
 
 	

 ej!!!^D%9%9!	 	 	 	 	
 
D%-	(	( 
	 	 	 	 	 
D%.	)	) 
j9>/H /H 
	 	 	 	 	 ,.23
 
 	

 r   c                    t          |           D ]}|dk    rt          d          t          |           }|j        }|j        }t          d||          D ]}d}t          |           D ]K\  }}	t          j        	                    |	d          |||z   <   ||||z            
                                z  }Lt          |           D ]\  }}	|||z   xx         |z  cc<   d S )Nr   zdirichlet: alpha must be > 0.0rD   )iterr]  r  r   r   r   	enumerater   r   r  item)
r  r   a_vala_lenr   r   rq  normrG  rf  s
             r   r  r    s   
 e ? ?A::=>>>  JJE8D8D1dE""    e$$ 	' 	'DAq)//!Q//DQKDQK$$&&&DDe$$ 	  	 DAqQKKK4KKKK	    r   c                     t          | t          j        t          j        f          r+t          |t          j        t          j        f          rd }|S d S d S )Nc                 B    t          | |           t          | |          S r   #validate_noncentral_chisquare_inputnoncentral_chisquare_singler  noncs     r   noncentral_chisquare_implz7noncentral_chisquare.<locals>.noncentral_chisquare_impl  s"    /D999.r4888r   r   )r  r  r  s      r   noncentral_chisquarer    sg    "u{EM233 )
5;.90 90 )	9 	9 	9 )() ) ) )r   c                 .   |d t           j        fv rdd}|S t          |          rdd}|S t          |t           j                  s9t          |t           j                  r%t          |j        t           j                  rdd}|S t          d|z            )Nc                 B    t          | |           t          | |          S r   r  r  r  r   s      r   r  z7noncentral_chisquare.<locals>.noncentral_chisquare_impl  s"    0T:::/D999r   c                 f    t          | |           t          j        t          | |                    S r   )r  r   r   r  r  s      r   r  z7noncentral_chisquare.<locals>.noncentral_chisquare_impl  s-    0T:::H8TBBCCCr   c                     t          | |           t          j        |          }|j        }t	          |j                  D ]}t          | |          ||<   |S r   )r  r   r   r   r   r   r  )r  r  r   r   r   rd   s         r   r  z7noncentral_chisquare.<locals>.noncentral_chisquare_impl  sY    0T:::8D>>SXch G G!<R!F!F#Zr   zUnp.random.noncentral_chisquare(): size should be int or tuple of ints or None, got %sr   )r   r   r   r   r   r   r   r   )r  r  r   r  s       r   r  r    s    uz"""
: 
: 
: 
: *	)t 
D 
D 
D 
D *	)
T5=
)
) ju~.N.N 2<TZ=B]3L 3L
 
 
 
 *	)-/34  
r   c                    t          j        |          rt           j        S d| k     r]t           j                            | dz
            }t           j                                        t          j        |          z   }|||z  z   S t           j                            |dz            }t           j                            | d|z  z             S )NrD   r
  rG   )r   isnannanr   r  r   r  r  )r  r  chi2rL  rq  s        r   r  r  	  s    
 
x~~ v2vvy""2a4((I%%''"'$--7a!e| Id3h''y""2A:...r   c                 Z    | dk    rt          d          |dk     rt          d          d S )Nr   zdf <= 0znonc < 0r  r  s     r   r  r  	  s7    	Qww###axx$$$ xr   r   r  )__doc__r  r   numpyr   llvmliter   numba.core.cgutilsr   r   numba.core.extendingr   r   r   numba.core.imputilsr	   numba.core.typingr   
numba.corer   r   numba.core.errorsr   numba.np.random._constantsr   registrylowerr  r   r   r   r6  rm   rO  r   r\   LiteralStructType	ArrayTypernd_state_tPointerTyper$   r0   r4   r7   r9   r@   rE   rH   rK   rS   rh   rs   r   r   r   r   r   random_samplesampleranfr   r   rH  normalvariater   r   r   r   r   r   r   r  r  r   r   getrandbitsrJ  rj  rn  rq  rv  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  betavariater
  r  r  r  r  expovariater  r"  r  r,  r/  r3  r4  r9  r>  rD  lognormvariaterI  r=  paretovariaterO  rW  rT  weibullvariater_  rf  rc  ri  vonmisesvariatern  r|  rk  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  negative_binomialr  r  r  r&  r,  r4  r1  r:  r;  r>  rC  rI  rF  rL  rT  rQ  rW  r_  r\  rc  rk  rh  ry  r  r|  r  r  rs  r  r  r  r  r  r  r  r  r    r   r   <module>r     s   
             : : : : : : : : F F F F F F F F F F ( ( ( ( ( ( ' ' ' ' ' ' % % % % % % % % , , , , , , / / / / / /8L!!
"*R..
"*R..# # #	
"+gq
!
! #b"BL!
$   !".--     "1 1 11 1 17 7 7: : :: : :: : :: : :    21 1 1. . .b 
&+   
").     
$ $ $ 
&-   
")
	")
!""	")
	").    #"  
")
	")
!""	")
	").     #" $ 
&,	&
	2 	2   	2 
")
#$$	")
. .  %$. 
")
6 6 6
 
")
	4 	4 	4 
")
#$$  %$$ 
")
  0  $% % %PQ Q Q" 
&
" " "(CE CE CEL 
&
; ; ;
 
&
D D D
* * * 
&
B B B4 
&.: : :
 
")
5 5 5
 
")
2 2 20 
")
  0 
")
/ / / 
&.	( 	( 	( 
")
	2 	2 	2	 	 	 
")
  2 
&
   
&
  $ 
")
   $ 
")
    , 
&
1 1 1 
")
"##	")/9 9  $#9
 
")/  8 8 8v 
")/  $ 
")
"##  $#$ 
&
6 6 6 
").     
").  & 
&
   
")
    !  
")
    ! $ 
")
())	")
    !  *) 
")
())  *)& 
")
1 1 1 
")
; ; ;
 
")
3 3 3 
")
  $ 
&
  / / ! /9 9 9 
&
    
")
   
")
  $ 
&
  	 	 ! 	 
")
   
")
  $ 
&
 !!4 4 "!4
 
")
7 7 7
) ) )X 
")
  $ 
")
4 4 4n 
")
  & 
")
   
")
  " 
")+   
")+  , 
")
  . 
")
  $ 
")
   
")
  $ 
")
"##  $#. 
")
"##  $#( 
")
/ / / 
")
7 7 7
 
")
   
")
  $3 3 3 
")
0 0 0 
")
8 8 8
 
")
   
")
  $1 1 1
  * 
")
  
 
")
  " 
")
%&&  '& 
")
* * * 
")
>& >& >&B 
")
  ( 
")/   
")/  $ 
")
+ + + 
")
   
")
  $ 
")
#$$  %$ 
")
#$$  %$$ 
")
    
")
   " 
").  ( 
").  $ 
").  , 
").  "  : 
&.$ $ $ 
")
$ $ $ 
")
    ! & 
").   
")/  " 
")
P P P Pl 
")
  J J J ! J` 
")
   
")
( ( ( (V      2 
")
())) ) *)) 
")
())   *)> / / /" % % % % %r   