+
    ‹°³j.U  ã                  óÌ  € R t ^ RIHt R.t^ RIHt ^ RIHt ^ RIH	t	 ^ RI
HtHtHt ^ RIHtHtHt ^ RIHtHt ^ R	It^ R	It ! R
 R4      t ! R R]4      t ! R R]4      t ! R R]4      t] ! R R]4      4       t ! R R]]R7      t ! R R]]R7      t  ! R R]]R7      t! ! R R]]R7      t" ! R R]]R7      t# ! R R]]R7      t$ ! R  R!]]R7      t% ! R" R#]]R7      t& ! R$ R%]]R7      t' ! R& R']]R7      t( ! R( R)]]R7      t) ! R* R+]]R7      t* ! R, R-]]R7      t+ ! R. R/]]R7      t, ! R0 R1]]R7      t- ! R2 R3]]]R7      t. ! R4 R5]]]R7      t/ ! R6 R7]]]R7      t0 ! R8 R9]]]R7      t1 ! R: R;]]]R7      t2 ! R< R=]]]R7      t3 ! R> R?]]R7      t4 ! R@ RA]]]R7      t5 ! RB RC]]R7      t6 ! RD RE]]R7      t7RIRF lt8RG t9RH t:]Pw                  4        R	# )Jz>Options manager for :class:`~.Poly` and public API functions. )ÚannotationsÚOptions)ÚBasic)ÚExpr)Úsympify)ÚGeneratorsErrorÚOptionErrorÚ	FlagError)Únumbered_symbolsÚtopological_sortÚpublic)Úhas_dupsÚis_sequenceNc                  ó–   € ] tR t^t$ RtRtR]R&   Rt. tR]R&   . t	R]R&   . t
R]R	&   . tR]R
&   ]R 4       t]R 4       t]R 4       tRtR# )ÚOptionz%Base class for all kinds of options. Nz
str | NoneÚoptionFú	list[str]ÚrequiresÚexcludesÚafterÚbeforec                	ó   € R # ©N© ©Úclss   &ÚX/home/luca/screen-checking/.venv/lib/python3.14/site-packages/sympy/polys/polyoptions.pyÚdefaultÚOption.default   ó   € áó    c                	ó   € R # r   r   )r   r   s   &&r   Ú
preprocessÚOption.preprocess#   r   r    c                	ó   € R # r   r   ©r   Úoptionss   &&r   ÚpostprocessÚOption.postprocess'   s   € ár    r   )Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__r   Ú__annotations__Úis_Flagr   r   r   r   Úclassmethodr   r"   r'   Ú__static_attributes__r   r    r   r   r      sv   ‡ Ù/à€FˆJÓà€Gà€HˆiÓØ€HˆiÓà€Eˆ9ÓØ€FˆIÓàñó ðð ñó ðð ñó ôr    r   c                  ó   € ] tR t^,tRtRtRtR# )ÚFlagz#Base class for all kinds of flags. Tr   N)r)   r*   r+   r,   r-   r/   r1   r   r    r   r3   r3   ,   s
   † Ù-à„Gr    r3   c                  ó*   € ] tR t^2tRt]R 4       tRtR# )ÚBooleanOptionzAAn option that must have a boolean value or equivalent assigned. c                	ó`   € VR9   d   \        V4      # \        RV P                  : RV: 24      h)TÚ'z*' must have a boolean value assigned, got )TF)Úboolr   r   )r   Úvalues   &&r   r"   ÚBooleanOption.preprocess5   s,   € à�MÔ!Ü˜“;ÐåÐSV×S]ÔS]Ò_dÐeÓfÐfr    r   N)r)   r*   r+   r,   r-   r0   r"   r1   r   r    r   r5   r5   2   s   † ÙKàñgó ôgr    r5   c                  ó    € ] tR t^=tRtR tRtR# )Ú
OptionTypez7Base type for all options that does registers options. c                	ó–   a € \         V 3R  l4       p\        \        S P                  V4       S \        P                  S P                  &   R# )c                ón   <€  V SP                   ,          #   \         d    SP                  4       u # i ; ir   )r   ÚKeyErrorr   )Úselfr   s   &€r   ÚgetterÚ#OptionType.__init__.<locals>.getterA   s2   ø€ ð%Ø˜CŸJ™JÕ'Ð'øÜô %Ø—{‘{“}Ò$ð%ús   ƒ –4³4N)ÚpropertyÚsetattrr   r   Ú__options__)r   ÚargsÚkwargsrA   s   f*, r   Ú__init__ÚOptionType.__init__@   s;   ø€ Ü	ô	%ó 
ð	%ô 	”˜Ÿ™ VÔ,Ø*-Œ×Ñ˜CŸJ™JÓ'r    r   N)r)   r*   r+   r,   r-   rH   r1   r   r    r   r<   r<   =   s
   † ÙAö	.r    r<   c                  óª   a € ] tR t^Lt$ RtRt/ tR]R&   R]R&   R]R&   RR	 lt]	R
 4       t
/ 3R ltV 3R lt]R 4       t]R 4       t]R 4       tRtV ;t# )r   a¶  
Options manager for polynomial manipulation module.

Examples
========

>>> from sympy.polys.polyoptions import Options
>>> from sympy.polys.polyoptions import build_options

>>> from sympy.abc import x, y, z

>>> Options((x, y, z), {'domain': 'ZZ'})
{'auto': False, 'domain': ZZ, 'gens': (x, y, z)}

>>> build_options((x, y, z), {'domain': 'ZZ'})
{'auto': False, 'domain': ZZ, 'gens': (x, y, z)}

**Options**

* Expand --- boolean option
* Gens --- option
* Wrt --- option
* Sort --- option
* Order --- option
* Field --- boolean option
* Greedy --- boolean option
* Domain --- option
* Split --- boolean option
* Gaussian --- boolean option
* Extension --- option
* Modulus --- option
* Symmetric --- boolean option
* Strict --- boolean option

**Flags**

* Auto --- boolean flag
* Frac --- boolean flag
* Formal --- boolean flag
* Polys --- boolean flag
* Include --- boolean flag
* All --- boolean flag
* Gen --- flag
* Series --- boolean flag

Nzdict[str, type[Option]]rE   ztuple[Expr, ...]Úgenszsympy.polys.domains.DomainÚdomainc           	     	ól  a aa€ \         P                  S 4       V'       d$   VP                  R R4      '       d   \        R4      hV'       d   \        V4      pWR &   VP	                  R/ 4      pVV V3R lpV! V4       \        V4       FM  pVS 9   d   WW K  S P                  4        F+  pS P                  V,          p	WyP                  9   g   K(  WW  KK  	  KO  	  V! V4       S P                  4        FŠ  pS P                  V,          p	V	P                   F*  p
S P                  V
4      e   K  \        RV: RV
: R24      h	  V	P                   F*  pS P                  V4      f   K  \        RV: RV: R24      h	  KŒ  	  S P                   F%  pS P                  V,          P                  S 4       K'  	  R# )	rK   z1both '*gens' and keyword argument 'gens' suppliedÚdefaultsc                óN  <€ V P                  4        Fn  w  r SP                  V,          p\	        T\
        4      '       d&   Se   TS9  d   S'       d   \        RT,          4      hTf   KZ  TP                  T4      ST&   Kp  	  R#   \         d    \        R T,          4      hi ; i)ú'%s' is not a valid optionNú('%s' flag is not allowed in this context)ÚitemsrE   r?   r   Ú
issubclassr3   r"   )rF   r   r9   r   Úflagsr@   Ústricts   &   €€€r   Úpreprocess_optionsÚ,Options.__init__.<locals>.preprocess_options�   s—   ø€ Ø!%§¡¦‘�ðMØ×*Ñ*¨6Õ2�Cô ˜c¤4×(Ò(Ø’}¨°eÔ(;ß!Ü"-Ð.XÐ[aÕ.aÓ"bÐbàÔ$Ø#&§>¡>°%Ó#8�D˜“Ló ".øô  ô MÜ%Ð&BÀVÕ&KÓLÐLðMús   ˜BÂB$Nr7   z(' option is only allowed together with 'z'' option is not allowed together with 'r   )ÚdictrH   Úgetr   ÚpopÚkeysrE   r   r   Ú	__order__r'   )r@   rK   rF   rT   rU   rN   rV   Úkeyr   r   Úrequire_optionÚexclude_options   f&&ff       r   rH   ÚOptions.__init__ƒ   se  ú€ Ü�‰�dÔç�D—H‘H˜V R×(Ò(ÜØCóEð EçÜ˜“:ˆDØ�‰Là—8‘8˜J¨Ó+ˆ÷	9ñ 	˜4Ô ä˜–>ˆCØ�dŒ{Ø’Mà"Ÿi™ižk�FØ×*Ñ*¨6Õ2�CàŸl™lÖ*Ø$˜MÚó *ñ	 "ñ 	˜8Ô$à—i‘i–kˆFØ×"Ñ" 6Õ*ˆCà"%§,¤,�Ø—8‘8˜NÓ+Ô3Ý%ÓZ`ÓbpÐ&qÓrÐrñ #/ð #&§,¤,�Ø—8‘8˜NÓ+Ô7Ý%ÓY_ÓaoÐ&pÓqÐqó #/ñ "ð —n”nˆFØ×Ñ˜VÕ$×0Ñ0°Ö6ó %r    c                ó¨  a€ V P                   f©   . \        4       r!V P                  P                  4        Fa  w  opVP	                  S4       VP                  V3R lVP                   4       4       VP                  V3R lVP                   4       4       Kc  	   \        V\        V4      34      V n         R# R#   \         d    \        R4      hi ; i)z*Resolve the order of options' processing. Nc              3  ó*   <"  € T F  qS3x € K
  	  R # 5ir   r   ©Ú.0Ú_nameÚnames   & €r   Ú	<genexpr>Ú3Options._init_dependencies_order.<locals>.<genexpr>Ä   s   øé € ÐE¹¨u T�]»ùs   ƒc              3  ó,   <"  € T F	  pSV3x € K  	  R # 5ir   r   rc   s   & €r   rg   rh   Æ   s   øé € ÐF¹¨u˜d E�]»ùs   ƒz/cycle detected in sympy.polys options framework)r\   ÚsetrE   rR   ÚappendÚupdater   r   r   ÚlistÚ
ValueErrorÚRuntimeError)r   ÚverticesÚedgesr   rf   s   &   @r   Ú_init_dependencies_orderÚ Options._init_dependencies_order»   s°   ø€ ð �=‰=Ò Ø ¤#£%�eà #§¡× 5Ñ 5Ö 7‘��fØ—‘ Ô%à—‘ÔE¸¿ºÓEÔEà—‘ÔF¸¿ºÓFÖFñ !8ðGÜ 0°(¼DÀ»KÐ1HÓ I�–ñ !øô ô GÜ"ØEóGð GðGús   ÂB: Â:Cc                ó¸   € \         P                  V P                  4      pV P                  4        F	  w  r4WBV&   K  	  VP                  4        F	  w  r4WBV&   K  	  V# )z-Clone ``self`` and update specified options. )rX   Ú__new__Ú	__class__rR   )r@   ÚupdatesÚobjr   r9   s   &&   r   ÚcloneÚOptions.cloneÎ   sO   € ä�l‰l˜4Ÿ>™>Ó*ˆà!ŸZ™Zž\‰MˆFØ�‹Kñ *ð %Ÿ]™]ž_‰MˆFØ�‹Kñ -ð ˆ
r    c                	óR   <€ WP                   9   d   W V&   R # \        SV `	  W4       R # r   )rE   ÚsuperÚ__setattr__)r@   Úattrr9   rv   s   &&&€r   r}   ÚOptions.__setattr__Ú   s#   ø€ Ø×#Ñ#Ô#Ø�‹Jä‰GÑ Ö,r    c                	ó¸   € / pV P                  4        FC  w  r#Vf   K  VR8w  g   K  V P                  V,          p\        V\        4      '       d   K?  W1V&   KE  	  V# )NrK   )rR   rE   rS   r3   )r@   rF   r   r9   r   s   &    r   rF   ÚOptions.argsà   sQ   € àˆà!ŸZ™Zž\‰MˆFØÔ  V¨vÖ%5Ø×&Ñ& vÕ.�ä! #¤t×,Ô,Ø#(˜“Lñ *ð ˆr    c                	óš   € / pV P                   P                  4        F*  w  r#\        V\        4      '       d   K  \	        W4      W&   K,  	  V# r   ©rE   rR   rS   r3   Úgetattr)r@   r&   r   r   s   &   r   r&   ÚOptions.optionsí   sB   € àˆà×+Ñ+×1Ñ1Ö3‰KˆFÜ˜c¤4×(Ô(Ü")¨$Ó"7�“ñ 4ð ˆr    c                	óš   € / pV P                   P                  4        F*  w  r#\        V\        4      '       g   K  \	        W4      W&   K,  	  V# r   rƒ   )r@   rT   r   r   s   &   r   rT   ÚOptions.flags÷   sB   € àˆà×+Ñ+×1Ñ1Ö3‰KˆFÜ˜#œt×$Ô$Ü '¨Ó 5�“ñ 4ð ˆr    r   )NF)r)   r*   r+   r,   r-   r\   rE   r.   rH   r0   rr   ry   r}   rC   rF   r&   rT   r1   Ú__classcell__)rv   s   @r   r   r   L   sŽ   ø‡ ñ-ð^ €IØ+-€KÐ(Ó-à
ÓØ&Ó&ô67ðp ñGó ðGð$ ô 
õ-ð ñ
ó ð
ð ñó ðð ñó ör    c                  óL   € ] tR tRt$ RtRt. tR]R&   . tR]R&   ]	R 4       t
RtR	# )
ÚExpandi  z8``expand`` option to polynomial manipulation functions. Úexpandr   r   r   c                	ó   € R # ©Tr   r   s   &r   r   ÚExpand.default
  r   r    r   N)r)   r*   r+   r,   r-   r   r   r.   r   r0   r   r1   r   r    r   rŠ   rŠ     s0   ‡ ÙBà€Fà€HˆiÓØ€HˆiÓàñó ôr    rŠ   )Ú	metaclassc                  ó\   € ] tR tRt$ RtRt. tR]R&   . tR]R&   ]	R 4       t
]	R 4       tR	tR
# )ÚGensi  z6``gens`` option to polynomial manipulation functions. rK   r   r   r   c                	ó   € R# )Nr   r   r   s   &r   r   ÚGens.default  ó   € àˆ	r    c                	óÄ  € \        V\        4      '       d   V3pM1\        V4      ^8X  d"   \        V^ ,          4      '       d
   V^ ,          pVR8X  d   RpM�\	        V4      '       d   \        R\        V4      ,          4      h\        ;QJ d    R V 4       F  '       g   K   RM	  RM! R V 4       4      '       d   \        R\        V4      ,          4      h\        V4      # )é   zduplicated generators: %sc              3  ó<   "  € T F  qP                   R J x € K  	  R# 5i)FN)Úis_commutative)rd   Úgens   & r   rg   Ú"Gens.preprocess.<locals>.<genexpr>&  s   é € Ð=¹°×#Ñ# uÕ,»ùs   ‚TFznon-commutative generators: %sr   r   )	Ú
isinstancer   Úlenr   r   r   ÚstrÚanyÚtuple)r   rK   s   &&r   r"   ÚGens.preprocess  s¢   € ä�dœE×"Ò"Ø�7‰DÜ�‹Y˜!Œ^¤¨D°­G× 4Ò 4Ø˜•7ˆDà�7Œ?Ø‰DÜ�d�^Š^Ü!Ð"=ÄÀDÃ	Õ"IÓJÐJß‹SÑ=¹Ó=�S�SŠSÑ=¹Ó=×=Ò=Ü!Ð"BÄSÈÃYÕ"NÓOÐOä�T‹{Ðr    r   N©r)   r*   r+   r,   r-   r   r   r.   r   r0   r   r"   r1   r   r    r   r‘   r‘     sD   ‡ Ù@à€Fà€HˆiÓØ€HˆiÓàñó ðð ñó ôr    r‘   c                  óp   € ] tR tRt$ RtRt. tR]R&   . tR]R&   ]	P                  ! R4      t]R 4       tR	tR
# )ÚWrti,  z5``wrt`` option to polynomial manipulation functions. Úwrtr   r   r   z\s*,\s*|\s+c                	óž  € \        V\        4      '       d   \        V4      .# \        V\        4      '       da   VP                  4       pVP	                  R 4      '       d   \        R4      hV'       g   . # \        V P                  P                  V4      4      # \        VR4      '       d   \        \        \        V4      4      # \        R4      h)Ú,zBad input: missing parameter.Ú__getitem__z!invalid argument for 'wrt' option)r›   r   r�   ÚstripÚendswithr   rm   Ú	_re_splitÚsplitÚhasattrÚmap)r   r¤   s   &&r   r"   ÚWrt.preprocess6  sš   € ä�cœ5×!Ò!Ü˜“H�:ÐÜ˜œS×!Ò!Ø—)‘)“+ˆCØ�|‰|˜C× Ò Ü!Ð"AÓBÐBßØ�	Ü˜Ÿ™×+Ñ+¨CÓ0Ó1Ð1Ü�S˜-×(Ò(ÜœœC ›Ó&Ð&äÐAÓBÐBr    r   N)r)   r*   r+   r,   r-   r   r   r.   r   ÚreÚcompilerª   r0   r"   r1   r   r    r   r£   r£   ,  s@   ‡ Ù?à€Fà€HˆiÓØ€HˆiÓà—
’
˜>Ó*€IàñCó ôCr    r£   c                  ó\   € ] tR tRt$ RtRt. tR]R&   . tR]R&   ]	R 4       t
]	R 4       tR	tR
# )ÚSortiG  z6``sort`` option to polynomial manipulation functions. Úsortr   r   r   c                	ó   € . # r   r   r   s   &r   r   ÚSort.defaultO  r”   r    c                	ó   € \        V\        4      '       d/   VP                  R 4       Uu. uF  q"P                  4       NK  	  up# \	        VR4      '       d   \        \        \        V4      4      # \        R4      hu upi )Ú>r§   z"invalid argument for 'sort' option)r›   r�   r«   r¨   r¬   rm   r­   r   )r   r³   r™   s   && r   r"   ÚSort.preprocessS  s_   € ä�dœC× Ò Ø,0¯J©J°s¬OÓ=©O S—Y‘Y–[©OÑ=Ð=Ü�T˜=×)Ò)ÜœœC ›Ó'Ð'äÐBÓCÐCùò	 >s   ªA;r   Nr¡   r   r    r   r²   r²   G  sF   ‡ Ù@à€Fà€HˆiÓØ€HˆiÓàñó ðð ñDó ôDr    r²   c                  ó\   € ] tR tRt$ RtRt. tR]R&   . tR]R&   ]	R 4       t
]	R 4       tR	tR
# )ÚOrderi]  z7``order`` option to polynomial manipulation functions. Úorderr   r   r   c                	óJ   € \         P                  P                  P                  # r   )ÚsympyÚpolysÚ	orderingsÚlexr   s   &r   r   ÚOrder.defaulte  s   € ä�{‰{×$Ñ$×(Ñ(Ð(r    c                	óT   € \         P                  P                  P                  V4      # r   )r½   r¾   r¿   Úmonomial_key)r   r»   s   &&r   r"   ÚOrder.preprocessi  s   € ä�{‰{×$Ñ$×1Ñ1°%Ó8Ð8r    r   Nr¡   r   r    r   rº   rº   ]  sD   ‡ ÙAà€Fà€HˆiÓØ€HˆiÓàñ)ó ð)ð ñ9ó ô9r    rº   c                  ó6   € ] tR tRt$ RtRt. tR]R&   . ROtRt	R# )	ÚFieldin  z7``field`` option to polynomial manipulation functions. Úfieldr   r   r   N)rL   r«   Úgaussian©
r)   r*   r+   r,   r-   r   r   r.   r   r1   r   r    r   rÆ   rÆ   n  s   ‡ ÙAà€Fà€HˆiÓÚ.„Hr    rÆ   c                  ó6   € ] tR tRt$ RtRt. tR]R&   . ROtRt	R# )	ÚGreedyiw  z8``greedy`` option to polynomial manipulation functions. Úgreedyr   r   r   N©rL   r«   rÈ   Ú	extensionÚmodulusÚ	symmetricrÉ   r   r    r   rË   rË   w  s   ‡ ÙBà€Fà€HˆiÓÚS„Hr    rË   c                  óF   € ] tR tRt$ RtRt]R 4       t. tR]	R&   . R	Ot
RtR# )
Ú	Compositei€  z;``composite`` option to polynomial manipulation functions. Ú	compositec                	ó   € R # r   r   r   s   &r   r   ÚComposite.default…  r   r    r   r   r   NrÍ   )r)   r*   r+   r,   r-   r   r0   r   r   r.   r   r1   r   r    r   rÒ   rÒ   €  s-   ‡ ÙEà€Fàñó ðð €HˆiÓÚS„Hr    rÒ   c                  ó4  € ] tR tRt$ RtRt. tR]R&   . ROtR.t	]
P                  ! R4      t]
P                  ! R4      t]
P                  ! R	4      t]
P                  ! R
4      t]
P                  ! R4      t]
P                  ! R4      t]R 4       t]R 4       tRtR# )ÚDomaini�  z8``domain`` option to polynomial manipulation functions. rL   r   r   rK   z^(R|RR)(_(\d+))?$z^(C|CC)(_(\d+))?$z^(FF|GF)\((\d+)\)$z)^(Z|ZZ|Q|QQ|ZZ_I|QQ_I|R|RR|C|CC)\[(.+)\]$z^(Z|ZZ|Q|QQ)\((.+)\)$z^(Q|QQ)\<(.+)\>$c                	ó¤  € \        V\        P                  P                  P                  4      '       d   V# \        VR 4      '       d   VP                  4       # \        V\        4      '       EdQ   VR9   d%   \        P                  P                  P                  # VR9   d%   \        P                  P                  P                  # VR8X  d%   \        P                  P                  P                  # VR8X  d%   \        P                  P                  P                  # VR8X  d%   \        P                  P                  P                  # V P                  P                  V4      pVen   VP                  4       w   r4Vf%   \        P                  P                  P                   # \        P                  P                  P#                  \%        V4      4      # V P&                  P                  V4      pVen   VP                  4       w   r4Vf%   \        P                  P                  P(                  # \        P                  P                  P+                  \%        V4      4      # V P,                  P                  V4      pVeH   \        P                  P                  P/                  \%        VP                  4       ^,          4      4      # V P0                  P                  V4      pVEeŠ   VP                  4       w  rV\3        \5        \6        VP9                  R4      4      4      pVR9   d3   \        P                  P                  P                  P:                  ! V!  # VR9   d3   \        P                  P                  P                  P:                  ! V!  # VR9   d3   \        P                  P                  P                   P:                  ! V!  # VR8X  d3   \        P                  P                  P                  P:                  ! V!  # VR8X  d3   \        P                  P                  P                  P:                  ! V!  # \        P                  P                  P(                  P:                  ! V!  # V P<                  P                  V4      pVe¦   VP                  4       w  rV\3        \5        \6        VP9                  R4      4      4      pVR9   d3   \        P                  P                  P                  P>                  ! V!  # \        P                  P                  P                  P>                  ! V!  # V P@                  P                  V4      pVep   \3        \5        \6        VP                  4       ^,          P9                  R4      4      4      p\        P                  P                  P                  PB                  ! V!  # \E        RV,          4      h)	Ú	to_domainÚZZ_IÚQQ_IÚEXr¦   z-expected a valid domain specification, got %s)ÚZÚZZ)ÚQÚQQ)ÚRÚRR)#r›   r½   r¾   Údomainsr×   r¬   rÙ   r�   rÞ   rà   rÚ   rÛ   rÜ   Ú_re_realfieldÚmatchÚgroupsrâ   Ú	RealFieldÚintÚ_re_complexfieldÚCCÚComplexFieldÚ_re_finitefieldÚFFÚ_re_polynomialrm   r­   r   r«   Ú	poly_ringÚ_re_fractionÚ
frac_fieldÚ_re_algebraicÚalgebraic_fieldr   )r   rL   ÚrÚ_ÚprecÚgroundrK   s   &&     r   r"   ÚDomain.preprocessž  s  € ä�fœeŸk™k×1Ñ1×8Ñ8×9Ò9ØˆMÜ�V˜[×)Ò)Ø×#Ñ#Ó%Ð%Ü˜¤×$Ó$Ø˜Ô$Ü—{‘{×*Ñ*×-Ñ-Ð-à˜Ô$Ü—{‘{×*Ñ*×-Ñ-Ð-à˜ÔÜ—{‘{×*Ñ*×/Ñ/Ð/à˜ÔÜ—{‘{×*Ñ*×/Ñ/Ð/à˜Œ~Ü—{‘{×*Ñ*×-Ñ-Ð-à×!Ñ!×'Ñ'¨Ó/ˆAàŠ}ØŸX™X›Z‘
��1à’<Ü Ÿ;™;×.Ñ.×1Ñ1Ð1ä Ÿ;™;×.Ñ.×8Ñ8¼¸T»ÓCÐCà×$Ñ$×*Ñ*¨6Ó2ˆAàŠ}ØŸX™X›Z‘
��1à’<Ü Ÿ;™;×.Ñ.×1Ñ1Ð1ä Ÿ;™;×.Ñ.×;Ñ;¼CÀ»IÓFÐFà×#Ñ#×)Ñ)¨&Ó1ˆAàŠ}Ü—{‘{×*Ñ*×-Ñ-¬c°!·(±(³*¸Qµ-Ó.@ÓAÐAà×"Ñ"×(Ñ(¨Ó0ˆAà‹}Ø Ÿx™x›z‘�äœC¤¨¯©°C«Ó9Ó:�à˜[Ô(Ü Ÿ;™;×.Ñ.×1Ñ1×;Ò;¸TÑBÐBØ˜{Ô*Ü Ÿ;™;×.Ñ.×1Ñ1×;Ò;¸TÑBÐBØ˜{Ô*Ü Ÿ;™;×.Ñ.×1Ñ1×;Ò;¸TÑBÐBØ˜vÔ%Ü Ÿ;™;×.Ñ.×3Ñ3×=Ò=¸tÑDÐDØ˜vÔ%Ü Ÿ;™;×.Ñ.×3Ñ3×=Ò=¸tÑDÐDä Ÿ;™;×.Ñ.×1Ñ1×;Ò;¸TÑBÐBà× Ñ ×&Ñ& vÓ.ˆAàŠ}Ø Ÿx™x›z‘�äœC¤¨¯©°C«Ó9Ó:�à˜[Ô(Ü Ÿ;™;×.Ñ.×1Ñ1×<Ò<¸dÑCÐCä Ÿ;™;×.Ñ.×1Ñ1×<Ò<¸dÑCÐCà×!Ñ!×'Ñ'¨Ó/ˆAàŠ}ÜœC¤¨¯©«°A­×)<Ñ)<¸SÓ)AÓBÓC�Ü—{‘{×*Ñ*×-Ñ-×=Ò=¸tÑDÐDäÐIÈFÕRÓSÐSr    c                	ó”  € R V9   de   RV9   d^   VR,          P                   '       dE   \        VR,          P                  4      \        VR ,          4      ,          '       d   \        R4      hR V9  g   VR ,          '       gG   RV9   d>   VR,          \        P
                  P                  P                  8X  d   \        R4      hR# R# R# )rK   rL   z/ground domain and generators interfere togetherz>you have to provide generators because EX domain was requestedN)Úis_Compositerj   Úsymbolsr   r½   r¾   rã   rÜ   r%   s   &&r   r'   ÚDomain.postprocessõ  s¥   € à�WÔ ¨WÔ!4¸ÀÕ9J×9W×9WÐ9WÜ�W˜XÕ&×.Ñ.Ó/´#°g¸fµoÓ2F×FÔFÜ!ØAóCð Cà˜GÔ#¨7°6¯?¬?Ø˜GÔ#¨°Õ(9¼U¿[¹[×=PÑ=P×=SÑ=SÔ(SÜ!Ð"bÓcÐcñ )TÑ#ñ ,;r    r   N)rÇ   rÌ   r«   rÈ   rÎ   )r)   r*   r+   r,   r-   r   r   r.   r   r   r¯   r°   rä   ré   rì   rî   rð   rò   r0   r"   r'   r1   r   r    r   r×   r×   �  s¨   ‡ ÙBà€Fà€HˆiÓÚD€HàˆH€Eà—J’JÐ3Ó4€MØ—z’zÐ"6Ó7ÐØ—j’jÐ!6Ó7€OØ—Z’ZÐ LÓM€NØ—:’:Ð6Ó7€LØ—J’JÐ2Ó3€MàñTTó ðTTðl ñdó ôdr    r×   c                  óF   € ] tR tRt$ RtRt. tR]R&   . R	Ot]	R 4       t
RtR# )
ÚSpliti   z7``split`` option to polynomial manipulation functions. r«   r   r   c                	ó*   € R V9   d   \        R4      hR# )r«   z%'split' option is not implemented yetN)ÚNotImplementedErrorr%   s   &&r   r'   ÚSplit.postprocess	  s   € à�gÔÜ%Ð&MÓNÐNñ r    r   N)rÇ   rÌ   rL   rÈ   rÎ   rÏ   rÐ   ©r)   r*   r+   r,   r-   r   r   r.   r   r0   r'   r1   r   r    r   rþ   rþ      s1   ‡ ÙAà€Fà€HˆiÓò €Hð ñOó ôOr    rþ   c                  óF   € ] tR tRt$ RtRt. tR]R&   . R	Ot]	R 4       t
RtR# )
ÚGaussiani  z:``gaussian`` option to polynomial manipulation functions. rÈ   r   r   c                	ó®   € R V9   dN   VR ,          RJ d?   \         P                  P                  P                  VR&   \        P                  V4       R# R# R# )rÈ   TrL   N)r½   r¾   rã   rÛ   Ú	Extensionr'   r%   s   &&r   r'   ÚGaussian.postprocess  sG   € à˜Ô  W¨ZÕ%8¸DÓ%@Ü %§¡× 3Ñ 3× 8Ñ 8ˆG�HÑÜ×!Ñ! 'Ö*ñ &AÑ r    r   N)rÇ   rÌ   rL   r«   rÎ   rÏ   rÐ   r  r   r    r   r  r    s/   ‡ ÙDà€Fà€HˆiÓò €Hð ñ+ó ô+r    r  c                  óV   € ] tR tRt$ RtRt. tR]R&   . R
Ot]	R 4       t
]	R 4       tRtR	# )r  i  z;``extension`` option to polynomial manipulation functions. rÎ   r   r   c                	óª   € V^8X  d   \        V4      # V^ 8X  d   \        R4      h\        VR4      '       g   V0pV# V'       g   RpV# \        V4      pV# )r–   z.'False' is an invalid argument for 'extension'Ú__iter__N)r8   r   r¬   rj   )r   rÎ   s   &&r   r"   ÚExtension.preprocess(  se   € à˜Œ>Ü˜	“?Ð"Ø˜!Œ^ÜÐNÓOÐOä˜9 j×1Ò1Ø&˜K�	ð Ð÷ !Ø $�Ið Ðô !$ I£�IàÐr    c                	ó®   € R V9   dN   VR ,          RJd?   \         P                  P                  P                  P                  ! VR ,          !  VR&   R# R# R# )rÎ   TrL   N)r½   r¾   rã   rà   ró   r%   s   &&r   r'   ÚExtension.postprocess9  sL   € à˜'Ô! g¨kÕ&:À$Ó&FÜ %§¡× 3Ñ 3× 6Ñ 6× FÒ FØ˜Õ%ñ!'ˆG�HÓñ 'GÑ!r    r   N)rÌ   rL   r«   rÈ   rÏ   rÐ   ©r)   r*   r+   r,   r-   r   r   r.   r   r0   r"   r'   r1   r   r    r   r  r    sC   ‡ ÙEà€Fà€HˆiÓò€Hð ñó ðð  ñ'ó ô'r    r  c                  óV   € ] tR tRt$ RtRt. tR]R&   . R
Ot]	R 4       t
]	R 4       tRtR	# )ÚModulusi@  z9``modulus`` option to polynomial manipulation functions. rÏ   r   r   c                	ó„   € \        V4      pVP                  '       d   V^ 8”  d   \        V4      # \        RV,          4      h)é    z)'modulus' must a positive integer, got %s)r   Ú
is_Integerrè   r   )r   rÏ   s   &&r   r"   ÚModulus.preprocessH  s?   € ä˜'Ó"ˆà××Ð '¨A¤+Ü�w“<ÐäØ;¸gÕEóGð Gr    c                	ó¦   € R V9   dJ   VR ,          pVP                  RR4      p\        P                  P                  P	                  W#4      VR&   R# R# )rÏ   rÐ   TrL   N)rY   r½   r¾   rã   rí   )r   r&   rÏ   rÐ   s   &&  r   r'   ÚModulus.postprocessR  sH   € à˜ÔØ˜iÕ(ˆGØŸ™ K°Ó6ˆIÜ %§¡× 3Ñ 3× 6Ñ 6°wÓ JˆG�HÓñ  r    r   N)rÌ   r«   rL   rÈ   rÎ   r  r   r    r   r  r  @  sC   ‡ ÙCà€Fà€HˆiÓÚE€HàñGó ðGð ñKó ôKr    r  c                  ó,   € ] tR tRtRtRtR.t. ROtRtR# )Ú	SymmetriciZ  z;``symmetric`` option to polynomial manipulation functions. rÐ   rÏ   r   N)rÌ   rL   r«   rÈ   rÎ   )	r)   r*   r+   r,   r-   r   r   r   r1   r   r    r   r  r  Z  s   † ÙEà€Fàˆ{€HÚE„Hr    r  c                  ó.   € ] tR tRtRtRt]R 4       tRtR# )ÚStrictic  z8``strict`` option to polynomial manipulation functions. rU   c                	ó   € R # r�   r   r   s   &r   r   ÚStrict.defaulth  r   r    r   N©	r)   r*   r+   r,   r-   r   r0   r   r1   r   r    r   r  r  c  s   † ÙBà€Fàñó ôr    r  c                  óF   € ] tR tRtRtRt. ROt]R 4       t]R 4       t	Rt
R# )	ÚAutoim  z4``auto`` flag to polynomial manipulation functions. Úautoc                	ó   € R # r�   r   r   s   &r   r   ÚAuto.defaultt  r   r    c                	óB   € R V9   g   RV9   d   RV9  d   RVR&   R# R# R# )rL   rÇ   r   FNr   r%   s   &&r   r'   ÚAuto.postprocessx  s*   € à˜Ô 7¨gÔ#5¸6ÈÔ;PØ#ˆG�F‹Oñ <QÑ#5r    r   N)rÇ   rL   rÎ   rÈ   )r)   r*   r+   r,   r-   r   r   r0   r   r'   r1   r   r    r   r  r  m  s5   † Ù>à€Fâ8€Eàñó ðð ñ$ó ô$r    r  c                  ó.   € ] tR tRtRtRt]R 4       tRtR# )ÚFraci~  z6``auto`` option to polynomial manipulation functions. Úfracc                	ó   € R # ©Fr   r   s   &r   r   ÚFrac.defaultƒ  ó   € ár    r   Nr  r   r    r   r&  r&  ~  s   † Ù@à€Fàñó ôr    r&  c                  ó.   € ] tR tRtRtRt]R 4       tRtR# )ÚFormaliˆ  z6``formal`` flag to polynomial manipulation functions. Úformalc                	ó   € R # r)  r   r   s   &r   r   ÚFormal.default�  r+  r    r   Nr  r   r    r   r-  r-  ˆ  ó   † Ù@à€Fàñó ôr    r-  c                  ó   € ] tR tRtRtRtRtR# )ÚPolysi’  z5``polys`` flag to polynomial manipulation functions. r¾   r   N)r)   r*   r+   r,   r-   r   r1   r   r    r   r3  r3  ’  s
   † Ù?à„Fr    r3  c                  ó.   € ] tR tRtRtRt]R 4       tRtR# )ÚIncludei˜  z7``include`` flag to polynomial manipulation functions. Úincludec                	ó   € R # r)  r   r   s   &r   r   ÚInclude.default�  r+  r    r   Nr  r   r    r   r5  r5  ˜  s   † ÙAà€Fàñó ôr    r5  c                  ó.   € ] tR tRtRtRt]R 4       tRtR# )ÚAlli¢  z3``all`` flag to polynomial manipulation functions. Úallc                	ó   € R # r)  r   r   s   &r   r   ÚAll.default§  r+  r    r   Nr  r   r    r   r:  r:  ¢  s   † Ù=à€Fàñó ôr    r:  c                  ó>   € ] tR tRtRtRt]R 4       t]R 4       tRt	R# )ÚGeni¬  z3``gen`` flag to polynomial manipulation functions. r™   c                	ó   € ^ # )r  r   r   s   &r   r   ÚGen.default±  s   € ár    c                	óT   € \        V\        \        34      '       d   V# \        R 4      h)z!invalid argument for 'gen' option)r›   r   rè   r   )r   r™   s   &&r   r"   ÚGen.preprocessµ  s$   € ä�cœE¤3˜<×(Ò(ØˆJäÐAÓBÐBr    r   N©
r)   r*   r+   r,   r-   r   r0   r   r"   r1   r   r    r   r?  r?  ¬  s2   † Ù=à€Fàñó ðð ñCó ôCr    r?  c                  ó.   € ] tR tRtRtRt]R 4       tRtR# )ÚSeriesi½  z6``series`` flag to polynomial manipulation functions. Úseriesc                	ó   € R # r)  r   r   s   &r   r   ÚSeries.defaultÂ  r+  r    r   Nr  r   r    r   rF  rF  ½  r1  r    rF  c                  ó>   € ] tR tRtRtRt]R 4       t]R 4       tRt	R# )ÚSymbolsiÇ  z7``symbols`` flag to polynomial manipulation functions. rû   c                	ó   € \        R ^R7      # )Ús)Ústart)r
   r   s   &r   r   ÚSymbols.defaultÌ  s   € ä ¨1Ô-Ð-r    c                	ó`   € \        VR 4      '       d   \        V4      # \        RV,          4      h)r
  z2expected an iterator or iterable container, got %s)r¬   Úiterr   )r   rû   s   &&r   r"   ÚSymbols.preprocessÐ  s+   € ä�7˜J×'Ò'Ü˜“=Ð äÐRÐU\Õ\Ó]Ð]r    r   NrD  r   r    r   rK  rK  Ç  s2   † ÙAà€Fàñ.ó ð.ð ñ^ó ô^r    rK  c                  ó.   € ] tR tRtRtRt]R 4       tRtR# )ÚMethodiØ  z6``method`` flag to polynomial manipulation functions. Úmethodc                	ór   € \        V\        4      '       d   VP                  4       # \        R V,          4      h)zexpected a string, got %s)r›   r�   Úlowerr   )r   rU  s   &&r   r"   ÚMethod.preprocessÝ  s,   € ä�fœc×"Ò"Ø—<‘<“>Ð!äÐ9¸FÕBÓCÐCr    r   N)	r)   r*   r+   r,   r-   r   r0   r"   r1   r   r    r   rT  rT  Ø  s   † Ù@à€FàñDó ôDr    rT  c                óv   € Vf   RT r\        V4      ^8w  g   RV9  g	   V '       d   \        W4      # VR,          # )z9Construct options from keyword arguments or ... options. Úoptr   )rœ   r   )rK   rF   s   &&r   Úbuild_optionsr[  å  s7   € à‚|Ø˜ˆdä
ˆ4ƒy�A„~˜ dÔ*¯dÜ�tÓ"Ð"à�E�{Ðr    c                ó  € \        V4      pV P                  4        FE  p \        P                  V,          P                  '       d   W!9  d   \        RV,          4      hKE  KG  	  R#   \         d    \        RT,          4      hi ; i)až  
Allow specified flags to be used in the given context.

Examples
========

>>> from sympy.polys.polyoptions import allowed_flags
>>> from sympy.polys.domains import ZZ

>>> allowed_flags({'domain': ZZ}, [])

>>> allowed_flags({'domain': ZZ, 'frac': True}, [])
Traceback (most recent call last):
...
FlagError: 'frac' flag is not allowed in this context

>>> allowed_flags({'domain': ZZ, 'frac': True}, ['frac'])

rQ   rP   N)rj   r[   r   rE   r/   r	   r?   r   )rF   rT   Úargs   && r   Úallowed_flagsr^  ð  sƒ   € ô( �‹J€Eà�y‰yŽ{ˆð	BÜ×"Ñ" 3Õ'×/×/Ð/°CÔ4DÜØ>ÀÕDóFð Fñ 5EÑ/ó øô
 ô 	BÜÐ:¸SÕ@ÓAÐAð	Bús    ?A'Á'Bc                ó2   € RV 9  d   \        V 4      p WR&   V # )z$Update options with default values. rN   )rX   )r&   rN   s   &,r   Úset_defaultsr`    s    € à˜Ô Ü�w“-ˆØ&�
Ñà€Nr    r   )<r-   Ú
__future__r   Ú__all__Úsympy.core.basicr   Úsympy.core.exprr   Úsympy.core.sympifyr   Úsympy.polys.polyerrorsr   r   r	   Úsympy.utilitiesr
   r   r   Úsympy.utilities.iterablesr   r   Úsympy.polysr½   r¯   r   r3   r5   Útyper<   rX   r   rŠ   r‘   r£   r²   rº   rÆ   rË   rÒ   r×   rþ   r  r  r  r  r  r  r&  r-  r3  r5  r:  r?  rF  rK  rT  r[  r^  r`  rr   r   r    r   Ú<module>rk     s#  ðÙ Då "àˆ+€å "Ý  Ý &ß JÑ Jß FÑ Fß ;ã ã 	÷ñ ô4ˆ6ô ôg�Fô gô.�ô .ð ôrˆdó ró ðrôj
ˆ] jõ 
ôˆ6˜Zõ ô:Cˆ&˜Jõ Cô6Dˆ6˜Zõ Dô,9ˆF˜jõ 9ô"/ˆM Zõ /ôTˆ] jõ Tô
T�¨õ 
TôpdˆV˜zõ pdôfOˆM Zõ Oô+ˆ}¨
õ +ô '� *õ 'ôBKˆf 
õ Kô4F�¨õ Fôˆ] jõ ô$ˆ=˜$¨*õ $ô"ˆ=˜$¨*õ ôˆ]˜D¨Jõ ôˆM˜4¨:õ ôˆm˜T¨Zõ ôˆ-˜¨õ ôCˆ$˜*õ Cô"ˆ]˜D¨Jõ ô^ˆd˜jõ ^ô"
DˆT˜Zõ 
DôòBò>ð ×  Ñ  Ö "r    