§
    OŠtjÂ/  ã                  ó  — U d dl mZ d dlmZ d dlZddlmZmZmZm	Z	 ddl
mZ d dlZ G d„ de¦  «        Zd	„ Z G d
„ d¦  «        Zd„ Z e¦   «         Zded<   dgZd„ Zefd„Z G d„ d¦  «        Zd„ Z G d„ de¦  «        Zd„ Zd„ ZdS )é    )Úannotations)ÚwarnNé   )ÚorderingÚambiguitiesÚsuper_signatureÚAmbiguityWarning)Úexpand_tuplesc                  ó   — e Zd ZdZdS )ÚMDNotImplementedErrorz- A NotImplementedError for multiple dispatch N)Ú__name__Ú
__module__Ú__qualname__Ú__doc__© ó    ú_/var/www/html/CA-Chatbot/venv/lib/python3.11/site-packages/sympy/multipledispatch/dispatcher.pyr   r   
   s   € € € € € Ø7Ð7Ð7Ð7r   r   c                óV   — t          t          | j        |¦  «        t          ¦  «         dS )aC   Raise warning when ambiguity is detected

    Parameters
    ----------
    dispatcher : Dispatcher
        The dispatcher on which the ambiguity was detected
    ambiguities : set
        Set of type signature pairs that are ambiguous within this dispatcher

    See Also:
        Dispatcher.add
        warning_text
    N)r   Úwarning_textÚnamer	   )Ú
dispatcherr   s     r   Úambiguity_warnr      s'   € õ 	��j”o {Ñ	3Ô	3Õ5EÑFÔFÐFÐFÐFr   c                  ó   — e Zd ZdZd„ Zd„ ZdS )ÚRaiseNotImplementedErrorz*Raise ``NotImplementedError`` when called.c                ó   — || _         d S ©N)r   )Úselfr   s     r   Ú__init__z!RaiseNotImplementedError.__init__$   s   € Ø$ˆŒˆˆr   c                óŽ   — t          d„ |D ¦   «         ¦  «        }t          d| j        j        ›dt	          |¦  «        ›d�¦  «        ‚)Nc              3  ó4   K  — | ]}t          |¦  «        V — Œd S r   ©Útype)Ú.0Úas     r   ú	<genexpr>z4RaiseNotImplementedError.__call__.<locals>.<genexpr>(   s(   è è € Ð,Ð, !•d˜1‘g”gÐ,Ð,Ð,Ð,Ð,Ð,r   zAmbiguous signature for ú: <ú>)ÚtupleÚNotImplementedErrorr   r   Ústr_signature)r   ÚargsÚkwargsÚtypess       r   Ú__call__z!RaiseNotImplementedError.__call__'   sV   € ÝÐ,Ð, tÐ,Ñ,Ô,Ñ,Ô,ˆÝ!Ð!àŒOÔ Ð Ð ¥-°Ñ"6Ô"6Ð"6Ð"6ð
ñô ð 	r   N)r   r   r   r   r   r.   r   r   r   r   r   !   s8   € € € € € Ø4Ð4ð%ð %ð %ðð ð ð ð r   r   c                óÞ   — |D ]i}t          t          |¦  «        ¦  «        }t          t          |¦  «        ¦  «        dk    rŒ?|                      |t          | ¦  «        t          ¬¦  «         ŒjdS )a·  
    If super signature for ambiguous types is duplicate types, ignore it.
    Else, register instance of ``RaiseNotImplementedError`` for ambiguous types.

    Parameters
    ----------
    dispatcher : Dispatcher
        The dispatcher on which the ambiguity was detected
    ambiguities : set
        Set of type signature pairs that are ambiguous within this dispatcher

    See Also:
        Dispatcher.add
        ambiguity_warn
    r   ©Úon_ambiguityN)r(   r   ÚlenÚsetÚaddr   Ú#ambiguity_register_error_ignore_dup)r   r   ÚambÚ	signatures       r   r5   r5   .   s   € ð  ð 
ð 
ˆÝ�/¨#Ñ.Ô.Ñ/Ô/ˆ	Ý�s�9‰~Œ~ÑÔ !Ò#Ð#ØØ�ŠØÕ/°
Ñ;Ô;Ý<ð 	ñ 	
ô 	
ð 	
ð 	
ð	
ð 
r   zset[Dispatcher]Ú_unresolved_dispatchersTc                 ó   — dt           d<   d S )NFr   )Ú_resolver   r   r   Úhalt_orderingr;   N   s   € Ø…HˆQ�K€K€Kr   c                ó˜   — dt           d<   t          r8t                               ¦   «         }|                     | ¬¦  «         t          °6d S d S )NTr   r0   )r:   r8   ÚpopÚreorder)r1   r   s     r   Úrestart_orderingr?   R   sY   € Ø…HˆQ�KÝ
!ð 6Ý,×0Ò0Ñ2Ô2ˆ
Ø×Ò¨ÐÑ5Ô5Ð5õ "ð 6ð 6ð 6ð 6ð 6r   c                  óÀ   — e Zd ZdZdZdd„Zd„ Zed„ ¦   «         Zed„ ¦   «         Z	e
fd„Ze
fd	„Zd
„ Zd„ ZeZd„ Zd„ Zd„ Zd„ Zd„ Zed„ ¦   «         Zd„ Zd„ Zd„ Zd„ ZdS )Ú
Dispatcheraj   Dispatch methods based on type signature

    Use ``dispatch`` to add implementations

    Examples
    --------

    >>> from sympy.multipledispatch import dispatch
    >>> @dispatch(int)
    ... def f(x):
    ...     return x + 1

    >>> @dispatch(float)
    ... def f(x): # noqa: F811
    ...     return x - 1

    >>> f(3)
    4
    >>> f(3.0)
    2.0
    )r   r   Úfuncsr   Ú_cacheÚdocNc                óZ   — |x| _         | _        i | _        i | _        g | _        || _        d S r   )r   r   rB   rC   r   rD   )r   r   rD   s      r   r   zDispatcher.__init__q   s0   € Ø$(Ð(ˆŒ	�D”MØˆŒ
ØˆŒØˆŒØˆŒˆˆr   c                ó   ‡ ‡‡— ˆˆ ˆfd„}|S )a#   Register dispatcher with new implementation

        >>> from sympy.multipledispatch.dispatcher import Dispatcher
        >>> f = Dispatcher('f')
        >>> @f.register(int)
        ... def inc(x):
        ...     return x + 1

        >>> @f.register(float)
        ... def dec(x):
        ...     return x - 1

        >>> @f.register(list)
        ... @f.register(tuple)
        ... def reverse(x):
        ...     return x[::-1]

        >>> f(1)
        2

        >>> f(1.0)
        0.0

        >>> f([1, 2, 3])
        [3, 2, 1]
        c                ó&   •—  ‰j         ‰| fi ‰¤Ž | S r   )r4   )Úfuncr,   r   r-   s    €€€r   Ú_zDispatcher.register.<locals>._“   s$   ø€ ØˆDŒH�U˜DÐ+Ð+ FÐ+Ð+Ð+ØˆKr   r   )r   r-   r,   rI   s   ``` r   ÚregisterzDispatcher.registerx   s/   øøø€ ð6	ð 	ð 	ð 	ð 	ð 	ð 	ð ˆr   c                óŠ   — t          t          d¦  «        r-t          j        |¦  «        }|j                             ¦   «         S d S )Nr7   )ÚhasattrÚinspectr7   Ú
parametersÚvalues©ÚclsrH   Úsigs      r   Úget_func_paramszDispatcher.get_func_params˜   sB   € å•7˜KÑ(Ô(ð 	+ÝÔ# DÑ)Ô)ˆCØ”>×(Ò(Ñ*Ô*Ð*ð	+ð 	+r   c                óÚ   ‡— |                       |¦  «        }|rPt          j        Šˆfd„|D ¦   «         }t          d„ |D ¦   «         ¦  «        }t	          ˆfd„|D ¦   «         ¦  «        s|S dS dS )z; Get annotations of function positional parameters
        c              3  óF   •K  — | ]}|j         ‰j        ‰j        fv ¯|V — Œd S r   )ÚkindÚPOSITIONAL_ONLYÚPOSITIONAL_OR_KEYWORD)r#   ÚparamÚ	Parameters     €r   r%   z2Dispatcher.get_func_annotations.<locals>.<genexpr>¦   sV   øè è € ð 9ð 9 ØœØ Ô0Ø Ô6ð8ð8ð 8ð ð8ð 8ð 8ð 8ð9ð 9r   c              3  ó$   K  — | ]}|j         V — Œd S r   )Ú
annotation)r#   rY   s     r   r%   z2Dispatcher.get_func_annotations.<locals>.<genexpr>«   s9   è è € ð  %ð  %àð Ô ð %ð  %ð  %ð  %ð  %ð  %r   c              3  ó*   •K  — | ]}|‰j         u V — Œd S r   )Úempty)r#   ÚannrZ   s     €r   r%   z2Dispatcher.get_func_annotations.<locals>.<genexpr>¯   s*   øè è € ÐEÐE°#�s˜iœoÐ-ÐEÐEÐEÐEÐEÐEr   N)rS   rM   rZ   r(   Úany)rQ   rH   Úparamsr   rZ   s       @r   Úget_func_annotationszDispatcher.get_func_annotationsž   s½   ø€ ð ×$Ò$ TÑ*Ô*ˆØð 	#ÝÔ)ˆIð9ð 9ð 9ð 9¨ð 9ñ 9ô 9ˆFõ
  ð  %ð  %à#ð %ñ  %ô  %ñ %ô %ˆKõ ÐEÐEÐEÐE¸ÐEÑEÔEÑEÔEð #Ø"Ð"ð	#ð 	#ð#ð #r   c           	     óâ  — |s|                       |¦  «        }|r|}t          d„ |D ¦   «         ¦  «        r+t          |¦  «        D ]}|                      |||¦  «         ŒdS |D ]S}t	          |t
          ¦  «        s<d                     d„ |D ¦   «         ¦  «        }t          d|›d|›d| j        ›�¦  «        ‚ŒT|| j	        |<   |  
                    |¬¦  «         | j                             ¦   «          dS )	a†   Add new types/method pair to dispatcher

        >>> from sympy.multipledispatch import Dispatcher
        >>> D = Dispatcher('add')
        >>> D.add((int, int), lambda x, y: x + y)
        >>> D.add((float, float), lambda x, y: x + y)

        >>> D(1, 2)
        3
        >>> D(1, 2.0)
        Traceback (most recent call last):
        ...
        NotImplementedError: Could not find signature for add: <int, float>

        When ``add`` detects a warning it calls the ``on_ambiguity`` callback
        with a dispatcher/itself, and a set of ambiguous type signature pairs
        as inputs.  See ``ambiguity_warn`` for an example.
        c              3  ó@   K  — | ]}t          |t          ¦  «        V — Œd S r   )Ú
isinstancer(   )r#   Útyps     r   r%   z!Dispatcher.add.<locals>.<genexpr>Ì   s,   è è € Ð;Ð;¨#�z˜#�uÑ%Ô%Ð;Ð;Ð;Ð;Ð;Ð;r   Nú, c              3  ól   K  — | ]/}t          |t          ¦  «        r|j        nt          |¦  «        V — Œ0d S r   )re   r"   r   Ústr)r#   Úcs     r   r%   z!Dispatcher.add.<locals>.<genexpr>Ó   s\   è è € ð $Dð $DØ45õ 3=¸QÅÑ2EÔ2Eð %0 A¤J JÝ),¨Q©¬ð$Dð $Dð $Dð $Dð $Dð $Dr   zTried to dispatch on non-type: z
In signature: <z>
In function: r0   )rb   r`   r
   r4   re   r"   ÚjoinÚ	TypeErrorr   rB   r>   rC   Úclear)r   r7   rH   r1   r   Útypsrf   Ústr_sigs           r   r4   zDispatcher.add²   sH  € ð( ð 	(Ø×3Ò3°DÑ9Ô9ˆKØð (Ø'�	õ Ð;Ð;°Ð;Ñ;Ô;Ñ;Ô;ð 	Ý% iÑ0Ô0ð 3ð 3�Ø—’˜˜t \Ñ2Ô2Ð2Ð2ØˆFàð 	;ð 	;ˆCÝ˜c¥4Ñ(Ô(ð ;ØŸ)š)ð $Dð $DØ9Bð$Dñ $Dô $Dñ Dô D�å�ið "%   g g g¨t¬y¨yð!:ñ ;ô ;ð ;ð;ð !%ˆŒ
�9ÑØ�Š ,ˆÑ/Ô/Ð/ØŒ×ÒÑÔÐÐÐr   c                óÒ   — t           d         r?t          | j        ¦  «        | _        t          | j        ¦  «        }|r || |¦  «         d S d S t                               | ¦  «         d S )Nr   )r:   r   rB   r   r8   r4   )r   r1   r6   s      r   r>   zDispatcher.reorderÞ   st   € Ý�AŒ;ð 	.Ý$ T¤ZÑ0Ô0ˆDŒMÝ˜dœjÑ)Ô)ˆCØð (Ø�˜T 3Ñ'Ô'Ð'Ð'Ð'ð(ð (õ $×'Ò'¨Ñ-Ô-Ð-Ð-Ð-r   c           	     óà  — t          d„ |D ¦   «         ¦  «        }	 | j        |         }nN# t          $ rA  | j        |Ž }|s(t	          d| j        ›dt          |¦  «        ›d�¦  «        ‚|| j        |<   Y nw xY w	  ||i |¤ŽS # t          $ rc  | j        |Ž }t          |¦  «         |D ]}	  ||i |¤Žc cY S # t          $ r Y Œw xY wt	          d| j        ›dt          |¦  «        ›d�¦  «        ‚w xY w)Nc                ó,   — g | ]}t          |¦  «        ‘ŒS r   r!   ©r#   Úargs     r   ú
<listcomp>z'Dispatcher.__call__.<locals>.<listcomp>è   ó   € Ð1Ð1Ð1 S•t˜C‘y”yÐ1Ð1Ð1r   úCould not find signature for r&   r'   zMatching functions for z(> found, but none completed successfully)
r(   rC   ÚKeyErrorÚdispatchr)   r   r*   r   Údispatch_iterÚnext)r   r+   r,   r-   rH   rB   s         r   r.   zDispatcher.__call__ç   s‰  € ÝÐ1Ð1¨DÐ1Ñ1Ô1Ñ2Ô2ˆð	&Ø”;˜uÔ%ˆDˆDøÝð 	&ð 	&ð 	&Ø �4”= %Ð(ˆDØð 7Ý)Ð)à”Y�Y�Y¥¨eÑ 4Ô 4Ð 4Ð 4ð6ñ7ô 7ð 7ð "&ˆDŒK˜ÑÐÐð	&øøøð	KØ�4˜Ð( Ð(Ð(Ð(øå$ð 
	Kð 
	Kð 
	KØ&�DÔ&¨Ð.ˆEÝ�‰KŒKˆKØð ð �ðØ˜4 Ð0¨Ð0Ð0Ð0Ð0Ð0Ð0Ð0øÝ,ð ð ð Ø�Dðøøøå%Ð%à)-¬¨¨µMÀ%Ñ4HÔ4HÐ4HÐ4Hð'Jñ Kô Kð Kð
	Køøøs@   ›) ©AA4Á3A4Á8B  Â 'C-Â(B4Â/C-Â4
CÂ>C-Ã CÃ,C-c                ó   — d| j         z  S )Nz<dispatched %s>)r   ©r   s    r   Ú__str__zDispatcher.__str__  s   € Ø  4¤9Ñ,Ð,r   c                ó€   — || j         v r| j         |         S 	 t           | j        |Ž ¦  «        S # t          $ r Y dS w xY w)a`   Deterimine appropriate implementation for this type signature

        This method is internal.  Users should call this object as a function.
        Implementation resolution occurs within the ``__call__`` method.

        >>> from sympy.multipledispatch import dispatch
        >>> @dispatch(int)
        ... def inc(x):
        ...     return x + 1

        >>> implementation = inc.dispatch(int)
        >>> implementation(3)
        4

        >>> print(inc.dispatch(float))
        None

        See Also:
            ``sympy.multipledispatch.conflict`` - module to determine resolution order
        N)rB   r{   rz   ÚStopIteration©r   r-   s     r   ry   zDispatcher.dispatch  s^   € ð, �D”JÐÐØ”:˜eÔ$Ð$ð	ÝÐ*˜Ô*¨EÐ2Ñ3Ô3Ð3øÝð 	ð 	ð 	Ø�4�4ð	øøøs   ˜/ ¯
=¼=c              '  óÊ   K  — t          |¦  «        }| j        D ]I}t          |¦  «        |k    r4t          t          t          ||¦  «        ¦  «        r| j        |         }|V — ŒJd S r   )r2   r   ÚallÚmapÚ
issubclassrB   )r   r-   Únr7   Úresults        r   rz   zDispatcher.dispatch_iter#  sl   è è € Ý�‰JŒJˆØœð 	ð 	ˆIÝ�9‰~Œ~ Ò"Ð"¥s­3­z¸5À)Ñ+LÔ+LÑ'MÔ'MÐ"Øœ IÔ.�Ø���øð	ð 	r   c                ó@   — t          dt          ¦  «          | j        |Ž S )z“ Deterimine appropriate implementation for this type signature

        .. deprecated:: 0.4.4
            Use ``dispatch(*types)`` instead
        z-resolve() is deprecated, use dispatch(*types))r   ÚDeprecationWarningry   r�   s     r   ÚresolvezDispatcher.resolve*  s-   € õ 	Ð<Ýñ	!ô 	!ð 	!ð ˆtŒ}˜eÐ$Ð$r   c                ó    — | j         | j        dœS )N©r   rB   rŒ   r}   s    r   Ú__getstate__zDispatcher.__getstate__5  s   € Øœ	Øœð%ð %ð 	%r   c                óz   — |d         | _         |d         | _        t          | j        ¦  «        | _        i | _        d S )Nr   rB   )r   rB   r   rC   )r   Úds     r   Ú__setstate__zDispatcher.__setstate__9  s4   € Ø�f”IˆŒ	Ø�w”ZˆŒ
Ý  ¤Ñ,Ô,ˆŒØˆŒˆˆr   c                ó,  — d| j         z  g}| j        r|                     | j        ¦  «         g }| j        d d d…         D ]”}| j        |         }|j        r\dt          |¦  «        z  }|dt          |¦  «        z  dz   z  }||j                             ¦   «         z  }|                     |¦  «         Œr|                     t          |¦  «        ¦  «         Œ•|r+|                     dd 	                    |¦  «        z   ¦  «         d 	                    |¦  «        S )	NzMultiply dispatched method: %séÿÿÿÿzInputs: <%s>
ú-ú
zOther signatures:
    z
    ú

)
r   rD   Úappendr   rB   r   r*   r2   Ústriprk   )r   ÚdocsÚotherrR   rH   Úss         r   r   zDispatcher.__doc__?  s  € à0°4´9Ñ<Ð=ˆàŒ8ð 	"Ø�KŠK˜œÑ!Ô!Ð!àˆØ”=   2 Ô&ð 	1ð 	1ˆCØ”:˜c”?ˆDØŒ|ð 1Ø$¥}°SÑ'9Ô'9Ñ9�Ø�S�3˜q™6œ6‘\ DÑ(Ñ(�Ø�T”\×'Ò'Ñ)Ô)Ñ)�Ø—’˜A‘”��à—’�]¨3Ñ/Ô/Ñ0Ô0Ð0Ð0àð 	JØ�KŠKÐ1°H·M²MÀ%Ñ4HÔ4HÑHÑIÔIÐIà�{Š{˜4Ñ Ô Ð r   c                óF   —  | j         t          t          |¦  «        Ž j        S r   )ry   r„   r"   r   )r   r+   s     r   Ú_helpzDispatcher._helpV  s   € ØˆtŒ}�c¥$¨™oœoÐ.Ô6Ð6r   c                ó4   — t           | j        |Ž ¦  «         dS )z: Print docstring for the function corresponding to inputs N)Úprintrœ   ©r   r+   r,   s      r   ÚhelpzDispatcher.helpY  s   € åˆjˆdŒj˜$ÐÑ Ô Ð Ð Ð r   c                ó|   —  | j         t          t          |¦  «        Ž }|st          d¦  «        ‚t	          |¦  «        S )NzNo function found)ry   r„   r"   rl   Úsource)r   r+   rH   s      r   Ú_sourcezDispatcher._source]  s;   € ØˆtŒ}�c¥$¨™oœoÐ.ˆØð 	1ÝÐ/Ñ0Ô0Ð0Ý�d‰|Œ|Ðr   c                ó4   — t           | j        |Ž ¦  «         dS )z< Print source code for the function corresponding to inputs N)rž   r£   rŸ   s      r   r¢   zDispatcher.sourcec  s   € åˆlˆdŒl˜DÐ!Ñ"Ô"Ð"Ð"Ð"r   r   )r   r   r   r   Ú	__slots__r   rJ   ÚclassmethodrS   rb   r   r4   r>   r.   r~   Ú__repr__ry   rz   rŠ   r�   r�   Úpropertyrœ   r    r£   r¢   r   r   r   rA   rA   Y   s{  € € € € € ðð ð* I€Iðð ð ð ðð ð ð@ ð+ð +ñ „[ð+ð
 ð#ð #ñ „[ð#ð& 1?ð *ð *ð *ð *ðX $2ð .ð .ð .ð .ðKð Kð Kð4-ð -ð -à€Hðð ð ð<ð ð ð	%ð 	%ð 	%ð%ð %ð %ðð ð ð ð!ð !ñ „Xð!ð,7ð 7ð 7ð!ð !ð !ðð ð ð#ð #ð #ð #ð #r   rA   c                ób   — dt          j        | ¦  «        z  }|t          j        | ¦  «        z   }|S )Nz
File: %s

)rM   ÚgetsourcefileÚ	getsource)rH   rš   s     r   r¢   r¢   h  s1   € Ø�Ô.¨tÑ4Ô4Ñ4€AØ	�GÔ˜dÑ#Ô#Ñ#€AØ€Hr   c                  ó4   — e Zd ZdZed„ ¦   «         Zd„ Zd„ ZdS )ÚMethodDispatcherzP Dispatch methods based on type signature

    See Also:
        Dispatcher
    c                ó²   — t          t          d¦  «        rAt          j        |¦  «        }t          j        |j                             ¦   «         dd ¦  «        S d S )Nr7   r   )rL   rM   r7   ÚitlÚislicerN   rO   rP   s      r   rS   z MethodDispatcher.get_func_paramsu  sS   € å•7˜KÑ(Ô(ð 	@ÝÔ# DÑ)Ô)ˆCÝ”:˜cœn×3Ò3Ñ5Ô5°q¸$Ñ?Ô?Ð?ð	@ð 	@r   c                ó"   — || _         || _        | S r   )ÚobjrQ   )r   ÚinstanceÚowners      r   Ú__get__zMethodDispatcher.__get__{  s   € ØˆŒØˆŒØˆr   c                ó¾   — t          d„ |D ¦   «         ¦  «        } | j        |Ž }|s(t          d| j        ›dt	          |¦  «        ›d�¦  «        ‚ || j        g|¢R i |¤ŽS )Nc                ó,   — g | ]}t          |¦  «        ‘ŒS r   r!   rs   s     r   ru   z-MethodDispatcher.__call__.<locals>.<listcomp>�  rv   r   rw   r&   r'   )r(   ry   r)   r   r*   r²   )r   r+   r,   r-   rH   s        r   r.   zMethodDispatcher.__call__€  sŽ   € ÝÐ1Ð1¨DÐ1Ñ1Ô1Ñ2Ô2ˆØˆtŒ}˜eÐ$ˆØð 	IÝ%Ð%Ø'+¤y y yµ-ÀÑ2FÔ2FÐ2FÐ2Fð'Hñ Iô Ið Iàˆt�D”HÐ.˜tÐ.Ð.Ð. vÐ.Ð.Ð.r   N)r   r   r   r   r¦   rS   rµ   r.   r   r   r   r­   r­   n  sZ   € € € € € ðð ð ð@ð @ñ „[ð@ð
ð ð ð
/ð /ð /ð /ð /r   r­   c                ó@   — d                      d„ | D ¦   «         ¦  «        S )z§ String representation of type signature

    >>> from sympy.multipledispatch.dispatcher import str_signature
    >>> str_signature((int, float))
    'int, float'
    rg   c              3  ó$   K  — | ]}|j         V — Œd S r   )r   )r#   rQ   s     r   r%   z str_signature.<locals>.<genexpr>�  s$   è è € Ð1Ð1 c�S”\Ð1Ð1Ð1Ð1Ð1Ð1r   ©rk   )rR   s    r   r*   r*   ‰  s%   € ð �9Š9Ð1Ð1¨SÐ1Ñ1Ô1Ñ1Ô1Ð1r   c                óÈ   ‡ — d‰ z  }|dz  }|D ]*}|dd                      d„ |D ¦   «         ¦  «        z   dz   z  }Œ+|dz  }|d                      ˆ fd	„|D ¦   «         ¦  «        z  }|S )
z! The text for ambiguity warnings z.
Ambiguities exist in dispatched function %s

z;The following signatures may result in ambiguous behavior:
ú	rg   c              3  ó@   K  — | ]}d t          |¦  «        z   dz   V — ŒdS )ú[ú]N)r*   )r#   rš   s     r   r%   zwarning_text.<locals>.<genexpr>™  s4   è è € ÐAÐA°q�c�M¨!Ñ,Ô,Ñ,¨sÑ2ÐAÐAÐAÐAÐAÐAr   r”   z,

Consider making the following additions:

r•   c                óZ   •— g | ]'}d t          t          |¦  «        ¦  «        z   d‰z  z   ‘Œ(S )z
@dispatch(z)
def %s(...))r*   r   )r#   rš   r   s     €r   ru   z warning_text.<locals>.<listcomp>›  sQ   ø€ ð Að Að AØ78ð &­µoÀaÑ6HÔ6HÑ(IÔ(IÑIØ+¨dÑ2ñ3ð Að Að Ar   rº   )r   r6   ÚtextÚpairs   `   r   r   r   “  s¿   ø€ à>À$ÑG€DØÐJÑJ€DØð Ið IˆØ�Ø�IŠIÐAÐA¸DÐAÑAÔAÑAÔAñBØDHñIñ 	IˆˆàÐ>Ñ>€DØˆF�KŠKð Að Að Að AØ<?ðAñ Aô Añ Bô Bñ B€Dà€Kr   )Ú
__future__r   Úwarningsr   rM   Úconflictr   r   r   r	   Úutilsr
   Ú	itertoolsr¯   r)   r   r   r   r5   r3   r8   Ú__annotations__r:   r;   r?   rA   r¢   r­   r*   r   r   r   r   ú<module>rÉ      sÆ  ðØ "Ð "Ð "Ð "Ð "Ð "Ð "à Ð Ð Ð Ð Ð Ø €€€Ø NÐ NÐ NÐ NÐ NÐ NÐ NÐ NÐ NÐ NÐ NÐ NØ  Ð  Ð  Ð  Ð  Ð  Ø Ð Ð Ð ð8ð 8ð 8ð 8ð 8Ð/ñ 8ô 8ð 8ðGð Gð Gð"ð ð ð ð ñ ô ð ð
ð 
ð 
ð8 ,/¨3©5¬5Ð Ð 0Ð 0Ð 0Ñ 0Øˆ6€ðð ð ð #1ð 6ð 6ð 6ð 6ðL#ð L#ð L#ð L#ð L#ñ L#ô L#ð L#ð^ð ð ð/ð /ð /ð /ð /�zñ /ô /ð /ð62ð 2ð 2ð
ð 
ð 
ð 
ð 
r   