§
    PŠtj  ã                   óJ   — d Z ddlmZ ddlmZ ddlmZmZmZ efd„Z	efd„Z
dS )	z) Branching Strategies to Traverse a Tree é    )Úproduct)Ú	basic_fnsé   )ÚchainÚidentityÚdo_onec                 óT   ‡ ‡— t          t          ‰ t          ¦  «        ˆ ˆfd„¦  «        S )z< Apply a rule down a tree running it on the top nodes first c                 óR   •—  t          t          ‰‰¦  «        ‰¦  «        | ¦  «        S ©N)ÚsallÚtop_down)ÚexprÚbruleÚfnss    €€ú^/var/www/html/CA-Chatbot/venv/lib/python3.11/site-packages/sympy/strategies/branch/traverse.pyú<lambda>ztop_down.<locals>.<lambda>
   s&   ø€ Ð=�d¥8¨E°3Ñ#7Ô#7¸Ñ=Ô=¸dÑCÔC€ ó    )r   r   r   )r   r   s   ``r   r   r      s4   øø€ å•˜�xÑ(Ô(ØCÐCÐCÐCÐCñEô Eð Er   c                 óV   ‡ ‡‡‡‡— t          |j        d¦  «        \  ŠŠŠŠˆ ˆˆˆˆfd„}|S )z$ Strategic all - apply rule to args )ÚopÚnewÚchildrenÚleafc              3   ó¤   •K  —  ‰| ¦  «        r| V — d S  ‰| ¦  «        }t          t          ‰ ‰| ¦  «        ¦  «        Ž }|D ]} ‰|g|¢R Ž V — Œd S r   )r   Úmap)	r   ÚmyopÚargssÚargsr   r   r   r   r   s	       €€€€€r   Úall_rlzsall.<locals>.all_rl   s‡   øè è € Øˆ4�‰:Œ:ð 	'ØˆJˆJˆJˆJˆJà�2�d‘8”8ˆDÝ�S ¨¨°©¬Ñ7Ô7Ð8ˆEØð 'ð '�Ø�c˜$Ð& Ð&Ð&Ð&Ð&Ð&Ð&Ð&ð'ð 'r   )r   Úget)r   r   r   r   r   r   r   s   `  @@@@r   r   r      sV   øøøøø€ å! #¤'Ð+LÑMÔMÑ€BˆˆX�tð'ð 'ð 'ð 'ð 'ð 'ð 'ð 'ð 'ð €Mr   N)Ú__doc__Ú	itertoolsr   Úsympy.strategies.utilr   Úcorer   r   r   r   r   © r   r   ú<module>r%      s�   ðØ /Ð /Ø Ð Ð Ð Ð Ð Ø +Ð +Ð +Ð +Ð +Ð +Ø )Ð )Ð )Ð )Ð )Ð )Ð )Ð )Ð )Ð )ð "ð Eð Eð Eð Eð ð ð ð ð ð ð r   