Ë
    7^(hØ‰  ã                   ó¼  — 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
 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 d d
lmZmZmZmZmZmZmZmZmZm Z m!Z!m"Z"m#Z#m$Z$m%Z%m&Z&m'Z'm(Z(m)Z)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@mAZAmBZBmCZCmDZDmEZEmFZFmGZGmHZHmIZImJZJmKZK d dlLmMZMmNZN d dlOmPZP d dlQmRZRmSZS  ed«      \  ZTZUZVZWd„ ZXd„ ZYd„ ZZd„ Z[d„ Z\d„ Z]d„ Z^d„ Z_d„ Z`d„ Zad„ Zbd„ Zcd„ Zdd„ Zed„ Zfd„ Zgd„ Zhd „ Zid!„ Zjd"„ Zkd#„ Zld$„ Zmd%„ Znd&„ Zod'„ Zpd(„ Zqd)„ Zrd*„ Zsd+„ Ztd,„ Zud-„ Zvd.„ Zwd/„ Zxd0„ Zyd1„ Zzd2„ Z{d3„ Z|d4„ Z}d5„ Z~d6„ Zd7„ Z€d8„ Z�d9„ Z‚d:„ Zƒd;„ Z„d<„ Z…d=„ Z†y>)?é    )Údedent)ÚisliceÚproduct)ÚBasic)ÚInteger©Úordered)ÚDummyÚsymbols)Ú	factorial)ÚMatrix)ÚRGS_enumÚ
RGS_unrankÚPermutation)5Ú
_partitionÚ_set_partitionsÚbinary_partitionsÚ	braceletsÚcaptureÚcartesÚcommon_prefixÚcommon_suffixÚconnected_componentsÚ
dict_mergeÚfilter_symbolsÚflattenÚgenerate_bellÚgenerate_derangementsÚgenerate_involutionsÚgenerate_oriented_forestÚgroupÚhas_dupsÚibinÚiproductÚkbinsÚminlexÚmultisetÚmultiset_combinationsÚmultiset_partitionsÚmultiset_permutationsÚ	necklacesÚnumbered_symbolsÚ
partitionsÚpermutationsÚ	postfixesÚprefixesÚreshapeÚrotate_leftÚrotate_rightÚrunsÚsiftÚstrongly_connected_componentsÚsubsetsÚtakeÚtopological_sortÚ	unflattenÚuniqÚ
variationsÚordered_partitionsÚ	rotationsÚis_palindromicÚiterableÚNotIterableÚmultiset_derangementsÚsigned_permutationsÚsequence_partitionsÚsequence_partitions_empty)Úfactoring_visitorÚmultiset_partitions_taocp)ÚS)ÚraisesÚwarns_deprecated_sympyzw,x,y,zc                  ó4  — ddl m} m} t        «       5  t	         |t
        t        g«      «      t        t
        gk(  sJ ‚	 d d d «       t        «       5  t        t
        t        g| ¬«      t        t
        gk(  sJ ‚	 d d d «       y # 1 sw Y   ŒDxY w# 1 sw Y   y xY w)Nr   ©Údefault_sort_keyr	   ©Úkey)Úsympy.utilities.iterablesrM   r	   rJ   ÚlistÚyÚxÚsortedrL   s     úb/var/www/skyplay_api_hub/venv/lib/python3.12/site-packages/sympy/utilities/tests/test_iterables.pyÚtest_deprecated_iterablesrV   !   s}   € ßCÜ	Ó	!ñ /Ü‘GœQ¤˜F“OÓ$¬¬A¨Ò.Ð.Ñ.÷/ä	Ó	!ñ >Ü”qœ!�fÐ"2Ô3¼¼1°vÒ=Ð=Ñ=÷>ð >÷/ð /ú÷>ð >ús   “+BÁ'BÂBÂBc                  ój  — t        d«      sJ ‚t        d«      sJ ‚t        d«      sJ ‚t        d«      sJ ‚t        d«      rJ ‚t        d«      rJ ‚t        dd«      sJ ‚t        dd	«      rJ ‚t        dd	d
«      sJ ‚t        dd	d«      sJ ‚t        dd«      sJ ‚t        dd	«      rJ ‚t        dd	d«      sJ ‚y )NÚ rS   ÚxxÚxyxÚxyÚxyzxÚxxyzzyxé   é   éÿÿÿÿé   Úxxyzyxé   )r?   © ó    rU   Útest_is_palindromicrf   )   sÌ   € Ü˜"ÔÐÐÜ˜#ÔÐÐÜ˜$ÔÐÐÜ˜%Ô Ð Ð Ü˜dÔ#Ð#Ð#Ü˜fÔ%Ð%Ð%Ü˜) QÔ'Ð'Ð'Ü˜i¨Ô+Ð+Ð+Ü˜) Q¨Ô+Ð+Ð+Ü˜) Q¨Ô*Ð*Ð*Ü˜( AÔ&Ð&Ð&Ü˜h¨Ô*Ð*Ð*Ü˜( A uÔ-Ð-Ñ-re   c                  ó|  ‡— t        d«      ddgk(  sJ ‚t        t        t        ff«      t        t        gk(  sJ ‚ddgdggŠt        ‰d¬«      ‰k(  sJ ‚t        ‰d¬«      g d¢k(  sJ ‚t        ‰d	¬«      g d
¢k(  sJ ‚t        ‰d¬«      g d
¢k(  sJ ‚t        t        ˆfd„«        G d„ dt        «      } t         | t        t
        «      t        g«       | t        t
        «      t        gk(  sJ ‚t         | t        t
        «      t        g| ¬«      t        t
        t        gk(  sJ ‚t        h d£«      t        h d£«      k(  sJ ‚y )N)r^   ©r^   r^   ©éþÿÿÿr`   ©r^   r_   ©r   r   r   ©Úlevels)ri   rk   rl   r_   )rj   r`   r^   r_   r   r   é   c                  ó   •— t        ‰ d¬«      S )Nr`   rm   )r   )Úlss   €rU   ú<lambda>ztest_flatten.<locals>.<lambda>D   s   ø€ œw r°"Ô5€ re   c                   ó   — e Zd Zy)útest_flatten.<locals>.MyOpN©Ú__name__Ú
__module__Ú__qualname__rd   re   rU   ÚMyOprt   F   ó   „ Øre   ry   ©Úcls>   r^   r_   é   )r   rS   rI   Ú
ValueErrorr   rR   ÚzrQ   )ry   rq   s    @rU   Útest_flattenr€   9   s  ø€ Ü�9Ó ! Q Ò'Ð'Ð'Ü”Aœ�t�9Ó¤!¤Q Ò'Ð'Ð'à�VÐ
˜v˜hÐ	'€Bä�2˜aÔ  BÒ&Ð&Ð&Ü�2˜aÔ Ò$>Ò>Ð>Ð>Ü�2˜aÔ Ò$8Ò8Ð8Ð8Ü�2˜aÔ Ò$8Ò8Ð8Ð8ä
Œ:Ó5Ô6ôŒuô ô ‘DœœA“J¤�?Ó#©¬Q´«
´A Ò6Ð6Ð6Ü‘DœœA“J¤�?¨Ô-´!´Q¼°Ò:Ð:Ð:ä’:Ó¤$¢zÓ"2Ò2Ð2Ñ2re   c            	      óº  — t        t        «       «      dgk(  sJ ‚t        t        g «      «      g k(  sJ ‚t        t        g d¢«      «      g d¢k(  sJ ‚t        t        ddgg d¢«      «      g d¢k(  sJ ‚t        t        ddgddgddg«      «      g d	¢k(  sJ ‚t        t        t        j
                  «      «      d
u sJ ‚t        t        t        j
                  t        j
                  «      «      d
u sJ ‚dt        t        j
                  «      v sJ ‚dt        t        j
                  t        j
                  «      v sJ ‚dt        t        j
                  t        j
                  t        j
                  «      v sJ ‚t        t        t        t        j
                  t        j
                  t        j
                  «      d«      «      } | D ]<  \  }}}t        |t        «      sJ ‚t        |t        «      sJ ‚t        |t        «      rŒ<J ‚ t        t        t        dd«      gdz  Ž «      D ]=  }|t        t        j
                  t        j
                  t        j
                  «      v rŒ=J ‚ y )Nrd   ©r^   r_   ro   ©rh   ©r_   ©ro   r^   r_   ©ro   é   rc   ©©r^   ro   )r^   r‡   )r^   rc   ©r_   ro   ©r_   r‡   )r_   rc   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^   Tr…   )r‡   rc   iè  rj   ro   )rQ   r$   rT   r@   rH   ÚIntegersÚsetr   Ú
isinstancer   r   Úrange)ÚtriplesÚn1Ún2Ún3Úts        rU   Útest_iproductrœ   O   sò  € Ü”“
Ó ˜tÒ#Ð#Ð#Ü”˜“Ó Ò#Ð#Ð#Ü”šÓ!Ó"Ò&6Ò6Ð6Ð6Ü”(˜A˜q˜6¢9Ó-Ó.ò 3-ò -ð -ð -ä”(˜A˜a˜5 ! A ¨¨! uÓ-Ó.ò 3Iò Ið Ið Iä”HœQŸZ™ZÓ(Ó)¨TÑ1Ð1Ð1Ü”HœQŸZ™Z¬¯©Ó4Ó5¸Ñ=Ð=Ð=Ø”8œAŸJ™JÓ'Ñ'Ð'Ð'Ø”XœaŸj™j¬!¯*©*Ó5Ñ5Ð5Ð5Øœ¤§¡¬Q¯Z©Z¼¿¹ÓDÑDÐDÐDÜ”6œ(¤1§:¡:¬q¯z©z¼1¿:¹:ÓFÈÓMÓN€GØò '‰
ˆˆB�Ü˜"œgÔ&Ð&Ð&Ü˜"œgÔ&Ð&Ð&Ü˜"œgÕ&Ð&Ð&ð'ô ”œE " a›L˜>¨!Ñ+Ð-Ó.ò AˆØ”HœQŸZ™Z¬¯©´Q·Z±ZÓ@Ò@Ð@Ð@ñAre   c                  ó   — t        g «      g k(  sJ ‚t        g d¬«      g k(  sJ ‚t        dg«      dggk(  sJ ‚t        dgd¬«      dgk(  sJ ‚t        ddg«      ddggk(  sJ ‚t        ddgd¬«      dgk(  sJ ‚t        g d¢«      g d¢gk(  sJ ‚t        g d¢d¬«      dgk(  sJ ‚t        g d¢«      dgd	gdggk(  sJ ‚t        g d¢d¬«      g d
¢k(  sJ ‚t        g d¢«      ddgg d¢dgddggk(  sJ ‚t        g d¢d¬«      g d¢k(  sJ ‚y )NF)Úmultipler^   ©r^   r^   rk   r’   r‰   ©r^   r_   r^   r_   )rŸ   ©r_   r^   rŸ   )r^   r^   r_   r_   r_   r^   ro   ro   ©r_   r_   r_   ro   )rk   rŠ   rŸ   ©ro   r_   )r!   rd   re   rU   Ú
test_groupr¤   e   s6  € Ü�‹9˜Š?Ðˆ?Ü�˜eÔ$¨Ò*Ð*Ð*ä�!�‹:˜1˜#˜ÒÐÐÜ�!�˜uÔ%¨&¨Ò1Ð1Ð1ä�!�Q�‹=˜a ˜V˜HÒ$Ð$Ð$Ü�!�Q� %Ô(¨V¨HÒ4Ð4Ð4ä’Ó¢	˜{Ò*Ð*Ð*Ü’ UÔ+°¨xÒ7Ð7Ð7ä’Ó   a S¨1¨#˜Ò.Ð.Ð.Ü’ UÔ+Ò/GÒGÐGÐGäÒ)Ó*°°1¨v²yÀ1À#ÈÈ1ÀvÐ.NÒNÐNÐNÜÒ)°EÔ:ò ?)ò )ð )ñ )re   c            	      óÈ  — t        t        g d¢d«      «      dgk(  sJ ‚t        t        g d¢d«      «      g d¢k(  sJ ‚t        t        g d¢d«      «      g d¢k(  sJ ‚t        t        g d¢d«      «      dgk(  sJ ‚t        t        d	«      «      } t        t        | dd
¬«      «      dgk(  sJ ‚t        t        | dd
¬«      «      g d¢k(  sJ ‚t        t        | dd
¬«      «      g d¢k(  sJ ‚t        t        | dd
¬«      «      g d¢k(  sJ ‚t        t        t        | d	d
¬«      «      «      dk(  sJ ‚t        t        | d d dd¬«      «      g k(  sJ ‚t        t        | d d dd
¬«      «      g d¢k(  sJ ‚t        t        ddgd
¬«      «      g d¢k(  sJ ‚t        t        ddgd¬«      «      g d¢k(  sJ ‚t        t        g d¢d«      «      g d¢k(  sJ ‚t        t        g d¢dd
¬«      «      g d¢k(  sJ ‚y )Nr‚   r   rd   r^   rƒ   r_   )rk   r‰   rŠ   ro   r‡   T©Ú
repetition©©r   rh   r„   r…   )
rl   ©r   r^   ©r   r_   ©r   ro   rŸ   rk   r‰   ©r_   r_   rŠ   ©ro   ro   )r�   rŽ   )r   r   r_   )r   r   ro   r�   ©r   r^   r_   ©r   r^   ro   )r   r_   r_   ©r   r_   ro   )r   ro   ro   r’   ©r^   r^   r_   ©r^   r^   ro   ©r^   r_   r_   r‚   )r^   ro   ro   r¢   )r_   r_   ro   )r_   ro   ro   )ro   ro   ro   é#   F)r�   rŽ   r�   r’   )rd   rh   r„   rŸ   rk   r­   )rd   rh   r„   rk   )rŸ   rk   r‰   r­   rŠ   r®   )rQ   r7   r–   Úlen©Úls    rU   Útest_subsetsr¹   z   s  € ä”š	 1Ó%Ó&¨2¨$Ò.Ð.Ð.Ü”š	 1Ó%Ó&Ò*<Ò<Ð<Ð<Ü”š	 1Ó%Ó&Ò*BÒBÐBÐBÜ”š	 1Ó%Ó&¨9¨+Ò5Ð5Ð5ÜŒU�1‹X‹€AÜ”˜˜1¨Ô.Ó/°B°4Ò7Ð7Ð7Ü”˜˜1¨Ô.Ó/Ò3KÒKÐKÐKÜ”˜˜1¨Ô.Ó/ò 4<ò <ð <ð <ô ”˜˜1¨Ô.Ó/ò 	4Jò 	Jð 	Jð 	Jô Œt”G˜A˜q¨TÔ2Ó3Ó4¸Ò:Ð:Ð:ä”˜˜"˜1˜˜q¨UÔ3Ó4¸Ò:Ð:Ð:Ü”˜˜"˜1˜˜q¨TÔ2Ó3ò 8Cò Cð Cð Cô ”˜˜A˜¨4Ô0Ó1Ú0ò1ð 1ð 1ä”˜˜A˜¨5Ô1Ó2Ú ò!ð !ð !ä”š	 1Ó%Ó&Ú ò!ð !ð !ä”š	 1°Ô6Ó7Ú8ò9ð 9ñ 9re   c            	      óà  — t        t        d«      «      } t        t        | dd¬«      «      dgk(  sJ ‚t        t        | dd¬«      «      g d¢k(  sJ ‚t        t        | dd¬«      «      g d	¢k(  sJ ‚t        t        | d
d¬«      «      g d¢k(  sJ ‚t        t        | dd¬«      «      dgk(  sJ ‚t        t        | dd¬«      «      g d¢k(  sJ ‚t        t        | dd¬«      «      g d¢k(  sJ ‚t        t        t        | d
d¬«      «      «      dk(  sJ ‚t        t        t        | dd¬«      «      «      dk(  sJ ‚t        t        | d d d
d¬«      «      g k(  sJ ‚t        t        | d d d
d¬«      «      g d¢k(  sJ ‚y )Nr‡   r   Fr¦   rd   r^   r¨   r_   )rª   r«   r¬   ©r^   r   rk   r‰   ©r_   r   r¡   rŠ   ©ro   r   ©ro   r^   r£   ro   )r¯   r°   ©r   r_   r^   r±   ©r   ro   r^   )r   ro   r_   ©r^   r   r_   )r^   r   ro   ©r^   r_   r   r‚   )r^   ro   r   )r^   ro   r_   ©r_   r   r^   )r_   r   ro   ©r_   r^   r   )r_   r^   ro   )r_   ro   r   )r_   ro   r^   )ro   r   r^   )ro   r   r_   )ro   r^   r   )ro   r^   r_   )ro   r_   r   ©ro   r_   r^   T)rl   rª   r«   r¬   r»   rŸ   rk   r‰   r¼   r¡   r­   rŠ   r½   r¾   r£   r®   é@   é   rŒ   )rQ   r–   r<   r¶   r·   s    rU   Útest_variationsrÈ   ¢   s�  € äŒU�1‹X‹€AÜ”
˜1˜a¨EÔ2Ó3¸°tÒ;Ð;Ð;Ü”
˜1˜a¨EÔ2Ó3Ò7OÒOÐOÐOÜ”
˜1˜a¨EÔ2Ó3ò  8Xò  Xð  Xð  XÜ”
˜1˜a¨EÔ2Ó3ò  8@ò  @ð  @ð  @Ü”
˜1˜a¨DÔ1Ó2°r°dÒ:Ð:Ð:Ü”
˜1˜a¨DÔ1Ó2Ò6NÒNÐNÐNÜ”
˜1˜a¨DÔ1Ó2ò 7?ò ?ð ?ð ?ô Œt”J˜q !°Ô5Ó6Ó7¸2Ò=Ð=Ð=ÜŒt”J˜q !°Ô5Ó6Ó7¸3Ò>Ð>Ð>Ü”
˜1˜R˜a˜5 !°Ô6Ó7¸2Ò=Ð=Ð=Ü”
˜1˜R˜a˜5 !°Ô5Ó6ò ;ò ð ñ re   c            	      ó<  — t        t        ddgg d¢«      «      g d¢k(  sJ ‚t        t        «       «      dgk(  sJ ‚t        t        d«      «      dgk(  sJ ‚t        t        dd¬«      «      d	gk(  sJ ‚t        t        t        t        d«      «      «      «      d
dgk(  sJ ‚y )Nr^   r_   r†   rˆ   rd   Úa)rÊ   )Úrepeat)rÊ   rÊ   r©   rh   )rQ   r   r–   rd   re   rU   Útest_cartesrÌ   º   s–   € Ü”˜˜1�všyÓ)Ó*Ú8ò9ð 9ð 9ä”“‹>˜b˜TÒ!Ð!Ð!Ü”�s“Ó  Ò(Ð(Ð(Ü”�s 1Ô%Ó&¨:¨,Ò6Ð6Ð6Ü””tœE !›H“~Ó&Ó'¨D°$¨<Ò7Ð7Ñ7re   c                  óˆ   — t        «       } t        | t        d«      «      }t        |d«      t	        t        d«      «      k(  sJ ‚y )Nzx0 x2 x3ro   zx1 x4 x5)r,   r   r   r8   rQ   )ÚsÚfiltereds     rU   Útest_filter_symbolsrÐ   Ã   s:   € ÜÓ€AÜ˜a¤¨Ó!4Ó5€HÜ�˜!Ó¤¤W¨ZÓ%8Ó 9Ò9Ð9Ñ9re   c            	      ó¸   — t        t        ¬«      } t        t        | «      t        «      sJ ‚t        t        ddt	        d«      g¬«      «      t	        d«      k(  sJ ‚y )Nr{   ÚCr^   ÚC1)ÚstartÚexcludeÚC2)r,   r
   r•   Únextr   )rÎ   s    rU   Útest_numbered_symbolsrØ   É   sN   € ÜœUÔ#€AÜ”d˜1“gœuÔ%Ð%Ð%ÜÔ  ¨A¼À»°ÔGÓHÜ�‹òð ñ re   c                  ó„  — t        t        t        d«      «      d„ «      ddgg d¢dœk(  sJ ‚t        t        t        gd„ «      t        gt        gdœk(  sJ ‚t        t
        j                  gd	„ «      d
dgik(  sJ ‚t        g d¢d„ d¬«      ddgddgfk(  sJ ‚t        g d¢d„ d¬«      dgg d¢fk(  sJ ‚t        t        d„ «       y )Nrc   c                 ó   — | dz  S ©Nr_   rd   ©Ú_s    rU   rr   ztest_sift.<locals>.<lambda>Ñ   s
   € ¨!¨a©%€ re   r^   ro   )r   r_   r‡   r»   c                 ó,   — | j                  t        «      S ©N©ÚhasrS   rÜ   s    rU   rr   ztest_sift.<locals>.<lambda>Ò   s   €  !§%¡%¬£(€ re   )FTc                 ó,   — | j                  t        «      S rß   rà   rÜ   s    rU   rr   ztest_sift.<locals>.<lambda>Ó   s   €  1§5¡5¬£8€ re   F©r   r^   r_   ro   c                 ó   — | dz  S rÛ   rd   ©rS   s    rU   rr   ztest_sift.<locals>.<lambda>Ô   s
   € ¨¨A©€ re   T©Úbinaryr   r_   c                 ó   — | dz  dk(  S )Nro   r^   rd   rå   s    rU   rr   ztest_sift.<locals>.<lambda>Ö   s   € ¨¨A©°©
€ re   r±   c                  ó$   — t        g d¢d„ d¬«      S )Nrã   c                 ó   — | dz  S )Nro   rd   rå   s    rU   rr   z-test_sift.<locals>.<lambda>.<locals>.<lambda>Ù   s
   €  Q¨¡U€ re   Træ   )r5   rd   re   rU   rr   ztest_sift.<locals>.<lambda>Ø   s   € ÜŠ\™?°4Ô8ð re   )	r5   rQ   r–   rS   rR   rH   ÚOnerI   r~   rd   re   rU   Ú	test_siftrì   Ð   sÓ   € Ü””U˜1“X“¡Ó0¸¸A¸Â9Ñ4MÒMÐMÐMÜ””A�Ñ*Ó+¼°sÄ1À#Ñ/FÒFÐFÐFÜ”—‘�Ñ+Ó,°¸¸°Ò<Ð<Ð<Ü’™o°dÔ;Ø	
ˆAˆ��A�ð@ò ð ð ä’Ñ2¸4Ô@Ø	
ˆŠYðEò ð ð ä
Œ:ñ 9õ :re   c                  óÎ   — t        «       } t        | d«      t        t        d«      «      k(  sJ ‚t        | d«      t        t        d«      «      k(  sJ ‚t        g d¢d«      g d¢k(  sJ ‚y )Nrc   zx0:5zx5:10©r^   r_   ro   r‡   rc   )r,   r8   rQ   r   )ÚXs    rU   Ú	test_takerð   Ü   sZ   € ÜÓ€Aä��1‹:œœg f›oÓ.Ò.Ð.Ð.Ü��1‹:œœg gÓ.Ó/Ò/Ð/Ð/ä’ Ó#¢Ò6Ð6Ñ6re   c                  óÄ  — t        i dt        t        t        i«      dt        t        t        ik(  sJ ‚t        dt        t        t        ii «      dt        t        t        ik(  sJ ‚t        dt        idt        t        t        i«      dt        dt        t        t        ik(  sJ ‚t        dt        t        t        idt        i«      dt        dt        t        t        ik(  sJ ‚t        t        t        dœdt        t        t        i«      dt        dt        t        t        ik(  sJ ‚t        dt        t        t        it        t        dœ«      dt        dt        t        t        ik(  sJ ‚y )Nr^   r_   rk   )r   rS   rR   r   rd   re   rU   Útest_dict_mergerò   å   s  € Ü�b˜1œa¤¤A˜,Ó'¨A¬q´!´Q¨<Ò7Ð7Ð7Ü�qœ!œQ¤�l BÓ'¨A¬q´!´Q¨<Ò7Ð7Ð7ä�qœ!�f˜q¤!¤Q¬˜lÓ+°´1°a¼¼A¼qÐ/AÒAÐAÐAÜ�qœ!œQ¤�l Q¬ FÓ+°´1°a¼¼A¼qÐ/AÒAÐAÐAäœ!¤‘l Q¬¬1¬a LÓ1°a¼¸A¼qÄ!ÄQÐ5GÒGÐGÐGÜ�qœ!œQ¤�l¬¬a¡LÓ1°a¼¸A¼qÄ!ÄQÐ5GÒGÐGÑGre   c                  ó   — t        t        g «      «      g k(  sJ ‚t        t        dg«      «      dggk(  sJ ‚t        t        ddg«      «      dgddggk(  sJ ‚t        t        g d¢«      «      dgddgg d¢g d¢g d¢gk(  sJ ‚y )Nr^   r_   rî   r‚   ©r^   r_   ro   r‡   )rQ   r0   rd   re   rU   Útest_prefixesrõ   ð   s�   € Ü”˜“Ó Ò#Ð#Ð#Ü”˜!˜“Ó A 3 %Ò'Ð'Ð'Ü”˜!˜Q˜Ó Ó! q c¨A¨q¨6 ]Ò2Ð2Ð2ä”šÓ)Ó*Ø
ˆˆq�!ˆf’i¢ªÐ?ò@ð @ñ @re   c                  ó   — t        t        g «      «      g k(  sJ ‚t        t        dg«      «      dggk(  sJ ‚t        t        ddg«      «      dgddggk(  sJ ‚t        t        g d¢«      «      dgddgg d¢g d¢g d¢gk(  sJ ‚y )Nr^   r_   rî   rc   r‡   r†   )r_   ro   r‡   rc   )rQ   r/   rd   re   rU   Útest_postfixesr÷   ù   s�   € Ü”	˜"“Ó "Ò$Ð$Ð$Ü”	˜1˜#“Ó Q C 5Ò(Ð(Ð(Ü”	˜1˜a˜&Ó!Ó"¨ s¨Q°¨F mÒ3Ð3Ð3ä”	š/Ó*Ó+Ø
ˆˆq�!ˆf’i¢ªÐ?ò@ð @ñ @re   c                  ó–   ‡ ‡— g d¢Šg d¢Š t        ‰‰ f«      g d¢k(  sJ ‚t        ‰‰ fd„ ¬«      g d¢k(  sJ ‚t        t        ˆ ˆfd„«       y )N)r_   ro   rc   é   é   é	   é
   r}   )	)rù   r}   ©rù   rú   )rc   r}   )ro   rú   )ro   rü   )r}   r_   )r}   rû   )r}   rü   )rú   rû   )ro   rc   rù   rú   r}   r_   rû   rü   c                 ó   — |  S rß   rd   )Úvs    rU   rr   z'test_topological_sort.<locals>.<lambda>	  s   € °1°"€ re   rN   )rù   rc   r}   ro   rü   rú   rû   r_   c                  ó&   •— t        ‰‰ dgz   f«      S )N)rü   rù   )r9   ©ÚEÚVs   €€rU   rr   z'test_topological_sort.<locals>.<lambda>  s   ø€ Ô/°°A¸¸	±MÐ0BÓC€ re   )r9   rI   r~   r  s   @@rU   Útest_topological_sortr    sV   ù€ Ú"€Aò	$€Aô ˜Q ˜FÓ#Ò'AÒAÐAÐAÜ˜Q ˜F©Ô5Ú"ò#ð #ð #ô Œ:ÔCÕDre   c                  ó  — t        g g f«      g k(  sJ ‚t        g d¢g f«      dgdgdggk(  sJ ‚g d¢} g d¢}t        | |f«      g d¢gk(  sJ ‚g d¢} g d¢}t        | |f«      dgddgdggk(  sJ ‚g d¢} g d	¢}t        | |f«      ddgddggk(  sJ ‚y )
Nr‚   r^   r_   ro   ©rk   r‰   r¡   rŠ   r¾   rô   ©rk   rŠ   r£   ©ro   r‡   r‡   )rk   r¡   r  )r‡   ro   )r6   ©r  r  s     rU   Ú"test_strongly_connected_componentsr
    s½   € Ü(¨"¨b¨Ó2°bÒ8Ð8Ð8Ü(ª)°R¨Ó9¸q¸cÀAÀ3ÈÈ¸_ÒLÐLÐLâ€AÚ0€AÜ(¨!¨Q¨Ó0²Y°KÒ?Ð?Ð?â€AÚ(€AÜ(¨!¨Q¨Ó0°a°S¸1¸a¸&À1À#Ð4FÒFÐFÐFâ€AÚ(€AÜ(¨!¨Q¨Ó0°a¸°V¸aÀ¸VÐ4DÒDÐDÑDre   c                  ó  — t        g g f«      g k(  sJ ‚t        g d¢g f«      dgdgdggk(  sJ ‚g d¢} g d¢}t        | |f«      g d¢gk(  sJ ‚g d¢} g d¢}t        | |f«      g d¢gk(  sJ ‚g d¢} dd	g}t        | |f«      ddgdd
ggk(  sJ ‚y )Nr‚   r^   r_   ro   r  rô   r  rk   r  r‡   )r   r	  s     rU   Útest_connected_componentsr     sµ   € Ü  R Ó)¨RÒ/Ð/Ð/Ü¢¨B Ó0°a°S¸1¸#À¸s°OÒCÐCÐCâ€AÚ0€AÜ  A Ó'ªI¨;Ò6Ð6Ð6â€AÚ(€AÜ  A Ó'ªL¨>Ò9Ð9Ð9â€AØ	�Ð€AÜ  A Ó'¨Q°¨F°Q¸°FÐ+;Ò;Ð;Ñ;re   c                  ó  — g d¢} t        | d«      g d¢k(  sJ ‚t        | d«      g d¢k(  sJ ‚g } t        | d«      }|g k(  sJ ‚|j                  d«       | g k(  sJ ‚t        | d«      }|g k(  sJ ‚|j                  d«       | g k(  sJ ‚y )N©r   r^   r_   ro   r‡   r_   )r_   ro   r‡   r   r^   r^   )r‡   r   r^   r_   ro   )r2   r3   Úappend)ÚAÚBs     rU   Útest_rotater  1  s�   € Ú€Aä�q˜!Ó¢Ò/Ð/Ð/Ü˜˜1Ó¢Ò0Ð0Ð0Ø
€AÜ�Q˜Ó€AØ�Š7€Nˆ7Ø‡H�HˆQ„KØ�Š7€Nˆ7Ü�A�qÓ€AØ�Š7€Nˆ7Ø‡H�HˆQ„KØ�Š7€N‰7re   c            
      óB  — g d¢} t        t        | d«      «      dgdgdgdgdgggk(  sJ ‚t        t        t        | d«      «      «      dk(  sJ ‚t        t        t        | d«      «      «      d	k(  sJ ‚t        t        g d
¢d«      «      g d¢dggg d¢ddggg d¢dggg d¢ddggddgg d¢ggk(  sJ ‚t        t        g d¢d«      «      g d¢dggddgddggg d¢dggddgddgggk(  sJ ‚t        t        g d¢d«      «      g d¢dggg d¢dggddgddggg d¢dggddgddggddgddggdgg d¢ggk(  sJ ‚t        t        g d¢d«      «      ddgdggdgddgggk(  sJ ‚t        t        d«      «      g d¢gddgdggddgdggdgddggdgdgdgggk(  sJ ‚t        t        dd«      «      ddgdggddgdggdgddgggk(  sJ ‚t        t        dgdz  d«      «      dgddgggk(  sJ ‚t        t        dgdz  «      «      g d¢gdgddggdgdgdgggk(  sJ ‚g d¢}t        t        |«      «      t        t        t        |«      «      «      k(  sJ ‚t        t        |d«      «      g k(  sJ ‚t        t        |d«      «      g d¢ggk(  sJ ‚t        t        |dgz   d«      «      g k(  sJ ‚t        t        |dgz   d«      «      g d¢ggk(  sJ ‚t        t        dd«      «      g k(  sJ ‚t        t        dd«      «      ddgggk(  sJ ‚t        t        d«      «      dgggk(  sJ ‚t        t        dd«      «      g k(  sJ ‚t        t        d«      «      ddggdgdgggk(  sJ ‚t        t        dd«      «      ddgggk(  sJ ‚t        t        dd«      «      dggk(  sJ ‚t        t        ddgd«      «      ddgggk(  sJ ‚g d¢}t        d«      D �cg c]  }t	        d„ |D «       «      ‘Œ c}|k(  sJ ‚dgddgd dgdd!gg d"¢g d#¢g d$¢g}t        ddg«      D �cg c]  }t        |ddg«      ‘Œ c}|k(  sJ ‚y c c}w c c}w )%Nr  rc   r   r^   r_   ro   r‡   rü   é   )r^   r^   r^   r_   r_   )r^   r^   r^   r_   r’   )r^   r^   r_   r_   r²   r´   rô   r‚   )r^   r_   r‡   ©r^   ro   r‡   ©r_   ro   r‡   r¯   rÅ   rÊ   ÚabÚbÚaaa)$)Úmpsyy)ÚmpsyrR   )ÚmpsÚyy)r  rR   rR   )ÚmpyyrÎ   )ÚmpyÚsy)r  rÎ   rR   )ÚmpÚsyy)r!  r   rR   )r!  rÎ   r  )r!  rÎ   rR   rR   )ÚmsyyÚp)ÚmsyÚpy)r%  r$  rR   )ÚmsÚpyy)r'  r&  rR   )r'  r$  r  )r'  r$  rR   rR   )ÚmyyÚps)r)  r$  rÎ   )ÚmyÚpsy)r+  r*  rR   )r+  r&  rÎ   )r+  r$  r   )r+  r$  rÎ   rR   )ÚmÚpsyy)r-  r,  rR   )r-  r*  r  )r-  r*  rR   rR   )r-  r(  rÎ   )r-  r&  r   )r-  r&  rÎ   rR   )r-  r$  r"  )r-  r$  r   rR   )r-  r$  rÎ   r  )r-  r$  rÎ   rR   rR   Úsympyc              3   ó>   K  — | ]  }d j                  |«      –— Œ y­w©rX   N©Újoin)Ú.0Úparts     rU   ú	<genexpr>z+test_multiset_partitions.<locals>.<genexpr>{  s   è ø€ Ò. D�"—'‘'˜$—-Ñ.ùó   ‚é   rú   é   ra   )r‡   r_   ro   )ra   r_   r_   )r_   r_   r_   ro   )rQ   r)   r¶   rT   ÚtuplerG   rF   )r  rÊ   Úansr$  Ú
factoringss        rU   Útest_multiset_partitionsr=  A  sr  € Ú€AäÔ# A qÓ)Ó*°°°a°S¸1¸#À¸sÀQÀCÐ/HÐ.IÒIÐIÐIÜŒtÔ'¨¨1Ó-Ó.Ó/°2Ò5Ð5Ð5ÜŒtÔ'¨¨1Ó-Ó.Ó/°2Ò5Ð5Ð5äÔ#¢O°QÓ7Ó8Ú	˜�sÐši¨!¨Q¨Ð0²<À!ÀÐ2EÚ	�Q˜�FÐ˜q !˜f¢iÐ0ð=2ò 2ð 2ð 2ô Ô#¢L°!Ó4Ó5Ú	�Q�CÐ˜A˜q˜6 A q 6Ð*ªY¸¸Ð,<Ø
ˆQˆ�!�Q�Ðð:ò ð ð ô Ô#¢L°!Ó4Ó5Ú	�Q�CÐš9 q cÐ*¨a°¨V°a¸°VÐ,<Ú	�Q�CÐ˜A˜q˜6 A q 6Ð*¨a°¨V°a¸°VÐ,<Ø
ˆŠiÐð:ò ð ð ô
 Ô#¢I¨qÓ1Ó2Ø
ˆQˆ�!�ˆ˜˜˜a ˜V�}ð7&ò &ð &ð &ô Ô# AÓ&Ó'Ú	ˆ�q˜!�f˜q˜c�] a¨ V¨a¨S M°Q°C¸!¸Q¸°=Ø
ˆˆqˆc�A�3ˆð,ò ð ð ô Ô# A qÓ)Ó*Ø
ˆQˆ�!�ˆ˜˜A˜  �}¨ s¨Q°¨F mð/5ò 5ð 5ð 5äÔ# Q C¨!¡G¨QÓ/Ó0°q°c¸A¸q¸6°]°OÒCÐCÐCÜÔ# Q C¨!¡GÓ,Ó-Ú	ˆ�q�c˜A˜q˜6�] a S¨1¨#°¨s Oð25ò 5ð 5ð 5â€AÜÔ# AÓ&Ó'ÜÔ ¤¨£Ó+Ó,ò-ð -ð -äÔ# A qÓ)Ó*¨bÒ0Ð0Ð0ÜÔ# A qÓ)Ó*²	¨{¨mÒ;Ð;Ð;ÜÔ# A¨¨¡G¨QÓ/Ó0°BÒ6Ð6Ð6ÜÔ# A¨¨¡G¨QÓ/Ó0²l°^Ð4DÒDÐDÐDÜÔ# A qÓ)Ó*¨bÒ0Ð0Ð0ÜÔ# A qÓ)Ó*°°A°¨x¨jÒ8Ð8Ð8ÜÔ# CÓ(Ó)°¨u¨g¨YÒ6Ð6Ð6ÜÔ# C¨Ó+Ó,°Ò2Ð2Ð2ÜÔ# DÓ)Ó*°°c°
¨|¸s¸eÀcÀU¸^Ð.LÒLÐLÐLÜÔ# D¨!Ó,Ó-°C¸°:°,°Ò?Ð?Ð?ÜÔ# E¨1Ó-Ó.°E°7°)Ò;Ð;Ð;ÜÔ# Q¨ F¨AÓ.Ó/°a¸°V°H°:Ò=Ð=Ð=ò&€Cô -¨WÓ5ö7Øô Ñ.¨AÔ.Õ.ò 7Ø:=ò>ð >ð >à�$˜˜A˜  Q ¨!¨Q¨²Úš\ð+€Jô /°°1¨vÓ6ö8Øô ˜a ! A Õ'ò 8Ø;EòFð Fñ Fùò	7ùò8s   Î3PÏ9Pc                  ó°  — g d¢} t        t        dd«      «      D �cg c]  }dj                  |«      ‘Œ c}| k(  sJ ‚t        d«      }t        t        |d«      «      D �cg c]  }dj                  |«      ‘Œ c}| k(  sJ ‚t        |d«      D �cg c]  }dj                  |«      ‘Œ c}g k(  sJ ‚t        t        dgddggd«      «      dgddgggk(  sJ ‚t	        t        t        dd«      «      «      d	k(  sJ ‚t	        t        t        dd	«      «      «      dk(  sJ ‚t        t        d
d«      «      dgdgdggk(  sJ ‚t        t        d„ «       y c c}w c c}w c c}w )N)ÚiiiÚiimÚiipÚiisÚimpÚimsÚippÚipsÚissÚmppr  ÚmssÚppsÚpssÚsssÚmississippiro   rX   é   r^   r_   rÊ   r   Úabcr  Úcc                  ó2   — t        t        dddœd«      «      S )Nro   r`   rª   r_   )rQ   r(   rd   re   rU   rr   z,test_multiset_combinations.<locals>.<lambda>�  s   € œtÔ$9¸aÀB¹-ÈÓ$KÓL€ re   )rQ   r(   r3  r'   r¶   rI   r~   )r;  ÚiÚMs      rU   Útest_multiset_combinationsrT  ƒ  sc  € ò<€Cô Ô& }°aÓ8Ó9ö;˜1ˆB�G‰G�A�Jò ;Ø>AòBð Bð Bä�Ó€AäÔ& q¨!Ó,Ó-ö/˜1ˆB�G‰G�A�Jò /Ø25ò6ð 6ð 6ä 5°a¸Ó <Ö=˜1ˆB�G‰G�A�JÒ=ÀÒCÐCÐCÜÔ%¨ s¨Q°¨F m°QÓ7Ó8¸q¸cÀAÀqÀ6¸]¸OÒKÐKÐKÜŒtÔ)¨#¨qÓ1Ó2Ó3°qÒ8Ð8Ð8ÜŒtÔ)¨#¨qÓ1Ó2Ó3°qÒ8Ð8Ð8ÜÔ% e¨QÓ/Ó0°c°U¸S¸EÀCÀ5Ð4IÒIÐIÐIÜ
Œ:ÑLÕMùò;ùò/ùâ=s   œE	ÁEÂEc                  óT  ‡— g d¢} t        d«      D �cg c]  }dj                  |«      ‘Œ c}| k(  sJ ‚t        t        d«      «      D �cg c]  }dj                  |«      ‘Œ c}| k(  sJ ‚t        t        g d¢d«      «      ddggk(  sJ ‚t        t        g d¢d«      «      ddgddgddgddgddgddggk(  sJ ‚t	        t        t        d	d«      «      «      dk(  sJ ‚t	        t        t        d	d
«      «      «      dk(  sJ ‚g i dfD ]  }t        t        |«      «      g gk(  rŒJ ‚ t        t        d«      «      g gk(  sJ ‚t        t        |d«      «      g k(  sJ ‚t        t        |d«      «      g k(  sJ ‚d„ Št        ˆfd„«      t        d«      k(  sJ ‚t        t        d„ «       y c c}w c c}w )N)ÚabbyÚabybÚaybbÚbabyÚbaybÚbbayÚbbyaÚbyabÚbybaÚyabbÚybabÚybbarY  rX   r�   r_   r   r¿   r^   rÊ   ro   r`   c                  óx   — t        dd«      D ]+  } t        | «       t        g d¢| «      D ]  }t        |«       Œ Œ- y )Nr^   rù   )r   r   r^   r   r^   )r–   Úprintr*   )rR  r$  s     rU   Útestz(test_multiset_permutations.<locals>.test¤  s;   € Ü�q˜!“ò 	ˆAÜ�!ŒHÜ*ª?¸AÓ>ò �Ü�a•ññ	re   c                  ó   •—  ‰ «       S rß   rd   )rd  s   €rU   rr   z,test_multiset_permutations.<locals>.<lambda>©  s	   ø€ ™4›6€ re   aÐ          1
        [0]
        [1]
        2
        [0, 0]
        [0, 1]
        [1, 0]
        [1, 1]
        3
        [0, 0, 0]
        [0, 0, 1]
        [0, 1, 0]
        [0, 1, 1]
        [1, 0, 0]
        [1, 0, 1]
        [1, 1, 0]
        4
        [0, 0, 0, 1]
        [0, 0, 1, 0]
        [0, 0, 1, 1]
        [0, 1, 0, 0]
        [0, 1, 0, 1]
        [0, 1, 1, 0]
        [1, 0, 0, 0]
        [1, 0, 0, 1]
        [1, 0, 1, 0]
        [1, 1, 0, 0]
        5
        [0, 0, 0, 1, 1]
        [0, 0, 1, 0, 1]
        [0, 0, 1, 1, 0]
        [0, 1, 0, 0, 1]
        [0, 1, 0, 1, 0]
        [0, 1, 1, 0, 0]
        [1, 0, 0, 0, 1]
        [1, 0, 0, 1, 0]
        [1, 0, 1, 0, 0]
        [1, 1, 0, 0, 0]
        6
c                  ó0   — t        t        dddœ«      «      S )Nro   r`   rª   )rQ   r*   rd   re   rU   rr   z,test_multiset_permutations.<locals>.<lambda>Ñ  s   € œtÔ$9¸aÀB¹-Ó$HÓI€ re   )	r*   r3  r'   rQ   r¶   r   r   rI   r~   )r;  rR  Únulrd  s      @rU   Útest_multiset_permutationsrh  “  sÉ  ø€ ò+€Cä 5°fÓ =Ö>˜1ˆB�G‰G�A�JÒ>À#ÒEÐEÐEÜ 5´h¸vÓ6FÓ GÖH˜1ˆB�G‰G�A�JÒHÈCÒOÐOÐOÜÔ%¢i°Ó3Ó4¸!¸Q¸¸Ò@Ð@Ð@ÜÔ%¢i°Ó3Ó4Ø	
ˆAˆ��A�˜˜A˜  A ¨¨A¨°°A°ð98ò 8ð 8ð 8äŒtÔ)¨#¨qÓ1Ó2Ó3°qÒ8Ð8Ð8ÜŒtÔ)¨#¨qÓ1Ó2Ó3°qÒ8Ð8Ð8Ø�B˜ˆ|ò 8ˆÜÔ)¨#Ó.Ó/°B°4Ó7Ð7Ð7ð8äÔ% c¨1Ó-Ó.°2°$Ò6Ð6Ð6äÔ% c¨1Ó-Ó.°"Ò4Ð4Ð4ÜÔ% c¨2Ó.Ó/°2Ò5Ð5Ð5òô
 “>Ó"¤fð '.ó ''ò 'ð 'ð 'ôP Œ:ÑIÕJùòw ?ùÚHs   “F Á	F%c            	      ó   — i gdi fgg} t        d«      D ]¿  }t        t        d|¬«      «      | |   k(  sJ ‚t        t        dd|¬«      «      | |   k(  sJ ‚t        t        ddd|¬«      «      | |   k(  sJ ‚t        t        ddd |¬«      «      | |   k7  sJ ‚t        t        dd d|¬«      «      | |   k7  sJ ‚t        t        ddd|¬«      «      | |   k(  rŒ¿J ‚ t        t        dd¬«      «      ddidddœd	ddœddigk(  sJ ‚t        t        dd¬«      «      ddidddd
œdddœddidddœd	ddœddigk(  sJ ‚t        t        dd	d¬«      «      d	diddddœdddœdddœgcxk(  rOt        dd	d¬«      D �cg c]3  }t        d„ |D «       «      sŒt	        |j                  «       «      dk  r|‘Œ5 c}k(  sJ ‚ J ‚t        t        t        d«      d¬«      «      ddidddœgk(  sJ ‚t        t        d	d¬«      «      dddœddidddœdd	igcxk(  r0t        d	«      D �cg c]  }t        d„ |D «       «      sŒ|‘Œ c}k(  sJ ‚ J ‚t        dd«      D ]=  }d}t        |«      D ]  \  }}|t        ||«      k(  sJ ‚|dz  }Œ |t        |«      k(  rŒ=J ‚ y c c}w c c}w )Nr   r_   )Úsizer^   ra   )Úkro   rk   r‡   r‚   r‰   rú   )rk  r-  r  r‹   rŠ   c              3   ó&   K  — | ]	  }|d k  –— Œ y­w)r‡   Nrd   ©r4  rk  s     rU   r6  z"test_partitions.<locals>.<genexpr>ç  s   è ø€ Ò1D¸Q°!°qµ&Ñ1Dùó   ‚)r-  c              3   ó&   K  — | ]	  }|d k  –— Œ y­w)ro   Nrd   rm  s     rU   r6  z"test_partitions.<locals>.<genexpr>ï  s   è ø€ Ò':°1¨¨Q­Ñ':ùrn  )
r–   rQ   r-   ÚallÚsumÚvaluesrH   r   r   r   )r;  rR  Únr-  Úqs        rU   Útest_partitionsru  Ô  s*  € Øˆ4�1�b�'�Ð
€CÜ�1‹Xò ;ˆÜ”J˜q qÔ)Ó*¨c°!©fÒ4Ð4Ð4Ü”J˜q !¨!Ô,Ó-°°Q±Ò7Ð7Ð7Ü”J˜q ! Q¨QÔ/Ó0°C¸±FÒ:Ð:Ð:Ü”J˜q ! T°Ô2Ó3°s¸1±vÒ=Ð=Ð=Ü”J˜q $¨°Ô2Ó3°s¸1±vÒ=Ð=Ð=Ü”J˜q ! Q¨QÔ/Ó0°C¸±FÓ:Ð:Ð:ð;ô ”
˜1 Ô"Ó#Ø	
ˆAˆ�A˜!‘ !¨™l¨Q°¨Fð(4ò 4ð 4ð 4ô ”
˜1 Ô"Ó#Ø	
ˆAˆ�A˜! Ñ"¨¨a¡L°1°a°&¸aÀA¹,Ø�!‰�q˜!�fð(ò ð ð ô ”
˜1  QÔ'Ó(Ø	
ˆAˆ�A˜! Ñ"¨¨a¡L°a¸A±,ð-@ô !ä˜a 1¨Ô*öD!Ø¬cÑ1DÀ!Ô1DÕ.DÜ�—‘“
‹O˜aÒò 	
òD!ò!ð !ñ !ð !ð !ô
 ”
œ1˜Q›4 1Ô%Ó&Ø	
ˆAˆ�A˜!‘ð+ò ð ð ô ”
˜1 Ô"Ó#Ø�!‰�q˜!�f !¨™l¨Q°¨Fð(4ô <ä˜a“=ö8<Ø¤CÑ':¸Ô':Õ$:Šò8<ò<ð <ñ <ð <ð <ô �1�a‹[ò  ˆØˆÜ$ QÓ'ò 	‰DˆAˆqØœ A qÓ)Ò)Ð)Ð)Ø�‰F‰Að	ð ”H˜Q“KÓÐÐñ ùò#D!ùò8<s   Å0JÆ JÈJÈ+Jc                  ó  — t        d«      D � cg c]  } | d d  ‘Œ	 c} ddgg d¢g d¢g d¢g d¢g d¢g d	¢g d
¢g d¢g d¢g d¢g d¢g d¢g d¢gk(  sJ ‚t        t        d«      D �cg c]  }|d d  ‘Œ	 c}«      dk(  sJ ‚y c c} w c c}w )Nrü   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‡   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^   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¶   )rR  Újs     rU   Útest_binary_partitionsrz  ÿ  s�   € Ü+¨BÓ/Ö0�QˆA‰aŠDÒ0°a¸°VºYÚ’<¢ªÚÒ1²?ÚÒ1Ò3KÚ#Ò%Cð	5Eò Eð Eð Eô Ô/°Ó3Ö4˜�‘!’Ò4Ó5¸Ò;Ð;Ñ;ùò 1ùò 5s   ŽA7ÁA<c            
      óè  — t        dd«      D � cg c]  } t        t        t        | «      «      «      ‘Œ! c} t        dd«      D � cg c]  } t	        | «      ‘Œ c} k(  sJ ‚t        t        d«      «      g d¢k(  sJ ‚t        dd«      D ]R  }t        t        |«      «      }t        |«      }|D ],  }|t        |j                  «      k(  sJ ‚|j                  «       }Œ. ŒT t        t        d„ «       y c c} w c c} w )Nr^   rù   ro   )r¯   r¿   rÃ   rÄ   rÂ   rÁ   rc   c                  ó*   — t        t        d«      «      S )Nr   )rQ   r   rd   re   rU   rr   z test_bell_perm.<locals>.<lambda>  s   € œt¤M°!Ó$4Ó5€ re   )r–   r¶   r”   r   r   rQ   r   r:  Ú
array_formÚnext_trotterjohnsonrI   r~   )rR  rs  r$  r  Úbis        rU   Útest_bell_permr€  	  só   € Ü05°a¸³Ö<¨1ŒC””M !Ó$Ó%Õ&Ò<Ü# A q›köA+ØŒ	�!�òA+ò +ð +ð +ä”˜aÓ Ó!ò &Jò Jð Jð Jô
 �1�a‹[ò (ˆÜœ˜a›Ó!ˆÜ˜!ÓˆØò 	(ˆBØœ˜qŸ|™|Ó,Ò,Ð,Ð,Ø×%Ñ%Ó'‰Añ	(ð(ô Œ:Ñ5Õ6ùò =ùò A+s   �$C*ÁC/c            	      óÞ   — g d¢} t        | «      D ]V  \  }}t        t        |dz   «      «      }t        |«      |k(  sJ ‚t        |D �ch c]  }t	        |«      dz  ’Œ c}«      dk(  rŒVJ ‚ y c c}w )N)r^   r_   r‡   rü   é   éL   r^   r_   )Ú	enumeraterQ   r   r¶   r   )Úlengthsrs  ÚNrR  ry  s        rU   Útest_involutionsr‡    so   € Ú#€GÜ˜'Ó"ò 8‰ˆˆ1ÜÔ% a¨!¡eÓ,Ó-ˆÜ�1‹v˜Š{Ðˆ{Ü¨qÖ1¨!”K “N AÓ%Ò1Ó2°aÓ7Ð7Ð7ñ8ùò 2s   ÁA*
c                  ó’  — t        t        t        t        t        d«      «      «      «      «      dk(  sJ ‚dj	                  d„ t        d«      D «       «      dk(  sJ ‚t        t        g d¢«      «      g d¢g d	¢g d
¢g d¢g d¢g d¢g d¢g d¢g d¢g	k(  sJ ‚t        t        g d¢«      «      g d¢g d¢gk(  sJ ‚t        t        d«      «      t        d«      gk(  sJ ‚t
        } t         | d«      «      g k(  sJ ‚ | d«      D �cg c]  }dj	                  |«      ‘Œ c}dgk(  sJ ‚ | d«      D �cg c]  }dj	                  |«      ‘Œ c}ddgk(  sJ ‚ | d«      D �cg c]  }dj	                  |«      ‘Œ c}dgk(  sJ ‚ | d«      D �cg c]  }dj	                  |«      ‘Œ c}g d¢k(  sJ ‚ | d«      D �cg c]  }dj	                  |«      ‘Œ c}g d¢k(  sJ ‚ | d «      D �cg c]  }dj	                  |«      ‘Œ c}g d!¢k(  sJ ‚t        t        d"gd#gd#gd$gg«      «      d#gd$gd"gd#ggd#gd"gd$gd#gggk(  sJ ‚y c c}w c c}w c c}w c c}w c c}w c c}w )%Nra   i	  rX   c              3   ó>   K  — | ]  }d j                  |«      –— Œ y­wr1  r2  ©r4  rR  s     rU   r6  z$test_derangements.<locals>.<genexpr>$  s   è ø€ ÒF !�2—7‘7˜1—:ÑFùr7  ÚabcdeÚÜbadecbaecdbcaedbcdeabceadbdaecbdeacbdecabeacdbedacbedcacabedcadebcaebdcdaebcdbeacdeabcdebaceabdcebadcedabcedbadabecdaebcdaecbdcaebdcbeadceabdcebadeabcdeacbdebacdebcaeabcdeadbceadcbecabdecbadecdabecdbaedabcedacbedbacedbcarã   )r^   r   ro   r_   )r^   r_   ro   r   )r^   ro   r   r_   )r_   r   ro   r^   )r_   ro   r   r^   )r_   ro   r^   r   )ro   r   r^   r_   )ro   r_   r   r^   )ro   r_   r^   r   )r   r^   r_   r_   )r_   r_   r   r^   )r_   r_   r^   r   Úbar  ÚabbrO  ÚbcaÚcabÚaabbÚbbaaÚaabbcccc)ÚccccaabbÚccccababÚccccabbaÚccccbaabÚccccbabaÚccccbbaaÚaabbccc)ÚcccabbaÚcccababÚcccaabbÚccacbbaÚccacbabÚccacabbÚcbccbaaÚcbccabaÚcbccaabÚbcccbaaÚbcccabaÚbcccaabÚbooks)ÚkbsooÚksbooÚsbkooÚskbooÚoksboÚoskboÚokbsoÚobksoÚoskobÚoksobÚosbokÚobsokro   r_   r^   )r¶   rQ   r   r–   r3  rB   )ÚDrR  s     rU   Útest_derangementsrµ  "  sm  € ÜŒtÔ)¬$¬u°Q«x«.Ó9Ó:Ó;¸sÒBÐBÐBØ�7‰7ÑFÔ'<¸WÓ'EÔFÓFðòð ð ô
 Ô%¢lÓ3Ó4Ú’l¢L²,Ú’l¢L²,Âð9Nò Nð Nð Nô Ô%¢lÓ3Ó4Ú’lð9$ò $ð $ð $äÔ% dÓ+Ó,´°d³°Ò<Ð<Ð<ä€AÜ‘�%“‹>˜RÒÐÐÙ ! $£Ö(˜1ˆB�G‰G�A�JÒ(¨T¨FÒ2Ð2Ð2Ù ! %£Ö)˜1ˆB�G‰G�A�JÒ)¨e°U¨^Ò;Ð;Ð;Ù ! &£	Ö*˜1ˆB�G‰G�A�JÒ*¨v¨hÒ6Ð6Ð6Ù ! *£Ö.˜1ˆB�G‰G�A�JÒ.ò 3ò ð ð ñ !" )£Ö-˜1ˆB�G‰G�A�JÒ-ò 2ò ð ð ñ !" '£
Ö+˜1ˆB�G‰G�A�JÒ+ò 0#ò #ð #ð #ô Ô%¨ s¨Q¨C°!°°q°cÐ&:Ó;Ó<Ø
ˆˆqˆc�A�3˜˜Ð ˜s Q C¨!¨¨q¨cÐ2ðA4ò 4ð 4ñ 4ùò )ùÚ)ùÚ*ùÚ.ùò .ùò ,s$   Ã;H+Ä&H0ÅH5Å=H:Æ)H?ÇIc                  óæ   — d„ } g }t        dd«      D ]/  }|j                  | | |dd«       | |dd«       | |dd«      f«       Œ1 t        |«      t        g d¢g d¢g d	¢g d
¢g d¢g d¢g d¢g«      k(  sJ ‚y )Nc           	      ó@   — t        t        t        | ||«      «      «      S rß   )r¶   rQ   r+   )rs  rk  Úfs      rU   Úcountztest_necklaces.<locals>.countD  s   € Ü”4œ	 ! Q¨Ó*Ó+Ó,Ð,re   r^   rú   r_   r   ro   )r^   r_   r_   ro   )r_   ro   ro   ra   )ro   r‡   r‡   rü   )r‡   ra   ra   é   )rc   rú   rú   é'   )ra   é   é   é\   )rù   é   é   éÆ   )r–   r  r   )r¹  r-  rR  s      rU   Útest_necklacesrÂ  C  sŒ   € ò-à
€AÜ�1�a‹[ò <ˆØ	�‰Ø	‰5��A�q‹>™5  A q›>©5°°A°q«>ð;õ 	<ð<ô �!‹9œÚÚÚÚÚÚÚð ó ò ð ñ re   c                  ó  — t        t        dd«      «      } t        | «      t        ddgddgddgddgddgddgddgddgddgddgg
«      k(  sJ ‚t        t        dd«      «      } t        | «      t        g d¢g d¢g d¢g d	¢g d
¢g d¢g«      k(  sJ ‚y )Nr_   r‡   r   r^   ro   )r   r   r   r   )r   r   r   r^   )r   r   r^   r^   )r   r^   r   r^   )r   r^   r^   r^   )r^   r^   r^   r^   )rQ   r   r   )Úbcs    rU   Útest_braceletsrÅ  T  sÀ   € Ü	Œi˜˜1‹oÓ	€BÜ�"‹:œØ	
ˆAˆØ	
ˆAˆØ	
ˆAˆØ	
ˆAˆØ	
ˆAˆØ	
ˆAˆØ	
ˆAˆØ	
ˆAˆØ	
ˆAˆØ	
ˆAˆð!
ó ò ð ð ô 
Œi˜˜1‹oÓ	€BÜ�"‹:œÚÚÚÚÚÚð!ó ò ð ñ re   c                  óò   — t        t        d«      «      g d¢g d¢g d¢g d¢g d¢g d¢g d¢g d	¢g d
¢g d¢g d¢g d¢g d¢g d¢g d¢g d¢g d¢g d¢g d¢g d¢gk(  sJ ‚t        t        t        d«      «      «      dk(  sJ ‚y )Nrc   r  )r   r^   r_   ro   ro   )r   r^   r_   ro   r_   )r   r^   r_   ro   r^   )r   r^   r_   ro   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^   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^   )r   r^   r^   r   r   )r   r^   r   r^   r   )r   r^   r   r   r   )r   r   r   r   r   rü   i2  )rQ   r    r¶   rd   re   rU   Útest_generate_oriented_forestrÇ  m  sq   € ÜÔ(¨Ó+Ó,²Úšª/º?Úšª/º?Úšª/º?Úšª/º?Úšª/ð1;ò ;ð ;ð ;ô ŒtÔ,¨RÓ0Ó1Ó2°dÒ:Ð:Ñ:re   c            
      ó$  — t        t        d«      «      } t        | «      t        t        | d d d…   | dd d…   «      «      k(  sJ ‚t        | d«      t	        | d d «      t	        | dd  «      gk(  sJ ‚t        t        d„ «       t        t        d„ «       y )Nrü   r_   r^   rc   c                  ó>   — t        t        t        d«      «      d«      S )Nrü   ro   ©r:   rQ   r–   rd   re   rU   rr   z test_unflatten.<locals>.<lambda>{  s   € œy¬¬e°B«i«¸!Ó<€ re   c                  ó>   — t        t        t        d«      «      d«      S )Nrü   rj   rÊ  rd   re   rU   rr   z test_unflatten.<locals>.<lambda>|  s   € œy¬¬e°B«i«¸"Ó=€ re   )rQ   r–   r:   Úzipr:  rI   r~   )Úrs    rU   Útest_unflattenrÎ  w  s‚   € ÜŒU�2‹Y‹€AÜ�Q‹<œ4¤ A¡c¨ c¡F¨A¨a¨d°¨d©GÓ 4Ó5Ò5Ð5Ð5Ü�Q˜‹?œu Q r¨ U›|¬U°1°Q°R°5«\Ð:Ò:Ð:Ð:Ü
Œ:Ñ<Ô=Ü
Œ:Ñ=Õ>re   c                  óÖ  — t        g dg«      g k(  sJ ‚t        t        t        d«      «      «      g d¢k(  sJ ‚t        t        t        d«      «      t        t        d«      «      «      g d¢k(  sJ ‚t        g d¢g d¢«      ddgk(  sJ ‚t        g d¢g d¢«      dgk(  sJ ‚t        g dg«      g k(  sJ ‚t        t        t        d«      «      «      g d¢k(  sJ ‚t        t        t        d«      «      t        t        d«      «      «      g d¢k(  sJ ‚t        t        t        d«      «      t        t        d«      «      «      g k(  sJ ‚t        g d¢g d	¢«      ddgk(  sJ ‚t        g d¢g d
¢«      dgk(  sJ ‚y )Nr^   ro   r¯   r‡   r‚   )r^   r_   rc   r_   )r^   ro   rc   )rû   r_   ro   )rû   rù   ro   )r   rQ   r–   r   rd   re   rU   Útest_common_prefix_suffixrÐ    s5  € Ü˜˜a˜SÓ! RÒ'Ð'Ð'Üœœe A›h›Ó(ªIÒ5Ð5Ð5Üœœe A›h›¬¬e°A«h«Ó8ºIÒEÐEÐEÜš¢IÓ.°1°a°&Ò8Ð8Ð8Üš¢IÓ.°1°#Ò5Ð5Ð5ä˜˜a˜SÓ! RÒ'Ð'Ð'Üœœe A›h›Ó(ªIÒ5Ð5Ð5Üœœe A›h›¬¬e°A«h«Ó8ºIÒEÐEÐEÜœœe A›h›¬¬e°A«h«Ó8¸BÒ>Ð>Ð>Üš¢IÓ.°1°a°&Ò8Ð8Ð8Üš¢IÓ.°1°#Ò5Ð5Ñ5re   c                  óØ   — t        g d¢«      dk(  sJ ‚t        d«      dk(  sJ ‚t        d«      dk(  sJ ‚t        dd¬«      dk(  sJ ‚t        d«      dk(  sJ ‚t        d	t        ¬
«      dk(  sJ ‚y )NrÂ   r¯   rÁ   r¿   F)ÚdirectedÚabaÚaab)Úbbr  rP  rÊ   rN   )rP  rÊ   rÕ  r  )r&   r¶   rd   re   rU   Útest_minlexrÖ  Ž  sy   € Ü’)Ó 	Ò)Ð)Ð)Ü�)Ó 	Ò)Ð)Ð)Ü�)Ó 	Ò)Ð)Ð)Ü�) eÔ,°	Ò9Ð9Ð9Ü�%‹=˜EÒ!Ð!Ð!ÜÐ)¬sÔ3Ð7NÒNÐNÑNre   c                  ó&  ‡ ‡— t        t        t        t        ft        d¬«      «      t        t        gt        t        gfv sJ ‚t        t        t        t        ft        d¬«      «      t        t        t        t        ft        d¬«      «      k(  sJ ‚t        t        t        t        f«      «      t        t        gk(  sJ ‚g d¢g d¢g d¢dgdggd„ d	„ fg\  ŠŠ t        t        ‰‰ dd¬
«      «      dgdgg d¢g d¢g d¢gk(  sJ ‚t        t        ˆ ˆfd„«       y )NF)Údefaultr    rÀ   r³   r_   r^   c                 ó   — t        | «      S rß   )r¶   rå   s    rU   rr   ztest_ordered.<locals>.<lambda>ž  s
   € œC ›F€ re   c                 ó   — t        | «      S rß   )rq  rå   s    rU   rr   ztest_ordered.<locals>.<lambda>ž  s
   € ¬c°!«f€ re   ©rØ  Úwarnc                  ó4   •— t        t        ‰‰ dd¬«      «      S )NFTrÛ  )rQ   r	   ©ÚkeysÚseqs   €€rU   rr   ztest_ordered.<locals>.<lambda>¡  s   ø€ Ü”˜˜T¨5°tÔ<Ó=ð re   )rQ   r	   rS   rR   ÚhashrI   r~   rÞ  s   @@rU   Útest_orderedrâ  —  sñ   ù€ Ü”œœA˜¤¨eÔ4Ó5¼1¼a¸&Ä1ÄaÀ&Ð9IÑIÐIÐIÜ”œœA˜¤¨eÔ4Ó5ÜŒW”aœ�VœT¨5Ô1Ó2ò3ð 3ð 3ä”œœA˜“Ó ¤Q¬ FÒ*Ð*Ð*âšYª	°A°3¸¸Ð<Ù"Ñ$4Ð5ð7�I€Cˆä”˜˜T¨5°uÔ=Ó>Ø
ˆˆqˆc’9šiªÐ3ò4ð 4ð 4ä
Œ:ô >õ ?re   c                  ó>  — t        g «      g k(  sJ ‚t        dg«      dggk(  sJ ‚t        ddg«      dgdggk(  sJ ‚t        g d¢«      dgddggk(  sJ ‚t        g d¢«      ddgdggk(  sJ ‚t        g d¢«      dgdgdggk(  sJ ‚ddlm}  t        g d¢| «      ddgdggk(  sJ ‚y )Nr^   r²   r_   r    )r_   r^   r^   r   ©Últ)r4   Úoperatorrå  rä  s    rU   Ú	test_runsrç  ¥  sÀ   € Ü�‹8�rŠ>Ðˆ>Ü��‹9˜!˜˜ÒÐÐÜ��A�‹<˜Q˜C ! ˜:Ò%Ð%Ð%Ü’	‹? ˜s Q¨ F˜mÒ+Ð+Ð+Ü’	‹?  1˜v¨ s˜mÒ+Ð+Ð+Ü’	‹? ˜s Q C¨!¨˜oÒ-Ð-Ð-ÝÜ’	˜2Ó A q 6¨A¨3 -Ò/Ð/Ñ/re   c                  ó¸  — t        t        dd«      «      } t        | dg«      g d¢g 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f«      ddd	dgfd
dddgfgk(  sJ ‚t        | ddgf«      dd	dgfdddgfgk(  sJ ‚t        | ddgdf«      ddd	gdfd
ddgdfgk(  sJ ‚t        t        | «      dgddgf«      dgddgfd
gddgffk(  sJ ‚t        t        | «      dgddf«      dgddfd
gddffk(  sJ ‚t        t        t        d«      «      dd	gdhdg«      ddg d¢d
dhdggk(  sJ ‚t	        t
        d„ «       t	        t
        d„ «       y )Nr^   rû   r‡   rô   )rc   ra   rù   rú   )r‡   r­   r_   ro   rc   ra   rù   rú   r„   rk   )rc   ra   r  rý   r9  )r^   r…   r^   r   r  )rù   )rú   rû   rü   r}   c                  ó    — t        ddgdg«      S )Nr   r^   r`   ©r1   rd   re   rU   rr   ztest_reshape.<locals>.<lambda>Ä  s   € œw¨¨1 v°¨tÓ4€ re   c                  ó    — t        ddgdg«      S )Nr   r^   ro   rê  rd   re   rU   rr   ztest_reshape.<locals>.<lambda>Å  s   € œw¨¨1 v°¨sÓ3€ re   )rQ   r–   r1   r:  rI   r~   )rà  s    rU   Útest_reshaperì  °  s	  € Ü
Œu�Q˜‹{Ó
€CÜ�3˜˜ÓÚ	’|Ð$ò%ð %ð %ä�3˜ÓØ	�|Ð$ò%ð %ð %ä�3˜ÓØ	�|Ð$ò%ð %ð %ä�3˜˜Q˜C˜Ó!Ø
ˆQ��A�ˆ˜!˜Q  A ˜Ð(ò)ð )ð )ä�3˜ ˜s˜Ó$Ø
�1�a�&Ð	˜F Q¨ FÐ+Ð,ò-ð -ð -ä�3˜˜Q˜C ˜Ó$Ø
ˆa�ˆV�Qˆ˜!˜a ˜V Q˜Ð(ò)ð )ð )ä”5˜“: !  a¨ Ð0Ó1Øˆ3��6Ð
Ð	   Q¨Ð/Ð1Ð2ò3ð 3ð 3ä”5˜“:   Q¨˜~Ó.Øˆ#ˆq�&Ð	˜Q˜C  FÐ+Ð,ò-ð -ð -ä”4œ˜b›	“? Q¨¨¨a¨S°,Ð$?Ó@Ø
ˆQ’	˜A˜q˜6Ð#6Ð	7Ð8ò9ð 9ð 9ä
Œ:Ñ4Ô5Ü
Œ:Ñ3Õ4re   c                  óÄ  ‡ — t        t        d„ t        d«      D «       «      «      ddidddœddidddœddigk(  sJ ‚t        t        d„ t        d«      D «       «      «      d	dgk(  sJ ‚t        t        d
«      «      d
gk(  sJ ‚t        t        d«      «      t        d«      k(  sJ ‚t        t        dgddgdgg«      «      dgddggk(  sJ ‚t        t        t	        d„ dgddfD «       «      «      «      dgddfddgdfdddgfgk(  sJ ‚t        t        dddddgdgdgdgdgg	«      «      ddddgdgdggk(  sJ ‚dgŠ t        t        ˆ fd„«       dggŠ t        t        ˆ fd„«       y )Nc              3   ó    K  — | ]  }|–— Œ y ­wrß   rd   ©r4  r$  s     rU   r6  ztest_uniq.<locals>.<genexpr>É  s   è ø€ Ò.˜1”QÑ.ùó   ‚r‡   r^   r‰   r_   rk   c              3   ó&   K  — | ]	  }|d z  –— Œ y­w)r_   Nrd   )r4  rS   s     rU   r6  ztest_uniq.<locals>.<genexpr>Ë  s   è ø€ Ò-˜q�Q˜•UÑ-ùrn  rc   r   rÊ   ÚababcrO  c              3   ó    K  — | ]  }|–— Œ y ­wrß   rd   rŠ  s     rU   r6  ztest_uniq.<locals>.<genexpr>Ï  s   è ø€ Ò!9¨¤!Ñ!9ùrð  ro   c                  ó^   •— t        ‰«      D � cg c]  } ‰j                  | «      ‘Œ c} S c c} w rß   ©r;   Úremove©rR  r¸  s    €rU   rr   ztest_uniq.<locals>.<lambda>Ô  ó!   ø€ ´t¸A³wÖ!?°! !§(¡(¨1¥+Ò!?€ ùÒ!?ó   �*c                  ó^   •— t        ‰«      D � cg c]  } ‰j                  | «      ‘Œ c} S c c} w rß   rõ  r÷  s    €rU   rr   ztest_uniq.<locals>.<lambda>Ö  rø  rù  )rQ   r;   r-   r–   r.   rI   ÚRuntimeError)r¸  s   @rU   Ú	test_uniqrü  È  s›  ø€ Ü”Ñ.¤
¨1£Ô.Ó.Ó/Ø
ˆQˆ�Q˜1‘  1˜v¨1°¡|°a¸°VÐ<ò=ð =ð =ä”Ñ-¤E¨!£HÔ-Ó-Ó.°1°a°&Ò8Ð8Ð8Ü”�S“	‹?˜s˜eÒ#Ð#Ð#Ü”�W“Ó¤$ u£+Ò-Ð-Ð-Ü”�q�c˜A˜q˜6 A 3Ð'Ó(Ó)¨q¨c°A°q°6¨]Ò:Ð:Ð:Ü””\Ñ!9¨q¨c°1°a¨[Ô!9Ó9Ó:Ó;Øˆ#ˆq�!ˆ�q˜1˜#˜q�k A q¨1¨# ;Ð/ò0ð 0ð 0ä”�a˜˜A˜q 1 #¨ s¨Q¨C°!°°q°cÐ:Ó;Ó<Ø	
ˆAˆq�1�#˜�s˜Q˜CÐ ò!ð !ð !à	
ˆ€AÜ
Œ<Ó?Ô@Ø
ˆˆ€AÜ
Œ<Ó?Õ@re   c            	      óö  ‡ ‡— t        t        t        ddd¬«      «      «      dk(  sJ ‚t        t        t        ddd¬«      «      «      dk(  sJ ‚t        t        t        ddd¬«      «      «      dk(  sJ ‚t        t        t        ddd	¬«      «      «      d
k(  sJ ‚t        t        t        ddd ¬«      «      «      dk(  sJ ‚d„ Š t        ˆ fd„«      t	        d«      k(  sJ ‚d„ Št        ˆfd„«      t	        d«      k(  sJ ‚y )NÚ1123r_   r^   r   r8  r}   rx  rü   r   rc   ro   c                  ól   — dD ]/  } t        d| «       t        g d¢d| ¬«      D ]  }t        d|«       Œ Œ1 y )N©Nr   r^   rü   r}   ú	ordered =rŽ   r_   r   ú   )rc  r%   ©Ú
orderedvalr$  s     rU   Útest1ztest_kbins.<locals>.test1à  s<   € Ø.ò 	 ˆJÜ�+˜zÔ*Üš9 a°Ô<ò  �Ü�e˜Q•ñ ñ	 re   c                  ó   •—  ‰ «       S rß   rd   )r  s   €rU   rr   ztest_kbins.<locals>.<lambda>å  ó	   ø€ ™E›G€ re   a#          ordered = None
            [[0], [0, 1]]
            [[0, 0], [1]]
        ordered = 0
            [[0, 0], [1]]
            [[0, 1], [0]]
        ordered = 1
            [[0], [0, 1]]
            [[0], [1, 0]]
            [[1], [0, 0]]
        ordered = 10
            [[0, 0], [1]]
            [[1], [0, 0]]
            [[0, 1], [0]]
            [[0], [0, 1]]
        ordered = 11
            [[0], [0, 1]]
            [[0, 0], [1]]
            [[0], [1, 0]]
            [[0, 1], [0]]
            [[1], [0, 0]]
            [[1, 0], [0]]
c                  óŒ   — dD ]?  } t        d| «       t        t        t        d«      «      d| ¬«      D ]  }t        d|«       Œ ŒA y )Nr   r  ro   r_   r   r  )rc  r%   rQ   r–   r  s     rU   Útest2ztest_kbins.<locals>.test2ý  sD   € Ø.ò 	 ˆJÜ�+˜zÔ*Üœ4¤ a£›>¨1°jÔAò  �Ü�e˜Q•ñ ñ	 re   c                  ó   •—  ‰ «       S rß   rd   )r	  s   €rU   rr   ztest_kbins.<locals>.<lambda>  r  re   a[          ordered = None
            [[0], [1, 2]]
            [[0, 1], [2]]
        ordered = 0
            [[0, 1], [2]]
            [[0, 2], [1]]
            [[0], [1, 2]]
        ordered = 1
            [[0], [1, 2]]
            [[0], [2, 1]]
            [[1], [0, 2]]
            [[1], [2, 0]]
            [[2], [0, 1]]
            [[2], [1, 0]]
        ordered = 10
            [[0, 1], [2]]
            [[2], [0, 1]]
            [[0, 2], [1]]
            [[1], [0, 2]]
            [[0], [1, 2]]
            [[1, 2], [0]]
        ordered = 11
            [[0], [1, 2]]
            [[0, 1], [2]]
            [[0], [2, 1]]
            [[0, 2], [1]]
            [[1], [0, 2]]
            [[1, 0], [2]]
            [[1], [2, 0]]
            [[1, 2], [0]]
            [[2], [0, 1]]
            [[2, 0], [1]]
            [[2], [1, 0]]
            [[2, 1], [0]]
)r¶   rQ   r%   r   r   )r  r	  s   @@rU   Ú
test_kbinsr  Ù  sþ   ù€ ÜŒt”E˜& !¨QÔ/Ó0Ó1°RÒ7Ð7Ð7ÜŒt”E˜& !¨RÔ0Ó1Ó2°bÒ8Ð8Ð8ÜŒt”E˜& !¨RÔ0Ó1Ó2°bÒ8Ð8Ð8ÜŒt”E˜& !¨QÔ/Ó0Ó1°QÒ6Ð6Ð6ÜŒt”E˜& !¨TÔ2Ó3Ó4¸Ò9Ð9Ð9ò ô
 Ó#Ó$¬ð 0ó ) ò  ð  ð  ò0 ô
 Ó#Ó$¬ð "0ó ") ò " ð " ñ " re   c                  óâ   — t        t        «       «      du sJ ‚t        t        t        d«      «      «      du sJ ‚t        g d¢«      du sJ ‚t        dgdgg«      du sJ ‚t        dgdgg«      du sJ ‚y )NFro   r    Tr^   r_   )r"   r”   rQ   r–   rd   re   rU   Útest_has_dupsr  '  sz   € Ü”C“E‹?˜eÑ#Ð#Ð#Ü”Dœ˜q›“NÓ# uÑ,Ð,Ð,Ü’IÓ $Ñ&Ð&Ð&Ü�a�S˜1˜#�JÓ 4Ñ'Ð'Ð'Ü�a�S˜1˜#�JÓ 5Ñ(Ð(Ñ(re   c                  ó°   — t        dg d¢«      ddgddgdggk(  sJ ‚t        dg d¢d«      ddgddgdggk(  sJ ‚dg d¢f} t        dg| ¢­Ž ddgddgdggk(  sJ ‚y )	Nr‹  )r^   r   r^   r_   r   r  ÚerÊ   rP  Údro   )r   )Úoutputs    rU   Útest__partitionr  /  s•   € Ü�gšÓ/Ø	ˆcˆ
�S˜#�J  ð4'ò 'ð 'ð 'ä�gš°Ó2Ø	ˆcˆ
�S˜#�J  ð7'ò 'ð 'ð 'à’Ð!€FÜ�gÐ' Ò'¨S°#¨J¸¸c¸
ÀSÀEÐ+JÒJÐJÑJre   c                  óh  — ddl m}  t        }t         |dd«      «      g gk(  sJ ‚t         |dd«      «      g gk(  sJ ‚t	        dd«      D ]g  }d gt        t	        d|«      «      z   D ]I  }t        d„  |||d«      D «       «      t        d„  |||d«      D «       «      cxk(  r | ||«      k(  rŒFJ ‚ J ‚ Œi y )Nr   )ÚnTr^   rù   c              3   ó    K  — | ]  }d –— Œ y­w©r^   Nrd   rï  s     rU   r6  z*test_ordered_partitions.<locals>.<genexpr>@  ó   è ø€ Ò*˜!”AÑ*ùrð  c              3   ó    K  — | ]  }d –— Œ y­wr  rd   rï  s     rU   r6  z*test_ordered_partitions.<locals>.<genexpr>A  r  rð  )Ú%sympy.functions.combinatorial.numbersr  r=   rQ   r–   rq  )r  r¸  rR  ry  s       rU   Útest_ordered_partitionsr  8  sÇ   € Ý8Ü€AÜ‘�!�Q“‹=˜R˜DÒ Ð Ð Ü‘�!�Q“‹=˜R˜DÒ Ð Ð Ü�1�a‹[ò ˆØ�œ$œu Q¨›{Ó+Ñ+ò 	ˆAäÑ*™q  A q›zÔ*Ó*ÜÑ*™q  A q›zÔ*Ó*ôá�1�a“óðñððñ	ñre   c                  óò   — t        t        d«      «      ddgddggk(  sJ ‚t        t        t        d«      «      «      g d¢g d¢g d¢gk(  sJ ‚t        t        t        d«      d¬	«      «      g d¢g d¢g d¢gk(  sJ ‚y )
Nr  rÊ   r  ro   r¯   rÂ   rÃ   r`   )Údir)rQ   r>   r–   rd   re   rU   Útest_rotationsr  E  sn   € Ü”	˜$“Ó  c¨3 Z°#°s°Ð$<Ò<Ð<Ð<Ü”	œ% ›(Ó#Ó$ª²IºyÐ(IÒIÐIÐIÜ”	œ% ›(¨Ô+Ó,²ºIÂyÐ0QÒQÐQÑQre   c                  óP  — t        d«      ddgk(  sJ ‚t        dd«      g d¢k(  sJ ‚t        dd¬«      dk(  sJ ‚t        ddd¬«      dk(  sJ ‚t        t        dd	«      «      g d
¢k(  sJ ‚t        t        ddd¬«      «      g d¢k(  sJ ‚t        t        d„ «       t        t        d„ «       y )Nro   r^   r�   T)ÚstrÚ11Ú011r_   rp  )rl   rª   r»   rŸ   rX   )Ú00Ú01Ú10r   c                  ó   — t        d«      S )Ng      à¿©r#   rd   re   rU   rr   ztest_ibin.<locals>.<lambda>R  s
   € œt C›y€ re   c                  ó   — t        dd«      S )Nr_   r^   r&  rd   re   rU   rr   ztest_ibin.<locals>.<lambda>S  s   € œt A q›z€ re   )r#   rQ   rI   r~   rd   re   rU   Ú	test_ibinr(  K  s¥   € Ü�‹7�q˜!�fÒÐÐÜ��1‹:šÒ"Ð"Ð"Ü��tÔ Ò$Ð$Ð$Ü��1˜$Ô 5Ò(Ð(Ð(Ü”�Q˜“ÓÒ#CÒCÐCÐCÜ”�Q˜ Ô%Ó&Ò*BÒBÐBÐBÜ
Œ:Ñ(Ô)Ü
Œ:Ñ)Õ*re   c                  óÜ  — t        d«      du sJ ‚t        d«      du sJ ‚t        d «      du sJ ‚ G d„ dt        «      } t         | «       «      du sJ ‚ G d„ dt        «      }t         |«       «      du sJ ‚ G d	„ d
«      }t         |«       «      du sJ ‚ G d„ d«      }t         |«       «      du sJ ‚ G d„ d«      }t         |«       «      du sJ ‚ G d„ d|«      }t         |«       «      du sJ ‚y )Nr   Fr^   c                   ó   — e Zd Zy)útest_iterable.<locals>.Test1Nru   rd   re   rU   ÚTest1r+  [  rz   re   r,  c                   ó   — e Zd ZdZy)útest_iterable.<locals>.Test2TN©rv   rw   rx   Ú	_iterablerd   re   rU   ÚTest2r.  `  ó   „ Ø‰	re   r1  Tc                   ó   — e Zd Zy)útest_iterable.<locals>.Test3Nru   rd   re   rU   ÚTest3r4  e  rz   re   r5  c                   ó   — e Zd ZdZy)útest_iterable.<locals>.Test4TNr/  rd   re   rU   ÚTest4r7  j  r2  re   r8  c                   ó   — e Zd Zd„ Zy)útest_iterable.<locals>.Test5c              3   ó   K  — d–— y ­w)Nr^   rd   )Úselfs    rU   Ú__iter__z%test_iterable.<locals>.Test5.__iter__p  s   è ø€ Ø‹Gùs   ‚N)rv   rw   rx   r=  rd   re   rU   ÚTest5r:  o  s   „ ó	re   r>  c                   ó   — e Zd ZdZy)útest_iterable.<locals>.Test6FNr/  rd   re   rU   ÚTest6r@  u  s   „ Ø‰	re   rA  )r@   rA   )r,  r1  r5  r8  r>  rA  s         rU   Útest_iterablerB  V  s  € Ü�A‹;˜%ÑÐÐÜ�A‹;˜%ÑÐÐÜ�D‹>˜UÑ"Ð"Ð"ô”ô ô ‘E“GÓ Ñ%Ð%Ð%ô”ô ô ‘E“GÓ Ñ$Ð$Ð$÷ñ ô ‘E“GÓ Ñ%Ð%Ð%÷ñ ô ‘E“GÓ Ñ$Ð$Ð$÷ñ ô ‘E“GÓ Ñ$Ð$Ð$ô�ô ô ‘E“GÓ Ñ%Ð%Ñ%re   c                  óp  — t        t        dgd«      «      dgggk(  sJ ‚t        t        ddgd«      «      ddgggk(  sJ ‚t        t        ddgd«      «      dgdgggk(  sJ ‚t        t        g d¢d«      «      g d¢ggk(  sJ ‚t        t        g d¢d«      «      dgddggddgdgggk(  sJ ‚t        t        g d¢d«      «      dgdgdgggk(  sJ ‚t        t        g d«      «      g k(  sJ ‚t        t        g d«      «      g k(  sJ ‚t        t        ddgd«      «      g k(  sJ ‚t        t        ddgd«      «      g k(  sJ ‚y )Nr^   r_   r‚   ro   r   )rQ   rD   rd   re   rU   Útest_sequence_partitionsrD  {  so  € ÜÔ# Q C¨Ó+Ó,°1°#°°Ò7Ð7Ð7ÜÔ# Q¨ F¨AÓ.Ó/°a¸°V°H°:Ò=Ð=Ð=ÜÔ# Q¨ F¨AÓ.Ó/°a°S¸1¸#°J°<Ò?Ð?Ð?ÜÔ#¢I¨qÓ1Ó2º	°{°mÒCÐCÐCÜÔ#¢I¨qÓ1Ó2Øˆ#��1ˆvˆ˜!˜Q˜ ! ˜Ð&ò'ð 'ð 'äÔ#¢I¨qÓ1Ó2¸¸¸a¸SÀ1À#°Ð6GÒGÐGÐGô Ô# B¨Ó*Ó+¨rÒ1Ð1Ð1ÜÔ# B¨Ó*Ó+¨rÒ1Ð1Ð1ÜÔ# Q¨ F¨AÓ.Ó/°2Ò5Ð5Ð5ÜÔ# Q¨ F¨AÓ.Ó/°2Ò5Ð5Ñ5re   c                  ó¢  — t        t        g d«      «      g ggk(  sJ ‚t        t        g d«      «      g g ggk(  sJ ‚t        t        g d«      «      g g g ggk(  sJ ‚t        t        dgd«      «      dgggk(  sJ ‚t        t        dgd«      «      g dggdgg ggk(  sJ ‚t        t        dgd«      «      g g dggg dgg gdgg g ggk(  sJ ‚t        t        ddgd«      «      ddgggk(  sJ ‚t        t        ddgd«      «      g ddggdgdggddgg ggk(  sJ ‚t        t        ddgd«      «      g g ddggg dgdggg ddgg gdgg dggdgdgg gddgg g ggk(  sJ ‚t        t        g d¢d«      «      g d¢ggk(  sJ ‚t        t        g d¢d«      «      g g d¢gdgddggddgdggg d¢g ggk(  sJ ‚t        t        g d¢d«      «      g g g d¢gg dgddggg ddgdggg g d¢g gdgg ddggdgdgdggdgddgg gddgg dggddgdgg gg d¢g g gg
k(  sJ ‚t        t        g d«      «      g k(  sJ ‚t        t        dgd«      «      g k(  sJ ‚t        t        ddgd«      «      g k(  sJ ‚y )Nr^   r_   ro   r‚   r   )rQ   rE   rD   rd   re   rU   Útest_sequence_partitions_emptyrF  ‹  sJ  € ÜÔ)¨"¨aÓ0Ó1°r°d°VÒ;Ð;Ð;ÜÔ)¨"¨aÓ0Ó1°r¸2°h°ZÒ?Ð?Ð?ÜÔ)¨"¨aÓ0Ó1°r¸2¸r°l°^ÒCÐCÐCÜÔ)¨1¨#¨qÓ1Ó2¸¸°u°gÒ=Ð=Ð=ÜÔ)¨1¨#¨qÓ1Ó2¸¸Q¸C°yÀAÀ3ÈÀ)Ð6LÒLÐLÐLÜÔ)¨1¨#¨qÓ1Ó2Ø
ˆb�1�#ˆ˜˜a˜S "˜¨¨¨R° }Ð5ò6ð 6ð 6äÔ)¨1¨a¨&°!Ó4Ó5¸A¸q¸6¸(¸ÒCÐCÐCÜÔ)¨1¨a¨&°!Ó4Ó5Ø
ˆq�!ˆfˆ˜˜˜a˜S�z Q¨ F¨B <Ð0ò1ð 1ð 1äÔ)¨1¨a¨&°!Ó4Ó5Ø	ˆR�!�Q�Ð˜2 ˜s Q C˜.¨2°°1¨v°rÐ*:Ø
ˆˆb�1�#ˆ˜!˜˜q˜c 2˜¨!¨Q¨°°RÐ(8ð:ò ð ð ô Ô)ª)°QÓ7Ó8ºi¸[¸MÒIÐIÐIÜÔ)ª)°QÓ7Ó8Ø
Šiˆ˜A˜3  A ˜-¨1¨a¨&°1°#¨ºÀB¸ÐHòIð Ið IäÔ)ª)°QÓ7Ó8Ø	ˆR’Ð˜b 1 #¨¨1 vÐ.Ø	ˆa�ˆV�a�SÐ˜B¢	¨2Ð.Ø
ˆˆb�1�a�&Ð˜Q˜C !  q c˜?Ø
ˆˆq�!ˆf�bÐ˜Q ˜F B¨¨Ð,Ø
ˆQˆ�!��bÐšI r¨2Ð.ð=ò ð ð ô Ô# B¨Ó*Ó+¨rÒ1Ð1Ð1ÜÔ# Q C¨Ó+Ó,°Ò2Ð2Ð2ÜÔ# Q¨ F¨AÓ.Ó/°2Ò5Ð5Ñ5re   c                  ó¢   — g d¢} t        t        d«      «      | k(  sJ ‚t        t        d«      «      | k(  sJ ‚t        t        d«      «      | k(  sJ ‚y )N)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`   r`   r   r�   r�   r‘   )rQ   rC   )r;  s    rU   Útest_signed_permutationsrH  «  sV   € ò4€Cô Ô# IÓ.Ó/°3Ò6Ð6Ð6ÜÔ# IÓ.Ó/°3Ò6Ð6Ð6ÜÔ# IÓ.Ó/°3Ò6Ð6Ñ6re   N)‡Útextwrapr   Ú	itertoolsr   r   Úsympy.core.basicr   Úsympy.core.numbersr   Úsympy.core.sortingr	   Úsympy.core.symbolr
   r   Ú(sympy.functions.combinatorial.factorialsr   Úsympy.matrices.denser   Úsympy.combinatoricsr   r   r   rP   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,   r-   r.   r/   r0   r1   r2   r3   r4   r5   r6   r7   r8   r9   r:   r;   r<   r=   r>   r?   r@   rA   rB   rC   rD   rE   Úsympy.utilities.enumerativerF   rG   Úsympy.core.singletonrH   Úsympy.testing.pytestrI   rJ   ÚwrS   rR   r   rV   rf   r€   rœ   r¤   r¹   rÈ   rÌ   rÐ   rØ   rì   rð   rò   rõ   r÷   r  r
  r  r  r=  rT  rh  ru  rz  r€  r‡  rµ  rÂ  rÅ  rÇ  rÎ  rÐ  rÖ  râ  rç  rì  rü  r  r  r  r  r  r(  rB  rD  rF  rH  rd   re   rU   ú<module>rV     s‰  ðÝ ß %å "Ý &Ý &ß .Ý >Ý 'ß AÑ A÷4÷ 4÷ 4÷ 4÷ 4÷ 4÷ 4÷ 4÷ 4÷ 4÷ 4÷ 4÷ 4õ 4÷3õ #ß ?á�YÓ�
€€1€aˆò>ò.ò 3ò,Aò,)ò*%9òPò08ò:òò	:ò7òHò@ò@ò
EòEò"<ò"ò ?FòDNò >KòB( òV<ò7ò"8ò4òBò"ò2;ò?ò6òOò?ò0ò5ò0Aò"K ò\)òKò
òRò+ò"&òJ6ò 6ó@7re   