Ë
    "Tæe7f  ã                  ó0  — d dl mZ d dlZd dlmZmZmZmZmZm	Z	m
Z
 d dlmZ d dlmZ ej                  dk\  rd dlmZ nd dlmZ d dlmZ d	d
lmZ d	dlmZ d	dlmZ d	dlmZmZmZmZ d	dlm Z  d	dl!m"Z" d	dl#m$Z$ d	dl%m&Z& d	dl'm(Z( d	dl)m*Z*m+Z+ d	dl,m-Z- d	dl.m/Z/m0Z0  G d„ d«      Z1 G d„ de1«      Z2 G d„ de1«      Z3 G d„ de3«      Z4 G d„ de3«      Z5 G d „ d!e3«      Z6 G d"„ d#e3«      Z7 G d$„ d%e1«      Z8 G d&„ d'e1«      Z9 G d(„ d)e1«      Z: G d*„ d+e1«      Z; G d,„ d-e1«      Z< G d.„ d/e1«      Z= G d0„ d1e1«      Z> G d2„ d3e3«      Z? G d4„ d5e3«      Z@ G d6„ d7e3«      ZA G d8„ d9«      ZB G d:„ d;e"«      ZCeDd<k(  �rd dlEZEd dlZ eEjŒ                  d=¬>«      ZGeGj‘                  d?d@dA¬B«       eGj‘                  dCdDdEdFddG¬H«       eGj‘                  dIdJdKdLdM¬N«       eGj‘                  dOdPdQddQ¬N«       eGj‘                  dRdSdTdFdU¬V«       eGj‘                  dWdXeIdYddZ¬[«       eGj‘                  d\d]d^dFd_¬V«       eGj‘                  d`dadbdFdc¬V«       eGj•                  «       ZKd ddlLmZ eKjš                  dek(  rejœ                  jŸ                  «       ZPn. eQeKjš                  dfdg¬h«      5 ZReRjŸ                  «       ZPddd«        eCePeKj¦                  rdindjeKj¨                  eKjª                  eKj¬                  ¬k«      ZWeKj°                  rjd dlYZYd dlZZZ eYj¶                  «       Z\ ee\eKjº                  eKj¼                  ¬l«      Zej¿                  eW«        eZjÀ                  e\jÃ                  «       «       y eeKjº                  eKj¼                  dm¬n«      Zej¿                  eW«       yy# 1 sw Y   ŒêxY w)oé    )ÚannotationsN)ÚClassVarÚDictÚIterableÚListÚOptionalÚTypeÚUnion)Ú
MarkdownIt)ÚToken)é   é   )Úget_args)ÚTableé   ©Úbox)Ú
loop_first)ÚStack)ÚConsoleÚConsoleOptionsÚJustifyMethodÚRenderResult)ÚRenderables)ÚJupyterMixin)ÚPanel)ÚRule)ÚSegment)ÚStyleÚ
StyleStack)ÚSyntax)ÚTextÚTextTypec                  ón   — e Zd ZU dZded<   edd„«       Zdd„Zdd„Zdd„Z		 	 	 	 	 	 dd„Z
	 	 	 	 	 	 dd	„Zy
)ÚMarkdownElementTzClassVar[bool]Únew_linec                ó   —  | «       S )zòFactory to create markdown element,

        Args:
            markdown (Markdown): The parent Markdown object.
            token (Token): A node from markdown-it.

        Returns:
            MarkdownElement: A new markdown element
        © ©ÚclsÚmarkdownÚtokens      ú//usr/lib/python3/dist-packages/rich/markdown.pyÚcreatezMarkdownElement.create!   s   € ñ ‹uˆó    c                 ó   — y)zuCalled when the node is entered.

        Args:
            context (MarkdownContext): The markdown context.
        Nr(   ©ÚselfÚcontexts     r-   Úon_enterzMarkdownElement.on_enter.   ó   � r/   c                 ó   — y)zpCalled when text is parsed.

        Args:
            context (MarkdownContext): The markdown context.
        Nr(   ©r2   r3   Útexts      r-   Úon_textzMarkdownElement.on_text5   r5   r/   c                 ó   — y)zwCalled when the parser leaves the element.

        Args:
            context (MarkdownContext): [description]
        Nr(   r1   s     r-   Úon_leavezMarkdownElement.on_leave<   r5   r/   c                 ó   — y)a|  Called when a child element is closed.

        This method allows a parent element to take over rendering of its children.

        Args:
            context (MarkdownContext): The markdown context.
            child (MarkdownElement): The child markdown element.

        Returns:
            bool: Return True to render the element, or False to not render the element.
        Tr(   ©r2   r3   Úchilds      r-   Úon_child_closezMarkdownElement.on_child_closeC   s   € ð r/   c                 ó   — y)Nr(   r(   ©r2   ÚconsoleÚoptionss      r-   Ú__rich_console__z MarkdownElement.__rich_console__S   s   € ð r/   N©r+   ú
'Markdown'r,   r   Úreturnú'MarkdownElement'©r3   ú'MarkdownContext'rG   ÚNone©r3   rJ   r8   r#   rG   rK   ©r3   rJ   r>   rH   rG   Úbool)rB   z	'Console'rC   z'ConsoleOptions'rG   z'RenderResult')Ú__name__Ú
__module__Ú__qualname__r&   Ú__annotations__Úclassmethodr.   r4   r9   r;   r?   rD   r(   r/   r-   r%   r%      sg   … Ø#€HˆnÓ#àò
ó ð
óóóðØ(ðØ1Bðà	óð Ø ðØ+;ðà	ôr/   r%   c                  ó   — e Zd ZdZy)ÚUnknownElementz’An unknown element.

    Hopefully there will be no unknown elements, and we will have a MarkdownElement for
    everything in the document.

    N)rO   rP   rQ   Ú__doc__r(   r/   r-   rU   rU   Y   s   „ òr/   rU   c                  ó,   — e Zd ZdZdZdd„Zdd„Zdd„Zy)	ÚTextElementz)Base class for elements that render text.Únonec                óf   — |j                  | j                  «      | _        t        d¬«      | _        y ©NÚleft©Újustify)Úenter_styleÚ
style_nameÚstyler"   r8   r1   s     r-   r4   zTextElement.on_enterg   s$   € Ø×(Ñ(¨¯©Ó9ˆŒ
Ü Ô(ˆ�	r/   c                ó~   — | j                   j                  |t        |t        «      r|j                  «       y d «       y ©N)r8   ÚappendÚ
isinstanceÚstrÚcurrent_styler7   s      r-   r9   zTextElement.on_textk   s+   € Ø�	‰	×Ñ˜¼
À4ÌÔ8M˜w×4Ñ4ÕXÐSWÕXr/   c                ó$   — |j                  «        y rc   )Úleave_styler1   s     r-   r;   zTextElement.on_leaven   s   € Ø×ÑÕr/   NrI   rL   )rO   rP   rQ   rV   r`   r4   r9   r;   r(   r/   r-   rX   rX   b   s   „ Ù3à€Jó)óYôr/   rX   c                  óN   — e Zd ZU dZdZded<   ed	d„«       Zd
d„Z	 	 	 	 	 	 dd„Z	y)Ú	ParagraphzA Paragraph.zmarkdown.paragraphr   r^   c                ó0   —  | |j                   xs d¬«      S r[   r]   r)   s      r-   r.   zParagraph.createx   s   € á˜8×+Ñ+Ò5¨vÔ6Ð6r/   c                ó   — || _         y rc   r]   ©r2   r^   s     r-   Ú__init__zParagraph.__init__|   s	   € Øˆ�r/   c              #  ó^   K  — | j                   | j                  _         | j                  –— y ­wrc   )r^   r8   rA   s      r-   rD   zParagraph.__rich_console__   s!   è ø€ ð !ŸL™Lˆ�	‰	ÔØ�i‰i‹ùs   ‚+-N)r+   rF   r,   r   rG   z'Paragraph'©r^   r   rG   rK   ©rB   r   rC   r   rG   r   )
rO   rP   rQ   rV   r`   rR   rS   r.   ro   rD   r(   r/   r-   rk   rk   r   sD   … Ùà%€JØÓàò7ó ð7óðØðØ)7ðà	ôr/   rk   c                  óR   ‡ — e Zd ZdZedd„«       Zdd„Zdˆ fd„Z	 	 	 	 	 	 d	d„Zˆ xZ	S )
ÚHeadingz
A heading.c                ó&   —  | |j                   «      S rc   )Útagr)   s      r-   r.   zHeading.create‰   s   € á�5—9‘9‹~Ðr/   c                óX   — t        «       | _        |j                  | j                  «       y rc   )r"   r8   r_   r`   r1   s     r-   r4   zHeading.on_enter�   s   € Ü“FˆŒ	Ø×Ñ˜DŸO™OÕ,r/   c                óD   •— || _         d|› �| _        t        ‰| �  «        y )Nú	markdown.)rv   r`   Úsuperro   )r2   rv   Ú	__class__s     €r-   ro   zHeading.__init__‘   s#   ø€ ØˆŒØ% c UÐ+ˆŒÜ‰ÑÕr/   c              #  óÎ   K  — | j                   }d|_        | j                  dk(  rt        |t        j
                  d¬«      –— y | j                  dk(  rt        d«      –— |–— y ­w)NÚcenterÚh1zmarkdown.h1.border)r   ra   Úh2Ú )r8   r^   rv   r   r   ÚHEAVYr"   )r2   rB   rC   r8   s       r-   rD   zHeading.__rich_console__–   sZ   è ø€ ð �y‰yˆØˆŒØ�8‰8�tÒäØÜ—I‘IØ*ôó ð �x‰x˜4ÒÜ˜2“h’Ø‹Jùs   ‚A#A%)r+   rF   r,   r   rG   z	'Heading'rI   )rv   rf   rG   rK   rr   )
rO   rP   rQ   rV   rS   r.   r4   ro   rD   Ú__classcell__©r{   s   @r-   rt   rt   †   s?   ø„ Ùàòó ðó-õð
ØðØ)7ðà	÷r/   rt   c                  óB   — e Zd ZdZdZedd„«       Zdd„Z	 	 	 	 	 	 d	d„Zy)
Ú	CodeBlockz&A code block with syntax highlighting.zmarkdown.code_blockc                óx   — |j                   xs d}|j                  d«      d   } | |xs d|j                  «      S )Nr€   ú r   r8   )ÚinfoÚ	partitionÚ
code_theme)r*   r+   r,   Ú	node_infoÚ
lexer_names        r-   r.   zCodeBlock.create®   s=   € à—J‘JÒ$ "ˆ	Ø×(Ñ(¨Ó-¨aÑ0ˆ
Ù�:Ò' ¨×)<Ñ)<Ó=Ð=r/   c                ó    — || _         || _        y rc   )rŒ   Útheme)r2   rŒ   rŽ   s      r-   ro   zCodeBlock.__init__´   s   € Ø$ˆŒØˆ�
r/   c              #  ó¢   K  — t        | j                  «      j                  «       }t        || j                  | j
                  dd¬«      }|–— y ­w)NTr   )rŽ   Ú	word_wrapÚpadding)rf   r8   Úrstripr!   rŒ   rŽ   )r2   rB   rC   ÚcodeÚsyntaxs        r-   rD   zCodeBlock.__rich_console__¸   sB   è ø€ ô �4—9‘9‹~×$Ñ$Ó&ˆÜØ�$—/‘/¨¯©¸tÈQô
ˆð ‹ùs   ‚AAN)r+   rF   r,   r   rG   z'CodeBlock')rŒ   rf   rŽ   rf   rG   rK   rr   )	rO   rP   rQ   rV   r`   rS   r.   ro   rD   r(   r/   r-   r…   r…   ©   s>   „ Ù0à&€Jàò>ó ð>ó
ðØðØ)7ðà	ôr/   r…   c                  óD   — e Zd ZdZdZdd„Z	 	 	 	 	 	 dd„Z	 	 	 	 	 	 d	d„Zy)
Ú
BlockQuotezA block quote.zmarkdown.block_quotec                ó"   — t        «       | _        y rc   ©r   Úelements©r2   s    r-   ro   zBlockQuote.__init__Ç   ó   € Ü%0£]ˆ�r/   c                ó:   — | j                   j                  |«       y©NF©r™   rd   r=   s      r-   r?   zBlockQuote.on_child_closeÊ   ó   € ð 	�‰×Ñ˜UÔ#Ør/   c              #  ó  K  — |j                  |j                  dz
  ¬«      }|j                  | j                  || j                  ¬«      }| j                  }t        d«      }t        d|«      }|D ]  }|–— |E d {  –—†  |–— Œ y 7 Œ­w)Né   ©Úwidth©ra   ú
u   â–Œ )ÚupdateÚ	max_widthÚrender_linesr™   ra   r   )	r2   rB   rC   Úrender_optionsÚlinesra   r&   r‘   Úlines	            r-   rD   zBlockQuote.__rich_console__Ð   sƒ   è ø€ ð !Ÿ™¨g×.?Ñ.?À!Ñ.C˜ÓDˆØ×$Ñ$ T§]¡]°NÈ$Ï*É*Ð$ÓUˆØ—
‘
ˆÜ˜4“=ˆÜ˜& %Ó(ˆØò 	ˆDØŠMØ�OˆOØ‹Nñ	àús   ‚A9B	Á;BÁ<B	N©rG   rK   rM   rr   )rO   rP   rQ   rV   r`   ro   r?   rD   r(   r/   r-   r–   r–   Â   sI   „ Ùà'€Jó3ðØ(ðØ1Bðà	óðØðØ)7ðà	ôr/   r–   c                  ó(   — e Zd ZdZdZ	 	 	 	 	 	 dd„Zy)ÚHorizontalRulez%A horizontal rule to divide sections.Fc              #  óN   K  — |j                  dd¬«      }t        |¬«      –— y ­w)Nzmarkdown.hrrY   ©Údefaultr¤   )Ú	get_styler   )r2   rB   rC   ra   s       r-   rD   zHorizontalRule.__rich_console__ã   s(   è ø€ ð ×!Ñ! -¸Ð!Ó@ˆÜ˜ÔÓùs   ‚#%Nrr   )rO   rP   rQ   rV   r&   rD   r(   r/   r-   r®   r®   Þ   s'   „ Ù/à€Hð Øð Ø)7ð à	ô r/   r®   c                  ó@   — e Zd ZdZdd„Z	 	 	 	 	 	 dd„Z	 	 	 	 	 	 dd„Zy)	ÚTableElementz.MarkdownElement corresponding to `table_open`.c                ó    — d | _         d | _        y rc   )ÚheaderÚbodyrš   s    r-   ro   zTableElement.__init__í   s   € Ø15ˆŒØ-1ˆ�	r/   c                óx   — t        |t        «      r|| _        yt        |t        «      r|| _        yt        d«      ‚)Nz Couldn't process markdown table.F)re   ÚTableHeaderElementr¶   ÚTableBodyElementr·   ÚRuntimeErrorr=   s      r-   r?   zTableElement.on_child_closeñ   sB   € ô �eÔ/Ô0ØˆDŒKð
 ô	 ˜Ô/Ô0ØˆDŒIð ô ÐAÓBÐBr/   c              #  óÈ  K  — t        t        j                  ¬«      }| j                  �V| j                  j                  �@| j                  j                  j
                  D ]  }|j                  |j                  «       Œ | j                  �M| j                  j                  D ]4  }|j
                  D �cg c]  }|j                  ‘Œ }} |j                  |Ž  Œ6 |–— y c c}w ­w)Nr   )r   r   ÚSIMPLE_HEAVYr¶   ÚrowÚcellsÚ
add_columnÚcontentr·   ÚrowsÚadd_row)r2   rB   rC   ÚtableÚcolumnr¾   ÚelementÚrow_contents           r-   rD   zTableElement.__rich_console__ü   s·   è ø€ ô œ#×*Ñ*Ô+ˆà�;‰;Ð" t§{¡{§¡Ð'BØŸ+™+Ÿ/™/×/Ñ/ò 1�Ø× Ñ  §¡Õ0ð1ð �9‰9Ð Ø—y‘y—~‘~ò ,�Ø>A¿i¹iÖH°7˜wŸ›ÐH�ÐHØ�—‘˜{Ò+ð,ð ‹ùò Iùs   ‚B0C"Â2CÃC"Nr¬   rM   rr   )rO   rP   rQ   rV   ro   r?   rD   r(   r/   r-   r´   r´   ê   sD   „ Ù8ó2ð	Ø(ð	Ø1Bð	à	ó	ðØðØ)7ðà	ôr/   r´   c                  ó,   — e Zd ZdZdd„Z	 	 	 	 	 	 dd„Zy)r¹   z@MarkdownElement corresponding to `thead_open` and `thead_close`.c                ó   — d | _         y rc   )r¾   rš   s    r-   ro   zTableHeaderElement.__init__  s	   € Ø+/ˆ�r/   c                ó6   — t        |t        «      sJ ‚|| _        yr�   )re   ÚTableRowElementr¾   r=   s      r-   r?   z!TableHeaderElement.on_child_close  s   € ô ˜%¤Ô1Ð1Ð1ØˆŒØr/   Nr¬   rM   ©rO   rP   rQ   rV   ro   r?   r(   r/   r-   r¹   r¹     s'   „ ÙJó0ðØ(ðØ1Bðà	ôr/   r¹   c                  ó,   — e Zd ZdZdd„Z	 	 	 	 	 	 dd„Zy)rº   z@MarkdownElement corresponding to `tbody_open` and `tbody_close`.c                ó   — g | _         y rc   )rÂ   rš   s    r-   ro   zTableBodyElement.__init__  s	   € Ø+-ˆ�	r/   c                ó^   — t        |t        «      sJ ‚| j                  j                  |«       yr�   )re   rË   rÂ   rd   r=   s      r-   r?   zTableBodyElement.on_child_close!  s)   € ô ˜%¤Ô1Ð1Ð1Ø�	‰	×Ñ˜ÔØr/   Nr¬   rM   rÌ   r(   r/   r-   rº   rº     s'   „ ÙJó.ðØ(ðØ1Bðà	ôr/   rº   c                  ó,   — e Zd ZdZdd„Z	 	 	 	 	 	 dd„Zy)rË   z:MarkdownElement corresponding to `tr_open` and `tr_close`.c                ó   — g | _         y rc   )r¿   rš   s    r-   ro   zTableRowElement.__init__,  s	   € Ø-/ˆ�
r/   c                ó^   — t        |t        «      sJ ‚| j                  j                  |«       yr�   )re   ÚTableDataElementr¿   rd   r=   s      r-   r?   zTableRowElement.on_child_close/  s*   € ô ˜%Ô!1Ô2Ð2Ð2Ø�
‰
×Ñ˜%Ô Ør/   Nr¬   rM   rÌ   r(   r/   r-   rË   rË   )  s'   „ ÙDó0ðØ(ðØ1Bðà	ôr/   rË   c                  ó2   — e Zd ZdZedd„«       Zdd„Zdd„Zy)	rÓ   z[MarkdownElement corresponding to `td_open` and `td_close`
    and `th_open` and `th_close`.c                ó¸   — t        |j                  j                  d«      «      xs d}d|v rd}nd|v rd}n	d|v rd}nd	}|t        t        «      v sJ ‚ | |¬
«      S )Nra   r€   ztext-align:rightÚrightztext-align:centerr}   ztext-align:leftr\   r±   r]   )rf   ÚattrsÚgetr   r   )r*   r+   r,   ra   r^   s        r-   r.   zTableDataElement.create;  sj   € ä�E—K‘K—O‘O GÓ,Ó-Ò3°ˆð  Ñ&Ø‰GØ  EÑ)Ø‰GØ %Ñ'Ø‰GàˆGàœ(¤=Ó1Ñ1Ð1Ð1Ù˜7Ô#Ð#r/   c                ó6   — t        d|¬«      | _        || _        y )Nr€   r]   )r"   rÁ   r^   rn   s     r-   ro   zTableDataElement.__init__L  s   € Ü! "¨gÔ6ˆŒØˆ�r/   c                óª   — t        |t        «      rt        |«      n|}|j                  |j                  «       | j
                  j                  |«       y rc   )re   rf   r"   Ústylizerg   rÁ   Úappend_textr7   s      r-   r9   zTableDataElement.on_textP  s:   € Ü'¨¬cÔ2Œt�DŒz¸ˆØ�‰�W×*Ñ*Ô+Ø�‰× Ñ  Õ&r/   NrE   rq   rL   )rO   rP   rQ   rV   rS   r.   ro   r9   r(   r/   r-   rÓ   rÓ   7  s%   „ ñ%ð ò$ó ð$ó ô'r/   rÓ   c                  óR   — e Zd ZdZedd„«       Zdd„Z	 	 	 	 	 	 d	d„Z	 	 	 	 	 	 d
d„Zy)ÚListElementzA list element.c           	     ón   —  | |j                   t        |j                  j                  dd«      «      «      S )NÚstartr   )ÚtypeÚintr×   rØ   r)   s      r-   r.   zListElement.createY  s'   € á�5—:‘:œs 5§;¡;§?¡?°7¸AÓ#>Ó?Ó@Ð@r/   c                ó.   — g | _         || _        || _        y rc   )ÚitemsÚ	list_typeÚ
list_start)r2   rå   ræ   s      r-   ro   zListElement.__init__]  s   € Ø%'ˆŒ
Ø"ˆŒØ$ˆ�r/   c                ó^   — t        |t        «      sJ ‚| j                  j                  |«       yr�   )re   ÚListItemrä   rd   r=   s      r-   r?   zListElement.on_child_closeb  s)   € ô ˜%¤Ô*Ð*Ð*Ø�
‰
×Ñ˜%Ô Ør/   c              #  óf  K  — | j                   dk(  r,| j                  D ]  }|j                  ||«      E d {  –—†  Œ y | j                  €dn| j                  }|t	        | j                  «      z   }t        | j                  «      D ]$  \  }}|j                  ||||z   |«      E d {  –—†  Œ& y 7 Œv7 Œ	­w)NÚbullet_list_openr   )rå   rä   Úrender_bulletræ   ÚlenÚ	enumerateÚrender_number)r2   rB   rC   ÚitemÚnumberÚlast_numberÚindexs          r-   rD   zListElement.__rich_console__i  sµ   è ø€ ð �>‰>Ð/Ò/ØŸ
™
ò @�Ø×-Ñ-¨g°wÓ?×?Ñ?ñ@ð Ÿ/™/Ð1‘Q°t·±ˆFØ ¤3 t§z¡z£?Ñ2ˆKÜ(¨¯©Ó4ò ‘��tØ×-Ñ-Ø˜W f¨u¡n°kó÷ ñ ñð	 @øð
ús"   ‚4B1¶B-·A.B1Â%B/Â&B1Â/B1N)r+   rF   r,   r   rG   z'ListElement')rå   rf   ræ   z
int | NonerG   rK   rM   rr   )	rO   rP   rQ   rV   rS   r.   ro   r?   rD   r(   r/   r-   rÞ   rÞ   V  sX   „ ÙàòAó ðAó%ð
Ø(ðØ1Bðà	óðØðØ)7ðà	ôr/   rÞ   c                  óT   — e Zd ZdZdZdd„Z	 	 	 	 	 	 d	d„Zd
d„Z	 	 	 	 	 	 	 	 	 	 dd„Zy)rè   zAn item in a list.zmarkdown.itemc                ó"   — t        «       | _        y rc   r˜   rš   s    r-   ro   zListItem.__init__}  r›   r/   c                ó:   — | j                   j                  |«       yr�   rž   r=   s      r-   r?   zListItem.on_child_close€  rŸ   r/   c              #  ó\  K  — |j                  |j                  dz
  ¬«      }|j                  | j                  || j                  ¬«      }|j                  dd¬«      }t        d|«      }t        d|«      }t        d	«      }t        |«      D ]  \  }	}
|	r|n|–— |
E d {  –—†  |–— Œ y 7 Œ­w)
Nr   r¢   r¤   zmarkdown.item.bulletrY   r°   u    â€¢ z   r¥   )r¦   r§   r¨   r™   ra   r²   r   r   )r2   rB   rC   r©   rª   Úbullet_styleÚbulletr‘   r&   Úfirstr«   s              r-   rë   zListItem.render_bullet†  s¨   è ø€ Ø Ÿ™¨g×.?Ñ.?À!Ñ.C˜ÓDˆØ×$Ñ$ T§]¡]°NÈ$Ï*É*Ð$ÓUˆØ×(Ñ(Ð)?ÈÐ(ÓPˆä˜ ,Ó/ˆÜ˜' <Ó0ˆÜ˜4“=ˆÜ% eÓ,ò 	‰KˆE�4Ù!‘& wÒ.Ø�OˆOØ‹Nñ	àús   ‚BB,ÂB*ÂB,c              #  ó¼  K  — t        t        |«      «      dz   }|j                  |j                  |z
  ¬«      }|j	                  | j
                  || j                  ¬«      }|j                  dd¬«      }t        d«      }	t        d|z  |«      }
t        |› j                  |d	z
  «      dz   |«      }t        |«      D ]  \  }}|r|n|
–— |E d {  –—†  |	–— Œ y 7 Œ­w)
Né   r¢   r¤   zmarkdown.item.numberrY   r°   r¥   r‡   r   )rì   rf   r¦   r§   r¨   r™   ra   r²   r   Úrjustr   )r2   rB   rC   rð   rñ   Únumber_widthr©   rª   Únumber_styler&   r‘   Únumeralrù   r«   s                 r-   rî   zListItem.render_number“  sÚ   è ø€ ô œ3˜{Ó+Ó,¨qÑ0ˆØ Ÿ™¨g×.?Ñ.?À,Ñ.N˜ÓOˆØ×$Ñ$ T§]¡]°NÈ$Ï*É*Ð$ÓUˆØ×(Ñ(Ð)?ÈÐ(ÓPˆä˜4“=ˆÜ˜# Ñ,¨lÓ;ˆÜ˜V˜H×+Ñ+¨L¸1Ñ,<Ó=ÀÑCÀ\ÓRˆÜ% eÓ,ò 	‰KˆE�4Ù"‘'¨Ò/Ø�OˆOØ‹Nñ	àús   ‚CCÃCÃCNr¬   rM   rr   )
rB   r   rC   r   rð   râ   rñ   râ   rG   r   )	rO   rP   rQ   rV   r`   ro   r?   rë   rî   r(   r/   r-   rè   rè   x  s^   „ Ùà €Jó3ðØ(ðØ1Bðà	óóðØðØ)7ðØADðØSVðà	ôr/   rè   c                  ó&   — e Zd Zedd„«       Zdd„Zy)ÚLinkc                ór   — |j                   j                  dd«      } | |j                  t        |«      «      S )NÚhrefú#)r×   rØ   rÁ   rf   )r*   r+   r,   Úurls       r-   r.   zLink.create¥  s+   € à�k‰k�o‰o˜f cÓ*ˆÙ�5—=‘=¤# c£(Ó+Ð+r/   c                ó2   — t        |«      | _        || _        y rc   )r"   r8   r  )r2   r8   r  s      r-   ro   zLink.__init__ª  s   € Ü˜“JˆŒ	Øˆ�	r/   NrE   )r8   rf   r  rf   )rO   rP   rQ   rS   r.   ro   r(   r/   r-   r  r  ¤  s   „ Øò,ó ð,ôr/   r  c                  óZ   ‡ — e Zd ZdZdZedd„«       Zdˆ fd„Zd	ˆ fd„Z	 	 	 	 	 	 d
d„Z	ˆ xZ
S )Ú	ImageItemz#Renders a placeholder for an image.Fc                ón   —  | t        |j                  j                  dd«      «      |j                  «      S )zñFactory to create markdown element,

        Args:
            markdown (Markdown): The parent Markdown object.
            token (Any): A token from markdown-it.

        Returns:
            MarkdownElement: A new markdown element
        Úsrcr€   )rf   r×   rØ   Ú
hyperlinksr)   s      r-   r.   zImageItem.create´  s+   € ñ ”3�u—{‘{—‘ u¨bÓ1Ó2°H×4GÑ4GÓHÐHr/   c                óL   •— || _         || _        d | _        t        ‰| �  «        y rc   )Údestinationr  Úlinkrz   ro   )r2   r  r  r{   s      €r-   ro   zImageItem.__init__Á  s$   ø€ Ø&ˆÔØ$ˆŒØ#'ˆŒ	Ü‰ÑÕr/   c                ó|   •— |j                   j                  | _        t        d¬«      | _        t        ‰| �  |«       y r[   )rg   r  r"   r8   rz   r4   )r2   r3   r{   s     €r-   r4   zImageItem.on_enterÇ  s/   ø€ Ø×)Ñ)×.Ñ.ˆŒ	Ü Ô(ˆŒ	Ü‰Ñ˜Õ!r/   c              #  óZ  K  — t        | j                  xs | j                  xs d ¬«      }| j                  xs7 t	        | j                  j                  d«      j                  dd«      d   «      }| j                  r|j                  |«       t	        j                  d|dd¬«      }|–— y ­w)	N©r  ú/r   éÿÿÿÿu   ðŸŒ† r‡   r€   )Úend)
r   r  r  r8   r"   ÚstripÚrsplitr  rÛ   Úassemble)r2   rB   rC   Ú
link_styleÚtitler8   s         r-   rD   zImageItem.__rich_console__Ì  sˆ   è ø€ ô  §	¡	Ò E¨T×-=Ñ-=Ò EÀÔFˆ
Ø—	‘	ÒQœT $×"2Ñ"2×"8Ñ"8¸Ó"=×"DÑ"DÀSÈ!Ó"LÈRÑ"PÓQˆØ�?Š?Ø�M‰M˜*Ô%Ü�}‰}˜W e¨S°bÔ9ˆØ‹
ùs   ‚B)B+rE   )r  rf   r  rN   rG   rK   rI   rr   )rO   rP   rQ   rV   r&   rS   r.   ro   r4   rD   r‚   rƒ   s   @r-   r  r  ¯  sF   ø„ Ù-à€Hàò
Ió ð
Iõõ"ð
ØðØ)7ðà	÷r/   r  c                  ó^   — e Zd ZdZ	 	 d	 	 	 	 	 	 	 	 	 	 	 d	d„Zed
d„«       Zdd„Zdd„Zd
d„Z	y)ÚMarkdownContextz!Manages the console render state.Nc                ó˜   — || _         || _        t        |«      | _        t	        «       | _        d | _        |�t        d||¬«      | _        y y )Nr€   )rŽ   )rB   rC   r    Ústyle_stackr   ÚstackÚ_syntaxr!   )r2   rB   rC   ra   Úinline_code_lexerÚinline_code_themes         r-   ro   zMarkdownContext.__init__Ú  sL   € ð ˆŒØˆŒÜ'1°%Ó'8ˆÔÜ-2«WˆŒ
à)-ˆŒØÐ(Ü! "Ð&7Ð?PÔQˆD�Lð )r/   c                ó.   — | j                   j                  S )z>Current style which is the product of all styles on the stack.)r  Úcurrentrš   s    r-   rg   zMarkdownContext.current_styleë  s   € ð ×Ñ×'Ñ'Ð'r/   c                óf  — |dv r‡| j                   �{| j                   j                  |«      }|j                  «        | j                  j                  j                  | t        j                  || j                  j                  ¬«      «       y| j                  j                  j                  | |«       y)z#Called when the parser visits text.>   ÚfenceÚcode_inlineNr¤   )
r  Ú	highlightr’   r  Útopr9   r"   r  r  r#  )r2   r8   Ú	node_typeÚhighlight_texts       r-   r9   zMarkdownContext.on_textð  s€   € àÐ0Ñ0°T·\±\Ð5MØ!Ÿ\™\×3Ñ3°DÓ9ˆNØ×!Ñ!Ô#Ø�J‰J�N‰N×"Ñ"Ø”d—m‘m N¸$×:JÑ:J×:RÑ:RÔSõð �J‰J�N‰N×"Ñ" 4¨Õ.r/   c                óŠ   — | j                   j                  |d¬«      }| j                  j                  |«       | j                  S )zEnter a style context.rY   r°   )rB   r²   r  Úpushrg   )r2   r`   ra   s      r-   r_   zMarkdownContext.enter_styleû  s;   € à—‘×&Ñ& z¸6Ð&ÓBˆØ×Ñ×Ñ˜eÔ$Ø×!Ñ!Ð!r/   c                ó:   — | j                   j                  «       }|S )zLeave a style context.)r  Úpop)r2   ra   s     r-   ri   zMarkdownContext.leave_style  s   € à× Ñ ×$Ñ$Ó&ˆØˆr/   )NÚmonokai)rB   r   rC   r   ra   r   r   úOptional[str]r!  rf   rG   rK   )rG   r   )r8   rf   r)  rf   rG   rK   )r`   úUnion[str, Style]rG   r   )
rO   rP   rQ   rV   ro   Úpropertyrg   r9   r_   ri   r(   r/   r-   r  r  ×  sv   „ Ù+ð ,0Ø!*ðRàðRð  ðRð ð	Rð
 )ðRð ðRð 
óRð" ò(ó ð(ó	/ó"ôr/   r  c                  óØ   — e Zd ZU dZi de“de“de“de“de“de“de	“d	e	“d
e
“de“de“de“de“de“de“de“Zded<   h d£Z	 	 	 	 	 	 d	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 dd„Zdd„Z	 	 	 	 	 	 dd„Zy)ÚMarkdownaÍ  A Markdown renderable.

    Args:
        markup (str): A string containing markdown.
        code_theme (str, optional): Pygments theme for code blocks. Defaults to "monokai".
        justify (JustifyMethod, optional): Justify value for paragraphs. Defaults to None.
        style (Union[str, Style], optional): Optional style to apply to markdown.
        hyperlinks (bool, optional): Enable hyperlinks. Defaults to ``True``.
        inline_code_lexer: (str, optional): Lexer to use if inline code highlighting is
            enabled. Defaults to None.
        inline_code_theme: (Optional[str], optional): Pygments theme for inline code
            highlighting, or None for no highlighting. Defaults to None.
    Úparagraph_openÚheading_openr%  Ú
code_blockÚblockquote_openÚhrrê   Úordered_list_openÚlist_item_openÚimageÚ
table_openÚ
tbody_openÚ
thead_openÚtr_openÚtd_openÚth_openz*ClassVar[Dict[str, Type[MarkdownElement]]]r™   >   ÚsÚemr“   ÚstrongNc                óê   — t        «       j                  d«      j                  d«      }|| _        |j                  |«      | _        || _        || _        || _        || _        || _	        |xs || _
        y )NÚstrikethroughrÄ   )r   ÚenableÚmarkupÚparseÚparsedrŠ   r^   ra   r  r   r!  )	r2   rI  rŠ   r^   ra   r  r   r!  Úparsers	            r-   ro   zMarkdown.__init__+  si   € ô “×$Ñ$ _Ó5×<Ñ<¸WÓEˆØˆŒØ—l‘l 6Ó*ˆŒØ$ˆŒØ07ˆŒØˆŒ
Ø$ˆŒØ!2ˆÔØ!2Ò!@°jˆÕr/   c              #  óÊ   K  — |D ]X  }|j                   dk(  }|j                  dk(  }|j                  r(|s&|s$| j                  |j                  «      E d{  –—†  ŒU|–— ŒZ y7 Œ­w)zFlattens the token stream.r%  ÚimgN)rá   rv   ÚchildrenÚ_flatten_tokens)r2   Útokensr,   Úis_fenceÚis_images        r-   rP  zMarkdown._flatten_tokens?  s_   è ø€ àò 	ˆEØ—z‘z WÑ,ˆHØ—y‘y EÑ)ˆHØ�~Š~¡x±8Ø×/Ñ/°·±Ó?×?Ñ?à“ñ	ð @ús   ‚AA#ÁA!ÁA#c              #  óŽ
  K  — |j                  | j                  d¬«      }|j                  d¬«      }t        |||| j                  | j
                  ¬«      }| j                  }| j                  }d}t        j                  «       }| j                  |«      D �]§  }	|	j                  }
|	j                  }|	j                  dk(  }|	j                  dk(  }|	j                  d	k(  }|
d
k(  r|j                  |	j                  |
«       Œk|
dk(  r|j                  d|
«       Œƒ|
dk(  r|j                  d|
«       Œ›|
dk(  r—t!        |	j"                  j%                  dd«      «      }| j&                  r5|j                  dd¬«      }|t)        |¬«      z  }|j+                  |«       �Œ|j,                  j/                  t0        j3                  | |	«      «       �Œ7|
dk(  �r| j&                  r|j5                  «        �Œ[|j,                  j7                  «       }t9        |t0        «      sJ ‚|j                  dd¬«      }|j+                  |«       |j                  |j:                  j<                  |
«       |j5                  «        |j                  d|
«       |j                  dd¬«      }|j+                  |«       |j                  |j>                  |
«       |j5                  «        |j                  d|
«       �ŒW||v r„|
dk7  r|
dk7  rz|r|j+                  d|› �«       �Œ}|r|j5                  «        �Œ‘|j+                  d|› �«       |	j                  r|j                  |	j                  |
«       |j5                  «        �Œß| j@                  j%                  |	j                  «      xs tB        }|j3                  | |	«      }|s|r,|j,                  j/                  |«       |jE                  |«       |rŠ|j,                  j7                  «       }|j,                   xs4 |j,                  xr& |j,                  jF                  jI                  ||«      }|rÖ|r|–— |jK                  ||jL                  «      E d{  –—†  n«|r©|j,                  j7                  «        |	j                  }|�|j                  ||«       |j,                   xs4 |j,                  xr& |j,                  jF                  jI                  ||«      }|r*|r|–— |jK                  ||jL                  «      E d{  –—†  |s|s�Œ‹|jO                  |«       |jP                  }�Œª y7 Œ×7 Œ-­w)zRender markdown to the console.rY   r°   N)Úheight)r   r!  Fr   r  r   r8   Ú	hardbreakr¥   Ú	softbreakr‡   Ú	link_openr  r€   zmarkdown.link_urlr  Ú
link_closezmarkdown.linkz (ú)r%  r7  ry   ))r²   ra   r¦   r  r   r!  rK  Úinlinesr   r«   rP  rá   rv   Únestingr9   rÁ   rf   r×   rØ   r  r   r_   r  r,  r  r.   ri   r.  re   r8   Úplainr  r™   rU   r4   r(  r?   ÚrenderrC   r;   r&   )r2   rB   rC   ra   r3   rQ  Úinline_style_tagsr&   Ú_new_line_segmentr,   r)  rv   ÚenteringÚexitingÚself_closingr  r  rÆ   Úlink_url_styleÚelement_classÚshould_renderr8   s                         r-   rD   zMarkdown.__rich_console__I  sˆ  è ø€ ð ×!Ñ! $§*¡*°fÐ!Ó=ˆØ—.‘.¨�.Ó-ˆÜ!ØØØØ"×4Ñ4Ø"×4Ñ4ô
ˆð —‘ˆØ ŸL™LÐØˆÜ#ŸL™L›NÐà×)Ñ)¨&Ó1ó c	0ˆEØŸ
™
ˆIØ—)‘)ˆCà—}‘}¨Ñ)ˆHØ—m‘m rÑ)ˆGØ Ÿ=™=¨AÑ-ˆLà˜FÒ"Ø—‘ §¡¨yÕ9Ø˜kÒ)Ø—‘  iÕ0Ø˜kÒ)Ø—‘  YÕ/Ø˜kÒ)Ü˜5Ÿ;™;Ÿ?™?¨6°2Ó6Ó7�Ø—?’?Ø!(×!2Ñ!2Ð3FÐPVÐ!2Ó!W�JØ¤%¨TÔ"2Ñ2�JØ×'Ñ'¨
Ö3à—M‘M×&Ñ&¤t§{¡{°4¸Ó'?Ö@Ø˜lÓ*Ø—?’?Ø×'Ñ'Ö)à%Ÿm™m×/Ñ/Ó1�GÜ% g¬tÔ4Ð4Ð4Ø!(×!2Ñ!2°?ÈFÐ!2Ó!S�JØ×'Ñ'¨
Ô3Ø—O‘O G§L¡L×$6Ñ$6¸	ÔBØ×'Ñ'Ô)Ø—O‘O D¨)Ô4Ø%,×%6Ñ%6Ø+°Vð &7ó &�Nð ×'Ñ'¨Ô7Ø—O‘O G§L¡L°)Ô<Ø×'Ñ'Ô)Ø—O‘O C¨Ö3àÐ(Ñ(Ø Ò(Ø Ò-áð ×'Ñ'¨)°C°5Ð(9Ö:Ùð ×'Ñ'Ö)ð ×'Ñ'¨)°C°5Ð(9Ô:Ø—}’}ØŸ™¨¯©°yÔAØ×'Ñ'Ö)ð !%§¡× 1Ñ 1°%·*±*Ó =Ò OÄ�Ø'×.Ñ.¨t°UÓ;�á™|Ø—M‘M×&Ñ& wÔ/Ø×$Ñ$ WÔ-áØ%Ÿm™m×/Ñ/Ó1�Gà(/¯©Ð$5ò %ØŸ™ò OØ#ŸM™M×-Ñ-×<Ñ<¸WÀgÓNð "ñ
 %Ù#Ø"3Ò3à#*§>¡>°'¸7¿?¹?Ó#K×KÑKÙ!Ø—M‘M×%Ñ%Ô'Ø Ÿ=™=�DØÐ'ØŸ™¨°Ô6ð $ŸM™MÐ)ò OØ"Ÿ=™=ò OØ#ŸM™M×-Ñ-×<Ñ<¸WÀgÓNð "ñ
 %Ù#Ø"3Ò3Ø#*§>¡>°'¸7¿?¹?Ó#K×KÐKá›lØ×$Ñ$ WÔ-Ø&×/Ñ/’HñGc	0ð` Løð Lús+   ‚Q'UÑ)UÑ*B+UÔUÔUÔ "UÕU)r/  NrY   TNN)rI  rf   rŠ   rf   r^   zOptional[JustifyMethod]ra   r1  r  rN   r   r0  r!  r0  rG   rK   )rQ  úIterable[Token]rG   rg  rr   )rO   rP   rQ   rV   rk   rt   r…   r–   r®   rÞ   rè   r  r´   rº   r¹   rË   rÓ   r™   rR   r[  ro   rP  rD   r(   r/   r-   r4  r4    ss  … ñð<Ø˜)ð<à˜ð<ð 	�ð<ð 	�ið	<ð
 	˜:ð<ð 	ˆnð<ð 	˜Kð<ð 	˜[ð<ð 	˜(ð<ð 	�ð<ð 	�lð<ð 	Ð&ð<ð 	Ð(ð<ð 	�?ð<ð 	Ð#ð<ð  	Ð#ð!<€HÐ8ó ò& ,€Gð
 $Ø+/Ø#)ØØ+/Ø+/ðAàðAð ðAð )ð	Að
 !ðAð ðAð )ðAð )ðAð 
óAó(ðu0Øðu0Ø)7ðu0à	ôu0r/   r4  Ú__main__z(Render Markdown to the console with Rich)ÚdescriptionÚpathÚPATHz%path to markdown file, or - for stdin)ÚmetavarÚhelpz-cz--force-colorÚforce_colorÚ
store_truezforce color for non-terminals)ÚdestÚactionr±   rm  z-tz--code-themerŠ   r/  zpygments code theme)rp  r±   rm  z-iz--inline-code-lexerr   z-yz--hyperlinksr  zenable hyperlinks)rp  rq  rm  z-wz--widthr£   z*width of output (default will auto-detect))rá   rp  r±   rm  z-jz	--justifyr^   zenable full text justifyz-pz--pageÚpagezuse pager to scroll output)r   ú-Úrtzutf-8)ÚencodingÚfullr\   )r^   rŠ   r  r   )ÚfileÚforce_terminalr£   T)rx  r£   Úrecord)bÚ
__future__r   ÚsysÚtypingr   r   r   r   r   r	   r
   Úmarkdown_itr   Úmarkdown_it.tokenr   Úversion_infor   Útyping_extensionsÚ
rich.tabler   r€   r   Ú_loopr   Ú_stackr   rB   r   r   r   r   Ú
containersr   Újupyterr   Úpanelr   Úruler   Úsegmentr   ra   r   r    r”   r!   r8   r"   r#   r%   rU   rX   rk   rt   r…   r–   r®   r´   r¹   rº   rË   rÓ   rÞ   rè   r  r  r  r4  rO   ÚargparseÚArgumentParserrL  Úadd_argumentrâ   Ú
parse_argsÚargsÚrich.consolerj  ÚstdinÚreadÚmarkdown_bodyÚopenÚmarkdown_filer^   rŠ   r  r   r+   rr  ÚioÚpydocÚStringIOÚfileiorn  r£   ÚprintÚpagerÚgetvaluer(   r/   r-   ú<module>r›     s¨  ðÝ "ã 
ß H× HÑ Hå "Ý #à×Ñ�vÒÞå*å å Ý Ý ß IÓ IÝ #Ý !Ý Ý Ý ß $Ý ß  ÷8ñ 8ôv�_ô ô�/ô ô �ô ô( ˆkô  ôF�ô ô2�ô ô8	 �_ô 	 ô �?ô  ôF˜ô ô�ô ô�oô ô'�ô 'ô>�/ô ôD)ˆ{ô )ôXˆ;ô ô%�ô %÷P-ñ -ô`w0ˆ|ô w0ðt ˆzÓÛÛà$ˆX×$Ñ$Ø>ô€Fð ×ÑØØØ4ð ô ð
 ×ÑØØØØØØ,ð ô ð ×ÑØØØØØ"ð ô ð ×ÑØØØ ØØ ð ô ð ×ÑØØØØØ ð ô ð ×ÑØØØØØØ9ð ô ð ×ÑØØØØØ'ð ô ð ×ÑØØØØØ)ð ô ð ×ÑÓ€Då$à‡y�y�CÒØŸ	™	Ÿ™Ó(‰á�$—)‘)˜T¨GÔ4ð 	1¸Ø)×.Ñ.Ó0ˆM÷	1ñ ØØŸ,š,‘¨FØ—?‘?Ø—?‘?Ø×0Ñ0ô€Hð ‡y‚yÛÛà�—‘“ˆÙØ¨×(8Ñ(8ÀÇ
Á
ô
ˆð 	�‰�hÔØˆ�‰�F—O‘OÓ%Õ&ñ Ø×+Ñ+°4·:±:Àdô
ˆð 	�‰�hÕð ÷L	1ð 	1ús   ÊNÎN