§
    rŠtjš_  ã                   ób  — d dl mZmZ d dlZd dlZd dlmZmZ d dl	m
Z
mZ d dlmZmZ d dlmZ d dlmZ d dlmZmZmZmZmZmZmZmZmZmZmZmZm Z m!Z!m"Z"m#Z#m$Z$m%Z%m&Z&m'Z'm(Z(m)Z)m*Z*m+Z+ d d	l,m-Z-  e+egegegegd
œd¬¦  «        d|d dœd„¦   «         Z. G d„ d¦  «        Z/ G d„ de¦  «        Z0ej1         2                    deeg¦  «        d„ ¦   «         Z3ej1         2                    deeg¦  «        d„ ¦   «         Z4d„ Z5ej1         2                    d eed dd¬¦  «         eeddd¬¦  «        g¦  «        d„ ¦   «         Z6ej1         2                    dedddd œe7d!fedd"d#d œe7d$fedd dd œe8d%fed dd&d œe8d'fedd(dd œe8d)fg¦  «        d*„ ¦   «         Z9d+„ Z:d,„ Z;ej1         2                    d-e<d.fed.fed/fej=        d0fg¦  «        d1„ ¦   «         Z>d2„ Z?ej1         2                    d3 eedd d¬¦  «         eed dd¬¦  «         eeddd#¬¦  «         eh d4£¦  «         e¦   «          ed¬5¦  «         e'¦   «          ed6¦  «         e!¦   «          e¦   «         g
¦  «        d7„ ¦   «         Z@ej1         2                    d8 eedd9d&¬¦  «         eed:d;d¬¦  «        f eedd9d&¬¦  «         eed:d;d#¬¦  «        f eedd9d&¬¦  «         eed<d;d¬¦  «        f eedd9d&¬¦  «         eed;dd¬¦  «        f eedd9d&¬¦  «         eed<dd#¬¦  «        f eed9dd¬¦  «         eed:d;d¬¦  «        f eed9dd¬¦  «         eed:d;d#¬¦  «        f eed9dd¬¦  «         eeddd¬¦  «        f eed9dd¬¦  «         eedd:d¬¦  «        f eed9dd¬¦  «         eedd=d#¬¦  «        f eed:d;d¬¦  «         eeddd&¬¦  «        f eed:d;d¬¦  «         eeddd¬¦  «        f eed:d;d¬¦  «         eed>d=d#¬¦  «        f eed:d;d¬¦  «         eed>d=d&¬¦  «        f eed:d;d#¬¦  «         eed?d@d#¬¦  «        f eed:d;d#¬¦  «         eed?d@d¬¦  «        f eeddd¬¦  «         eed dd¬¦  «        f eeddd¬¦  «         eed dd¬¦  «        fg¦  «        dA„ ¦   «         ZAej1         2                    d3 e¦   «          e eB¦  «         e¦   «          e#¦   «          e%¦   «          e&¦   «          e¦   «          eeddd#¬¦  «        g¦  «        dB„ ¦   «         ZCej1         2                    d3 e¦   «          e¦   «          e eB¦  «         e#¦   «          e%¦   «          e&¦   «          e¦   «          e'¦   «          e¦   «          ed¬5¦  «         eh d4£¦  «         eeh dC£¦  «         eeddd#¬¦  «         eed d@d#¬¦  «         eed dd#¬¦  «         eedd d#¬¦  «         eed dd#¬¦  «         eed dd¬¦  «         eedd d&¬¦  «         ed6¦  «         e!¦   «          e¦   «         g¦  «        dD„ ¦   «         ZDej1         2                    dE eed dd¬¦  «        dFf eed dd#¬¦  «        dGf eh d4£¦  «        dHf eeEejF        ejG        h¦  «        ejG        feHdI„ fdJdKddgd9d<ggfdK ejI        ddgd9d<gg¦  «        fdL eddgd9d<gg¦  «        fdL eddgd9d<gg¦  «        fg
dM„ e-D ¦   «         ¢dN‘dOejJ         K                    d ¦  «        f‘dP‘e/ e/¦   «         f‘e<df‘edQf‘dR‘dS‘dTejL        f‘ e¦   «         d(f‘ e¦   «         dUf‘ e¦   «         ddVz  f‘ e¦   «         df‘ e¦   «          eMdT¦  «        f‘ e¦   «         ejL        f‘ e¦   «         dWf‘ ed6¦  «         e0d ¬X¦  «        f‘dY‘¦  «        dZ„ ¦   «         ZNej1         2                    d[ eed dd¬¦  «        ef ed\d]h¦  «        ef eedFd^h¦  «        efdKefdLe&fdOe%fde#feHefe<e fd_efd`e'f ed¬5¦  «        ef ed6¦  «        efdaefdTe"fejL        e"fg¦  «        db„ ¦   «         ZOdc„ ZPdd„ ZQde„ ZRdf„ ZSdg„ ZTdh„ ZUdi„ ZVdj„ ZWdk„ ZXdl„ ZYdm„ ZZdn„ Z[do„ Z\dp„ Z]dq„ Z^dr„ Z_ds„ Z`dt„ Zadu„ Zbej1         2                    dvddwg¦  «        dx„ ¦   «         Zcej1         2                    dyg dz¢¦  «        d{„ ¦   «         ZddS )}é    )ÚIntegralÚRealN)Ú	csr_arrayÚ
csr_matrix)Úconfig_contextÚ
get_config)ÚBaseEstimatorÚ_fit_context)ÚLeaveOneOut©Ú
deprecated)Ú
HasMethodsÚHiddenÚIntervalÚInvalidParameterErrorÚMissingValuesÚOptionsÚ
RealNotIntÚ
StrOptionsÚ_ArrayLikesÚ	_BooleansÚ
_CallablesÚ
_CVObjectsÚ_InstancesOfÚ_IterablesNotStringÚ_NanConstraintÚ_NoneConstraintÚ_PandasNAConstraintÚ_RandomStatesÚ_SparseMatricesÚ_VerboseHelperÚgenerate_invalid_param_valÚgenerate_valid_paramÚmake_constraintÚvalidate_params)ÚCSR_CONTAINERS)ÚaÚbÚcÚdT©Úprefer_skip_nested_validation)r*   c                ó   — dS )z/A function to test the validation of functions.N© )r'   r(   r)   r*   ÚargsÚkwargss         úg/var/www/html/CA-Chatbot/venv/lib/python3.11/site-packages/sklearn/utils/tests/test_param_validation.pyÚ_funcr2   )   ó   € € € ó    c                   ó–   — e Zd ZdZ edegid¬¦  «        d„ ¦   «         Z e¦   «          edegid¬¦  «        d„ ¦   «         ¦   «         ZdS )Ú_ClasszJA class to test the _InstancesOf constraint and the validation of methods.r'   Tr+   c                 ó   — dS )zA validated methodNr.   ©Úselfr'   s     r1   Ú_methodz_Class._method4   r3   r4   c                 ó   — dS )zA deprecated validated methodNr.   r8   s     r1   Ú_deprecated_methodz_Class._deprecated_method8   r3   r4   N)	Ú__name__Ú
__module__Ú__qualname__Ú__doc__r%   r   r:   r   r<   r.   r4   r1   r6   r6   1   sŒ   € € € € € ØTÐTà€_�c˜D˜6�]À$ÐGÑGÔGð!ð !ñ HÔGð!ð €Z�\„\Ø€_�c˜D˜6�]À$ÐGÑGÔGð,ð ,ñ HÔGñ „\ð,ð ,ð ,r4   r6   c                   óZ   — e Zd ZU dZdegiZeed<   d„ Z e	d¬¦  «        d	d„¦   «         Z
dS )
Ú
_Estimatorz<An estimator to test the validation of estimator parameters.r'   Ú_parameter_constraintsc                 ó   — || _         d S ©N©r'   r8   s     r1   Ú__init__z_Estimator.__init__C   s   € ØˆŒˆˆr4   Tr+   Nc                 ó   — d S rE   r.   )r9   ÚXÚys      r1   Úfitz_Estimator.fitF   ó   € àˆr4   ©NN)r=   r>   r?   r@   r   rC   ÚdictÚ__annotations__rG   r
   rK   r.   r4   r1   rB   rB   >   sp   € € € € € € ØFÐFà$'¨$¨ =Ð˜DÐ0Ð0Ñ0ðð ð ð €\°Ð5Ñ5Ô5ðð ð ñ 6Ô5ðð ð r4   rB   Úinterval_typec                 óþ   — t          | ddd¬¦  «        }d|v sJ ‚d|vsJ ‚t          | ddd¬¦  «        }d|vsJ ‚d|v sJ ‚t          | ddd¬¦  «        }d|v sJ ‚d|v sJ ‚t          | ddd¬¦  «        }d|vsJ ‚d|vsJ ‚dS )	z.Check the range of values depending on closed.éþÿÿÿé   Úleft©ÚclosedÚrightÚbothÚneitherN)r   ©rP   Úintervals     r1   Útest_interval_ranger\   K   sÚ   € õ ˜ r¨1°VÐ<Ñ<Ô<€HØ�ˆ>ˆ>ˆ>ˆ>Ø�HÐÐÐÐå˜ r¨1°WÐ=Ñ=Ô=€HØ�XÐÐÐÐØ�ˆ=ˆ=ˆ=ˆ=å˜ r¨1°VÐ<Ñ<Ô<€HØ�ˆ>ˆ>ˆ>ˆ>Ø�ˆ=ˆ=ˆ=ˆ=å˜ r¨1°YÐ?Ñ?Ô?€HØ�XÐÐÐÐØ�HÐÐÐÐÐÐr4   c                 ób  — t          | ddd¬¦  «        }ddz  |vsJ ‚ddz  |vsJ ‚t          ddz  ¦  «        |vsJ ‚t          ddz  ¦  «        |vsJ ‚t          | dddz  d¬¦  «        }ddz  |v sJ ‚ddz  |vsJ ‚t          ddz  ¦  «        |v sJ ‚t          ddz  ¦  «        |vsJ ‚ddz  |vsJ ‚dS )	zbCheck that Interval constraint work with large integers.

    non-regression test for #26648.
    r   rS   rY   rU   éA   é€   i   N)r   ÚfloatrZ   s     r1   Útest_interval_large_integersra   _   s  € õ ˜ q¨!°IÐ>Ñ>Ô>€HØˆb‰5˜Ð Ð Ð Ð Øˆc‰6˜Ð!Ð!Ð!Ð!Ý��B‘‰<Œ<˜xÐ'Ð'Ð'Ð'Ý��C‘‰=Œ= Ð(Ð(Ð(Ð(å˜ q¨!¨S©&¸ÐCÑCÔC€HØˆb‰5�HÐÐÐÐØˆc‰6˜Ð!Ð!Ð!Ð!Ý��B‘‰<Œ<˜8Ð#Ð#Ð#Ð#Ý��C‘‰=Œ= Ð(Ð(Ð(Ð(àˆd‰7˜(Ð"Ð"Ð"Ð"Ð"Ð"r4   c                  ó  — t          t          ddd¬¦  «        } t          j        | v sJ ‚t          t          ddd¬¦  «        } t          j         | v sJ ‚t          t          ddd¬¦  «        } t          j        | vsJ ‚t          j         | vsJ ‚dS )zjCheck that inf is included iff a bound is closed and set to None.

    Only valid for real intervals.
    r   NrW   rU   rT   rY   )r   r   ÚnpÚinf©r[   s    r1   Útest_interval_inf_in_boundsrf   t   sœ   € õ
 �˜a ¨gÐ6Ñ6Ô6€HÝŒ6�XÐÐÐÐå�˜d A¨fÐ5Ñ5Ô5€HÝŒFˆ7�hÐÐÐÐå�˜d D°Ð;Ñ;Ô;€HÝŒ6˜Ð!Ð!Ð!Ð!ÝŒFˆ7˜(Ð"Ð"Ð"Ð"Ð"Ð"r4   r[   é   rT   rU   rX   c                 ó&   — t           j        | vsJ ‚dS )z)Check that np.nan is not in any interval.N)rc   Únanre   s    r1   Útest_nan_not_in_intervalrj   „   s   € õ Œ6˜Ð!Ð!Ð!Ð!Ð!Ð!r4   zparams, error, matchç      ð?rS   )ÚtyperT   rW   rV   z=Expecting left to be an int for an interval over the integersg       @rY   z>Expecting right to be an int for an interval over the integersz&left can't be None when closed == leftrW   z(right can't be None when closed == rightéÿÿÿÿzright can't be less than leftc                 ó|   — t          j        ||¬¦  «        5  t          di | ¤Ž ddd¦  «         dS # 1 swxY w Y   dS )zNCheck that informative errors are raised for invalid combination of parameters©ÚmatchNr.   )ÚpytestÚraisesr   )ÚparamsÚerrorrp   s      r1   Útest_interval_errorsru   �   s’   € õ@ 
Œ�u EÐ	*Ñ	*Ô	*ð ð ÝÐÐ�6ÐÐÐðð ð ñ ô ð ð ð ð ð ð ð øøøð ð ð ð ð ð s   —1±5¸5c                  óÞ   — t          h d£dh¬¦  «        } |                      d¦  «        sJ ‚|                      d¦  «        sJ ‚|                      d¦  «        rJ ‚dt          | ¦  «        v sJ ‚dS )z*Sanity check for the StrOptions constraint>   r'   r(   r)   r)   r   r'   r*   z'c' (deprecated)N)r   Úis_satisfied_byÚstr©Úoptionss    r1   Útest_stroptionsr{   ±   s…   € å˜˜˜°c°UÐ;Ñ;Ô;€GØ×"Ò" 3Ñ'Ô'Ð'Ð'Ð'Ø×"Ò" 3Ñ'Ô'Ð'Ð'Ð'Ø×&Ò& sÑ+Ô+Ð+Ð+Ð+à¥ W¡¤Ð-Ð-Ð-Ð-Ð-Ð-r4   c                  ó  — t          t          ddt          j        hdh¬¦  «        } |                      d¦  «        sJ ‚|                      t          j        ¦  «        sJ ‚|                      d¦  «        rJ ‚dt          | ¦  «        v sJ ‚dS )z'Sanity check for the Options constraintg      à¿ç      à?r   ç®Gáz®ó?z-0.5 (deprecated)N)r   r   rc   rd   rw   rx   ry   s    r1   Útest_optionsr   »   sŽ   € å•d˜T 3­¬Ð/¸T¸FÐCÑCÔC€GØ×"Ò" 4Ñ(Ô(Ð(Ð(Ð(Ø×"Ò"¥2¤6Ñ*Ô*Ð*Ð*Ð*Ø×&Ò& tÑ,Ô,Ð,Ð,Ð,à¥# g¡,¤,Ð.Ð.Ð.Ð.Ð.Ð.r4   ztype, expected_type_nameÚintr`   znumpy.ndarrayc                 óV   — t          | ¦  «        }t          |¦  «        d|› d�k    sJ ‚dS )z?Check the string representation of the _InstancesOf constraint.zan instance of 'ú'N)r   rx   )rl   Úexpected_type_nameÚ
constraints      r1   Ú%test_instances_of_type_human_readabler…   Å   s;   € õ ˜dÑ#Ô#€JÝˆz‰?Œ?ÐFÐ1CÐFÐFÐFÒFÐFÐFÐFÐFÐFr4   c                  ó  — t          ddg¦  «        }  G d„ d¦  «        } G d„ d¦  «        }|                       |¦   «         ¦  «        sJ ‚|                       |¦   «         ¦  «        rJ ‚t          | ¦  «        dk    sJ ‚dS )	z Check the HasMethods constraint.r'   r(   c                   ó   — e Zd Zd„ Zd„ ZdS )útest_hasmethods.<locals>._Goodc                 ó   — d S rE   r.   ©r9   s    r1   r'   z test_hasmethods.<locals>._Good.aÙ   ó   € ØˆDr4   c                 ó   — d S rE   r.   rŠ   s    r1   r(   z test_hasmethods.<locals>._Good.bÜ   r‹   r4   N)r=   r>   r?   r'   r(   r.   r4   r1   Ú_Goodrˆ   Ø   s2   € € € € € ð	ð 	ð 	ð	ð 	ð 	ð 	ð 	r4   r�   c                   ó   — e Zd Zd„ ZdS )útest_hasmethods.<locals>._Badc                 ó   — d S rE   r.   rŠ   s    r1   r'   ztest_hasmethods.<locals>._Bad.aà   r‹   r4   N)r=   r>   r?   r'   r.   r4   r1   Ú_Badr�   ß   s#   € € € € € ð	ð 	ð 	ð 	ð 	r4   r‘   z"an object implementing 'a' and 'b'N)r   rw   rx   )r„   r�   r‘   s      r1   Útest_hasmethodsr’   Ô   sÃ   € å˜S #˜JÑ'Ô'€Jðð ð ð ð ñ ô ð ðð ð ð ð ñ ô ð ð ×%Ò% e e¡g¤gÑ.Ô.Ð.Ð.Ð.Ø×)Ò)¨$¨$©&¬&Ñ1Ô1Ð1Ð1Ð1Ýˆz‰?Œ?ÐBÒBÐBÐBÐBÐBÐBr4   r„   >   r'   r(   r)   )Únumeric_onlyrK   c                 óR   — t          | ¦  «        }|                      |¦  «        rJ ‚dS )z>Check that the value generated does not satisfy the constraintN©r"   rw   )r„   Ú	bad_values     r1   Útest_generate_invalid_param_valr—   è   s1   € õ" +¨:Ñ6Ô6€IØ×)Ò)¨)Ñ4Ô4Ð4Ð4Ð4Ð4Ð4r4   zinteger_interval, real_intervalé   éûÿÿÿé   é   éüÿÿÿiöÿÿÿé   é
   c                 óþ   — t          |¬¦  «        }|                     |¦  «        rJ ‚|                      |¦  «        rJ ‚t          | ¬¦  «        }|                     |¦  «        rJ ‚|                      |¦  «        rJ ‚dS )ztCheck that the value generated for an interval constraint does not satisfy any of
    the interval constraints.
    ©r„   Nr•   )Úinteger_intervalÚreal_intervalr–   s      r1   Ú+test_generate_invalid_param_val_2_intervalsr£   ý   s”   € õb +°mÐDÑDÔD€IØ×,Ò,¨YÑ7Ô7Ð7Ð7Ð7Ø×/Ò/°	Ñ:Ô:Ð:Ð:Ð:å*Ð6FÐGÑGÔG€IØ×,Ò,¨YÑ7Ô7Ð7Ð7Ð7Ø×/Ò/°	Ñ:Ô:Ð:Ð:Ð:Ð:Ð:r4   c                 óˆ   — t          j        t          ¦  «        5  t          | ¦  «         ddd¦  «         dS # 1 swxY w Y   dS )zmCheck that the function raises NotImplementedError when there's no invalid value
    for the constraint.
    N)rq   rr   ÚNotImplementedErrorr"   r    s    r1   Ú)test_generate_invalid_param_val_all_validr¦   W  s‡   € õ" 
ŒÕ*Ñ	+Ô	+ð /ð /Ý" :Ñ.Ô.Ð.ð/ð /ð /ñ /ô /ð /ð /ð /ð /ð /ð /ð /øøøð /ð /ð /ð /ð /ð /s   š7·;¾;>   rg   rS   r˜   c                 óR   — t          | ¦  «        }|                      |¦  «        sJ ‚dS )z;Check that the value generated does satisfy the constraint.N)r#   rw   )r„   Úvalues     r1   Útest_generate_valid_paramr©   l  s1   € õ: ! Ñ,Ô,€EØ×%Ò% eÑ,Ô,Ð,Ð,Ð,Ð,Ð,r4   zconstraint_declaration, valuegáz®GáÚ?é*   r(   c                 ó   — | dz   S )Nrg   r.   )Úxs    r1   ú<lambda>r­   ”  s
   € ˜Q ™U€ r4   rM   z
array-likeúsparse matrixc                 ó4   — g | ]}d  |ddgddgg¦  «        f‘ŒS )r®   rg   rS   r˜   r›   r.   )Ú.0Ú	containers     r1   ú
<listcomp>r²   š  sD   € ð 

ð 

ð 

àð ˜i˜i¨!¨Q¨°!°Q°Ð(8Ñ9Ô9Ð:ð

ð 

ð 

r4   )Úrandom_stater   r³   )r³   Nr}   )ÚbooleanF)Úverboserg   ri   g      ð¿i  ÚmissingrF   )Ú	cv_objectrš   c                 óR   — t          | ¦  «        }|                     |¦  «        sJ ‚dS )z+Sanity check for the is_satisfied_by methodN)r$   rw   )Úconstraint_declarationr¨   r„   s      r1   Útest_is_satisfied_byrº   �  s3   € õN !Ð!7Ñ8Ô8€JØ×%Ò% eÑ,Ô,Ð,Ð,Ð,Ð,Ð,r4   z1constraint_declaration, expected_constraint_classÚoption1Úoption2r~   r´   rµ   r·   c                 ó:   — t          | ¦  «        }|j        |u sJ ‚dS )zICheck that make_constraint dispatches to the appropriate constraint classN)r$   Ú	__class__)r¹   Úexpected_constraint_classr„   s      r1   Útest_make_constraintrÀ   ¸  s-   € õ. !Ð!7Ñ8Ô8€JØÔÐ#<Ð<Ð<Ð<Ð<Ð<Ð<r4   c                  óŒ   — t          j        t          d¬¦  «        5  t          d¦  «         ddd¦  «         dS # 1 swxY w Y   dS )zNCheck that an informative error is raised when an unknown constraint is passedzUnknown constraintro   znot a valid constraintN)rq   rr   Ú
ValueErrorr$   r.   r4   r1   Útest_make_constraint_unknownrÃ   Ó  s‹   € å	Œ•zÐ)=Ð	>Ñ	>Ô	>ð 2ð 2ÝÐ0Ñ1Ô1Ð1ð2ð 2ð 2ñ 2ô 2ð 2ð 2ð 2ð 2ð 2ð 2ð 2øøøð 2ð 2ð 2ð 2ð 2ð 2s   œ9¹=Á =c                  óB  — t          j        t          d¬¦  «        5  t          dd¬¦  «         ddd¦  «         n# 1 swxY w Y   t          j        t          d¬¦  «        5  t          ddgddiŽ ddd¦  «         n# 1 swxY w Y   t          j        t          d	¬¦  «        5  t          di ddi¤Ž ddd¦  «         n# 1 swxY w Y   t          j        t          d
¬¦  «        5  t          ddd¬¦  «         ddd¦  «         n# 1 swxY w Y   t          j        t          d¬¦  «        5  t          dgg d¢¢R ddiddi¤Ž ddd¦  «         n# 1 swxY w Y   t          j        t          d	¬¦  «        5  t          dgg d¢¢R ddiddi¤Ž ddd¦  «         dS # 1 swxY w Y   dS )zGCheck that validate_params works no matter how the arguments are passedz"The 'a' parameter of _func must bero   Úwrongrg   ©r)   Nz"The 'b' parameter of _func must ber)   ú"The 'c' parameter of _func must bez"The 'd' parameter of _func must be)r)   r*   r   )rÅ   rS   r˜   r›   Úerš   ©rg   rS   r˜   Úfour)rg   )rq   rr   r   r2   r.   r4   r1   Útest_validate_paramsrË   Ù  s€  € å	ŒÝÐ%Ið
ñ 
ô 
ð ð õ 	ˆg˜ÐÑÔÐðð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð õ
 
ŒÝÐ%Ið
ñ 
ô 
ð "ð "õ 	��7ˆ|Ð!˜qÐ!Ð!Ð!ð"ð "ð "ñ "ô "ð "ð "ð "ð "ð "ð "øøøð "ð "ð "ð "õ
 
ŒÝÐ%Ið
ñ 
ô 
ð #ð #õ 	Ð"Ð"�C˜�>Ð"Ð"Ð"ð#ð #ð #ñ #ô #ð #ð #ð #ð #ð #ð #øøøð #ð #ð #ð #õ
 
ŒÝÐ%Ið
ñ 
ô 
ð !ð !õ 	ˆa�1˜Ð Ñ Ô Ð ð!ð !ð !ñ !ô !ð !ð !ð !ð !ð !ð !øøøð !ð !ð !ð !õ 
ŒÝÐ%Ið
ñ 
ô 
ð 4ð 4õ 	ˆaÐ3�/�/�/Ð3Ð3Ð3 QÐ3¨3°¨(Ð3Ð3Ð3ð4ð 4ð 4ñ 4ô 4ð 4ð 4ð 4ð 4ð 4ð 4øøøð 4ð 4ð 4ð 4õ
 
ŒÝÐ%Ið
ñ 
ô 
ð 3ð 3õ 	ˆaÐ2�)�)�)Ð2Ð2Ð2˜vÐ2¨#¨q¨Ð2Ð2Ð2ð3ð 3ð 3ñ 3ô 3ð 3ð 3ð 3ð 3ð 3ð 3ð 3øøøð 3ð 3ð 3ð 3ð 3ð 3sg   œ:º>Á>Á A;Á;A?ÂA?Â!B<Â<C ÃC Ã"DÄDÄDÄ'E
Å
EÅEÅ0FÆFÆFc                  ób   — t          dt          gid¬¦  «        d„ ¦   «         }  | dd¦  «         dS )zTCheck that no error is raised when there are parameters without
    constraints
    r'   Tr+   c                 ó   — d S rE   r.   )r'   r(   s     r1   Úfuncz1test_validate_params_missing_params.<locals>.func   rL   r4   rg   rS   N)r%   r€   )rÎ   s    r1   Ú#test_validate_params_missing_paramsrÏ   û  sG   € õ
 �c�C˜5�\ÀÐFÑFÔFðð ñ GÔFðð 	€DˆˆA�J„J€J€J€Jr4   c                  óª  —  t          ¦   «         t          ¦  «        } t          j        t          d¬¦  «        5   | ddd¬¦  «         ddd¦  «         n# 1 swxY w Y   t          j        t          d¬¦  «        5  t          j        t          d¬¦  «        5   | ddd	¬¦  «         ddd¦  «         n# 1 swxY w Y   ddd¦  «         dS # 1 swxY w Y   dS )
z5Check that validate_params functions can be decoratedzFunction _func is deprecatedro   rg   rS   r˜   rÆ   NrÇ   rÅ   )r   r2   rq   ÚwarnsÚFutureWarningrr   r   )Údecorated_functions    r1   Ú test_decorate_validated_functionrÔ     s¡  € à%�™œ¥eÑ,Ô,Ðå	Œ•mÐ+IÐ	JÑ	JÔ	Jð &ð &ØÐ˜1˜a 1Ð%Ñ%Ô%Ð%ð&ð &ð &ñ &ô &ð &ð &ð &ð &ð &ð &øøøð &ð &ð &ð &õ 
Œ•mÐ+IÐ	JÑ	JÔ	Jð 0ð 0ÝŒ]Ý!Ð)Nð
ñ 
ô 
ð 	0ð 	0ð Ð˜q ! wÐ/Ñ/Ô/Ð/ð	0ð 	0ð 	0ñ 	0ô 	0ð 	0ð 	0ð 	0ð 	0ð 	0ð 	0øøøð 	0ð 	0ð 	0ð 	0ð0ð 0ð 0ñ 0ô 0ð 0ð 0ð 0ð 0ð 0ð 0ð 0øøøð 0ð 0ð 0ð 0ð 0ð 0sG   ¸AÁAÁAÁ9CÂB0Â$CÂ0B4	Â4CÂ7B4	Â8CÃCÃCc                  ó¾  — t          j        t          d¬¦  «        5  t          ¦   «                              d¦  «         ddd¦  «         n# 1 swxY w Y   t          j        t          d¬¦  «        5  t          j        t          d¬¦  «        5  t          ¦   «                              d¦  «         ddd¦  «         n# 1 swxY w Y   ddd¦  «         dS # 1 swxY w Y   dS )z-Check that validate_params works with methodsz+The 'a' parameter of _Class._method must bero   rÅ   Nz)Function _deprecated_method is deprecatedz6The 'a' parameter of _Class._deprecated_method must be)rq   rr   r   r6   r:   rÑ   rÒ   r<   r.   r4   r1   Útest_validate_params_methodrÖ     s–  € å	ŒÝÐ%Rð
ñ 
ô 
ð "ð "õ 	‰Œ×Ò˜Ñ!Ô!Ð!ð"ð "ð "ñ "ô "ð "ð "ð "ð "ð "ð "øøøð "ð "ð "ð "õ 
Œ•mÐ+VÐ	WÑ	WÔ	Wð 1ð 1ÝŒ]Ý!ØJð
ñ 
ô 
ð 	1ð 	1õ ‰HŒH×'Ò'¨Ñ0Ô0Ð0ð		1ð 	1ð 	1ñ 	1ô 	1ð 	1ð 	1ð 	1ð 	1ð 	1ð 	1øøøð 	1ð 	1ð 	1ð 	1ð1ð 1ð 1ñ 1ô 1ð 1ð 1ð 1ð 1ð 1ð 1ð 1øøøð 1ð 1ð 1ð 1ð 1ð 1sG   œ"A
Á
AÁAÁ0CÂ"B:Â.CÂ:B>	Â>CÃB>	ÃCÃCÃCc                  ó´   — t          d¦  «        } t          j        t          d¬¦  «        5  |                      ¦   «          ddd¦  «         dS # 1 swxY w Y   dS )z9Check that validate_params works with Estimator instancesrÅ   z'The 'a' parameter of _Estimator must bero   N)rB   rq   rr   r   rK   )Úests    r1   Útest_validate_params_estimatorrÙ   &  s¡   € õ �WÑ
Ô
€Cå	ŒÝÐ%Nð
ñ 
ô 
ð ð ð 	�Š‰	Œ	ˆ	ðð ð ñ ô ð ð ð ð ð ð ð øøøð ð ð ð ð ð s   «AÁAÁAc                  ó˜   — t          j        t          d¬¦  «        5  t          h d£ddh¬¦  «         ddd¦  «         dS # 1 swxY w Y   dS )z@Check that the deprecated parameter must be a subset of options.z#deprecated options must be a subsetro   >   r'   r(   r)   r'   r*   r   N)rq   rr   rÂ   r   r.   r4   r1   Ú!test_stroptions_deprecated_subsetrÛ   1  s—   € å	Œ•zÐ)NÐ	OÑ	OÔ	Oð ;ð ;Ý�?�?�?°°S¨zÐ:Ñ:Ô:Ð:ð;ð ;ð ;ñ ;ô ;ð ;ð ;ð ;ð ;ð ;ð ;ð ;øøøð ;ð ;ð ;ð ;ð ;ð ;s   œ?¿AÁAc                  óf  — t          dt          t          ¦  «        t          gid¬¦  «        d„ ¦   «         }  | ddddœ¦  «          | g d	¢¦  «         t	          j        t          d
¬¦  «        5 } | d¬¦  «         ddd¦  «         n# 1 swxY w Y   t          |j        ¦  «        }d|v sJ ‚d|vsJ ‚dS )zECheck that internal constraints are not exposed in the error message.ÚparamTr+   c                 ó   — d S rE   r.   ©rÝ   s    r1   Úfz!test_hidden_constraint.<locals>.f:  s	   € ð 	ˆr4   rg   rS   r˜   )r'   r(   r)   rÉ   úThe 'param' parameterro   Úbadrß   Nzan instance of 'dict'zan instance of 'list')	r%   r   ÚlistrN   rq   rr   r   rx   r¨   ©rà   Úexc_infoÚerr_msgs      r1   Útest_hidden_constraintrç   7  s)  € õ Ø	•6�$‘<”<¥Ð&Ð'Àtðñ ô ðð ñô ðð €AˆA�A˜AÐÐÑÔÐØ€A€i€i€i�L„L€Lå	ŒÝÐ%<ð
ñ 
ô 
ð à	Ø	ˆ�ˆ‰Œˆðð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð õ �(”.Ñ!Ô!€GØ" gÐ-Ð-Ð-Ð-Ø"¨'Ð1Ð1Ð1Ð1Ð1Ð1s   Á-BÂB
ÂB
c            	      ó~  — t          dt          dh¦  «        t          t          dh¦  «        ¦  «        gid¬¦  «        d„ ¦   «         }  | d¦  «          | d¦  «         t          j        t
          d¬¦  «        5 } | d	¬
¦  «         ddd¦  «         n# 1 swxY w Y   t          |j        ¦  «        }d|v sJ ‚d|vsJ ‚dS )zBCheck that we can have 2 StrOptions constraints, one being hidden.rÝ   ÚautoÚwarnTr+   c                 ó   — d S rE   r.   rß   s    r1   rà   z!test_hidden_stroptions.<locals>.fR  ó	   € ð
 	ˆr4   rá   ro   râ   rß   N)r%   r   r   rq   rr   r   rx   r¨   rä   s      r1   Útest_hidden_stroptionsrí   O  s/  € õ Ø	•:˜v˜hÑ'Ô'­µ
¸F¸8Ñ0DÔ0DÑ)EÔ)EÐFÐGØ&*ðñ ô ðð ñ	ô ðð €A€f�I„I€IØ€A€f�I„I€Iå	ŒÝÐ%<ð
ñ 
ô 
ð à	Ø	ˆ�ˆ‰Œˆðð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð õ �(”.Ñ!Ô!€GØ�WÐÐÐÐØ˜Ð Ð Ð Ð Ð Ð s   Á9BÂBÂBc                  óz   — t          t          d¦  «        sJ ‚t          t          ¦   «         j        d¦  «        sJ ‚dS )zˆCheck that the validate_params decorator properly sets the parameter constraints
    as attribute of the decorated function/method.
    Ú_skl_parameter_constraintsN)Úhasattrr2   r6   r:   r.   r4   r1   Ú4test_validate_params_set_param_constraints_attributerñ   h  s?   € õ •5Ð6Ñ7Ô7Ð7Ð7Ð7Ý•6‘8”8Ô#Ð%AÑBÔBÐBÐBÐBÐBÐBr4   c                  ó�   — t          ddgid¬¦  «        d„ ¦   «         }  | d¦  «          | t          j        d¦  «        ¦  «         dS )z’Check that validate_params raise a deprecation message but still passes
    validation when using an int for a parameter accepting a boolean.
    rÝ   r´   Tr+   c                 ó   — d S rE   r.   rß   s    r1   rà   z1test_boolean_constraint_deprecated_int.<locals>.fu  rL   r4   FN)r%   rc   Úbool_©rà   s    r1   Ú&test_boolean_constraint_deprecated_intrö   p  s`   € õ
 �g 	˜{Ð+È4ÐPÑPÔPðð ñ QÔPðð €A€d�G„G€GØ€A…b„hˆu�o„oÑÔÐÐÐr4   c                  ó(  — t          t          dgddœd¬¦  «        dd„¦   «         } t          j        t          d¬¦  «        5   | d	¬
¦  «         ddd¦  «         n# 1 swxY w Y    G d„ d¦  «        } | |¬¦  «          |  |¦   «         ¬¦  «         dS )z5Check that validation can be skipped for a parameter.NÚno_validation©Úparam1Úparam2Tr+   c                 ó   — d S rE   r.   rù   s     r1   rà   ztest_no_validation.<locals>.f�  rì   r4   zThe 'param1' parameterro   rÅ   )rú   c                   ó   — e Zd ZdS )ú$test_no_validation.<locals>.SomeTypeN)r=   r>   r?   r.   r4   r1   ÚSomeTyperþ   �  s   € € € € € Øˆr4   rÿ   )rû   rM   ©r%   r€   rq   rr   r   )rà   rÿ   s     r1   Útest_no_validationr  ~  s#  € õ Ý˜�;¨/Ð:Ð:Ø&*ðñ ô ðð ð ñ	ô ðõ 
ŒÕ,Ð4LÐ	MÑ	MÔ	Mð ð Ø	ˆ�ÐÑÔÐðð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð ðð ð ð ð ñ ô ð ð €AˆXÐÑÔÐØ€AˆXˆX‰ZŒZÐÑÔÐÐÐs   ÁAÁAÁ!Ac                  óØ   — t          j        d¦  «        } t          ¦   «         }|                     | j        ¦  «        sJ ‚|                     t          j        g d¢¦  «        ¦  «        rJ ‚dS )z9Add a specific test for checking support for `pandas.NA`.ÚpandasrÉ   N)rq   Úimportorskipr   rw   ÚNArc   Úarray)ÚpdÚna_constraints     r1   Ú$test_pandas_na_constraint_with_pd_nar	  ”  sg   € å	Ô	˜XÑ	&Ô	&€Bå'Ñ)Ô)€MØ×(Ò(¨¬Ñ/Ô/Ð/Ð/Ð/Ø×,Ò,­R¬X°i°i°iÑ-@Ô-@ÑAÔAÐAÐAÐAÐAÐAr4   c                  óÊ   — t          ¦   «         } |                      g d¢¦  «        sJ ‚|                      t          d¦  «        ¦  «        sJ ‚|                      d¦  «        rJ ‚dS )zGCheck that a string does not satisfy the _IterableNotString constraint.rÉ   rž   zsome stringN)r   rw   Úranger    s    r1   Útest_iterable_not_stringr  �  sk   € å$Ñ&Ô&€JØ×%Ò% i i iÑ0Ô0Ð0Ð0Ð0Ø×%Ò%¥e¨B¡i¤iÑ0Ô0Ð0Ð0Ð0Ø×)Ò)¨-Ñ8Ô8Ð8Ð8Ð8Ð8Ð8r4   c                  ó<  — t          ¦   «         } |                      d¦  «        sJ ‚|                      t          ¦   «         ¦  «        sJ ‚|                      ddgddgfddgddgfg¦  «        sJ ‚|                      d¦  «        sJ ‚|                      d¦  «        rJ ‚dS )zUCheck that the _CVObjects constraint accepts all current ways
    to pass cv objects.rš   rg   rS   r˜   r›   Nznot a CV object)r   rw   r   r    s    r1   Útest_cv_objectsr  ¥  s¹   € õ ‘”€JØ×%Ò% aÑ(Ô(Ð(Ð(Ð(Ø×%Ò%¥k¡m¤mÑ4Ô4Ð4Ð4Ð4Ø×%Ò%¨¨A¨°°A°Ð'7¸1¸a¸&À1ÀaÀ&Ð9IÐ&JÑKÔKÐKÐKÐKØ×%Ò% dÑ+Ô+Ð+Ð+Ð+Ø×)Ò)Ð*;Ñ<Ô<Ð<Ð<Ð<Ð<Ð<r4   c                  óh   —  G d„ dt           ¦  «        }  | d¬¦  «                             ¦   «          dS )zÆCheck that the validation from a scikit-learn estimator inherited by a third
    party estimator does not impose a match between the dict of constraints and the
    parameters of the estimator.
    c                   ó*   ‡ — e Zd Zˆ fd„Zdˆ fd„	Zˆ xZS )ú7test_third_party_estimator.<locals>.ThirdPartyEstimatorc                 óZ   •— || _         t          ¦   «                              d¬¦  «         d S )Nr   rF   )r(   ÚsuperrG   )r9   r(   r¾   s     €r1   rG   z@test_third_party_estimator.<locals>.ThirdPartyEstimator.__init__·  s+   ø€ ØˆDŒFÝ‰GŒG×Ò˜qÐÑ!Ô!Ð!Ð!Ð!r4   Nc                 óL   •— t          ¦   «                              ||¦  «         d S rE   )r  rK   )r9   rI   rJ   r¾   s      €r1   rK   z;test_third_party_estimator.<locals>.ThirdPartyEstimator.fit»  s!   ø€ Ý‰GŒG�KŠK˜˜1ÑÔÐÐÐr4   rM   )r=   r>   r?   rG   rK   Ú__classcell__)r¾   s   @r1   ÚThirdPartyEstimatorr  ¶  sV   ø€ € € € € ð	"ð 	"ð 	"ð 	"ð 	"ð	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	r4   r  r   ©r(   N)rB   rK   )r  s    r1   Útest_third_party_estimatorr  °  sT   € ðð ð ð ð �jñ ô ð ð Ð˜!ÐÑÔ× Ò Ñ"Ô"Ð"Ð"Ð"r4   c                  ó’   — t          t          ddd¬¦  «        } |                      d¦  «        sJ ‚|                      d¦  «        rJ ‚dS )z9Check for the type RealNotInt in the Interval constraint.r   rg   rX   rU   rk   N)r   r   rw   r    s    r1   Útest_interval_real_not_intr  Ã  sR   € å�* a¨°6Ð:Ñ:Ô:€JØ×%Ò% cÑ*Ô*Ð*Ð*Ð*Ø×)Ò)¨!Ñ,Ô,Ð,Ð,Ð,Ð,Ð,r4   c                  ó  — t          dt          ¦  «        sJ ‚t          dt          ¦  «        rJ ‚t          t          j        d¦  «        t          ¦  «        sJ ‚t          t          j        d¦  «        t          ¦  «        rJ ‚dS )zCheck for the RealNotInt type.rk   rg   N)Ú
isinstancer   rc   Úfloat64Úint64r.   r4   r1   Útest_real_not_intr  Ê  sp   € å�c�:Ñ&Ô&Ð&Ð&Ð&Ý˜!�ZÑ(Ô(Ð(Ð(Ð(Ý•b”j ‘m”m¥ZÑ0Ô0Ð0Ð0Ð0Ý�"œ( 1™+œ+¥zÑ2Ô2Ð2Ð2Ð2Ð2Ð2r4   c                  ó2  — t          dt          gid¬¦  «        d„ ¦   «         } t          j        t          d¬¦  «        5   | d¬¦  «         d	d	d	¦  «         n# 1 swxY w Y   t          d¬
¦  «        5   | d¬¦  «         d	d	d	¦  «         d	S # 1 swxY w Y   d	S )z@Check that param validation can be skipped using config_context.r'   Tr+   c                 ó   — d S rE   r.   rF   s    r1   rà   z%test_skip_param_validation.<locals>.fÕ  rL   r4   úThe 'a' parameterro   Ú1rF   N©Úskip_parameter_validation)r%   r€   rq   rr   r   r   rõ   s    r1   Útest_skip_param_validationr&  Ò  s5  € õ �c�C˜5�\ÀÐFÑFÔFðð ñ GÔFðõ 
ŒÕ,Ð4GÐ	HÑ	HÔ	Hð ð Ø	ˆˆCˆ‰Œˆðð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð õ 
°$Ð	7Ñ	7Ô	7ð ð Ø	ˆˆCˆ‰Œˆðð ð ñ ô ð ð ð ð ð ð ð øøøð ð ð ð ð ð s#   ¾AÁAÁAÁ2BÂBÂBr,   Fc                 ó²  ‡— t          dt          gid¬¦  «        d„ ¦   «         Št          dt          gi| ¬¦  «        ˆfd„¦   «         }t          j        t          d¬¦  «        5   |d	¬
¦  «         ddd¦  «         n# 1 swxY w Y   | r |d¬
¦  «         dS t          j        t          d¬¦  «        5   |d¬
¦  «         ddd¦  «         dS # 1 swxY w Y   dS )z,Check that nested validation can be skipped.r'   Tr+   c                 ó   — d S rE   r.   rF   s    r1   rà   z&test_skip_nested_validation.<locals>.få  rL   r4   r(   c                 ó   •—  ‰d¬¦  «        S )NÚinvalid_param_valuerF   r.   )r(   rà   s    €r1   Úgz&test_skip_nested_validation.<locals>.gé  s   ø€ ð ˆqÐ(Ð)Ñ)Ô)Ð)r4   zThe 'b' parameterro   r*  r  Nrg   r"  r   )r,   r+  rà   s     @r1   Útest_skip_nested_validationr,  á  sŸ  ø€ õ �c�C˜5�\ÀÐFÑFÔFðð ñ GÔFðõ Ø	�sˆeˆØ&Cðñ ô ð*ð *ð *ð *ñ	ô ð*õ
 
ŒÕ,Ð4GÐ	HÑ	HÔ	Hð #ð #Ø	ˆÐ!Ð"Ñ"Ô"Ð"ð#ð #ð #ñ #ô #ð #ð #ð #ð #ð #ð #øøøð #ð #ð #ð #ð %ð Ø	ˆˆAˆ‰ŒˆˆˆåŒ]Õ0Ð8KÐLÑLÔLð 	ð 	ØˆA�ˆF‰FŒFˆFð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	ð 	ð 	s$   Á#A<Á<B ÂB Â2CÃCÃCzJskip_parameter_validation, prefer_skip_nested_validation, expected_skipped))TTT)TFT)FTT)FFFc                 óÀ   — t          dt          gi|¬¦  «        d„ ¦   «         }t          | ¬¦  «        5   |d¦  «        }ddd¦  «         n# 1 swxY w Y   ||k    sJ ‚dS )z5Check interaction between global skip and local skip.r'   r+   c                 ó*   — t          ¦   «         d         S )Nr%  )r   rF   s    r1   r+  z9test_skip_nested_validation_and_config_context.<locals>.g
  s   € õ ‰|Œ|Ð7Ô8Ð8r4   r$  rg   N)r%   r€   r   )r%  r,   Úexpected_skippedr+  Úactual_skippeds        r1   Ú.test_skip_nested_validation_and_config_contextr1  ü  sË   € õ Ø	�sˆeˆÐ4Qðñ ô ð9ð 9ñô ð9õ 
Ð2KÐ	LÑ	LÔ	Lð ð Ø˜˜1™œˆðð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð ð Ð-Ò-Ð-Ð-Ð-Ð-Ð-s   ³AÁAÁA)r   )eÚnumbersr   r   Únumpyrc   rq   Úscipy.sparser   r   Úsklearn._configr   r   Úsklearn.baser	   r
   Úsklearn.model_selectionr   Úsklearn.utilsr   Úsklearn.utils._param_validationr   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r    r!   r"   r#   r$   r%   Úsklearn.utils.fixesr&   r2   r6   rB   ÚmarkÚparametrizer\   ra   rf   rj   Ú	TypeErrorrÂ   ru   r{   r   r€   Úndarrayr…   r’   r—   r£   rã   r¦   r©   rl   Úfloat32r  Úcallabler  ÚrandomÚRandomStateri   r`   rº   rÀ   rÃ   rË   rÏ   rÔ   rÖ   rÙ   rÛ   rç   rí   rñ   rö   r  r	  r  r  r  r  r  r&  r,  r1  r.   r4   r1   ú<module>rC     sŽ  ðØ "Ð "Ð "Ð "Ð "Ð "Ð "Ð "à Ð Ð Ð Ø €€€Ø .Ð .Ð .Ð .Ð .Ð .Ð .Ð .à 6Ð 6Ð 6Ð 6Ð 6Ð 6Ð 6Ð 6Ø 4Ð 4Ð 4Ð 4Ð 4Ð 4Ð 4Ð 4Ø /Ð /Ð /Ð /Ð /Ð /Ø $Ð $Ð $Ð $Ð $Ð $ðð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð4 /Ð .Ð .Ð .Ð .Ð .ð €Øˆ&˜�v T F°$°Ð8Ð8Ø"&ðñ ô ð:˜að :ð :ð :ð :ñ	ô ð:ð
,ð 
,ð 
,ð 
,ð 
,ñ 
,ô 
,ð 
,ð
ð 
ð 
ð 
ð 
�ñ 
ô 
ð 
ð „×Ò˜¨8°TÐ*:Ñ;Ô;ðð ñ <Ô;ðð& „×Ò˜¨8°TÐ*:Ñ;Ô;ð#ð #ñ <Ô;ð#ð(#ð #ð #ð  „×ÒØØ€Xˆd�A�q Ð(Ñ(Ô(¨(¨(°4¸¸tÈFÐ*SÑ*SÔ*SÐTñô ð"ð "ñ	ô ð"ð
 „×ÒØð  s°QÀ&ÐIÐIØØLð	
ð  q°3À)ÐLÐLØØLð	
ð  t°aÀ6ÐJÐJØØ5ð	
ð  q°4À7ÐKÐKØØ7ð	
ð  q°2ÀÐHÐHØØ,ð	
ð+ñô ð<ð ñ=ô ð<ð.ð .ð .ð/ð /ð /ð „×ÒØà	ˆeˆØ	�5ÐØ	ˆwˆØ	Œ�_Ð%ð	ñô ðGð Gñô ðGðCð Cð Cð( „×ÒØàˆ��t˜Q vÐ.Ñ.Ô.Øˆ��q˜$ vÐ.Ñ.Ô.Øˆ��t˜T¨)Ð4Ñ4Ô4Øˆ
�?�?�?Ñ#Ô#Øˆ‰ŒØˆ 4Ð(Ñ(Ô(ØˆÑÔØˆ
�5ÑÔØÐÑÔØˆ
‰Œðñô ð5ð 5ñô ð5ð „×ÒØ%ð ˆH�X˜t Q¨wÐ7Ñ7Ô7ØˆH�Z  Q¨vÐ6Ñ6Ô6ð	
ð
 ˆH�X˜t Q¨wÐ7Ñ7Ô7ØˆH�Z  Q¨yÐ9Ñ9Ô9ð	
ð
 ˆH�X˜t Q¨wÐ7Ñ7Ô7ØˆH�Z  A¨fÐ5Ñ5Ô5ð	
ð
 ˆH�X˜t Q¨wÐ7Ñ7Ô7ØˆH�Z  D°Ð8Ñ8Ô8ð	
ð
 ˆH�X˜t Q¨wÐ7Ñ7Ô7ØˆH�Z  D°Ð;Ñ;Ô;ð	
ð
 ˆH�X˜q $¨vÐ6Ñ6Ô6ØˆH�Z  Q¨vÐ6Ñ6Ô6ð	
ð
 ˆH�X˜q $¨vÐ6Ñ6Ô6ØˆH�Z  Q¨yÐ9Ñ9Ô9ð	
ð
 ˆH�X˜q $¨vÐ6Ñ6Ô6ØˆH�Z  A¨fÐ5Ñ5Ô5ð	
ð
 ˆH�X˜q $¨vÐ6Ñ6Ô6ØˆH�Z  r°&Ð9Ñ9Ô9ð	
ð
 ˆH�X˜q $¨vÐ6Ñ6Ô6ØˆH�Z  r°)Ð<Ñ<Ô<ð	
ð
 ˆH�X˜r 1¨VÐ4Ñ4Ô4ØˆH�Z  q°Ð9Ñ9Ô9ð	
ð
 ˆH�X˜r 1¨VÐ4Ñ4Ô4ØˆH�Z  D°Ð8Ñ8Ô8ð	
ð
 ˆH�X˜r 1¨VÐ4Ñ4Ô4ØˆH�Z  b°Ð;Ñ;Ô;ð	
ð
 ˆH�X˜r 1¨VÐ4Ñ4Ô4ØˆH�Z  b°Ð9Ñ9Ô9ð	
ð
 ˆH�X˜r 1¨YÐ7Ñ7Ô7ØˆH�Z  B¨yÐ9Ñ9Ô9ð	
ð
 ˆH�X˜r 1¨YÐ7Ñ7Ô7ØˆH�Z  B¨vÐ6Ñ6Ô6ð	
ð
 ˆH�X˜q $¨vÐ6Ñ6Ô6ØˆH�Z  A¨fÐ5Ñ5Ô5ð	
ð
 ˆH�X˜q $¨vÐ6Ñ6Ô6ØˆH�Z  A¨fÐ5Ñ5Ô5ð	
ðKIñLô LðZ
;ð 
;ñ[Lô LðZ
;ð „×ÒØàˆ‰ŒØˆ�TÑÔØˆ
‰ŒØˆÑÔØˆ‰ŒØˆÑÔØˆ	‰ŒØˆ�˜4 ¨iÐ8Ñ8Ô8ð	ñô ð/ð /ñô ð/ð „×ÒØàˆ‰ŒØˆ
‰ŒØˆ�TÑÔØˆÑÔØˆ‰ŒØˆÑÔØˆ	‰ŒØˆÑÔØˆ‰ŒØˆ 4Ð(Ñ(Ô(Øˆ
�?�?�?Ñ#Ô#Øˆ�˜)˜)˜)Ñ$Ô$Øˆ�˜4 ¨iÐ8Ñ8Ô8Øˆ�˜1˜b¨Ð3Ñ3Ô3Øˆ�˜1˜d¨9Ð5Ñ5Ô5Øˆ�˜4 ¨9Ð5Ñ5Ô5Øˆ��q˜! IÐ.Ñ.Ô.Øˆ��q˜$ vÐ.Ñ.Ô.Øˆ��t˜Q wÐ/Ñ/Ô/Øˆ
�5ÑÔØÐÑÔØˆ
‰Œð-ñô ð6-ð -ñ7ô ð6-ð „×ÒØ#à	ˆ�$˜˜1 VÐ	,Ñ	,Ô	,¨dÐ3Ø	ˆ�(˜A˜t¨IÐ	6Ñ	6Ô	6¸Ð;Ø	ˆ�O�O�OÑ	$Ô	$ cÐ*Ø	ˆ�˜œ
 B¤JÐ/Ñ	0Ô	0°"´*Ð=Ø	�?�?Ð#ØØ	˜˜A˜  A Ð'Ð(Ø	�x�r”x ! Q ¨!¨Q¨Ð 0Ñ1Ô1Ð2Ø	˜*˜* q¨! f¨q°!¨fÐ%5Ñ6Ô6Ð7Ø	˜)˜) a¨ V¨a°¨VÐ$4Ñ5Ô5Ð6ð!ð

ð 

à+ð

ñ 

ô 

ð!ð 	ð!ð  
˜œ×.Ò.¨qÑ1Ô1Ð2ð!!ð" 	ð#!ð$ 
��‘”Ðð%!ð& 
ˆaˆð'!ð( 
ˆsˆð)!ð* 	ð+!ð, 	ð-!ð. 
�”ˆð/!ð0 
ˆ‰Œ˜"Ðð1!ð2 
ˆ‰Œ˜$Ðð3!ð4 
ˆ‰Œ˜!˜T™'Ð"ð5!ð6 
ˆ‰Œ˜$Ðð7!ð8 
ˆ‰Œ˜%˜% ™,œ,Ð'ð9!ð: 
ˆ‰Œ˜"œ&Ð!ð;!ð< 
ˆ‰Œ˜)Ð$ð=!ð> 
ˆ�EÑ	Ô	˜J˜J¨˜O™OœOÐ,ð?!ð@ 	ðA!ñ$ô $ðJ-ð -ñK$ô $ðJ-ð „×ÒØ7à	ˆ�$˜˜1 VÐ	,Ñ	,Ô	,¨hÐ7Ø	ˆ�Y 	Ð*Ñ	+Ô	+¨ZÐ8Ø	ˆ�˜˜d�|Ñ	$Ô	$ gÐ.Ø	�{Ð#Ø	˜/Ð*Ø	˜Ð'Ø	ˆÐØ	�:ÐØ	ˆlÐØ	�IÐØ	�NÐ#Ø	ˆ DÐ	)Ñ	)Ô	)¨=Ð9Ø	ˆ�EÑ	Ô	˜JÐ'Ø	�jÐ!Ø	�ÐØ	Œ�Ð ð!ñô ð*=ð =ñ+ô ð*=ð2ð 2ð 2ð3ð 3ð 3ðD	ð 	ð 	ð0ð 0ð 0ð1ð 1ð 1ð ð ð ð;ð ;ð ;ð2ð 2ð 2ð0!ð !ð !ð2Cð Cð Cðð ð ðð ð ð,Bð Bð Bð9ð 9ð 9ð=ð =ð =ð#ð #ð #ð&-ð -ð -ð3ð 3ð 3ðð ð ð „×ÒÐ8¸4À¸-ÑHÔHðð ñ IÔHðð4 „×ÒØPðð ð ñô ð.ð .ñô ð.ð .ð .r4   