a
    kh&w                     @   s`   d dl T d dlmZ d dlZejd dkr8d dlmZ nd dlmZ dd ZG d	d
 d
e	Z
dS )    )*)StringION      )TextIOc                   C   s   g dS )N(k     r   [   i        r      r   r   r   r   r   r   r   r   r   r      r   r   r   r   r   r   r   r   r   r   r   r	   r   r	   r   r   r   r   r      r   r   r   	   r   r   r   
   r   r   r      r   r   r      r   r   r      r   r   r      r   r   r      r   r   r      r   r   r      r   r   r      r   r   r      r   r   r      r   r   r      r   r   r      r   r   r      r   r   r      r   r   r      r   r   r      r   r    r      r   r!   r      r   r"   r      r   r#   r      r   r$   r      r   r%   r       r   r&   r   !   r   r'   r   "   r   r(   r   #   r   r)   r   $   r   r*   r   %   r   r+   r   &   r   r,   r   '   r   r-   r   (   r   r.   r   )   r   r/   r   *   r   r0   r   +   r   r1   r   ,   r   r2   r   -   r   r3   r   .   r   r4   r   /   r   r5   r   0   r   r6   r   1   r   r7   r   2   r   r8   r   3   r   r9   r   4   r   r:   r   5   r   r;   r   6   r   r<   r   7   r   r=   r   8   r   r>   r   9   r   r?   r   :   r   r@   r   ;   r   rA   r   <   r   rB   r   =   r   rC   r   >   r   rD   r   ?   r   rE   r   @   r   rF   r   A   r   rG   r   B   r   rH   r   C   r   rI   r   D   r   rJ   r   E   r   rK   r   F   r   rL   r   G   r   rM   r   H   r   rN   r   I   r   rO   r   J   r   rP   r   K   r   rQ   r   L   r   rR   r   M   r   rS   r   N   r   rT   r   O   r   rU   r   P   r   rV   r   Q   r   rW   r   R   r   rX   r   S   r   rY   r   T   r   rZ   r   U   r   r[   r   V   r   r\   r   W   r   r]   r   X   r   r^   r   Y   r   r_   r   Z   r   r`   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r      r   r   r   r   r   r      r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r      r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r      r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r      r   r   r   r   r   r   r   r	   r   r	   r   r	   r   r	   r   r	   r   r	   r   r	   r   r	   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r     r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   }  r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r    r   r    r   r!   r   r!   r   r!   r   r!   r   r!   r   r!   r   r!   r   r!   r   r"   r   r"   r   r"   r   r"   r   r"   r   r"   r   r"   r   r#   r   r#   r   r#   r   r#   r   r#   r   r#   r   r#   r   r#   r   r$   r   r$   r   r$   r   r$   r   r$   r   r$   r   r$   r   r$   r   r%   r   r%   r   r%   r   r%   r   r%   r   r&   r   r&   r   r&   r   r&   r   r&   r   r&   r   r&   r   r&   r   r&   r   r&   r   r&   r   r&   r   r&   r   r&   r   r&   r   r&   r   r&   r   r&   r   r&   r   r&   r   r&   r   r&   r   r&   r   r&   r   r&   r   r&   r   r&   r   r&   r   r&   r   r&   r   r&   r   r&   r   r&   r   r&   r   r&   r   r&   r   r&   r   r&   r   r&   r   r&   r   r&   r   r&   r   r&   r   r&   r   r&   r   r&   r   r&   r   r&   r   r&   r   r&   r   r&   r   r&   r   r&   r   r&   r   r&   r   r&     r   r&   r   r'   r   r'   r   r'   r   r'   r   r'   r   r'   r   r'   r   r'   r   r'   r   r'   r   r'   r   r'   r   r'   r   r'   r   r'   r   r'   	  r   r'   r   r(   r   r(   r   r(   r   r(   r   r(   r   r)   r   r)   r   r)   r   r)   r   r)   r   r)   r   r*   r   r*   r   r*   r   r*   r   r*   r   r+   r   r+   r   r+   r   r+   r   r+   r   r,   r   r,   r   r,   r   r,   r   r-   r   r-   r   r-   r   r-   r   r.   r   r.   r   r.   r   r.   r   r.   r   r/   r   r/   r   r/   r   r/   r   r/   r   r0   r   r0   r   r0   r   r0   r   r0   r   r1   r   r1   r   r1   r   r1   r   r1   r   r2   r   r2   r   r2   r   r2   r   r2   r   r3   r   r3   r   r3   r   r3   r   r3   r   r4   r   r4   r   r4   r   r4   r   r4   r   r4   r   r4   r   r4   r   r5   r   r5   r   r5   r   r5   r   r5   r   r5   r   r5   r   r5   r   r6   r   r6   r   r6   r   r6   r   r6   r   r6   r   r6   r   r6   r   r7   r   r7   r   r7   r   r7   r   r7   r   r7   r   r7   r   r7   r   r8   r   r8   r   r8   r   r8   r   r8   r   r8   r   r8   r   r8   r   r9   r   r9   r   r9   r   r9   r   r9   r   r9   r   r9   r   r9   r   r:   r   r:   r   r:   r   r:   r   r:   r   r:   r   r;   r   r;   r   r;   r   r;   r   r;   r   r;   r   r<   r   r<   r   r<   r   r<   r   r<   r   r<   r   r=   r   r=   r   r=   r   r=   r   r=   r   r=   r   r=   r   r=   r   r>   r   r>   r   r>   r   r>   r   r>   r   r>   r   r>   r   r>   r   r?   r   r?   r   r?   r   r?   r   r?   r   r?   r   r?   r   r?   r   r@   r   r@   r   r@   r   r@   r   r@   r   r@   r   r@   r   r@   r   rA   r   rA   r   rA   r   rA   r   rA   r   rA   r   rA   r   rA   r   rB   r   rB   r   rB   r   rB   r   rB   r   rB   r   rB   r   rC   r   rC   r   rC   r   rC   r   rC   r   rC   r   rC   r   rD   r   rD   r   rD   r   rD   r   rD   r   rD   r   rE   r   rE   r   rE   r   rE   r   rE   r   rE   r   rE   r   rE   r   rE   r   rE   r   rF   r   rF   r   rF   r   rF   r   rF   r   rF   r   rF   r   rG   r   rG   r   rG   r   rG   r   rG   r   rG   r   rH   r   rH   r   rH   r   rH   r   rH   r   rI   r   rI   r   rI   r   rI   r   rI   r   rI   r   rI   r   rI   r   rI   r   rI   r   rI   r   rI   r   rI   r   rI   r   rI   r   rI   r   rI   r   rI     r   rI   r   rJ   r   rJ   r   rJ   r   rJ   r   rJ   r   rJ   r   rJ   r   rK   r   rK   r   rK   r   rK   r   rK   r   rK   r   rK   r   rK   r   rL   r   rL   r   rL   r   rL   r   rL   r   rL   r   rL   r   rL   r   rM   r   rM   r   rM   r   rM   r   rM   r   rM   r   rM   r   rM   r   rN   r   rN   r   rO   r   rO   r   rP   r   rP   r   rQ   r   rQ   r   rR   r   rR   r   rR     r   rR   r   rR   r   rR     r   rR   r   rR   r   rR   r   rR   r   rR   $  r   rR   r   rR   r   rR   %  r   rR   (  r   rR   r   rS   r   rS   r   rT   r   rT   r   rU   r   rU   r   rU   0  r   rU   r   rU   r   rU   3  r   rU   r   rU   5  r   rU   r   rU   r   rU   r   rU   r   rU   :  r   rU   r   rU   r   rU   =  r   rU   r   rU   r   rU   @  r   rU   r   rU   B  r   rU   r   rV   r   rV   r   rV   r   rV   r   rV   r   rW   r   rW   r   rX   r   rX   r   rX   r   rX   r   rX   r   rX   r   rX   r   rX   r   rX   r   rX   T  r   rX   r   rY   r   rY   r   rY   r   rY   r   rY   r   rY   r   rZ   r   rZ   r   rZ   r   rZ   r   rZ   r   rZ   r   rZ   r   rZ   r   rZ   r   rZ   r   r[   r   r[   r   r\   r   r\   r   r\   r   r\   r   r\   r   r\   r   r\   r   r\   r   r\   r   r\   q  r   r\   r   r]   r   r]   r   r]   r   r]   r   r]   r   r]   r   r^   r   r^   r   r^   r   r^   r   r^   r   r^   r   r^   r   r^   r   r^   r   r^   r   r_   r   r_   r   r`   r   r`     r   r`   r   r`   r   r`     r   r   r   r   r   r     r   r   r   r   r   r     r     1  ;  r   \   r   r   r   r   r   r   r   r   r   r   r   r	   r   r   r   r   r   r   r   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   r3   r   r5   r   r7   r   r9   r    r;   r!   r=   r"   r?   r#   rA   r$   rC   r%   rE   r&   rG   r'   rI   r(   rK   r)   rM   r*   rO   r+   rQ   r,   rS   r-   rU   r.   rW   r/   rY   r0   r[   r1   r]   r2   r_   r3   r   r4   ]   r5   _   r6   a   r7   c   r8   e   r9   g   r:   i   r;   k   r<   m   r=   o   r>   q   r?   s   r@   u   rA   w   rB   y   rC   {   rD   }   rE      rF      rG      rH      rI      rJ      rK      rL      rM      rN      rO      rP      rQ      r      rR      rS      rT      rU      rV      rW      rX      rY      rZ      r[      r\      r]      r^      r_      r`      r   r   r   r   r   r   r   r   r   r   r&   r&   r   r   rG   r`   r   z   r   r   r6   r?   i  r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r!   r   r   r   r   r   r#   r   r   r   r   r   r%   r   r   r   r   r   r'   r   r   r   r   r   r)   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   r   r   r   r   r3   r   r   r   r   r   r5   r   r   r   r   r   r7   r   r   r   r   r   r9   r   r   r   r   r   r;   r   r   r   r   r   r=   r   r   r   r   r   r?   r   r   r   r   r   rA   r   r   r   r   r   rC   r   r   r   r   r   rE   r   r   r   r   r   rG   r   r   r   r   r   rI   r   r   r   r   r   rK   r   r   r   r   r   rM   r   r   r   r   r   rO   r   r   r   r   r   rQ   r   r   r   r   r   rS   r   r   r   r   r   rU   r   r   r   r   r   rW   r   r   r   r   r   rY   r   r   r   r   r   r[   r   r   r   r   r   r]   r   r   r   r   r   r_   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r      r   r   r   r   r      r   r   r   r   r      r   r   r   r   r      r   r   r   r   r      r   r   r   r   r      r   r   r   r   r      r   r   r   r   r      r   r   r   r   r     r   r   r   r   r     r   r   r   r   r   '  r   r   r   r   r   8  r   r   r   r   r   @  r   r   r   r   r!   |  r   r   r   r   r#     r   r   r   r   r%     r   r   r   r   r'     r   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   r   r   r   r3     r   r   r   r   r5     r   r   r   r   r7     r   r   r   r   r9     r   r   r   r   r;     r   r   r   r   r=     r   r   r   r   r?     r   r   r   r   rA     r   r   r   r   rC     r   r   r   r   rE     r   r   r   r   rG     r   r   r   r   rI     r   r   r   r   rK   
  r   r   r   r   rM     r   r   r   r   rO     r   r   r   r   rQ     r   r   r   r   rS     r   r   r   r   rU   #  r   r   r   r   rW   '  r   r   r   r   rY   ,  r   r   r   r   r[   1  r   r   r   r   r]   6  r   r   r   r   r_   ;  r   r   r   r   r   @  r   r   r   r   r   E  r   r   r   r   r   M  r   r   r   r   r   U  r   r   r   r   r   ]  r   r   r   r   r   e  r   r   r   r   r   m  r   r   r   r   r   u  r   r   r   r   r   {  r   r   r   r   r     r   r   r   r   r     r   r   r   r   r     r   r   r   r   r     r   r   r   r   r     r   r   r   r   r     r   r   r   r   r     r   r   r   r   r     r   r   r   r   r     r   r   r   r   r     r   r   r   r   r     r   r   r   r   r     r   r   r   r   r     r   r   r   r   r     r   r   r   r   r     r   r   r   r   r     r   r   r   r   r     r   r   r   r   r   	  r   r   r   r   r     r   r   r   r   r     r   r   r   r   r     r   r   r   r   r     r   r   r   r   r     r   r   r   r   r   )  r   r   r   r   r   +  r   r   r   r   r   A  r   r   r   r   r   C  r   r   r   r   r   H  r   r   r   r   r   S  r   r   r   r   r   U  r   r   r   r   r   [  r   r   r   r   r   e  r   r   r   r   r   p  r   r   r   r   r   r  r   r   r   r   r   x  r   r   r   r   r     r   r   r   r   r     r   r   r   r   r     r   r   r   r   r      r   r2   r   r   r  r   r   r   r   r   r      r   r4   r   r   r  r   r   r   r   r      ra   r   r   r   r   r   r  r   r   r   r   ra   rb   r   r   r   r   rb   r   r   r   r   r   rb      r   r   r   r   r     r   r   r   r   r     r	   r   r   r   r  r	   r   r   r   r         r   r   r   r   r  rc   r   r2   r   r         r   r   r   r   r     r   t   r   r   r     r   h   r   r   r     r   r   r   r   r     r   n   r   r   r     r   r   r   r   r     r   p   r   r   r     r   r   r   r   r      r   r   r   r   r!  rc   r   r   r   r   r   r  r   r   r   r   r   r  r   r   r   r   rc      r   r   r   r   r"     r	   r   r   r   r#  r   r   r   r   r         r   r   r   r   r%  rd   r   r@   r   r         r   r   r   r   r'     r   r   r   r   r(     r   r   r   r   r)     r   d   r   r   r*     r   r   r   r   r,     r   r  r   r   r-     r   r   r   r   r.     r   r   r   r   r/  rd   r   r   r   r   r   r$  r   r   r   r   r   r&  r   r   r   r   rd      r   r   r   r   r0     r	   r   r   r   r1  r   r   r   r   r         r   r   r   r   r3  re   r   rA   r   r         r   r   r   r   r5     r   r  r   r   r6     r   r  r   r   r7     r   r   r   r   r8     r   r   r   r   r9     r   r   r   r   r:     r   r   r   r   r;     r   r  r   r   r<     r   r   r   r   r=     r   r   r   r   r>  re   r   r   r   r   r   r2  r   r   r   r   r   r4  r   r   r   r   re      r   r   r   r   r?     r	   r   r   r   r@  r   r   r   r   r   r      r   r   r   r   rA     r   r   r   r   rB     r   r   r   r   rC     r   r   r   r   rD     r   r+  r   r   rE     r   r   r   r   rF     r	   r	   r   r   rG  r   r   r   r   r   r      r   r   r   r   rH     r   r   r   r   rI     r   r   r   r   rJ     r   r   r   r   rK    r   r   r   r   rL    r   r+  r   r   rM    r   r   r   r   rN    r	   r   r   r   rO  r   r   r   r   r       r   r   r   r   rQ  rf   r   r'   r   r       r   r   r   r   rS  	  r   r  r   r   rT  
  r   r   r   r   rU    r   r   r   r   rV    r   r  r   r   rW    r   r  r   r   rX    r   r   r   r   rY    r   r  r   r   rZ    r   r   r   r   r[    r   r  r   r   r\    r   r   r   r   r]    r   r   r   r   r^  rf   r   r   r   r   r   rP  r   r   r   r   r   rR  r   r   r   r   rf     r   r   r   r   r_    r	   r   r   r   r`  r   r   r   r   r   r     r   r   r   r   ra    r   r  r   r   rb    r   r   r   r   rc    r   r   r   r   rd    r   r   r   r   re    r   r   r   r   rf    r   r+  r   r   rg     r   r   r   r   rh  !  r   r  r   r   ri  "  r   r   r   r   rj  #  r   r   r   r   rk  $  r   r   r   r   rl  %  r   r   r   r   rm  &  r	   r   r   r   rn  r   r   r   r   r   r   (  r   r   r   r   ro  )  r   r  r   r   rp  *  r   r   r   r   rq  +  r   r   r   r   rr  ,  r   r  r   r   rs  -  r   r  r   r   rt  .  r   r   r   r   ru  /  r   r   r   r   rv  0  r   r   r   r   rw  1  r   r   r   r   rx  2  r   r  r   r   ry  3  r   r   r   r   rz  4  r   r   r   r   r{  5  r   r   r   r   r|  6  r   r   r   r   r}  7  r	   r   r   r   r~  r   r   r   r   r   r   9  r   r   r   r   r  :  r   l   r   r   r  ;  r   r   r   r   r  <  r   f   r   r   r  =  r   r  r   r   r  >  r   r   r   r   r  ?  r	   r   r   r   r  r   r   r   r   r   r   A  r   r   r   r   r  B  r   r   r   r   r  C  r   r   r   r   r  D  r   r   r   r   r  E  r   r  r   r   r  F  r   r  r   r   r  G  r   r   r   r   r  H  r	   r   r   r   r  r    r   r   r   r   I  J  r   r   r   r   r  K  r   v   r   r   r  L  r   r  r   r   r  M  r   r   r   r   r  N  r   r  r   r   r  rg   r   r   r   r   O  P  r   r   r   r   r  Q  r   r  r   r   r  R  r   r   r   r   r  S  r   r   r   r   r  T  r   r  r   r   r  U  r   r  r   r   r  V  r   r   r   r   r  rg   r   r  r   r   W  X  r   r   r   r   r  Y  r   r  r   r   r  Z  r   b   r   r   r  [  r   r   r   r   r  rg   r   x   r   r   \  ]  r   r   r   r   r  ^  r   r  r   r   r  _  r   r   r   r   r  `  r   r   r   r   r  a  r   r   r   r   r  rg   r   r  r   r   b  c  r   r   r   r   r  d  r   r  r   r   r  e  r   r   r   r   r  f  r   r  r   r   r  g  r   r   r   r   r  h  r   r   r   r   r  rg   r   r   r   r   i  j  r   r   r   r   r  k  r   r  r   r   r  l  r   r  r   r   r  m  r   r   r   r   r  rg   r   r  r   r   n  o  r   r   r   r   r  rg   r   r0   r   r   p  q  r   r   r   r   r  rg   r   r3   r   r   r  s  r   r   r   r   r  rg   r   r4   r   r   t  u  r   r   r   r   r  rg   r   r5   r   r   v  w  r   r   r   r   r  rg   r   r(   r   r   x  y  r   r   r   r   r  rg   r   r.   r   r   z  {  r   r   r   r   r  rg   r   rC   r   r   r   r  r   r   r   r   r   r  r   r   r   r   r   r  r   r   r   r   r   r  r   r   r   r   r   r  r   r   r   r   r   r  r   r   r   r   r   r  r   r   r   r   r   r  r   r   r   r   r   r  r   r   r   r   r   r  r   r   r   r   r   r  r   r   r   r   r   r  r   r   r   r   r   r  r   r   r   r   rg   ~  r   r   r   r   r    r	   r   r   r   r  r"   r   r   r   r   r     r   r1   r   r   r  r$   r   r   r   r   r     r   r3   r   r   r  r&   r   r   r   r   r     r   r0   r   r   r  r(   r   r   r   r   r     r   r5   r   r   r  r*   r   r   r   r   r     r   r.   r   r   r  r,   r   r   r   r   r     r   r/   r   r   r  r.   r   r   r   r   r     r   r   r   r   r  r0   r   r   r   r   r     r   r   r   r   r  r2   r   r   r   r   r     r   r   r   r   r    r   r   r   r   r  r4   r   r   r   r   r     r   r   r   r   r    r   r   r   r   r  r6   r   r   r   r   r     r   r   r   r   r  r8   r   r   r   r   r     r   r   r   r   r  r:   r   r   r   r   r     r   |   r   r   r  r<   r   r   r   r   r     r   r   r   r   r    r   r  r   r   r    r   r   r   r   r    r   r   r   r   r    r   r  r   r   r    r   r  r   r   r    r   r  r   r   r  r>   r   r   r   r   r     r   r   r   r   r    r   r  r   r   r    r   r   r   r   r    r   r  r   r   r    r   r  r   r   r    r   r  r   r   r  r@   r   r   r   r   r     r   r   r   r   r    r   r  r   r   r    r   r   r   r   r    r   r  r   r   r    r   r   r   r   r    r   r  r   r   r    r   r   r   r   r  rB   r   r   r   r   r     r   r   r   r   r    r   r  r   r   r    r   r   r   r   r    r   r  r   r   r    r   r   r   r   r    r   r  r   r   r    r   r   r   r   r  rD   r   r   r   r   r     r   r   r   r   r    r   r  r   r   r    r   r   r   r   r    r   r   r   r   r  rF   r   r   r   r       r   r   r   r   r    r   r  r   r   r  rh   r   r   r   r       r   r   r   r   r    r   r  r   r   r    r   r   r   r   r    r   r   r   r   r    r   r  r   r   r     r   r  r   r   r    r   r   r   r   r    r   r  r   r   r    r   r  r   r   r    r   r   r   r   r  rh   r   r   r   r       r   r   r   r   r    r   rX   r   r   r    r   r   r   r   r	    r   r   r   r   r
    r   r  r   r   r    r   r  r   r   r    r   r   r   r   r    r   r  r   r   r    r   r  r   r   r    r   r   r   r   r  rh   r   r   r   r       r   r   r   r   r    r   r  r   r   r    r   r   r   r   r    r   r  r   r   r    r   r   r   r   r    r   r  r   r   r    r   r   r   r   r    r   r   r   r   r    r   r  r   r   r    r   r  r   r   r    r   r   r   r   r    r   r  r   r   r    r   r  r   r   r    r   r   r   r   r  rh   r   r   r   r       r   r   r   r   r!    r   rR   r   r   r"    r   r   r   r   r#    r   r  r   r   r$    r   r   r   r   r%    r   r  r   r   r&    r   r   r   r   r'    r   r   r   r   r(    r   r  r   r   r)    r   r  r   r   r*    r   r   r   r   r+    r   r  r   r   r,    r   r  r   r   r-    r   r   r   r   r.  rh   r   r   r   r   r   r  r   r   r   r   r   r  r   r   r   r   r   r  r   r   r   r   r   r  r   r   r   r   r   r   r   r   r   r   rh   rH   r   r   r   r       r   r   r   r   r0    r   r   r   r   r1    r   r  r   r   r2  ri   r   r  r   r       r   r   r   r   r4    r   r   r   r   r5     r   r  r   r   r6    r   r  r   r   r7    r   r   r   r   r8    r   r  r   r   r9    r   r   r   r   r:    r   r   r   r   r;    r   r   r   r   r<    r   r  r   r   r=  ri   r   r   r   r   r   r/  r   r   r   r   r   r3  r   r   r   r   ri   rJ   r   r   r   r   r     r   r   r   r   r>    r   r   r   r   r?    r   r   r   r   r@    r   r   r   r   rA  rL   r   r   r   r   r     r   r   r   r   rB    r   r  r   r   rC    r   r  r   r   rD    r   r   r   r   rE    r   r+  r   r   rF  rN   r   r   r   r   r     r   r   r   r   rG    r   r   r   r   rH    r   r  r   r   rI    r   r  r   r   rJ  rP   r   r   r   r   r     r   r   r   r   rK    r   r  r   r   rL    r   r   r   r   rM    r   r   r   r   rN  rR   r   r   r   r   r      r   r   r   r   rO  !  r   r  r   r   rP  "  r   r   r   r   rQ  rT   r   r   r   r   r   $  r   r   r   r   rR  %  r   r  r   r   rS  &  r   r  r   r   rT  rV   r   r   r   r   r   (  r   r   r   r   rU  )  r   r   r   r   rV  *  r   r   r   r   rW  +  r   r  r   r   rX  rX   r   r   r   r   r   -  r   r   r   r   rY  .  r   r   r   r   rZ  /  r   r   r   r   r[  0  r   r   r   r   r\  rZ   r   r   r   r   r   2  r   r   r   r   r]  3  r   r  r   r   r^  4  r   r   r   r   r_  5  r   r  r   r   r`  r\   r   r   r   r   r   7  r   r   r   r   ra  8  r   r   r   r   rb  9  r   r   r   r   rc  :  r   r   r   r   rd  r^   r   r   r   r   r   <  r   r   r   r   re  =  r   r   r   r   rf  >  r   r   r   r   rg  ?  r   r   r   r   rh  r`   r   r   r   r   r   A  r   r   r   r   ri  B  r   r   r   r   rj  C  r   r   r   r   rk  D  r   r  r   r   rl  r   r   r   r   r   r   F  r   r   r   r   rm  G  r   r   r   r   rn  H  r   r  r   r   ro  I  r   r   r   r   rp  J  r   r   r   r   rq  K  r   r   r   r   rr  L  r   r  r   r   rs  ^   r   r   r   r   r   N  r   r   r   r   ru  O  r   r   r   r   rv  P  r   r  r   r   rw  Q  r   r   r   r   rx  R  r   r   r   r   ry  S  r   r   r   r   rz  T  r   r   r   r   r{  `   r   r   r   r   r   V  r   r   r   r   r}  W  r   r   r   r   r~  X  r   r  r   r   r  Y  r   r   r   r   r  Z  r   r  r   r   r  [  r   r   r   r   r  \  r   r  r   r   r  r  r   r   r   r   r   ^  r   r   r   r   r  _  r   r   r   r   r  `  r   r  r   r   r  a  r   r   r   r   r  b  r   r   r   r   r  c  r   r   r   r   r  d  r   r   r   r   r  r+  r   r   r   r   r   f  r   r   r   r   r  g  r   r   r   r   r  h  r   r  r   r   r  i  r   r   r   r   r  j  r   r   r   r   r  k  r   r   r   r   r  l  r   r   r   r   r  r  r   r   r   r   r   n  r   r   r   r   r  o  r   r   r   r   r  p  r   r  r   r   r  q  r   r   r   r   r  r  r   r   r   r   r  s  r   r   r   r   r  t  r   r  r   r   r  r  r   r   r   r   r   v  r   r   r   r   r  w  r   r   r   r   r  x  r   r   r   r   r  y  r   r  r   r   r  z  r   r  r   r   r  j   r   r   r   r   r   |  r   r   r   r   r  }  r   r   r   r   r  ~  r   r   r   r   r    r   r   r   r   r    r   r  r   r   r  r  r   r   r   r   r     r   r   r   r   r    r   r  r   r   r    r   r   r   r   r    r   r  r   r   r    r   r  r   r   r  r  r   r   r   r   r     r   r   r   r   r    r   r   r   r   r    r   r  r   r   r    r   r   r   r   r    r   r   r   r   r    r   r  r   r   r    r   r  r   r   r  r  r   r   r   r   r     r   r   r   r   r    r   r   r   r   r    r   r  r   r   r    r   r   r   r   r    r   r   r   r   r    r   r   r   r   r    r   r  r   r   r  r  r   r   r   r   r     r   r   r   r   r    r   r   r   r   r    r   r  r   r   r    r   r  r   r   r    r   r   r   r   r    r   r  r   r   r    r   r  r   r   r  r  r   r   r   r   r     r   r   r   r   r    r   r  r   r   r    r   r  r   r   r    r   r  r   r   r    r   r   r   r   r    r   r   r   r   r    r   r  r   r   r  r  r   r   r   r   r     r   r   r   r   r    r   r  r   r   r    r   r  r   r   r    r   r  r   r   r    r   r   r   r   r    r   r   r   r   r    r   r  r   r   r  r  r   r   r   r   r     r   r   r   r   r    r   r  r   r   r    r   r   r   r   r    r   r   r   r   r    r   r   r   r   r    r   r  r   r   r  r   r   r   r   r   r     r   r   r   r   r    r   r  r   r   r    r   r   r   r   r    r   r   r   r   r    r   r   r   r   r    r   r  r   r   r  r  r   r   r   r   r     r   r   r   r   r    r   r   r   r   r    r   r   r   r   r    r   r  r   r   r    r   r  r   r   r  ~   r   r   r   r   r     r   r   r   r   r    r   r   r   r   r    r   r  r   r   r    r   r   r   r   r    r   r  r   r   r    r   r  r   r   r    r   r   r   r   r    r   r  r   r   r    r   r   r   r   r     r   r   r   r   r     r   r   r   r   r    r   r  r   r   r    r   r   r   r   r    r   r   r   r   r    r   r   r   r   r    r   r   r   r   r     r   r   r   r   r     r   r   r   r   r    r   r   r   r   r    r   r+  r   r   r    r   r   r   r   r    r   r  r   r   r     r   r   r   r   r     r   r   r   r   r    r   r+  r   r   r    r   r   r   r   r    r   r  r   r   r     r   r   r   r       r   r   r   r   r    r   r  r   r   r    r   r  r   r   r    r   r   r   r   r  rj   r   r   r   r       r   r   r   r   r     r   r+  r   r   r    r   r  r   r   r    r   r  r   r   r    r   r   r   r   r  rj   r   r   r   r       r   r   r   r   r    r   r  r   r   r    r   r  r   r   r    r   r  r   r   r	    r   r   r   r   r
  rj   r   r   r   r   r   r  r   r   r   r   r   r  r   r   r   r   r   r  r   r   r   r   rj      r   r   r   r   r     r   r   r   r   r    r   r  r   r   r    r   r   r   r   r    r   r  r   r   r    r   r   r   r   r    r   r   r   r   r     r   r   r   r   r     r   r   r   r   r    r   r+  r   r   r    r   r  r   r   r    r   r   r   r   r    r   r  r   r   r    r   r   r   r   r     r   r   r   r   r     r   r   r   r   r     r   r   r   r   r    r   r  r   r   r    r   r  r   r   r    r   r   r   r   r    r   r  r   r   r    r   r   r   r   r     r   r   r   r   r!     r   r   r   r   r   
  r   r   r   r   r#    r   r   r   r   r$    r   r   r   r   r%    r   r  r   r   r&    r   r  r   r   r'    r   r   r   r   r(    r   r  r   r   r)     r   r   r   r   r     r   r   r   r   r+     r   r   r   r   r     r   rt  r   r   r-     r   r   r   r   r     r   r@   r   r   r/     r   r   r   r   r     r   r   r   r   r1     r   r   r   r   r   r}   r   r+  r   r     rk   r   r   rQ   r     r3  r   r   r   r   rk   rl   r   r   r   r   r}     r   r   r   r   r}   r4  r   r   r   r   r5  '  r   r   r   r   rl   r}   r   r   r   r      ro   r   r   r   r   !  #  r   r   r   r   "  rm   r   r   r   r   r9  r:  r   r   r   r   rm   rn   r   r   r   r   rn   r9  r   r   r   r   rn   &  r   r   r   r   r;  ro   r   r   r   r   r6  r7  r   r   r   r   r6  r8  r   r   r   r   ro      r   r   r   r   r   *  r   r   r   r   r=     r   r   r   r   r   ,  r   r   r   r   r?     r   r   r   r   -  r~   r   r,   r   r   .  rp   r   r   rQ   r   /  rB  r   r   r   r   rp   rq   r   r   r   r   r~   2  r   r   r   r   r~   rC  r   r   r   r   rD  rr   r   r   r   r   rq   r~   r   r   r   r   4  rA  r   r   r   r   rE  rr   r   r   r   r   rr   6  r   r   r   r   rF  rv   r   rC   r   r   7  ?  r   rC   r   r   8  rs   r   r   rQ   r   9  rI  r   r   r   r   rs   rt   r   r   r   r   r   <  r   r   r   r   r   rJ  r   r   r   r   rK  >  r   r   r   r   rt   r   r   r   r   r   rL  ru   r   r,   r   r   rH  r   r   r   r   r   rH  ru   r   r   r   r   ru   rv   r   r   r   r   r   rE  r   r   r   r   r   rG  r   r   r   r   rv      r   r   r   r   r   D  r   r   r   r   rN  E  r   r  r   r   rO  F  r   r   r   r   rP  G  r   r   r   r   rQ     r   r   r   r   r  I  r   rB   r   r   rS     r   r   r   r   J  K  r   r   r   r   rV  L  r   r  r   r   rW  M  r   r   r   r   rX  rw   r   r   r   r   N  O  r   r   r   r   rZ  P  r   r  r   r   r[  rw   r   r   r   r   Q  rw   r   r   rY   r   R  rw   r   r   rZ   r   r  rU  r   r   r   r   r  rY  r   r   r   r   r  r\  r   r   r   r   r  r]  r   r   r   r   rw      r   r   r   r   r  V  r   r   r   r   r_  W  r   r  r   r   r`  X  r   r   r   r   ra  Y  r   r   r   r   rb  Z  r   r   r   r   rc     r   r   r   r   r  \  r   r   r   r   re  ]  r   r  r   r   rf  ^  r   r   r   r   rg  _  r   r   r   r   rh  `  r   r   r   r   ri  a  r   r  r   r   rj  b  r   r   r   r   rk  c  r   r  r   r   rl  d  r   r  r   r   rm     r   r   r   r   r  f  r   rD   r   r   ro     r   r   r   r   g  h  r   r   r   r   rr  i  r   r   r   r   rs  j  r   r   r   r   rt  rx   r   r   r   r   k  l  r   r   r   r   rv  m  r   r   r   r   rw  rx   r   r   r   r   n  rx   r   r   r]   r   o  rx   r   r   r^   r   r  rq  r   r   r   r   r  ru  r   r   r   r   r  rx  r   r   r   r   r  ry  r   r   r   r   rx      r   r   r   r   r  s  r   r   r   r   r{  t  r   r   r   r   r|  u  r   r   r   r   r}  v  r   r   r   r   r~  w  r   r   r   r   r     r   r   r   r   r  y  r   r   r   r   r  z  r   r   r   r   r  {  r   r   r   r   r  |  r   r   r   r   r  }  r   r   r   r   r  ~  r   r  r   r   r    r   r   r   r   r    r   r  r   r   r    r   r  r   r   r     r   r   r   r   r	    r   r'   r   r   r     r   r   r   r     ry   r   r-   r   r   r
  r  r   r   r   r   ry   rz   r   r   r   r   rz   r
  r   r   r   r   rz     r   r   r   r   r     r   r   r   r   r    r   r   r   r     r{   r   r   r   r   r  r  r   r   r   r   r{   r|   r   r   r   r   r|   r  r   r   r   r   r|     r   r   r   r   r     r   r   r   r   r   r   rb   r   r   r   r   r   r   r   r   r}   rn   r6  r~   rE  r   rH  r   r  r  rz   r|   r   r	   r   r    r  r  r  S/var/www/auris/lib/python3.9/site-packages/sympy/parsing/latex/_antlr/latexlexer.pyserializedATN   s    r  c                       s  e Zd Ze e Zdd eejD Z	dZ
dZdZdZdZdZd	Zd
ZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZ dZ!dZ"dZ#dZ$dZ%dZ&d Z'd!Z(d"Z)d#Z*d$Z+d%Z,d&Z-d'Z.d(Z/d)Z0d*Z1d+Z2d,Z3d-Z4d.Z5d/Z6d0Z7d1Z8d2Z9d3Z:d4Z;d5Z<d6Z=d7Z>d8Z?d9Z@d:ZAd;ZBd<ZCd=ZDd>ZEd?ZFd@ZGdAZHdBZIdCZJdDZKdEZLdFZMdGZNdHZOdIZPdJZQdKZRdLZSdMZTdNZUdOZVdPZWdQZXdRZYdSZZdTZ[dUZ\dVZ]dWZ^dXZ_dYZ`dZZad[Zbd\Zcd]Zdd^d_gZed`gZfg daZgg dbZhg dcZiddZjdeekjlfemdf fdgdhZn  ZoS )i
LaTeXLexerc                 C   s   g | ]\}}t ||qS r  )ZDFA).0iZdsr  r  r  
<listcomp>`      zLaTeXLexer.<listcomp>r   r   r   r   r   r	   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r    r!   r"   r#   r$   r%   r&   r'   r(   r)   r*   r+   r,   r-   r.   r/   r0   r1   r2   r3   r4   r5   r6   r7   r8   r9   r:   r;   r<   r=   r>   r?   r@   rA   rB   rC   rD   rE   rF   rG   rH   rI   rJ   rK   rL   rM   rN   rO   rP   rQ   rR   rS   rT   rU   rV   rW   rX   rY   rZ   r[   r\   r]   r^   r_   r`   r   ZDEFAULT_TOKEN_CHANNELZHIDDENDEFAULT_MODE)K	<INVALID>z','z'.'z'\quad'z'\qquad'z'\negmedspace'z'\negthickspace'z'\left'z'\right'z'+'z'-'z'*'z'/'z'('z')'z'{'z'}'z'\{'z'\}'z'['z']'z'|'z	'\right|'z'\left|'z	'\langle'z	'\rangle'z'\lim'z'\sum'z'\prod'z'\exp'z'\log'z'\lg'z'\ln'z'\sin'z'\cos'z'\tan'z'\csc'z'\sec'z'\cot'z	'\arcsin'z	'\arccos'z	'\arctan'z	'\arccsc'z	'\arcsec'z	'\arccot'z'\sinh'z'\cosh'z'\tanh'z	'\arsinh'z	'\arcosh'z	'\artanh'z	'\lfloor'z	'\rfloor'z'\lceil'z'\rceil'z'\sqrt'z'\overline'z'\times'z'\cdot'z'\div'z'\binom'z	'\dbinom'z	'\tbinom'z	'\mathit'z'_'z'^'z':'z'\neq'z'<'z'\leqq'z'\leqslant'z'>'z'\geqq'z'\geqslant'z'!')Zr  WS	THINSPACEMEDSPACE
THICKSPACEQUADQQUADNEGTHINSPACENEGMEDSPACENEGTHICKSPACECMD_LEFT	CMD_RIGHTIGNOREADDSUBMULDIVL_PARENR_PARENL_BRACER_BRACEL_BRACE_LITERALR_BRACE_LITERAL	L_BRACKET	R_BRACKETBARR_BARL_BARL_ANGLER_ANGLEFUNC_LIMLIM_APPROACH_SYMFUNC_INTFUNC_SUM	FUNC_PRODFUNC_EXPFUNC_LOGFUNC_LGFUNC_LNFUNC_SINFUNC_COSFUNC_TANFUNC_CSCFUNC_SECFUNC_COTFUNC_ARCSINFUNC_ARCCOSFUNC_ARCTANFUNC_ARCCSCFUNC_ARCSECFUNC_ARCCOT	FUNC_SINH	FUNC_COSH	FUNC_TANHFUNC_ARSINHFUNC_ARCOSHFUNC_ARTANHL_FLOORR_FLOORL_CEILR_CEIL	FUNC_SQRTFUNC_OVERLINE	CMD_TIMESCMD_CDOTCMD_DIVCMD_FRAC	CMD_BINOM
CMD_DBINOM
CMD_TBINOM
CMD_MATHIT
UNDERSCORECARETCOLONDIFFERENTIALLETTERDIGITEQUALNEQLTLTELTE_QLTE_SGTGTEGTE_QGTE_SBANGSINGLE_QUOTESSYMBOL)\T__0T__1r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  ZWS_CHARr  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  zLaTeX.g4N)outputc                    s>   t  || | d t| | j| jt | _d | _d | _	d S )Nz4.11.1)
super__init__ZcheckVersionZLexerATNSimulatoratndecisionsToDFAZPredictionContextCacheZ_interp_actionsZ_predicates)selfinputr  	__class__r  r  r    s
    
zLaTeXLexer.__init__)p__name__
__module____qualname__ZATNDeserializerZdeserializer  r  	enumerateZdecisionToStater  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  ZchannelNamesZ	modeNamesZliteralNamesZsymbolicNamesZ	ruleNamesZgrammarFileNamesysstdoutr   r  __classcell__r  r  r  r  r  \  s   r  )Zantlr4ior   r  version_infotypingr   Z	typing.ior  ZLexerr  r  r  r  r  <module>
   s     K