
    i                     "    d dl mZ deddfdZdS )   )StateInlinestatereturnNc                 <   d}t          | j                  }dx}}||k     rh| j        |         j        dk     r|dz  }|| j        |         _        | j        |         j        dk    r|dz  }| j        |         j        dk    r|dz   |k     r| j        |dz            j        dk    r| j        |         j        g}|dz  }||k     r\| j        |         j        dk    rF|                    | j        |         j                   |dz  }||k     r| j        |         j        dk    F| j        |dz
           }d                    |          |_        ||_        || j        |<   |dz  }C||k    r| j        |         | j        |<   |dz  }|dz  }||k     h||k    r| j        |d= dS dS )a  
    Clean up tokens after emphasis and strikethrough postprocessing:
    merge adjacent text nodes into one and re-calculate all token levels

    This is necessary because initially emphasis delimiter markers (``*, _, ~``)
    are treated as their own separate text tokens. Then emphasis rule either
    leaves them as text (needed to merge with adjacent text) or turns them
    into opening/closing tags (which messes up levels inside).
        r   text N)lentokensnestingleveltypecontentappendjoin)r   r   maximumcurrlastpartsmergeds          h/usr/local/lib/hermes-agent/venv/lib/python3.11/site-packages/markdown_it/rules_inline/fragments_join.pyfragments_joinr      s    E%,GOD4
.. <%))QJE#(T <%))QJE L#v--q7""TAX&+v55 \$'/0EAID..U\$%7%<%F%FU\$/7888	 ..U\$%7%<%F%F \$(+FWWU^^FN FL!'ELAID4<<!&d!3EL		C ..F t||L |    )state_inliner   r    r   r   <module>r      sC    % % % % % %2 + 2 $ 2  2  2  2  2  2 r   