
    KhI                     v   S r SSKJrJrJrJrJrJr  SSKJ	r	J
r
JrJrJrJrJrJrJrJrJrJrJrJrJrJrJr  SSKrSSKrS r " S S5      r " S S	5      r " S
 S5      r " S S5      r  " S S5      r! " S S5      r"S r#S r$S r%S r&S r'S r( " S S5      r) " S S5      r* " S S5      r+ " S S5      r,g) z"Test functions for matrix module

    )assert_equalassert_array_equalassert_array_max_ulpassert_array_almost_equalassert_raisesassert_)arangeaddfliplrflipudzerosoneseyearraydiaghistogram2dtrimask_indicestriu_indicestriu_indices_fromtril_indicestril_indices_fromvanderNc                 H    [        U 5      n[        R                  " X5      nU$ N)r	   r
   outer)ndatas     R/var/www/html/env/lib/python3.13/site-packages/numpy/lib/tests/test_twodim_base.pyget_matr       s    !9D99T DK    c                   J    \ rS rSrS rS rS rS rS rS r	S r
S	 rS
 rSrg)TestEye   c           
          [        [        S5      [        / SQ/ SQ/ SQ/ SQ/5      5        [        [        SSS9[        / SQ/ SQ/ SQ/ SQ/S5      5        [        [        S5      S	:H  [        S[        S95        g )
N      r   r   r   r   r(   r   r   r   r   r(   r   r   r   r   r(   fdtype   r(   )r   r   r   boolselfs    r   
test_basicTestEye.test_basic   sv    SVL(((* +	, 	S#&L(((* ,/0	1 	SVq[$'	)r!   c           	      :   [        [        [        R                  " S5      [        S9[        SS/SS//5      5        [        [        [        R                  " S5      [        R                  " S5      [        R                  " S5      S9[        / SQ/ SQ/5      5        g )	N   r-   r(   r   r&   )Mkr)   r*   )r   r   npuint64intr   r1   s    r   test_uint64TestEye.test_uint64)   se    S1S151a&1a&9I3JKS111FL,78	:r!   c           
          [        [        SSS9[        / SQ/ SQ/ SQ/ SQ/5      5        [        [        SSS9[        / SQ/ S	Q/ SQ/ SQ/5      5        g )
Nr&   r(   r8   r)   r*   r+   r   r   r   r   r'   r   r   r   r1   s    r   	test_diagTestEye.test_diag/   sT    Sa[L(((* +	, 	Sb\L(((* +	,r!   c           
          [        [        SS5      [        / SQ/ SQ/ SQ/ SQ/5      5        [        [        SS5      [        / SQ/ SQ/ S	Q/5      5        g )
Nr&   r/   r(   r   r   r   r(   r   )r   r   r(   r   r   r   r'   r)   r*   rB   r1   s    r   test_2dTestEye.test_2d<   sQ    SAYI%%%' (	) 	SAYL((* +	,r!   c           
          [        [        SSSS9[        / SQ/ SQ/ SQ/5      5        [        [        SSSS9[        / S	Q/ S	Q/ S
Q/ SQ/5      5        g )Nr/   r&   r6   r?   r*   r+   r@   rH   rF   rG   rB   r1   s    r   test_diag2dTestEye.test_diag2dH   sU    SA^L((* +	,
 	SA_I%%%' (	)r!   c                 ,   [        [        SSS5      SS/SS//5        [        [        SSS5      SS/SS//5        [        [        SSS5      SS/SS//5        [        [        SSS5      SS/SS//5        [        [        SSS5      SS/SS/SS//5        [        [        SSS5      SS/SS/SS//5        [        [        SSS5      SS/SS/SS//5        [        [        SSS5      SS/SS/SS//5        [        [        SSS5      SS/SS/SS//5        g )Nr6   r(   r   rA   rL   r/   r   r   r1   s    r   test_eye_boundsTestEye.test_eye_boundsT   s7   SAq\QFQF#34SAr]aVaV$45SAq\QFQF#34SAr]aVaV$45SAq\QFQFQF#;<SAq\QFQFQF#;<SAr]aVaVaV$<=SAr]aVaVaV$<=SAr]aVaVaV$<=r!   c                 :    [        [        SSSS9SS/SS//5        g )Nr6   S3r-      1r!   rQ   r1   s    r   test_stringsTestEye.test_strings_   s%    SAT*SkC;/	1r!   c                 B    [        [        SS[        S9SS/SS//5        g )Nr6   r-   TF)r   r   r0   r1   s    r   	test_boolTestEye.test_boolc   s"    SAT*dE]UDM,JKr!   c                 0   [        SSSS9n[        SSSSS9n[        X5        UR                  R                  (       d   eUR                  R                  (       a   eUR                  R                  (       a   eUR                  R                  (       d   eg )Nr&   r/   rA   r?   F)r8   order)r   r   flagsc_contiguousf_contiguous)r2   mat_cmat_fs      r   
test_orderTestEye.test_orderf   ss    AqBAqBc*U"{{'''';;++++;;++++{{''''r!    N)__name__
__module____qualname____firstlineno__r3   r<   rC   rI   rM   rR   rW   rZ   rd   __static_attributes__rf   r!   r   r#   r#      s0    ) :,
,
)	>1L(r!   r#   c                   6    \ rS rSrS rS	S jrS rS rS rSr	g)
TestDiagp   c                    S[        S5      -  R                  S5      n[        S5      n[        S5       H  nX   X#U4'   M     [	        [        U5      U5        [        S5      nUR                  5       n[        S5       H  nX   X#US-   4'   X   XCS-   U4'   M     [	        [        USS9U5        [	        [        USS9U5        g )	Nd      l)rq   rq   )   rs   r6   r?   rL   )r	   astyper   ranger   r   copy)r2   valsbr8   cs        r   test_vectorTestDiag.test_vectorq   s    fQi'',&MqAgAdG T$Z#&MFFHqA'AQhK'A!eQhK  	T$!_a(T$"%q)r!   Nc                    Uc   S[        S5      -  S-   R                  S5      n[        S5      n[        S5       H  nXU4   X#'   M     [	        [        U5      U5        US-  n[        S5       H  nXUS-   4   X#'   M     [	        [        US5      US S 5        [        S5       H  nXS-   U4   X#'   M     [	        [        US	5      US S 5        g )
Nrp   rq   r(   rr   )rq   r   r/   r6   rL   )r    rt   r   ru   r   r   )r2   rw   rx   r8   s       r   test_matrixTestDiag.test_matrix   s    <'!*$q(005D$KqA1:AD T$Z#EqA1q5>AD T$]AbqE*qAAq>AD T$^QrU+r!   c                 Z    [        S[        S5      -  S-   SSS9nU R                  U5        g )Nrp   rq   r(   r]   rr   )r^   r.   )r   r    r}   )r2   rw   s     r   test_fortran_orderTestDiag.test_fortran_order   s,    cGAJ&*3cBr!   c                    SS/SS/SS//n[        [        USS9/ 5        [        [        USS9S/5        [        [        USS9SS/5        [        [        US	S9SS/5        [        [        US
S9S/5        [        [        USS9/ 5        g )Nr(   r6   r/   r&   rq      r?   r   rA   rL   rP   )r   r   )r2   As     r   test_diag_boundsTestDiag.test_diag_bounds   s    VaVaV$T!q\2&T!q\A3'T!q\Aq6*T!r]QF+T!r]QC(T!r]B'r!   c                 4    [        [        [        S///5        g )Nr(   )r   
ValueErrorr   r1   s    r   test_failureTestDiag.test_failure   s    j$1#0r!   rf   r   )
rg   rh   ri   rj   rz   r}   r   r   r   rk   rf   r!   r   rm   rm   p   s    *,(1r!   rm   c                       \ rS rSrS rSrg)
TestFliplr   c                     [        [        [        [        S5      5        [	        S5      nUS S 2S S S24   n[        [        U5      U5        / SQ/ SQ/n/ SQ/ SQ/n[        [        U5      U5        g )Nr&   rA   r   r(   r6   r/   r&   rq   )r6   r(   r   )rq   r&   r/   )r   r   r   r   r    r   r2   arx   s      r   r3   TestFliplr.test_basic   sb    j&$q'2AJa2gJVAY"VAY"r!   rf   Nrg   rh   ri   rj   r3   rk   rf   r!   r   r   r      s    	#r!   r   c                       \ rS rSrS rSrg)
TestFlipud   c                     [        S5      nUS S S2S S 24   n[        [        U5      U5        / SQ/ SQ/n/ SQ/ SQ/n[        [        U5      U5        g )Nr&   rA   r   r   )r    r   r   r   s      r   r3   TestFlipud.test_basic   sR    AJddAgJVAY"VAY"r!   rf   Nr   rf   r!   r   r   r      s    #r!   r   c                       \ rS rSrS rS rS rS rS rS r	S r
\R                  R                  S	S
S/5      S 5       rSrg)TestHistogram2d   c                    [        / SQ5      n[        / SQ5      n[        R                  " SSS5      n[        R                  " SSS5      n[        XX445      S   n[        / SQ/ SQ/ SQ/ S	Q/ S
Q/ SQ/ SQ/ SQ/ SQ/	5      n[	        UR
                  U5        [        XU5      S   n[	        UR
                  U5        [        [        [        S5      5      [        [        S5      5      5      u  pSn[	        U[        SS5      5        [	        U[        R                  " SSS5      5        [	        U[        R                  " SSS5      5        g )N)g̙
}?g%?g$F?g;cjY?gI+?)gp5x?g?_?gp?gbd?gg<=?r   r(   
   )	r   r   r   r(   r   r   r   r   r   )	r   r   r   r   r   r   r(   r   r   )	r   r   r   r   r   r   r   r   r   )	r(   r   r(   r   r   r   r   r   r   )	r   r(   r   r   r   r   r   r   r   	      )	r   r9   linspacer   r   Tlistru   r   )r2   xyxedgesyedgesHanswers          r   test_simpleTestHistogram2d.test_simple   s   LNHJQ2&Q2&v./2(((((((((*	+ 	133'f%a(133''U2YeBiI61c"bk*62;;q!R#8962;;q!R#89r!   c           	      B   [        / SQ5      n[        / SQ5      n[        XSSS/SS//SS9u  p4n[        / S	Q/ S
Q/ SQ/ SQ/ SQ/ SQ/5      n[        X6S-  S5        [        U[        R
                  " SSS5      5        [        U[        R
                  " SSS5      5        g )N)r(   r(   r6   r/   r&   r&   r&   rq   )r(   r/   r6   r   r(   r6   r/   r&   )r   rq   r   r   rq   T)ru   density)        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(   g       @r/   rs   )r   r   r   r   r9   r   r2   r   r   r   xedyedr   s          r   	test_asymTestHistogram2d.test_asym   s    *+*+!&!Q!Q 0$@ 	"!BY23Aq! 453Aq! 45r!   c                     [        / SQ5      n[        / SQ5      n[        X/ SQ/ SQ/SS9u  p4n[        / SQ/ SQ/ SQ/5      S-  n[        X6S	5        g )
N)	r(   r6   r/   r(   r6   r/   r(   r6   r/   )	r(   r(   r(   r6   r6   r6   r/   r/   r/   )r(   r6   r/   rq   T)r   )r(   r(         ?)r   r         ?g      "@r/   )r   r   r   r   s          r   test_densityTestHistogram2d.test_density   s]    -.-.!<.>
"%' ((*+ 	"!Q/r!   c                     [         R                  R                  S5      S-   S-   n[        XSSS/SS/4S9u  p#n[	        US5        g )Nrp         ?g    .A)r&   rq   r   r(   )ru   )r9   randomrandr   r   )r2   rr   r   r   s        r   test_all_outliers!TestHistogram2d.test_all_outliers   sG    IINN3"$s*!!1v1v6FG1a r!   c                     [        / / SS/SS/4S9u  pn[        U[        S//5      5        [        / / SS9u  pn[        U[        R                  " S5      5        g )Nr   r(   binsr   r&   )r&   r&   )r   r   r   r9   r   )r2   r   edge1edge2s       r   
test_emptyTestHistogram2d.test_empty   sX    %b"QFQF3CD%Qtf.%b"15%Q 01r!   c                    [        / SQ5      n[        / SQ5      nSn[        XUS45      u  pEn[        / SQ/ SQ/ SQ/ SQ/ SQ/ SQ/ SQ/ SQ/ SQ/ S	Q/
5      n[        XG5        [        U[        / S
Q5      5        [        XSU45      u  pEn[        / SQ/ SQ/ SQ/ SQ/5      n[        XG5        [        U[        / S
Q5      5        g )N)r   g<D瑷?g ?g!,3{?glyT?gf.?r(   )r   g(@TT\?gIZ?gYN?gK?~?g&W-U?r(   )r   g?g?g333333?g?r   g333333?gffffff?g?g?r(   r&   )g       @r   r   r   )r   r   r   r   )r   r   r   r   )r   r   r   r   )r   r   r   r   )r   r   r   g      ?r(   )
r   r   r   r   r   r   r   r   r   r   )
r   r   r   r   r   r   r   r   r   r   )
r   r   r   r   r   r   r   r   r   r   )
r   r   r   r   r   r   r   r   r   r   )r   r   r   )r2   r   r   edgesr   xeyer   s           r   test_binparameter_combination-TestHistogram2d.test_binparameter_combination   s      Duaj1	r	
  	1%2u%=>?q%j1	r555578
 	1%2u%=>?r!   c           	          " S S5      nSS/nU" 5       n[        X25      n[        XA4X240 4:H  5        [        X#5      n[        XA4X#40 4:H  5        [        X"US9n[        XA4X"4[        US945        [        X"US/S9n[        XA4X"4[        US/S945        [        [        [         X"U/S9  [        X"US9n[        XA4X"4[        US945        g )Nc                       \ rS rSrS rSrg)5TestHistogram2d.test_dispatch.<locals>.ShouldDispatchi  c                 
    X#U4$ r   rf   )r2   functiontypesargskwargss        r   __array_function__HTestHistogram2d.test_dispatch.<locals>.ShouldDispatch.__array_function__  s    F**r!   rf   N)rg   rh   ri   rj   r   rk   rf   r!   r   ShouldDispatchr     s    +r!   r   r(   r6   r   rq   )weights)r   r   dictr   	Exception)r2   r   xys_dr   s        r   test_dispatchTestHistogram2d.test_dispatch  s    	+ 	+ V '#B778 '"B778S)%x3@Ac1X.%xC81DEFibC5A,%xc1BCDr!   )x_leny_len)r   r   )      c                     [         R                  " U5      [         R                  " U5      pC[        R                  " [        SS9   [        X45        S S S 5        g ! , (       d  f       g = f)Nz"x and y must have the same length.)match)r9   r   pytestraisesr   r   )r2   r   r   r   r   s        r   test_bad_lengthTestHistogram2d.test_bad_length,  sF    wwu~rwwu~1]]:!EGG G Gs   A
A(rf   N)rg   rh   ri   rj   r   r   r   r   r   r   r   r   markparametrizer   rk   rf   r!   r   r   r      sS    :46 0!
2@>E( [[/(H1EF Gr!   r   c                       \ rS rSrS rSrg)TestTrii4  c                     [        / SQ/ SQ/ SQ/5      n[        [        S5      U5        [        [        S[        S9UR	                  [        5      5        g )NrF   r(   r(   r   r(   r(   r(   r/   r-   )r   r   r   r0   rt   )r2   outs     r   
test_dtypeTestTri.test_dtype5  sC    Y  ! 	3q63'3q-szz$/?@r!   rf   N)rg   rh   ri   rj   r   rk   rf   r!   r   r   r   4  s    Ar!   r   c                     [         R                  S   [         R                  S   -    H  n [         R                  " SU S9n[         R                  " U5      n[         R                  " U5      n[        USS/SS//5        [        X2R                  5        [        UR                  UR                  5        [        UR                  UR                  5        M     g )NAllFloat
AllInteger)r6   r6   r-   r(   r   )	r9   	typecodesr   triltriur   r   r   r.   )r.   r   rx   ry   s       r   test_tril_triu_ndim2r   =  s    j)BLL,FFGGF%(GGAJGGAJ11v1v./1cc"QWWagg&QWWagg& Gr!   c                  d   [         R                  S   [         R                  S   -    GH  n [         R                  " SS/SS//SS/SS//SS/SS///U S9n[         R                  " SS/SS//SS/SS//SS/SS///U S9n[         R                  " SS/SS//SS/SS//SS/SS///U S9n[         R                  " U5      n[         R                  " U5      n[        XC5        [        XR5        [        UR                  UR                  5        [        UR                  UR                  5        GM     g )Nr   r   r(   r   r-   )r9   r   r   r   r   r   r   r.   )r.   r   a_tril_desireda_triu_desireda_triu_observeda_tril_observeds         r   test_tril_triu_ndim3r   I  sT   j)BLL,FFHHVaVVaVVaV 	
 VaVVaVVaV# 	
 VaVVaVVaV# 	
 ''!*''!*?;?;_**AGG4_**AGG4+ Gr!   c                  r   [         R                  " SS[         R                  // SQ[         R                  SS//5      n [         R                  " / SQ/ SQ[         R                  SS//5      nUR                  n[	        [         R
                  " U 5      U5        [	        [         R                  " U 5      U5        g )Nr(   r   rF   r   )r9   r   infr   r   r   r   )arrout_trilout_trius      r   test_tril_triu_with_infr  b  s    
((Q266NVVQN$ %C xx"&&!Q) *H zzHrwws|X.rwws|X.r!   c                  B   [         R                  S    H  n U S:X  a  M  [         R                  " SU S9n[        [         R                  " U5      R
                  UR
                  5        [        [         R                  " U5      R
                  UR
                  5        M     [         R                  " SS/SS//S	S9n[        [         R                  " U5      R
                  UR
                  5        [        [         R                  " U5      R
                  UR
                  5        [         R                  " SS
S9n[        [         R                  " U5      R
                  UR
                  5        [        [         R                  " U5      R
                  UR
                  5        g )NAllV)r/   r/   r-   z2001-01-01T12:00z2002-02-03T13:56z2004-01-01T12:00z2003-01-03T13:45
datetime64zf4,f4)r9   r   r   r   r   r.   r   r   )ry   r  s     r   test_tril_triu_dtyper  o  s    \\% 8hhvQ'RWWS\''3RWWS\''3 ! ((');<');<>%'C ##SYY/##SYY/
((6
)C##SYY/##SYY/r!   c                     [        S[        R                  5      n [        R                  " S5      R	                  SS5      n[        X   [        / SQ5      5        [        S[        R                  S5      n[        X   [        / SQ5      5        g )Nr/   r   )r   r(   r6   r&   rq      r(   )r(   r6   rq   )r   r9   r   r	   reshaper   r   )iur   iu1s      r   test_mask_indicesr    sa    	a	!B
		!Q"Aque$678
q"''1
%CqvuY/0r!   c            
      v   [        S5      n [        SSS9n[        SSS9n[        SSSS9n[        R                  " / SQ/ SQ/ S	Q/ S
Q/5      n[        R                  " SS5      R	                  SS5      n[        X@   [        / SQ5      5        [        XR   [        / SQ5      5        SX@'   [        U[        / SQ/ SQ/ SQ/ SQ/5      5        SXR'   [        U[        / SQ/ SQ/ SQ/ SQ/5      5        SXA'   [        U[        / SQ/ SQ/ SQ/ SQ/5      5        SXS'   [        U[        / SQ/ SQ/ SQ/ SQ/5      5        g )Nr&   r6   r?   rq   mr8   r  r(   r6   r/   r&   rq   r   rs   r  r   r   r                  r(      )
r(   rq   r   r   r   r   r  r  r  r  )
r(   r   rs   r   r  r  r        r   rA   )rA   r6   r/   r&   )rA   rA   rs   r  )rA   rA   rA   r  rA   rA   rA   rA   )rA   r6   r/   r&   rq   )rA   rA   r  r   r   )rA   rA   rA   r  r  )rA   rA   rA   rA   r   )r#  r#  r#  r&   )r#  r#  r#  r#  )r#  r#  r#  r&   rq   )r#  r#  r#  r#  r   )r#  r#  r#  r#  r#  )r   r9   r   r	   r  r   )il1il2il3il4r   rx   s         r   test_tril_indicesr(    sK   
q/C
qA
C
qA
C
qA
#C
,!"$ 	%A 			!R  A&A qvABDqvBCE AFqm,..0 12
 AFq.0224 56 AFq02224 56
 AFq36779 :;r!   c                       \ rS rSrS rSrg)TestTriuIndicesi  c           
      v   [        S5      n[        SSS9n[        SSS9n[        SSSS9n[        R                  " / SQ/ SQ/ S	Q/ S
Q/5      n[        R                  " SS5      R	                  SS5      n[        XQ   [        / SQ5      5        [        Xc   [        / SQ5      5        SXQ'   [        U[        / SQ/ SQ/ SQ/ SQ/5      5        SXc'   [        U[        / SQ/ SQ/ SQ/ SQ/5      5        SXR'   [        U[        / SQ/ SQ/ SQ/ SQ/5      5        SXd'   [        U[        / SQ/ SQ/ SQ/ SQ/5      5        g )Nr&   r6   r?   rq   r  r  r  r  r  r  r(   r  )
r(   r6   r/   r&   r   rs   r  r   r  r  )r(   r6   r/   r&   rq   rs   r  r   r   r  r  r  r   r   rA   r"  )rq   rA   rA   rA   )r   r   rA   rA   )r  r  r  rA   )rA   rA   rA   rA   rA   )r   rA   rA   rA   rA   )r   r  rA   rA   rA   )r  r   r!  rA   rA   r#  )rA   rA   r#  r#  )rq   rA   rA   r#  )rA   rA   r#  r#  r#  )r   rA   rA   r#  r#  )r   r  rA   rA   r#  )r   r9   r   r	   r  r   )r2   r  iu2iu3iu4r   rx   s          r   test_triu_indices!TestTriuIndices.test_triu_indices  sO   1o1"1"1Q'HHl"%&( ) IIa$$Q* 	16 !BC	E16  ": ;	<
 1 "2"1"1"2"4 5	6
 1 "6"5"6"6"8 9	: 1 "4"2"1"2"4 5	6
 1 "9"7"7"6"8 9	:r!   rf   N)rg   rh   ri   rj   r/  rk   rf   r!   r   r*  r*    s    .:r!   r*  c                       \ rS rSrS rSrg)TestTrilIndicesFromi  c                     [        [        [        [        R                  " S5      5        [        [        [        [        R                  " S5      5        g N)r6   )r6   r6   r6   )r   r   r   r9   r   r1   s    r   test_exceptions#TestTrilIndicesFrom.test_exceptions  -    j"3RWWT]Cj"3RWWY5GHr!   rf   Nrg   rh   ri   rj   r5  rk   rf   r!   r   r2  r2        Ir!   r2  c                       \ rS rSrS rSrg)TestTriuIndicesFromi  c                     [        [        [        [        R                  " S5      5        [        [        [        [        R                  " S5      5        g r4  )r   r   r   r9   r   r1   s    r   r5  #TestTriuIndicesFrom.test_exceptions  r7  r!   rf   Nr8  rf   r!   r   r;  r;    r9  r!   r;  c                        \ rS rSrS rS rSrg)
TestVanderi  c                 6   [         R                  " / SQ5      n[        U5      n[         R                  " / SQ/ SQ/ SQ/ SQ/5      n[        X#S S 2SS 24   5        UR                  S   n[        S5       H"  n[        XS9n[        X#S S 2XE-
  U24   5        M$     g )	N)r   r(   rL   r/   r   )r(   r(   r(   r(   r(   )r  ir&   rL   r(   )Q      r   r/   r(   r(   r   N)r9   r   r   r   shaperu   )r2   ry   vpowersr  r   s         r   r3   TestVander.test_basic  s    HH]#1I?*-,. /
 	1QUm,LLOqAqAqACE"23 r!   c                    [        / SQ[        R                  S9n[        U5      n[        R                   " / SQ/ SQ/ SQ/5      n[	        X#5        [        SS/5      n[        USS	9n[        R                   " / S
Q/ SQ/5      n[	        X#5        g )N)r   r  r-   )y   r   r(   )   rJ  r(   )   r  r(         ?      ?      ?      r/   rC  )y               @rN  r(   )y              rO  r(   )r   r9   int8r   r   )r2   ry   rF  expecteds       r   test_dtypesTestVander.test_dtypes  s|    -rww/1I88\*)+ , 	1'66"#1N88]+- .
 	1'r!   rf   N)rg   rh   ri   rj   r3   rR  rk   rf   r!   r   r?  r?    s    4(r!   r?  )-__doc__numpy.testingr   r   r   r   r   r   numpyr	   r
   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r9   r   r    r#   rm   r   r   r   r   r   r   r  r  r  r(  r*  r2  r;  r?  rf   r!   r   <module>rW     s        
  U( U(p,1 ,1^
# 
#	# 	#y yxA A	'52
/0,1,;^/: /:dI II I( (r!   