Ë
    f^(hV  ã                   óŠ   — 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
  G d„ d«      Z G d„ de«      Zi Zd	„ Zd
„ Zefd„Zd„ Zy)é   )ÚreifyÚunify)ÚfirstÚgroupby)Ú	_toposortÚfreeze)Úisvarc                   ó*   — e Zd Zd„ Zd„ Zd„ Zd„ Zd„ Zy)Ú
Dispatcherc                 ó.   — || _         i | _        g | _        y ©N)ÚnameÚfuncsÚordering)Úselfr   s     úe/var/www/skyplay_api_hub/venv/lib/python3.12/site-packages/torch/fx/experimental/unification/match.pyÚ__init__zDispatcher.__init__	   s   € ØˆŒ	ØˆŒ
Øˆ�ó    c                 óh   — || j                   t        |«      <   t        | j                   «      | _        y r   )r   r   r   )r   Ú	signatureÚfuncs      r   ÚaddzDispatcher.add   s%   € Ø(,ˆ�
‰
”6˜)Ó$Ñ%Ü  §¡Ó,ˆ�r   c                 ó:   — | j                  |«      \  }} ||i |¤ŽS r   )Úresolve)r   ÚargsÚkwargsr   Ú_s        r   Ú__call__zDispatcher.__call__   s$   € Ø—,‘,˜tÓ$‰ˆˆaÙ�TÐ$˜VÑ$Ð$r   c                 ó  — t        |«      }| j                  D ]?  }t        |«      |k7  rŒt        t        |«      |«      }|dusŒ,| j                  |   }||fc S  t        dt        | j                  «      z   dz   t        |«      z   «      ‚)NFz No match found. 
Known matches: z
Input: )Úlenr   r   r   r   ÚNotImplementedErrorÚstr)r   r   Únr   ÚsÚresults         r   r   zDispatcher.resolve   s•   € Ü�‹IˆØŸ™ò 	!ˆIÜ�9‹~ Ò"ØÜ”f˜T“l IÓ.ˆAØ˜Š~ØŸ™ IÑ.�Ø˜q�yÒ ð	!ô "Ø/Ü�$—-‘-Ó ñ!àñô �$‹iñó
ð 	
r   c                 ó   ‡ ‡— ˆ ˆfd„}|S )Nc                 ó,   •— ‰j                  ‰| «       ‰S r   )r   )r   r   r   s    €€r   r   zDispatcher.register.<locals>._'   s   ø€ Ø�H‰H�Y Ô%ØˆKr   © )r   r   r   s   `` r   ÚregisterzDispatcher.register&   s   ù€ õ	ð ˆr   N)Ú__name__Ú
__module__Ú__qualname__r   r   r   r   r)   r(   r   r   r   r      s   „ òò
-ò%ò
ó r   r   c                   ó   — e Zd ZdZd„ Zy)ÚVarDispatcheraX  A dispatcher that calls functions with variable names
    >>> # xdoctest: +SKIP
    >>> d = VarDispatcher("d")
    >>> x = var("x")
    >>> @d.register("inc", x)
    ... def f(x):
    ...     return x + 1
    >>> @d.register("double", x)
    ... def f(x):
    ...     return x * 2
    >>> d("inc", 10)
    11
    >>> d("double", 10)
    20
    c                 ó    — | j                  |«      \  }}|j                  «       D ��ci c]  \  }}|j                  |“Œ }}} |di |¤ŽS c c}}w )Nr(   )r   ÚitemsÚtoken)r   r   r   r   r$   ÚkÚvÚds           r   r   zVarDispatcher.__call__?   sJ   € Ø—,‘,˜tÓ$‰ˆˆaØ$%§G¡G£I×.™D˜A˜qˆQ�W‰W�a‰ZÐ.ˆÑ.Ù‰y�a‰yÐùó /s   ¨A
N)r*   r+   r,   Ú__doc__r   r(   r   r   r.   r.   .   s   „ ñó r   r.   c                  ór   ‡ ‡‡— |j                  dt        «      Š|j                  dt        «      Šˆˆˆ fd„}|S )NÚ	namespacer   c                 ól   •— | j                   }|‰vr ‰|«      ‰|<   ‰|   }|j                  ‰| «       |S r   )r*   r   )r   r   r4   Ú
dispatcherr7   r   s      €€€r   r   zmatch.<locals>._L   s>   ø€ Ø�}‰}ˆà�yÑ Ù(¨Ó.ˆI�d‰OØ�d‰Oˆà	�‰ˆi˜Ôàˆr   )ÚgetÚglobal_namespacer   )r   r   r   r9   r7   s   `  @@r   Úmatchr<   H   s0   ú€ Ø—
‘
˜;Ô(8Ó9€IØ—‘˜L¬*Ó5€Jö	ð €Hr   c                 ó  — t        |«      rt        | «      syt        | |«      }|du ry|j                  «       D ��ci c]  \  }}t        |«      rt        |«      rŒ||“Œ! }}}t        | |«      | k(  ryt        ||«      |k(  ryyc c}}w )z)``a`` is a more specific match than ``b``TFN)r	   r   r0   r   )ÚaÚbr$   r2   r3   s        r   Ú
supercedesr@   Z   s�   € äˆQ„xœ˜aœØÜˆa�‹€AØˆE�zØØŸ'™'›)×D‘$�!�Q¬5°¬8¼5À½8ˆˆA‰ÐD€AÑDÜˆQ�ƒ{�aÒØÜˆQ�ƒ{�aÒØð ùó 	Es   ¼BÁBc                 óX   — t        | |«      rt        || «      r || «       ||«      kD  S yy)zUA should be checked before B
    Tie broken by tie_breaker, defaults to ``hash``
    TF)r@   )r>   r?   Útie_breakers      r   ÚedgerC   i   s1   € ô �!�QÔÜ�a˜ÔÙ˜q“>¡K°£NÑ2Ð2àØr   c                 óv  — t        t        t        | «      «      } | D ��cg c]  }| D ]  }t        ||«      sŒ||f‘Œ Œ }}}t	        t
        |«      }| D ]  }||vsŒg ||<   Œ |j                  «       D ����ci c]  \  }}||D ��cg c]  \  }}|‘Œ	 c}}“Œ }}}}}t        |«      S c c}}w c c}}w c c}}}}w )z€A sane ordering of signatures to check, first to last
    Topological sort of edges as given by ``edge`` and ``supercedes``
    )ÚlistÚmapÚtuplerC   r   r   r0   r   )Ú
signaturesr>   r?   Úedgesr$   r2   r3   s          r   r   r   v   sº   € ô ”cœ% Ó,Ó-€JØ'×J˜°ÒJ¨A¼tÀAÀq½zˆa�ŠVÐJˆVÐJ€EÑJÜ”E˜5Ó!€EØò ˆØ�EŠ>ØˆE�!ŠHðð /4¯k©k«m×<Ñ<¡d a¨ˆQ˜q×!‘t�q˜!’Ó!Ñ!Ð<€EÓ<Ü�UÓÐùó Kùó
 "ùÕ<s"   ŸB'¶B'Á7B3
ÂB-ÂB3
Â-B3
N)Úcorer   r   Úunification_toolsr   r   Úutilsr   r   Úvariabler	   r   r.   r;   r<   r@   ÚhashrC   r   r(   r   r   ú<module>rO      sI   ðç ß -ß $Ý ÷#ñ #ôL�Jô ð. Ð òò$ð  ó 	ór   