§
    ¬³ÙgÃ¦  ã                   óœ  — 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 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 d dl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)m*Z*m+Z+m,Z,m-Z-m.Z.m/Z/m0Z0m1Z1m2Z2m3Z3m4Z4m5Z5m6Z6m7Z7m8Z8m9Z9m:Z:m;Z;m<Z<m=Z=m>Z>m?Z?m@Z@mAZAmBZBmCZCmDZDmEZEmFZFmGZGmHZHmIZI d dlJmKZKmLZLmMZM d dlNmOZO  edd¬¦  «        \  ZPZQZRZSZTZUZVZWZXZYZZZ[Z\Z]Z^Z_ edd¬¦  «        \  Z`ZaZbZcZdZeZf edd¬¦  «        \  ZgZhZi edd¬¦  «        Zjd„ Zkd„ Zld„ Zmd„ Znd„ Zod„ Zpd„ Zqd„ Zrd„ Zsd „ Ztd!„ Zud"„ Zvd#„ ZweKd$„ ¦   «         Zxd%„ Zyd&„ Zzd'„ Z{d(„ Z|d)„ Z}d*„ Z~d+„ Zd,„ Z€d-„ Z�d.„ Z‚d/„ Zƒd0„ Z„d1„ Z…d2„ Z†d3„ Z‡d4„ Zˆd5„ Z‰d6„ ZŠd7„ Z‹d8„ ZŒd9„ Z�d:„ ZŽd;„ Z�d<„ Z�d=„ Z‘d>„ Z’d?„ Z“d@„ Z”eMdA„ ¦   «         Z•dB„ Z–dC„ Z—dD„ Z˜dE„ Z™dF„ ZšdG„ Z›eMdH„ ¦   «         ZœdI„ Z�dJ„ ZždK„ ZŸdL„ Z dMS )Né    )ÚAdd)ÚMul)ÚRationalÚooÚpi)ÚEq)ÚS)Úsymbols)ÚMatrix)Ú	factorint)Úpowsimp)Ú_mexpand)Údefault_sort_keyÚordered)Úsin)Údiophantine),Údiop_DNÚ
diop_solveÚdiop_ternary_quadratic_normalÚdiop_general_pythagoreanÚdiop_ternary_quadraticÚdiop_linearÚdiop_quadraticÚdiop_general_sum_of_squaresÚdiop_general_sum_of_even_powersÚdescentÚ
diop_bf_DNÚ	divisibleÚ
equivalentÚfind_DNÚldescentÚlengthÚreconstructÚ	partitionÚpower_representationÚprime_as_sum_of_two_squaresÚsquare_factorÚsum_of_four_squaresÚsum_of_three_squaresÚtransformation_to_DNÚtransformation_to_normalÚclassify_diopÚbase_solution_linearÚ
cornacchiaÚ
sqf_normalÚgaussian_reduceÚholzerÚcheck_paramÚparametrize_ternary_quadraticÚsum_of_powersÚsum_of_squaresÚ_diop_ternary_quadratic_normalÚ_nint_or_floorÚ_oddÚ_evenÚ_remove_gcdÚ_can_do_sum_of_squaresÚDiophantineSolutionSetÚGeneralPythagoreanÚBinaryQuadratic)ÚslowÚraisesÚXFAIL)Úsigned_permutationsz.a, b, c, d, p, q, x, y, z, w, t, u, v, X, Y, ZT)Úintegerzt_:7zm1:4Ún1c                 óT   — t          t          t          | ¦  «        ¦  «        ¦  «        S ©N)r   r   ©Úeqs    úf/granary/edev/quantum/lib/python3.11/site-packages/sympy/solvers/diophantine/tests/test_diophantine.pyÚdiop_simplifyrJ   '   s   € Ý•G�H R™LœLÑ)Ô)Ñ*Ô*Ð*ó    c                  ó^   — t          t          d„ ¦  «         t          t          d„ ¦  «         d S )Nc                  óD   — t          t          t          ¦  «        ¦  «        S rF   )r   r   Úx© rK   rI   ú<lambda>z#test_input_format.<locals>.<lambda>,   s   € �k­#­a©&¬&Ñ1Ô1€ rK   c                  ó@   — t          t          t          z  dz
  ¦  «        S ©Né   )r   rN   r   rO   rK   rI   rP   z#test_input_format.<locals>.<lambda>-   s   € �k­!­B©$°©(Ñ3Ô3€ rK   )r@   Ú	TypeErrorrO   rK   rI   Útest_input_formatrU   +   s0   € Ý
�9Ð1Ð1Ñ2Ô2Ð2Ý
�9Ð3Ð3Ñ4Ô4Ð4Ð4Ð4rK   c                  ó¤   — t          d¦  «        t          ¦   «         k    sJ ‚t          t          d¦  «        ¦  «        t          ¦   «         k    sJ ‚d S rR   )r   Úsetr	   rO   rK   rI   Útest_nosolsrX   0   sF   € å�q‰>Œ>�S™UœUÒ"Ð"Ð"Ð"Ý•q˜‘t”tÑÔ¥¡¤Ò%Ð%Ð%Ð%Ð%Ð%rK   c                  ó´   — t          t          dz
  t          dz
  dz  z  ¦  «        ddhk    sJ ‚t          t          dz
  t          dz
  z  ¦  «        ddhk    sJ ‚d S )Né   é   ©rZ   ©r[   ©r   rN   rO   rK   rI   Útest_univariater_   6   s_   € Ý•q˜1‘u�q 1™u q™jÑ(Ñ)Ô)¨d°D¨\Ò9Ð9Ð9Ð9Ý•q˜1‘u�q 1™u‘oÑ&Ô&¨4°¨,Ò6Ð6Ð6Ð6Ð6Ð6rK   c            
      óÜ  — t          t          d„ ¦  «         t          t          d„ ¦  «         t          t          d„ ¦  «         t          t          d„ ¦  «         t	          dt
          dz  z  dt
          z  z   dz
  ¦  «        t
          gd	d
t
          dt
          dz  didfk    sJ ‚t	          t
          t          z  t          z   ¦  «        t
          t          t          gt
          t          z  d	t          d	idfk    sJ ‚t	          t
          t          z  t          z   t          z   t
          dz  z   ¦  «        t          t
          t          t          gt
          t          z  d	t          d	t
          dz  d	t          d	idfk    sJ ‚t	          t
          t          z  t
          t          z  z   t
          dz  z   d	z   ¦  «        t
          t          t          gt
          t          z  d	t
          t          z  d	t
          dz  d	d	d	idfk    sJ ‚t	          t
          t          z  t          z   t          z   dz   ¦  «        t          t
          t          t          gt
          t          z  d	t          d	d	dt          d	idfk    sJ ‚t	          t
          t          z  t          t          z  z   ¦  «        t          t
          t          t          gt
          t          z  d	t          t          z  d	idfk    sJ ‚t	          t
          t          dz  z  d	z   ¦  «        t
          t          gt
          t          dz  z  d	d	d	idfk    sJ ‚t	          t
          dz  t          dz  z   t          dz  z   dz
  ¦  «        t
          t          t          gd	dt
          dz  d	t          dz  d	t          dz  d	idfk    sJ ‚t	          t
          dz  t          dz  z   t          dz  z   ¦  «        t
          t          t          gt
          dz  d	t          dz  d	t          dz  d	idfk    sJ ‚d S )Nc                  ó<   — t          t          dz  dz  dz
  ¦  «        S )Nr[   rS   rZ   )r,   rN   rO   rK   rI   rP   z$test_classify_diop.<locals>.<lambda><   s   € �m­A¨q©D°©F°Q©JÑ7Ô7€ rK   c                  ó    — t          d¦  «        S ©NrZ   ©r,   rO   rK   rI   rP   z$test_classify_diop.<locals>.<lambda>=   s   € �}¨QÑ/Ô/€ rK   c                  ó`   — t          t          t          z  t          z  t          z  dz
  ¦  «        S rc   )r,   ÚwrN   ÚyÚzrO   rK   rI   rP   z$test_classify_diop.<locals>.<lambda>>   s   € ­µa½±c½!±e½A±gÀ±kÑ(BÔ(B€ rK   c                  ób   — t          t          dz  t          dz  z   t          dz  z   dz
  ¦  «        S )NrS   é   éZ   )r,   rN   rg   rh   rO   rK   rI   rP   z$test_classify_diop.<locals>.<lambda>?   s(   € ­µa¸±d½QÀ¹T±kÅAÀqÁDÑ6HÈ2Ñ6MÑ(NÔ(N€ rK   é   r[   é   é*   rZ   iÖÿÿÿÚ
univariateÚinhomogeneous_ternary_quadraticÚinhomogeneous_general_quadraticÚhomogeneous_general_quadraticÚ
cubic_thuerj   éb   ižÿÿÿÚgeneral_sum_of_even_powersÚ$homogeneous_ternary_quadratic_normal)	r@   rT   Ú
ValueErrorÚNotImplementedErrorr,   rN   rg   rh   rf   rO   rK   rI   Útest_classify_diopry   ;   s¨  € Ý
�9Ð7Ð7Ñ8Ô8Ð8Ý
�:Ð/Ð/Ñ0Ô0Ð0Ý
ÕÐ BÐ BÑCÔCÐCÝ
ÕÐ NÐ NÑOÔOÐOÝ˜�A˜q™D™ 2¥a¡4™¨"Ñ,Ñ-Ô-Ý	
ˆˆa�•a˜�Q ™T 2Ð&¨ð26ò 6ð 6ð 6ð 6å��1™�q™Ñ!Ô!Ý	
�A�qˆ	•A•a‘C˜�A˜q�>Ð#Dð&Fò Fð Fð Fð Få��1™�q™¥1™¥q¨!¡tÑ+Ñ,Ô,Ý	
�A�q•!ˆ•q�‘s˜A�q !¥Q¨¡T¨1­a°Ð3Ð5Vð1Xò Xð Xð Xð Xå��1™�q¥™s™¥Q¨¡TÑ)¨AÑ-Ñ.Ô.Ý	
�A�qˆ	•A•a‘C˜�A�a™C ¥A q¡D¨!¨Q°Ð2Ð4Uð3Wò Wð Wð Wð Wå��1™�q™¥1™ rÑ)Ñ*Ô*Ý	
�A�q•!ˆ•q�‘s˜A�q ! Q¨­A¨qÐ1Ð3Tð/Vò Vð Vð Vð Vå��1™�q¥™s™Ñ#Ô#Ý	
�A�q•!ˆ•q�‘s˜A�q¥™s AÐ&Ð(Gð(Iò Ið Ið Ið Iå��1˜a™4™ !™Ñ$Ô$Ý	
�Aˆ••1�a‘4‘˜˜A˜qÐ! <ð)1ò 1ð 1ð 1ð 1å�˜A™¥ 1¡™¥q¨!¡tÑ+¨{Ñ;Ñ<Ô<Ý	
�A�qˆ	�A�s�A˜q™D !¥Q¨¡T¨1­a°©d°AÐ6Ð8TðAVò Vð Vð Vð Vå�˜A™¥ 1¡™¥q¨!¡tÑ+Ñ,Ô,Ý	
�A�qˆ	•A�q‘D˜!�Q ™T 1¥a¨¡d¨AÐ.Ð0Vð1Xò Xð Xð Xð Xð Xð XrK   c                  ó  — t          t          ¦  «        dk    sJ ‚t          dt          z  ¦  «        dk    sJ ‚t          dt          z  ¦  «        dk    sJ ‚t          t          dz   ¦  «        dk    sJ ‚t          dt          z  dz   ¦  «        dk    sJ ‚t          dt          z  dz   ¦  «        dk    sJ ‚t          t          t          z   ¦  «        t          t           fk    sJ ‚t          t          t          z   d	z   ¦  «        t          t           fk    sJ ‚t          t          t          z   d	z
  ¦  «        t          t           fk    sJ ‚t          d	t          z  t          z
  d
z
  ¦  «        dk    sJ ‚t          dt          z  dt          z  z   d
z
  ¦  «        dt          z  d
z
  dt          z  d
z   fk    sJ ‚t          dt          z  dt          z  z
  d
z
  ¦  «        dt          z  d
z
  dt          z  d
z
  fk    sJ ‚t          dt          z  dt          z  z
  d
z
  ¦  «        dt          z  d
z   dt          z  d
z
  fk    sJ ‚t          dt          z  d
t          z  z   ¦  «        d
t          z  dt          z  fk    sJ ‚t          dt          z  dt          z  z   ¦  «        dt          z  t          fk    sJ ‚t          dt          z  dt          z  z   dz
  ¦  «        dt          z  dz
  dt          z  dz   fk    sJ ‚t          dt          z  dt          z  z   dz
  ¦  «        dk    sJ ‚t          d	t          z  dt          z  z   dt          z  z
  d
z   ¦  «        dt          z  d
z   dt          z  d
z   fk    sJ ‚t          dt          z  dt          z  z   dt          z  z
  d
z   ¦  «        t          dt          z  dt
          z  z   d
z   dt          z  dt
          z  z   d
z   fk    sJ ‚t          dt          z  dt          z  z   dt          z  z
  d
z   d ¦  «        dk    sJ ‚t          dt          z  dt          z  z   dt          z  z   d
z
  ¦  «        dk    sJ ‚t          d
t          z  dt          z  z   dt          z  z
  dz
  ¦  «        t          dt          z  dt
          z  z   dz   dt          z  dt
          z  z   dz   fk    sJ ‚t          dt          z  dt          z  z
  dt          z  z   dz
  ¦  «        dt          z  dz   t          dt
          z  z   t
          fk    sJ ‚t          dt          z  dt          z  z   dt          z  z   t          z
  ¦  «        t          t
          t
          t          z   dt          z  dt
          z  z   dt          z  z   fk    sJ ‚t          t          d„ ¦  «         d S )N)r   rZ   rS   )éÿÿÿÿr[   rF   rj   )éþÿÿÿr   é   )éûÿÿÿr|   é   éùÿÿÿé   )NNé   )r   r}   r}   ©NNNéýÿÿÿéøÿÿÿé   é   é	   é   é   c                  ó0   — t          t          dz  ¦  «        S ©Nr[   r^   rO   rK   rI   rP   ztest_linear.<locals>.<lambda>o   s   € �j­¨1©™oœo€ rK   )
r   rN   rg   Út_0rh   Út_1rf   Út_2r@   rT   rO   rK   rI   Útest_linearr�   T   sì  € Ý•a‰=Œ=˜DÒ Ð Ð Ð Ý�a�‘c‰?Œ?˜dÒ"Ð"Ð"Ð"Ý�a�‘c‰?Œ?˜dÒ"Ð"Ð"Ð"Ý•a˜!‘eÑÔ Ò%Ð%Ð%Ð%Ý�a�‘c˜A‘gÑÔ 'Ò)Ð)Ð)Ð)Ý�a�‘c˜A‘gÑÔ %Ò'Ð'Ð'Ð'Ý•a�!‘eÑÔ¥¥s d Ò+Ð+Ð+Ð+Ý•a�!‘e˜a‘iÑ Ô ¥S­3¨$ KÒ/Ð/Ð/Ð/Ý•a�!‘e˜a‘iÑ Ô ¥S­3¨$ KÒ/Ð/Ð/Ð/Ý�a�‘c�A‘g ‘kÑ"Ô" eÒ+Ð+Ð+Ð+Ý�a�‘c˜A�a™C‘i !‘mÑ$Ô$¨­3©°©°Bµs±F¸Q±JÐ(?Ò?Ð?Ð?Ð?Ý�a�‘c˜A�a™C‘i !‘mÑ$Ô$¨­3©°©°Aµc±E¸A±IÐ(>Ò>Ð>Ð>Ð>Ý�b�‘d˜Q�q™S‘j 1‘nÑ%Ô%¨!­C©%°!©)°R½±V¸a±ZÐ)@Ò@Ð@Ð@Ð@Ý�a�‘c˜A�a™C‘iÑ Ô  Q¥s¡U¨B­s©F OÒ3Ð3Ð3Ð3Ý�a�‘c˜A�a™C‘iÑ Ô  R­¡V­S MÒ1Ð1Ð1Ð1Ý�a�‘c˜A�a™C‘i !‘mÑ$Ô$¨­3©°©°Bµs±F¸Q±JÐ(?Ò?Ð?Ð?Ð?Ý�a�‘c˜A�a™C‘i !‘mÑ$Ô$¨Ò4Ð4Ð4Ð4Ý�a�‘c˜A�a™C‘i !¥A¡#‘o¨Ñ)Ñ*Ô*¨qµ©u°q©y¸!½C¹%À!¹)Ð.DÒDÐDÐDÐDÝ�a�‘c˜A�a™C‘i !¥A¡#‘o¨Ñ)Ñ*Ô*­s°Aµc±E¸A½c¹E±MÀAÑ4EÀqÍÁuÈqÕQTÉuÁ}ÐWXÑGXÐ.YÒYÐYÐYÐYÝ�a�‘c˜A�a™C‘i !¥A¡#‘o¨Ñ)¨4Ñ0Ô0°IÒ=Ð=Ð=Ð=Ý�a�‘c˜A�a™C‘i !¥A¡#‘o¨Ñ)Ñ*Ô*Ð.@Ò@Ð@Ð@Ð@Ý�a�‘c˜A�a™C‘i !¥A¡#‘o¨Ñ)Ñ*Ô*­s°Bµs±F¸Q½s¹U±NÀQÑ4FÈÍ3ÉÐQRÕSVÑQVÉÐY[ÑH[Ð.\Ò\Ð\Ð\Ð\Ý�a�‘c˜A�a™C‘i "¥Q¡$Ñ&¨Ñ*Ñ+Ô+°µ#±¸±	½3ÀÅ3Á¹;ÍÐ/LÒLÐLÐLÐLÝ�a�‘c˜A�a™C‘i "¥Q¡$Ñ&­Ñ*Ñ+Ô+µµS½#Å¹)ÀQÅsÁUÈRÕPSÉVÁ^ÐVXÕY\ÑV\ÑE\Ð/]Ò]Ð]Ð]Ð]õ �9Ð-Ð-Ñ.Ô.Ð.Ð.Ð.rK   c                  óö  — t          dt          z  t          z  dt          z  z   dt          z  z
  dz   ¦  «        ddhk    sJ ‚t          dt          z  t          z  dt          z  z   dt          z  z   dz   ¦  «        t          ¦   «         k    sJ ‚t          d	t          z  t          z  dt          z  z   d
t          z  z
  dz
  ¦  «        dhk    sJ ‚t          dt          z  t          z  dt          z  z
  dt          z  z
  dz
  ¦  «        dhk    sJ ‚t          dt          z  t          z  dt          z  z   dt          z  z   dz   ¦  «        h d£k    sJ ‚t          dt          z  t          z  dt          z  z   dt          z  z   dz   ¦  «        t          ¦   «         k    sJ ‚t          t          t          z  t          z   t          z   dz   ¦  «        dt          ft          dfhk    sJ ‚t          dt          z  t          z  ¦  «        sJ ‚d S )NrS   é"   r‡   rZ   )i{ÿÿÿéõÿÿÿ)r}   iÇÿÿÿr�   r[   éóÿÿÿrj   é6   )é   r   éåÿÿÿé   )éòÿÿÿr{   r}   é8   r   >   ©i_ÿÿÿr„   ©iÑÿÿÿéúÿÿÿ©iÝÿÿÿéôÿÿÿ©iãÿÿÿi»ÿÿÿ©iëÿÿÿr   ©éi   r|   ©r—   é@   ©é÷ÿÿÿrZ   rˆ   r{   é0   )r   rN   rg   rW   Útr   rO   rK   rI   Ú%test_quadratic_simple_hyperbolic_caserª   r   sÜ  € å�a�‘c�!‘e˜b¥™d‘l R­¡TÑ)¨AÑ-Ñ.Ô.Ø˜Ð"ò#ð #ð #ð #å�a�‘c�!‘e˜a¥™c‘k A¥a¡CÑ'¨!Ñ+Ñ,Ô,µ±´Ò5Ð5Ð5Ð5Ý�c�!‘e�A‘g ¥!¡‘m a­¡cÑ)¨BÑ.Ñ/Ô/°G°9Ò<Ð<Ð<Ð<Ý�c�!‘e�A‘g ¥1¡‘n r­!¡tÑ+¨bÑ0Ñ1Ô1°i°[Ò@Ð@Ð@Ð@Ý�a�‘c�!‘e˜a¥™c‘k B¥q¡DÑ(¨1Ñ,Ñ-Ô-ð 2Fð 2Fð 2Fò Fð Fð Fð Fõ �a�‘c�!‘e˜a¥™c‘k A¥a¡CÑ'¨!Ñ+Ñ,Ô,µ±´Ò5Ð5Ð5Ð5Ý•a�‘c�A‘g¥‘k A‘oÑ&Ô&¨Bµ¨7µQ¸°GÐ*<Ò<Ð<Ð<Ð<Ý�r�!‘t�A‘vÑÔÐÐÐÐÐrK   c                  ó(  — t          dt          dz  z  dt          z  t          z  z   dt          dz  z  z   dt          z  z   dt          z  z   dz
  ¦  «        dhk    sJ ‚t          d	t          dz  z  d
t          dz  z  z   dt          z  z   dt          z  z
  dz   ¦  «        t          ¦   «         k    sJ ‚t          t          dz  t          dz  z   dt          z  z   dt          z  z   dz   ¦  «        dhk    sJ ‚t          dt          dz  z  dt          z  t          z  z
  dt          dz  z  z   dt          z  z
  dt          z  z
  dz
  ¦  «        dhk    sJ ‚t          dt          dz  z  dt          z  t          z  z   dt          dz  z  z   dz
  ¦  «        h d£k    sJ ‚d S )Nrn   r[   r‚   rm   é   é   i3  )r“   r{   rj   rS   r}   é   r‡   ©r{   r{   rˆ   rl   éV  )éñÿÿÿr�   é
   r’   ¾   ©r{   r[   ©rZ   rZ   ©rZ   r|   r¯   )r   rN   rg   rW   rO   rK   rI   Útest_quadratic_elliptical_caser·   �   s‰  € õ �b�˜A™‘g ¥!¡¥A¡‘o¨­1¨a©4©Ñ/°"µQ±$Ñ6¸½A¹Ñ=ÀÑDÑEÔEÈ)ÈÒTÐTÐTÐTÝ�a�˜1™‘f˜q¥ A¡™v‘o¨­!©Ñ+¨bµ©dÑ2°RÑ7Ñ8Ô8½C¹E¼EÒAÐAÐAÐAÝ•a˜‘d�Q ™T‘k A¥a¡CÑ'¨!­A©#Ñ-°Ñ1Ñ2Ô2°x°jÒ@Ð@Ð@Ð@Ý�b�˜A™‘g ¥!¡¥A¡‘o¨­1¨a©4©Ñ/°"µQ±$Ñ6¸½A¹Ñ=ÀÑDÑEÔEÈ(ÈÒSÐSÐSÐSÝ�b�˜A™‘g ¥1¡¥Q¡Ñ&¨­A¨q©D©Ñ0°2Ñ5Ñ6Ô6Ø/Ð/Ð/ò0ð 0ð 0ð 0ð 0ð 0rK   c                  ó(  — t          dt          dz  z  dt          z  t          z  z
  dt          dz  z  z   dt          z  z   dt          z  z   dz   ¦  «        sJ ‚t          dt          dz  z  dt          z  t          z  z
  dt          dz  z  z   dt          z  z   d	t          z  z   dz
  ¦  «        sJ ‚t          dt          dz  z  dt          z  t          z  z   dt          dz  z  z   d
t          z  z   dt          z  z   dz
  ¦  «        sJ ‚t          dt          dz  z  d
t          z  t          z  z   t          dz  z
  dt          z  z   dz
  ¦  «        sJ ‚t          t          dz  dt          z  t          z  z   t          dz  z   dt          z  z   dt          z  z   dz   ¦  «        sJ ‚t          t          dz  dt          z  t          z  z
  t          dz  z   dt          z  z   dt          z  z   dz   ¦  «        sJ ‚t          t          dz  dt          z  z
  dz   ¦  «        sJ ‚d S )Nr‚   r[   é   r†   r}   r   é   r�   r‡   rj   éüÿÿÿrS   rZ   é)   é(   ©Úcheck_solutionsrN   rg   rO   rK   rI   Útest_quadratic_parabolic_caserÀ   Œ   sØ  € å˜1�Q ™T™6 B¥q¡D­¡F™?¨Rµ°1±©WÑ4°q½±sÑ:¸Q½q¹SÑ@À2ÑEÑFÔFÐFÐFÐFÝ˜1�Q ™T™6 B¥q¡D­¡F™?¨Rµ°1±©WÑ4°q½±sÑ:¸RÅ¹TÑAÀAÑEÑFÔFÐFÐFÐFÝ˜1�Q ™T™6 B¥q¡D­¡F™?¨Rµ°1±©WÑ4°q½±sÑ:¸Q½q¹SÑ@À1ÑDÑEÔEÐEÐEÐEÝ˜2�a ™d™7 Q¥q¡S­¡U™?­Q°©TÑ1°Aµa±CÑ7¸!Ñ;Ñ<Ô<Ð<Ð<Ð<Ý�1˜a™4 !¥A¡#¥a¡%™<­!¨Q©$Ñ.°µ1±Ñ4°q½±sÑ:¸QÑ>Ñ?Ô?Ð?Ð?Ð?Ý�1˜a™4 !¥A¡#¥a¡%™<­!¨Q©$Ñ.°µ1±Ñ4°q½±sÑ:¸QÑ>Ñ?Ô?Ð?Ð?Ð?Ý�1˜a™4 "¥Q¡$™;¨Ñ+Ñ,Ô,Ð,Ð,Ð,Ð,Ð,rK   c                  óZ  — t          dt          z  t          z  ¦  «        sJ ‚t          dt          dz  z  dt          z  t          z  z
  t          dz  z   dz   ¦  «        sJ ‚t          dt          dz  z  dt          z  t          z  z
  dt          dz  z  z   dt          z  z
  dt          z  z
  dz   ¦  «        sJ ‚t          d	t          dz  z  d
t          z  t          z  z   dt          dz  z  z   dt          z  z
  dt          z  z   d	z
  ¦  «        sJ ‚t          dt          dz  z  dt          z  t          z  z   dt          dz  z  z   dt          z  z
  d
t          z  z
  dz
  ¦  «        sJ ‚t          dt          dz  z  dt          z  t          z  z
  dt          z  z
  dt          z  z
  dz
  ¦  «        sJ ‚t          dt          z  t          z  dt          dz  z  z
  dt          z  z
  dt          z  z
  dz
  ¦  «        sJ ‚t          t          dz  t          dz  z
  dt          z  z
  dt          z  z
  ¦  «        sJ ‚t          t          dz  dt          dz  z  z
  dt          z  z
  dt          z  z
  ¦  «        sJ ‚t          dt          dz  z  dt          dz  z  z
  dt          z  z
  d	t          z  z
  dz
  ¦  «        sJ ‚d S )Nr¨   rj   r[   r}   r|   rS   r­   é   r‡   é   r‚   r²   é    r¬   r»   rˆ   r�   r¾   rO   rK   rI   Útest_quadratic_perfect_squarerÅ   —   sg  € õ ˜2�a™4¥™6Ñ"Ô"Ð"Ð"Ð"Ý˜1�Q ™T™6 A¥a¡C­¡E™>­A¨q©DÑ0°1Ñ4Ñ5Ô5Ð5Ð5Ð5Ý˜2�a ™d™7 Q¥q¡S­¡U™?¨Q­q°!©t©VÑ3°Qµq±SÑ8¸2½a¹4Ñ?À"ÑDÑEÔEÐEÐEÐEÝ˜2�a ™d™7 R­¡T­!¡VÑ+¨aµ°1±©fÑ4°q½±sÑ:¸Q½q¹SÑ@À2ÑEÑFÔFÐFÐFÐFÝ˜1�Q ™T™6 B¥q¡D­¡F™?¨Q­q°!©t©VÑ3°b½±dÑ:¸RÅ¹TÑAÀBÑFÑGÔGÐGÐGÐGÝ˜1�Q ™T™6 A¥a¡C­¡E™>¨A­a©CÑ/°µ1±Ñ4°qÑ8Ñ9Ô9Ð9Ð9Ð9Ý˜3�q™5¥™7 Q¥q¨!¡t¡VÑ+¨aµ©cÑ1°1µQ±3Ñ6¸Ñ;Ñ<Ô<Ð<Ð<Ð<Ý�1˜a™4¥! Q¡$™;¨­1©Ñ,¨qµ©sÑ2Ñ3Ô3Ð3Ð3Ð3Ý�1˜a™4 !¥A q¡D¡&™=¨1­Q©3Ñ.°µ1±Ñ4Ñ5Ô5Ð5Ð5Ð5Ý˜1�Q ™T™6 A¥a¨¡d¡F™?¨Q­q©SÑ0°2µa±4Ñ7¸!Ñ;Ñ<Ô<Ð<Ð<Ð<Ð<Ð<rK   c                  óŠ  — t          t          dz  dt          z  z
  dt          dz  z  z
  ¦  «        sJ ‚t          dt          dz  z  dt          dz  z  z
  dt          z  z
  dt          z  z
  ¦  «        sJ ‚t          t          dz  t          t          z  z
  t          dz  z
  dt          z  z
  ¦  «        sJ ‚t          t          dz  dt          dz  z  z
  dt          z  z
  dt          z  z
  ¦  «        sJ ‚t          t          dz  t          dz  z   dt          z  z   dt          z  z   dz   ¦  «                             ¦   «         dhk    sJ ‚d S )Nr[   r}   rS   rˆ   r�   r¯   )r¿   rN   rg   r>   ÚsolverO   rK   rI   Ú!test_quadratic_non_perfect_squarerÈ   ¦   s#  € õ �1˜a™4 !¥A¡#™:¨­!¨Q©$©Ñ.Ñ/Ô/Ð/Ð/Ð/Ý˜1�Q ™T™6 A¥a¨¡d¡F™?¨Q­q©SÑ0°1µQ±3Ñ6Ñ7Ô7Ð7Ð7Ð7Ý�1˜a™4¥!¥A¡#™:­¨1©Ñ,¨qµ©sÑ2Ñ3Ô3Ð3Ð3Ð3Ý�1˜a™4 !¥A q¡D¡&™=¨1­Q©3Ñ.°µ1±Ñ4Ñ5Ô5Ð5Ð5Ð5Ý�1˜a™4¥! Q¡$™;¨­1©Ñ,¨qµ©sÑ2°QÑ6Ñ7Ô7×=Ò=Ñ?Ô?ÀHÀ:ÒMÐMÐMÐMÐMÐMrK   c                  ó&  — ddt           z  dt           z  dz
  z  z
  t          dt          z  dz
  z  z   } t           t          f}t          | ¦  «        D ]A}t          |                      t          t          ||¦  «        ¦  «        ¦  «        ¦  «        rJ ‚ŒBd S )NiÐÿÿÿr[   rS   rZ   ©rN   rg   r   rJ   ÚxreplaceÚdictÚzip©rH   ÚvÚsols      rI   Útest_issue_9106rÑ   ±   sŒ   € Ø	ˆq•‰s�A•a‘C˜!‘G‰}Ñ	�q !¥A¡#¨¡'™{Ñ	*€BÝ	
�Aˆ€AÝ˜2‰Œð Að AˆÝ  §¢­Tµ#°a¸±+´+Ñ->Ô->Ñ!?Ô!?Ñ@Ô@Ð@Ð@Ð@Ð@ðAð ArK   c                  óþ   — t           dz  t           z
  t          dz  z
  } t           t          f}t          | ¦  «        D ]A}t          |                      t          t          ||¦  «        ¦  «        ¦  «        ¦  «        rJ ‚ŒBd S rŒ   rÊ   rÎ   s      rI   Útest_issue_18138rÓ   ¸   sv   € Ý	
ˆA‰•‰•A�q‘D‰€BÝ	
�Aˆ€AÝ˜2‰Œð Að AˆÝ  §¢­Tµ#°a¸±+´+Ñ->Ô->Ñ!?Ô!?Ñ@Ô@Ð@Ð@Ð@Ð@ðAð ArK   c                  óŽ  — t          dt          dz  z  dt          z  t          z  z   dt          dz  z  z
  dt          z  z
  dt          z  z
  dz
  ¦  «        sJ ‚t          dt          dz  z  dt          z  t          z  z
  dt          dz  z  z   d	t          z  z
  dz
  ¦  «        sJ ‚t          d
t          z
  dt          dz  z  z   t          z
  dt          z  t          z  z
  dt          dz  z  z
  ¦  «        sJ ‚t          ddt          z  z   dt          dz  z  z   dt          z  z   t          t          z  z   dt          dz  z  z
  ¦  «        sJ ‚d S )Nr‚   r[   r²   rÄ   rÃ   r¬   r„   r   r}   r»   rj   rS   rZ   r¾   rO   rK   rI   Útest_quadratic_non_perfect_slowrÕ   ¿   s$  € å˜1�Q ™T™6 B¥q¡D­¡F™?¨Q­q°!©t©VÑ3°b½±dÑ:¸RÅ¹TÑAÀBÑFÑGÔGÐGÐGÐGõ ˜2�a ™d™7 Q¥q¡S­¡U™?¨Q­q°!©t©VÑ3°a½±cÑ9¸AÑ=Ñ>Ô>Ð>Ð>Ð>Ý˜2¥™6 A¥a¨¡d¡F™?­QÑ.°µ1±µQ±Ñ6¸½1¸a¹4¹Ñ?Ñ@Ô@Ð@Ð@Ð@Ý˜1˜q¥™s™7 Q¥q¨!¡t¡VÑ+¨aµ©cÑ1µAµa±CÑ7¸!½A¸q¹D¹&Ñ@ÑAÔAÐAÐAÐAÐAÐArK   c                  óÐ  — t          dd¦  «        dgk    sJ ‚t          dd¦  «        g k    sJ ‚t          dd¦  «        dgk    sJ ‚t          d	d
¦  «        dgk    sJ ‚t          dd¦  «        g k    sJ ‚t          dd¦  «        g k    sJ ‚t          dd¦  «        dt          fgk    sJ ‚t          dd¦  «        dt          z  t          fgk    sJ ‚t          dd¦  «        g k    sJ ‚t          dd¦  «        dgk    sJ ‚t          dd¦  «        dgk    sJ ‚t          dd¦  «        dgk    sJ ‚t          dd¦  «        ddgk    sJ ‚t          dd¦  «        g d¢k    sJ ‚t          dd¦  «        dgk    sJ ‚t          dd¦  «        dgk    sJ ‚t          dd¦  «        dgk    sJ ‚t          d d¦  «        d!gk    sJ ‚t          d"d¦  «        d#gk    sJ ‚t          d
d¦  «        d$gk    sJ ‚t          d%d¦  «        d&gk    sJ ‚t          dd¦  «        d'gk    sJ ‚t          d"d¦  «        g k    sJ ‚t          d(d¦  «        d)gk    sJ ‚t          d*d¦  «        d+gk    sJ ‚t          d,d¦  «        d-gk    sJ ‚t          d.d¦  «        g k    sJ ‚t          dd/¦  «        g d0¢k    sJ ‚t          d1dd2d3dd/¦  «        d4k    sJ ‚t          dd5¦  «        g d6¢k    sJ ‚t          t          d7d8¦  «        ¦  «        h d9£k    sJ ‚t          dd:¦  «        d;gk    sJ ‚t          d<d=¦  «        g k    sJ ‚t          dd¦  «        d>d?gk    sJ ‚t          d@dA¦  «        dBgk    sJ ‚t          d@dC¦  «        g k    sJ ‚t          dDdC¦  «        dEgk    sJ ‚t          dFddGddDdC¦  «        sJ ‚t          dDdH¦  «        dIdJgk    sJ ‚t          ddt          ¦  «        dt          fgk    sJ ‚t          ddt          ¦  «        g k    sJ ‚d S )KNrS   r   ©r   r   éïÿÿÿr~   iíÿÿÿr¬   ©r[   rZ   r”   r­   r±   rÃ   r}   rˆ   rº   r¹   é´   )r†   rj   iLÿÿÿ)r‡   r�   r   r{   ©rZ   r[   é©   ))r‡   r}   )r}   r‡   )rÃ   r   )r   rÃ   rZ   )i‰  rÚ   iÔ  )i�Ê  ix  iÕ  )l   IN�d? l   ”j\iÚ  )i“À  i"  iß  )l   ÐWíRlQ]>I2l   A€AJtWj«Uˆ^	 )é!   r‚   é   )éª   é'   )r†   r}   r¼   )rÄ   r}   i"  )r­   rZ   é	S  ©l   !K�2l   uGÔoX rÄ   r»   )©rS   rZ   )é‰  ém   ©é$   r²   r„   rä   rå   Tr–   ))éÜ   é=   ©r½   r®   )é   éÕ   ©r‡   rS   é�   r‡   >   ©iXÖ iŽ´  ©ipÖi"'M©i§)  iS  ©l   )fMÚOl   ƒ­?_©l   ;>x< i¹Êÿ|©rÃ   rZ   rÂ   )i­  i„  éÀ   r†   )r�   rZ   )r�   rZ   é§   r[   rô   r|   é{   )r®   rZ   r®   r“   iéÿÿÿ)éöÿÿÿrZ   )r²   rZ   )r   r©   r   rW   rO   rK   rI   Útest_DNrù   É   sØ  € õ �1�a‰=Œ=˜V˜HÒ$Ð$Ð$Ð$Ý�3˜ÑÔ˜rÒ!Ð!Ð!Ð!Ý�3˜ÑÔ ˜xÒ'Ð'Ð'Ð'Ý�3˜ÑÔ ˜xÒ'Ð'Ð'Ð'Ý�3˜ÑÔ˜rÒ!Ð!Ð!Ð!Ý�1�a‰=Œ=˜BÒÐÐÐÝ�1�a‰=Œ=˜a¥˜V˜HÒ$Ð$Ð$Ð$Ý�1�a‰=Œ=˜a¥™c¥1˜X˜JÒ&Ð&Ð&Ð&Ý�2�r‰?Œ?˜bÒ Ð Ð Ð Ý�1�c‰?Œ?˜w˜iÒ'Ð'Ð'Ð'Ý�1�dÑÔ ˜yÒ(Ð(Ð(Ð(Ý�1�a‰=Œ=˜V˜HÒ$Ð$Ð$Ð$õ �2�q‰>Œ>˜f fÐ-Ò-Ð-Ð-Ð-Ý�2�sÑÔÐCÐCÐCÒCÐCÐCÐCõ
 �2�q‰>Œ>˜j˜\Ò)Ð)Ð)Ð)Ý�3˜‰?Œ?˜}˜oÒ-Ð-Ð-Ð-Ý�3˜‰?Œ?Ð?Ð@Ò@Ð@Ð@Ð@Ý�3˜‰?Œ?˜}˜oÒ-Ð-Ð-Ð-Ý�3˜‰?Œ?Ð^Ð_Ò_Ð_Ð_Ð_Ý�2�q‰>Œ>˜g˜YÒ&Ð&Ð&Ð&Ý�2�q‰>Œ>˜i˜[Ò(Ð(Ð(Ð(õ �2�r‰?Œ?˜w˜iÒ'Ð'Ð'Ð'Ý�3˜ÑÔ˜rÒ!Ð!Ð!Ð!Ý�2�r‰?Œ?˜w˜iÒ'Ð'Ð'Ð'Ý�3˜ÑÔ ˜yÒ(Ð(Ð(Ð(Ý�5˜"ÑÔÐ"?Ð!@Ò@Ð@Ð@Ð@Ý�2�r‰?Œ?˜bÒ Ð Ð Ð õ �2�r‰?Œ?Ð<Ð<Ð<Ò<Ð<Ð<Ð<õ �b˜!˜S # r¨2Ñ.Ô.°$Ò6Ð6Ð6Ð6å�2�r‰?Œ?ÐHÐHÐHÒHÐHÐHÐHÝ�w�s˜BÑÔÑ Ô ð %Fð %Fð %Fò Fð Fð Fð Fõ �2�r‰?Œ?˜{˜mÒ+Ð+Ð+Ð+Ý�3˜ÑÔ˜rÒ!Ð!Ð!Ð!Ý�2�r‰?Œ?˜w¨Ð/Ò/Ð/Ð/Ð/Ý�3˜‰?Œ?˜w˜iÒ'Ð'Ð'Ð'Ý�3˜ÑÔ˜rÒ!Ð!Ð!Ð!å�3˜ÑÔ ˜yÒ(Ð(Ð(Ð(õ �b˜!˜S ! S¨"Ñ-Ô-Ð-Ð-Ð-å�3˜ÑÔ ¨7Ð 3Ò3Ð3Ð3Ð3å�1�a�ÑÔ ¥A ˜xÒ'Ð'Ð'Ð'Ý�1�b�!ÑÔ Ò"Ð"Ð"Ð"Ð"Ð"rK   c                  ó¸  — t          dd¦  «        g d¢k    sJ ‚t          dd¦  «        g d¢k    sJ ‚t          dd¦  «        g k    sJ ‚t          dd	¦  «        d
gk    sJ ‚t          dd¦  «        ddgk    sJ ‚t          dd¦  «        dgk    sJ ‚t          dd¦  «        dgk    sJ ‚t          ddt          ¦  «        dgk    sJ ‚t          ddt          ¦  «        dt          fgk    sJ ‚t          ddt          ¦  «        dt          z  t          fdt          z  t          fgk    sJ ‚t          ddt          ¦  «        dgk    sJ ‚t          d	dt          ¦  «        g k    sJ ‚d S )NrÃ   r»   )rã   )r„   rZ   ræ   r–   )rí   )rŸ   rS   rê   )iØÿÿÿr®   rö   r|   éÁ  rZ   )l   éuÒL" l   ¼EñçéY   r…   ©rˆ   rZ   r¦   rá   r{   râ   iT  )iô  r¼   r   r×   rj   r[   rS   )r   r©   rO   rK   rI   Útest_bf_pellrþ     s’  € Ý�b˜"ÑÔÐ!<Ð!<Ð!<Ò<Ð<Ð<Ð<Ý�b˜"ÑÔÐ!IÐ!IÐ!IÒIÐIÐIÐIÝ�c˜2ÑÔ "Ò$Ð$Ð$Ð$Ý�d˜AÑÔÐ#BÐ"CÒCÐCÐCÐCÝ�b˜"ÑÔ &¨'Ð!2Ò2Ð2Ð2Ð2Ý�e˜RÑ Ô Ð%BÐ$CÒCÐCÐCÐCÝ�c˜2ÑÔ 9 +Ò-Ð-Ð-Ð-Ý�b˜!�QÑÔ F 8Ò+Ð+Ð+Ð+Ý�a˜�AÑÔ A¥q 6 (Ò*Ð*Ð*Ð*Ý�a˜�AÑÔ A¥a¡C­ 8¨bµ©dµA¨YÐ"7Ò7Ð7Ð7Ð7Ý�a˜�AÑÔ 6 (Ò*Ð*Ð*Ð*Ý�a˜�QÑÔ 2Ò%Ð%Ð%Ð%Ð%Ð%rK   c                  ó  — t          ddd¦  «        dk    sJ ‚t          ddd¦  «        dk    sJ ‚t          ddd	¦  «        dk    sJ ‚t          ddd
¦  «        dk    sJ ‚t          dd
d¦  «        dk    sJ ‚t          ddd¦  «        dk    sJ ‚d S )Nr[   rZ   r   r|   rj   r}   rS   r~   r­   rÃ   r�   r   r®   r¬   )r"   rO   rK   rI   Útest_lengthr   #  s²   € Ý�!�Q˜‰?Œ?˜aÒÐÐÐÝ�"�a˜ÑÔ˜qÒ Ð Ð Ð Ý�"�a˜ÑÔ Ò!Ð!Ð!Ð!Ý�!�Q˜ÑÔ˜qÒ Ð Ð Ð Ý�!�R˜ÑÔ Ò"Ð"Ð"Ð"Ý�!�Q˜‰?Œ?˜aÒÐÐÐÐÐrK   c           	      ó  — t          | ¦  «        \  }}|t          t          t          g¦  «        z  |z   d         }|t          t          t          g¦  «        z  |z   d         }t	          |                      t          t          t          f||f¦  «        ¦  «        ¦  «        }t          d„ |j
        D ¦   «         ¦  «        }t          t          z  t          t          fD ]}||                     ¦   «         v r dS Œt          dz  t          dz  dfD ]}||                     ¦   «         vrd||<   Œ|t          dz           dk    rPt          |t          dz           |t          dz           ¦  «        o#t          |d         |t          dz           ¦  «        S dS )a9  
    Test whether X*Y, X, or Y terms are present in the equation
    after transforming the equation using the transformation returned
    by transformation_to_pell(). If they are not present we are good.
    Moreover, coefficient of X**2 should be a divisor of coefficient of
    Y**2 and the constant term.
    r   rZ   c                 óT   — g | ]%}t           |j        t          t          gŽ ¦  «        ‘Œ&S rO   )ÚreversedÚas_independentÚXÚY)Ú.0r©   s     rI   ú
<listcomp>z-is_pell_transformation_ok.<locals>.<listcomp>9  s/   € ÐOÐOÐO¸!•(Ð+˜1Ô+­aµ¨VÐ4Ñ5Ô5ÐOÐOÐOrK   Fr[   T)r*   r   r  r  rJ   ÚsubsrÍ   rN   rg   rÌ   ÚargsÚkeysr   )rH   ÚAÚBÚurÏ   Ú
simplifiedÚcoeffÚterms           rI   Úis_pell_transformation_okr  ,  sh  € õ   Ñ#Ô#�D€A€qØ	
�6•1•a�&‰>Œ>Ñ	˜AÑ	˜qÔ!€AØ	
�6•1•a�&‰>Œ>Ñ	˜AÑ	˜qÔ!€AÝ˜rŸwšw¥s­A­q¨6°A°q°6Ñ':Ô':Ñ;Ô;Ñ<Ô<€JåÐOÐO¸z¼ÐOÑOÔOÑPÔP€Eå•1‘•a��ð ð ˆØ�5—:’:‘<”<ÐÐØ�5�5ð  õ �A‘•q˜!‘t˜Q�ð ð ˆØ�u—z’z‘|”|Ð#Ð#ØˆE�$‰Køà�Q�‰T„{�aÒÐÝ˜�q !™tœ e­A¨q©D¤kÑ2Ô2ð )Ý�%˜”(˜E¥! Q¡$œKÑ(Ô(ð	)ð ˆ4rK   c                  ó   — t          dt          dz  z  dt          z  t          z  z
  t          dz  z   dt          z  z   dt          z  z
  dz
  ¦  «        sJ ‚t          dt          dz  z  dt          z  t          z  z   dt          dz  z  z
  dt          z  z
  dt          z  z
  d	z
  ¦  «        sJ ‚t          t          dz  t          dz  z
  d
z   ¦  «        sJ ‚t          t          dz   dt          dz  z  z   d	z
  ¦  «        sJ ‚t          dt          dz  z  dt          z  t          z  z
  dt          dz  z  z   dt          z  z
  dt          z  z
  dz   ¦  «        sJ ‚t          dt          dz  z  dt          z  t          z  z   t          dz  z   dt          z  z
  dt          z  z
  dz
  ¦  «        sJ ‚t          t          dz  dt          z  t          z  z
  dt          dz  z  z
  dt          z  z
  d	t          z  z
  dz
  ¦  «        sJ ‚t          dt          dz  z  dt          z  t          z  z
  dt          dz  z  z   d	t          z  z
  dt          z  z
  dz
  ¦  «        sJ ‚d S )Nr”   r[   r   rl   rØ   rÞ   r}   rÃ   r¬   r­   rÂ   é-   r²   é¾   r˜   rS   rß   é‚   rü   rm   rˆ   r°   )r  rN   rg   rO   rK   rI   Útest_transformation_to_pellr  J  s  € Ý$ S­¨A©¡X°µ!±µA±Ñ%5½¸1¹Ñ%<¸qÅ¹sÑ%BÀQÅqÁSÑ%HÈ2Ñ%MÑNÔNÐNÐNÐNÝ$ S­¨A©¡X°µ1±µQ±Ñ%6¸½1¸a¹4¹Ñ%?À!ÅAÁ#Ñ%EÈÍ1ÉÑ%LÈrÑ%QÑRÔRÐRÐRÐRÝ$¥Q¨¡T­A¨q©D¡[°2Ñ%5Ñ6Ô6Ð6Ð6Ð6Ý$¥a¨¡d U¨Q­q°!©t©V¡^°bÑ%8Ñ9Ô9Ð9Ð9Ð9Ý$ R­¨1©¡W¨rµ!©tµA©vÑ%5¸½!¸Q¹$¹Ñ%>ÀÅ1ÁÑ%DÀrÍ!ÁtÑ%KÈaÑ%OÑPÔPÐPÐPÐPÝ$ S­¨A©¡X°µ1±µQ±Ñ%6½¸A¹Ñ%=ÀÅ!ÁÑ%CÀcÍ!ÁeÑ%KÈcÑ%QÑRÔRÐRÐRÐRÝ$¥Q¨¡T¨A­a©Cµ©E¡\°3µq¸!±t±8Ñ%;¸aÅ¹cÑ%AÀBÅqÁDÑ%HÈ2Ñ%MÑNÔNÐNÐNÐNÝ$ R­¨1©¡W¨qµ©sµ1©u¡_°r½!¸Q¹$±wÑ%>ÀÅAÁÑ%EÈÍ1ÉÑ%LÈtÑ%SÑTÔTÐTÐTÐTÐTÐTrK   c                  óx  — t          t          dz  dt          z  z
  t          dz  z
  ¦  «        dk    sJ ‚t          t          dz  dt          dz  z  z
  dz
  ¦  «        dk    sJ ‚t          t          dz  dt          z  t          z  z
  dt          dz  z  z
  dz
  ¦  «        dk    sJ ‚t          dt          dz  z  d	t          z  t          z  z
  t          dz  z
  d
z
  ¦  «        dk    sJ ‚t          dt          dz  z  dt          z  t          z  z
  t          dz  z
  dz
  ¦  «        dk    sJ ‚t          dt          dz  z  dt          z  t          z  z   t          dz  z
  ¦  «        dk    sJ ‚t          dt          dz  z  dt          z  t          z  z
  t          dz  z   dt          z  z   dt          z  z
  dz
  ¦  «        dk    sJ ‚d S )Nr[   rµ   rS   r}   )rS   r}   rj   r   )r}   r   r‚   rˆ   )r‰   rç   r‡   )r‚   éT   r„   )rZ   r   r”   rl   )ée   i¸—ˆÿ)r    rN   rg   rO   rK   rI   Útest_find_DNr  U  s™  € Ý•1�a‘4˜!�A™#‘:¥ 1¡Ñ$Ñ%Ô%¨Ò/Ð/Ð/Ð/Ý•1�a‘4˜!�A˜q™D™&‘= 1Ñ$Ñ%Ô%¨Ò/Ð/Ð/Ð/Ý•1�a‘4˜!�A™#�a™%‘< !¥A q¡D¡&Ñ(¨1Ñ,Ñ-Ô-°Ò7Ð7Ð7Ð7Ý�1•Q˜‘T‘6˜A�a™C¥™E‘>¥A q¡DÑ(¨1Ñ,Ñ-Ô-°Ò9Ð9Ð9Ð9Ý�1•Q˜‘T‘6˜A�a™C¥™E‘>¥A q¡DÑ(¨2Ñ-Ñ.Ô.°'Ò9Ð9Ð9Ð9Ý�2•a˜‘d‘7˜Q�q™S¥™U‘?¥A q¡DÑ(Ñ)Ô)¨VÒ3Ð3Ð3Ð3Ý�3•q˜!‘t‘8˜a¥™c¥!™eÑ#¥a¨¡dÑ*¨Q­q©SÑ0°1µQ±3Ñ6¸Ñ:Ñ;Ô;¸ÒNÐNÐNÐNÐNÐNrK   c                  óÂ   — g d¢} | D ]3\  }}t          ||¦  «        \  }}}||dz  z  ||dz  z  z   |dz  k    sJ ‚Œ4t          dd¦  «        �J ‚t          dd¦  «        �J ‚d S )N)©rÃ   r¬   ©rS   r“   ©r¼   i�ÿÿÿ)rj   r€   )r€   rj   ©é[   r„   rµ   ©rZ   r{   )rj   rÄ   ©r­   rÃ   ©i)ã rZ   ©rÞ   iÆýÿÿr[   r{   r�   )r!   ©r  ÚaÚbrf   rN   rg   s         rI   Útest_ldescentr)  _  s•   € ð
4ð 
4ð 
4€Aàð 'ð '‰ˆˆ1Ý˜1˜a‘.”.‰ˆˆ1ˆaØ��A‘‰v˜˜!˜Q™$™‰ ! Q¡$Ò&Ð&Ð&Ð&Ð&Ý�B˜ÑÔÐ#Ð#Ð#Ý�A�q‰>Œ>Ð!Ð!Ð!Ð!Ð!rK   c                  ó  — t          dt          dz  z  dt          dz  z  z
  t          dz  z
  ¦  «        sJ ‚t          dt          dz  z  dt          dz  z  z   t          dz  z
  ¦  «        sJ ‚t          dt          dz  z  dt          dz  z  z   t          dz  z
  ¦  «        sJ ‚t          dt          dz  z  d	t          dz  z  z   dt          dz  z  z
  ¦  «        sJ ‚t          t          dz  dt          dz  z  z   t          dz  z
  ¦  «        sJ ‚t          dt          dz  z  dt          dz  z  z   t          dz  z
  ¦  «        sJ ‚t          t          dz  t          dz  z   t          dz  z
  ¦  «        sJ ‚t          d
t          dz  z  t          dz  z   dt          dz  z  z
  ¦  «        sJ ‚t          d	t          dz  z  t          dz  z
  dt          dz  z  z   ¦  «        sJ ‚t          dt          dz  z  dt          dz  z  z   dt          dz  z  z
  ¦  «        sJ ‚t          dt          dz  z  dt          dz  z  z
  dt          dz  z  z
  ¦  «        sJ ‚t          dt          dz  z  dt          dz  z  z
  dt          dz  z  z
  ¦  «        sJ ‚d S )Néê   r[   éA  r¬   ih  r}   rj   rS   r�   rº   rÂ   r²   rì   r‡   rˆ   r’   i-  é|   r˜   é1  ©r¿   rN   rg   rh   rO   rK   rI   Ú"test_diop_ternary_quadratic_normalr0  j  s]  € Ý˜3�q !™t™8 e­A¨q©D¡jÑ0µ1°a±4Ñ7Ñ8Ô8Ð8Ð8Ð8Ý˜2�a ™d™7 S­¨A©¡XÑ-µ°1±Ñ4Ñ5Ô5Ð5Ð5Ð5Ý˜1�Q ™T™6 A¥a¨¡d¡F™?­Q°©TÑ1Ñ2Ô2Ð2Ð2Ð2Ý˜1�Q ™T™6 A¥a¨¡d¡F™?¨Q­q°!©t©VÑ3Ñ4Ô4Ð4Ð4Ð4Ý�1˜a™4 !¥A q¡D¡&™=­1¨a©4Ñ/Ñ0Ô0Ð0Ð0Ð0Ý˜1�Q ™T™6 A¥a¨¡d¡F™?­Q°©TÑ1Ñ2Ô2Ð2Ð2Ð2Ý�1˜a™4¥! Q¡$™;­¨A©Ñ-Ñ.Ô.Ð.Ð.Ð.Ý˜2�a ™d™7¥Q¨¡T™>¨B­q°!©t©GÑ3Ñ4Ô4Ð4Ð4Ð4Ý˜1�Q ™T™6¥A q¡D™=¨2­a°©d©7Ñ2Ñ3Ô3Ð3Ð3Ð3Ý˜3�q !™t™8 b­¨A©¡gÑ-°µ!°Q±$±Ñ6Ñ7Ô7Ð7Ð7Ð7Ý˜2�a ™d™7 Q¥q¨!¡t¡VÑ+¨cµ!°Q±$©hÑ6Ñ7Ô7Ð7Ð7Ð7Ý˜3�q !™t™8 b­¨A©¡gÑ-°µQ¸±T±	Ñ9Ñ:Ô:Ð:Ð:Ð:Ð:Ð:rK   c           
      óœ  ‡‡‡— t          | ¦  «        }|t          t          t          t          g¦  «        z  \  ŠŠŠt          |                      t          t          t          t          f‰‰‰f¦  «        ¦  «        ¦  «        }t          ˆˆˆfd„|j	        D ¦   «         ¦  «        }‰‰z  ‰‰z  ‰‰z  fD ]}|| 
                    ¦   «         v r dS ŒdS )Nc           	      óD   •— g | ]}t           |j        ‰‰‰gŽ ¦  «        ‘ŒS rO   )r  r  )r  r©   r  r  ÚZs     €€€rI   r  z/is_normal_transformation_ok.<locals>.<listcomp>~  s2   ø€ ÐRÐRÐR¸Q•(Ð+˜1Ô+¨a°°A¨YÐ7Ñ8Ô8ÐRÐRÐRrK   FT)r+   r   rN   rg   rh   rJ   r	  rÍ   rÌ   r
  r  )rH   r  r  r  r  r  r  r3  s        @@@rI   Úis_normal_transformation_okr4  y  sÐ   øøø€ Ý  Ñ$Ô$€AØ•��1�a�yÑ!Ô!Ñ!�G€A€qˆ!Ý˜rŸwšw¥s­A­qµ!¨9°q¸!¸Q°iÑ'@Ô'@ÑAÔAÑBÔB€JåÐRÐRÐRÐRÐRÐRÀ*Ä/ÐRÑRÔRÑSÔS€EØ�1‘�a˜‘c˜1˜Q™3�ð ð ˆØ�5—:’:‘<”<ÐÐØ�5�5ð  ð ˆ4rK   c                  ó|  — t          t          dz  dt          dz  z  z   t          dz  z   dt          z  t          z  z
  dt          z  t          z  z
  dt          z  t          z  z   ¦  «        sJ ‚t          t          dz  dt          dz  z  z   dt          dz  z  z
  ¦  «        sJ ‚t          t          dz  dt          z  t          z  z   ¦  «        sJ ‚t          dt          dz  z  dt          dz  z  z
  dt          z  t          z  z
  ¦  «        sJ ‚t          t          dz  dt          z  t          z  z   dt          z  t          z  z
  dt          z  t          z  z   ¦  «        sJ ‚t          t          dz  dt          z  t          z  z   dt          z  t          z  z
  t          t          z  z   ¦  «        sJ ‚t          t          dz  t          dz  z   t          dz  z   t          t          z  z
  t          t          z  z
  t          t          z  z
  ¦  «        sJ ‚t          t          dz  dt          z  t          z  z   dt          dz  z  z   ¦  «        sJ ‚t          t          t          z  dt          z  t          z  z   dt          z  t          z  z   ¦  «        sJ ‚t          dt          z  t          z  dt          z  t          z  z   ¦  «        sJ ‚d S )	Nr[   rS   rÃ   rº   r‡   éd   r¬   r’   )r4  rN   rg   rh   rO   rK   rI   Útest_transformation_to_normalr7  †  s2  € Ý&¥q¨!¡t¨aµ°1±©f¡}µq¸!±tÑ';¸bÅ¹dÅ1¹fÑ'DÀrÍ!ÁtÍAÁvÑ'MÐPRÕSTÑPTÕUVÑPVÑ'VÑWÔWÐWÐWÐWÝ&¥q¨!¡t¨aµ°1±©f¡}°s½1¸a¹4±xÑ'?Ñ@Ô@Ð@Ð@Ð@Ý&¥q¨!¡t¨bµ©dµ1©f¡}Ñ5Ô5Ð5Ð5Ð5Ý& q­¨A©¡v°µA°q±D±Ñ'8¸2½a¹4Å¹6Ñ'AÑBÔBÐBÐBÐBÝ&¥q¨!¡t¨bµ©dµ1©f¡}°r½!±t½A±vÑ'=ÀÅ1ÁÅQÁÑ'FÑGÔGÐGÐGÐGÝ&¥q¨!¡t¨bµ©dµ1©f¡}°r½!±t½A±vÑ'=ÅÅ!ÁÑ'CÑDÔDÐDÐDÐDÝ&¥q¨!¡t­a°©d¡{µQ¸±TÑ'9½A½a¹CÑ'?Å!ÅAÁ#Ñ'EÍÍ!ÉÑ'KÑLÔLÐLÐLÐLÝ&¥q¨!¡t¨aµ©cµ!©e¡|°a½¸1¹±fÑ'<Ñ=Ô=Ð=Ð=Ð=Ý&¥q­¡s¨Q­q©Sµ©U¡{°Qµq±S½±UÑ':Ñ;Ô;Ð;Ð;Ð;Ý& q­¡s­1¡u¨qµ©sµ1©u¡}Ñ5Ô5Ð5Ð5Ð5Ð5Ð5rK   c                  ó  — t          dt          dz  z  t          dz  z   t          dz  z   dt          z  t          z  z
  ¦  «        sJ ‚t          t          dz  t          dz  z
  t          dz  z
  t          t          z  z
  t          t          z  z
  ¦  «        sJ ‚t          dt          dz  z  t          t          z  z
  t          t          z  z
  t          t          z  z
  ¦  «        sJ ‚t          t          dz  t          t          z  z
  t          t          z  z
  ¦  «        sJ ‚t          dt          dz  z  dt          z  t          z  z
  t          t          z  z
  ¦  «        sJ ‚t          dt          dz  z  dt          dz  z  z
  t          t          z  z
  ¦  «        sJ ‚t          dt          dz  z  dt          dz  z  z   t          dz  z
  dt          z  t          z  z
  dt          z  t          z  z   dt          z  t          z  z
  ¦  «        sJ ‚t          dt          dz  z  dt          z  t          z  z
  ¦  «        sJ ‚t          dt          dz  z  dt          dz  z  z
  dt          z  t          z  z
  t          dz  z
  ¦  «        sJ ‚t          t          dz  d	t          dz  z  z
  t          dz  z
  d
t          z  t          z  z   dt          z  t          z  z
  ¦  «        sJ ‚t          dt          dz  z  dt          dz  z  z   dt          z  t          z  z   dt          z  t          z  z   dt          z  t          z  z   ¦  «        sJ ‚t          t          dz  dt          dz  z  z   t          dz  z   t          t          z  z
  dt          z  t          z  z
  ¦  «        sJ ‚t          t          dz  dt          dz  z  z   t          dz  z   t          t          z  z
  dt          z  t          z  z
  dt          z  t          z  z   ¦  «        sJ ‚t          t          dz  dt          dz  z  z   t          dz  z   d
t          z  t          z  z
  dt          z  t          z  z
  dt          z  t          z  z   ¦  «        sJ ‚t          t          t          z  dt          z  t          z  z
  d
t          z  t          z  z   ¦  «        sJ ‚t	          t          dz  t          dz  z   t          dz  z   ¦  «        dk    sJ ‚t	          t          dz  t          dz  z   ¦  «        �J ‚t          t          d„ ¦  «         dt          z  t          z  dt          z  t          z  z
  dt          dz  z  z   dt          z  t          z  z
  dt          dz  z  z   } t          | ¦  «        dk    sJ ‚t	          dt          dz  z  dt          dz  z  z   t          dz  z
  ¦  «        dk    sJ ‚t          t          t          z  dt          z  t          z  z   ¦  «        ddt          fk    sJ ‚dt          z  t          z  dt          z  t          z  z
  dt          z  t          z  z
  dt          dz  z  z   } t          | ¦  «        dt          dz  z  dt          z  t          z  z
  dt          z  t          z  dt          dz  z  z   dt          z  t          z  fk    sJ ‚t          t          t          z  dt          z  t          z  z   ¦  «        dt          z  t          z  t           t          dz  z  t          dz  z   t          t          z  fk    sJ ‚d S )Nr[   rj   rS   r}   r   r‚   r‡   r  é1   rÃ   rk   r­   rº   rƒ   c                  ó    — t          t          t          t          ft          t          z  dt          dz  dt          dz  dt          dz  di¦  «        S )NrZ   r[   rS   r   )r6   rN   rg   rh   rO   rK   rI   rP   z-test_diop_ternary_quadratic.<locals>.<lambda>¦  s@   € Ý&­­1­a yÝ	
�1‰ˆa•�A‘�q�!˜Q™$ ¥1 a¡4¨Ð+ñ	-ô 	-ð rK   r|   r�   )r   r[   r   )rZ   r   r[   r   r~   r…   )r¿   rN   rh   rg   r   r@   rw   r   rD   r3   ÚpÚqr   rG   s    rI   Útest_diop_ternary_quadraticr=  “  sÇ  € Ý˜1�Q ™T™6¥A q¡D™=­1¨a©4Ñ/°!µA±#µa±%Ñ7Ñ8Ô8Ð8Ð8Ð8Ý�1˜a™4¥! Q¡$™;­¨A©Ñ-µµ!±Ñ3µa½±cÑ9Ñ:Ô:Ð:Ð:Ð:Ý˜1�Q ™T™6¥A¥a¡C™<­!­A©#Ñ-µµ!±Ñ3Ñ4Ô4Ð4Ð4Ð4Ý�1˜a™4¥!¥A¡#™:­­!©Ñ+Ñ,Ô,Ð,Ð,Ð,Ý˜1�Q ™T™6 A¥a¡C­¡E™>­A­a©CÑ/Ñ0Ô0Ð0Ð0Ð0Ý˜1�Q ™T™6 A¥a¨¡d¡F™?­Q­q©SÑ0Ñ1Ô1Ð1Ð1Ð1Ý˜1�Q ™T™6 A¥a¨¡d¡F™?­Q°©TÑ1°Aµa±C½±EÑ9¸A½a¹CÅ¹EÑAÀAÅaÁCÍÁEÑIÑJÔJÐJÐJÐJÝ˜1�Q ™T™6 B¥q¡D­¡F™?Ñ+Ô+Ð+Ð+Ð+Ý˜2�a ™d™7 Q¥q¨!¡t¡VÑ+¨aµ©cµ!©eÑ3µa¸±dÑ:Ñ;Ô;Ð;Ð;Ð;Ý�1˜a™4 "¥Q¨¡T¡'™>­A¨q©DÑ0°2µa±4½±6Ñ9¸1½Q¹3½q¹5Ñ@ÑAÔAÐAÐAÐAÝ˜2�a ™d™7 Q¥q¨!¡t¡VÑ+¨aµ©cµ!©eÑ3°a½±c½!±eÑ;¸aÅ¹cÅ!¹eÑCÑDÔDÐDÐDÐDÝ�1˜a™4 !¥A q¡D¡&™=­1¨a©4Ñ/µ!µA±#Ñ5¸½1¹½Q¹Ñ>Ñ?Ô?Ð?Ð?Ð?Ý�1˜a™4 !¥A q¡D¡&™=­1¨a©4Ñ/µ!µA±#Ñ5¸½1¹½Q¹Ñ>ÀÅAÁÅaÁÑGÑHÔHÐHÐHÐHÝ�1˜a™4 !¥A q¡D¡&™=­1¨a©4Ñ/°"µQ±$µq±&Ñ8¸2½a¹4Å¹6ÑAÀBÅqÁDÍÁFÑJÑKÔKÐKÐKÐKÝ�1�Q™3 ¥1¡¥Q¡™;¨­A©­a©Ñ/Ñ0Ô0Ð0Ð0Ð0å(­¨A©µ°1±©µq¸!±tÑ);Ñ<Ô<Ð@RÒRÐRÐRÐRÝ(­¨A©µ°1±©Ñ5Ô5Ð=Ð=Ð=Ý
�:ð -ð -ñ .ô .ð .ð 
�A‰�a‰�!•A‘#•a‘%‰˜!�A˜q™D™&Ñ	  1¥Q¡3¥q¡5Ñ	(¨1­Q°©T©6Ñ	1€BÝ! "Ñ%Ô%¨Ò2Ð2Ð2Ð2Ý(¨­1¨a©4©°!µA°q±D±&©½1¸a¹4Ñ)?Ñ@Ô@Øòð ð ð å!¥!¥A¡#¨­!©­A©¡+Ñ.Ô.Ø	ˆQ•ˆòð ð ð à	�A‰�a‰�!•A‘#•a‘%‰˜!�A™#�a™%Ñ	 !¥A q¡D¡&Ñ	(€BÝ(¨Ñ,Ô,Ø	
�1ˆa‰4‰�!•A‘#•a‘%‰˜�A™�a™ !¥A q¡D¡&™¨!­A©#­a©%Ð0ò1ð 1ð 1ð 1õ •a�‘c˜A�a™C¥™E‘kÑ"Ô" r­!¡t­A¡vµ¨sµ1°a±4©x½!¸Q¹$©ÅÅ!ÁÐ&DÒDÐDÐDÐDÐDÐDrK   c                  óž  — t          d¦  «        t          d¦  «        cxk    rdk    sn J ‚t          d¦  «        dk    sJ ‚t          d¦  «        t          d¦  «        cxk    rdk    sn J ‚t          d¦  «        t          d¦  «        cxk    rdk    sn J ‚t          d	¦  «        t          d
¦  «        cxk    rdk    sn 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 ‚t          t          d
¦  «        ¦  «        dk    sJ ‚d S )NrZ   r{   r   r}   r~   rj   r»   r[   r‡   rŸ   r�   r†   rS   é4   r9  r   iˆ  rl   )r'   r   rO   rK   rI   Útest_square_factorr@  ·  s‘  € Ý˜ÑÔ�}¨RÑ0Ô0Ð5Ð5Ò5Ð5°AÒ5Ð5Ð5Ð5Ð5Ð5Ý˜ÑÔ˜qÒ Ð Ð Ð Ý˜ÑÔ�}¨RÑ0Ô0Ð5Ð5Ò5Ð5°AÒ5Ð5Ð5Ð5Ð5Ð5Ý˜ÑÔ�}¨RÑ0Ô0Ð5Ð5Ò5Ð5°AÒ5Ð5Ð5Ð5Ð5Ð5Ý˜ÑÔ¥¨cÑ 2Ô 2Ð7Ð7Ò7Ð7°aÒ7Ð7Ð7Ð7Ð7Ð7Ý˜ÑÔ˜qÒ Ð Ð Ð Ý˜ÑÔ Ò!Ð!Ð!Ð!Ý˜ÑÔ Ò!Ð!Ð!Ð!Ý˜ÑÔ Ò!Ð!Ð!Ð!Ý˜ÑÔ Ò#Ð#Ð#Ð#Ý� 3™œÑ(Ô(¨AÒ-Ð-Ð-Ð-Ð-Ð-rK   c                  óê  — t          t          dz  t          dz  z   t          dz  z
  ¦  «        sJ ‚t          t          dz  dt          z  t          z  z   t          dz  z   ¦  «        sJ ‚t          dt          dz  z  dt          dz  z  z
  t          dz  z
  ¦  «        sJ ‚t          dt          dz  z  dt          dz  z  z   t          dz  z
  dt          z  t          z  z
  dt          z  t          z  z   dt          z  t          z  z
  ¦  «        sJ ‚t          t          dz  t          dz  z
  t          dz  z
  ¦  «        sJ ‚t          t          dz  dt          dz  z  z
  t          dz  z
  dt          z  t          z  z   d	t          z  t          z  z
  ¦  «        sJ ‚t          d	t          z  t          z  t          dz  z   ¦  «        sJ ‚t          d
t          dz  z  dt          dz  z  z
  dt          dz  z  z
  ¦  «        sJ ‚t          dt          dz  z  dt          dz  z  z
  dt          z  t          z  z
  dt          z  t          z  z
  dt          z  t          z  z
  ¦  «        sJ ‚t          dt          dz  z  dt          dz  z  z   dt          z  t          z  z   dt          z  t          z  z   dt          z  t          z  z   ¦  «        sJ ‚t          d
t          dz  z  dt          dz  z  z
  dt          dz  z  z
  ¦  «        sJ ‚d S )Nr[   r+  r,  rS   r}   r   r9  rÃ   r‚   r-  r˜   r.  éì   éá   r®   r­   rk   r/  rO   rK   rI   Ú"test_parametrize_ternary_quadraticrD  Å  sˆ  € Ý�1˜a™4¥! Q¡$™;­¨A©Ñ-Ñ.Ô.Ð.Ð.Ð.Ý�1˜a™4 !¥A¡#¥a¡%™<­!¨Q©$Ñ.Ñ/Ô/Ð/Ð/Ð/Ý˜3�q !™t™8 e­A¨q©D¡jÑ0µ1°a±4Ñ7Ñ8Ô8Ð8Ð8Ð8Ý˜1�Q ™T™6 A¥a¨¡d¡F™?­Q°©TÑ1°Aµa±C½±EÑ9¸A½a¹CÅ¹EÑAÀAÅaÁCÍÁEÑIÑJÔJÐJÐJÐJÝ�1˜a™4¥! Q¡$™;­¨A©Ñ-Ñ.Ô.Ð.Ð.Ð.Ý�1˜a™4 "¥Q¨¡T¡'™>­A¨q©DÑ0°2µa±4½±6Ñ9¸A½a¹CÅ¹EÑAÑBÔBÐBÐBÐBÝ˜1�Q™3�q™5¥1 a¡4™<Ñ(Ô(Ð(Ð(Ð(Ý˜3�q !™t™8 b­¨A©¡gÑ-°µQ¸±T±	Ñ9Ñ:Ô:Ð:Ð:Ð:Ý˜3�q !™t™8 c­!¨Q©$¡hÑ.°µA±µa±Ñ7¸"½Q¹$½q¹&Ñ@À2ÅaÁ4ÍÁ6ÑIÑJÔJÐJÐJÐJÝ˜2�a ™d™7 Q¥q¨!¡t¡VÑ+¨aµ©cµ!©eÑ3°a½±c½!±eÑ;¸aÅ¹cÅ!¹eÑCÑDÔDÐDÐDÐDÝ˜3�q !™t™8 b­¨A©¡gÑ-°µQ¸±T±	Ñ9Ñ:Ô:Ð:Ð:Ð:Ð:Ð:rK   c                  óŽ  — t          dt          z  t          z  t          t          z  z   dt          z  t          z  z
  ¦  «        sJ ‚t          dt          z  t          z  dt          z  t          z  z
  dt          z  t          z  z
  ¦  «        sJ ‚t          dt          z  t          z  dt          z  t          z  z   ¦  «        sJ ‚t          t          t          z  t          t          z  z   t          t          z  z   ¦  «        sJ ‚t          dt          z  t          z  dt          z  t          z  z   dt          z  t          z  z   ¦  «        sJ ‚d S )Nr[   rS   é½   iY  r‡   r¬   r’   r/  rO   rK   rI   Ú test_no_square_ternary_quadraticrG  Ó  sô   € Ý˜1�Q™3�q™5¥1¥Q¡3™;¨­1©­Q©Ñ.Ñ/Ô/Ð/Ð/Ð/Ý˜3�q™5¥™7 S­¡U­1¡WÑ,¨rµ!©tµA©vÑ5Ñ6Ô6Ð6Ð6Ð6Ý˜2�a™4¥™6 B¥q¡D­¡F™?Ñ+Ô+Ð+Ð+Ð+Ý�1�Q™3¥¥1¡™9¥q­¡s™?Ñ+Ô+Ð+Ð+Ð+Ý˜2�a™4¥™6 B¥q¡D­¡F™?¨Rµ©Tµ!©VÑ3Ñ4Ô4Ð4Ð4Ð4Ð4Ð4rK   c                  óþ   — g d¢} | D ]3\  }}t          ||¦  «        \  }}}||dz  z  ||dz  z  z   |dz  k    sJ ‚Œ4t          t          d„ ¦  «         t          t          d„ ¦  «         t          t          d„ ¦  «         d S )N)	r  r  r  r   rµ   r"  r#  r$  r%  r[   c                  ó"   — t          dd¦  «        S )Nr{   r„   ©r   rO   rK   rI   rP   ztest_descent.<locals>.<lambda>ã  s   € �g b¨"™oœo€ rK   c                  ó"   — t          dd¦  «        S )Nr   rS   rJ  rO   rK   rI   rP   ztest_descent.<locals>.<lambda>å  s   € ¥g¨a°¡m¤m€ rK   c                  ó"   — t          dd¦  «        S )Nrj   rS   rJ  rO   rK   rI   rP   ztest_descent.<locals>.<lambda>ç  s   € �g a¨™mœm€ rK   )r   r@   rT   ÚZeroDivisionErrorr&  s         rI   Útest_descentrN  Û  s¤   € à	gÐ	gÐ	g€AØð 'ð '‰ˆˆ1Ý˜!˜Q‘-”-‰ˆˆ1ˆaØ��A‘‰v˜˜!˜Q™$™‰ ! Q¡$Ò&Ð&Ð&Ð&Ð&õ �9Ð-Ð-Ñ.Ô.Ð.å
ÕÐ3Ð3Ñ4Ô4Ð4å
�9Ð+Ð+Ñ,Ô,Ð,Ð,Ð,rK   c                  óÂ  — t          t          t          z
  t          t          z
  z  t          t          z
  z  ¦  «        sJ ‚t          t          t          z
  t          dz  t          dz  z   t          dz  z
  z  ¦  «        sJ ‚t          t          dt          z  z
  dt          z  z   t          dz  t          dz  z   t          dz  z
  z  ¦  «        sJ ‚t          t          dz  dt          dz  z  z
  dz
  ¦  «        sJ ‚t          t          dz  dt          z  t          z  z   ¦  «        sJ ‚t          t          dz  dt          z  t          z  z
  t          dz  z   ¦  «        sJ ‚t          t          t          dz  t          dz  z
  dz
  z  ¦  «        sJ ‚t          t          dt          z  dt          z  z
  dz   z  ¦  «        sJ ‚t          t          dz  dt          dz  z  z
  dz
  t          dz  t          dz  z
  dz
  z  ¦  «        sJ ‚t          t          dz  dt          dz  z  z
  dz
  t          dt          z  z
  z  ¦  «        sJ ‚t          t          dz  t          dz  z   t          dz  z
  t          dt          z  z
  dt          z  z
  dt          z  z   z  ¦  «        sJ ‚t          t          dz  dt          z  t          z  z
  dt          z  t          z  z   ¦  «        sJ ‚t          t          dz  dt          z  z
  dz   ¦  «        sJ ‚t          t          t          z
  ¦  «        t          t          t          t          ¦  «        ¦  «        k    sJ ‚t          dz  t          dz  z   dz
  } t          | d	¬
¦  «        t          |  d	¬
¦  «        k    sJ ‚t          dt          z  t          z  dt          z  t          z  z
  ¦  «        dt          z  dt          z  fhk    sJ ‚t          dz  t          dz  z   t          dz  z   dz
  } dh}t          | ¦  «        |k    sJ ‚t          t          |                     ¦   «         ¦  «        ¦  «        }t          | d	¬
¦  «        |k    sJ ‚t          t          dz  t          t          dd¦  «        z  z   dz
  ¦  «        t          ¦   «         k    sJ ‚dt          dz  z  dt          dz  z  z
  t          dz  z
  } |                      ¦   «         }t          t          t          t          f|¦  «        dhk    sJ ‚t          | ¦  «        dt          dz  z  dt           dz  z  z   dt          dz  z  dt          z  t           z  z
  dt           dz  z  z   dt          dz  z  dt          z  t           z  z
  dt           dz  z  z
  fhk    sJ ‚dt          dz  z  dt          dz  z  z   t          dz  z
  } |                      ¦   «         }t          t          t          t          f|¦  «        dhk    sJ ‚t          | ¦  «        dt          dz  z  t           dz  z
  dt          dz  z  dt          z  t           z  z   t           dz  z
  dt          dz  z  dt          z  t           z  z
  dt           dz  z  z   fhk    sJ ‚dt          dz  z  dt          dz  z  z   dt          dz  z  z
  } |                      ¦   «         }t          t          t          t          f|¦  «        dhk    sJ ‚t          | ¦  «        dt          dz  z  dt           dz  z  z
  dt          dz  z  d t          z  t           z  z   d!t           dz  z  z
  d"t          dz  z  d#t          z  t           z  z
  d$t           dz  z  z   fhk    sJ ‚d%t          dz  z  d&t          dz  z  z   d't          dz  z  z
  } |                      ¦   «         }t          t          t          t          f|¦  «        d(hk    sJ ‚t          | ¦  «        d)t          dz  z  d*t           dz  z  z
  d+t          dz  z  d,t          z  t           z  z   d-t           dz  z  z
  d.t          dz  z  d/t          z  t           z  z
  d0t           dz  z  z   fhk    sJ ‚t          dz  dt          dz  z  z   d1t          dz  z  z
  } |                      ¦   «         }t          t          t          t          f|¦  «        d2hk    sJ ‚t          | ¦  «        d3t          z  t           z  dt          dz  z  d3t           dz  z  z
  t          dz  d1t           dz  z  z   fhk    sJ ‚t#          t$          d4„ ¦  «         t          dt          z  ¦  «        t          ¦   «         k    sJ ‚t          dt          z  dt          z  z   t&          j        z
  ¦  «        h d5£k    sJ ‚t          t          dz  t          dz  z   dt          z  z   dz
  d	¬
¦  «        h d6£k    sJ ‚t          t          dz  t          dz  z   d7z
  d8z
  t          t          fd	¬9¦  «        h d:£k    sJ ‚t          t          dz  t          dz  z   d7z
  d8z
  t          t          fd	¬9¦  «        h d:£k    sJ ‚t          t          dz  t          z
  ¦  «        sJ ‚t          t          dz  t          z
  ¦  «        sJ ‚t          t          dz  t          z
  t*          ¦  «        t*          t*          dz  fhk    sJ ‚t          t          dz  t          z
  t*          ¦  «        t*          dz  t*          fhk    sJ ‚d S );Nr[   rS   r   rZ   rm   r}   rj   éa   T©Úpermuterl   ©rZ   r[   rS   é\   éc   )rˆ   r   é3   i{  rˆ   iKýÿÿéf   i¹  ij  rV  )rZ   rZ   r[   r|   i›  é9   éÝ   )iå  iU
  iú  iýÁ i±Ð i³ýÿi¤­ iaë iªª iÚ™ iÒV
 i=  i  iØ  )r9  éé   é   i	  iÈ>  iÿ®ÿÿipE iˆ* i',  i¢  i¸¢  r‡   )r   r[   rZ   r¹   c                  óF   — t          t          t          dz  z  dz   ¦  «        S )Nr[   rZ   ©r   rN   rg   rO   rK   rI   rP   z"test_diophantine.<locals>.<lambda>-  s   € ­µAµa¸±d±F¸Q±JÑ(?Ô(?€ rK   >   ©rS   r�   ©rj   rj   ©r�   rS   ©r|   rZ   r¶   >   ©rj   rZ   ©rj   r{   ©r»   rZ   ©r»   r{   ©r{   rZ   rµ   r"  r¯   rº   éQ   )ÚsymsrR  >   ©r[   r„   ©rS   r|   ©r„   r[   ©r„   r|   ©r|   rS   ©r|   r„   ©r[   rS   ©rS   r[   )r¿   rN   rg   rh   rf   r   r   r   r�   rW   rB   Úpopr   Úas_coefficients_dictr6   r;  r<  r@   rx   r	   ÚHalfr©   )rH   Úbase_solÚcomplete_solnr  s       rI   Útest_diophantinerv  ê  s-
  € Ý�A¥™E¥A­¡E™?­Aµ©EÑ2Ñ3Ô3Ð3Ð3Ð3Ý�A¥™E¥A q¡D­1¨a©4¡Kµ!°Q±$Ñ$6Ñ7Ñ8Ô8Ð8Ð8Ð8Ý�A ¥!¡™G a­¡c™M­A¨q©Dµ1°a±4©K½!¸Q¹$Ñ,>Ñ?Ñ@Ô@Ð@Ð@Ð@Ý�1˜a™4 !¥A q¡D¡&™=¨1Ñ,Ñ-Ô-Ð-Ð-Ð-Ý�1˜a™4 !¥A¡#¥a¡%™<Ñ(Ô(Ð(Ð(Ð(Ý�1˜a™4 !¥A¡#¥a¡%™<­!¨Q©$Ñ.Ñ/Ô/Ð/Ð/Ð/Ý�1�a ™d¥Q¨¡T™k¨BÑ.Ñ/Ñ0Ô0Ð0Ð0Ð0Ý�1˜a¥™c A¥a¡C™i¨!™mÑ,Ñ-Ô-Ð-Ð-Ð-Ý�A˜q™D 1¥Q¨¡T¡6™M¨AÑ-µ°1±µq¸!±t±¸bÑ0@ÑAÑBÔBÐBÐBÐBÝ�A˜q™D 1¥Q¨¡T¡6™M¨AÑ-µ°Aµa±C±Ñ8Ñ9Ô9Ð9Ð9Ð9Ý�A˜q™D¥1 a¡4™K­!¨Q©$Ñ.µ°Qµq±S±¸1½Q¹3±ÀÅ1ÁÑ1DÑEÑFÔFÐFÐFÐFõ �1˜a™4 !¥A¡#¥a¡%™<¨!­A©#­a©%Ñ/Ñ0Ô0Ð0Ð0Ð0Ý�1˜a™4 !¥A¡#™:¨™>Ñ*Ô*Ð*Ð*Ð*å•q�1‘uÑÔ¥­Rµµ1©X¬XÑ!6Ô!6Ò6Ð6Ð6Ð6å	
ˆA‰•�1‘‰�rÑ	€BÝ�r 4Ð(Ñ(Ô(­K¸¸ÀTÐ,JÑ,JÔ,JÒJÐJÐJÐJÝ�q�‘s�2‘v ¥!¡¥B¡‘Ñ'Ô'¨Q­s©U°Aµc±E¨NÐ+;Ò;Ð;Ð;Ð;Ý	
ˆA‰•�1‘‰•q˜!‘tÑ	˜bÑ	 €BØˆ{€HÝ�r‰?Œ?˜hÒ&Ð&Ð&Ð&ÝÕ+¨H¯LªL©N¬NÑ;Ô;Ñ<Ô<€MÝ�r 4Ð(Ñ(Ô(¨MÒ9Ð9Ð9Ð9å•q˜!‘t�a¥¨¨RÑ 0Ô 0Ñ0Ñ0°1Ñ4Ñ5Ô5½¹¼Ò>Ð>Ð>Ð>à	�Aˆq‰D‰�2•a˜‘d‘7Ñ	�Q ™TÑ	!€BØ×#Ò#Ñ%Ô%€EÝ)­1­aµ¨)°UÑ;Ô;Øˆ<òð ð ð å�r‰?Œ?Ø�Aˆq‰D‰�1•Q˜‘T‘6Ñ˜4¥ 1¡™9 s­1¡u­Q¡wÑ.°µ1°a±4±Ñ7Ø�Q�‰T‰	�D�‘F�1‘HÑ˜r¥! Q¡$™wÑ&ð (ð )ò )ð )ð )ð )ð 
�1ˆa‰4‰�!•A�q‘D‘&‰�1˜a™4Ñ	€BØ×#Ò#Ñ%Ô%€EÝ)­1­aµ¨)°UÑ;Ô;Øˆ;òð ð ð å�r‰?Œ?Ø	�!ˆQ‰$‰•�A‘‰�r�!˜Q™$‘w ¥1¡¥Q¡‘­¨A©Ñ-Ø	�!ˆQ‰$‰�•1‘•Q‘‰˜�1˜a™4™Ñð !ð "ò "ð "ð "ð "ð 
�Q�‰T‰�"•Q˜‘T‘'Ñ	˜#�a ™d™(Ñ	"€BØ×#Ò#Ñ%Ô%€EÝ)­1­aµ¨)°UÑ;Ô;ØÐò ð  ð  ð  å�r‰?Œ?Ø•A�q‘D‰[˜6¥! Q¡$™;Ñ&¨µ°1±©°w½q±yÅ±{Ñ(BØ•A�q‘D‰[ñ)Ø ¥ A¡™+¨­q©µ©
Ñ2°V½A¸q¹D±[Ñ@ðBð CòCð Cð Cð Cð 
�Q�‰T‰�#•a˜‘d‘(Ñ	˜3�q !™t™8Ñ	#€BØ×#Ò#Ñ%Ô%€EÝ)­1­aµ¨)°UÑ;Ô;ØÐòð ð ð å�r‰?Œ?Ø•!�Q‘$‰Y˜�q !™t™Ñ# V­A¨q©D¡[°5½±7½1±9Ñ%<¸uÅQÈÁT¹zÑ%IØ•1�a‘4‰Z˜%¥™'¥!™)Ñ# e­A¨q©D¡jÑ0ð2ð 3ò3ð 3ð 3ð 3õ 
ˆA‰�•!�Q‘$‘‰˜�A˜q™D™Ñ	 €BØ×#Ò#Ñ%Ô%€EÝ)­1­aµ¨)°UÑ;Ô;Øˆ;òð ð ð å�r‰?Œ?Ø•‰T•!‰V�Q•q˜!‘t‘V˜b¥ A¡™gÑ%¥q¨!¡t¨bµ°A±©g¡~Ð6Ð7ò8ð 8ð 8ð 8õ ÕÐ ?Ð ?Ñ@Ô@Ð@õ �q�‘sÑÔ�s™uœuÒ$Ð$Ð$Ð$Ý�q�‘s˜Q�q™S‘y¥1¤6Ñ)Ñ*Ô*Ð.XÐ.XÐ.XÒXÐXÐXÐXÝ•q˜!‘t�a ™d‘{ A¥a¡CÑ'¨Ñ*°DÐ9Ñ9Ô9ØSÐSÐSòTð Tð Tð Tõ
 •q˜!‘t�a ™d‘{ TÑ)¨DÑ0½½1°vÀtÐLÑLÔLØSÐSÐSòTð Tð Tð Tå•q˜!‘t�a ™d‘{ TÑ)¨DÑ0½½1°vÀtÐLÑLÔLØSÐSÐSòTð Tð Tð Tõ �1˜a™4¥!™8Ñ$Ô$Ð$Ð$Ð$Ý�1˜a™4¥!™8Ñ$Ô$Ð$Ð$Ð$Ý�˜1™�q™¥1Ñ%Ô%­1­a°©d¨)¨Ò4Ð4Ð4Ð4Ý�˜1™�q™¥1Ñ%Ô%­1¨a©4µ¨)¨Ò4Ð4Ð4Ð4Ð4Ð4rK   c                  ó*  — ddl m} m}m}m}m} t          | dz  |dz  z   |dz  z   |dz  z
  ¦  «        sJ ‚t          | dz  d|dz  z  z   d|dz  z  z   |dz  z
  ¦  «        sJ ‚t          d| dz  z  d|dz  z  z   d|dz  z  z   |dz  z
  ¦  «        sJ ‚t          d| dz  z  d|dz  z  z   d|dz  z  z
  d|dz  z  z   ¦  «        sJ ‚t          d| dz  z  d|dz  z  z
  d|dz  z  z   d|dz  z  z   ¦  «        sJ ‚t          |dz   d| dz  z  z   d|dz  z  z   d|dz  z  z   d|dz  z  z   ¦  «        sJ ‚t          d| dz  z  |dz  z
  d|dz  z  z   |dz  z   d|dz  z  z   ¦  «        sJ ‚t          | dz  |dz  z   |dz  z   |dz  z
  ¦  «                             t          t          t          g¬¦  «        t          dz  t          dz  z   t          dz  z
  dt          z  t          z  dt          z  t          z  t          dz  t          dz  z   t          dz  z   fhk    sJ ‚d S )	Nr   ©r'  r(  ÚcÚdÚer[   rj   rˆ   rÂ   rº   ©Ú
parameters)Ú	sympy.abcr'  r(  ry  rz  r{  r¿   r=   rÇ   rN   rg   rh   rx  s        rI   Útest_general_pythagoreanr  C  s�  € Ø'Ð'Ð'Ð'Ð'Ð'Ð'Ð'Ð'Ð'Ð'Ð'Ð'Ð'å˜1˜a™4 ! Q¡$™;¨¨A©Ñ-°°1±Ñ4Ñ5Ô5Ð5Ð5Ð5Ý˜1˜a™4 ! A q¡D¡&™=¨1¨Q°©T©6Ñ1°A°q±DÑ8Ñ9Ô9Ð9Ð9Ð9Ý˜1˜Q ™T™6 A a¨¡d¡F™?¨Q¨q°!©t©VÑ3°a¸±dÑ:Ñ;Ô;Ð;Ð;Ð;Ý˜1˜Q ™T™6 A a¨¡d¡F™?¨R°°1±©WÑ4°q¸¸A¹±vÑ=Ñ?Ô?Ð?Ð?Ð?Ý˜1˜Q ™T™6 B q¨!¡t¡GÑ+¨a°°1±©fÑ4°q¸¸A¹±vÑ=Ñ>Ô>Ð>Ð>Ð>Ý˜A˜q™D˜5 1 Q¨¡T¡6™>¨A¨a°©d©FÑ2°Q°q¸!±t±VÑ;¸bÀÀAÁ¹gÑEÑFÔFÐFÐFÐFÝ˜2˜a ™d™7 Q¨¡T™>¨A¨a°©d©FÑ2°Q¸±TÑ9¸B¸qÀ!¹t¹GÑCÑDÔDÐDÐDÐDå˜a ™d Q¨¡T™k¨A¨q©DÑ0°1°a±4Ñ7Ñ8Ô8×>Ò>Í1ÍaÕQRÈ)Ð>ÑTÔTÝ�‰T•A�q‘D‰[�1˜a™4Ñ ¥1¡¥Q¡¨­!©­A©­q°!©tµa¸±d©{½QÀ¹TÑ/AÐBÐCòDð Dð Dð Dð Dð DrK   c            
      ó„  ‡— t          dd¦  «        D ]=} t          t          d„ t          d| z  ¦  «        D ¦   «         ¦  «        | z
  ¦  «        sJ ‚Œ>t	          t
          dz  t          dz  z   dz
  ¦  «        �J ‚t	          t
          dz  t          dz  z   t          dz  z   dz   ¦  «        t          ¦   «         k    sJ ‚t
          dz  t          dz  z   t          dz  z   dz
  Št	          ‰¦  «        dhk    sJ ‚t          dz  t          dz  z   t
          dz  z   t          dz  z   t          dz  z   dz
  Št          t	          ‰d¦  «        ¦  «        dk    sJ ‚t          d	¦  «        t          d
d¬¦  «        fz   }t          d„ |D ¦   «         Ž dz
  Šh d£}t          ‰¦  «        |k    sJ ‚t          t          ‰d¬¦  «        ¦  «        dk    sJ ‚t          dt
          dz  z
  t          dz  z
  t          dz  z
  ¦  «        dhk    sJ ‚t          dz  t          dz  z   t           dz  z   t"          dz  z   dz
  Št%          t&          ˆfd„¦  «         d S )NrS   r²   c              3   ó    K  — | ]	}|d z  V — Œ
dS ©r[   NrO   ©r  Úis     rI   ú	<genexpr>z9test_diop_general_sum_of_squares_quick.<locals>.<genexpr>T  s&   è è € Ð"DÐ"D¨A 1 a¡4Ð"DÐ"DÐ"DÐ"DÐ"DÐ"DrK   z:%ir[   rl   rS  i!  z:5Ú6T©Únegativec                 ó   — g | ]}|d z  ‘ŒS r]   rO   rƒ  s     rI   r  z:test_diop_general_sum_of_squares_quick.<locals>.<listcomp>_  s   € Ð!Ð!Ð!˜ˆq�!‰tÐ!Ð!Ð!rK   ép   >   ©r   r   r[   r[   r[   rø   ©r   r   r[   r�   r�   r�   ©r   r   rj   rj   rj   r…   ©r   rZ   rZ   rZ   rS   rø   ©r   rZ   rZ   r[   r}   r§   ©r   rZ   rZ   r}   r�   r€   ©r   rZ   r[   rS   r   r€   ©r   rZ   r}   r}   r}   r�   ©r   r[   r[   r[   r�   r…   ©r   r[   rS   rS   rS   r§   ©r   r[   rS   r}   r}   r€   ©r   rS   rS   rS   r�   r€   ©rZ   rZ   rZ   rS   r�   r…   ©rZ   rZ   r[   rS   rj   r§   ©rZ   rZ   rS   rj   r�   r€   ©rZ   r[   rS   rS   r}   r…   ©rZ   rS   rj   r}   r}   r�   ©r[   r[   rj   rj   r�   r�   ©r[   rS   rS   rj   r}   r€   rQ  iÀ  r‡   )r[   r[   r[   rj   c                  ó$   •— t          ‰  ¦  «        S rF   rd   rG   s   €rI   rP   z8test_diop_general_sum_of_squares_quick.<locals>.<lambda>o  s   ø€ ­°r°cÑ(:Ô(:€ rK   )Úranger¿   Úsumr
   r   rN   rg   rh   rW   r  rÏ   Úlenr   r   r'  r(  ry  rz  r@   rx   )r„  ÚvarÚ	base_solnrH   s      @rI   Ú&test_diop_general_sum_of_squares_quickr¤  R  sa  ø€ Ý�1�b‰\Œ\ð Jð JˆÝ�sÐ"DÐ"Dµ¸À¹Ñ1CÔ1CÐ"DÑ"DÔ"DÑDÔDÀqÑHÑIÔIÐIÐIÐIÐIå&¥q¨!¡t­a°©d¡{°Q¡Ñ7Ô7Ð?Ð?Ð?Ý&¥q¨!¡t­a°©d¡{µQ¸±TÑ'9¸AÑ'=Ñ>Ô>Å#Á%Ä%ÒGÐGÐGÐGÝ	
ˆA‰•�1‘‰•q˜!‘tÑ	˜yÑ	)€BÝ& rÑ*Ô*Øˆ;òð ð ð å	
ˆA‰•�1‘‰•q˜!‘tÑ	�a ™dÑ	"¥Q¨¡TÑ	)¨DÑ	0€BÝÕ*¨2¨qÑ1Ô1Ñ2Ô2°aÒ7Ð7Ð7Ð7å
�$‰-Œ-�7 3°Ð6Ñ6Ô6Ð8Ñ
8€CÝ	Ð!Ð!˜SÐ!Ñ!Ô!Ð	" SÑ	(€BðPð Pð P€Iõ
 �r‰?Œ?˜iÒ'Ð'Ð'Ð'Ý�{˜2 tÐ,Ñ,Ô,Ñ-Ô-°Ò7Ð7Ð7Ð7õ �r�A˜q™D‘y¥1 a¡4Ñ'­!¨Q©$Ñ.Ñ/Ô/°I°;Ò>Ð>Ð>Ð>õ 
ˆA‰•�1‘‰•q˜!‘tÑ	�a ™dÑ	" QÑ	&€BÝ
ÕÐ :Ð :Ð :Ð :Ñ;Ô;Ð;Ð;Ð;rK   c                  ó~   — t           dz  t          dz  z   t          dz  z   dz
  } h d£}t          | ¦  «        |k    sJ ‚d S )Nr[   i@B >   ©i¨  éà  rë   ©r   r   éè  ©r   é  éÀ  ©r   éX  é   ©r   é`  i¨  ©r¹   é€  rë   ©r«  é@  rë   ©é`   éh  i   ©r·  r§  ih  ©r±  r¸  é`  ©r¸  r§  r¯  ©é˜   r§  r»  ©é¨   rµ  r¯  ©rÀ  éà   r¬  ©rõ   r³  iè  ©rõ   r§  iX  ©rÂ  r®  rë   ©r§  r®  r³  )rN   rg   rh   r   )rH   r£  s     rI   Útest_issue_23807rÇ  r  sT   € å	
ˆA‰•�1‘‰•q˜!‘tÑ	˜gÑ	%€BðBð Bð B€Iõ
 �r‰?Œ?˜iÒ'Ð'Ð'Ð'Ð'Ð'rK   c                  óü  — dD ]=} t          dd¦  «        D ]*}t          | |¦  «        D ]}t          |¦  «        |k    sJ ‚ŒŒ+Œ>t          t          dd¦  «        ¦  «        g k    sJ ‚d„ t          ddd¦  «        D ¦   «         g d¢g d¢g d	¢gk    sJ ‚t          t          d
¦  «        ¦  «        dgk    sJ ‚t          t          dd
¦  «        ¦  «        dgk    sJ ‚d„ t          d¦  «        D ¦   «         g d¢ddgdggk    sJ ‚d S )N)r‚   r²   rZ   r‚   rS   r}   c                 ó,   — g | ]}t          |¦  «        ‘ŒS rO   ©Úlist)r  r;  s     rI   r  z'test_diop_partition.<locals>.<listcomp>ƒ  s   € Ð0Ð0Ð0˜�D�‰GŒGÐ0Ð0Ð0rK   )r   r   r   r   rS   )r   r   r   rZ   r[   )r   r   rZ   rZ   rZ   r   rO   c                 ó,   — g | ]}t          |¦  «        ‘ŒS rO   rÊ  rƒ  s     rI   r  z'test_diop_partition.<locals>.<listcomp>‡  s   € Ð*Ð*Ð*˜�D�‰GŒGÐ*Ð*Ð*rK   )rZ   rZ   rZ   r[   )rŸ  r$   r¡  rË  )ÚnÚkr;  s      rI   Útest_diop_partitionrÏ  }  sJ  € Øð #ð #ˆÝ�q˜!‘”ð 	#ð 	#ˆAÝ˜q !‘_”_ð #ð #�Ý˜1‘v”v ’{�{�{�{�{ð#ð	#õ •	˜!˜Q‘”Ñ Ô  BÒ&Ð&Ð&Ð&Ø0Ð0�Y q¨!¨QÑ/Ô/Ð0Ñ0Ô0Øˆˆ˜˜˜¨/¨/¨/ð5;ò ;ð ;ð ;ð ;å•	˜!‘”ÑÔ " Ò%Ð%Ð%Ð%Ý•	˜!˜Q‘”Ñ Ô  R DÒ(Ð(Ð(Ð(Ø*Ð*�Y q™\œ\Ð*Ñ*Ô*¨y¨y¨y¸1¸a¸&À1À#Ð.FÒFÐFÐFÐFÐFÐFrK   c                  óÞ   — dD ]%} t          | ¦  «        \  }}|dz  |dz  z   | k    sJ ‚Œ&t          d¦  «        �J ‚t          d¦  «        }|dk    rt          |d         ¦  «        t          u sJ ‚d S )N)
r}   rÃ   r­   rŠ   é%   r¼   i%	  iå  iˆ  iYü  r[   r   i5 )iÂ  i  r   )r&   ÚtypeÚint)r„  r'  r(  Úanss       rI   Ú test_prime_as_sum_of_two_squaresrÕ  Š  sŽ   € Ø>ð  ð  ˆÝ*¨1Ñ-Ô-‰ˆˆ1Ø�!‰t�a˜‘d‰{˜aÒÐÐÐÐÝ& qÑ)Ô)Ð1Ð1Ð1Ý
% fÑ
-Ô
-€CØ�*ÒÐ¥ c¨!¤f¡¤µÐ!4Ð!4Ð!4Ð!4Ð!4Ð!4rK   c                  ó8  — dD ]4} t          | ¦  «        \  }}}|dz  |dz  z   |dz  z   | k    sJ ‚|dk    sJ ‚Œ5t          t          d„ ¦  «         t          d¦  «        �J ‚t          d¦  «        �J ‚t          d¦  «        dk    sJ ‚t          d	¦  «        d
k    sJ ‚d S )N)r   rZ   r[   r’   r÷   l   Ámy l   ý85JdÎl   8l9þ_	 r¯  i!  i"  i#  i$  i%  i&  r[   r   c                  ó    — t          d¦  «        S ©Nr{   )r)   rO   rK   rI   rP   z+test_sum_of_three_squares.<locals>.<lambda>›  s   € Õ3°BÑ7Ô7€ rK   r   i <  rÂ   )r   r   r}   rj   ©r   r   r[   )r)   r@   rw   )r„  r'  r(  ry  s       rI   Útest_sum_of_three_squaresrÚ  “  sÓ   € ð1ð ð ˆå& qÑ)Ô)‰ˆˆ1ˆaØ�!‰t�a˜‘d‰{˜Q ™TÑ! QÒ&Ð&Ð&Ð&Ø�AŠvˆvˆvˆvˆvõ �:Ð7Ð7Ñ8Ô8Ð8å Ñ"Ô"Ð*Ð*Ð*Ý 	Ñ*Ô*Ð2Ð2Ð2õ   Ñ#Ô# yÒ0Ð0Ð0Ð0Ý Ñ"Ô" iÒ/Ð/Ð/Ð/Ð/Ð/rK   c                  óÒ  — ddl m}   | dd¦  «        }t          d„ t          |¦  «        D ¦   «         ¦  «        |k    sJ ‚t	          t
          d„ ¦  «         t          d¦  «        D ]‚}t          |¦  «        }t          |¦  «        dk    sJ ‚t          d	„ |D ¦   «         ¦  «        sJ ‚t          d
„ |D ¦   «         ¦  «        |k    sJ ‚t          |¦  «        t          |¦  «        k    sJ ‚Œƒd S )Nr   )ÚrandintrZ   l    @ô Ìk c              3   ó    K  — | ]	}|d z  V — Œ
dS r‚  rO   rƒ  s     rI   r…  z+test_sum_of_four_squares.<locals>.<genexpr>«  s&   è è € Ð4Ð4˜ˆq�!‰tÐ4Ð4Ð4Ð4Ð4Ð4rK   c                  ó    — t          d¦  «        S rØ  )r(   rO   rK   rI   rP   z*test_sum_of_four_squares.<locals>.<lambda>®  s   € Õ2°2Ñ6Ô6€ rK   r©  rj   c              3   ó"   K  — | ]
}|d k    V — ŒdS ©r   NrO   ©r  Úrs     rI   r…  z+test_sum_of_four_squares.<locals>.<genexpr>³  s&   è è € Ð*Ð*˜a�1˜’6Ð*Ð*Ð*Ð*Ð*Ð*rK   c              3   ó    K  — | ]	}|d z  V — Œ
dS r‚  rO   rá  s     rI   r…  z+test_sum_of_four_squares.<locals>.<genexpr>´  s&   è è € Ð(Ð(˜A�1�a‘4Ð(Ð(Ð(Ð(Ð(Ð(rK   )Úsympy.core.randomrÜ  r   r(   r@   rw   rŸ  r¡  ÚallrË  Úsorted)rÜ  rÍ  Úresults      rI   Útest_sum_of_four_squaresrè  ¦  s  € Ø)Ð)Ð)Ð)Ð)Ð)ð 	ˆ��?Ñ#Ô#€AÝÐ4Ð4Õ0°Ñ3Ô3Ð4Ñ4Ô4Ñ4Ô4¸Ò9Ð9Ð9Ð9õ �:Ð6Ð6Ñ7Ô7Ð7å�4‰[Œ[ð .ð .ˆÝ$ QÑ'Ô'ˆÝ�6‰{Œ{˜aÒÐÐÐÝÐ*Ð* 6Ð*Ñ*Ô*Ñ*Ô*Ð*Ð*Ð*ÝÐ(Ð( Ð(Ñ(Ô(Ñ(Ô(¨AÒ-Ð-Ð-Ð-Ý�F‰|Œ|�v f™~œ~Ò-Ð-Ð-Ð-Ð-ð.ð .rK   c            	      ó\  — g d¢} | D ]h}|\  }}}t          |||¦  «        }	 	 t          |¦  «        }t          |¦  «        |k    sJ ‚d}|D ]
}|||z  z   }Œ||k    sJ ‚n# t          $ r Y nw xY wŒNŒit	          t          dddd¦  «        ¦  «        ddgk    sJ ‚t          t          d	„ ¦  «         t          t          d
„ ¦  «         t          t          d„ ¦  «         t	          t          ddd¦  «        ¦  «        g k    sJ ‚t	          t          ddd¦  «        ¦  «        dgk    sJ ‚t	          t          ddd¦  «        ¦  «        g k    sJ ‚t	          t          ddd¦  «        ¦  «        dgk    sJ ‚t	          t          dddd¬¦  «        ¦  «        ddgk    sJ ‚t	          t          dddd¬¦  «        ¦  «        g k    sJ ‚t	          t          ddd¦  «        ¦  «        dgk    sJ ‚t	          t          ddd¦  «        ¦  «        g k    sJ ‚t	          t          dddd¦  «        ¦  «        dgk    sJ ‚t	          t          dddd¦  «        ¦  «        g k    sJ ‚t          t	          t          ddd¦  «        ¦  «        ¦  «        dk    sJ ‚d}	dD ])}
t	          t          |	d|	|
z
  ¦  «        ¦  «        g k    sJ ‚Œ*d S )N))rû   rS   r[   )r+  r[   rj   )r[   rZ   r[   )rS   rZ   rS   )r}   r[   r[   )i@0  r[   rj   )iø  r[   rS   Tr   r‰   r[   rj   )rZ   rZ   rS   rS   )r   r   r[   rj   c                  ó>   — t          t          ddd¦  «        ¦  «        S )Ng333333ó?r[   ©rË  r%   rO   rK   rI   rP   z+test_power_representation.<locals>.<lambda>Ï  s   € �tÕ$8¸¸aÀÑ$CÔ$CÑDÔD€ rK   c                  ó>   — t          t          ddd¦  «        ¦  «        S ©Nr[   r   rë  rO   rK   rI   rP   z+test_power_representation.<locals>.<lambda>Ð  ó   € �tÕ$8¸¸A¸qÑ$AÔ$AÑBÔB€ rK   c                  ó>   — t          t          ddd¦  «        ¦  «        S rí  rë  rO   rK   rI   rP   z+test_power_representation.<locals>.<lambda>Ñ  rî  rK   r{   rZ   r\   rS   r]   rg  r�   )Úzeros)rZ   r[   r[   r[   r[   r[   )r   r   r   r   r   rS   r}   Fr|   r¯   r×   i  pi   @)rÃ   r²   r   r}   rj   r[   rZ   )r%   Únextr¡  ÚStopIterationrË  r@   rw   r4   )ÚtestsÚtestrÍ  r;  rÎ  ÚfÚlÚchk_sumÚl_iÚbigr„  s              rI   Útest_power_representationrú  ¸  sQ  € ðð ð €Eð ð ð ˆØ‰ˆˆ1ˆaÝ   A qÑ)Ô)ˆð	ð
Ý˜‘G”G�Ý˜1‘v”v ’{�{�{�{à�Øð /ð /�CØ%¨¨Q©Ñ.�G�GØ !’|�|�|�|�|øå ð ð ð Ø�ðøøøð	ð åÕ$ R¨¨A¨tÑ4Ô4Ñ5Ô5Ø	�|Ð$ò%ð %ð %ð %å
�:ÐDÐDÑEÔEÐEÝ
�:ÐBÐBÑCÔCÐCÝ
�:ÐBÐBÑCÔCÐCÝÕ$ R¨¨AÑ.Ô.Ñ/Ô/°2Ò5Ð5Ð5Ð5ÝÕ$ Q¨¨1Ñ-Ô-Ñ.Ô.°4°&Ò8Ð8Ð8Ð8ÝÕ$ Q¨¨1Ñ-Ô-Ñ.Ô.°"Ò4Ð4Ð4Ð4ÝÕ$ Q¨¨1Ñ-Ô-Ñ.Ô.°4°&Ò8Ð8Ð8Ð8ÝÕ$ T¨1¨a°tÐ<Ñ<Ô<Ñ=Ô=Ø	Ð/Ð0ò1ð 1ð 1ð 1åÕ$ T¨1¨a°uÐ=Ñ=Ô=Ñ>Ô>À"ÒDÐDÐDÐDÝÕ$ R¨¨AÑ.Ô.Ñ/Ô/°H°:Ò=Ð=Ð=Ð=ÝÕ$ R¨¨AÑ.Ô.Ñ/Ô/°2Ò5Ð5Ð5Ð5ÝÕ$ Q¨¨1¨dÑ3Ô3Ñ4Ô4¸¸Ò@Ð@Ð@Ð@ÝÕ$ Q¨¨1¨eÑ4Ô4Ñ5Ô5¸Ò;Ð;Ð;Ð;å�tÕ(Ð)9¸1¸aÑ@Ô@ÑAÔAÑBÔBÀaÒGÐGÐGÐGà
€CØ$ð :ð :ˆÝ•M # q¨#°©'Ñ2Ô2Ñ3Ô3°rÒ9Ð9Ð9Ð9Ð9ð:ð :s   ¢;AÁ
A+Á*A+c                  óú   — t          ddd¬¦  «        \  } }t          |dz  | |z  z   dz
  ¦  «        }|h d£k    sJ ‚t          ddd¬¦  «        \  }}t          ||z  d|z  z   d	|z  z   d
z
  ¦  «        }|h d£k    sJ ‚dS )z<
    Test whether diophantine respects the assumptions.
    zm nT)rC   Úpositiver[   iô  >   ©ió  rZ   ©r}   r‰   ©r½   r²   ©é_   r}   ©éy   rj   ©éø   r[   za bFrS   r�   >   ©r±   r„   ©r§   r»   ©r€   r~   ©r�   r�   ©r~   r…   ©r»   r™   N)r
   r   )ÚmrÍ  Údiofr'  r(  s        rI   Útest_assumptionsr  å  s®   € õ �5 $°Ð6Ñ6Ô6�D€A€qÝ�q˜!‘t˜a ™c‘z CÑ'Ñ(Ô(€DØÐMÐMÐMÒMÐMÐMÐMå�5 $°Ð7Ñ7Ô7�D€A€qÝ�q˜‘s˜Q˜q™S‘y 1 Q¡3‘¨Ñ*Ñ+Ô+€DØÐQÐQÐQÒQÐQÐQÐQÐQÐQrK   c           	      óT  — t          | ¦  «        }t          j        | ¦  «        }t          | j        ¦  «        }|                     t          ¬¦  «         |rS|                     ¦   «         }|D ]8}t          | 	                    t          ||¦  «        ¦  «        ¦  «        dk    r nŒ9dS |°SdS )zá
    Determines whether solutions returned by diophantine() satisfy the original
    equation. Hope to generalize this so we can remove functions like check_ternay_quadratic,
    check_solutions_normal, check_solutions()
    )Úkeyr   FT)r   r   Ú	make_argsrË  Úfree_symbolsÚsortr   rq  rJ   r	  rÍ   )rH   ÚsÚfactorsr¢  Úsolutionrõ  s         rI   r¿   r¿   ô  s±   € õ 	�B‰Œ€AåŒm˜BÑÔ€Gå
ˆrŒÑ
Ô
€CØ‡H‚HÕ!€HÑ"Ô"Ð"à
ð Ø—5’5‘7”7ˆØð 	ð 	ˆAÝ˜QŸVšV¥C¨¨XÑ$6Ô$6Ñ7Ô7Ñ8Ô8¸AÒ=Ð=Ø�ð >ð �5ð ð ð ˆ4rK   c            	      ó.
  — dt           z  t          z   dz   dz  } t          | ¦  «        t          dt          z  dz
  fhk    sJ ‚dt           dz  z  dt           z  t          z  z   dt           z  z   dt          dz  z  z   dt          z  z   dz   } t          | ¦  «        t          t           dz
  fdt          z  dz
  t          fhk    sJ ‚t          t           t          dz  z   dz
  ¦  «        t          dz   dz   t          fhk    sJ ‚t          t           t          z   dz
  ¦  «        t          dt          z
  fk    sJ ‚t          d	ddd ¬
¦  «        dk    sJ ‚dt          z  dz
  dt          z  dz   f}t          dddt          ¦  «        |k    sJ ‚t          dddd ¬
¦  «        t          d„ |D ¦   «         ¦  «        k    sJ ‚t          ddd¦  «        t          ¦   «         k    sJ ‚t          ddd¦  «        dhk    sJ ‚t          ddd¦  «        dhk    sJ ‚t          t          d„ ¦  «         t          ddd¦  «        dk    sJ ‚t          dz   t           dz  z
  t          dz  z
  t          dz  z   } t!          | ¦  «        t!          |  ¦  «        cxk    rft"          dz  t$          dz  z   t&          dz  z
  dt"          z  t&          z  dt$          z  t&          z  t"          dz  t$          dz  z   t&          dz  z   fk    sn J ‚t)          t+          t-          d¦  «        t           dz  z   t-          d¦  «        t           dz  z   t-          d¦  «        t           g¦  «        ¦  «        d	k    sJ ‚t)          t+          t/          dd¦  «        t-          d¦  «        t           z   t-          d¦  «        t           g¦  «        ¦  «        d	k    sJ ‚t)          t+          t-          d¦  «        t           z   t/          dd¦  «        t-          d¦  «        t           g¦  «        ¦  «        d	k    sJ ‚t1          dd¦  «        dk    sJ ‚t3          d¦  «        t5          d¦  «         cxk    rdk    sn J ‚t3          d	¦  «        t5          d	¦  «         cxk    rdk    sn J ‚t7          ddd¦  «        dk    sJ ‚t          t8          d„ ¦  «         t;          ddd¦  «        dk    sJ ‚t          t<          d„ ¦  «         t          t<          d „ ¦  «         t          t           dz  t          dz  z   dz
  d!z
  ¦  «        h d"£k    sJ ‚d S )#Nr[   rZ   r|   r�   r‡   rj   r†   rS   r   ©r©   r×   r‚   c              3   óL   K  — | ]}|                      t          d ¦  «        V — Œ dS rà  )r	  r©   )r  Ú_s     rI   r…  z$test_diopcoverage.<locals>.<genexpr>  s.   è è € Ð:UÐ:UÈA¸1¿6º6Å!ÀQ¹<¼<Ð:UÐ:UÐ:UÐ:UÐ:UÐ:UrK   r‰   r}   rÙ   r­   rp  c                  ó$   — t          ddd¦  «        S )Nrj   r‰   rZ   )r#   rO   rK   rI   rP   z#test_diopcoverage.<locals>.<lambda>  s   € �{¨1¨b°!Ñ4Ô4€ rK   rµ   rº   r²   TFrS  c                  ó    — t          d¦  «        S )N)r[   rj   r�   )r:   rO   rK   rI   rP   z#test_diopcoverage.<locals>.<lambda>/  s   € �k¨)Ñ4Ô4€ rK   rk   én   i6  )r®   rZ   r}   c                  ó’   — t          t          dz  t          dz  z   t          t          z  z   dt          z  t          z  z   dz
  ¦  «        S )Nr[   r‡   ©r   rN   rg   rh   rO   rK   rI   rP   z#test_diopcoverage.<locals>.<lambda>4  s6   € ­µA°q±D½1¸a¹4±KÅ!ÅAÁ#Ñ4EÈÍ!ÉÍAÉÑ4MÐPRÑ4RÑ(SÔ(S€ rK   c                  óF   — t          t          dz  t          dz  z   ¦  «        S )NrS   r[   r]  rO   rK   rI   rP   z#test_diopcoverage.<locals>.<lambda>5  s   € ­µA°q±D½1¸a¹4±KÑ(@Ô(@€ rK   rg  >   ©rZ   rˆ   ©rZ   r§   ©rˆ   r{   ©r§   r{   ©r{   rˆ   ©r{   r§   rý   r¦   )rN   rg   r   r�   r©   r   r   r-   Útupler.   rW   r@   rw   r0   rf   rh   r   Úm1Úm2Úm3r¡  r2   r	   r   r7   r8   r9   r:   rT   r/   rx   )rH   rÔ  s     rI   Útest_diopcoverager+    s  € Ø
�A‰#•‰'�A‰+˜Ñ	€BÝ�b‰>Œ>�s B¥s¡F¨Q¡JÐ/Ð0Ò0Ð0Ð0Ð0Ø	
�1ˆa‰4‰�!•A‘#•a‘%‰˜"�Q™$Ñ	 ¥1 a¡4¡Ñ	'¨"­Q©$Ñ	.°Ñ	3€BÝ�b‰>Œ>�q¥1 " q¡&˜k¨B­q©D°1©Hµa¨=Ð9Ò9Ð9Ð9Ð9Ý�!�a ™d™( Q™,Ñ'Ô'­a°©d¨U°Q©Y½¨NÐ+;Ò;Ð;Ð;Ð;å•q�1‘u˜q‘yÑ!Ô!¥c¨1­s©7 ^Ò3Ð3Ð3Ð3å  1 a¨4Ð0Ñ0Ô0°FÒ:Ð:Ð:Ð:Ø�Q‰3�‰7�B•q‘D˜1‘HÐ
€CÝ  1 b­!Ñ,Ô,°Ò3Ð3Ð3Ð3Ý  1 b¨DÐ1Ñ1Ô1µUÐ:UÐ:UÐQTÐ:UÑ:UÔ:UÑ5UÔ5UÒUÐUÐUÐUå�a˜˜BÑÔ¥3¡5¤5Ò(Ð(Ð(Ð(Ý�a˜˜AÑÔ 6 (Ò*Ð*Ð*Ð*Ý�a˜˜BÑÔ F 8Ò+Ð+Ð+Ð+å
�:Ð4Ð4Ñ5Ô5Ð5å˜1˜a Ñ#Ô# vÒ-Ð-Ð-Ð-Ý
ˆQ‰$ˆ•�A‘‰�˜1™Ñ	�q !™tÑ	#€Bå# BÑ'Ô'Ý  " Ñ%Ô%ð,ð ,ò ,ð ,å�‰U•R˜‘U‰]�R ™UÑ" A¥b¡D­¡GØ�b‰D•‰G•R˜‘U�R ™U‘]¥R¨¡UÑ*ð,ò,ð ,ð ,ð ,ð ,ð ,õ
 �{�1˜Q™4œ4¥! A¡#™:¥q¨¡t¤t­a°©c¡zµ1°Q±4´4½!¸Ñ=Ô=Ñ>Ô>À!ÒCÐCÐCÐCÝ�{�8 A q™>œ>­1¨Q©4¬4µ!©8µQ°q±T´T½A¸3Ñ?Ô?Ñ@Ô@ÀAÒEÐEÐEÐEÝ�{�1˜Q™4œ4¥!™8¥X¨a°¡^¤^µQ°q±T´T½A¸3Ñ?Ô?Ñ@Ô@ÀAÒEÐEÐEÐEå˜"˜bÑ!Ô! QÒ&Ð&Ð&Ð&Ý�‰7Œ7�5 ™8œ8�|Ð,Ð,Ò,Ð,¨Ò,Ð,Ð,Ð,Ð,Ð,Ý�‰7Œ7�5 ™8œ8�|Ð-Ð-Ò-Ð-¨Ò-Ð-Ð-Ð-Ð-Ð-Ý�q˜!˜QÑÔ 9Ò,Ð,Ð,Ð,Ý
�9Ð4Ð4Ñ5Ô5Ð5Ý�h ¨	Ñ2Ô2Øòð ð ð õ ÕÐ SÐ SÑTÔTÐTÝ
ÕÐ @Ð @ÑAÔAÐAÝ�!˜Q™$¥ A¡™+¨Ñ,¨tÑ3Ñ4Ô4ØSÐSÐSòTð Tð Tð Tð Tð TrK   c                  óš   — t          dddddd¦  «        dk    sJ ‚t          dddd	d	d
¦  «        dk    sJ ‚t          t          d„ ¦  «         d S )Nr[   r   rÃ   rj   éO   r¬   ©r[   r   rÃ   r�   rZ   r²   )r[   r�   r[   c                  ó*   — t          dddddd¦  «        S )Nr[   r   rl   rj   r-  r¬   )r1   rO   rK   rI   rP   ztest_holzer.<locals>.<lambda>C  s   € �v a¨¨B°°2°rÑ:Ô:€ rK   )r1   r@   rw   rO   rK   rI   Útest_holzerr0  :  sf   € õ �!�Q˜˜A˜r 2Ñ&Ô&¨*Ò4Ð4Ð4Ð4õ �!�Q˜˜1˜a Ñ$Ô$¨	Ò1Ð1Ð1Ð1å
�:Ð:Ð:Ñ;Ô;Ð;Ð;Ð;rK   c                  óf  ‡
‡‡— ˆ
ˆˆfd„} d\  Š
ŠŠdx\  }}}}dx\  }}}} | |Ž dk    sJ ‚ | |Ž dk    sJ ‚t          ‰
|dz  z  ‰|dz  z  ‰|dz  z  ¦  «        ‰
‰z  ‰z  k    sJ ‚t          ‰
|dz  z  ‰|dz  z  ‰|dz  z  ¦  «        ‰
‰z  ‰z  k    sJ ‚t          |||‰
‰‰¦  «        }	|	|k    sJ ‚d S )Nc                 ó8   •— ‰| dz  z  ‰|dz  z  z   ‰|dz  z  z
  S rŒ   rO   )rN   rg   rh   r'  r(  ry  s      €€€rI   rP   z"test_fail_holzer.<locals>.<lambda>H  s(   ø€ ˜˜1˜a™4™ ! A q¡D¡&™¨1¨Q°©T©6Ñ1€ rK   )rj   r-  r¬   )é   rZ   r®   r.  r   r[   )Úmaxr1   )rH   rN   rg   rh   Úxyzr  r  r3  rÔ  Úhr'  r(  ry  s             @@@rI   Útest_fail_holzerr7  F  s  øøø€ à	1Ð	1Ð	1Ð	1Ð	1Ð	1€BØ�G€A€qˆ!ØÐ�G€A€qˆ!ˆcØÐ�G€A€qˆ!ˆcØˆ2ˆsˆ8�qŠ=ˆ=ˆ=ˆ=Øˆ2ˆsˆ8�qŠ=ˆ=ˆ=ˆ=Ýˆq��A‘‰v�q˜˜A™‘v˜q  A¡™vÑ&Ô&¨!¨A©#¨a©%Ò/Ð/Ð/Ð/Ýˆq��A‘‰v�q˜˜A™‘v˜q  A¡™vÑ&Ô&¨!¨A©#¨a©%Ò/Ð/Ð/Ð/Ýˆq�!�Q˜˜1˜aÑ Ô €AØ�Š8ˆ8ˆ8ˆ8ˆ8ˆ8rK   c                  óð   — t          dt          z  dt          z  z   dt          z  z   t          z
  ¦  «        t
          t          t          t          z   dt
          z  dt          z  z   dt          z  z   fhk    sJ ‚d S )Nr�   rˆ   r‰   rŠ   )r   rf   rg   rN   rh   r�   rŽ   r�   rO   rK   rI   Útest_issue_9539r9  T  sm   € Ý�q�‘s˜Q�q™S‘y 2¥a¡4Ñ'­!Ñ+Ñ,Ô,Ý•#•s�S‘y !¥C¡%¨"­S©&¡.°1µS±5Ñ"8Ð9Ð:ò;ð ;ð ;ð ;ð ;ð ;rK   c                  óÚ   — t          dt          dz  t          dz  z   t          dz  z   z  dt          t          z  t          t          z  z   t          t          z  z   z  z
  ¦  «        dhk    sJ ‚d S )NrS   r[   rl   ©r   r   r   r  rO   rK   rI   Útest_issue_8943r<  Y  sm   € ÝØ	�1ˆa‰4•!�Q‘$‰;�˜A™ÑÑ ¥Q¥q¡S­1­Q©3¡Yµµ1±¡_Ñ!5Ñ5ñ7ô 7àˆ;òð ð ð ð ð rK   c                  óF  ‡— t           dz  t          dz  z   t          dz  z   dz
  Št          ‰¦  «        ddhk    sJ ‚t	          ‰d¦  «        ddhk    sJ ‚t          t          ˆfd„¦  «         t          dd¬	¦  «        } t           dz  t          dz  z   | dz  z   dz
  Št	          ‰¦  «        d
hk    sJ ‚t          t           dz  t          dz  z   dz   ¦  «        t          ¦   «         k    sJ ‚t	          t           dz  t          dz  z   dz
  d¬¦  «        t          ¦   «         k    sJ ‚d S )Nrj   iq
  )rS   r�   r�   )r[   rj   r   r[   c                  ó&   •— t          ‰  d¦  «        S rŒ   )r   rG   s   €rI   rP   z.test_diop_sum_of_even_powers.<locals>.<lambda>c  s   ø€ Õ(GÈÈÈQÑ(OÔ(O€ rK   ÚnegTr‡  )r„   r�   r�   r   )Úlimit)
rN   rg   rh   r   r   r@   rx   r
   r   rW   )r?  rH   s    @rI   Útest_diop_sum_of_even_powersrA  _  s*  ø€ Ý	
ˆA‰•�1‘‰•q˜!‘tÑ	˜dÑ	"€BÝ�b‰>Œ>˜i¨Ð3Ò3Ð3Ð3Ð3Ý*¨2¨qÑ1Ô1°iÀÐ5KÒKÐKÐKÐKÝ
ÕÐ OÐ OÐ OÐ OÑPÔPÐPÝ
�% $Ð
'Ñ
'Ô
'€CÝ	
ˆA‰•�1‘‰�s˜A‘vÑ	 Ñ	$€BÝ*¨2Ñ.Ô.°:°,Ò>Ð>Ð>Ð>Ý•q˜!‘t�a ™d‘{ Q‘Ñ'Ô'­3©5¬5Ò0Ð0Ð0Ð0Ý*­1¨a©4µ!°Q±$©;¸©?À!ÐDÑDÔDÍÉÌÒMÐMÐMÐMÐMÐMrK   c                  ó	  ‡— h d£} t           dz  t          dz  z   t          dz  z   t          dz  z   t          dz  z   dz
  }t          |t          ¦  «        }t          |¦  «        dk    sJ ‚|| k    sJ ‚t          t          d„ ¦  «         t          t          dd¦  «        ¦  «        dgk    sJ ‚t          t          dd¦  «        ¦  «        g k    sJ ‚t          t          ddd¦  «        ¦  «        d	gk    sJ ‚t          t          d
d¦  «        ¦  «        g k    sJ ‚t          t          dd¦  «        ¦  «        g k    sJ ‚t          t          ddd¦  «        ¦  «        dgk    sJ ‚t          t          dd¦  «        ¦  «        g k    sJ ‚t          t          dd¦  «        ¦  «        dgk    sJ ‚t          t          dd¦  «        ¦  «        g k    sJ ‚t          t          dd¦  «        ¦  «        ddgk    sJ ‚t          t          ddd¦  «        ¦  «        ddgk    sJ ‚t          t          dd¦  «        ¦  «        dgk    sJ ‚d„ t          d¦  «        D ¦   «         g d¢k    sJ ‚d„ t          d¦  «        D ¦   «         g d¢k    sJ ‚t          d¦  «        D ]yŠt          t          ‰dd¦  «        ¦  «        }|rt          ˆfd„|D ¦   «         ¦  «        sJ ‚t          t          ‰d¦  «        ¦  «        }t          ˆfd„|D ¦   «         ¦  «        sJ ‚Œzt          t          d „ ¦  «         t          t          d!„ ¦  «         t          t          d"dd¦  «        ¦  «        d#gk    sJ ‚t          t          d"dd¦  «        ¦  «        g k    sJ ‚t          t          ddd¦  «        ¦  «        dgk    sJ ‚t          t          dddd¦  «        ¦  «        d$d%gk    sJ ‚t          t          dddd¦  «        ¦  «        g d&¢k    sJ ‚t          t          d'dd¦  «        ¦  «        g k    sJ ‚t          t          d(dd¦  «        ¦  «        g k    sJ ‚t          t          d)dd¦  «        ¦  «        d*gk    rd)d)k    sJ ‚t          t          dd+z  dd¦  «        ¦  «        g k    sJ ‚d S ),N>   ©r   r   rZ   rZ   r®   ©r   r   r}   r   r   ©r   rZ   rS   r   r‚   ©r   rZ   rj   r}   rˆ   ©r   rS   rj   r   r   ©r   rS   r}   r}   r‚   ©rZ   rZ   r[   r�   rˆ   ©rZ   rZ   r�   r�   r   ©rZ   r[   rS   rS   r²   ©rZ   rS   rj   rj   rˆ   ©rZ   r}   r}   r�   r�   ©r[   r[   rS   r}   rˆ   ©r[   rS   r}   r�   r   ©rS   rS   rj   r}   r‚   r[   r÷   rl   c                  ó<   — t          t          dd¦  «        ¦  «        S )Nr²   r{   )rË  r5   rO   rK   rI   rP   z,test_sum_of_squares_powers.<locals>.<lambda>t  s   € �t¥N°2°rÑ$:Ô$:Ñ;Ô;€ rK   rZ   r\   T)r   rZ   rø   rS   r   r;  rj   r]   r}   é2   )r}   r}   )rZ   r   r®   )rZ   rZ   rZ   r[   r[   )r   r   rZ   rZ   rS   r‚   )rZ   rZ   rZ   rZ   rZ   rZ   rZ   rZ   c                 ód   — g | ]-}t          t          t          |d d¦  «        ¦  «        ¦  «        ‘Œ.S )r}   T©r¡  rË  r5   rƒ  s     rI   r  z.test_sum_of_squares_powers.<locals>.<listcomp>ƒ  s4   € ÐEÐEÐE°a�C••^ A q¨$Ñ/Ô/Ñ0Ô0Ñ1Ô1ÐEÐEÐErK   r˜   )rZ   rZ   rZ   rZ   r[   r[   rZ   rZ   r[   r[   r[   r[   r[   rS   r[   rZ   rS   rS   rS   rS   rj   rS   rS   r[   r[   rj   rj   rj   rj   r}   c           
      ób   — g | ],}t          t          t          |d ¦  «        ¦  «        ¦  «        ‘Œ-S )r}   rT  rƒ  s     rI   r  z.test_sum_of_squares_powers.<locals>.<listcomp>Š  s2   € Ð?Ð?Ð?°�C••^ A qÑ)Ô)Ñ*Ô*Ñ+Ô+Ð?Ð?Ð?rK   )r   r   r   r   r   rZ   r   r   rZ   r   r   rZ   r   rZ   rZ   r   rZ   rZ   r   rZ   r[   rZ   rZ   rZ   rZ   rZ   rZ   rZ   rZ   rS   c              3   óR   •K  — | ]!}t          d „ |D ¦   «         ¦  «        ‰k    V — Œ"dS )c              3   ó    K  — | ]	}|d z  V — Œ
dS r‚  rO   ©r  Újs     rI   r…  z7test_sum_of_squares_powers.<locals>.<genexpr>.<genexpr>“  s&   è è € Ð 1Ð 1¨!  A¡Ð 1Ð 1Ð 1Ð 1Ð 1Ð 1rK   N©r   ©r  r©   r„  s     €rI   r…  z-test_sum_of_squares_powers.<locals>.<genexpr>“  s?   øè è € ÐCÐC¸1�SÐ 1Ð 1¨qÐ 1Ñ 1Ô 1Ñ1Ô1°QÒ6ÐCÐCÐCÐCÐCÐCrK   c              3   óR   •K  — | ]!}t          d „ |D ¦   «         ¦  «        ‰k    V — Œ"dS )c              3   ó    K  — | ]	}|d z  V — Œ
dS r‚  rO   rX  s     rI   r…  z7test_sum_of_squares_powers.<locals>.<genexpr>.<genexpr>•  s&   è è € Ð'Ð' �q˜!‘tÐ'Ð'Ð'Ð'Ð'Ð'rK   NrZ  r[  s     €rI   r…  z-test_sum_of_squares_powers.<locals>.<genexpr>•  s?   øè è € Ð9Ð9°•3Ð'Ð' QÐ'Ñ'Ô'Ñ'Ô'¨1Ò,Ð9Ð9Ð9Ð9Ð9Ð9rK   c                  ó>   — t          t          ddd¦  «        ¦  «        S )Nr[   r{   rZ   ©rË  r4   rO   rK   rI   rP   z,test_sum_of_squares_powers.<locals>.<lambda>—  s   € �t¥M°!°R¸Ñ$;Ô$;Ñ<Ô<€ rK   c                  ó>   — t          t          ddd¦  «        ¦  «        S )Nr[   rZ   r{   r_  rO   rK   rI   rP   z,test_sum_of_squares_powers.<locals>.<lambda>˜  s   € �t¥M°!°Q¸Ñ$;Ô$;Ñ<Ô<€ rK   r|   r¯   rÙ  )r   rZ   rZ   ))r   r}   )rZ   rj   ro  r�   éó   iÙ  )rˆ   r©  )r  rÏ   rN   rg   rh   r   r   r¡  r@   rw   rË  r5   rŸ  rW   rå  r4   )ÚtrurH   rÔ  Ús1Ús2r„  s        @rI   Útest_sum_of_squares_powersre  k  s  ø€ ð-ð -ð -€Cõ 
ˆA‰•�1‘‰•q˜!‘tÑ	�a ™dÑ	"¥Q¨¡TÑ	)¨CÑ	/€BÝ
% b­"Ñ
-Ô
-€CÝˆs‰8Œ8�rŠ>ˆ>ˆ>ˆ>Ø�#Š:ˆ:ˆ:ˆ:å
�:Ð;Ð;Ñ<Ô<Ð<Ý•˜q !Ñ$Ô$Ñ%Ô%¨$¨Ò/Ð/Ð/Ð/Ý•˜q !Ñ$Ô$Ñ%Ô%¨Ò+Ð+Ð+Ð+Ý•˜q ! TÑ*Ô*Ñ+Ô+°¨xÒ7Ð7Ð7Ð7Ý•˜s AÑ&Ô&Ñ'Ô'¨2Ò-Ð-Ð-Ð-Ý•˜q !Ñ$Ô$Ñ%Ô%¨Ò+Ð+Ð+Ð+Ý•˜q ! TÑ*Ô*Ñ+Ô+°	¨{Ò:Ð:Ð:Ð:Ý•˜q !Ñ$Ô$Ñ%Ô%¨Ò+Ð+Ð+Ð+Ý•˜q !Ñ$Ô$Ñ%Ô%¨$¨Ò/Ð/Ð/Ð/Ý•˜q !Ñ$Ô$Ñ%Ô%¨Ò+Ð+Ð+Ð+Ý•˜r 1Ñ%Ô%Ñ&Ô&¨6°6Ð*:Ò:Ð:Ð:Ð:Ý•˜r 1 dÑ+Ô+Ñ,Ô,Ø˜ð1*ò *ð *ð *ð *å•˜q !Ñ$Ô$Ñ%Ô%Ð*BÐ)CÒCÐCÐCÐCàEÐE½5À¹9¼9ÐEÑEÔEð Jð Jð Jò ð ð ð ð @Ð?µU¸2±Y´YÐ?Ñ?Ô?ð Dð Dð Dò ð ð ð õ �2‰YŒYð :ð :ˆÝ•  1 dÑ+Ô+Ñ,Ô,ˆØÐC�ÐCÐCÐCÐCÀÐCÑCÔCÑCÔCÐCÐCÐCÝ•  1Ñ%Ô%Ñ&Ô&ˆÝÐ9Ð9Ð9Ð9°bÐ9Ñ9Ô9Ñ9Ô9Ð9Ð9Ð9Ð9å
�:Ð<Ð<Ñ=Ô=Ð=Ý
�:Ð<Ð<Ñ=Ô=Ð=Ý•˜b ! QÑ'Ô'Ñ(Ô(¨X¨JÒ6Ð6Ð6Ð6Ý•˜b ! QÑ'Ô'Ñ(Ô(¨BÒ.Ð.Ð.Ð.Ý•˜a  AÑ&Ô&Ñ'Ô'¨D¨6Ò1Ð1Ð1Ð1Ý•˜a  A tÑ,Ô,Ñ-Ô-°)¸YÐ1GÒGÐGÐGÐGÝ•˜a  A tÑ,Ô,Ñ-Ô-Ð1IÐ1IÐ1IÒIÐIÐIÐIÝ•˜a  AÑ&Ô&Ñ'Ô'¨2Ò-Ð-Ð-Ð-Ý•˜d A qÑ)Ô)Ñ*Ô*¨bÒ0Ð0Ð0Ð0Ý•˜d A qÑ)Ô)Ñ*Ô*¨t¨fÒ4Ð4¸$À$º,¸,¸,¸,Ý•˜a ™g q¨!Ñ,Ô,Ñ-Ô-°Ò3Ð3Ð3Ð3Ð3Ð3rK   c                  ó  — t          dd¦  «        du sJ ‚t          dd¦  «        du sJ ‚t          dd¦  «        sJ ‚t          dd¦  «        sJ ‚t          dd¦  «        sJ ‚t          dd¦  «        sJ ‚t          dd¦  «        du sJ ‚d S )	NrS   r{   Fr„   rZ   r   rj   r[   )r;   rO   rK   rI   Útest__can_do_sum_of_squaresrg  ¤  s±   € Ý! ! RÑ(Ô(¨EÐ1Ð1Ð1Ð1Ý! " aÑ(Ô(¨EÐ1Ð1Ð1Ð1Ý! ! QÑ'Ô'Ð'Ð'Ð'Ý! ! QÑ'Ô'Ð'Ð'Ð'Ý! ! QÑ'Ô'Ð'Ð'Ð'Ý! ! QÑ'Ô'Ð'Ð'Ð'Ý! ! QÑ'Ô'¨5Ð0Ð0Ð0Ð0Ð0Ð0rK   c                  óX  — ddl m} m}m}m}m} | dz  |dz  z   dz
  }dh}t          |¦  «        |k    sJ ‚t          t          | 	                    ¦   «         ¦  «        ¦  «        }t          |d¬¦  «        |k    sJ ‚| dz  |dz  z   |dz  z   |dz  z   |dz  z   d	z
  }t          t          |¦  «        ¦  «        d
k    sJ ‚t          t          |d¬¦  «        ¦  «        dk    sJ ‚h d£}t          dt          dz  z  dt          z  t          z  z   dt          dz  z  z   dz
  d¬¦  «        |k    sJ ‚d S )Nr   rx  rj   rP  ro  TrQ  r[   r+  é#   i0ò  r³   r²   r‡   r’   )r~  r'  r(  ry  rz  r{  r   rW   rB   rq  r¡  rN   rg   )	r'  r(  ry  rz  r{  rH   rt  ru  Úsolns	            rI   Útest_diophantine_permute_signrk  ®  sh  € Ø'Ð'Ð'Ð'Ð'Ð'Ð'Ð'Ð'Ð'Ð'Ð'Ð'Ð'Ø	
ˆA‰��1‘‰˜Ñ	$€BØˆx€HÝ�r‰?Œ?˜hÒ&Ð&Ð&Ð&ÝÕ+¨H¯LªL©N¬NÑ;Ô;Ñ<Ô<€MÝ�r 4Ð(Ñ(Ô(¨MÒ9Ð9Ð9Ð9à	
ˆA‰��1‘‰�q˜!‘tÑ	˜a ™dÑ	" Q¨¡TÑ	)¨CÑ	/€BÝ�{˜2‰ŒÑÔ 2Ò%Ð%Ð%Ð%Ý�{˜2 tÐ,Ñ,Ô,Ñ-Ô-°Ò6Ð6Ð6Ð6Ø/Ð/Ð/€DÝ�r�!˜Q™$‘w ¥A¡¥a¡Ñ'¨"­Q°©T©'Ñ1°BÑ6ÀÐEÑEÔEÈÒMÐMÐMÐMÐMÐMrK   c                  ó†   — t           dz  t          dz  z   dz
  dz
  } t          | t           t          g¬¦  «        ddhk    sJ ‚d S )Nr[   rj   rZ   rg  ©rh  rý   )rZ   rS   )rN   rg   r   rG   s    rI   Útest_not_implementedrn  ½  sJ   € å	
ˆA‰•�1‘‰�tÑ	˜dÑ	"€BÝ�r¥¥A Ð'Ñ'Ô'¨F°FÐ+;Ò;Ð;Ð;Ð;Ð;Ð;rK   c                  óÎ   ‡ — t           dt          z  z
  dz   Š t          ‰ t          t           g¬¦  «        t          dt          z  dz
  fhk    sJ ‚t	          t
          ˆ fd„¦  «         d S )NrS   r[   rm  c                  ó>   •— t          ‰ t          t          h¬¦  «        S )Nrm  )r   rg   rN   rG   s   €rI   rP   z!test_issue_9538.<locals>.<lambda>Æ  s   ø€ �k¨"µAµq°6Ð:Ñ:Ô:€ rK   )rN   rg   r   r�   r@   rT   rG   s   @rI   Útest_issue_9538rq  Ã  sf   ø€ Ý	
ˆQ�q‰S‰�1‰€BÝ�r¥¥1 Ð&Ñ&Ô&­C°µ3±¸±Ð+;Ð*<Ò<Ð<Ð<Ð<Ý
�9Ð:Ð:Ð:Ð:Ñ;Ô;Ð;Ð;Ð;rK   c                  óD  — t          dt          dz  z  t          dz  z   dt          dz  z  z
  ¦  «        } t	          t          | ¦  «        j        ¦  «        \  }}}| |dz  d|dz  z  z
  d|dz  z  d|z  |z  z   d|z  |z  z
  d|dz  z  z
  |dz  d|z  |z  z
  d|dz  z  z   d|z  |z  z
  fhk    sJ ‚t          t          dz  dt          dz  z  z   dt          dz  z  z
  ¦  «        } | d|z  |z  |dz  d|dz  z  z
  |dz  d|dz  z  z   fhk    sJ ‚t          dt          dz  z  dt          dz  z  z   t          dz  z
  ¦  «        } | d|dz  z  |dz  z
  d|dz  z  d|z  |z  z   |dz  z
  d|dz  z  d|z  |z  z
  d|dz  z  z   fhk    sJ ‚t          dt          dz  z  dt          dz  z  z   dt          dz  z  z
  ¦  «        } | d|dz  z  d|dz  z  z
  d	|z  |z  d
|dz  z  d|dz  z  z   fhk    sJ ‚t          dt          dz  z  dt          dz  z  z   t          dz  z
  dt          z  t          z  z
  dt          z  t          z  z   dt          z  t          z  z
  ¦  «        d|dz  z  d|z  |z  z
  |dz  z
  d|dz  z  d|z  |z  z   |dz  z
  d|dz  z  d|z  |z  z
  d|dz  z  z   fk    sJ ‚t          dt          dz  z  dt          dz  z  z
  dt          dz  z  z
  ¦  «        d|dz  z  d|dz  z  z
  d|dz  z  d|z  |z  z   d|dz  z  z
  d|dz  z  d|z  |z  z   d|dz  z  z   fk    sJ ‚d S )Nr[   r|   rj   rS   éH   r–   r¹   rˆ   r�   r‚   r}   r   r-  r˜   r.  i~úÿÿiÿŠ iŒ
  iÄx  i:�
 iÄÿÿÿi  ib<  )r   rN   rg   rh   r   r	   r  r3   )r  r;  r<  râ  s       rI   Útest_ternary_quadraticrt  É  s÷  € å�A•a˜‘d‘F�Q ™T‘M A¥a¨¡d¡FÑ*Ñ+Ô+€AÝ•a˜‘d”dÔ'Ñ(Ô(�G€A€qˆ!ØØ	ˆ1‰ˆq��A‘‰v‰Ø
ˆ1ˆa‰4‰�!�A‘#�a‘%‰˜!˜A™#˜a™%Ñ ! A q¡D¡&Ñ(Ø	ˆ1‰ˆq�‰s�1‰u‰�q˜˜A™‘vÑ  !¡ A¡Ñ%ð'ð (ò (ð (ð (ð (õ
 	•A�q‘D˜1�Q ™T™6‘M A¥a¨¡d¡FÑ*Ñ+Ô+€AØ�!�A‘#�a‘%˜˜A™  ! Q¡$¡™¨¨1©¨q°°A±©v©Ð6Ð7Ò7Ð7Ð7Ð7å�A•a˜‘d‘F˜Q�q !™t™V‘O¥a¨¡dÑ*Ñ+Ô+€AØ�!�A�q‘D‘&˜1˜a™4‘-  A q¡D¡¨1¨Q©3¨q©5¡°1°a±4Ñ!7Ø	ˆ!ˆQ‰$‰��1‘�Q‘‰˜˜1˜a™4™Ñð!ð "ò "ð "ð "ð "õ 	�A•a˜‘d‘F˜R¥ 1¡™WÑ$ r­!¨Q©$¡wÑ.Ñ/Ô/€AØ�"�Q˜‘T‘'˜A˜a ™d™FÑ" A a¡C¨¡E¨1¨Q°©T©6°A°a¸±d±F©?Ð;Ð<Ò<Ð<Ð<Ð<Ý(Ø	�!ˆQ‰$‰�•1�a‘4‘‰�!˜Q™$Ñ ¥1¡¥Q¡Ñ&¨­1©­Q©Ñ.°µ1±µQ±Ñ6ñ8ô 8à	ˆ!ˆQ‰$‰��1‘�Q‘‰˜˜A™Ñ˜q  A¡™v¨¨!©¨A©™~°°1±Ñ4°a¸¸1¹±fØ	ˆ!‰ˆA‰ñ7Ø�!�Q‘$‘ñ7ð<òð ð ð õ )Ø�Aˆq‰D‰�2•a˜‘d‘7Ñ˜T¥! Q¡$™YÑ&ñ(ô (àˆa�‰d‰
�V˜A˜q™D‘[Ñ  $ q¨!¡t¡)¨e°A©g°a©iÑ"7Øˆq�!‰t‰ñ#Ø˜˜A™‘X  Q¡ q¡Ñ(¨5°°A±©:Ñ5ð,7ò7ð 7ð 7ð 7ð 7ð 7rK   c                  óî
  ‡‡‡— t          g g ¦  «        Št          ‰¦  «        t          ¦   «         k    sJ ‚‰j        dk    sJ ‚‰j        dk    sJ ‚t	          t
          ˆfd„¦  «         t          ‰                     ¦   «         ¦  «        g k    sJ ‚t          t          t          gt          t          g¦  «        Š‰j        t          t          fk    sJ ‚‰j        t          t          fk    sJ ‚t	          t
          ˆfd„¦  «         ‰                     d¦  «         t          ‰¦  «        dhk    sJ ‚‰                     ddt          f¦  «         t          ‰¦  «        ddt          fhk    sJ ‚t	          t
          ˆˆfd„¦  «         t          ‰                     ¦   «         ¦  «        t          dt          t          it          dt          digk    sJ ‚t          t          t          t          gt          t          g¦  «        Št          ‰j        ¦  «        d	k    sJ ‚‰                     t          d	z  t          z   t          t          z
  d
f¦  «         t          ‰¦  «        t          d	z  t          z   t          t          z
  d
fhk    sJ ‚‰                     t          d	¦  «        t          dz   d	t          z
  d
fhk    sJ ‚ ‰d	¦  «        t          dz   d	t          z
  d
fhk    sJ ‚‰                     t          dt          di¦  «        dhk    sJ ‚ ‰dd¦  «        dhk    sJ ‚‰                     t          di¦  «        t          dz   dt          z
  d
fhk    sJ ‚ ‰d¦  «        t          dz   dt          z
  d
fhk    sJ ‚‰                     t          d¦  «        t          d	z  dz
  t          dz   d
fhk    sJ ‚ ‰d d¦  «        t          d	z  dz
  t          dz   d
fhk    sJ ‚‰                     t          d	t          di¦  «        dhk    sJ ‚ ‰d	d¦  «        dhk    sJ ‚‰                     t          dt          di¦  «        dhk    sJ ‚ ‰dd¦  «        dh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          t          gt          t          g¦  «        } |                      t          dt          z  f¦  «         |                      t           dt          z  f¦  «          | dd¦  «        dhk    sJ ‚d S )NrO   c                  ó:   •— ‰                       t          f¦  «        S rF   )ÚaddrN   )rc  s   €rI   rP   z/test_diophantine_solution_set.<locals>.<lambda>ê  s   ø€ ˜rŸvšv¥q d™|œ|€ rK   c                  ó.   •— ‰                       d¦  «        S )Nr\   ©rw  )rd  s   €rI   rP   z/test_diophantine_solution_set.<locals>.<lambda>ð  s   ø€ ˜rŸvšv d™|œ|€ rK   )rS   rj   r{   c                  ó.   •— ‰                       ‰¦  «        S rF   )Úupdate)rc  rd  s   €€rI   rP   z/test_diophantine_solution_set.<locals>.<lambda>õ  s   ø€ ˜rŸyšy¨™}œ}€ rK   rS   rj   r[   rZ   r   r‚   )rX  r{   rZ   r}   rÂ   r„   )r‡   r�   rZ   )é   r‚   rZ   c                  ó0   •— ‰                       d¬¦  «        S )NrZ   )rN   ©r	  ©Ús3s   €rI   rP   z/test_diophantine_solution_set.<locals>.<lambda>  s   ø€ ˜rŸwšw¨˜w™|œ|€ rK   c                  ó2   •— ‰                       ddd¦  «        S ©NrZ   r[   rS   r~  r  s   €rI   rP   z/test_diophantine_solution_set.<locals>.<lambda>	  s   ø€ ˜rŸwšw q¨!¨QÑ/Ô/€ rK   c                  ó.   •— ‰                       d¦  «        S )NrO   ry  r  s   €rI   rP   z/test_diophantine_solution_set.<locals>.<lambda>
  s   ø€ ˜rŸvšv b™zœz€ rK   c                  ó.   •— ‰                       d¦  «        S )N)rZ   r[   rS   rj   ry  r  s   €rI   rP   z/test_diophantine_solution_set.<locals>.<lambda>  s   ø€ ˜rŸvšv lÑ3Ô3€ rK   c                  ó.   •— ‰                       d¦  «        S )NrÛ   ry  r  s   €rI   rP   z/test_diophantine_solution_set.<locals>.<lambda>  s   ø€ ˜rŸvšv f™~œ~€ rK   c                  ó   •—  ‰ ddd¦  «        S r‚  rO   r  s   €rI   rP   z/test_diophantine_solution_set.<locals>.<lambda>  s   ø€ ˜r˜r ! Q¨™{œ{€ rK   c                  ó   •—  ‰ d¬¦  «        S )NrZ   r  rO   r  s   €rI   rP   z/test_diophantine_solution_set.<locals>.<lambda>  s   ø€ ˜b˜b 1˜g™gœg€ rK   r®   r|  r   r×   )r<   rW   r
   r}  r@   rw   rË  Údict_iteratorrN   rg   r©   r  rw  r{  rh   r¡  r	  rT   )Ús4rc  rd  r€  s    @@@rI   Útest_diophantine_solution_setrŠ  å  s8  øøø€ Ý	  BÑ	'Ô	'€BÝˆr‰7Œ7•c‘e”eÒÐÐÐØŒ:˜ÒÐÐÐØŒ=˜BÒÐÐÐÝ
�:Ð+Ð+Ð+Ð+Ñ,Ô,Ð,Ý�× Ò Ñ"Ô"Ñ#Ô# rÒ)Ð)Ð)Ð)å	¥¥A ­­A¨Ñ	/Ô	/€BØŒ:�!�Q˜ÒÐÐÐØŒ=�Q¥˜FÒ"Ð"Ð"Ð"Ý
�:Ð+Ð+Ð+Ð+Ñ,Ô,Ð,Ø‡F‚Fˆ6�N„N€NÝˆr‰7Œ7�v�hÒÐÐÐØ‡I‚Iˆf�r�1�gÑÔÐÝˆr‰7Œ7�v ¥A˜wÐ'Ò'Ð'Ð'Ð'Ý
�:Ð,Ð,Ð,Ð,Ð,Ñ-Ô-Ð-Ý�× Ò Ñ"Ô"Ñ#Ô#­¨Bµµ1¨½¸1½aÀ°|Ð'DÒDÐDÐDÐDå	¥¥A¥q 	­A­q¨6Ñ	2Ô	2€BÝˆrŒ}ÑÔ Ò"Ð"Ð"Ð"Ø‡F‚F�Aˆq‰D•1‰H•a�!‘e˜QÐÑ Ô Ð Ýˆr‰7Œ7�˜1™�q™¥!¥a¡%¨Ð+Ð,Ò,Ð,Ð,Ð,Ø�7Š7•1�a‰=Œ=�a !™e Q­¡U¨AÐ.Ð/Ò/Ð/Ð/Ð/Øˆ2ˆa‰5Œ5•a˜!‘e˜Q¥™U AÐ&Ð'Ò'Ð'Ð'Ð'Ø�7Š7•A�q�!˜Q�<Ñ Ô  [ MÒ1Ð1Ð1Ð1Øˆ2ˆa�‰8Œ8˜�}Ò$Ð$Ð$Ð$Ø�7Š7•A�q�6‰?Œ?¥ B¡¨­A©¨qÐ1Ð2Ò2Ð2Ð2Ð2Øˆ2ˆa‰5Œ5•a˜"‘f˜a¥!™e QÐ'Ð(Ò(Ð(Ð(Ð(Ø�7Š7•1�b‰>Œ>�q !™t a™x­¨Q©°Ð2Ð3Ò3Ð3Ð3Ð3Øˆ2ˆd�B‰<Œ<�Q ™T A™X¥q¨1¡u¨aÐ0Ð1Ò1Ð1Ð1Ð1Ø�7Š7•A�q�!˜Q�<Ñ Ô  [ MÒ1Ð1Ð1Ð1Øˆ2ˆa�‰8Œ8˜�}Ò$Ð$Ð$Ð$Ø�7Š7•A�q�!˜R�=Ñ!Ô! j \Ò1Ð1Ð1Ð1Øˆ2ˆa�‰9Œ9˜˜Ò$Ð$Ð$Ð$Ý
�:Ð+Ð+Ð+Ð+Ñ,Ô,Ð,Ý
�:Ð/Ð/Ð/Ð/Ñ0Ô0Ð0Ý
�:Ð)Ð)Ð)Ð)Ñ*Ô*Ð*Ý
�:Ð3Ð3Ð3Ð3Ñ4Ô4Ð4Ý
�:Ð-Ð-Ð-Ð-Ñ.Ô.Ð.Ý
�:Ð*Ð*Ð*Ð*Ñ+Ô+Ð+Ý
�9�o�o�o�oÑ&Ô&Ð&å	¥¥A ­­A¨Ñ	/Ô	/€BØ‡F‚F�Aˆr•!‰tˆ9ÑÔÐØ‡F‚F�QˆB�•1‘ˆ:ÑÔÐØˆ2ˆa�‰8Œ8˜�xÒÐÐÐÐÐrK   c                  ó  — dt           z  t          z  dt          dz  z  z   } t          | ¦  «                             t          t
          g¬¦  «        }|t          dt          z  ft          dt          z  fhk    sJ ‚ |dd¦  «        dhk    sJ ‚d S )	NißÿÿÿrS   r[   r|  r®   iêÿÿÿr   r×   )rN   rg   r>   rÇ   r©   r  )rH   r  s     rI   Ú test_quadratic_parameter_passingrŒ    s‡   € Ø	�Q‰�q‰�1•Q˜‘T‘6Ñ	€BÝ˜rÑ"Ô"×(Ò(µQ½°FÐ(Ñ;Ô;€Hà�˜B�q™D˜	¥A s­1¡u :Ð.Ò.Ð.Ð.Ð.Øˆ8�A�q‰>Œ>˜f˜XÒ%Ð%Ð%Ð%Ð%Ð%rK   N)¡Úsympy.core.addr   Úsympy.core.mulr   Úsympy.core.numbersr   r   r   Úsympy.core.relationalr   Úsympy.core.singletonr	   Úsympy.core.symbolr
   Úsympy.matrices.denser   Úsympy.ntheory.factor_r   Úsympy.simplify.powsimpr   Úsympy.core.functionr   Úsympy.core.sortingr   r   Ú(sympy.functions.elementary.trigonometricr   Úsympy.solvers.diophantiner   Ú%sympy.solvers.diophantine.diophantiner   r   r   r   r   r   r   r   r   r   r   r   r   r    r!   r"   r#   r$   r%   r&   r'   r(   r)   r*   r+   r,   r-   r.   r/   r0   r1   r2   r3   r4   r5   r6   r7   r8   r9   r:   r;   r<   r=   r>   Úsympy.testing.pytestr?   r@   rA   Úsympy.utilities.iterablesrB   r'  r(  ry  rz  r;  r<  rN   rg   rh   rf   r©   r  rÏ   r  r  r3  r�   rŽ   r�   Út_3Út_4Út_5Út_6r(  r)  r*  rD   rJ   rU   rX   r_   ry   r�   rª   r·   rÀ   rÅ   rÈ   rÑ   rÓ   rÕ   rù   rþ   r   r  r  r  r)  r0  r4  r7  r=  r@  rD  rG  rN  rv  r  r¤  rÇ  rÏ  rÕ  rÚ  rè  rú  r  r¿   r+  r0  r7  r9  r<  rA  re  rg  rk  rn  rq  rt  rŠ  rŒ  rO   rK   rI   ú<module>r¡     s-  ðØ Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø 1Ð 1Ð 1Ð 1Ð 1Ð 1Ð 1Ð 1Ð 1Ð 1Ø $Ð $Ð $Ð $Ð $Ð $Ø "Ð "Ð "Ð "Ð "Ð "Ø %Ð %Ð %Ð %Ð %Ð %Ø 'Ð 'Ð 'Ð 'Ð 'Ð 'Ø +Ð +Ð +Ð +Ð +Ð +Ø *Ð *Ð *Ð *Ð *Ð *Ø (Ð (Ð (Ð (Ð (Ð (Ø 8Ð 8Ð 8Ð 8Ð 8Ð 8Ð 8Ð 8Ø 8Ð 8Ð 8Ð 8Ð 8Ð 8Ø 1Ð 1Ð 1Ð 1Ð 1Ð 1ðð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð 5Ð 4Ð 4Ð 4Ð 4Ð 4Ð 4Ð 4Ð 4Ð 4ðð ð ð ð ð ð 29°Ø4¸dð2Dñ 2Dô 2DÑ .€€1€aˆˆAˆq�!�Q˜˜1˜a  A q¨!¨Qà$+ G¨F¸DÐ$AÑ$AÔ$AÑ !€€Sˆ#ˆs�C˜˜cØˆW�V TÐ*Ñ*Ô*�
€€BˆØ€WˆT˜4Ð Ñ Ô €ð+ð +ð +ð5ð 5ð 5ð
&ð &ð &ð7ð 7ð 7ð
Xð Xð Xð2/ð /ð /ð<ð ð ð0ð 0ð 0ð-ð -ð -ð=ð =ð =ðNð Nð NðAð Að AðAð Að Að ðBð Bñ „ðBðH#ð H#ð H#ðV&ð &ð &ð ð  ð  ðð ð ð<Uð Uð UðOð Oð Oð"ð "ð "ð;ð ;ð ;ð
ð 
ð 
ð
6ð 
6ð 
6ð!Eð !Eð !EðH.ð .ð .ð;ð ;ð ;ð5ð 5ð 5ð-ð -ð -ðV5ð V5ð V5ðrDð Dð Dð<ð <ð <ð@(ð (ð (ð
Gð 
Gð 
Gð5ð 5ð 5ð0ð 0ð 0ð&.ð .ð .ð$*:ð *:ð *:ðZRð Rð Rðð ð ð.,Tð ,Tð ,Tð^	<ð 	<ð 	<ð ð
ð 
ñ „ð
ð;ð ;ð ;ð
ð ð ð	Nð 	Nð 	Nð64ð 64ð 64ðr1ð 1ð 1ðNð Nð Nð ð<ð <ñ „ð<ð
<ð <ð <ð7ð 7ð 7ð8. ð . ð . ðb&ð &ð &ð &ð &rK   