+
    TBi<                        R t ^ RIt^ RIHtHt ^ RIHtHtHtH	t	 ^ RI
HtHtHtHtHtHtHtHtHtHt ^ RIHt . ROt ! R R]4      t ! R R	]4      t ! R R]4      t ! R R]4      t ! R R
]4      t ! R R]4      tR# )z
pygments.lexers.textfmts
~~~~~~~~~~~~~~~~~~~~~~~~

Lexers for various text formats.

:copyright: Copyright 2006-2025 by the Pygments team, see AUTHORS.
:license: BSD, see LICENSE for details.
N)guess_lexerget_lexer_by_name)
RegexLexerbygroupsdefaultinclude)
TextCommentOperatorKeywordNameStringNumberGenericLiteralPunctuation)ClassNotFoundIrcLogsLexerTodotxtLexer	HttpLexerGettextLexerNotmuchLexerKernelLogLexerc                      ] tR t^tRtRtR.tR.tR.tRt	Rt
]P                  ]P                  ,          tRtR	R
]3R],           R,           ]! ]P$                  ]P(                  4      3R],           R,           ]! ]P$                  ]P(                  4      R3R],           R,           ]! ]P$                  ]]P.                  4      3R],           R,           ]! ]P$                  ]]]4      3R]3.RR]P4                  3R]R3./tRtR# )r   z<
Lexer for IRC logs in *irssi*, *xchat* or *weechat* style.
zIRC logsircz*.weechatlogztext/x-irclogz1https://en.wikipedia.org/wiki/Internet_Relay_Chat af  
        (
          # irssi / xchat and others
          (?: \[|\()?                  # Opening bracket or paren for the timestamp
            (?:                        # Timestamp
                (?: (?:\d{1,4} [-/])*  # Date as - or /-separated groups of digits
                    (?:\d{1,4})
                 [T ])?                # Date/time separator: T or space
                (?: \d?\d [:.])*       # Time as :/.-separated groups of 1 or 2 digits
                    (?: \d?\d)
            )
          (?: \]|\))?\s+               # Closing bracket or paren for the timestamp
        |
          # weechat
          \d{4}\s\w{3}\s\d{2}\s        # Date
          \d{2}:\d{2}:\d{2}\s+         # Time + Whitespace
        |
          # xchat
          \w{3}\s\d{2}\s               # Date
          \d{2}:\d{2}:\d{2}\s+         # Time + Whitespace
        )?
    rootz^\*\*\*\*(.*)\*\*\*\*$^z(\s*<[^>]*>\s*)$z/
                (\s*<.*?>\s*)          # Nick msgzo
                (\s*[*]\s+)            # Star
                (\S+\s+.*?\n)          # Nick + rest of message z
                (\s*(?:\*{3}|<?-[!@=P]?->?)\s*)  # Star(s) or symbols
                (\S+\s+)                     # Nick + Space
                (.*?\n)                         # Rest of message z^.*?\nz
\S+:(?!//)z.*\n#pop N)__name__
__module____qualname____firstlineno____doc__namealiases	filenames	mimetypesurlversion_addedreVERBOSE	MULTILINEflags	timestampr	   r   Preprocr   Tagr   r   Insertedr   r   	Attributetokens__static_attributes__r        =/usr/lib/python3.14/site-packages/pygments/lexers/textfmts.pyr   r      s8    DgG I !I
=CMJJ%EI. 	&09_22HW__dhh4WX9_  2 2gootxx0%9 9_  D D goow0@0@AC
 9_  F F goow@	B
 )
, 	DNN+dF#
/Fr7   c                   D   ] tR t^XtRtRtRR.tRR.t. ROtRt	Rt
R	R
]P                  3R]P                  3R]P                  3R]! ]]P&                  ]4      3R]3R]! ]P(                  ]]4      3R]! ]P(                  ]P.                  ]P(                  ]]4      3./tRtR# )r   z"
Lexer for Gettext catalog files.
zGettext Catalogpotpoz*.potz*.poz$https://www.gnu.org/software/gettextz0.9r   z	^#,\s.*?$z	^#:\s.*?$z^(#|#\.\s|#\|\s|#~\s|#\s).*$z^(")([A-Za-z-]+:)(.*")$z^".*"$z0^(msgid|msgid_plural|msgstr|msgctxt)(\s+)(".*")$z^(msgstr\[)(\d)(\])(\s+)(".*")$r    N)zapplication/x-gettextztext/x-gettextztext/gettext)r!   r"   r#   r$   r%   r&   r'   r(   r)   r*   r+   r   TypeDeclarationr	   Singler   r   r   PropertyVariabler   r   Integerr5   r6   r    r7   r8   r   r   X   s     DdmG&!IKI
0CM 	7<<(7../,gnn='fdmmV46@dmmT624/dmmV^^T]]D&QS
Fr7   c                   B  a  ] tR t^tt o RtRtR.tRtRt]	P                  tRR ltR tR	 tR
 tRR]! ]P$                  ]]P(                  ]]P,                  ]]]4      R3R]! ]P,                  ]]]]]]P2                  ]4      R3.RR]3R]3R]R3.RR]3./tR tRtV tR# )r   z
Lexer for HTTP sessions.
HTTPhttpzhttps://httpwg.org/specsz1.5r   c                >    RV n         \        P                  ! WV4      # )zReset the content-type state.N)content_typer   get_tokens_unprocessed)selftextstacks   &&&r8   rG    HttpLexer.get_tokens_unprocessed   s     00UCCr7   c              #    "   VP                  ^4      P                  4       R8X  dO   VP                  ^4      P                  4       pRV9   d#   VRVP                  R4       P                  4       pW n        VP                  ^4      \        P                  VP                  ^4      3x  VP                  ^4      \        VP                  ^4      3x  VP                  ^4      \        VP                  ^4      3x  VP                  ^4      \        VP                  ^4      3x  VP                  ^4      \        VP                  ^4      3x  VP                  ^4      \        VP                  ^4      3x  R# 5i)   zcontent-type;N)grouplowerstripfindrF   startr   r4   r   r
   r   )rH   matchrF   s   && r8   header_callbackHttpLexer.header_callback   s    ;;q>!^3 ;;q>//1Ll"+,C\->->s-CDJJL ,kk!ndnnekk!n<<kk!ndEKKN22kk!nhA66kk!ndEKKN22kk!ngu{{1~55kk!ndEKKN22s   E5E7c              #    "   VP                  ^4      \        VP                  ^4      3x  VP                  ^4      \        VP                  ^4      3x  VP                  ^4      \        VP                  ^4      3x  R# 5i)rM   N)rS   r   rO   r   )rH   rT   s   &&r8   continuous_header_callback$HttpLexer.continuous_header_callback   s\     kk!ndEKKN22kk!ngu{{1~55kk!ndEKKN22s   A>B c              #    "   \        V R R4      pVP                  4       pVP                  4       pV'       dt   ^ RIHp V.pRV9   d*   \
        P                  ! RRV4      pVP                  V4       V F4  p V! V4      p	V	P                  V4       F  w  rpWJ,           W3x  K  	   R# 	  V\        V3x  R#   \         d     KS  i ; i5i)rF   N)get_lexer_for_mimetype+z^(.*)/.*\+(.*)$z\1/\2)getattrrO   rS   pygments.lexersr[   r,   subappendrG   r   r   )rH   rT   rF   contentoffsetr[   possible_lexer_mimetypesgeneral_typeilexeridxtokenvalues   &&           r8   content_callbackHttpLexer.content_callback   s     t^T:++->(4~$l"  "vv&8(&2 4(//=-215E .3-I-I'-R)E$lE88 .S . dG## % s*   A4C
7B8?9C
8CC
CC
zL([a-zA-Z][-_a-zA-Z]+)( +)([^ ]+)( +)(HTTP)(/)(1\.[01]|2(?:\.0)?|3)(\r?\n|\Z)headerszF(HTTP)(/)(1\.[01]|2(?:\.0)?|3)( +)(\d{3})(?:( +)([^\r\n]*))?(\r?\n|\Z)z(([^\s:]+)( *)(:)( *)([^\r\n]*)(\r?\n|\Z)z([\t ]+)([^\r\n]+)(\r?\n|\Z)z\r?\nra   z.+c                x   a  \         ;QJ d    V 3R  lR 4       F  '       g   K   R# 	  R# ! V 3R  lR 4       4      # )c              3   V   <"   T F  p\         P                  ! VS4      R Jx  K   	  R # 5i)N)r,   search).0patternrI   s   & r8   	<genexpr>)HttpLexer.analyse_text.<locals>.<genexpr>   s,      
 IIgt$D0s   &)TF)zM^([a-zA-Z][-_a-zA-Z]+)( +)([^ ]+)( +)(HTTP)(/)(1\.[01]|2(?:\.0)?|3)(\r?\n|\Z)zG^(HTTP)(/)(1\.[01]|2(?:\.0)?|3)( +)(\d{3})(?:( +)([^\r\n]*))?(\r?\n|\Z))anyrI   s   fr8   analyse_textHttpLexer.analyse_text   sB    s 

ss 	
s 	
s 

 
 	
r7   )rF   N))r   )r!   r"   r#   r$   r%   r&   r'   r*   r+   r,   DOTALLr/   rG   rU   rX   rj   r   r   Functionr   	Namespacer   Reservedr
   r   	Exceptionr5   rv   r6   __classdictcell____classdict__s   @r8   r   r   t   s      DhG
$CMIIED
33
$4 	9dmmT4>>4&&&$@	
 Wg&&&$nnd,

 	8/J,.HItY'

 	$%
#F,
 
r7   c                      ] tR t^tRtRtRtR.tRtRR.t	R.t
]t]t]P                   t]P$                  t]P(                  t]tR	tR
tRtRtR],           R,           t]R,           ],           R,           tR],           R,           ],           R,           tR]]! ]]]]4      R3]]! ]]4      R3]]! ]]]4      R3]]R3]]R3]]R3]]R3R]R3.RR]R3]]3]]3R]3R]3.RR]R3]]3]]3R]3R]3./t Rt!R# )r   z&
Lexer for Todo.txt todo list format.
Todotxtzhttp://todotxt.com/todotxtz2.0ztodo.txtz	*.todotxtztext/x-todoz\d{4,}-\d{2}-\d{2}z	\([A-Z]\)z\+\S+z@\S+z(x )()z( )((z)( )(r   complete
incompletez\S+z\s*\nr   z\s+r    N)"r!   r"   r#   r$   r%   r&   r*   r'   r+   r(   r)   r
   CompleteTaskTextr   IncompleteTaskTextr   HeadingPriority
SubheadingDateErrorProjectr   Context
date_regexpriority_regexproject_regexcontext_regexcomplete_one_date_regexcomplete_two_date_regexpriority_date_regexr   r5   r6   r    r7   r8   r   r      s    D
CkGM [)II   HD mmGG 'J!NMM '3d:6@) *,0 1/(:ZG$N 	 %h/?/?'G %h/?&F
 !(85G"N X|4|,G\2G\2'6/
6 	'0G$G$%&%&

 	)62G$G$'('(

U5Fr7   c                   b  a  ] tR tRt o RtRtRtR.tRtR t	RR	]
R(3.RR]! ]P                  ]4      3R]! ]P                  ]P                   4      3R]! ]P                  ]4      3]! R4      .R
R]
R3R]
R3R]
R3.RR]
R3R]! ]P                  ]4      3R]! ]P&                  ]]P*                  4      3.RR]
R3R]
R)3R]
R3.RR]! ]P                  ]P                   4      3R]! ]]P                  ]4      3R]! ]]P                  ]4      3]! R4      .RR ]
R3R!]
R*3R"]3R#]	3./tR$ tR% tR&tV tR'# )+r   i4  z
For Notmuch email text format.

Additional options accepted:

`body_lexer`
    If given, highlight the contents of the message body with the specified
    lexer, else guess it according to the body content (default: ``None``).
Notmuchzhttps://notmuchmail.org/notmuchz2.5c              #  $  "   VP                  ^4      p V P                  '       d   \        V P                  4      pM\        VP	                  4       4      p VP                  V4       Rj  xL
  R#   \
         d    \        R4      p L3i ; i L"5i)rM   rI   N)rO   
body_lexerr   r   rQ   r   rG   )rH   rT   coderf   s   &&  r8   _highlight_codeNotmuchLexer._highlight_codeD  st     {{1~	.)$//:#DJJL1 //555  	.%f-E	. 	6s>   B'A2 BA2 B+B,B2BB
BBr   z\fmessage\{\s*messagemessage-attrz(\s*id:\s*)(\S+)z&(\s*(?:depth|match|excluded):\s*)(\d+)z(\s*filename:\s*)(.+\n)r   z\fmessage\}\nz\fheader\{\nheaderz
\fbody\{\nbodyz\fheader\}\nz'((?:Subject|From|To|Cc|Date):\s*)(.*\n)z(.*)(\s*\(.*\))(\s*\(.*\)\n)z
\fpart\{\npartz\f(part|attachment)\{\s*	part-attrz
\fbody\}\nz(ID:\s*)(\d+)z*(,\s*)((?:Filename|Content-id):\s*)([^,]+)z(,\s*)(Content-type:\s*)(.+\n)z\f(?:part|attachment)\}\nz\f(?:part|attachment)\{\s*z^Non-text part: .*\nz&(?s)(.*?(?=\f(?:part|attachment)\}\n))c                8    V P                  R 4      '       d   R# R# )z	message{g      ?g        )
startswithru   s   &r8   rv   NotmuchLexer.analyse_text~  s    ool33s<<r7   c                b    VP                  R R4      V n        \        P                  ! V 3/ VB  R# )r   N)getr   r   __init__)rH   optionss   &,r8   r   NotmuchLexer.__init__  s'    !++lD9D,G,r7   )r   N)r   r   )r   r   )z#pushr   )r!   r"   r#   r$   r%   r&   r*   r'   r+   r   r   r   r   r4   r   r   rA   r   r   Strongr   r2   r   r	   r5   rv   r   r6   r}   r~   s   @r8   r   r   4  s     D
$CkGM6 	)DE
 	 (4>>6"BC6dnnfnn57'dnnf-/FO
 	w/gx0GV,

 	gv.7dnnf-/,gnngtxx8:	
 	GV,('3HIGV,

 	xGH:k4>>6:<.k4>>6:<FO
 	)7F;*G5KL$g.6H	
K+FZ=- -r7   c                   @   ] tR tRtRtRtRR.tRR.tRtR	t	R
R]
R3R]
R3R]
R3R]
R3R]
R3R]
R3R]
R3.RR]
R3R]
R3]! R4      .RR]3R]3R]
R3.R]! R4      R]R3.R]! R4      R]
R3.R]! R4      R]P"                  R3.R]! R4      R]P$                  R3./tRtR # )!r   i  z(
For Linux Kernel log ("dmesg") output.
z
Kernel logkmsgdmesgz*.kmsgz*.dmesgz#https://fr.wikipedia.org/wiki/Dmesgz2.6r   z^[^:]+:debug : (?=\[)debugz^[^:]+:info  : (?=\[)infoz^[^:]+:warn  : (?=\[)warnz^[^:]+:notice: (?=\[)z^[^:]+:err   : (?=\[)errorz^[^:]+:crit  : (?=\[)z^(?=\[)unknownz(^(?=.+(warning|notice|audit|deprecated))z ^(?=.+(error|critical|fail|Bug))basez\[[0-9. ]+\] z(?<=\] ).+?:z\nr   z.+\nr    N)r!   r"   r#   r$   r%   r&   r'   r(   r*   r+   r   r   r   r   r   r	   r   r   r   r5   r6   r    r7   r8   r   r     sA    DwG9%I
/CM 	%tW5%tV4%tV4%tV4%tW5%tW5y)
 	8$G0$@FO

 	v&g&D&!

 	FOgv&
 	FOdF#
 	FOgnnf-
 	FOgmmV,
A$Fr7   )r   r   r   r   r   r   )r%   r,   r^   r   r   pygments.lexerr   r   r   r   pygments.tokenr   r	   r
   r   r   r   r   r   r   r   pygments.utilr   __all__r   r   r   r   r   r   r    r7   r8   <module>r      s    
 : A A* * * '->: >B: 8Y

 Y
xa: aHO-: O-d.Z .r7   