
    RieF                        d Z ddlmZmZmZmZmZmZmZm	Z	m
Z
 ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZmZmZ dd	l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' ddl(m)Z) ddl*m+Z+m,Z, ddl-m.Z. ddl/m0Z0 ddl1m2Z2 ddl3m4Z4 ddl5m6Z6 ddl7m8Z8 ddl9m:Z: ddl;m<Z<m=Z=m>Z>m?Z?m@Z@ ddlAmBZB ddlCmDZD  ejE         ed           ed                    ZFd ZGd ZHd ZId ZJd ZKd ZLd ZMd  ZNd! ZOd" ZPd# ZQd$ ZRd% ZSd& ZTd' ZUd( ZVd) ZWd* ZXd+ ZYd, ZZd- Z[d. Z\d/ Z]d0 Z^d1 Z_d2 Z`d3 Zad4 Zbd5 Zcd6 Zdd7 Zed8 Zfd9 Zgd: Zhd; Zid< Zjd= Zkd> Zld? Zmd@ ZndA ZodB ZpdC ZqdD ZrdE ZsdFS )GzPTests for classes defining properties of ground domains, e.g. ZZ, QQ, ZZ[x] ...     )	AlgebraicNumberEFloatIIntegerRationaloopi_illegal)S)exp)sqrt)sin)Poly)xyz)HAS_GMPY)ZZQQRRCCFFGFEXEXRAWZZ_gmpy	ZZ_pythonQQ_gmpy	QQ_python)AlgebraicField)ZZ_IQQ_I)PolynomialRing)	RealField)field_isomorphism)ring)cyclotomic_poly)field)FiniteExtension)UnificationFailedGeneratorsErrorCoercionFailedNotInvertibleDomainError)raises)product      c                 ,    |                      |          S N)unify)K0K1s     Flib/python3.11/site-packages/sympy/polys/domains/tests/test_domains.pyr6   r6   )   s    88B<<    c                  X'   t          d          } t          | |           | k    sJ t          | t                    t          k    sJ t          | t                    t          k    sJ t          | t                    t          k    sJ t          | t
                    t
          k    sJ t          | t                    t          k    sJ t          | t          t                             t          t                   k    sJ t          | t          j        t                              t          j        t                    k    sJ t          | t                    t          k    sJ t          t          |           t          k    sJ t          t          t                    t          k    sJ t          t          t                    t          k    sJ t          t          t                    t          k    sJ t          t          t
                    t
          k    sJ t          t          t                    t          k    sJ t          t          t          t                             t          t                   k    sJ t          t          t          j        t                              t          j        t                    k    sJ t          t          t                    t          k    sJ t          t          |           t          k    sJ t          t          t                    t          k    sJ t          t          t                    t          k    sJ t          t          t                    t          k    sJ t          t          t
                    t
          k    sJ t          t          t                    t          k    sJ t          t          t          t                             t          t                   k    sJ t          t          t          j        t                              t          j        t                    k    sJ t          t          t                    t          k    sJ t          t          |           t          k    sJ t          t          t                    t          k    sJ t          t          t                    t          k    sJ t          t          t                    t          k    sJ t          t          t                    t          j        t          t          d          t          d                    k    sJ t          t          t
                    t          k    sJ t          t          t                    t          k    sJ t          t          t          t                             t          t                   k    sJ t          t          t          t                             t          t                   k    sJ t          t          t          j        t                              t          j        t                    k    sJ t          t          t          j        t                              t          j        t                    k    sJ t          t          t                    t          k    sJ t          t          |           t          k    sJ t          t          t                    t          k    sJ t          t          t                    t          k    sJ t          t          t                    t          k    sJ t          t          t                    t          j        t          t          d          t          d                    k    sJ t          t          t
                    t          k    sJ t          t          t                    t          k    sJ t          t          t          t                             t          t                   k    sJ t          t          t          t                             t          t                   k    sJ t          t          t          t                             t          t                   k    sJ t          t          t          t                             t          t                   k    sJ t          t          t          j        t                              t          j        t                    k    sJ t          t          t          j        t                              t          j        t                    k    sJ t          t          t          j        t                              t          j        t                    k    sJ t          t          t          j        t                              t          j        t                    k    sJ t          t          t                    t          k    sJ t          t
          |           t
          k    sJ t          t
          t                    t
          k    sJ t          t
          t                    t
          k    sJ t          t
          t                    t
          k    sJ t          t
          t
                    t
          k    sJ t          t
          t                    t          k    sJ t          t
          t          t                             t
          t                   k    sJ t          t
          t          j        t                              t          j        t                    k    sJ t          t
          t                    t          k    sJ t
          t                                       t          j        t                              t          j        t          t                    k    sJ t          t          |           t          k    sJ t          t          t                    t          k    sJ t          t          t                    t          k    sJ t          t          t                    t          k    sJ t          t          t
                    t          k    sJ t          t          t                    t          k    sJ t          t          t          t                             t          t                   k    sJ t          t          t          j        t                              t          j        t                    k    sJ t          t          t                    t          k    sJ t          t          t                   |           t          t                   k    sJ t          t          t                   t                    t          t                   k    sJ t          t          t                   t                    t          t                   k    sJ t          t          t                   t                    t          t                   k    sJ t          t          t                   t
                    t
          t                   k    sJ t          t          t                   t                    t          t                   k    sJ t          t          t                   t          t                             t          t                   k    sJ t          t          t                   t          j        t                              t          j        t                    k    sJ t          t          t                   t                    t          k    sJ t          t          j        t                    |           t          j        t                    k    sJ t          t          j        t                    t                    t          j        t                    k    sJ t          t          j        t                    t                    t          j        t                    k    sJ t          t          j        t                    t                    t                              t                    k    sJ t          t          j        t                    t
                    t          j        t                    k    sJ t          t          j        t                    t                    t          j        t                    k    sJ t          t          j        t                    t          t                             t          j        t                    k    sJ t          t          j        t                    t          j        t                              t          j        t                    k    sJ t          t          j        t                    t                    t          k    sJ t          t          |           t          k    sJ t          t          t                    t          k    sJ t          t          t                    t          k    sJ t          t          t                    t          k    sJ t          t          t
                    t          k    sJ t          t          t                    t          k    sJ t          t          t          t                             t          k    sJ t          t          t          j        t                              t          k    sJ t          t          t                    t          k    sJ d S )Nr3   r2   )r   r6   r   r   ALGr   r   r   
frac_fieldr   r"   r#   algebraic_fieldr   r   r   )F3s    r9   test_Domain_unifyr@   ,   s   	ABR==BR==BR==BS>>S    R==BR==BRUr!u$$$$R]1%%&&"-*:*:::::R==BR==BR==BR==BS>>S    R==BR==BRUr!u$$$$R]1%%&&"-*:*:::::R==BR==BR==BR==BS>>S    R==BR==BRUr!u$$$$R]1%%&&"-*:*:::::R==Br??d""""r??d""""t$$$$r??d""""sr1!T!WWd1ggFFFFFFr??b    r??b    r!ua((((tAw47****r}Q''((DOA,>,>>>>>tq))**doa.@.@@@@@r??b    r??d""""r??d""""t$$$$r??d""""sr1!T!WWd1ggFFFFFFr??b    r??b    r!ua((((tAw47****r!ua((((tAw47****r}Q''((DOA,>,>>>>>tq))**doa.@.@@@@@r}Q''((DOA,>,>>>>>tq))**doa.@.@@@@@r??b    R==BR==BR==BS>>RR==BR==BRUr!u$$$$R]1%%&&"-*:*:::::R==Ba5;;r}Q''((BM!Q,?,?????R==BR==BR==BS>>RR==BR==BRUr!u$$$$R]1%%&&"-*:*:::::R==BAr!u$$$$Ar!u$$$$Ar!u$$$$AA&&&&Ar!u$$$$Ar!u$$$$A1"Q%''''Aa(())R]1-=-=====Ar!!!!q!!2&&"-*:*:::::q!!2&&"-*:*:::::q!!2&&"-*:*:::::q!!3''3>>!+<+<<<<<q!!2&&"-*:*:::::q!!2&&"-*:*:::::q!!2a5))R]1-=-=====q!!2=#3#344a8H8HHHHHq!!2&&",,,,R==BR==BR==BS>>RR==BR==BRUr!!!!R]1%%&&",,,,R==Br:   c                  FG   t          t          j        t                    t                    t          j        t                    k    sJ t          t          j        t                    t                    t	          j        t                    k    sJ t          t	          j        t                    t                    t	          j        t                    k    sJ t          t	          j        t                    t                    t	          j        t                    k    sJ t          t          t          j        t                              t          j        t                    k    sJ t          t          t          j        t                              t	          j        t                    k    sJ t          t          t	          j        t                              t	          j        t                    k    sJ t          t          t	          j        t                              t	          j        t                    k    sJ t          t          j        t          t
                    t                    t          j        t          t
                    k    sJ t          t          j        t          t
                    t                    t	          j        t          t
                    k    sJ t          t	          j        t          t
                    t                    t	          j        t          t
                    k    sJ t          t	          j        t          t
                    t                    t	          j        t          t
                    k    sJ t          t          t          j        t          t
                              t          j        t          t
                    k    sJ t          t          t          j        t          t
                              t	          j        t          t
                    k    sJ t          t          t	          j        t          t
                              t	          j        t          t
                    k    sJ t          t          t	          j        t          t
                              t	          j        t          t
                    k    sJ t          t          j        t                    t                    t          j        t                    k    sJ t          t          j        t                    t                    t	          j        t                    k    sJ t          t	          j        t                    t                    t	          j        t                    k    sJ t          t	          j        t                    t                    t	          j        t                    k    sJ t          t          t          j        t                              t          j        t                    k    sJ t          t          t          j        t                              t	          j        t                    k    sJ t          t          t	          j        t                              t	          j        t                    k    sJ t          t          t	          j        t                              t	          j        t                    k    sJ t          t          j        t          t
                    t                    t          j        t          t
                    k    sJ t          t          j        t          t
                    t                    t	          j        t          t
                    k    sJ t          t	          j        t          t
                    t                    t	          j        t          t
                    k    sJ t          t	          j        t          t
                    t                    t	          j        t          t
                    k    sJ t          t          t          j        t          t
                              t          j        t          t
                    k    sJ t          t          t          j        t          t
                              t	          j        t          t
                    k    sJ t          t          t	          j        t          t
                              t	          j        t          t
                    k    sJ t          t          t	          j        t          t
                              t	          j        t          t
                    k    sJ t          t          j        t                    t          j        t                              t          j        t                    k    sJ t          t          j        t                    t	          j        t                              t	          j        t                    k    sJ t          t	          j        t                    t          j        t                              t	          j        t                    k    sJ t          t	          j        t                    t	          j        t                              t	          j        t                    k    sJ t          t          j        t          t
                    t          j        t                              t          j        t          t
                    k    sJ t          t          j        t          t
                    t	          j        t                              t	          j        t          t
                    k    sJ t          t	          j        t          t
                    t          j        t                              t	          j        t          t
                    k    sJ t          t	          j        t          t
                    t	          j        t                              t	          j        t          t
                    k    sJ t          t          j        t                    t          j        t          t
                              t          j        t          t
                    k    sJ t          t          j        t                    t	          j        t          t
                              t	          j        t          t
                    k    sJ t          t	          j        t                    t          j        t          t
                              t	          j        t          t
                    k    sJ t          t	          j        t                    t	          j        t          t
                              t	          j        t          t
                    k    sJ t          t          j        t          t
                    t          j        t          t                              t          j        t          t
          t                    k    sJ t          t          j        t          t
                    t	          j        t          t                              t	          j        t          t
          t                    k    sJ t          t	          j        t          t
                    t          j        t          t                              t	          j        t          t
          t                    k    sJ t          t	          j        t          t
                    t	          j        t          t                              t	          j        t          t
          t                    k    sJ t          t          j        t                    t          j        t                              t          j        t                    k    sJ t          t          j        t                    t	          j        t                              t	          j        t                    k    sJ t          t	          j        t                    t          j        t                              t	          j        t                    k    sJ t          t	          j        t                    t	          j        t                              t	          j        t                    k    sJ t          t          j        t          t
                    t          j        t                              t          j        t          t
                    k    sJ t          t          j        t          t
                    t	          j        t                              t	          j        t          t
                    k    sJ t          t	          j        t          t
                    t          j        t                              t	          j        t          t
                    k    sJ t          t	          j        t          t
                    t	          j        t                              t	          j        t          t
                    k    sJ t          t          j        t                    t          j        t          t
                              t          j        t          t
                    k    sJ t          t          j        t                    t	          j        t          t
                              t	          j        t          t
                    k    sJ t          t	          j        t                    t          j        t          t
                              t	          j        t          t
                    k    sJ t          t	          j        t                    t	          j        t          t
                              t	          j        t          t
                    k    sJ t          t          j        t          t
                    t          j        t          t                              t          j        t          t
          t                    k    sJ t          t          j        t          t
                    t	          j        t          t                              t	          j        t          t
          t                    k    sJ t          t	          j        t          t
                    t          j        t          t                              t	          j        t          t
          t                    k    sJ t          t	          j        t          t
                    t	          j        t          t                              t	          j        t          t
          t                    k    sJ t          t          j        t                    t          j        t                              t          j        t                    k    sJ t          t          j        t                    t	          j        t                              t          j        t                    k    sJ t          t	          j        t                    t          j        t                              t          j        t                    k    sJ t          t	          j        t                    t	          j        t                              t	          j        t                    k    sJ t          t          j        t          t
                    t          j        t                              t          j        t          t
                    k    sJ t          t          j        t          t
                    t	          j        t                              t          j        t          t
                    k    sJ t          t	          j        t          t
                    t          j        t                              t          j        t          t
                    k    sJ t          t	          j        t          t
                    t	          j        t                              t	          j        t          t
                    k    sJ t          t          j        t                    t          j        t          t
                              t          j        t          t
                    k    sJ t          t          j        t                    t	          j        t          t
                              t          j        t          t
                    k    sJ t          t	          j        t                    t          j        t          t
                              t          j        t          t
                    k    sJ t          t	          j        t                    t	          j        t          t
                              t	          j        t          t
                    k    sJ t          t          j        t          t
                    t          j        t          t                              t          j        t          t
          t                    k    sJ t          t          j        t          t
                    t	          j        t          t                              t          j        t          t
          t                    k    sJ t          t	          j        t          t
                    t          j        t          t                              t          j        t          t
          t                    k    sJ t          t	          j        t          t
                    t	          j        t          t                              t	          j        t          t
          t                    k    sJ t          t          j        t                    t          j        t                              t          j        t                    k    sJ t          t          j        t                    t	          j        t                              t          j        t                    k    sJ t          t	          j        t                    t          j        t                              t          j        t                    k    sJ t          t	          j        t                    t	          j        t                              t	          j        t                    k    sJ t          t          j        t          t
                    t          j        t                              t          j        t          t
                    k    sJ t          t          j        t          t
                    t	          j        t                              t          j        t          t
                    k    sJ t          t	          j        t          t
                    t          j        t                              t          j        t          t
                    k    sJ t          t	          j        t          t
                    t	          j        t                              t	          j        t          t
                    k    sJ t          t          j        t                    t          j        t          t
                              t          j        t          t
                    k    sJ t          t          j        t                    t	          j        t          t
                              t          j        t          t
                    k    sJ t          t	          j        t                    t          j        t          t
                              t          j        t          t
                    k    sJ t          t	          j        t                    t	          j        t          t
                              t	          j        t          t
                    k    sJ t          t          j        t          t
                    t          j        t          t                              t          j        t          t
          t                    k    sJ t          t          j        t          t
                    t	          j        t          t                              t          j        t          t
          t                    k    sJ t          t	          j        t          t
                    t          j        t          t                              t          j        t          t
          t                    k    sJ t          t	          j        t          t
                    t	          j        t          t                              t	          j        t          t
          t                    k    sJ d S r5   )r6   r   	poly_ringr   r   r   r=   r    r:   r9   test_Domain_unify_compositerD      s   a"%%a8888a"%%a8888a"%%a8888a"%%a8888R\!__%%a8888R\!__%%a8888R\!__%%a8888R\!__%%a8888a##R((BLA,>,>>>>>a##R((BLA,>,>>>>>a##R((BLA,>,>>>>>a##R((BLA,>,>>>>>R\!Q''((BLA,>,>>>>>R\!Q''((BLA,>,>>>>>R\!Q''((BLA,>,>>>>>R\!Q''((BLA,>,>>>>>q!!2&&"-*:*:::::q!!2&&"-*:*:::::q!!2&&"-*:*:::::q!!2&&"-*:*:::::R]1%%&&"-*:*:::::R]1%%&&"-*:*:::::R]1%%&&"-*:*:::::R]1%%&&"-*:*:::::q!$$b))R]1a-@-@@@@@q!$$b))R]1a-@-@@@@@q!$$b))R]1a-@-@@@@@q!$$b))R]1a-@-@@@@@R]1a(())R]1a-@-@@@@@R]1a(())R]1a-@-@@@@@R]1a(())R]1a-@-@@@@@R]1a(())R]1a-@-@@@@@a",q//22bl1ooEEEEa",q//22bl1ooEEEEa",q//22bl1ooEEEEa",q//22bl1ooEEEEa##R\!__55a9K9KKKKKa##R\!__55a9K9KKKKKa##R\!__55a9K9KKKKKa##R\!__55a9K9KKKKKa",q!"4"455a9K9KKKKKa",q!"4"455a9K9KKKKKa",q!"4"455a9K9KKKKKa",q!"4"455a9K9KKKKKa##R\!Q%7%788BLAq<Q<QQQQQa##R\!Q%7%788BLAq<Q<QQQQQa##R\!Q%7%788BLAq<Q<QQQQQa##R\!Q%7%788BLAq<Q<QQQQQq!!2=#3#344a8H8HHHHHq!!2=#3#344a8H8HHHHHq!!2=#3#344a8H8HHHHHq!!2=#3#344a8H8HHHHHq!$$bmA&6&6772=A;N;NNNNNq!$$bmA&6&6772=A;N;NNNNNq!$$bmA&6&6772=A;N;NNNNNq!$$bmA&6&6772=A;N;NNNNNq!!2=A#6#6772=A;N;NNNNNq!!2=A#6#6772=A;N;NNNNNq!!2=A#6#6772=A;N;NNNNNq!!2=A#6#6772=A;N;NNNNNq!$$bmAq&9&9::bmAqRS>T>TTTTTq!$$bmAq&9&9::bmAqRS>T>TTTTTq!$$bmAq&9&9::bmAqRS>T>TTTTTq!$$bmAq&9&9::bmAqRS>T>TTTTTa"-"2"233r}Q7G7GGGGGa"-"2"233r}Q7G7GGGGGa"-"2"233r}Q7G7GGGGGa"-"2"233r}Q7G7GGGGGa##R]1%5%566"-1:M:MMMMMa##R]1%5%566"-1:M:MMMMMa##R]1%5%566"-1:M:MMMMMa##R]1%5%566"-1:M:MMMMMa"-1"5"566"-1:M:MMMMMa"-1"5"566"-1:M:MMMMMa"-1"5"566"-1:M:MMMMMa"-1"5"566"-1:M:MMMMMa##R]1a%8%899R]1aQR=S=SSSSSa##R]1a%8%899R]1aQR=S=SSSSSa##R]1a%8%899R]1aQR=S=SSSSSa##R]1a%8%899R]1aQR=S=SSSSSq!!2<??33r}Q7G7GGGGGq!!2<??33r}Q7G7GGGGGq!!2<??33r}Q7G7GGGGGq!!2<??33r}Q7G7GGGGGq!$$bl1oo66"-1:M:MMMMMq!$$bl1oo66"-1:M:MMMMMq!$$bl1oo66"-1:M:MMMMMq!$$bl1oo66"-1:M:MMMMMq!!2<1#5#566"-1:M:MMMMMq!!2<1#5#566"-1:M:MMMMMq!!2<1#5#566"-1:M:MMMMMq!!2<1#5#566"-1:M:MMMMMq!$$bl1a&8&899R]1aQR=S=SSSSSq!$$bl1a&8&899R]1aQR=S=SSSSSq!$$bl1a&8&899R]1aQR=S=SSSSSq!$$bl1a&8&899R]1aQR=S=SSSSSSSr:   c                     t          j        t          d                    } t          j        t          d                    }t          j        t          d          t          d                    }|                     |          |k    sJ |                     | t          t
          f                   | t          t
          f         k    sJ | t          t
          f                             |           | t          t
          f         k    sJ |                     |                     t          t
                              |                     t          t
                    k    sJ |                     t          t
                                        |           |                     t          t
                    k    sJ |                     |t          t
          f                   |t          t
          f         k    sJ | t          t
          f                             |          |t          t
          f         k    sJ |                     |                    t          t
                              |                    t          t
                    k    sJ |                     t          t
                                        |          |                    t          t
                    k    sJ d S )N      )r   r>   r   r6   r   r   r=   )sqrt5sqrt7sqrt57s      r9   test_Domain_unify_algebraicrK     s   tAww''EtAww''EQa11F;;u'''';;uQT{##uQT{2222A;U##uQT{2222;;u''1--..%2B2B1a2H2HHHHHAq!!''..%2B2B1a2H2HHHHH;;uQT{##vad|3333A;U##vad|3333;;u''1--..&2C2CAq2I2IIIIIAq!!''..&2C2CAq2I2IIIIIIIr:   c            	      H   t          t          t          dz  dz
  t          t                              } t          t          t          dz  dz
  t          t                              }t          t          t          dz  dz
  t          t          t
                                       }t          t          t          dz  dz
  t          t          t
                                       }|                     |           | k    sJ |                    |          |k    sJ |                    |          |k    sJ |                    |          |k    sJ |                     t                    | k    sJ |                     t                    |k    sJ |                    t                    |k    sJ |                    t                    |k    sJ |                     t          t
                             |k    sJ |                     t          t
                             |k    sJ |                    t          t
                             |k    sJ |                    t          t
                             |k    sJ |                    t                    |k    sJ |                    t                    |k    sJ |                    t                    |k    sJ |                    t                    |k    sJ |                    t          t
                             |k    sJ |                    t          t
                             |k    sJ |                    t          t
                             |k    sJ |                    t          t
                             |k    sJ t          t          t          dz  dz
  t          t          t
                                       }|                    t                    |k    sJ |                    t          t                             |k    sJ |                    t          t
                             |k    sJ |                    t          t          t
          f                   |k    sJ t          t          t          dz  dz
  t          t          t
          t          f                             }|                    t          t                             |k    sJ |                    t          t          t          f                   |k    sJ |                    t          t
          t          f                   |k    sJ |                    t          t          t
          t          f                   |k    sJ t          t          t          dz  dz
  t          t                              }t          t          t
          dz  dz
  t
          t                              }t          t          t
          dz  dz
  t
          |                    }|                    |          |k    sJ |                    |          |k    sJ |                    |          |k    sJ |                    |          |k    sJ d S )Nr2   domain)r*   r   r   r   r   r   r6   r   )	KxZZKxQQKxZZyKxQQyKKzKxKyKxys	            r9   !test_Domain_unify_FiniteExtensionrX   *  s.   41q!B77788D41q!B77788DDA1RU;;;<<EDA1RU;;;<<E::dt####::dt####;;u&&&&;;u&&&&::b>>T!!!!::b>>T!!!!::b>>T!!!!::b>>T!!!!::be%%%%::be%%%%::be%%%%::be%%%%;;r??e####;;r??e####;;r??e####;;r??e####;;r!u&&&&;;r!u&&&&;;r!u&&&&;;r!u&&&&QTAXqA77788A772;;!772a5>>Q772a5>>Q772ad8!!!!	adQh"QT(;;;	<	<B772a5>>R772ad8""""772ad8""""772aAg;2%%%%	adQh"555	6	6B	adQh"555	6	6B
$q!tax2666
7
7C88B<<288B<<288B<<388B<<3r:   c                  ^    t          t          d            t          t          d            d S )Nc                  ~    t           t          t          f                             t           t          t          f          S r5   )r   r   r   unify_with_symbolsr   rC   r:   r9   <lambda>z0test_Domain_unify_with_symbols.<locals>.<lambda>^  s"    bAh&A&A"q!f&M&M r:   c                  r    t          j        t           t          t          f         t          t          f          S r5   )r   r[   r   r   r   rC   r:   r9   r\   z0test_Domain_unify_with_symbols.<locals>.<lambda>_  s    b&;Bq!tHq!f&M&M r:   )r0   r+   rC   r:   r9   test_Domain_unify_with_symbolsr^   ]  s2    
MMNNN
MMNNNNNr:   c                  v   dt           v du sJ dt          v du sJ dt          v du sJ dt          v du sJ dt          v du sJ dt
          v du sJ dt          t          t          f         v du sJ dt          t          t          f         v du sJ dt          t          t          f         v du sJ dt           v du sJ dt          v du sJ dt          v du sJ dt          v du sJ dt          v du sJ dt
          v du sJ dt          t          t          f         v du sJ dt          t          t          f         v du sJ dt          t          t          f         v du sJ dt           v du sJ dt          v du sJ dt          v du sJ dt          v du sJ dt          v du sJ dt
          v du sJ dt          t          t          f         v du sJ dt          t          t          f         v du sJ dt          t          t          f         v du sJ t          dd          t           v du sJ t          dd          t          v du sJ t          dd          t          v du sJ t          dd          t          v du sJ t          dd          t          v du sJ t          dd          t
          v du sJ t          dd          t          t          t          f         v du sJ t          dd          t          t          t          f         v du sJ t          dd          t          t          t          f         v du sJ t          dd	          t           v du sJ t          dd	          t          v du sJ t          dd	          t          v du sJ t          dd	          t          v du sJ t          dd	          t          v du sJ t          dd	          t
          v du sJ t          dd	          t          t          t          f         v du sJ t          dd	          t          t          t          f         v du sJ t          dd	          t          t          t          f         v du sJ d
t           v du sJ d
t          v du sJ d
t          v du sJ d
t          v du sJ d
t          v du sJ d
t
          v du sJ d
t          t          t          f         v du sJ d
t          t          t          f         v du sJ d
t          t          t          f         v du sJ dt           v du sJ dt          v du sJ dt          v du sJ dt          v du sJ dt          v du sJ dt
          v du sJ dt          t          t          f         v du sJ dt          t          t          f         v du sJ dt          t          t          f         v du sJ t          t
          v du sJ t          t          t          t          f         v du sJ t          t          t          t          f         v du sJ t           t          v du sJ t           t          v du sJ t           t
          v du sJ t           t          t          t          f         v du sJ t           t          t          t          f         v du sJ t          d          t           v du sJ t          d          t          v du sJ t          d          t          v du sJ t          d          t          v du sJ t          d          t          v du sJ t          d          t
          v du sJ t          d          t          t          t          f         v du sJ t          d          t          t          t          f         v du sJ t          d          t          t          t          f         v du sJ dt          d          z  dz   t           v du sJ dt          d          z  dz   t          v du sJ dt          d          z  dz   t          v du sJ dt          d          z  dz   t          v du sJ dt          d          z  dz   t          v du sJ dt          d          z  dz   t
          v du sJ dt          d          z  dz   t          t          t          f         v du sJ dt          d          z  dz   t          t          t          f         v du sJ dt          d          z  dz   t          t          t          f         v du sJ t          d          t           v du sJ t          d          t          v du sJ t          d          t          v du sJ t          d          t          v du sJ t          d          t          v du sJ t          d          t
          v du sJ t          d          t          t          t          f         v du sJ t          d          t          t          t          f         v du sJ t          d          t          t          t          f         v du sJ t          dz  dz   t           v du sJ t          dz  dz   t          v du sJ t          dz  dz   t          v du sJ t          dz  dz   t          v du sJ t          dz  dz   t          v du sJ t          dz  dz   t
          v du sJ t          dz  dz   t          t                   v du sJ t          dz  dz   t          t                   v du sJ t          dz  dz   t          t                   v du sJ t          dz  dz   t          t          t          f         v du sJ t          dz  dz   t          t          t          f         v du sJ t          dz  dz   t          t          t          f         v du sJ t          dz  t          dz  z   t           v du sJ t          dz  t          dz  z   t          v du sJ t          dz  t          dz  z   t          v du sJ t          dz  t          dz  z   t          v du sJ t          dz  t          dz  z   t          v du sJ t          dz  t          dz  z   t
          v du sJ t          dz  t          dz  z   t          t                   v du sJ t          dz  t          dz  z   t          t                   v du sJ t          dz  t          dz  z   t          t                   v du sJ t          dz  t          dz  z   t          t          t          f         v du sJ t          dz  t          dz  z   t          t          t          f         v du sJ t          dz  t          dz  z   t          t          t          f         v du sJ t          dd          t          z  t          dz   z  t          z
  t          t          t          t          f         v du sJ d S )Nr   T   rG   Fr3   rF   g      @Q	@r2      )r   r   r   r   r   r<   r   r   r   r	   r   r   r   rC   r:   r9   test_Domain__contains__re   a  sG   GGGGGHAqDMd""""AqDMd""""AqDMd"""""H"H"H"H"H#I$"QT(Nt####"QT(Nt####"QT(Nt####"H"H"H"H"H#I$"QT(Nt####"QT(Nt####"QT(Nt####ROOr!d****ROOr!e++++ROOr!d****ROOr!d****ROOr!d****ROOs"t++++ROOr!Q$x'E1111ROOr!Q$x'D0000ROOr!Q$x'D0000QNNb T))))QNNb U****QNNb T))))QNNb T))))QNNb T))))QNNc!d****QNNbAh&50000QNNbAh&4////QNNbAh&4////2I$2I$2I$2I$2I$3J42ad8O$$$$2ad8O$$$$2ad8O$$$$BJ4BJ5    BJ4BJ4BJ4CKD    Bq!tH&&&&Bq!tH%%%%Bq!tH%%%%#I%"QT(Nu$$$$"QT(Nu$$$$C2I%C2I%C3J5    C2ad8O%%%%C2ad8O%%%%GGrMd""""GGrMe####GGrMe####GGrMd""""GGrMd""""GGsNu$$$$GGr!Q$xE))))GGr!Q$xE))))GGr!Q$xD((((d1ggIMRD((((d1ggIMRE))))d1ggIMRE))))d1ggIMRD((((d1ggIMRD((((d1ggIMS T))))d1ggIMR1X%%////d1ggIMR1X%%////d1ggIMR1X%$....FFbLT!!!!FFbLU""""FFbLU""""FFbLT!!!!FFbLT!!!!FFcMe####FFbAh5((((FFbAh5((((FFbAh4''''qD1HNt####qD1HNu$$$$qD1HNu$$$$qD1HNu$$$$qD1HNu$$$$qD1HO%%%%qD1H1$&&&&qD1H1$&&&&qD1H1$&&&&qD1H1a4 T))))qD1H1a4 T))))qD1H1a4 T))))qD1a4K2$&&&&qD1a4K2%''''qD1a4K2%''''qD1a4K2%''''qD1a4K2%''''qD1a4K35((((qD1a4K2a5 U****qD1a4K2a5 U****qD1a4K2a5 U****qD1a4K2ad8#,,,,qD1a4K2ad8#,,,,qD1a4K2ad8#,,,,QNN1a!e$q(Bq!QwK7EAAAAAAr:   c                     t          dd          t          z  t          j        dt          z            v du sJ dt          z  t          j        t                    v du sJ t          dz  t          dz  z   t          j        dt          z  dt          z            v du sJ t          t          z   t          j        dt          z  t                    v du sJ t          t          z
  t          j        t          dt          z            v du sJ d S )Nr2   r3   rd   T)r   r   r   r=   r   rC   r:   r9   test_issue_14433rg     s    QNN1ac 2 22t;;;;aC2=###,,,,TAqD[R]1Q3!444====Ur}QqS!,,,5555Ur}Q!,,,555555r:   c                  "   t           j        du sJ t          j        du sJ t           t                   j        du sJ t          t                   j        du sJ t           t          t          f         j        du sJ t          t          t          f         j        du sJ t          j        t                    j        du sJ t          j        t                    j        du sJ t          j        t          t                    j        du sJ t          j        t          t                    j        du sJ t          j        du sJ t          j        du sJ t          j        du sJ t          j	                    t           k    sJ t          j	                    t           k    sJ t           t                   	                                t           t                   k    sJ t          t                   	                                t          t                   k    sJ t           t          t          f         	                                t           t          t          f         k    sJ t          t          t          f         	                                t          t          t          f         k    sJ t          j        t                    	                                t           t                   k    sJ t          j        t                    	                                t          t                   k    sJ t          j        t          t                    	                                t           t          t          f         k    sJ t          j        t          t                    	                                t          t          t          f         k    sJ t          j	                    t          k    sJ t          j	                    t          k    sJ t          t          d            d S )NTFc                  4    t                                           S r5   )r<   get_ringrC   r:   r9   r\   z&test_Domain_get_ring.<locals>.<lambda>  s     r:   )r   has_assoc_Ringr   r   r   r=   r   r   r<   rj   r0   r/   rC   r:   r9   test_Domain_get_ringrl     s   $$$$$$$$a54''''a54''''ad8"d****ad8"d****=*d2222=*d2222=A-5555=A-5555%%%%%%%%&&&&;==B;==Ba5>>r!u$$$$a5>>r!u$$$$ad8"QT(****ad8"QT(****=$$&&"Q%////=$$&&"Q%////=A''))R1X5555=A''))R1X5555;==B;==B
;../////r:   c                     t           j        du sJ t          j        du sJ t          j        du sJ t          j        du sJ t
          j        du sJ t          t                   j        du sJ t          t                   j        du sJ t          t          t          f         j        du sJ t          t          t          f         j        du sJ t          j                    t           k    sJ t          j                    t          k    sJ t          j                    t          k    sJ t	          j                    t          k    sJ t
                                          t
          k    sJ t          t                                                   t          j	        t                    k    sJ t          t                                                   t          j	        t                    k    sJ t          t          t          f                                         t          j	        t          t                    k    sJ t          t          t          f                                         t          j	        t          t                    k    sJ d S )NT)
r   has_assoc_Fieldr   r   r   r<   r   r   	get_fieldr=   rC   r:   r9   test_Domain_get_fieldrp     s   %%%%%%%%%%%%%%%%$&&&&a5 D((((a5 D((((ad8#t++++ad8#t++++<>>R<>>R<>>R<>>R==??c!!!!a5??a 0 00000a5??a 0 00000ad82=A#6#66666ad82=A#6#6666666r:   c                     t          j                    t           k    sJ t          j                    t          k    sJ t          j                    t          k    sJ t	          j                    t          k    sJ t
                                          t
          k    sJ t          t                                                   t          t                   k    sJ t          t                                                   t          t                   k    sJ t          t          t          f                                         t          t          t          f         k    sJ t          t          t          f                                         t          t          t          f         k    sJ t          j        t                                                    t          j        t                    k    sJ t          j        t                                                    t          j        t                    k    sJ t          j        t          t                                                    t          j        t          t                    k    sJ t          j        t          t                                                    t          j        t          t                    k    sJ d S r5   )	r   	get_exactr   r   r   r<   r   r   r=   rC   r:   r9   test_Domain_get_exactrs   -  s   <>>R<>>R<>>R<>>R==??c!!!!a5??1%%%%a5??1%%%%ad82ad8++++ad82ad8++++=%%''2=+;+;;;;;=%%''2=+;+;;;;;=A((**bmAq.A.AAAAA=A((**bmAq.A.AAAAAAAr:   c                  J   g d} g d}g d}t           t                   t          t                   t          j        t                    cd | D             |k    sJ d | D             |k    sJ fd| D             |k    sJ fd| D             |k    sJ fd| D             |k    sJ                      t                              d	u sJ                      t                              d	u sJ                      t                              d
u sJ d S )N)rb   r   rd   r2   )FTFTF)TTFTTc                 P    g | ]#}t          j        t          |                    $S rC   )r   is_unit.0ns     r9   
<listcomp>z'test_Domain_is_unit.<locals>.<listcomp>B  (    ,,,!BJr!uu,,,r:   c                 P    g | ]#}t          j        t          |                    $S rC   )r   rw   rx   s     r9   r{   z'test_Domain_is_unit.<locals>.<listcomp>C  r|   r:   c                 L    g | ] }                      |                    !S rC   rw   )ry   rz   ZZxs     r9   r{   z'test_Domain_is_unit.<locals>.<listcomp>D  -    ...ACKKA...r:   c                 L    g | ] }                      |                    !S rC   r   )ry   rz   QQxs     r9   r{   z'test_Domain_is_unit.<locals>.<listcomp>E  r   r:   c                 L    g | ] }                      |                    !S rC   r   )ry   rz   QQxfs     r9   r{   z'test_Domain_is_unit.<locals>.<listcomp>F  s-    000aDLLa!!000r:   FT)r   r   r   r=   rw   )numsinvringinvfieldr   r   r   s      @@@r9   test_Domain_is_unitr   =  si   D///G...HUBqE2=#3#3NCd,,t,,,7777,,t,,,8888.......'9999.......(::::00004000H<<<<;;ss1vv%'''';;ss1vv%''''<<Q  D((((((r:   c                     d fd} d }t          j        t          d                    }t          j        t          d                    }t          t           ||t          t
          t          t          g}t          |          D ]:\  }}||d          D ]*} ||          D ]} ||          D ]}	 | ||	           +;t          j	        d          t          dd          k    sJ t          d	t                    \  }
}t          j	        ||z
            d
k    sJ t          j	        ||z
  |
                                          d
k    sJ t          j	        t          dd                    t          dd          k    sJ t          j	        t	          dd                    t          dd          k    sJ t          j        t                    }t          j        t                    }t           t                   }t          t                   }	||||	g}t          ||          D ]Q\  }}|                    |                    t                    |          |                    t                    k    sJ R|                    t          dd          t                      |t          dd                    k    sJ d S )Nc           
          t          |           t          |          u sJ | d|d|d|d|	            | |k    sJ | d|d|d|d|	            d S )Nz, z:  z -> )type)e1e2r8   K2K3s        r9   check_elementz*test_Domain_convert.<locals>.check_elementN  sx    Bxx488###bbb"""bbb"""bb%Q###Rxxx"""bbb"""bbb""Exxxxxr:   c                    |                      |          } |                    | j        |           |j        | ||            |                    |j        |          |j        | ||            |                    | j        |           |j        | ||            |                    |j        |          |j        | ||           d S r5   )r6   convert_fromonezero)r8   r   r   r   s      r9   check_domainsz*test_Domain_convert.<locals>.check_domainsR  s    XXb\\boorvr22RVRRHHHboorvr22RVRRHHHboobgr22BGRRHHHboobgr22BGRRHHHHHr:   c           
         | | t                    | t                   | t           t          f         |                     t                     |                     t                    |                     t           t                    g}|S r5   )r   r   r=   )rS   domainss     r9   composite_domainsz.test_Domain_convert.<locals>.composite_domainsY  sS    aD!A$!Q$LLOOQ\\!__all1a.@.@
 r:   r2   r3   gLoW5l   $7q/ l                                r   r   rd   )r   r>   r   r   r#   r"   r   r   	enumerateconvertr'   	to_domainr=   r   r1   r   
from_sympy)r   r   QQ2QQ3domsir8   r   r   K4RxrKsKaKbr   s                  @r9   test_Domain_convertr   L  s   F F FI I I I I   
T!WW
%
%C

T!WW
%
%CCdD"b1D4 * *2qrr( 	* 	*B''++ * *++B// * *B!M"b))))**	*
 :f$46y!z!zzzzzbMMEAr:b2g!####:b2gq{{}}--2222:d1ajj!!R1XX----:d1ajj!!R1XX----	q		B	q		B	AB	AB
b"b	B"b// I IBr}}Q//44a8H8HHHHHH??2a88R((BBr!QxxLL888888r:   c                     t          j        t                    } t           t                   }|                     t                    |                     |                    t                    |          k    sJ |                    t                    |                    |                     t                    |           k    sJ t          j        t          t                    } t           t                   }|                     t                    |                     |                    t                    |          k    sJ t          j        t          t                    } t           t                   }|                     t                    |                     |                    t                    |          k    sJ d S r5   )r   old_poly_ringr   r   r   r   )r8   r   s     r9   !test_GlobalPolynomialRing_convertr     s%   		!		B	AB::a==BJJrzz!}}b999999::a==BJJrzz!}}b999999		!Q		B	AB::a==BJJrzz!}}b999999 
	!Q		B	AB::a==BJJrzz!}}b99999999r:   c                      t          dt                    \  } t          j                    |                                 k    sJ d S N )r'   r   rB   r   )r   s    r9   test_PolynomialRing__initr     s6    	b"BA<>>Q[[]]******r:   c                      t          dt                    \  } t          j                    |                                 k    sJ d S r   )r)   r   r=   r   )Fs    r9   test_FractionField__initr     s6    	r2BA=??akkmm++++++r:   c                     t          j        t                    } |                     t          dd          t                     |                     t          dd                    k    sJ t          j        t                    } |                     t          d          t                    |                     t          d                    k    sJ d S )Nr2   r3   )r   r=   r   r   r   r   r   r   )rS   s    r9   test_FractionField_convertr     s    
aA99R1XXr""all8Aq>>&B&BBBBB
aA99RUUB1<<

#;#;;;;;;;r:   c                  (   t          j        t          t          t                    t           t          t          t          f         k    sJ t           t                                       t          t                    t           t          t          t          f         k    sJ t          j        t                                        t          t                    t          j        t          t          t                    k    sJ t          t          d            d S )Nc                  V    t           t                                       t                    S r5   )r   r   injectrC   r:   r9   r\   ztest_inject.<locals>.<lambda>  s    BqELLOO r:   )r   r   r   r   r   r=   r0   r,   rC   r:   r9   test_injectr     s    9Q1Aq!G,,,,a5<<1Aq!G,,,,=""1a((BM!Q,B,BBBBB
?3344444r:   c                  @   t          j        t                    t           k    sJ t           t                                       t                    t           k    sJ t           t          t          f                             t                    t           t                   k    sJ t          j        t                                        t                    t           k    sJ t          j        t          t                                        t                    t          j        t                    k    sJ t           t                   t                                       t                    t           t                   k    sJ t           t                   t                                       t                    t           t                   k    sJ t          j        t                    t                                       t                    t           t                   k    sJ t          j        t                    t                                       t                    t          j        t                    k    sJ t          t          t          dz  dz
  t          t           t                                       t          t          t          dz  dz
  t          t                               }                     t                    | k    sJ t          t          fd           d S )Nr2   rd   rM   c                  8                          t                    S r5   )dropr   )rV   s   r9   r\   ztest_drop.<locals>.<lambda>  s    BGGAJJ r:   )	r   r   r   r   r=   r*   r   r0   r,   )rS   rV   s    @r9   	test_dropr     s   71::a5::a==Bad8==r!u$$$$=  ##r))))=A##A&&"-*:*:::::a58==r!u$$$$a58==r!u$$$$=A##A&&"Q%////=A##A&&"-*:*:::::	ad1fa1666	7	7BQT!VQr22233A771::????
?..../////r:   c                      t          j        g d          } t          d | D                       sJ t          j        g dg          } t          d | d         D                       rt          |           dk    sJ d S )N)rd   r2   r3      c              3   >   K   | ]}t          j        |          V  d S r5   r   of_typery   elts     r9   	<genexpr>z"test_Domain_map.<locals>.<genexpr>  s*      ..3rz#......r:   c              3   >   K   | ]}t          j        |          V  d S r5   r   r   s     r9   r   z"test_Domain_map.<locals>.<genexpr>  s*      113rz#111111r:   r   rd   )r   mapalllen)seqs    r9   test_Domain_mapr     s    
&

C..#........
&,,,
 
 C11#a&11111Cc#hh!mmmmmmr:   c                  D   t           t          t          f         t           t          t          f         k    du sJ t          t          t          f         t          t          t          f         k    du sJ t           t          t          f         t          t          t          f         k    du sJ t          t          t          f         t           t          t          f         k    du sJ t          j        t          t                    t          j        t          t                    k    du sJ t          j        t          t                    t          j        t          t                    k    du sJ t          j        t          t                    t          j        t          t                    k    du sJ t          j        t          t                    t          j        t          t                    k    du sJ t                      t                   t          t                   k    sJ d S )NTF)r   r   r   r   r=   r%   r   rC   r:   r9   test_Domain___eq__r     su   q!tH1a4 T))))q!tH1a4 T))))q!tH1a4 U****q!tH1a4 U****M!Q2=A#6#664????M!Q2=A#6#664????M!Q2=A#6#665@@@@M!Q2=A#6#665@@@@;;q>RU""""""r:   c                  R   t          j        t          d                    } | j        j        t          t          dz  dz
            k    sJ | j        t          k    sJ t          j        t          d                    } | j        j        t          t          dz  dz
            k    sJ | j        t          k    sJ |                     t          d                    } | j        j        t          t          dz  dt          dz  z  z
  dz             k    sJ | j        t          k    sJ d S Nr2   r3   r   
   rd   )	r   r>   r   extminpolyr   r   domr   )algs    r9   test_Domain__algebraic_fieldr     s    

T!WW
%
%C7?d1a4!8nn,,,,7b====

T!WW
%
%C7?d1a4!8nn,,,,7b====


d1gg
&
&C7?d1a4"QT'>A#56666667b======r:   c                     t          t          dz  dz
            } t          t          dz  dz
            }t          t          dz  dt          dz  z  z
  dz             }t          j        |           }|j        j        | k    sJ |j        t          k    sJ t          j        |           }|j        j        | k    sJ |j        t          k    sJ |                    |          }|j        j        |k    sJ |j        t          k    sJ d S r   )r   r   r   alg_field_from_polyr   r   r   r   )fghr   s       r9   test_Domain_alg_field_from_polyr     s    QTAXAQTAXAQTBq!tG^a  A

 
#
#C7?a7b====

 
#
#C7?a7b====

!
!!
$
$C7?a7b======r:   c                     t          j        d          } | j        j        t	          t          d                    k    sJ | j        t          k    sJ t          j        d          }|j        j        t	          t          d                    k    sJ |j        t          k    sJ |                    d          }t          |j        | j                  J |j        t          k    sJ d S )N   r3   r   )	r   cyclotomic_fieldr   r   r   r(   r   r   r&   )rS   r   r   s      r9   test_Domain_cyclotomic_fieldr     s    
BA5=D!4!45555555B;;;;
AA5=D!3!34444445B;;;;	1AQUAE**6665B;;;;;;r:   c                     t          dt                    \  } }}t          dt                    \  }}}|dz  |dz  z   |dz   z  }|dz  |dz  z   dz  }|dz  |dz  z   }|                                                    ||                                           J |                                                    ||                                           |dz  dz  |dz  dz  z   k    sJ |                                                    ||                                           |dz  |dz  z   k    sJ t          dt
                    \  } }}t          dt
                    \  }}}|dz  |dz  z   |dz   z  }|dz  |dz  z   dz  }|dz  |dz  z   }|                                                    ||                                           J |                                                    ||                                           |dz  dz  |dz  dz  z   k    sJ |                                                    ||                                           |dz  |dz  z   k    sJ d S )Nx,yr2   rd   r   )r)   r   r'   r   from_FractionFieldr   )	r   r   r   r   XYr   r   r   s	            r9   &test_PolynomialRing_from_FractionFieldr     s4   5"FAq%__FAq	
A1q1uA	
A1aA	
A1A;;==++Aq{{}}==EEE;;==++Aq{{}}==Aa!Q$q&PPPP;;==++Aq{{}}==A1LLLL5"FAq%__FAq	
A1q1uA	
A1aA	
A1A;;==++Aq{{}}==EEE;;==++Aq{{}}==Aa!Q$q&PPPP;;==++Aq{{}}==A1LLLLLLr:   c                     t          dt                    \  } }}t          dt                    \  }}}d|dz  z  d|dz  z  z   }|dz  dz  |dz  dz  z   }|                                                    ||                                           d|dz  z  d|dz  z  z   k    sJ |                                                    ||                                           d|dz  z  d|dz  z  z   dz  k    sJ d S )Nr   r3   r2   rF      )r'   r   r)   r   r   from_PolynomialRing)r   r   r   r   r   r   r   r   s           r9   &test_FractionField_from_PolynomialRingr     s    %__FAq5"FAq	!Q$1a4A	1QAaA;;==,,Q>>!AqD&1QPQT6/QQQQ;;==,,Q>>1QT6AaQRdF?TVBVVVVVVVr:   c                  n   t          d                               t          d          d                    du sJ t          d                               t          d          d                    du sJ t          d                               t          d          d                    du sJ d S )Nr3   rd   TrF   rG   F)r   r   rC   r:   r9   test_FF_of_typer   #  s    a55==Aq""d****a55==Aq""d****a55==Aq""e++++++r:   c                      t           t                   t          t                   k    rJ t          j        t                    t          j        t                    k    rJ d S r5   )r   r   r   r=   rC   r:   r9   test___eq__r   )  sB    !u1~~~~}Q2=#3#3333333r:   c                  r   t          j        t          j                  t          j        d          k    sJ t          j        t          d                    t          j        d          k    sJ t          j        t          j                  t          j        d          k    sJ t          j        t          d                    t          j        d          k    sJ t          j        t          d                    t          j        t          d                                                    k    sJ d S )Nr   g        rd   g      ?)r   r   r   ZerodtypeOner   evalfrC   r:   r9   test_RealField_from_sympyr   .  s    :af!,,,,:aff#....:ae++++:aff#....:c!ff#a&&,,..!9!9999999r:   c                  H   t          t                    t          gz   d t          d d         D             z   } t          t          t
          t          t          fD ]G| D ]Bt          k    rt          k    rvsJ f            t          t          fd           CHd S )Nc                 ,    g | ]}t          |          S rC   )float)ry   r   s     r9   r{   z*test_not_in_any_domain.<locals>.<listcomp>7  s+     $( $( $(a$( $( $(r:   r3   c                  .                                    S r5   )r   )r   r   s   r9   r\   z(test_not_in_any_domain.<locals>.<lambda>>  s    3;;q>> r:   )
listr   r   r   r   r   r   r   r0   r-   )checkr   r   s    @@r9   test_not_in_any_domainr   6  s    NNaS  $( $("2A2,$( $( $( (EBB# ; ; 	; 	;AAvv#))C<<<!S<<<>#9#9#9#9#9::::		;; ;r:   c                  j   t          d          }  | d          }t          || j                  r|dk    sJ  | d          }t          || j                  r|dk    sJ  | d          }t          || j                  r|dk    sJ  | d          }t          || j                  r|dk    sJ  | d          }t          || j                  r|dk    sJ  |  | d                    }t          || j                  r|dk    sJ  |  | d                    }t          || j                  r|dk    sJ  |  | d                    }t          || j                  r|dk    sJ  |  | d                    }t          || j                  r|dk    sJ  |  | d                    }t          || j                  r|dk    sJ  | d           }t          || j                  r|dk    sJ  | d           }t          || j                  r|dk    sJ d | d          z   }t          || j                  r|dk    sJ  | d          dz   }t          || j                  r|dk    sJ  | d           | d          z   }t          || j                  r|dk    sJ  | d           | d          z   }t          || j                  r|dk    sJ d | d          z
  }t          || j                  r|dk    sJ  | d          dz
  }t          || j                  r|dk    sJ  | d           | d          z
  }t          || j                  r|dk    sJ  | d           | d          z
  }t          || j                  r|dk    sJ d | d          z  }t          || j                  r|dk    sJ  | d          dz  }t          || j                  r|dk    sJ  | d           | d          z  }t          || j                  r|dk    sJ  | d           | d          z  }t          || j                  r|dk    sJ d | d          z  }t          || j                  r|dk    sJ  | d          dz  }t          || j                  r|dk    sJ  | d           | d          z  }t          || j                  r|dk    sJ  | d           | d          z  }t          || j                  r|dk    sJ d | d          z  }t          || j                  r|dk    sJ  | d          dz  }t          || j                  r|dk    sJ  | d           | d          z  }t          || j                  r|dk    sJ  | d           | d          z  }t          || j                  r|dk    sJ  | d          dz  }t          || j                  r|dk    sJ  | d          dz  }t          || j                  r|dk    sJ  | d          dz  }t          || j                  r|dk    sJ t          d          } |d          dz  }t          ||j                  r|dk    sJ  |d          dz  }t          ||j                  r|dk    sJ  |d          t          d          z  }t          ||j                  r|dk    sJ t	           | d                    d	u sJ t	           | d                    d
u sJ t          d           d          dz  }t          |j                  r|dk    sJ  d          dz  }t          |j                  r|dk    sJ  d          dz  }t          |j                  r|dk    sJ  d          dz  }t          |j                  r|dk    sJ  d           d          k     d
u sJ  d           d          k    d
u sJ  d           d          k    d	u sJ  d           d          k    d	u sJ  d           d          k     d	u sJ  d           d          k    d	u sJ  d           d          k    d
u sJ  d           d          k    d
u sJ  d           d          k     d
u sJ  d           d          k    d
u sJ  d           d          k    d	u sJ  d           d          k    d	u sJ  d           d          k     d	u sJ  d           d          k    d	u sJ  d           d          k    d
u sJ  d           d          k    d
u sJ  d          dk     d
u sJ  d          dk    d
u sJ  d          dk    d	u sJ  d          dk    d	u sJ  d          dk     d	u sJ  d          dk    d	u sJ  d          dk    d
u sJ  d          dk    d
u sJ  d          dk     d
u sJ  d          dk    d
u sJ  d          dk    d	u sJ  d          dk    d	u sJ  d          dk     d	u sJ  d          dk    d	u sJ  d          dk    d
u sJ  d          dk    d
u sJ t          t          fd           t          t          fd           t          t          d            t          t          d            d S )Nr3   r   rd   r2   r   rG   l    h] l h] FTrF   rb   c                         d          dz  S )Nr   rb   rC   F5s   r9   r\   z%test_ModularInteger.<locals>.<lambda>      ""Q%%"+ r:   c                         d          dz  S )NrF   rb   rC   r   s   r9   r\   z%test_ModularInteger.<locals>.<lambda>  r   r:   c                       t          d          S Nr   r   rC   r:   r9   r\   z%test_ModularInteger.<locals>.<lambda>  s    r!uu r:   c                       t          d          S )Ng @r  rC   r:   r9   r\   z%test_ModularInteger.<locals>.<lambda>  s    r#ww r:   )r   
isinstancer   r   boolr0   r.   
ValueError)r?   aF7r   s      @r9   test_ModularIntegerr
  A  s   	AB
1Aa""-qAvvvv
1Aa""-qAvvvv
1Aa""-qAvvvv
1Aa""-qAvvvv
1Aa""-qAvvvv
22a55		Aa""-qAvvvv
22a55		Aa""-qAvvvv
22a55		Aa""-qAvvvv
22a55		Aa""-qAvvvv
22a55		Aa""-qAvvvv	AAa""-qAvvvv	AAa""-qAvvvv	BBqEE	Aa""-qAvvvv
1	Aa""-qAvvvv
11Aa""-qAvvvv
11Aa""-qAvvvv	BBqEE	Aa""-qAvvvv
1	Aa""-qAvvvv
11Aa""-qAvvvv
11Aa""-qAvvvv	""Q%%Aa""-qAvvvv
1aAa""-qAvvvv
1bbeeAa""-qAvvvv
1bbeeAa""-qAvvvv	""Q%%Aa""-qAvvvv
1aAa""-qAvvvv
1bbeeAa""-qAvvvv
1bbeeAa""-qAvvvv	BBqEE	Aa""-qAvvvv
1	Aa""-qAvvvv
11Aa""-qAvvvv
11Aa""-qAvvvv
1qAa""-qAvvvv
1qAa""-qAvvvv
1qAa""-qAvvvv	AB
1|Aa""-qAvvvv
1}Aa""-qAvvvv
1qttAa""-qAvvvv1;;%1;;$	AB
1Aa""-qAvvvv
1Aa""-qAvvvv
1Aa""-qAvvvv
1Aa""-qAvvvvBqEEBBqEEMd""""BqEERRUUNt####BqEEBBqEEMe####BqEERRUUNu$$$$BqEEBBqEEMe####BqEERRUUNu$$$$BqEEBBqEEMd""""BqEERRUUNt####BqEEBBqEEMd""""BqEERRUUNt####BqEEBBqEEMe####BqEERRUUNu$$$$BqEEBBqEEMe####BqEERRUUNu$$$$BqEEBBqEEMd""""BqEERRUUNt####BqEEAI$BqEEQJ4BqEEAI%BqEEQJ5    BqEEAI%BqEEQJ5    BqEEAI$BqEEQJ4BqEEAI$BqEEQJ4BqEEAI%BqEEQJ5    BqEEAI%BqEEQJ5    BqEEAI$BqEEQJ4
=----...
=----...
:}}%%%
:'''''r:   c                      t          t          ddz  ddz                      dk    sJ t          t          ddz  d                    dk    sJ d S )Nr2   i  r3   i  i d   l   UU*UU*UU*U)intr   rC   r:   r9   test_QQ_intr    sY    r!T'1d7##$$....r!S&!}}!???????r:   c                     t          d          dk    sJ t          d          dk    sJ t          d          dk    sJ t          d          dk    sJ t          d          dk    sJ t          d          dk    sJ d S )Nrc   Jz5vIh%<=+=V瞯<#B;Ww'&l7)r   rC   r:   r9   test_RR_doubler    s    d88ee99ue99ue99ue99ue99ur:   c                  P   t          d          } t          d          }| j        dk    sJ |j        dk    sJ t          |           dz
  dk    sJ t          |          dz
  dk     sJ t          |j                  } ||           dz
  dk    sJ  ||          dz
  dk    sJ d S )Nz1.01z1.00000000000000000000015   P   rd   r  )prec)r   _precr   r%   )f1f2RR2s      r9   test_RR_Floatr    s    	vB	)	*	*B8r>>>>8r>>>>b66!8eb66!8e

"
"
"C3r7719u3r7719ur:   c                  v   t          d          j        dk    sJ t          d          j        dk    sJ t          d          j        dk    sJ t          d          j        dk    sJ t          d          j        dk    sJ t          d          j        dk    sJ t          d          j        dk    sJ t          d	          j        dk    sJ t          d
          j        dk    sJ t          d          j        dk    sJ t          d          j        dk    sJ t          d          j        dk    sJ d S )Nrc   r  r  r  r  r  r  y        Q	@y        vIh%<=y        +=y        V瞯<y        #B;y        Ww'&l7)r   realimagrC   r:   r9   test_CC_doubler#    s4   d88=5    e99>E!!!!e99>E!!!!e99>E!!!!e99>E!!!!e99>E!!!!e99>E!!!!f::?U""""f::?U""""f::?U""""f::?U""""f::?U""""""r:   c                     t           j        } d dd| z   d| z
  dd| z  z
  fD             \  }}}}t          j        ||          |k    sJ t          j        ||          |k    sJ t          j        ||          |k    sJ t          j        ||          |k    sJ t          dd          t          dd          k    sJ t          dd          dk    sJ t          t          d          dz  d          t          d          dz  k    sJ t          dd                                          dk    sJ t          dd                                          dk    sJ t          j        t          dd                    t          t          dd          t          d                    k    sJ t          j        t          dd          t                    t          t          dd          t          d                    k    sJ t
          t          fD 
]< dd          t                    dk    sJ 
                                k    sJ                     t                    d	k    sJ                     d          d
k    sJ                     d| z            dk    sJ t                    t          d          k    sJ  dd           dd          k    sJ  dd           dd          k    sJ  dd           d          k    sJ z    dd          k    sJ z
   dd          k    sJ dz
   dz   cxk    r dd          k    sn J dz   dz   cxk    r dd          k    sn J z   dd          k    sJ dz  dz  cxk    r dd          k    sn J dz   dd          k    sJ dz  k    sJ dz  z  cxk    r dd          k    sn J dz  z  z  cxk    r dd          k    sn J dz  dz  cxk    r5t          t          d          dz  t          d           dz            k    sn J dz  t          dd          k    sJ dz  t          t          d          dz  d          k    sJ dz  t          dt          d          dz            k    sJ dz  t          t          d          dz  t          d           dz            k    sJ t          d          \  }}d|z  |z   k    sJ t          d          \  }}|z  |z    dd          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           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%           t          t"          fd&                               t          d                     dd          k    sJ                      dd                    t          d          k    sJ t          t(          fd'                               t,                    }t/          |t0                    sJ |j        k    sJ t5          |j                  dk    r(|j        d                                         t,          k    sJ t
          u rU                                }t/          |t<                    sJ |j        t          k    sJ |j        j         d         | k    sJ  dd           dd           dd           dd          fD ]f}	!                    |	          d(u sJ "                    |	          d(u sJ #                    |	          d(u sJ $                    |	          d(u sJ gtK                      tM                      t=          t          |           g}
tN          r|
tQ                      tS                      gz  }
|
D ]_}                     |d                     dd          k    sJ                      |d          |           dd          k    sJ `t          t
          fD ]a}                     |dd                     dd          k    sJ                      |dd          |           dd          k    sJ bt          k    rtU                    d)k    sJ dz   dd          k    sJ dz   dd*          k    sJ dz   dd          k    sJ dz   dd          k    sJ | dd          k    sJ | dd          k    sJ +                                k    sJ ,                                t
          k    sJ tU                    d+k    sJ +                                t          k    sJ ,                                k    sJ dz   dt          d          dz            k    sJ dz   t          d,          dz  t          d-           dz            k    sJ dz   dd          k    sJ dz   dd          k    sJ | t          d          dz  t          d           dz            k    sJ |f            | dd          k    sJ  t          d          dz  t          d          dz            }-                    |          t          dd.          k    sJ .                    |          t          d          k    sJ 
>d S )/Nc                 6    g | ]}t          j        |          S rC   )r"   r   ry   r   s     r9   r{   z)test_gaussian_domains.<locals>.<listcomp>  s     FFFa$,q//FFFr:   rF   r2   r3   r   r   rb   z3 + 4*I)NN)r2   r   )r   r2   )r3   r   rd         r`      	   r   i,      c                       dz  S r  rC   qs   r9   r\   z'test_gaussian_domains.<locals>.<lambda>3      !a% r:   c                       dz  S r  rC   r/  s   r9   r\   z'test_gaussian_domains.<locals>.<lambda>4  r1  r:   c                       dz  S r  rC   r/  s   r9   r\   z'test_gaussian_domains.<locals>.<lambda>5  s    !q& r:   c                  $    t           d          S r  divmodr/  s   r9   r\   z'test_gaussian_domains.<locals>.<lambda>6      &A,, r:   c                  $    t           d          S r  r5  r/  s   r9   r\   z'test_gaussian_domains.<locals>.<lambda>7  r7  r:   c                       t           z   S r5   r   r/  s   r9   r\   z'test_gaussian_domains.<locals>.<lambda>8      !a% r:   c                       t           z
  S r5   r:  r/  s   r9   r\   z'test_gaussian_domains.<locals>.<lambda>9  r;  r:   c                      t            z   S r5   r:  r/  s   r9   r\   z'test_gaussian_domains.<locals>.<lambda>:      !a% r:   c                      t            z
  S r5   r:  r/  s   r9   r\   z'test_gaussian_domains.<locals>.<lambda>;  r>  r:   c                       t           z  S r5   r:  r/  s   r9   r\   z'test_gaussian_domains.<locals>.<lambda><  r;  r:   c                      t            z  S r5   r:  r/  s   r9   r\   z'test_gaussian_domains.<locals>.<lambda>=  r>  r:   c                       t           z  S r5   r:  r/  s   r9   r\   z'test_gaussian_domains.<locals>.<lambda>>  r;  r:   c                      t            z  S r5   r:  r/  s   r9   r\   z'test_gaussian_domains.<locals>.<lambda>?  r>  r:   c                       t           z  S r5   r:  r/  s   r9   r\   z'test_gaussian_domains.<locals>.<lambda>@  s    !q& r:   c                      t            z  S r5   r:  r/  s   r9   r\   z'test_gaussian_domains.<locals>.<lambda>A  s    !q& r:   c                  8                          t                    S r5   )r   r
   )Gs   r9   r\   z'test_gaussian_domains.<locals>.<lambda>E  s    q||B'7'7 r:   Fz
ZZ_I(3, 4)ru   z
QQ_I(3, 4)$   0   r   )/r   ImaginaryUnitr"   gcdlcmr#   quadrantr   r   strparent_get_xyr
   hashr6  r0   ZeroDivisionError	TypeErrorr   to_sympyr-   r   r   r  r$   rN   r   gensas_expras_AlgebraicFieldr!   r   argsis_negativeis_positiveis_nonnegativeis_nonpositiver   r    r   r   r   reprrj   ro   numerdenom)r   r  bcdr   rPRAFqir   rS   q2rG  r0  s                @@r9   test_gaussian_domainsrh    s   	AFFAq1ua!eQ1W+EFFFJAq!Q8Aq>>Q8Aq>>Q8Aq>>Q8Aq>>Q1::a####1::????!Q??add1f$$$$1::  A%%%%A;;!!Q&&&&<1a!!T"Q((BqEE%:%:::::<1a"%%bAhh1)>)>>>>>D\ i* i*AaGG1vv""""xxzzQyy}},,,,yy||v%%%%yy1~~''''Aww$v,,&&&&qAww!!Aq''!!!!qAww!!Aq''!!!!qAww!!A$$1u!Q1u!Q1u!a++++11Q88++++++1uA((((1a((((((1u"b		!!!!1uA))))1b))))))Av1a    Av{{{{AvQ++++!!B))++++++AvQ1111aabkk1111111uR;;;;4!R1Q44#;#;;;;;;;1uQ

""""1uQqTT!VQ''''sd1add1foo%%%%sd1Q447QrUUF2I......a||1sQw!||||a||1sQw!!Aq''!!!! ----000 ----000 ....111 "6"6"6"6777 "6"6"6"6777y----(((y----(((y----(((y----(((y----(((y----(((y----(((y----(((y....)))y....)))||AaDD!!QQq!WW,,,,zz!!Aq''""add****~7777888XXa[["n-----yA~~~~27||q  RWQZ%7%7%9%9Q%>%>%>%>99$$&&Bb.111119????6;q>Q&&&&1R88QQq!WWaa2hh!Q8 	1 	1B==$$----==$$----##B''50000##B''500000;;	^B-B-BC 	.		799--G 	1 	1A99QQqTT??aa1gg----99QQqTT1%%1a00000t 	4 	4A99QQq!WW%%1a000099QQq!WWa((AAaGG333339977l****a411Q77????q5AAaHH$$$$6QQq!WW$$$$q5AAb!HH$$$$!Q<<<<!Q<<<<::<<1$$$$;;==D(((((77l****::<<4'''';;==A%%%%a411Q!Q<<''''q5AAaeeBh2r	2222226QQq!WW$$$$q5AAaGG####!A$$r'AaDD58,,,,,qe,,,!Q<<<<1Q4461Q446""B772;;$q"++----772;;$q'')))))Si* i*r:   c                  r   t           j        t          j        u sJ t           j        t          j        u sJ t          d          t          j        d          k    sJ t          d          j        t          j        u sJ t          d          t          j        u sJ dt          t          t          t          z  z   t          z            z  t          ddt          z  z             cxk    r&dt          t          t          z  z   t          z  z  k    sn J dt          t          t          t          z  z   t          z            z  dt          t          t          z  z   t          z  z  cxk    rdt          z   k    sn J t          j        t          d          t                    t           j        u sJ t          j        t          d          t                     t          j        k    sJ t          j        t          j                  t          j        u sJ t          j        t           j                  t          j        u sJ t          t          d            t          j                    t           k    sJ t          j        t                    t           k    sJ t          j        t                     t           k    sJ d S )Nrd   r2   c                  *    t          j        g           S r5   )r   r   rC   r:   r9   r\   ztest_EX_EXRAW.<locals>.<lambda>  s    5#3B#7#7 r:   )r   r   r   r   r   r   r   
Expressionexr   r   r   r   rT  r0   r-   ro   r6   rC   r:   r9   test_EX_EXRAWrm  }  s   :9a55BM!$$$$$$a558qu88qu RQqS!__1qs7>>>>q1qs7A+>>>>>>UA!GQ;1q1Q3wk?====q1u======beeR((EI5555?588U++rv5555AE""ae++++>%)$$----
>77888?%%%%;r??e####8E??e######r:   c                     t           t          t          fD ]\} |                      | d                     | d          k    sJ |                      | d                     | d          k    sJ ]t          t
          fD ]} |                     t                    }|                      | d                     | d          k    sJ |                      | d          |z            | k    sJ |                      | d                      | d          k    sJ |                      | d           |z            |k    sJ t           t                   } |                      | t          dz                        | d          k    sJ |                      | t           dz                        | d          k    sJ t          t                   } |                     |                     t          t          z                      t	          dd          k    sJ t	          j	        t          t                    } |                     t                    }||z  | j        k    sJ | j        |z   || j        z
  z  | k    sJ d S )Nr2   rd   ru   rb   r   )r   r   r   canonical_unitr"   r#   r   r   r   r=   r   r   )rS   r   s     r9   test_canonical_unitrp    se   "b\ 0 0!%%1----"&&!!B%%/////D\ . .LLOO!%%1----!Q''A2----1&&!!B%%////1a((A-----
1AAAa!eHH%%1----AAqb1fII&&!!B%%////QAALL1--..$q"++====1A	QAq5AE>>>>EAIAE	"qb((((((r:   c                      t          t          d                                                    dk    sJ t          t          d                                                    dk    sJ d S )Nr2   r   r   )rN  r   rO  r   rC   r:   r9   test_issue_18278rr    sV    r!uu||~~$&&&&r!uu||~~$&&&&&&r:   c                      t           j        } d d| z   dfD             \  }}t          j        |          dk    sJ t          j        |          dk    sJ d S )Nc                 6    g | ]}t          j        |          S rC   r   r   r&  s     r9   r{   z+test_Domain_is_negative.<locals>.<listcomp>       ...aBJqMM...r:   r2   rF   F)r   rJ  r   rY  r   r  r`  s      r9   test_Domain_is_negativerx    d    	A..AE1:...DAq>!%%%%>!%%%%%%r:   c                      t           j        } d d| z   dfD             \  }}t          j        |          dk    sJ t          j        |          dk    sJ d S )Nc                 6    g | ]}t          j        |          S rC   ru  r&  s     r9   r{   z+test_Domain_is_positive.<locals>.<listcomp>  rv  r:   r2   rF   F)r   rJ  r   rZ  rw  s      r9   test_Domain_is_positiver|    ry  r:   c                      t           j        } d d| z   dfD             \  }}t          j        |          dk    sJ t          j        |          dk    sJ d S )Nc                 6    g | ]}t          j        |          S rC   ru  r&  s     r9   r{   z.test_Domain_is_nonnegative.<locals>.<listcomp>  rv  r:   r2   rF   F)r   rJ  r   r[  rw  s      r9   test_Domain_is_nonnegativer    f    	A..AE1:...DAqQ5((((Q5((((((r:   c                      t           j        } d d| z   dfD             \  }}t          j        |          dk    sJ t          j        |          dk    sJ d S )Nc                 6    g | ]}t          j        |          S rC   ru  r&  s     r9   r{   z.test_Domain_is_nonpositive.<locals>.<listcomp>  rv  r:   r2   rF   F)r   rJ  r   r\  rw  s      r9   test_Domain_is_nonpositiver    r  r:   c                  
   t           t                   } |                     t                    }|                     t          d                    |dz  k    sJ |                     t          d                    |dz  k    sJ d S )Nr3   )r   r   r   r   r   )rS   eKs     r9   test_exponential_domainr    sn    
1A	
aB<<A27****99SVVa''''''r:   c                  B   t          j        t          d                    } | j        j        J t          t          d          d          }t          j        |          } | j        j        j        dk    sJ t          j        |d          } | j        j        j        dk    sJ t          j        t          d          t          d                    } | j        j        J t          j        |t          d                    } | j        j        J t          j        t          d          t          d          d          } | j        j        j        dk    sJ t          j        |          } |                      | g d                    }|j        |j        u sJ d S )Nr2   alpha)aliasthetar3   )rd   r2   r3   )r   r>   r   r   r  r   name
to_alg_num)kr  betas      r9   test_AlgebraicField_aliasr    sz   
477##A5; DGG7333E
5!!A5;w&&&& 	5000A5;w&&&& 	477DGG,,A5; 	5$q''**A5; 	477DGG7;;;A5;w&&&& 	5!!A<<)))%%D:$$$$$$r:   N)t__doc__sympy.core.numbersr   r   r   r   r   r   r	   r
   r   sympy.core.singletonr   &sympy.functions.elementary.exponentialr   (sympy.functions.elementary.miscellaneousr   (sympy.functions.elementary.trigonometricr   sympy.polys.polytoolsr   	sympy.abcr   r   r   sympy.external.gmpyr   sympy.polys.domainsr   r   r   r   r   r   r   r   r   r   r   r    "sympy.polys.domains.algebraicfieldr!   #sympy.polys.domains.gaussiandomainsr"   r#   "sympy.polys.domains.polynomialringr$   sympy.polys.domains.realfieldr%   !sympy.polys.numberfields.subfieldr&   sympy.polys.ringsr'   sympy.polys.specialpolysr(   sympy.polys.fieldsr)   sympy.polys.agca.extensionsr*   sympy.polys.polyerrorsr+   r,   r-   r.   r/   sympy.testing.pytestr0   	itertoolsr1   r>   r<   r6   r@   rD   rK   rX   r^   re   rg   rl   rp   rs   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r
  r  r  r  r#  rh  rm  rp  rr  rx  r|  r  r  r  r  rC   r:   r9   <module>r     s   V V                                            " " " " " " 6 6 6 6 6 6 9 9 9 9 9 9 8 8 8 8 8 8 & & & & & &           ( ( ( ( ( (# # # # # # # # # # # # # # # # # # # # # # # # # # # # = = = = = = : : : : : : : : = = = = = = 3 3 3 3 3 3 ? ? ? ? ? ? " " " " " " 4 4 4 4 4 4 $ $ $ $ $ $ 7 7 7 7 7 7              ( ' ' ' ' '      ba$$q''**  p p pdwT wT wTrJ J J&1 1 1fO O OIB IB IBX6 6 60 0 0D7 7 7,B B B ) ) )29 29 29j: : :"+ + +
, , ,
< < <5 5 50 0 0 D D D# # #     $  M M M.W W W, , ,4 4 4
: : :; ; ;U( U( U(n@ @ @  
 
 
# # # y* y* y*x$ $ $2) ) )4' ' '
& & && & &) ) )) ) )( ( (% % % % %r:   