§
    ¥˜ºh;[  ã                   ó   — d Z ddlZddlZddlZddlmZ ddlmZm	Z	m
Z
 ddlmZ ddlmZ ddlmZmZmZmZ ddlmZ dd	lmZmZ dd
lmZmZmZ ddlmZ ddlm Z  ddl!m"Z" ddl#m$Z$ ddl%m&Z& ddl'm(Z(m)Z) ddl*m+Z+m,Z,m-Z-  ej.        ¦   «         Z/e/j0        dd…dd…f         e/j1        cZ2Z3 e$¦   «          4                    e2¦  «        Z5 ej6        d¬¦  «        \  Z7Z8ej9         :                    ddg idfd e¦   «         fgddgdœdfg¦  «        d„ ¦   «         Z;d„ Z<d„ Z=d „ Z>d!„ Z?d"„ Z@d#„ ZAd$„ ZBd%„ ZCd&„ ZDd'„ ZEd(„ ZFd)„ ZGd*„ ZHd+„ ZId,„ ZJd-„ ZKd.„ ZLej9         :                    d/e2e3 ed e¦   «         fd0 ed1¬2¦  «        fg¦  «        fe7e8 ed e¦   «         fd0 ed1¬2¦  «        fg¦  «        fg¦  «        d3„ ¦   «         ZMej9         :                    d4 ed e¦   «         fd5 e)d¬6¦  «        fg¬7¦  «         ed ed¬6¦  «        fd5 e(d¬6¦  «        fg¬7¦  «        gd8d9g¬:¦  «        d;„ ¦   «         ZNej9         :                    d< ed e¦   «         fd0 ed=¬6¦  «        fgd¬>¦  «         ed ed=¬6¦  «        fd0 ed=¬6¦  «        fgd¬>¦  «        g¦  «        d?„ ¦   «         ZOd@„ ZPej9         :                    dAdBddCœg dD¢fdEdFidGdHgfg¦  «        dI„ ¦   «         ZQdJ„ ZRdS )Kz4Testing for the VotingClassifier and VotingRegressoré    N)Údatasets)ÚBaseEstimatorÚClassifierMixinÚclone)Úmake_multilabel_classification)ÚDummyRegressor)ÚRandomForestClassifierÚRandomForestRegressorÚVotingClassifierÚVotingRegressor)ÚNotFittedError)ÚLinearRegressionÚLogisticRegression)ÚGridSearchCVÚcross_val_scoreÚtrain_test_split)ÚOneVsRestClassifier)Ú
GaussianNB)ÚKNeighborsClassifier)ÚStandardScaler)ÚSVC)ÚDecisionTreeClassifierÚDecisionTreeRegressor)Úassert_almost_equalÚassert_array_almost_equalÚassert_array_equalé   é   T)Ú
return_X_yzparams, err_msgÚ
estimatorszGInvalid 'estimators' attribute, 'estimators' should be a non-empty listÚlré   )r    Úweightsz0Number of `estimators` and weights must be equalc                 óÆ   — t          di | ¤Ž}t          j        t          |¬¦  «        5  |                     t
          t          ¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )N©Úmatch© )r   ÚpytestÚraisesÚ
ValueErrorÚfitÚXÚy)ÚparamsÚerr_msgÚensembles      új/var/www/html/services/rag-service/venv/lib/python3.11/site-packages/sklearn/ensemble/tests/test_voting.pyÚ%test_voting_classifier_estimator_initr2   *   s¤   € õ  Ð)Ð) &Ð)Ð)€HÝ	Œ•z¨Ð	1Ñ	1Ô	1ð ð Ø�Š•Q�ÑÔÐðð ð ñ ô ð ð ð ð ð ð ð øøøð ð ð ð ð ð s   ¨!AÁAÁAc                  ód  — t          dt          ¦   «         fdt          ¦   «         fgd¬¦  «        } d}t          j        t          |¬¦  «        5  | j         d d d ¦  «         n# 1 swxY w Y   t          | d¦  «        rJ ‚|                      t          t          ¦  «         t          | d¦  «        rJ ‚d S )NÚlr1Úlr2Úhard©r    Úvotingú1predict_proba is not available when voting='hard'r%   Úpredict_proba)
r   r   r(   r)   ÚAttributeErrorr:   Úhasattrr+   ÚX_scaledr-   )ÚeclfÚmsgs     r1   Útest_predictproba_hardvotingr@   =   sû   € ÝØÕ.Ñ0Ô0Ð1°EÕ;MÑ;OÔ;OÐ3PÐQØðñ ô €Dð >€CÝ	Œ•~¨SÐ	1Ñ	1Ô	1ð ð ØÔÐðð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð õ �t˜_Ñ-Ô-Ð-Ð-Ð-Ø‡H‚H�X•qÑÔÐÝ�t˜_Ñ-Ô-Ð-Ð-Ð-Ð-Ð-s   ÁA!Á!A%Á(A%c                  óÆ  — t          dt          ¦   «         fdt          ¦   «         fgd¬¦  «        } t          dt          ¦   «         fg¦  «        }d}t	          j        t          |dz  ¬¦  «        5  |                      t          ¦  «         d d d ¦  «         n# 1 swxY w Y   t	          j        t          |dz  ¬¦  «        5  |  	                    t          ¦  «         d d d ¦  «         n# 1 swxY w Y   t	          j        t          |dz  ¬¦  «        5  |  
                    t          ¦  «         d d d ¦  «         n# 1 swxY w Y   t	          j        t          |d	z  ¬¦  «        5  |                     t          ¦  «         d d d ¦  «         n# 1 swxY w Y   t	          j        t          |d	z  ¬¦  «        5  | 
                    t          ¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )
Nr4   r5   Úsoftr7   ÚdrzfThis %s instance is not fitted yet. Call 'fit' with appropriate arguments before using this estimator.r   r%   r   )r   r   r   r   r(   r)   r   Úpredictr,   r:   Ú	transformÚX_r)r>   Úeregr?   s      r1   Útest_notfittedrH   K   sû  € ÝØÕ.Ñ0Ô0Ð1°EÕ;MÑ;OÔ;OÐ3PÐQØðñ ô €Dõ ˜T¥>Ñ#3Ô#3Ð4Ð5Ñ6Ô6€Dð	Cð õ 
Œ•~¨SÐ3EÑ-EÐ	FÑ	FÔ	Fð ð Ø�Š•Q‰Œˆðð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð å	Œ•~¨SÐ3EÑ-EÐ	FÑ	FÔ	Fð ð Ø×Ò�1ÑÔÐðð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð å	Œ•~¨SÐ3EÑ-EÐ	FÑ	FÔ	Fð ð Ø�Š•qÑÔÐðð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð å	Œ•~¨SÐ3DÑ-DÐ	EÑ	EÔ	Eð ð Ø�Š•SÑÔÐðð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð å	Œ•~¨SÐ3DÑ-DÐ	EÑ	EÔ	Eð ð Ø�Š•sÑÔÐðð ð ñ ô ð ð ð ð ð ð ð øøøð ð ð ð ð ð sZ   Á.BÂBÂBÂ>C%Ã%C)Ã,C)ÄD5Ä5D9Ä<D9ÅFÆF	ÆF	Æ.GÇGÇGc                 ó  — t          d| ¬¦  «        }t          d| ¬¦  «        }t          ¦   «         }t          d|fd|fd|fgd¬	¦  «        }t	          |t
          t          d
¬¦  «        }|                     ¦   «         dk    sJ ‚dS )z7Check classification by majority label on dataset iris.Ú	liblinear)ÚsolverÚrandom_stateé
   ©Ún_estimatorsrL   r!   ÚrfÚgnbr6   r7   Úaccuracy©ÚscoringçÍÌÌÌÌÌì?N)r   r	   r   r   r   r,   r-   Úmean©Úglobal_random_seedÚclf1Úclf2Úclf3r>   Úscoress         r1   Útest_majority_label_irisr]   a   s”   € å [Ð?QÐRÑRÔR€DÝ!¨rÐ@RÐSÑSÔS€DÝ‰<Œ<€DÝØ˜4�L 4¨ ,°¸°Ð>Àvðñ ô €Dõ ˜T¥1¥a°Ð<Ñ<Ô<€Fà�;Š;‰=Œ=˜CÒÐÐÐÐÐó    c                  ó  — t          dd¬¦  «        } t          d¬¦  «        }t          d| fd|fgd¬¦  «        }|                      t          t
          ¦  «                             t          ¦  «        d	         d
k    sJ ‚|                     t          t
          ¦  «                             t          ¦  «        d	         dk    sJ ‚|                     t          t
          ¦  «                             t          ¦  «        d	         dk    sJ ‚dS )zECheck voting classifier selects smaller class label in tie situation.é{   rJ   )rL   rK   ©rL   r!   rP   r6   r7   éI   r"   r   N)r   r	   r   r+   r,   r-   rD   )rY   rZ   r>   s      r1   Útest_tie_situationrc   n   sÙ   € å¨3°{ÐCÑCÔC€DÝ!¨sÐ3Ñ3Ô3€DÝ¨¨t¨°t¸T°lÐ'CÈFÐSÑSÔS€DØ�8Š8•A•q‰>Œ>×!Ò!¥!Ñ$Ô$ RÔ(¨AÒ-Ð-Ð-Ð-Ø�8Š8•A•q‰>Œ>×!Ò!¥!Ñ$Ô$ RÔ(¨AÒ-Ð-Ð-Ð-Ø�8Š8•A•q‰>Œ>×!Ò!¥!Ñ$Ô$ RÔ(¨AÒ-Ð-Ð-Ð-Ð-Ð-r^   c                 ó  — t          | ¬¦  «        }t          d| ¬¦  «        }t          ¦   «         }t          d|fd|fd|fgdg d¢¬	¦  «        }t	          |t
          t          d
¬¦  «        }|                     ¦   «         dk    sJ ‚dS )z>Check classification by average probabilities on dataset iris.ra   rM   rN   r!   rP   rQ   rB   ©r   r"   rM   ©r    r8   r#   rR   rS   rU   N)r   r	   r   r   r   r=   r-   rV   rW   s         r1   Útest_weights_irisrg   x   sš   € åÐ+=Ð>Ñ>Ô>€DÝ!¨rÐ@RÐSÑSÔS€DÝ‰<Œ<€DÝØ˜4�L 4¨ ,°¸°Ð>ØØ�
�
ðñ ô €Dõ
 ˜T¥8­Q¸
ÐCÑCÔC€FØ�;Š;‰=Œ=˜CÒÐÐÐÐÐr^   c                  óæ  — t          d¬¦  «        } t          d¬¦  «        }t          dd¬¦  «        }t          d| fd|fd|fgg d¢¬¦  «        }t          t          t          d	¬
¦  «        \  }}}}|                      ||¦  «                             |¦  «        }|                     ||¦  «                             |¦  «        }	|                     ||¦  «                             |¦  «        }
|                     ||¦  «                             |¦  «        }t          j        t          j	        ||	|
g¦  «        dg d¢¬¦  «        }t          ||d¬¦  «         t          d| fd|fd|fgd¬¦  «        }t          d| fd|fd|fgg d¢¬¦  «        }|                     ||¦  «         |                     ||¦  «         |                     |¦  «        }|                     |¦  «        }t          ||d¬¦  «         dS )zACheck weighted average regression prediction on diabetes dataset.rV   )ÚstrategyÚmedianÚquantileçš™™™™™É?)ri   rk   re   )r#   g      Ð?)Ú	test_sizer   )Úaxisr#   r"   ©ÚdecimalN©r   r   r   )r   r   r   rF   Úy_rr+   rD   ÚnpÚaverageÚasarrayr   )Úreg1Úreg2Úreg3rG   Ú	X_r_trainÚX_r_testÚ	y_r_trainÚy_r_testÚ	reg1_predÚ	reg2_predÚ	reg3_predÚ	ereg_predÚavgÚereg_weights_noneÚereg_weights_equalÚereg_none_predÚereg_equal_preds                    r1   Útest_weights_regressorr†   †   s/  € å 6Ð*Ñ*Ô*€DÝ 8Ð,Ñ,Ô,€DÝ :¸Ð<Ñ<Ô<€DÝØ
�$ˆ˜( DÐ)¨J¸Ð+=Ð>È
È
È
ðñ ô €Dõ 0@Ý�S˜Dð0ñ 0ô 0Ñ,€Iˆx˜ Hð —’˜ IÑ.Ô.×6Ò6°xÑ@Ô@€IØ—’˜ IÑ.Ô.×6Ò6°xÑ@Ô@€IØ—’˜ IÑ.Ô.×6Ò6°xÑ@Ô@€IØ—’˜ IÑ.Ô.×6Ò6°xÑ@Ô@€Iå
Œ*Ý
Œ
�I˜y¨)Ð4Ñ5Ô5¸AÀzÀzÀzðñ ô €Cõ ˜	 3°Ð2Ñ2Ô2Ð2å'Ø
�$ˆ˜( DÐ)¨J¸Ð+=Ð>Èðñ ô Ðõ )Ø
�$ˆ˜( DÐ)¨J¸Ð+=Ð>È	È	È	ðñ ô Ðð ×Ò˜) YÑ/Ô/Ð/Ø×Ò˜9 iÑ0Ô0Ð0Ø&×.Ò.¨xÑ8Ô8€NØ(×0Ò0°Ñ:Ô:€OÝ˜¨ÀÐCÑCÔCÐCÐCÐCr^   c           	      óŠ  — t          | ¬¦  «        }t          d| ¬¦  «        }t          ¦   «         }t          j        ddgddgdd	gd
dgddgddgg¦  «        }t          j        g d¢¦  «        }t          |                     ||¦  «                             |¦  «        g d¢¦  «         t          |                     ||¦  «                             |¦  «        g d¢¦  «         t          |                     ||¦  «                             |¦  «        g d¢¦  «         t          d|fd|fd|fgdg d¢¬¦  «        }t          |                     ||¦  «                             |¦  «        g d¢¦  «         t          d|fd|fd|fgdg d¢¬¦  «        }t          |                     ||¦  «                             |¦  «        g d¢¦  «         dS )z6Manually check predicted class labels for toy dataset.ra   rM   rN   çš™™™™™ñ¿ç      ø¿ç333333ó¿çffffffö¿ç333333Àçš™™™™™Àçš™™™™™ñ?ç333333ó?gÍÌÌÌÌÌ @gffffffö?gÍÌÌÌÌÌ@gffffff@)r   r   r   r"   r"   r"   r!   rP   rQ   r6   rq   rf   rB   N)	r   r	   r   rs   Úarrayr   r+   rD   r   )rX   rY   rZ   r[   r,   r-   r>   s          r1   Útest_predict_on_toy_problemr‘   ª   sè  € åÐ+=Ð>Ñ>Ô>€DÝ!¨rÐ@RÐSÑSÔS€DÝ‰<Œ<€Då
ŒØ
�ˆ˜˜d�| d¨D \°C¸°:ÀÀS¸zÈCÐQTÈ:ÐVñ	ô 	€Aõ 	ŒÐ#Ð#Ð#Ñ$Ô$€Aå�t—x’x  1‘~”~×-Ò-¨aÑ0Ô0Ð2DÐ2DÐ2DÑEÔEÐEÝ�t—x’x  1‘~”~×-Ò-¨aÑ0Ô0Ð2DÐ2DÐ2DÑEÔEÐEÝ�t—x’x  1‘~”~×-Ò-¨aÑ0Ô0Ð2DÐ2DÐ2DÑEÔEÐEåØ˜4�L 4¨ ,°¸°Ð>ØØ�	�	ðñ ô €Dõ
 �t—x’x  1‘~”~×-Ò-¨aÑ0Ô0Ð2DÐ2DÐ2DÑEÔEÐEåØ˜4�L 4¨ ,°¸°Ð>ØØ�	�	ðñ ô €Dõ
 �t—x’x  1‘~”~×-Ò-¨aÑ0Ô0Ð2DÐ2DÐ2DÑEÔEÐEÐEÐEr^   c                  óˆ  — t          d¬¦  «        } t          d¬¦  «        }t          ¦   «         }t          j        ddgddgddgd	d
gg¦  «        }t          j        g d¢¦  «        }t          j        ddgddgddgddgg¦  «        }t          j        ddgddgddgddgg¦  «        }t          j        ddgddgddgddgg¦  «        }d|d         d         z  |d         d         z   |d         d         z   d z  }d|d!         d!         z  |d!         d!         z   |d!         d!         z   d z  }	d|d         d!         z  |d         d!         z   |d         d!         z   d z  }
d|d"         d!         z  |d"         d!         z   |d"         d!         z   d z  }t          d#| fd$|fd%|fgd&g d'¢¬(¦  «        }|                     ||¦  «                             |¦  «        }t          ||d         d         d!¬)¦  «         t          |	|d!         d!         d!¬)¦  «         t          |
|d         d!         d!¬)¦  «         t          ||d"         d!         d!¬)¦  «         t          j
        t          d*¬+¦  «        5  t          d#| fd$|fd%|fgd,¬-¦  «        }|                     ||¦  «                             |¦  «         d.d.d.¦  «         d.S # 1 swxY w Y   d.S )/z1Calculate predicted probabilities on toy dataset.r`   ra   rˆ   r‰   rŠ   r‹   rŒ   r�   rŽ   r�   ©r   r   r"   r"   g…7sa"ã?gö�=ñ»Ù?g�½¤Rhpâ?gâ„¶Z/Û?glç^Ô¬;à?g(1BW¦ˆß?gµU(V6ÁÙ?g&ÕëÔdã?gš™™™™™é?rl   ç333333Ó?çffffffæ?gá5ùwÇóï?g9=”qX?gè_óï?g$ö/ÐAY?ç        ç      ð?r"   r   é   r   r   r!   rP   rQ   rB   )r"   r   r   rf   ro   r9   r%   r6   r7   N)r   r	   r   rs   r�   r   r+   r:   r   r(   r)   r;   )rY   rZ   r[   r,   r-   Úclf1_resÚclf2_resÚclf3_resÚt00Út11Út21Út31r>   Úeclf_ress                 r1   Ú!test_predict_proba_on_toy_problemr¡   É   sU  € å¨3Ð/Ñ/Ô/€DÝ!¨sÐ3Ñ3Ô3€DÝ‰<Œ<€DÝ
Œ�4˜�,  t ¨t°T¨l¸SÀ#¸JÐGÑHÔH€AÝ
Œ���ÑÔ€AåŒxà˜Ð$Ø˜Ð$Ø˜Ð$Ø˜Ð$ð		
ñô €Hõ Œx˜#˜s˜ c¨3 Z°#°s°¸cÀ3¸ZÐHÑIÔI€HåŒxØ
�YÐ	 *¨jÐ!9¸CÀ¸:ÈÈSÀzÐRñô €Hð ˆx˜Œ{˜1Œ~Ñ ¨¤¨A¤Ñ.°¸!´¸Q´Ñ?À1Ñ
D€CØˆx˜Œ{˜1Œ~Ñ ¨¤¨A¤Ñ.°¸!´¸Q´Ñ?À1Ñ
D€CØˆx˜Œ{˜1Œ~Ñ ¨¤¨A¤Ñ.°¸!´¸Q´Ñ?À1Ñ
D€CØˆx˜Œ{˜1Œ~Ñ ¨¤¨A¤Ñ.°¸!´¸Q´Ñ?À1Ñ
D€CåØ˜4�L 4¨ ,°¸°Ð>ØØ�	�	ðñ ô €Dð
 �xŠx˜˜1‰~Œ~×+Ò+¨AÑ.Ô.€Hå˜˜X aœ[¨œ^°QÐ7Ñ7Ô7Ð7Ý˜˜X aœ[¨œ^°QÐ7Ñ7Ô7Ð7Ý˜˜X aœ[¨œ^°QÐ7Ñ7Ô7Ð7Ý˜˜X aœ[¨œ^°QÐ7Ñ7Ô7Ð7å	ŒÝÐQð
ñ 
ô 
ð (ð (õ  Ø˜t˜ t¨T l°U¸D°MÐBÈ6ð
ñ 
ô 
ˆð 	�Š��A‰Œ×$Ò$ QÑ'Ô'Ð'ð(ð (ð (ñ (ô (ð (ð (ð (ð (ð (ð (ð (øøøð (ð (ð (ð (ð (ð (s   É&AJ7Ê7J;Ê>J;c                  óä   — t          dddd¬¦  «        \  } }t          t          d¬¦  «        ¦  «        }t          d|fgd	¬
¦  «        }	 |                     | |¦  «         dS # t
          $ r Y dS w xY w)z7Check if error is raised for multilabel classification.r"   r   Fr`   )Ú	n_classesÚn_labelsÚallow_unlabeledrL   Úlinear)ÚkernelÚovrr6   r7   N)r   r   r   r   r+   ÚNotImplementedError)r,   r-   Úclfr>   s       r1   Útest_multilabelr«   ú   s‘   € å)Ø˜a°ÀSðñ ô �D€A€qõ �c¨Ð2Ñ2Ô2Ñ
3Ô
3€Cå¨°¨ ~¸fÐEÑEÔE€DðØ�Š��A‰ŒˆˆˆøÝð ð ð Øˆˆðøøøs   Á	A! Á!
A/Á.A/c                  ó  — t          d¬¦  «        } t          dd¬¦  «        }t          ¦   «         }t          d| fd|fd|fgd¬	¦  «        }d
dgddgg d¢g d¢gdœ}t	          ||d¬¦  «        }|                     t          t          ¦  «         dS )zCheck GridSearch support.r   ra   r   )rL   rO   r!   rP   rQ   rB   r7   r—   g      Y@r6   )ç      à?r­   r­   )r—   r­   r­   )Úlr__Cr8   r#   r"   )Ú	estimatorÚ
param_gridÚcvN)r   r	   r   r   r   r+   r=   r-   )rY   rZ   r[   r>   r.   Úgrids         r1   Útest_gridsearchr³   	  s¶   € å¨1Ð-Ñ-Ô-€DÝ!¨q¸qÐAÑAÔA€DÝ‰<Œ<€DÝØ˜4�L 4¨ ,°¸°Ð>Àvðñ ô €Dð
 �u�Ø˜6Ð"Ø#�O�O _ _ _Ð5ðð €Fõ  $°6¸aÐ@Ñ@Ô@€DØ‡H‚H�X•qÑÔÐÐÐr^   c                 ód  — t          | ¬¦  «        }t          d| ¬¦  «        }t          ¦   «         }t          j        ddgddgdd	gd
dgg¦  «        }t          j        g d¢¦  «        }t          d|fd|fd|fgdd¬¦  «                             ||¦  «        }t          d|fd|fd|fgdd¬¦  «                             ||¦  «        }t          |                     |¦  «        |                     |¦  «        ¦  «         t          | 
                    |¦  «        | 
                    |¦  «        ¦  «         dS )z:Check parallel backend of VotingClassifier on toy dataset.ra   rM   rN   rˆ   r‰   rŠ   r‹   rŒ   r�   rŽ   r�   r“   r!   rP   rQ   rB   r   )r    r8   Ún_jobsr"   N)r   r	   r   rs   r�   r   r+   r   rD   r   r:   )rX   rY   rZ   r[   r,   r-   Úeclf1Úeclf2s           r1   Útest_parallel_fitr¸     sF  € åÐ+=Ð>Ñ>Ô>€DÝ!¨rÐ@RÐSÑSÔS€DÝ‰<Œ<€DÝ
Œ�4˜�,  t ¨t°T¨l¸SÀ#¸JÐGÑHÔH€AÝ
Œ���ÑÔ€AåØ˜4�L 4¨ ,°¸°Ð>ÀvÐVWðñ ô ç	‚cˆ!ˆQ�i„ið 
õ Ø˜4�L 4¨ ,°¸°Ð>ÀvÐVWðñ ô ç	‚cˆ!ˆQ�i„ið 
õ �u—}’} QÑ'Ô'¨¯ª°qÑ)9Ô)9Ñ:Ô:Ð:Ý˜e×1Ò1°!Ñ4Ô4°e×6IÒ6IÈ!Ñ6LÔ6LÑMÔMÐMÐMÐMr^   c           	      ó¾  — t          | ¬¦  «        }t          d| ¬¦  «        }t          d| ¬¦  «        }t          d|fd|fd|fgd	¬
¦  «                             t
          t          t          j        t          t          ¦  «        f¦  «        ¬¦  «        }t          d|fd|fd|fgd	¬
¦  «                             t
          t          ¦  «        }t          |                     t
          ¦  «        |                     t
          ¦  «        ¦  «         t          |                     t
          ¦  «        |                     t
          ¦  «        ¦  «         t          j                             | ¦  «                             t          t          ¦  «        f¬¦  «        }t          d|fgd	¬
¦  «        }|                     t
          t          |¦  «         |                     t
          t          |¦  «         t          |                     t
          ¦  «        |                     t
          ¦  «        ¦  «         t          |                     t
          ¦  «        |                     t
          ¦  «        ¦  «         t#          ¦   «         }t          d|fd|fd|fgd	¬
¦  «        }d}	t%          j        t(          |	¬¦  «        5  |                     t
          t          |¦  «         ddd¦  «         n# 1 swxY w Y    G d„ dt*          t,          ¦  «        }
 |
¦   «         }t%          j        t(          d¬¦  «        5  |                     t
          t          |¬¦  «         ddd¦  «         dS # 1 swxY w Y   dS )z1Tests sample_weight parameter of VotingClassifierra   rM   rN   T)ÚprobabilityrL   r!   rP   ÚsvcrB   r7   ©Úsample_weight)ÚsizeÚknnzJUnderlying estimator KNeighborsClassifier does not support sample weights.r%   Nc                   ó   — e Zd Zd„ ZdS )ú.test_sample_weight.<locals>.ClassifierErrorFitc                 ó    — t          d¦  «        ‚)Nz!Error unrelated to sample_weight.)Ú	TypeError)Úselfr=   r-   r½   s       r1   r+   z2test_sample_weight.<locals>.ClassifierErrorFit.fitT  s   € ÝÐ?Ñ@Ô@Ð@r^   N)Ú__name__Ú
__module__Ú__qualname__r+   r'   r^   r1   ÚClassifierErrorFitrÁ   S  s(   € € € € € ð	Að 	Að 	Að 	Að 	Ar^   rÈ   z Error unrelated to sample_weight)r   r	   r   r   r+   r=   r-   rs   ÚonesÚlenr   rD   r   r:   ÚrandomÚRandomStateÚuniformr   r(   r)   rÃ   r   r   )rX   rY   rZ   r[   r¶   r·   r½   Úeclf3Úclf4r?   rÈ   rª   s               r1   Útest_sample_weightrÐ   /  s’  € åÐ+=Ð>Ñ>Ô>€DÝ!¨rÐ@RÐSÑSÔS€DÝ˜4Ð.@ÐAÑAÔA€DÝØ˜4�L 4¨ ,°¸°Ð>Àvðñ ô ç	‚c�(•A¥R¤W­cµ!©f¬f¨YÑ%7Ô%7€cÑ8Ô8ð 
õ Ø˜4�L 4¨ ,°¸°Ð>Àvðñ ô ç	‚c�(•AÑÔð 
õ �u—}’}¥XÑ.Ô.°·²½hÑ0GÔ0GÑHÔHÐHÝØ×Ò�HÑ%Ô% u×':Ò':½8Ñ'DÔ'Dñô ð õ ”I×)Ò)Ð*<Ñ=Ô=×EÒEÍCÕPQÉFÌFÈ9ÐEÑUÔU€MÝ¨$°¨¨¸vÐFÑFÔF€EØ	‡I‚I�h�˜=Ñ)Ô)Ð)Ø‡H‚H�X•q˜-Ñ(Ô(Ð(Ý�u—}’}¥XÑ.Ô.°·²½XÑ0FÔ0FÑGÔGÐGÝØ×Ò�HÑ%Ô% t×'9Ò'9½(Ñ'CÔ'Cñô ð õ  Ñ!Ô!€DÝØ˜4�L 5¨$ -°%¸°Ð?Èðñ ô €Eð W€CÝ	Œ•y¨Ð	,Ñ	,Ô	,ð .ð .Ø�	Š	•(�A˜}Ñ-Ô-Ð-ð.ð .ð .ñ .ô .ð .ð .ð .ð .ð .ð .øøøð .ð .ð .ð .ð
Að Að Að Að A�_­mñ Aô Að Að Ð
Ñ
Ô
€CÝ	Œ•yÐ(JÐ	KÑ	KÔ	Kð :ð :Ø�Š•�!¨=ˆÑ9Ô9Ð9ð:ð :ð :ñ :ô :ð :ð :ð :ð :ð :ð :ð :øøøð :ð :ð :ð :ð :ð :s$   Ê+"KËKË KÌ"#MÍMÍMc            	      ó  —  G d„ dt           t          ¦  «        }  | ¦   «         }t          d|fgd¬¦  «        }|                     t          t
          t          j        t          t
          ¦  «        f¦  «        ¬¦  «         dS )z:Check that VotingClassifier passes sample_weight as kwargsc                   ó   — e Zd ZdZd„ ZdS )ú1test_sample_weight_kwargs.<locals>.MockClassifierzAMock Classifier to check that sample_weight is received as kwargsc                 ó   — d|v sJ ‚d S )Nr½   r'   )rÄ   r,   r-   Úargsr½   s        r1   r+   z5test_sample_weight_kwargs.<locals>.MockClassifier.fitb  s   € Ø" mÐ3Ð3Ð3Ð3Ð3Ð3r^   N)rÅ   rÆ   rÇ   Ú__doc__r+   r'   r^   r1   ÚMockClassifierrÓ   _  s)   € € € € € ØOÐOð	4ð 	4ð 	4ð 	4ð 	4r^   r×   ÚmockrB   r7   r¼   N)	r   r   r   r+   r,   r-   rs   rÉ   rÊ   )r×   rª   r>   s      r1   Útest_sample_weight_kwargsrÙ   \  s‡   € ð4ð 4ð 4ð 4ð 4�­-ñ 4ô 4ð 4ð ˆ.Ñ
Ô
€CÝ¨°¨ ¸vÐFÑFÔF€Dð 	‡H‚H�Q•¥¤­#­a©&¬&¨Ñ!3Ô!3€HÑ4Ô4Ð4Ð4Ð4r^   c                 óf  — t          | ¬¦  «        }t          d| d ¬¦  «        }t          ¦   «         }t          d|fd|fgdddg¬	¦  «                             t
          t          ¦  «        }t          d|fd
|fgdddg¬	¦  «        }|                     |¬¦  «                             t
          t          ¦  «         t          | 	                    t
          ¦  «        | 	                    t
          ¦  «        ¦  «         t          |                     t
          ¦  «        |                     t
          ¦  «        ¦  «         |j        d         d                              ¦   «         |                     ¦   «         k    sJ ‚|j        d         d                              ¦   «         |                     ¦   «         k    sJ ‚d S )Nra   rM   )rO   rL   Ú	max_depthr!   rP   rB   r   r"   )r8   r#   Únb)rÜ   r   )r   r	   r   r   r+   r=   r-   Ú
set_paramsr   rD   r   r:   r    Ú
get_params)rX   rY   rZ   r[   r¶   r·   s         r1   Ú!test_voting_classifier_set_paramsrß   l  sš  € åÐ+=Ð>Ñ>Ô>€DÝ!ØÐ&8ÀDðñ ô €Dõ ‰<Œ<€DåØ
�ˆ˜˜d�|Ð$¨V¸aÀ¸Vðñ ô ç	‚c�(•AÑÔð 
õ Ø
�ˆ˜˜d�|Ð$¨V¸aÀ¸Vðñ ô €Eð 
×Ò˜ÐÑÔ×!Ò!¥(­AÑ.Ô.Ð.å�u—}’}¥XÑ.Ô.°·²½hÑ0GÔ0GÑHÔHÐHÝØ×Ò�HÑ%Ô% u×':Ò':½8Ñ'DÔ'Dñô ð ð Ô˜AÔ˜qÔ!×,Ò,Ñ.Ô.°$·/²/Ñ2CÔ2CÒCÐCÐCÐCØÔ˜AÔ˜qÔ!×,Ò,Ñ.Ô.°$·/²/Ñ2CÔ2CÒCÐCÐCÐCÐCÐCr^   c            	      ó	  — t          d¬¦  «        } t          dd¬¦  «        }t          ¦   «         }t          d| fd|fd|fgdg d	¢¬
¦  «                             t
          t          ¦  «        }t          d| fd|fd|fgdg d¢¬
¦  «        }|                     d¬¦  «                             t
          t          ¦  «         t          | 	                    t
          ¦  «        | 	                    t
          ¦  «        ¦  «         t          |j        ¦  «        d         dk    sJ ‚t          |j        ¦  «        dk    sJ ‚t          d„ |j        D ¦   «         ¦  «        sJ ‚|                     ¦   «         d         dk    sJ ‚|                     d¬¦  «                             t
          t          ¦  «         |                     d¬¦  «                             t
          t          ¦  «         t          | 	                    t
          ¦  «        | 	                    t
          ¦  «        ¦  «         t!          |                     t
          ¦  «        |                     t
          ¦  «        ¦  «         d}t%          j        t(          |¬¦  «        5  |                     ddd¬¦  «                             t
          t          ¦  «         d d d ¦  «         n# 1 swxY w Y   t+          j        dgdgg¦  «        }t+          j        ddg¦  «        }t          d|fd|fgdddgd¬¦  «                             ||¦  «        }t          d|fd|fgdddgd¬¦  «        }|                     d¬¦  «                             ||¦  «         t!          |                     |¦  «        t+          j        ddgddggddgddggg¦  «        ¦  «         t!          |                     |¦  «        t+          j        ddgddggg¦  «        ¦  «         |                     d¬¦  «         |                     d¬¦  «         t          |                     |¦  «        t+          j        ddgddgg¦  «        ¦  «         t          |                     |¦  «        t+          j        dgdgg¦  «        ¦  «         d S )Nr`   ra   rM   rN   r!   rP   rÜ   r6   )r   r   r­   rf   )r   r   r­   Údrop)rP   r"   c              3   óN   K  — | ] }t          |t          t          f¦  «        V — Œ!d S )N)Ú
isinstancer   r   )Ú.0Úests     r1   ú	<genexpr>z*test_set_estimator_drop.<locals>.<genexpr>›  sC   è è € ð ð Ø>A�
�3Õ+­ZÐ8Ñ9Ô9ðð ð ð ð ð r^   rB   )r8   z4All estimators are dropped. At least one is requiredr%   )r!   rP   rÜ   r   r   r­   F)r    r8   r#   Úflatten_transformr•   r”   r—   r–   )r   r	   r   r   r+   r,   r-   rÝ   r   rD   Údictr    rÊ   Úestimators_ÚallrÞ   r   r:   r(   r)   r*   rs   r�   rE   )rY   rZ   r[   r¶   r·   r?   ÚX1Úy1s           r1   Útest_set_estimator_droprí   „  sË  € õ ¨3Ð/Ñ/Ô/€DÝ!¨rÀÐDÑDÔD€DÝ‰<Œ<€DÝØ˜4�L 4¨ ,°°t°Ð=ØØ��ðñ ô ÷ 
‚c�!�Q�i„ið	 
õ Ø˜4�L 4¨ ,°°t°Ð=ØØ��ðñ ô €Eð
 
×Ò˜ÐÑÔ×#Ò#¥A¥qÑ)Ô)Ð)å�u—}’}¥QÑ'Ô'¨¯ªµqÑ)9Ô)9Ñ:Ô:Ð:å�Ô Ñ!Ô! $Ô'¨6Ò1Ð1Ð1Ð1ÝˆuÔ Ñ!Ô! QÒ&Ð&Ð&Ð&Ýð ð ØEJÔEVðñ ô ñ ô ð ð ð ð ×ÒÑÔ˜dÔ# vÒ-Ð-Ð-Ð-à	×Ò˜FÐÑ#Ô#×'Ò'­­1Ñ-Ô-Ð-Ø	×Ò˜FÐÑ#Ô#×'Ò'­­1Ñ-Ô-Ð-å�u—}’}¥QÑ'Ô'¨¯ªµqÑ)9Ô)9Ñ:Ô:Ð:Ý˜e×1Ò1µ!Ñ4Ô4°e×6IÒ6IÍ!Ñ6LÔ6LÑMÔMÐMØ
@€CÝ	Œ•z¨Ð	-Ñ	-Ô	-ð Dð DØ×Ò˜F v°&ÐÑ9Ô9×=Ò=½aÅÑCÔCÐCðDð Dð Dñ Dô Dð Dð Dð Dð Dð Dð Døøøð Dð Dð Dð Dõ 
Œ�A�3˜˜�*Ñ	Ô	€BÝ	Œ�1�a�&Ñ	Ô	€BÝØ˜4�L 4¨ ,Ð/ØØ�C�Øð	ñ ô ÷
 
‚cˆ"ˆb�k„kð 
õ Ø˜4�L 4¨ ,Ð/ØØ�C�Øð	ñ ô €Eð 
×Ò˜ÐÑÔ×#Ò# B¨Ñ+Ô+Ð+ÝØ�Š˜ÑÔÝ
Œ�C˜�:  S˜zÐ*¨c°3¨Z¸#¸s¸Ð,DÐEÑFÔFñô ð õ ˜eŸošo¨bÑ1Ô1µ2´8¸sÀC¸jÈ3ÐPSÈ*Ð=UÐ<VÑ3WÔ3WÑXÔXÐXØ	×Ò˜FÐÑ#Ô#Ð#Ø	×Ò˜FÐÑ#Ô#Ð#Ý�u—’ rÑ*Ô*­B¬H°q¸!°f¸qÀ!¸fÐ5EÑ,FÔ,FÑGÔGÐGÝ�u—’ rÑ*Ô*­B¬H°q°c¸A¸3°ZÑ,@Ô,@ÑAÔAÐAÐAÐAs   É;7J>Ê>KËKc                 óÐ  — t          | ¬¦  «        }t          d| ¬¦  «        }t          d|fd|fgddgd¬	¦  «        }t          d|fd|fgt          j        d
¦  «        d¬	¦  «        }|                     t          t          ¦  «         |                     t          t          ¦  «         t          | 	                    t          ¦  «        | 	                    t          ¦  «        ¦  «         d S )Nra   rM   rN   r!   rP   r   r"   rB   )r    r#   r8   )r   r"   )
r   r	   r   rs   r�   r+   r=   r-   r   r:   )rX   rY   rZ   r¶   r·   s        r1   Útest_estimator_weights_formatrï   Å  sî   € åÐ+=Ð>Ñ>Ô>€DÝ!¨rÐ@RÐSÑSÔS€DÝØ˜4�L 4¨ ,Ð/¸!¸Q¸Èðñ ô €Eõ Ø˜4�L 4¨ ,Ð/½¼À&Ñ9IÔ9IÐRXðñ ô €Eð 
‡I‚I�h�ÑÔÐØ	‡I‚I�h�ÑÔÐÝØ×Ò�HÑ%Ô% u×':Ò':½8Ñ'DÔ'Dñô ð ð ð r^   c                 óþ  — t          | ¬¦  «        }t          d| ¬¦  «        }t          ¦   «         }t          j        ddgddgdd	gd
dgg¦  «        }t          j        g d¢¦  «        }t          d|fd|fd|fgd¬¦  «                             ||¦  «        }t          d|fd|fd|fgdd¬¦  «                             ||¦  «        }t          d|fd|fd|fgdd¬¦  «                             ||¦  «        }t          |                     |¦  «        j	        d¦  «         t          |                     |¦  «        j	        d¦  «         t          |                     |¦  «        j	        d¦  «         t          |                     |¦  «        |                     |¦  «        ¦  «         t          |                     |¦  «                             dd¦  «                             d¦  «        |                     |¦  «        ¦  «         dS )z:Check transform method of VotingClassifier on toy dataset.ra   rM   rN   rˆ   r‰   rŠ   r‹   rŒ   r�   rŽ   r�   r“   r!   rP   rQ   rB   r7   T©r    r8   rç   F)r˜   é   )r   r˜   r"   r   r   N)r   r	   r   rs   r�   r   r+   r   rE   Úshaper   ÚswapaxesÚreshape)	rX   rY   rZ   r[   r,   r-   r¶   r·   rÎ   s	            r1   Útest_transformrö   Ö  s  € åÐ+=Ð>Ñ>Ô>€DÝ!¨rÐ@RÐSÑSÔS€DÝ‰<Œ<€DÝ
Œ�4˜�,  t ¨t°T¨l¸SÀ#¸JÐGÑHÔH€AÝ
Œ���ÑÔ€AåØ˜4�L 4¨ ,°¸°Ð>Àvðñ ô ç	‚cˆ!ˆQ�i„ið 
õ Ø˜4�L 4¨ ,°¸°Ð>ØØðñ ô ÷ 
‚cˆ!ˆQ�i„ið	 
õ
 Ø˜4�L 4¨ ,°¸°Ð>ØØðñ ô ÷ 
‚cˆ!ˆQ�i„ið	 
õ �u—’ qÑ)Ô)Ô/°Ñ8Ô8Ð8Ý�u—’ qÑ)Ô)Ô/°Ñ8Ô8Ð8Ý�u—’ qÑ)Ô)Ô/°Ñ;Ô;Ð;Ý˜eŸošo¨aÑ0Ô0°%·/²/À!Ñ2DÔ2DÑEÔEÐEÝØ�Š˜ÑÔ×#Ò# A qÑ)Ô)×1Ò1°&Ñ9Ô9¸5¿?º?È1Ñ;MÔ;Mñô ð ð ð r^   zX, y, voterrP   é   )rO   c                 óœ  — t          |¦  «        }t          ¦   «                              | ¦  «        }|                     ||t	          j        |j        ¦  «        ¬¦  «         |                     d¬¦  «         |                     ||t	          j        |j        ¦  «        ¬¦  «         |                     |¦  «        }|j        |j        k    sJ ‚d S )Nr¼   rá   )r!   )	r   r   Úfit_transformr+   rs   rÉ   ró   rÝ   rD   )r,   r-   Úvoterr=   Úy_preds        r1   Ú test_none_estimator_with_weightsrü   õ  s³   € õ: �%‰LŒL€EåÑÔ×-Ò-¨aÑ0Ô0€HØ	‡I‚Iˆh˜­¬°´Ñ)9Ô)9€IÑ:Ô:Ð:Ø	×Ò˜ÐÑÔÐØ	‡I‚Iˆh˜­¬°´Ñ)9Ô)9€IÑ:Ô:Ð:Ø�]Š]˜8Ñ$Ô$€FØŒ<˜1œ7Ò"Ð"Ð"Ð"Ð"Ð"r^   rå   Útreera   ©r    r   r   )Úidsc                 óŽ   — ddgddgddgg}g d¢}t          | d¦  «        rJ ‚|                      ||¦  «         | j        dk    sJ ‚d S )	Nr   r"   r   r˜   r÷   rò   ©r   r   r"   Ún_features_in_)r<   r+   r  )rå   r,   r-   s      r1   Útest_n_features_inr    sg   € ð& ˆQˆ�!�Q�˜!˜Q˜Ð €AØˆ	ˆ	€Aå�sÐ,Ñ-Ô-Ð-Ð-Ð-Ø‡G‚GˆAˆq�M„M€MØÔ Ò"Ð"Ð"Ð"Ð"Ð"r^   r¯   r`   )r    Úverbosec                 ó   — t          j        ddgddgddgddgg¦  «        }t          j        g d	¢¦  «        }d
}|                      ||¦  «         t          j        ||                     ¦   «         d         ¦  «        sJ ‚d S )Nrˆ   r‰   rŠ   r‹   rŒ   r�   rŽ   r�   r“   za\[Voting\].*\(1 of 2\) Processing lr, total=.*\n\[Voting\].*\(2 of 2\) Processing rf, total=.*\n$r   )rs   r�   r+   Úrer&   Ú
readouterr)r¯   Úcapsysr,   r-   Úpatterns        r1   Útest_voting_verboser
  7  sŽ   € õ( 	Œ�4˜�,  t ¨t°T¨l¸SÀ#¸JÐGÑHÔH€AÝ
Œ���ÑÔ€Að	=ð ð
 ‡M‚M�!�QÑÔÐÝŒ8�G˜V×.Ò.Ñ0Ô0°Ô3Ñ4Ô4Ð4Ð4Ð4Ð4Ð4r^   c                  ó  — ddgddgddgg} g d¢}t          dt          ¦   «         fd	t          d
¬¦  «        fdg¬¦  «        }|                     | |¦  «         |                     ¦   «         }ddg}t          ||¦  «         dS )z1Check get_feature_names_out output for regressor.r   r"   r   r˜   r÷   rò   r  r!   rý   r   ra   )Úignorerá   rþ   Úvotingregressor_lrÚvotingregressor_treeN)r   r   r   r+   Úget_feature_names_outr   )r,   r-   r8   Ú	names_outÚexpected_namess        r1   Ú%test_get_features_names_out_regressorr  W  s¬   € ð ˆQˆ�!�Q�˜!˜Q˜Ð €AØˆ	ˆ	€AåàÕ#Ñ%Ô%Ð&ØÕ*¸Ð:Ñ:Ô:Ð;Øð
ðñ ô €Fð ‡J‚Jˆq�!ÑÔÐà×,Ò,Ñ.Ô.€IØ*Ð,BÐC€NÝ�y .Ñ1Ô1Ð1Ð1Ð1r^   zkwargs, expected_namesrB   )r8   rç   )Úvotingclassifier_lr0Úvotingclassifier_lr1Úvotingclassifier_lr2Úvotingclassifier_tree0Úvotingclassifier_tree1Úvotingclassifier_tree2r8   r6   Úvotingclassifier_lrÚvotingclassifier_treec           	      óh  — ddgddgddgddgg}g d¢}t          dd	d
t          d¬¦  «        fdt          d¬¦  «        fgi| ¤Ž}|                     ||¦  «         |                     |¦  «        }|                     ¦   «         }|j        d         t          |¦  «        k    sJ ‚t          ||¦  «         dS )zBCheck get_feature_names_out for classifier for different settings.r   r"   r   r˜   r÷   rò   r�   )r   r   r"   r   r    r!   r   ra   rý   Nr'   )	r   r   r   r+   rE   r  ró   rÊ   r   )Úkwargsr  r,   r-   r8   ÚX_transr  s          r1   Ú&test_get_features_names_out_classifierr  k  së   € ð& ˆQˆ�!�Q�˜!˜Q˜ ! S Ð*€AØˆˆ€Aåð ð àÕ%°1Ð5Ñ5Ô5Ð6ØÕ+¸Ð;Ñ;Ô;Ð<ð
ðð
 ðð €Fð ‡J‚Jˆq�!ÑÔÐØ×Ò˜qÑ!Ô!€GØ×,Ò,Ñ.Ô.€IàŒ=˜Ô�s >Ñ2Ô2Ò2Ð2Ð2Ð2Ý�y .Ñ1Ô1Ð1Ð1Ð1r^   c                  óL  — ddgddgddgg} g d¢}t          dt          d	¬
¦  «        fdt          d	¬
¦  «        fgdd¬¦  «        }|                     | |¦  «         d}t	          j        t          |¬¦  «        5  |                     ¦   «          ddd¦  «         dS # 1 swxY w Y   dS )zJCheck that error is raised when voting="soft" and flatten_transform=False.r   r"   r   r˜   r÷   rò   r  r!   r   ra   rý   rB   Frñ   zYget_feature_names_out is not supported when `voting='soft'` and `flatten_transform=False`r%   N)r   r   r   r+   r(   r)   r*   r  )r,   r-   r8   r?   s       r1   Ú,test_get_features_names_out_classifier_errorr   �  s  € à
ˆQˆ�!�Q�˜!˜Q˜Ð €AØˆ	ˆ	€AåàÕ%°1Ð5Ñ5Ô5Ð6ØÕ+¸Ð;Ñ;Ô;Ð<ð
ð Øðñ ô €Fð ‡J‚Jˆq�!ÑÔÐð	$ð õ 
Œ•z¨Ð	-Ñ	-Ô	-ð 'ð 'Ø×$Ò$Ñ&Ô&Ð&ð'ð 'ð 'ñ 'ô 'ð 'ð 'ð 'ð 'ð 'ð 'ð 'øøøð 'ð 'ð 'ð 'ð 'ð 's   Á7BÂBÂ B)SrÖ   r  Únumpyrs   r(   Úsklearnr   Úsklearn.baser   r   r   Úsklearn.datasetsr   Úsklearn.dummyr   Úsklearn.ensembler	   r
   r   r   Úsklearn.exceptionsr   Úsklearn.linear_modelr   r   Úsklearn.model_selectionr   r   r   Úsklearn.multiclassr   Úsklearn.naive_bayesr   Úsklearn.neighborsr   Úsklearn.preprocessingr   Úsklearn.svmr   Úsklearn.treer   r   Úsklearn.utils._testingr   r   r   Ú	load_irisÚirisÚdataÚtargetr,   r-   rù   r=   Úload_diabetesrF   rr   ÚmarkÚparametrizer2   r@   rH   r]   rc   rg   r†   r‘   r¡   r«   r³   r¸   rÐ   rÙ   rß   rí   rï   rö   rü   r  r
  r  r  r   r'   r^   r1   ú<module>r8     sš  ðØ :Ð :à 	€	€	€	à Ð Ð Ð Ø €€€à Ð Ð Ð Ð Ð Ø >Ð >Ð >Ð >Ð >Ð >Ð >Ð >Ð >Ð >Ø ;Ð ;Ð ;Ð ;Ð ;Ð ;Ø (Ð (Ð (Ð (Ð (Ð (ðð ð ð ð ð ð ð ð ð ð ð ð .Ð -Ð -Ð -Ð -Ð -Ø EÐ EÐ EÐ EÐ EÐ EÐ EÐ EØ SÐ SÐ SÐ SÐ SÐ SÐ SÐ SÐ SÐ SØ 2Ð 2Ð 2Ð 2Ð 2Ð 2Ø *Ð *Ð *Ð *Ð *Ð *Ø 2Ð 2Ð 2Ð 2Ð 2Ð 2Ø 0Ð 0Ð 0Ð 0Ð 0Ð 0Ø Ð Ð Ð Ð Ð Ø FÐ FÐ FÐ FÐ FÐ FÐ FÐ Fðð ð ð ð ð ð ð ð ð ð €xÔÑÔ€Ø„y����A�a�C�Ô˜$œ+€€€1àˆ>ÑÔ×)Ò)¨!Ñ,Ô,€à!ˆ8Ô!¨TÐ2Ñ2Ô2�€€Sð „×ÒØð ˜2ÐØUð	
ð
 "Ð#5Ð#5Ñ#7Ô#7Ð8Ð9ÀqÈ!ÀfÐMÐMØ>ð	
ð	ñô ðð ñô ðð.ð .ð .ðð ð ð,
 ð 
 ð 
 ð.ð .ð .ð ð  ð  ð!Dð !Dð !DðHFð Fð Fð>.(ð .(ð .(ðbð ð ðð ð ð&Nð Nð Nð&*:ð *:ð *:ðZ5ð 5ð 5ð Dð Dð Dð0>Bð >Bð >BðBð ð ð"ð ð ð> „×ÒØð ØØÐàÐ-Ð-Ñ/Ô/Ð0ØÐ1Ð1¸qÐAÑAÔAÐBðñô ð		
ð ØØˆOàÐ+Ð+Ñ-Ô-Ð.ØÐ0Ð0¸aÐ@Ñ@Ô@ÐAðñô ð		
ðñô ð2#ð #ñ3ô ð2#ð „×ÒØ	àˆàÐ'Ð'Ñ)Ô)Ð*ØÐ.Ð.¸AÐ>Ñ>Ô>Ð?ðð	
ñ 	
ô 	
ð 	ÐàÐ)Ð)°qÐ9Ñ9Ô9Ð:ØÐ/Ð/¸QÐ?Ñ?Ô?Ð@ðð	
ñ 	
ô 	
ðð 
Ð.Ð/ð! ñ ô ð$#ð #ñ%ô ð$#ð „×ÒØàˆàÐ'Ð'Ñ)Ô)Ð*ØÐ,Ð,¸#Ð>Ñ>Ô>Ð?ðð ð	
ñ 	
ô 	
ð 	ÐàÐ)Ð)°sÐ;Ñ;Ô;Ð<ØÐ-Ð-¸3Ð?Ñ?Ô?Ð@ðð ð	
ñ 	
ô 	
ðñô ð&
5ð 
5ñ'ô ð&
5ð2ð 2ð 2ð( „×ÒØð °DÐ9Ð9ðð ð ð
	
ð �FÐ	Ð3Ð5LÐMÐNðñô ð"2ð 2ñ#ô ð"2ð('ð 'ð 'ð 'ð 'r^   