+
    iA                         ^ RI Ht ^ RIHt ^ RIHt ^ RIHtHt ^ RI	H
t
 ^ RIHtHtHtHtHtHtHtHtHtHtHtHtHtHtHtHtHt ^ RIHtHtH t H!t!H"t"H#t#H$t$H%t%H&t&H't'H(t( ^ RI)H*t* ^ R	I+H,t, ^ R
I-H.t.H/t/ R t0R t1R t2R# )    )defaultdict)Tuple)S)DummySymbol)totient)n_orderis_primitive_rootis_quad_residuelegendre_symboljacobi_symbol
primerangesqrt_modprimitive_rootquadratic_residuesis_nthpow_residuenthroot_modsqrt_mod_itermobiusdiscrete_logquadratic_congruencepolynomial_congruencesieve)_primitive_root_prime_iter _primitive_root_prime_power_iter!_primitive_root_prime_power2_iter_nthroot_mod_prime_power_discrete_log_trial_mul_discrete_log_shanks_steps_discrete_log_pollard_rho_discrete_log_index_calculus_discrete_log_pohlig_hellman_binomial_mod_prime_powerbinomial_mod)ZZ)raises)randintchoicec                  |1  aa \        ^^4      ^8X  g   Q h\        ^^4       U u. uF  p \        V ^4      NK  	  up . RO8X  g   Q h\        ^^4      ^8X  g   Q h\        ^^4      \        ^^4      8X  g   Q h\        ^e^w4      ^8X  g   Q h\        ^^
^2,          ^,           ^,          4      R8X  g   Q h\        \        R 4       \	        ^^4      RJ g   Q h\	        ^^4      RJ g   Q h\	        ^^4      RJ g   Q h\	        ^^4      \	        ^^4      8X  g   Q h\        \        R 4       \        ^^d4       F  p\        \        V4      4      pV^ ,          \        V4      8X  g   Q hV F  p\        W14      V^,
          8X  d   K  Q h	  \        V4      \        \        V4      4      8X  g   Q h\        ^^4       Fi  p\        \        W4      4      p\        \        W4      4      p\        V4      \        V4      u;8X  d#   \        \        W,          4      4      8X  d   Kf  Q h Q h	  K  	  \        ^a4      ^8X  g   Q h\        \        ^aR4      ^a4      \        ^a4      8X  g   Q h\        R4      ^8X  g   Q h\        \        RR4      R4      \        R4      8X  g   Q h\        R4      ^8X  g   Q h\        \        RR4      R4      \        R4      8X  g   Q h\        R4      ^
8X  g   Q h\        \        RR4      R4      \        R4      8X  g   Q h\        ^R4      ^8X  g   Q h\        \        ^RR4      ^R4      \        ^R4      8X  g   Q h^
^2,          ^,           p\        V4      ^8X  g   Q h\        \        VR4      V4      \        V4      8X  g   Q h\        ^V,          4      ^8X  g   Q h\        \        ^V,          R4      ^V,          4      \        ^V,          4      8X  g   Q h\        V^,          4      ^8X  g   Q h\        \        V^,          R4      V^,          4      \        V^,          4      8X  g   Q h\        ^,4      f   \        ^,R4      e   Q h\        ^4      f   \        ^R4      e   Q h\        \        R 4       \        ^^4      RJ g   Q h\        ^
^4      RJ g   Q h\        R	^4      \        ^^4      8X  g   Q h\        ^^4      RJ g   Q h\        ^ ^4      RJ g   Q h\        ^^4      RJ g   Q h\        ^ ^4      \        ^^4      u;8X  d   RJ g   Q h Q h\        ^^4      RJ g   Q h\        ^^4      RJ g   Q h\        R
R4      RJ g   Q h\        ^4       Uu. uF  p\        V^4      '       g   K  VNK  	  up. RO8X  g   Q h\        \        R 4       \        \        R 4       \        \         P"                  4      ^ .8X  g   Q h\        ^4      ^ .8X  g   Q h\        ^4      . RO8X  g   Q h\        ^4      . RO8X  g   Q h\        ^^4       Uu. uF  p\        \        V4      4      NK  	  up. RO8X  g   Q h\        \%        ^^4      4      ^ .8X  g   Q h\'        ^^4      ^8X  g   Q h\'        ^R4      ^8X  g   Q h\'        ^^4      ^8X  g   Q h\'        RR4      R8X  g   Q h\'        ^C^e4      R8X  g   Q h\'        RR4      R8X  g   Q h\        ^^d4       F  p\)        \        4      p	\        V4       F&  oV	\+        S^V4      ,          P-                  S4       K(  	  \        ^V4       FR  o\%        SV4      p
\'        SVR4      pV'       d   \/        V4      pV	S,          V8X  g   Q hKA  V	S,          '       g   KR  Q h	  K  	  \'        ^	^R4      . RO8X  g   Q h\'        ^	^QR4      . RO8X  g   Q h\'        ^	^R4      . RO8X  g   Q h\'        ^Q^QR4      . RO8X  g   Q h\'        ^Q^R4      . RO8X  g   Q h\'        ^QRR4      . RO8X  g   Q h\'        ^QRR4      . RO8X  g   Q hR F"  w  r\+        \'        W4      ^V4      V 8X  d   K"  Q h	  ^Fp^^V,          ,          ^V,          ,          R^V^,           ,          ,          ^V^,           ,          ,          r\%        W4      p
\        ^
4       F   o\+        \1        V
4      ^V4      V 8X  d   K   Q h	  ^^V,          ,          ^V,          ,          R^V^,           ,          ,          ^V^,           ,          ,          r\%        W4      p
\        ^4       F   o\+        \1        V
4      ^V4      V 8X  d   K   Q h	  ^dp^^V,          ,          ^V,          ,          R^V^,           ,          ,          ^V^,           ,          ,          r\%        W4      p
\        ^4       F   o\+        \1        V
4      ^V4      V 8X  d   K   Q h	  \3        \1        \%        ^	^4      4      4      \4        J g   Q h\3        \1        \%        ^	^\6        4      4      4      \3        \7        ^4      4      J g   Q h\3        \1        \%        ^^\6        4      4      4      \3        \7        ^4      4      J g   Q h\9        ^^^4      '       g   Q h\9        ^^ ^4      RJ g   Q h\9        ^^ ^4      RJ g   Q h\9        ^^ ^4      RJ g   Q h\9        ^ ^^4      RJ g   Q h\9        ^^^4      RJ g   Q h\9        ^^^	4      RJ g   Q h\9        ^^^4      RJ g   Q h\9        ^^^4      RJ g   Q h\9        ^^
^4      RJ g   Q h\9        ^^
^4      RJ g   Q h\9        ^^
^04      RJ g   Q h\9        ^^
^(4      RJ g   Q h\9        ^^
^4      RJ g   Q h\9        ^^
^4      RJ g   Q h\9        ^^
^4      RJ g   Q h\9        ^^
^04      RJ g   Q h\9        ^Q^R4      RJ g   Q h\9        ^^R4      RJ g   Q h\9        ^^R4      RJ g   Q h\9        R^R4      RJ g   Q h\9        R^R4      RJ g   Q h\9        R^	R4      RJ g   Q h\        R4       Uu0 uF  p\+        V^8R4      kK  	  upo\        R4       U u0 uF  p \9        V ^8R4      '       g   K  V kK  	  up S8X  g   Q h\        R4       Uu0 uF  p\+        VRR4      kK  	  upo\        R4       U u0 uF  p \9        V RR4      '       g   K  V kK  	  up S8X  g   Q h\        R4       Uu0 uF  p\+        V^R 4      kK  	  upoS U u. uF  p \9        V ^R 4      NK  	  up '       g   Q h\        R4       Uu0 uF  p\+        V^R!4      kK  	  upoS U u. uF  p \9        V ^R!4      NK  	  up '       g   Q h\9        R"^R#4      '       g   Q h\9        ^	^^$4      '       g   Q h\9        ^ ^
^)4      '       g   Q h\9        ^^^@4      '       g   Q h\9        ^^^)4      '       g   Q h\9        ^^^4      '       d   Q h\9        R$^R%4      '       g   Q h\9        \;        RR&7      ^,           ^^4      R8X  g   Q h\        ^^
4       EF;  p\        ^4       EF'  p \        ^^4       EF  p\=        WV^4      p\?        V\        4      '       g   Q h\        V4      ^ 8X  dT   \        V4       F  p\+        WV4      W,          8w  d   K  Q h	  \        ^^
4       F  p\=        WW4      . 8X  d   K  Q h	  K  \        V4       F+  p\+        WV4      W,          8H  pVW9   ,          '       g   K+  Q h	  \        ^^
4       F<  p\=        WW4      pV'       g    K  V F  p\+        WW,          4      V 8X  d   K  Q h	  K>  	  EK  	  EK*  	  EK>  	  \A        \;        RR'7      ^^4      ^8X  g   Q h\A        ^^^J4      ^-8X  g   Q h\A        R(^R)4      ^,8X  g   Q hR F(  w  p pp\A        V VV4      p\+        VVV4      V 8X  d   K(  Q h	  \A        ^^^m4      e   Q h\A        ^^^$R4      ^^.8X  g   Q h\A        ^	^^$R4      . RO8X  g   Q h\A        ^^R*4      e   Q h\A        R^RR4      R+R,.8X  g   Q h\A        ^ ^^%R4      ^ .8X  g   Q h\A        ^ ^^dR4      . RO8X  g   Q h\A        ^^^R4      ^^.8X  g   Q h\A        ^^^yR4      ^^f.8X  g   Q h\A        ^^^R4      . 8X  g   Q h\        ^^4       F  p\        V4       F  p \        ^V4       F  p\A        WVR4      p\?        V\        4      '       g   Q h\        V4       F%  p\+        WV4      V 8H  pVW9   ,          '       g   K%  Q h	  \A        WVR4      pVf   V. 8X  g   Q hKx  VV9   d   K  Q h	  K  	  K  	  \C        R-RR.7      o\C        R/RR07      o\E        R1^^4      ^8X  g   Q h\E        R2R^4      ^8X  g   Q h\E        R3^^Q,          ^4      ^Q8X  g   Q h\E        ^^^{,          ^4      ^{8X  g   Q h\G        R4^1^4      ^8X  g   Q h\G        R5R^4      ^8X  g   Q h\G        R6^^G,          ^4      ^G8X  g   Q h\G        R7^R8,          ^4      R88X  g   Q h\I        R9^@^^ R:7      ^8X  g   Q h\I        R;R^^ R:7      ^8X  g   Q h\I        R<R^^ R:7      ^(8X  g   Q h\I        R=^R,          ^^ R:7      R8X  g   Q h\        \        R> 4       \        \        R? 4       \K        R@RA^RB4      ^8X  g   Q h\K        RCRD^RE4      RF8X  g   Q h\K        RGRH^RI4      RJ8X  g   Q h\K        RKRL^RM4      RN8X  g   Q h\K        RORPRQRR4      RS8X  g   Q h\M        RTR^4      ^	8X  g   Q h\M        RUR^4      ^8X  g   Q h\M        RV^^b,          ^4      ^b8X  g   Q h\M        RW^RX,          ^4      RX8X  g   Q h\O        ^^ ^4      ^ 8X  g   Q h\        \        RY 4       \        \        RZ 4       \O        R1R^4      ^	8X  g   Q h\O        R7R^4      ^38X  g   Q h\O        RV^^,          ^4      ^8X  g   Q h\O        R[^R\,          ^4      R\8X  g   Q h\O        R]R^^4      R_8X  g   Q h\O        R`RaRb4      Rc8X  g   Q hRp\O        V!  Rd8X  g   Q h\O        \Q        V!  !  Rd8X  g   Q h\S        Re^U^}Rf4      . RO8X  g   Q h\S        ^^^^4      ^^.8X  g   Q h\S        ^x^P^Rg4      . 8X  g   Q h\S        ^^^^4      ^.8X  g   Q h\S        ^^^^4      ^
^.8X  g   Q h\S        ^^RhRi4      ^Rj.8X  g   Q h\S        RkRbRlRm4      RnRo.8X  g   Q h\S        ^A^y^HRp4      ^^.8X  g   Q h\S        ^^
^^4      ^ .8X  g   Q h\S        ^
^^^4      ^.8X  g   Q h\S        ^
^^^4      ^ ^.8X  g   Q h\S        RR^R4      RqRr.8X  g   Q h\U        ^S^,          ,          ^
S^,          ,          ,           ^S^,          ,          ,           S^,          ,           S,           ^,           Rs4      . RO8X  g   Q h\U        S^,          ^
S^,          ,          ,
          ^S,          ,           ^R,
          Rt4      Ru.8X  g   Q h\U        S^,          S,           ^/,           Rv4      RwRx.8X  g   Q h\U        ^
S^,          ,          ^S,          ,           ^,           ^4      ^ ^.8X  g   Q h\U        S^,          ^,           ^4      ^.8X  g   Q h\U        ^AS^,          ,          ^yS,          ,           ^H,           Rp4      ^^.8X  g   Q h\U        S^,          ^,
          ^4      ^^.8X  g   Q h\U        ^#S^,          ,          ^S^,          ,          ,
          RyS,          ,
          Rz,           R{4      . RO8X  g   Q h\U        S^,          ^	,
          ^$4      . RO8X  g   Q h\U        S^,          ^S^,          ,          ,
          ^#,
          R|4      R}.8X  g   Q h\        \        V3R~ l4       \        \        VV3R l4       \        \        V3R l4       \W        R^^
4      ^ 8X  g   Q h\W        ^R^
4      ^ 8X  g   Q h\        \        R 4       \W        ^3^
^
4      ^ 8X  g   Q h\W        RRgR4      Ry8X  g   Q h\W        RR^4      ^ 8X  g   Q h\W        RRR4      R8X  g   Q hR# u up i u upi u upi u upi u up i u upi u up i u upi u up i u upi u up i )   l   zX    4dCx ^y2V?WY|gOs&YR5I c                      \        ^^	4      # )   )r	        ^/var/www/html/photoedit/myenv/lib/python3.14/site-packages/sympy/ntheory/tests/test_residue.py<lambda>test_residue.<locals>.<lambda>   s
    wq!}r.   Fc                      \        ^^4      # )   )r
   r-   r.   r/   r0   r1   #   s    0A6r.   i'  Nc                      \        R4      # )r3   )r   r-   r.   r/   r0   r1   D   s	    ~b1r.   TiL0  l    $O l    $U c                      \        R ^4      # )g?r   r-   r.   r/   r0   r1   R   s    sA6r.   c                      \        ^^ 4      # )r*   r7   r-   r.   r/   r0   r1   S   s    q!4r.   iY  i  i  i M  i  i  i i  iVU io  i  i(j ij  i   i        i l   pLX i  i  ic!  i'  )even)odd	  g
  ih1 i  iF  x)positivei)integeriK  i  i  i iSW ih i|% iA  i[ rseedi_] iU0i[vc                       \        ^^^^ R7      # )   rD   r    r-   r.   r/   r0   r1     s    8Q!Lr.   c                       \        ^R^^ R7      # )   rD     rH   r-   r.   r/   r0   r1     s    8dAQOr.   i  i  i  i'	 i"U  i i	 iO("8i6&i'i%l   4Ml   \^;l   C&l   +q  l   ;, l   fI	 l   8( i3u&ib2#ii8ii i  c                      \        R^^4      # )   r   r-   r.   r/   r0   r1         |B15r.   c                      \        ^
^^4      # )
   rO   r-   r.   r/   r0   r1     rP   r.   l   I\iD  l   @{t{E l   v
5 l   L,@l   n-{anZ
.*/`y_{3KC\Z/cSIk7l<l   I]M* u2,-
rMFy:T C;@[	p;,U i@ l   ,Ti:< )VEaRgiQ|/wC~V6ePj6]Um i  i  i@  i  i,  i  i  i i%q l   Xk;H]) l   K+\1 l   'ff i  l   5Ul   =\Eti i3  iOv  ia	  i  iO  i7  i	  iC   i  c                  *   < \        S S ,          R 4      # rS   r   r@   s   r/   r0   r1   3      4QT4@r.   c                  *   < \        SS ,          R 4      # rU   rV   )rB   r@   s   r/   r0   r1   4  rX   r.   c                  F   < \        R S ^,          ,          ^,           ^d4      # )g?rV   rW   s   r/   r0   r1   5  s    4SAX\3Gr.   c                      \        ^^R4      # )r*   )r$   r-   r.   r/   r0   r1   9  s    |Aq"5r.   i[l   ,[> )   r3   r,   r3   r,   r*   i$  i)a)r   r]   r*   rM         	   rG   )r   r]   rM   r`   )r   r]   r3   rM   r`   rR      )r]   r*   r*   r*   r3   rM   rM   r3   rM   r,   r,   rM   r^   r_   r,   rM   r`   r_   rR   i)r3   r,   ra            )r3   rd      3   9   N   )r3   rh   T            )	r   r`         $   -   6   ?   H   )r`   rm   ro   rp   rr   rs   Z   c   u   ~                           i  )r`   rs   rt   ry   rz   r      i;  r9   i  i      i.  i@  i  i    rK   )r`   r   r   r   r   r   i  i  i  i  i  i  i  i  i  i  i  i  ))  l     @B )r   l      ! )i   i   )l   )1mQ l   K'R )l    )bm.Ql    ,zhi	=  ))i  r*   i	 )+   r3   m   )r>   rG   r?   )ii  ic)i  r^   r?   )iS  r,   r?   )i  ra   r?   )i=o  r`   i?  )r3   r`   rb   rc   rn   !   )
r   rR      re   (   2   <   F   P   rt   l   ,"$. l   =HcEi   l        l   +m l   #LWY
1PT] i   l   [+c=F^ 9 )i  i  iG  )i'  ig  i  i  i'  l          l    l    )iG_ i7 i ioj i
 i i~ i )iS i5 i i+= r\   l     NZol   NZol    J)l   *(	 ),r	   ranger&   
ValueErrorr
   r   listr   minlenr   r   r   r   r   r   r   Oner   r   r   powappendsortednexttypeintr%   r   r   r   
isinstancer   r   r   r   r    r!   r"   r   r   r   r   r$   )apligeli_power	li_power2jrB   ditvnansbkpredqrans2argsr@   s           `            @r/   test_residuer      s4   1b>R#(A;/;aGAqM;/  1b>R2r?gan,,,3!!!2Bq()  .S  S  S  S
:,-Q"e+++Q"e+++R$---R$(9"b(AAAA
:673,Q/0!uBA1=AE))) 2w''!*----q!A<QBCH>qDEIx=C	NLggadm6LLLLLL    """">"e,b1WR[@@@% A%%%>%/775>III% A%%%>%/775>III (#r)))>(E2H=ARRRR"""">"e,b1WR[@@@
BA!""">!U+Q/71:===!A#"$$$>!A#u-qs3wqs|CCC!Q$2%%%>!Q$.15AFFF&!)nVU.K.SSS"%.U*C*KKK
:121a E)))2r"d***5#&/+s*KKKK3$,,,1a D(((1a D(((1a OAq$9ATAAAAA1a D(((1b!U***;4<<<Ry;y!OAr$:AAy;$% % %
:67
:45aee$+++a QC'''b!\111b!%<<<<05a=1C"1%&=@A A A a#$+++Ar?aAsq   Ar?b   C$$$B$$$D&!T)))1c]qAc!QlO""1% q!Aq!$BAt$A1Itqy yQ44x 	  Ar4 $::::Ar4 $;;;;AtT"&@@@@Bd#'IIIIBd# (9 9 9 9Bd# (> > > >Bd# (G G G G. 8A>1a(A---.
 	A19QT>4AaC=QqS1q	q	B2Y48Q"a''' 19QT>4AaC=QqS1q	q	B1X48Q"a''' A19QT>4AaC=QqS1q	q	B1X48Q"a'''  ]1b)*+s222]1b"-./41;>>>]1a,-.$r!u+===Q1%%%% Q1%...Q1%---Q1%---Q1%---Q1%---Q1%...Q2&$...RR(D000QB'5000QB'4///QB'5000QB'4///QB'5000QB'4///QB'5000QB'5000RC(E111S!T*d222S!W-666UAu-555UAt,444UAu-555#(;/;aQD	;/AT{E{!&72t&DAA{EJJJ%*4[1[#ad
[1AT{F{!&73&EAA{F!KKK&+Dk2k#aV
k2A789q!q"f-q9999+0;7;a#a[
!;7A<=>Aqq"k2A>>>>S!T****QB''''RR((((Q2&&&&RB'''' Aq))))T2u----U-11a8D@@@2qA1a[.qQ:!#t,,,,s8q="1X"1|qu444 &"1b\7aCrIII * #1X"1|qu4#'18#4#455 & #1b\6qQB"!!$A#&qad#3q#88#8 "%	 * !  * u1-222r2r"b(((tR&",,,/1a 1a 1a|q   	/
 r1c"***r1b$'Ar7222q"b$'+AAAAq!W%---ua-%???q"b$'A3...q!S$'+RRRRq!R&1b'111q!S$'B9444q!Q%+++1b\qA1a[!!40!#t,,,,qAqQ<1,D#qx0011 " #1E2<"9$93;&; !   	sT"AsD!A"3a0A555"3q1R777"32q1R777"3C4;;;%fdA6!;;;%feQ72===%gq"ua8B>>>%gq#vq9S@@@$WdAQ?1DDD$WeQa@BFFF$XuaqARGGG$Xq#vqBcIII
:LM
:OP'S!S9S@@@'q&AUJJJ'	8Q	JiWWW'lA|TXdddd'[+yY]ffff'%<AAA'&"=CCC'"b&"=CCC'"c'2>#EEE1a A%%%
:56
:56T1%****b000"c'2.#555afa0C777;~MMM  D D  $NN N N D#%%%&#---Rd37RRRR1a,B777Rc2b888B1-!4442q"-"b999S#s3SzAAA9MNSgi}R~~~~CS1c3Z???2r1-!444BA.1#555BA.1a&888!U;~?^^^^ 1a4"QT'!1AadF!:QT!AA!E!IST T T !A1a4"Q$!6!;UCwNNN AB5#tDDD AqD2a4"!4a8QFBBB A2.1#555 AqD3q52!5s;SzIII A2.1b'999 AqD1QT6!1CE!9D!@&I N        BB/3IIII A!Q$!3T:tfDDD
:@A
:@A
:GHAr"a'''2r"a'''
:56B#q(((sD)S000
Iq1Q6667:EEEM	 0r < >h 	0E1F297>sa   AbAb1AbAb1AbAb1AbAb 4Ab%Ab%+Ab*Ab/6Ab4Ab9c                  N   R ^.^r!p \        ^V ^,           4       F2  pW V,
          ^,           ,          pW#,          pVP                  V4       K4  	  ^dp\        V4       FB  p\        ^ V 4      \        ^^4      rv\        W^V4      W,          ^V,          ,          8X  d   KB  Q h	  \	        \
        P                  ! ^V ,          4      4      pR p	\        V	4       FK  p\        ^ V 4      \        V4      \        ^^
4      rzp\        WW4      W,          W,          ,          8X  d   KK  Q h	  R# )r;   N)r   r   r'   r#   r   r   r   r(   )r   	binomialsbinomialrB   trials_2_mpowerprimestrialsprimes              r/   test_binomial_p_powr   @  s    !A3(A1a!e_EAI"  H8_1a='!R.5(q%8IL1e8<SSSS 
 %""1Q3'(FF6]!!Q-B%(u<	u|@[[[[ r.   c                     ^ RI Hp  V ! 4       ;_uu_ 4        \        ^4      R8X  g   Q h RRR4       V ! 4       ;_uu_ 4        \        ^^4      R8X  g   Q h RRR4       V ! 4       ;_uu_ 4        \	        ^^4      R8X  g   Q h RRR4       R#   + '       g   i     Lj; i  + '       g   i     LQ; i  + '       g   i     R# ; i)r   warns_deprecated_sympyNr\   )sympy.testing.pytestr   r   r   r   r   s    r/   *test_deprecated_ntheory_symbolic_functionsr   U  s    ;		!	!ayB 
"		!	!q!$*** 
"		!	!Q"b((( 
"	!	 
"	!	!	!	!	!	!s#   BB-B2B	B/	2C	N)3collectionsr   sympy.core.containersr   sympy.core.singletonr   sympy.core.symbolr   r   %sympy.functions.combinatorial.numbersr   sympy.ntheoryr	   r
   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   sympy.ntheory.residue_ntheoryr   r   r   r   r   r   r    r!   r"   r#   r$   sympy.polys.domainsr%   r   r&   sympy.core.randomr'   r(   r   r   r   r-   r.   r/   <module>r      s_    # ' " - 9! ! ! ! !
, , , ,
 # ' -hFV	\*)r.   