
    gA7                     R   d dl mZmZmZ d dlmZmZmZmZm	Z	m
Z
mZ d dlmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ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*m+Z+ d dl)m,Z, eZ-d	 Z.d
 Z/d Z0d Z1d Z2d Z3d Z4d Z5d Z6e+d             Z7d Z8d Z9d Z:d Z;d Z<d Z=dS )    )LambdaSymbolsymbols)R2R2_pR2_rR3_rR3_cR3_s	R2_origin)ManifoldPatchCoordSystem
CommutatorDifferentialTensorProductWedgeProductBaseCovarDerivativeOpCovarDerivativeOpLieDerivativecovariant_ordercontravariant_ordertwoform_to_matrixmetric_to_Christoffel_1stmetric_to_Christoffel_2ndmetric_to_Riemann_componentsmetric_to_Ricci_componentsintcurve_diffequintcurve_series)trigsimpsimplify)sqrtatan2sin)Matrix)raisesnocache_fail)warns_deprecated_sympyc                     t          d          \  } }}}d| |f||  fgi}t          dt          | |g|          }t          dt          ||g|          }|j         \  }}|                    |          t	          | g|gg          k    sJ t          dd          \  }}d|f| fgi}t          dt          |g|          }	t          dt          |g|          }
t          t                    5  |
                    |	           d d d            n# 1 swxY w Y   t          d          \  }}d|f|d	z  fgi}t          dt          |g|          }t          dt          |g|          }t          t                    5  |                    |           d d d            n# 1 swxY w Y   t          d
          \  }}}}}}||fd	|z  d|z  fg||fd|z  d	|z  fgd}t          dt          ||f|          }t          dt          ||f|          }t          dt          ||f|          }|j         \  }}|j         \  }}|j         \  }}|                    |          t	          |d	z  |dz  g          k    sJ |                    |          t	          d|z  d|z  g          k    sJ |                    |          t	          |dz  |dz  g          k    sJ |                    |          t	          |dz  |d	z  g          k    sJ t          d
          \  }}}}}}||fd	|z  d|z  dz   fg||f| d	z
  d	|z  fgd}t          dt          ||f|          }t          dt          ||f|          }t          dt          ||f|          }|j         \  }}|j         \  }}|j         \  }}|                    |          t	          |d	z  |dz
  dz  g          k    sJ |                    |          t	          d|z  d	z
  d|z  dz   d	z  g          k    sJ |                    |          t	          | d	z  dz
  d	|z  dz
  dz  g          k    sJ |                    |          t	          | d	z
  d	|z  g          k    sJ t          d
          \  }}}}}}t          ||fd	|z  d|z  dz   f          t          ||f| d	z
  d	|z  f          d}t          dt          ||f|          }t          dt          ||f|          }t          dt          ||f|          }|j         \  }}|j         \  }}|j         \  }}|                    |          t	          |d	z  |dz
  dz  g          k    sJ |                    |          t	          d|z  d	z
  d|z  dz   d	z  g          k    sJ |                    |          t	          | d	z  dz
  d	|z  dz
  dz  g          k    sJ |                    |          t	          | d	z
  d	|z  g          k    sJ d S )Nzp q r s)firstsecondr*   r+   a bTpositivezc d   za, b, c, d, e, f   )C1C2)r3   C3r2   r3   r4         )r1   )r4   r3   )	r   r   r   	transformr%   r&   NotImplementedError
ValueErrorr   )pqrsrelR2_pqR2_rsabR2_aR2_bcdR2_cR2_defr2   r3   r4   s                       ^/var/www/html/ai-engine/env/lib/python3.11/site-packages/sympy/diffgeom/tests/test_diffgeom.pytest_coordsys_transformrM      s   ##JAq!Q!Q!aR 1
2CQFC88E)aVS99E=DAq??5!!VqbTA3K%8%88888 54(((DAq!u
.Cw	A344DxQC55D	#	$	$  t               5>>DAq!1w
0Cw	A344DxQC55D	
		  t               122Aq!Q1a&1Q3!*-1v!QqSz*, ,C	T9q!fc	2	2B	T9q!fc	2	2B	T9q!fc	2	2B:DAq:DAq:DAq<<vqsAaCj111111<<vqsAaCj111111<<vqsAaCj111111<<vqsAaCj111111122Aq!Q1a&1Q3!a.11vQ!}-/ /C	T9q!fc	2	2B	T9q!fc	2	2B	T9q!fc	2	2B:DAq:DAq:DAq<<vqsQUAI&6777777<<vr!tax!A#'1&=>>>>>><<vr!tax!A#'1&=>>>>>><<vrAvqsm444444 122Aq!Q1A1acAg77aVqb1fac]335 5C	T9q!fc	2	2B	T9q!fc	2	2B	T9q!fc	2	2B:DAq:DAq:DAq<<vqsQUAI&6777777<<vr!tax!A#'1&=>>>>>><<vr!tax!A#'1&=>>>>>><<vrAvqsm44444444s$   *DDD8FF!Fc            	      z   t          dd          \  } }}}t          j        | |g          }t          j        ||g          }t          j        dz  t          j        dz  z
  t          j        dz  z
                      |          dk    sJ t          t          j        dz  t          j        dz  z
  t          j        dz  z
                      |                    dk    sJ t          t	          j
        t          j        dz  t          j        dz  z                                 |                                                    d|z  k    sJ t          dd          \  }}t          |g|gg          }|t          j        t          t          j        t          |                                        t                    k    sJ t!                      5  |t          j        t          t          j        t          |                                        t                    k    sJ 	 d d d            d S # 1 swxY w Y   d S )Nzx0, y0, r0, theta0T)realr/   r   r,   r-   )r   r   pointr   r   r=   xyrcallr    e_rdoitr%   r8   	applyfuncr!   r(   coord_tuple_transform_to)	x0y0r0theta0point_rpoint_prB   rC   ms	            rL   test_R2r_   Y   sQ    !5DAAABBj"b""Gj"f&&G D!GbdAga'..w771<<<<bdAga'"$'188AACCqHHHHBF247RT1W,--33G<<AACCDD"LLLL 54(((DAqaSzA tT^D!%<%<==GGQQQQQQ 
 	!	! N ND1$/a88: ::C)H:M:MN N N N NN N N N N N N N N N N N N N N N N Ns   AH00H47H4c            	      j   t          dd          \  } }}t          | g|g|gg          }|t          j        t          t	          j        t          |                                        t                    k    sJ |t          j        t          t	          j        t          |                                        t                    k    sJ |t          j        t          t          j        t          |                                        t                    k    sJ t                      5  |t          j	        t          t	          j	        t          |                                        t                    k    sJ |t          j	        t          t	          j	        t          |                                        t                    k    sJ |t          j	        t          t          j	        t          |                                        t                    k    sJ 	 d d d            d S # 1 swxY w Y   d S )Nza b cTr-   )
r   r%   r
   r8   r	   rV   r!   r   r(   rW   )rB   rC   rF   r^   s       rL   test_R3ra   p   s]   g---GAq!aS1#AtT^D!%<%<==GGQQQQQQdnT1%%' ''0y':':; ; ; ; dnT1%%' ''0y':':; ; ; ; 
 	!	! N ND1$/a88: ::C)H:M:MN N N N D1$/a88: ::C)H:M:MN N N N D1$/a88: ::C)H:M:MN N N N NN N N N N N N N N N N N N N N N N Ns   )C1H((H,/H,c                      t           j        \  } }t          j        \  }}|                    t                    |t	          |          z  k    sJ d S N)r   r   r   rewriter$   )rQ   rR   r=   thetas       rL   test_CoordinateSymbolrf      sC    <DAq|HAu99T??aE

l******    c                     t          d          \  } }t          j        | |g          }|j        | |hk    sJ |                    t                    |                                cxk    rt          | |g          k    sn J |                    t                    t          t          | dz  |dz  z             t          ||           g          k    sJ d S )Nzx, yr/   )	r   r   rP   free_symbolscoordsr%   r   r"   r#   )rQ   rR   r;   s      rL   
test_pointrk      s    6??DAq
Aq6A>aV####88D>>QXXZZ999961a&>>99999988D>>VT!Q$A+%6%6a$DEEEEEEEErg   c                     t          t          j        t          j                  dk    sJ t          t          j        t          j        z  t          j        t          j        z            dk    sJ t          t          j        t          j        z  t          j        t          j        z            t          j        t          j        z  k    sJ t          t          j        t          j                  }  | t          j                  t          j        t          j        dz  t          j        dz  z   dz  z  t          t          j                  z  k    sJ d S )Nr   r/   )	r   r   e_xe_yrQ   rT   rR   r$   re   )rF   s    rL   test_commutatorrp      s    bfbf%%****bd26k24;//14444bd26k24;//24;>>>>2626""A1RT77bdBD!GbdAg-44S]]BBBBBBBrg   c                  |   t           j        t           j        z  } t          |           }|                     d           | k    sJ  |t           j        t           j                  dk    sJ  |t           j        t           j        t           j        z            t           j        k    sJ t          |          dk    sJ d S )Nr6   r   )r   rQ   dyr   rS   rn   ro   )xdydxdys     rL   test_differentialru      s    
$ru*CD99T??c!!!!41$$$$4RV$$,,,,""""""rg   c                      t          t          j        t          j                  t          j        t          j                  t          j        t          j                  t          j        t          j                  z  cxk    rdk    sn J  t          t          j        t          j                  d t          j                  t          j        k    sJ  t          t          j        t          j                  t          j        d           t          j        k    sJ  t          t          j        t          j                  t          j                  t          j        k    sJ t          t          j        t          j                  t          j        t          j        z  k    sJ  t          t          j        t          j                  t          j        t          j                  t          j        t          j                  t          j        t          j                  z  cxk    rdk    sn J  t          t          j        t          j                  d t          j                  t          j        k    sJ  t          t          j        t          j                  t          j        d           t          j        k    sJ  t          t          j        t          j                  t          j                  t          j        k    sJ t          t          j        t          j                  t          j        t          j        z  k    sJ  t          t          j        t          j                  t          j        t          j                  t          j        t          j                  t          j        t          j                  z  cxk    rdk    sn J  t          t          j        t          j                  d t          j                  t          j        k    sJ  t          t          j        t          j                  t          j        d           t          j        k    sJ  t          t          j        t          j                  t          j                  t          j        k    sJ t          t          j        t          j                  t          j        t          j        z  k    sJ  t          t          j        t          j                  t          j        t          j                  t          j        t          j                  t          j        t          j                  z  cxk    rdk    sn J  t          t          j        t          j                  d t          j                  t          j        k    sJ  t          t          j        t          j                  t          j        d           t          j        k    sJ  t          t          j        t          j                  t          j                  t          j        k    sJ  t          t          j        t          j                  t          j        dz  t          j        dz  z   t          j        dz  t          j        dz  z             dt          j        z  t          j        z  k    sJ  t          t          j        t          j                  t          j        t          j                  dk    sJ  t          t          j        t          j                  t          j        t          j                  dk    sJ d S )Nr6   r/      )	r   r   dxrr   rn   ro   rQ   rR   r    rg   rL   test_productsrz      s   =
ru fbf& &)+rvruRV}})DJ J J JHIJ J J J J J&=&&tRV44====&=&&rvt44====&=&&rv.."%7777ru%%be3333=
 bd$ $')vbd||bfRTll'BH H H HFGH H H H H H(=((rt44>>>>(=((t44>>>>(=((.."&8888rv&&"$-7777=
rv vrt% %(*bfrt(DJ J J JHIJ J J J J J'=''bd33ru<<<<'=''55????'=''//269999rv&&"$-7777=
 tRV% %(*rtruRV}}(DJ J J JHIJ J J J J J'=''bf55????'=''d33ru<<<<'=''--6666'=''a"$'(9"$'BD!G:KLLPQRTRVPVWYW[P[[[[[%<ru%%bfbf55::::'<''bd33q888888rg   c                     t          t          j        t          j                  t          j        t          j                  cxk    rdk    sn J t          t          j        t          j                  t          j        t          j                  cxk    rdk    sn J t          t          j        t          j                  t          t          j        t          j                  cxk    rdk    sn J t          t          j        t          j                  t          t          j        t          j                  k    sJ t          t          j        t          j        z   t          j                  dk    sJ  t          t          j        t          t          j	        t          j
                            t          j        t          j                  dk    sJ d S Nr   r6   )r   r   rn   rR   rQ   r   rT   ro   r   rx   rr   ry   rg   rL   test_lie_derivativer}      so   &&"&,,;;;;!;;;;;;&&"&,,;;;;!;;;;;;((Jrvrv,F,FKKKK!KKKKKK((Jrvrv,F,FFFFF"&"$//14444-=
beRU++- --/VRV= =@AB B B B B Brg   c                     t          t          t          j        t          j                  t          t          j        t          j                  z             } t          t          d|           } |t          j                  dk    sJ  |t          j        t          j        z            t          j        k    sJ t          t          j        t          j        z  |           } |t          j                  t          j        k    sJ  |t          j        t          j        z            t          j        t          j        z  k    sJ d S r|   )
r   TPr   rx   rr   r   r   rQ   rn   r   )chcvds     rL   test_covar_derivr      s    	"2beRU#3#3b6F6F#F	G	GB
a
,
,C3rt99>>>>3rtBF{rv%%%%
BDK
,
,C3rt993rtBF{rtBF{******rg   c                     t          d          } t          j        ddg          }t          j         t          j        z  t          j        t          j        z  z   }t          || |          \  }}t          |          dk    sJ t          |          dk    sJ t          || |t                    \  }}t          |          dk    sJ t          |          dk    sJ d S )Ntr6   r   zA[f_1(t) + Derivative(f_0(t), t), -f_0(t) + Derivative(f_1(t), t)]z[f_0(0) - 1, f_1(0)]z2[Derivative(f_0(t), t), Derivative(f_1(t), t) - 1])r   r   rP   r   rR   rn   rQ   ro   r   strr   )r   start_pointvector_field	equations	init_conds        rL   test_intcurve_diffequr      s    A*aV$$KD5<"$rv+-L+L![IIIyy>>`````y>>33333+L![$OOIy JK K K Ky>>3333333rg   c                  
  	
 t           j        t           j        z   t          t           j        t           j        z  t           j        t           j        z  z             } t          t           j        | z            t          t           j        t          t           j        t           j        z            z            z   t          t           j        t           j                  t          t           j        t           j                  z   }t          t           j        t           j                  t          t           j        t           j                  z   t          t           j        t           j                  t           j        z   t           j        dz  	t           j        t           j        z  
t          t           j        t           j                  t          t           j        t           j                  z   t          t           j        t           j                  }t           j
        t           j        z   }t          t           j
        t           j                  }t          t           j
        t           j        t           j
                  }t          t           j
        t           j                  }t                    dk    sJ t          |           dk    sJ t                    dk    sJ t          | |z             dk    sJ t          | z             dk    sJ t          | z             dk    sJ t          | |z             dk    sJ t          |          dk    sJ t          |          dk    sJ t          |          dk    sJ t          ||z             dk    sJ t          t          fd           t          t          	fd           t          t          
fd           t!          |          t#          ddgddgg          k    sJ t!                    t#          ddgddgg          k    sJ t!          |          t#          dd	gddgg          k    sJ t          t          fd
           t          t          fd           t          t          fd           t          t          fd           t          t          fd           t          t          fd           t          t          fd           d S )Nrw   r6   r/   r0   c                  "    t                     S rc   r   )	misform_as   rL   <lambda>z7test_helpers_and_coordinate_dependent.<locals>.<lambda>      y99 rg   c                  "    t                     S rc   r   )	misform_bs   rL   r   z7test_helpers_and_coordinate_dependent.<locals>.<lambda>	  r   rg   c                  "    t                     S rc   r   )	misform_cs   rL   r   z7test_helpers_and_coordinate_dependent.<locals>.<lambda>
  r   rg   r   rm   c                  "    t                     S rc   r   )one_forms   rL   r   z7test_helpers_and_coordinate_dependent.<locals>.<lambda>  s    0:: rg   c                  "    t                     S rc   r   )
three_forms   rL   r   z7test_helpers_and_coordinate_dependent.<locals>.<lambda>  s    0<< rg   c                  "    t                     S rc   r   )metric_ambigs   rL   r   z7test_helpers_and_coordinate_dependent.<locals>.<lambda>  s    0>> rg   c                  "    t                     S rc   )r   twoform_not_syms   rL   r   z7test_helpers_and_coordinate_dependent.<locals>.<lambda>      8II rg   c                  "    t                     S rc   )r   r   s   rL   r   z7test_helpers_and_coordinate_dependent.<locals>.<lambda>  r   rg   c                  "    t                     S rc   )r   r   s   rL   r   z7test_helpers_and_coordinate_dependent.<locals>.<lambda>  s    ;OLL rg   c                  "    t                     S rc   )r   r   s   rL   r   z7test_helpers_and_coordinate_dependent.<locals>.<lambda>  s    9/JJ rg   )r   drrx   r   rQ   r=   rR   r   rr   r   rn   ro   r   r   r&   r:   r   r%   )two_formmetrictwoform_not_TP
one_vector
two_vectorthree_vectortwo_wpr   r   r   r   r   r   r   s          @@@@@@@rL   %test_helpers_and_coordinate_dependentr      s9   uru}HBDJbe344H
X %bd<RU
+C+C&CDDEJ25"%((=+F+FFF ..rube1L1LLLbeRU++be3IqIbeI#BE2511M"%4O4OOO!"%//N"&Jrvrv..J 88L"&((F8$$))))8$$)))):&&!++++8f,--22228l233q88888o566!;;;;8n455::::z**a////z**a////|,,1111zF233q8888
:9999:::
:9999:::
:9999:::V$$AA/?(@(@@@@@_--!Q!Q8H1I1IIIII^,,B!Q7H0I0IIIII
:::::;;;
:<<<<===
:>>>>???
:IIIIJJJ
:IIIIJJJ
:LLLLMMM
:JJJJKKKKKrg   c                  N    t          t          d            t          t          d            t          t          d            t          t          d            t          t          d            t          t          d            t          t          d            t          t          d            t          t          d	            t          t          d
            t          d           t          t           fd           t          t           fd           t          t           fd           t          t           fd           t          t          d            t          t          d            t          t          d            t          t          d            d S )Nc                  >    t          j        t           j                  S rc   )r   rn   ry   rg   rL   r   z(test_correct_arguments.<locals>.<lambda>  s    rvbf~~ rg   c                  >    t          j        t           j                  S rc   )r   rn   rx   ry   rg   rL   r   z(test_correct_arguments.<locals>.<lambda>  s    rvbe}} rg   c                  J    t          t          j        t          j                  S rc   )r   r   rn   rQ   ry   rg   rL   r   z(test_correct_arguments.<locals>.<lambda>  s    z"&"$77 rg   c                  J    t          t          j        t          j                  S rc   )r   r   rx   rn   ry   rg   rL   r   z(test_correct_arguments.<locals>.<lambda>  s    z"%88 rg   c                  N    t          t          t          j                            S rc   )r   r   rn   ry   rg   rL   r   z(test_correct_arguments.<locals>.<lambda>!  s    |L,@,@AA rg   c                  >    t          j        t           j                  S rc   )r   rx   rQ   ry   rg   rL   r   z(test_correct_arguments.<locals>.<lambda>#  s    ruRT{{ rg   c                  J    t          t          j        t          j                  S rc   )r   r   rx   ry   rg   rL   r   z(test_correct_arguments.<locals>.<lambda>%  s    }RUBE:: rg   c                  J    t          t          j        t          j                  S rc   )r   r   rQ   rx   ry   rg   rL   r   z(test_correct_arguments.<locals>.<lambda>&  s    }RT2599 rg   c                  6    t          t          j        g           S rc   )r   r   rx   ry   rg   rL   r   z(test_correct_arguments.<locals>.<lambda>(  s    0;; rg   c                  6    t          t          j        g           S rc   )r   r   rQ   ry   rg   rL   r   z(test_correct_arguments.<locals>.<lambda>)  s    0r:: rg   rB   c                  b    t          t          j         t          j        ddg                    S Nr6   r/   )r   r   rx   r   rP   rB   s   rL   r   z(test_correct_arguments.<locals>.<lambda>,  s#    ruaQF9K9KLL rg   c                  b    t          t          j         t          j        ddg                    S r   )r   r   rQ   r   rP   r   s   rL   r   z(test_correct_arguments.<locals>.<lambda>-  s#    rtQ
Aq68J8JKK rg   c                  b    t          t          j         t          j        ddg                    S r   )r   r   rx   r   rP   r   s   rL   r   z(test_correct_arguments.<locals>.<lambda>/  s$    /q$*aV:L:LMM rg   c                  b    t          t          j         t          j        ddg                    S r   )r   r   rQ   r   rP   r   s   rL   r   z(test_correct_arguments.<locals>.<lambda>0  s$    /aQF9K9KLL rg   c                  N    t          t          j        t          j        z             S rc   )r   r   rn   rx   ry   rg   rL   r   z(test_correct_arguments.<locals>.<lambda>2  s    226BE>BB rg   c                  N    t          t          j        t          j        z             S rc   )r   r   rn   rx   ry   rg   rL   r   z(test_correct_arguments.<locals>.<lambda>3  s    rv~>> rg   c                  N    t          t          j        t          j        z            S rc   )r   r   rn   ro   ry   rg   rL   r   z(test_correct_arguments.<locals>.<lambda>5  s    226"&=AA rg   c                  N    t          t          j        t          j        z            S rc   )r   r   rx   rr   ry   rg   rL   r   z(test_correct_arguments.<locals>.<lambda>6  s    ruRU{;; rg   )r&   r:   r   r   s   @rL   test_correct_argumentsr     s   
:--...
:,,---
:77888
:88999
:AABBB
:**+++
:::;;;
:99:::
:;;<<<
:::;;;sA
:LLLLMMM
:KKKKLLL
:MMMMNNN
:LLLLMMM
:BBCCC
:>>???
:AABBB
:;;<<<<<rg   c                     t          j                    \  } }t          j                    \  }}t          j                    \  }}t	          |           | k    sJ t	          | |z            | |z  k    sJ t	          ||z            ||z  k    sJ t	          ||z            ||z  k    sJ d| z
  |z  d| z
  dz  z  |d| z
  z  k    sJ d S r   )r   coord_functionsbase_oneformsbase_vectorsr!   )rQ   rR   rx   rr   exeys         rL   test_simplifyr   8  s    !!DAq!!FB  FBA;;!AaC==AaCBrE??be####BrE??be####qS"HqsQh"ac(******rg   c                  $   t           j        t           j        z  t           j        t           j        z  z
  } t           j        dz  t           j        dz  z   t           j        z  t           j        t           j        z  t           j        z  z
  }t          | |                                          t           j        dz  t           j        z  dt           j        dz  z  t           j        z  z
  t           j        t           j        z  t           j        z  z
  k    sJ d S )Nr/   r0   )r   rQ   rn   rR   ro   r   expand)XYs     rL   test_issue_17917r   C  s    
RVbd26k!A	q247	BF"RT"$Yrv%55AA%%''
a24726))BDIbf,<<> > > > > >rg   c                     t          dd          } t          d|           }t                      5  t          d|ddg           d d d            n# 1 swxY w Y   t                      5  t          d|ddg          }d d d            n# 1 swxY w Y   t                      5  t	          | j                   d d d            n# 1 swxY w Y   t                      5  t	          |j                   d d d            d S # 1 swxY w Y   d S )NMr/   PCar2drQ   rR   )names)r   r   r(   r   listpatches
transforms)r^   r;   rF   s      rL   test_deprecationsr   I  s   aAc1A		!	! 2 2GQsCj11112 2 2 2 2 2 2 2 2 2 2 2 2 2 2 
 	!	! 0 0S#J//0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
 	!	!  QY               
 	!	!  Q\                 sG   AAA)B		BB"CC
CC>>DDN)>
sympy.corer   r   r   sympy.diffgeom.rnr   r   r   r	   r
   r   r   sympy.diffgeomr   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   sympy.simplifyr    r!   sympy.functionsr"   r#   r$   sympy.matricesr%   sympy.testing.pytestr&   r'   r(   r   rM   r_   ra   rf   rk   rp   ru   rz   r}   r   r   r   r   r   r   r   ry   rg   rL   <module>r      s   . . . . . . . . . . I I I I I I I I I I I I I I I I I IG G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G
 . - - - - - - - , , , , , , , , , , ! ! ! ! ! ! 5 5 5 5 5 5 5 5 7 7 7 7 7 7E5 E5 E5PN N N.N N N2+ + +F F FC C C# # #9 9 9<B B B + + +
4 
4 
4.L .L .Lb= = =<+ + +> > >    rg   