+
    TBi                     |   R t ^ RIt^ RIHtHtHtHt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HtHt ^ RIHt ^ RIHt . R3Ot ! R R]4      t ! R R]4      t ! R R]4      t ! R R	]4      t  ! R  R
]4      t!R! 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( R]4      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/ R]4      t0 ! R0 R]4      t1 ! R1 R]4      t2 ! R2 R]4      t3R# )4z
pygments.lexers.configs
~~~~~~~~~~~~~~~~~~~~~~~

Lexers for configuration file formats.

:copyright: Copyright 2006-2025 by the Pygments team, see AUTHORS.
:license: BSD, see LICENSE for details.
N)ExtendedRegexLexer
RegexLexerdefaultwordsbygroupsincludeusingline_re)TextCommentOperatorKeywordNameStringNumberPunctuation
WhitespaceLiteralErrorGeneric)	BashLexer)	JsonLexerIniLexerSystemdLexerDesktopLexerRegeditLexerPropertiesLexerKconfigLexerCfengine3LexerApacheConfLexerSquidConfLexerNginxConfLexerLighttpdConfLexerDockerLexerTerraformLexerTermcapLexerTerminfoLexerPkgConfigLexerPacmanConfLexerAugeasLexer	TOMLLexerNestedTextLexerSingularityLexerUnixConfigLexerc                     a  ] tR t^t o RtRt. ROt. ROtRR.tRt	Rt
RR]3R	]P                  3R
]! ]]4      3R]! ]P"                  ]]]]4      R3R]! ]P"                  ]]]]]]4      R3R]! ]P"                  ]]]]4      3R]P"                  3.RR]! ]]]4      R3R	]P                  3R]R3.RR]3R]! ]]]]4      3R]R3./tR tRtV tR# )r   z-
Lexer for configuration files in INI style.
INIz
text/x-iniztext/infz&https://en.wikipedia.org/wiki/INI_file root\s+[;#].*z(\[.*?\])([ \t]*)$z!(.*?)([ \t]*)([=:])([ \t]*)(["'])quoted_valuez.(.*?)([ \t]*)([=:])([ \t]*)([^;#\n]*)(\\)(\s+)valuez6(.*?)([ \t]*)([=:])([ \t]*)([^ ;#\n]*(?: +[^ ;#\n]+)*)z(.+?)$z([^"'\n]*)(["'])(\s*)#pop$z(\s*)(.*)(\\)([ \t]*)z.*$c                    V P                  R 4      pV^8  d   R# V ^ ,          R8X  d   W^,
          ,          R8X  d   R# R# )
F[]g?)find)textnposs   & </usr/lib/python3.14/site-packages/pygments/lexers/configs.pyanalyse_textIniLexer.analyse_textI   s7    yy!87c>d6lc1     N)inicfgdosini)z*.iniz*.cfgz*.infz.editorconfig)__name__
__module____qualname____firstlineno____doc__namealiases	filenames	mimetypesurlversion_addedr   r   Singler   r   r   	Attributer   r   r
   tokensr@   __static_attributes____classdictcell____classdict__s   @r?   r   r      sN     D&GI z*I
2CM 	Z '"HWj$AB5dnnj(JO ?dnnj(JJ( Gdnnj(JOQ '
  	)ffj16;'66"	
 	Z %j&$
;=VV$	
/F> rB   c                      a  ] tR t^Rt o RtRtRtR.tR.tR.t	Rt
RR	]3R
]! ]P                  ]4      3R]! ]]4      3R]! ]P"                  ]P$                  ]]]]]4      3./tR tRtV tR# )r   z
Lexer for .desktop files.
zDesktop filezXhttps://specifications.freedesktop.org/desktop-entry-spec/desktop-entry-spec-latest.htmldesktopz	*.desktopzapplication/x-desktop2.16r1   	^[ \t]*\nz
^(#.*)(\n)(\[[^\]\n]+\])(\n)zG([-A-Za-z0-9]+)(\[[^\] \t=]+\])?([ \t]*)(=)([ \t]*)([^\n]*)([ \t\n]*\n)c                    V P                  R 4      '       d   R# \        P                  ! RV R,          \        P                  4      e   R# R# )z[Desktop Entry]      ?z^\[Desktop Entry\][ \t]*$Ni  N?        
startswithresearch	MULTILINEr=   s   &r?   r@   DesktopLexer.analyse_texth   s7    ??,--9914:r||LXrB   rC   N)rG   rH   rI   rJ   rK   rL   rP   rM   rN   rO   rQ   r   r   r   rR   r   r   rS   	Namespacer   r   rT   r@   rU   rV   rW   s   @r?   r   r   R   s      D
dCkGI()IM 	:&HW^^Z@A"HWj$ABWdnndnnj(JX^`jkm	
F rB   c                   N  a  ] tR t^pt o RtRtRtR.t. ROtRt	RR]
3R]! ]P                  ]
4      3R	]! ]]
4      3R
]! ]P                   ]
]]
]]]
4      R3R]! ]P                   ]
]]
]]
4      3.RR]! ]P                  ]
4      3R]! ]
]]]
4      3R]! ]
]]
4      R3./tR tRtV tR# )r   z
Lexer for systemd unit files.
SystemdzDhttps://www.freedesktop.org/software/systemd/man/systemd.syntax.htmlsystemdr[   r1   r\   z^([;#].*)(\n)r]   z*([^=]+)([ \t]*)(=)([ \t]*)([^\n]*)(\\)(\n)r5   z&([^=]+)([ \t]*)(=)([ \t]*)([^\n]*)(\n)z([ \t]*)([^\n]*)(\\)(\n)z([ \t]*)([^\n]*)(\n)r6   c                    V P                  R 4      '       d   R# \        P                  ! RV R,          \        P                  4      e   R# R# )z[Unit]r_   z^\[Unit\][ \t]*$r`   ra   rb   rc   rh   s   &r?   r@   SystemdLexer.analyse_text   s6    ??8$$99($t*bllCOrB   rC   N)z	*.servicez*.socketz*.devicez*.mountz*.automountz*.swapz*.targetz*.pathz*.timerz*.slicez*.scope)rG   rH   rI   rJ   rK   rL   rP   rM   rN   rQ   r   r   r   rR   r   r   rS   r   r   r
   rT   r@   rU   rV   rW   s   @r?   r   r   p   s     D
PCkGI M 	:&x
CD"HWj$AB:dnnj(JJ( 7dnnj(JPZ[]

 	x
CD(j&$
;=$j&*5v?
F, rB   c                   L  a  ] tR t^t o RtRtRtR.tR.tR.t	Rt
RR	]3R
]3R]P                  3R]! ]]]P&                  ]4      3R]! ]P(                  ]]]4      R3R]! ]P(                  ]]]4      R3.RR]R3R]! ]P*                  ]]4      R3R]R3]! R4      ./tR tRtV tR# )r   z7
Lexer for Windows Registry files produced by regedit.
regz8http://en.wikipedia.org/wiki/Windows_Registry#.REG_filesregistryz*.regztext/x-windows-registry1.6r1   zWindows Registry Editor.*r2   r3   z(\[)(-?)(HKEY_[A-Z_]+)(.*?\])$z)("(?:\\"|\\\\|[^"])+")([ \t]*)(=)([ \t]*)r5   z(.*?)([ \t]*)(=)([ \t]*)-r6   z1(dword|hex(?:\([0-9a-fA-F]\))?)(:)([0-9a-fA-F,]+).+c                $    V P                  R 4      # )zWindows Registry Editor)rd   rh   s   &r?   r@   RegeditLexer.analyse_text   s    899rB   rC   N)rG   rH   rI   rJ   rK   rL   rP   rM   rN   rO   rQ   r
   r   r   rR   r   r   r   r   BuiltinrS   Variabler   r   r   r   rT   r@   rU   rV   rW   s   @r?   r   r      s     D
DClG	I*+IM 	)40Z '.gxw?A :dnnj(JG )dnnj(JG
 	8V$Admm[&96C FF#FO
!F4: :rB   c                   0   ] tR t^tRtRtRR.tR.tR.tRt	Rt
R	R
]P                  3R]3R]3]! R4      .RR]P                   3]! R4      R]! ]]]4      R3R]R3R]R3.RR]3]! R4      R]R3.RR]! ]P*                  ]4      3R]P*                  3./tRtR# )r   z
Lexer for configuration files in Java's properties format.

Note: trailing whitespace counts as part of the value as per spec

Properties
propertiesjpropertiesz*.propertiesztext/x-java-propertiesz)https://en.wikipedia.org/wiki/.propertiesz1.4r1   z[!#].*|/{2}.*\nz	^[^\S\n]+keyz
[^\\:=\s]+escapesz([^\S\n]*)([:=])([^\S\n]*)r6   r5   [^\S\n]+z[^\\\n]+z(\\\n)([^\S\n]*)z\\(.|\n)rC   N)r6   r5   )rG   rH   rI   rJ   rK   rL   rM   rN   rO   rP   rQ   r   rR   r   r   r   rS   r   r   r   r   EscaperT   rU   rC   rB   r?   r   r      s    D]+G I)*I
5CM 	w~~.J:&EN	
 	DNN+I +j(J7  *&78J'
 	&!IJ'
 	 (6==*"EF&--(	
C'FrB   c                 r    ^pV^8X  d   RpMRV^,
          ,          pV ^8X  d   RpMRV  R2pRV RV RV R	2# )
   +z{1,%d}r0   {}z(?:\t| z\t| {z})z.*\nrC   )level	tab_widthspace_repeatlevel_repeats   &   r?   
_rx_indentr      sY     I A~9q=1zE7"~l^6)C~TJJrB   c                      a  ] tR tRt o RtRt. R"OtRt. R#OtR.t	Rt
^ tR tR tR	R
]3R]P                   3]! R$RR7      ]3R]R3R]P(                  3R]3R]3R]P0                  3R]P                   3R]P4                  3R]3.RR]3]! ^4      ]! ^4      ]! ^4      ]! ^4      ]! ^4      ]! ^4      ]! ^4      ]! R4      .	R]! ^4      R]! ^4      R]! ^4      R]! ^4      R]! ^4      R]! ^4      R]! ^4      /	tR tV tR!# )%r   i  z 
For Linux-style Kconfig files.
Kconfigrs   ztext/x-kconfigzChttps://www.kernel.org/doc/html/latest/kbuild/kconfig-language.htmlc                @    \        V 4      \        P                  R V  23# )indent)r   r   Docr   s   &r?   call_indentKconfigLexer.call_indent#  s    5!6::w/?@@rB   c                \    \        V 4      \        P                  3R \        3\	        R4      .# )\s*\n#pop:2)r   r   r   r
   r   r   s   &r?   	do_indentKconfigLexer.do_indent'  s/     

+tH
 	
rB   r1   r2   #.*?\n\bsuffixz(---help---|help)[\t ]*\nhelpz;(bool|tristate|string|hex|int|defconfig_list|modules|env)\bz[!=&|]z[()][0-9]+z'(''|[^'])*'z"(""|[^"])*"\S+r   r6   indent7indent6indent5indent4indent3indent2indent1rC   N)kconfig
menuconfigzlinux-configzkernel-config)zKconfig*z*Config.in*zexternal.in*zstandard-modules.in)mainmenuconfigr   choice	endchoicecommentmenuendmenuz
visible ififendifsourcepromptselectz
depends onr   rangeoption) rG   rH   rI   rJ   rK   rL   rM   rQ   rN   rO   rP   flagsr   r   r   r   rR   r   r   r   rx   r   r   r   Integerr   Doubler
   r   rT   rU   rV   rW   s   @r?   r   r     sf     DHGM(I!"I
OC EA
 	Z ' # ,1	2
  *7F;K\\!k"'fmm,fmm,TN#
* 	t NNNNNNNFO
  	9Q<9Q<9Q<9Q<9Q<9Q<9Q<Y-FrB   c                   
   ] tR tRtRtRtRtRR.tR.t. t	Rt
R	R
]3R]! ]]]]]4      3R]! ]]]]]P                   ]4      R3R]! ]]]]]P                   4      3R]! ]]P$                  ]]]P&                  ]]]4      3R]! ]P*                  ]]]4      3R]R3R]! ]P                   ]4      3R]! ]P0                  ]4      3R]! ]P2                  ]4      3R]P$                  3R]3R]3R]3R]P6                  3R]P8                  3R]P                   3R]3.RR]P:                  R3R ]P<                  3R]R!3R"]3R#]3.RR]P:                  R$3R%]P:                  R!3R&]P:                  3.RR']R!3R(]3R]P$                  3R]3./tR)t R*# )+r   i`  z#
Lexer for CFEngine3 policy files.
	CFEngine3zhttp://cfengine.org	cfengine3cf3z*.cfz1.5r1   r   z(body)(\s+)(\S+)(\s+)(control)z%(body|bundle)(\s+)(\S+)(\s+)(\w+)(\()arglistz!(body|bundle)(\s+)(\S+)(\s+)(\w+)z7(")([^"]+)(")(\s+)(string|slist|int|real)(\s*)(=>)(\s*)z(\S+)(\s*)(=>)(\s*)"stringz	(\w+)(\()z([\w.!&|()]+)(::)z(\w+)(:)z@[{(][^)}]+[})]z[(){},;]z=>z->z\d+\.\d+\d+\w+r2   z\$[{(]interpol\\.r6   r~   .#pushz[})]z	[^${()}]+z\),rC   N)!rG   rH   rI   rJ   rK   rL   rP   rM   rN   rO   rQ   r   r   r   r   r   Functionr   ry   Typer   Reservedr
   r   ClassDeclarationr   Floatr   Interpolr   rT   rU   rC   rB   r?   r   r   `  s    D
CE"GIIM 	 .gz7JHJ5gz7J{[ 2gz7JNPGk4==+ ',,
HjRS $g&&
HdCE68$8DMM;?@!8DJJ#DE(7#6#6DE/+&HH&,,'V^^$T]]#Z 3
6 	4V]]#66"FO6N
 	1foov.6??+

 	K(;T]]#Z 	
Q.FrB   c                      ] tR tRtRtRt. ROt. ROtR.tRt	Rt
]P                  ]P                  ,          tRR]3R	]3R
]! ]P&                  ]]]P&                  4      3R]! ]P&                  ]P&                  4      3R]P*                  R3R]3.RR]3R]R3R]3R]3R]3R]3R]P0                  3R]3R]P4                  3R]3.
/tRtR# )r   i  zH
Lexer for configuration files following the Apache config file
format.

ApacheConfztext/x-apacheconfz6https://httpd.apache.org/docs/current/configuring.htmlz0.6r1   r2   z#(.*\\\n)+.*$|(#.*?)$z"(<[^\s>/][^\s>]*)(?:(\s+)(.*))?(>)z(</[^\s>]+)(>)z[a-z]\w*r5   z\.+z\\\nz\n+r6   z\\r   \d+\.\d+\.\d+\.\d+(?:/\d+)?r   z/([*a-z0-9][*\w./-]+)z(on|off|none|any|all|double|email|dns|min|minimal|os|productonly|full|emerg|alert|crit|error|warn|notice|info|debug|registry|script|inetd|standalone|user|group)\bz"([^"\\]*(?:\\(.|\n)[^"\\]*)*)"z	[^\s"\\]+rC   N)
apacheconfaconfapache)z	.htaccesszapache.confzapache2.conf)rG   rH   rI   rJ   rK   rL   rM   rN   rO   rP   rQ   re   rg   
IGNORECASEr   r   r   r   r   Tagr   rx   r
   r   Otherr   r   rT   rU   rC   rB   r?   r   r     s   
 D/G<I$%I
BCMLL2==(E 	Z %w/2dhh
FDHH=?dhh)+$,,0TN	
 	dOZ(DM*%+V4V%v||4  '( 0?4 
FrB   c                      ] tR tRtRtRtRt. R#OtR.tR.t	Rt
]P                  tR$tR%tR&tR'tR(tR)tRtR	] R
] R2tRtR	] R] R2tR	] R] R2t] R] R2tRR]3R]R3]! ]RRR7      ]3]! ]RRR7      ]P>                  3]! ]RRR7      ] 3]! ]RRR7      ] 3]! ]RRR7      ] 3]! ]RRR7      ]3]]!PD                  3R]!3R]#3.RR] PH                  R3R ]R3]%! R4      ./t&R!t'R"# )*r    i  z&
Lexer for squid configuration files.
	SquidConfzhttp://www.squid-cache.org/
squid.confztext/x-squidconfz0.9z(\d+|0x[0-9a-f]+)(z(\.z){3})z([0-9a-f]{0,4})z(:z){1,7})|)z(/(z|\d+))?r1   r2   #r   r   prefixr   zstats/zlog/=z(?:\b\d+\b(?:-\b\d+|%)?)r   z	\s*TAG:.*r6   ru   rC   N)	squidconfr   squid)
access_logaclalways_directannounce_hostannounce_periodannounce_portannounce_toanonymize_headersappend_domainas_whois_serverauth_param_basicauthenticate_childrenauthenticate_programauthenticate_ttlbroken_postsbuffered_logscache_access_logcache_announce	cache_dircache_dns_programcache_effective_groupcache_effective_user
cache_hostcache_host_aclcache_host_domain	cache_log	cache_memcache_mem_highcache_mem_low	cache_mgrcachemgr_passwd
cache_peercache_peer_accesscache_replacement_policycache_stoplistcache_stoplist_patterncache_store_log
cache_swapcache_swap_highcache_swap_logcache_swap_low	client_dbclient_lifetimeclient_netmaskconnect_timeoutcoredump_dirdead_peer_timeoutdebug_optionsdelay_accessdelay_classdelay_initial_bucket_leveldelay_parametersdelay_pools	deny_infodns_childrendns_defnamesdns_nameserversdns_testnamesemulate_httpd_logerr_html_textfake_user_agentfirewall_ipforwarded_forforward_snmpd_portfqdncache_sizeftpget_optionsftpget_programftp_list_widthftp_passiveftp_userhalf_closed_clientsheader_accessheader_replacehierarchy_stoplisthigh_response_time_warninghigh_page_fault_warning
hosts_file	htcp_porthttp_accesshttp_anonymizerhttpd_accelhttpd_accel_hosthttpd_accel_porthttpd_accel_uses_host_headerhttpd_accel_with_proxy	http_porthttp_reply_access
icp_accessicp_hit_staleicp_porticp_query_timeoutident_lookupident_lookup_accessident_timeoutincoming_http_averageincoming_icp_averageinside_firewallipcache_highipcache_lowipcache_sizelocal_domainlocal_iplogfile_rotatelog_fqdnlog_icp_querieslog_mime_hdrsmaximum_object_sizemaximum_single_addr_triesmcast_groupsmcast_icp_query_timeoutmcast_miss_addrmcast_miss_encode_keymcast_miss_portmemory_poolsmemory_pools_limitmemory_replacement_policy
mime_tablemin_http_poll_cntmin_icp_poll_cntminimum_direct_hopsminimum_object_sizeminimum_retry_timeoutmiss_accessnegative_dns_ttlnegative_ttlneighbor_timeoutneighbor_type_domain
netdb_high	netdb_lownetdb_ping_periodnetdb_ping_ratenever_directno_cachepassthrough_proxypconn_timeoutpid_filenamepinger_programpositive_dns_ttlprefer_direct
proxy_authproxy_auth_realm
query_icmpquick_abortquick_abort_maxquick_abort_minquick_abort_pctrange_offset_limitread_timeoutredirect_childrenredirect_programredirect_rewrites_host_headerreference_agerefresh_patternreload_into_imsrequest_body_max_sizerequest_sizerequest_timeoutshutdown_lifetimesingle_parent_bypasssiteselect_timeoutsnmp_accesssnmp_incoming_address	snmp_portsource_ping	ssl_proxystore_avg_object_sizestore_objects_per_bucketstrip_query_termsswap_level1_dirsswap_level2_dirstcp_incoming_addresstcp_outgoing_addresstcp_recv_bufsizetest_reachabilityudp_hit_objudp_hit_obj_sizeudp_incoming_addressudp_outgoing_addressunique_hostnameunlinkd_programuri_whitespaceuseragent_logvisible_hostname
wais_relaywais_relay_hostwais_relay_port)z
proxy-onlyweightttlzno-queryr   zround-robinzmulticast-responderonoffalldenyallowviaparentz	no-digestheaplrurealmchildrenq1q2credentialsttlnonedisableoffline_togglediskd)shutdowninfo	parameterserver_listclient_listr   )objects
vm_objectsutilizationipcache	fqdncachedns
redirectorioreply_headersfiledescriptorsnetdb)statusenabler  clear)	url_regexurlpath_regexreferer_regexportprotoreq_mime_typerep_mime_typemethodbrowserusersrcdsttime	dstdomainidentsnmp_community)(rG   rH   rI   rJ   rK   rL   rP   rM   rN   rO   rQ   re   r   r   keywordsoptsactionsactions_statsactions_logacls
ipv4_groupipv4
ipv6_groupipv6bare_ipipr   r   r   r   r   Constantr   r   r   r
   r   r   rT   rU   rC   rB   r?   r    r      s    D
'C2GI#$IMMME9HvDG
M
 ;KD &J
|3zl'2D#J
|2j\3D4&$q!G IS		)B 	Z 7I&8E%8'B4e4dmmD757@=5A6J;wt<fE4e4g>(&1TN
 	6==&1GV$FO
FrB   c                      ] tR tRtRtRtRtR.tR.tR.t	Rt
R	R
]! ]]]4      3R]R3]! R4      .RR]R3R]P"                  R3]! R4      .RR]R3R]R3]! R4      .RR]P&                  3R]P(                  3R]P*                  3R]! ]]]P.                  4      3R]3R]P.                  3R]! ]]]P2                  4      3R]3R]3R]3R]3R]3./tR tR!# )"r!   iI  z&
Lexer for Nginx configuration files.
zNginx configuration filezhttp://nginx.net/nginxz
nginx.confztext/x-nginx-conf0.11r1   z(include)(\s+)([^\s;]+)z[^\s;#]+stmtbaseblock\}r   \{;r6   #.*\nzon|offz\$[^\s;#()]+z([a-z0-9.-]+)(:)([0-9]+)z[a-z-]+/[a-z-+]+z[0-9]+[km]?\bz(~)(\s*)([^\s{]+)z[:=~]z[^\s;#{}$]+z	/[^\s;#]*r2   z[$;]rC   N)rG   rH   rI   rJ   rK   rL   rP   rM   rN   rO   rQ   r   r   r   r   r   r   rj   r   rR   r  ry   r   r   r   Regexr
   rT   rU   rC   rB   r?   r!   r!   I  sG    &D
CiGI$%IM 	'':t)LM'6*FO

 	K*'++V4FO

 	K);'FO

 	w~~&&dmm,(dK8: &)v~~.!8KV\\#RS{#V$4 Z dO
! FrB   c                       ] tR tRtRtRtRtRR.tR.tR.t	R	t
R
R]P                  3R]3R]3R]3R]3R]3R]P"                  3R]3R]P(                  3R]3.
/tRtR# )r"   iw  z)
Lexer for Lighttpd configuration files.
zLighttpd configuration filezhttp://lighttpd.net/lighttpdlightyzlighttpd.confztext/x-lighttpd-confr  r1   r  z/\S*z[a-zA-Z._-]+r   r   z=>|=~|\+=|==|=|\+z\$[A-Z]+z[(){}\[\],]z"([^"\\]*(?:\\.[^"\\]*)*)"r2   rC   N)rG   rH   rI   rJ   rK   rL   rP   rM   rN   rO   rQ   r   rR   r   r   r   r   rx   r   r   r   r   rT   rU   rC   rB   r?   r"   r"   w  s     )D
 C8$G !I'(IM 	w~~&dOg&+V4!8,$,,'[)*FMM:Z 
FrB   c                      ] tR tRtRtRtRtRR.tRR.tR	.t	R
t
RtRtRt]P                  ]P                   ,          tRR]3R]! ]]]]]]]4      3R] R2]! ]]]! ]4      4      3R] R] R2]! ]]]! ]4      4      3R] R2]! ]]]! ]4      ]! ]4      4      3R] R] R2]! ]]]! ]4      4      3R] R2]! ]]]4      3R] R2]! ]]4      3R]! ]4      3.	/tRtR# ) r#   i  z'
Lexer for Docker configuration files.
Dockerzhttp://docker.iodocker
dockerfile
Dockerfilez*.dockerztext/x-dockerfile-configz2.0z-(?:MAINTAINER|EXPOSE|WORKDIR|USER|STOPSIGNAL)z-(?:RUN|CMD|ENTRYPOINT|ENV|ARG|LABEL|ADD|COPY)z(?:\s*\\?\s*)r1   #.*z1(FROM)([ \t]*)(\S*)([ \t]*)(?:(AS)([ \t]*)(\S*))?z(ONBUILD)(\s+)(r   z(HEALTHCHECK)(\s+)((z	--\w+=\w+z)*)z#(VOLUME|ENTRYPOINT|CMD|SHELL)(\s+)(z
)(\[.*?\])z(LABEL|ENV|ARG)(\s+)((z\w+=\w+r   z|VOLUME)\b(\s+)(.*)z)(\s+)z(.*\\\n)*.+rC   N)rG   rH   rI   rJ   rK   rL   rP   rM   rN   rO   rQ   	_keywords_bash_keywords_lbre   r   rg   r   r   r   r   r   r   r   r   r   rT   rU   rC   rB   r?   r#   r#     si    D
C&Gz*I+,IMAIFN
CMMBLL(E 	WAgz6:w
TZ[]uA&*eIFV(WX$SE3%s;*eI.>?A3C5
C*eI.>i@PQS&se73%s;*eI.>?A)/0(7JPV2WX.!((7J*GHU9-.
FrB   c                     a  ] tR tRt o RtRtRt. R.OtRR.tRR.t	R	t
R/tR
P                  RP                  ]4      4      tR0tR1tR2tR3tR4tR5tR6tR7tR8tR9t]],           ],           ],           ],           ],           ],           ],           ],           tR
P                  RP                  ]4      4      tR tR]! R4      ]! R4      R]! ]P>                  4      3] ! R:RRR7      ]!PD                  3] ! ]RRR7      ]#PH                  3]! R4      ]! R4      R]%3.RR]&PN                  R3R]&PP                  3]! R4      R]! ])]!PT                  ])]+])],4      3R]! ])]!PZ                  ])]+])4      3R]! ])].P<                  P>                  ])]+])4      3]R,           ]! ]!P^                  ],4      3R]! ],]!PT                  ],4      3]R,           ]! ]#P`                  ])]!Pb                  ])]!Pd                  ])],4      3R]3.
RR ]! ]!Pd                  4      3R!]! ]!Pd                  4      3.RR"],3.RR#]&PN                  3R$]&PN                  R%3R&]&PN                  R'3R(]&PN                  3.RR)])3R*])3R+]! ]3])4      3./t4R,t5V t6R-# );r$   i  z%
Lexer for terraformi ``.tf`` files.
	Terraformzhttps://www.terraform.io/z*.tfz*.hclzapplication/x-tfzapplication/x-terraform2.1z({})r   c              #    "   VP                  ^4      pV\        VP                  ^4      3x  VP                  ^4      \        P                  VP                  ^4      3x  VP                  ^4      Vn        VP                  ^4      Vn        VP
                  \        P                  VP                  ^4      3x  VP                  4       Vn        VP                  ^4      pRp. p\        P                  ! VP                  VP
                  4       F  pV'       d    VP                  4       P                  4       pMVP                  4       P                  4       pWt8X  d   V F4  pVP                  4       \        P                  VP                  4       3x  K6  	  VP                  4       \        P                  VP                  4       3x  VP                  4       Vn         MEVP                  V4       K  	  V F*  pVP                  4       \        VP                  4       3x  K,  	  \        VP                  4      Vn        R# 5i)   TN)startr   groupr   	DelimiterposendHeredocr	   finditerr=   striprstripappendr   len)	selfmatchctxr  hdnametolerantlinescheckamatchs	   &&&      r?   heredoc_callbackTerraformLexer.heredoc_callback  s     AXu{{1~--kk!nf..A>>++a.))A,ggv~~u{{1~55))+Q%%chh8E++-,,.#F ,,.&..&,,.HH $kkmV%5%5u{{}DD))+U# 9  llneV\\^;;  chh-s   H?Ir1   basic
whitespacez(".*")r   r   
identifierpunctuationr   z\s*/\*r   z\s*(#|//).*\nz'(\s*)([0-9a-zA-Z-_]+)(\s*)(=?)(\s*)(\{)z"(\s*)([0-9a-zA-Z-_]+)(\s*)(=)(\s*)z(\s*)("\S+")(\s*)([=:])(\s*)z(\()z(\[)([a-z_,\s]+)(\])z8(\s+)("[0-9a-zA-Z-_]+")?(\s*)("[0-9a-zA-Z-_]+")(\s+)(\{)z(<<-?)\s*([a-zA-Z_]\w*)(.*?\n)z\b(var\.[0-9a-zA-Z-_\.\[\]]+)\bz.\b([0-9a-zA-Z-_\[\]]+\.[0-9a-zA-Z-_\.\[\]]+)\bz[\[\]()\{\},.?:!=]z[^*/]z/\*r   z\*/r6   z[*/]r~   r2   (\\)(\n)rC   N)	terraformtfhcl)backenddatamoduleoutputproviderprovisionerresourcevariable)	r   numberboollisttuplemapsetobjectnull)	absceilfloorlogmaxmixparseintpowsignum)chompformat
formatlistr   joinlowerregexregexallreplacesplitstrrevsubstrtitletrim
trimprefix
trimsuffix	trimspaceupper)alltrueanytrue	chunklistcoalescecoalescelistcompactconcatcontainsdistinctelementflattenindexkeyslengthr&  lookupr(  	matchkeysmerger   reversesetintersection
setproductsetsubtractsetunionslicesortsum	transposevalueszipmap)base64decodebase64encode
base64gzip	csvdecode
jsondecode
jsonencodetextdecodebase64textencodebase64	urlencode
yamldecode
yamlencode)	abspathdirname
pathexpandbasenamefile
fileexistsfileset
filebase64templatefile)
formatdatetimeadd	timestamp)base64sha256base64sha512bcryptfilebase64sha256filebase64sha512filemd5filesha1
filesha256
filesha512md5
rsadecryptsha1sha256sha512uuiduuidv5)cidrhostcidrnetmask
cidrsubnetcidrsubnets)	candefaultstobooltolisttomaptonumbertosettostringtry)truefalse)7rG   rH   rI   rJ   rK   rL   rP   rM   rN   rO   rQ   classesr6  r8  
classes_retypesnumeric_functionsstring_functionscollection_functionsencoding_functionsfilesystem_functionsdate_time_functionshash_crypto_functionsip_network_functionstype_conversion_functionsbuiltinsbuiltins_rer  r   r   r   r   r   r   r  r   r   r   r   	MultilinerR   r   rx   r   r   rS   r   r   r   r   ry   r
   rT   rU   rV   rW   s   @r?   r$   r$     s;     D
%C(G!I#%>?IM6Gzz'23JYE=W[ A` T!I !#336JJM__235JKMab!"H --

8 45K# L 	GL! /0 $U5A4==Q 5u5w||DL!M"
" 	))95w~~.L! 8j$,,
HjR]^` 3j$..*h
SU
 -j'.."7"7XzZ\ 7"HT]]K$HI %h{DLL+&VW UUg&&
DJJ
DMM[egrsu /0@A? 
B 	/$--1HI>dmm$&

 	"K0
 	w(()W&&0W&&/g''(	
 	JZ (445
CFFrB   c                      ] tR tRtRtRtR.tRR.t. tRt	Rt
RR	]3R
]P                  R3R]3.RR]R3R]R3R]3R]P                   3.RR]! ]]4      3R]R3R]! ]]4      3R]R3R]3R]P*                  3.RR]3R]R3R]3R]3./tRtR# )r%   i_  zF
Lexer for termcap database source.

This is very simple and minimal.
Termcaptermcapztermcap.srcz%https://en.wikipedia.org/wiki/Termcapr  r1   ^#.*z
^[^\s#:|]+namesr2   r~   r6   :defs\|z[^:|]+z(\\)(\n[ \t]*)z\n[ \t]*r   (#)([0-9]+)r   r  z	[^\s:=#]+z\\072z[^:\\]+r   rC   N)rG   rH   rI   rJ   rK   rL   rM   rN   rO   rP   rQ   r   r   r   r   r   rS   r   r
   r   r   r   r   rT   rU   rC   rB   r?   r%   r%   _  s
   
 DkGM*II
1CM 	gDHHg.Z 

 	J';'K '	
 	z :;*h/Xh788V$;4::&
 	w;'!7O	
)FrB   c                   2   ] tR tRtRtRtR.tRR.t. tRt	Rt
RR	]3R
]P                  R3R]3.RR]R3R]! ]]4      R3R]3R]P"                  3.RR]3R]R3R]! ]]4      3R]R3R]! ]]4      3R]P(                  3.RR]3R]! ]]4      R3R]3R]3./tRtR# )r&   i  zG
Lexer for terminfo database source.

This is very simple and minimal.
Terminfoterminfozterminfo.srcz&https://en.wikipedia.org/wiki/Terminfor  r1   z^#.*$z
^[^\s#,|]+r  r2   r~   r6   z(,)([ \t]*)r  r  z[^,|]+z\n[ \t]+r   r  r   r  z	[^\s,=#]+z\\[,\\]z[^\\,]+r   rC   N)rG   rH   rI   rJ   rK   rL   rM   rN   rO   rP   rQ   r   r   r   r   r   r   rS   r   r   r   r   rT   rU   rC   rB   r?   r&   r&     s   
 DlG^,II
2CM 	wDHHg.Z 

 	J'Xk:>GK '	
 	*%J)Xh788V$Xk:>?4::&
 	!Xk:>G!7O	
)FrB   c                   r   ] tR tRtRtRtRtR.tR.t. t	Rt
RR	]P                  3R
]! ]P                  ]4      3R]! ]P"                  ]4      R3]! R4      R]3R]3R]3.RR]3R]P.                  R3.RR]P.                  R3R]P                  3.R]! R4      R	]P                  R3R]R3R]3R]3R]3./tRtR# )r'   i  zY
Lexer for pkg-config
(see also `manual page <http://linux.die.net/man/1/pkg-config>`_).
	PkgConfigz4http://www.freedesktop.org/wiki/Software/pkg-config/	pkgconfigz*.pcr  r1   #.*$z	^(\w+)(=)z^([\w.]+)(:)spvalueinterpr2   z[^${}#=:\n.]+r   z\$\$z\$\{curlyr  r6   r   r~   z[^${}#\n\s]+rC   N)rG   rH   rI   rJ   rK   rL   rP   rM   rN   rO   rQ   r   rR   r   r   rS   r   r   r   r   r   r
   r   r   rT   rU   rC   rB   r?   r'   r'     s"   
 D
@CmGIIM 	gnn% 8DNNH=> dhh,i9 H Z t$4L!
$ 	dO foow/
 	FOOV,T^^$
 	Hgnnf-J' Z d#4L

=)FrB   c            
           ] tR tRtRtRtRtR.tR.t. t	Rt
RR	]P                  3R
]! ]]]4      3R]! ]P"                  ]]4      3R]! ]]P"                  ]4      3]! RRR7      ]P(                  3R]3R]3./tRtR# )r(   i  a  
Lexer for pacman.conf.

Actually, IniLexer works almost fine for this format,
but it yield error token. It is because pacman.conf has
a form without assignment like:

    UseSyslog
    Color
    TotalDownload
    CheckSpace
    VerbosePkgLists

These are flags to switch on.

PacmanConfz3https://www.archlinux.org/pacman/pacman.conf.5.html
pacmanconfzpacman.confr  r1   r  z^(\s*)(\[.*?\])(\s*)$z(\w+)(\s*)(=)z^(\s*)(\w+)(\s*)$r   r   r2   r   rC   N)z$repoz$archz%oz%u)rG   rH   rI   rJ   rK   rL   rP   rM   rN   rO   rQ   r   rR   r   r   r   r   rS   r   r   ry   r
   rT   rU   rC   rB   r?   r(   r(     s      D
?CnGIIM 	gnn% &x
GZ'PQ dnnj(;= "j$..*=?  
  ! ]] Z 4L7
FrB   c                      ] tR tRtRtRtRtR.tR.tRt	RR	]
! ]P                  ]]P                  4      3R
]
! ]P                  ]]P                   4      3R]
! ]P"                  ]4      3R]
! ]]P                   ]]P&                  ]4      3R]P*                  R3R]3R]3R]P0                  R3R]P2                  R3R]
! ]P                  ]]P                   4      3R]P                   3R]3.RR]P4                  3R]P0                  3R]P0                  R3.RR]P4                  3R]P2                  3R]P2                  R3.RR]P*                  3R]P*                  R3R]P*                  R3R]P*                  3./tR tR!# )"r)   i/  z
Lexer for Augeas.
Augeaszhttp://augeas.netaugeasz*.aug2.4r1   z(module)(\s*)([^\s=]+)z(let)(\s*)([^\s=]+)zV(del|store|value|counter|seq|key|label|autoload|incl|excl|transform|test|get|put)(\s+)z8(\()([^:]+)(\:)(unit|string|regexp|lens|tree|filter)(\))z\(\*r   z[*+\-.;=?|]z
[()\[\]{}]r   r   z\/r:  z([A-Z]\w*)(\.)(\w+)r   r2   r   z[^"]r6   z[^/]z[^*)]r   z\*\)z[)*]rC   N)rG   rH   rI   rJ   rK   rL   rP   rM   rN   rQ   r   r   rj   r   r   r   ry   rx   r   r   r   r  r   r   r   r  r   rT   rU   rC   rB   r?   r)   r)   /  s    D
CjG	IM 	&1B1BJPTP^P^(_`#Xg.A.A:t}}%]^fhpquq}q}  @J  iK  LH(S^`d`m`moz  }D  }I  }I  KV  KW  Xg''3X&H%6==(+FLL'*#Xdnnk4==%YZ4==!Z 
 	V]]#fmm$6==&)

 	V]]#fll#FLL&)

 	w(()g''1g''0g''(	
3FrB   c                      ] tR tRtRtRtR.t. R8OtR.tRt	Rt
RtR	] R
2tRR]3R]P                  3]! R4      R]! ]]4      R3R]R3.RR]3R]P,                  R3R]P                  R3R]3.RR]3R]P,                  R3R]P                  R3R]3R]R3R]3.R]]P2                  R3]]P2                  R3R]P6                  R3R]P6                  R3R]P6                  R3R]P8                  R3R ]P:                  R3R!]P<                  R3R"]P>                  R3R#]P,                  R93R]P,                  R:3R%]P                  R;3R]P                  R<3R']P@                  R3R(]R=3R*]R>3.R)R]3R]P                  3R,]3R-]R3]!! R4      .R+R]3]! R4      R]! ]]4      R3R,]3R.]R3.RR]P,                  R3]! R/4      R0]P,                  3.RR1]P                  R3.R$R#]P,                  R3R2]! ]PD                  ]4      3]! R/4      R0]P,                  3R]P,                  3.R&R%]P                  R3R3]P                  3R]P                  3.R/R4]PD                  3R5]PD                  3./t#R6t$R7# )?r*   i[  z5
Lexer for TOML, a simple language for config files.
TOMLtomlzapplication/tomlzhttps://toml.ior  z\d\d:\d\d:\d\d(\.\d+)?zm(?x)
                  \d\d\d\d-\d\d-\d\d # date, e.g., 1988-10-27
                (
                  [Tt ] z # optional time
                  (
                    [Zz]|[+-]\d\d:\d\d # optional time offset
                  )?
                )?
              r1   r2   r  r   z(=)(\s*)r5   z\[\[?z	table-keyz[A-Za-z0-9_-]+r   basic-string'literal-stringz\.z\]\]?r6   [ \t]+z [+-]?\d[0-9_]*[eE][+-]?\d[0-9_]*z.[+-]?\d[0-9_]*\.\d[0-9_]*([eE][+-]?\d[0-9_]*)?z[+-]?(inf|nan)z
-?0b[01_]+z-?0o[0-7_]+z-?0x[0-9a-fA-F_]+z[+-]?[0-9_]+z"""multiline-basic-stringz'''multiline-literal-stringz
true|false\[arrayr  inline-tabler   \]r  r   z[^"\\]+z.*?'r  z[^']+z#\\u[0-9a-fA-F]{4}|\\U[0-9a-fA-F]{8}r   rC   N)z*.tomlPipfilezpoetry.lock)r6   r  )r6   r  )r6   r  )r6   r  )r6   r  )r6   r  )%rG   rH   rI   rJ   rK   rL   rM   rN   rO   rP   rQ   _time	_datetimer   r   rR   r   r   r   r   r   r   r   r   r   Dater   r   BinOctHexr   r  r   r   rT   rU   rC   rB   r?   r*   r*   [  s    DhG4I#$I
CM
 &E   I 	 Z  W^^$ EN (8Z8'B w,-
0 	%6==.16=="23K 
 	 (6==.16=="23Gw' 
#
 	f-GLL&) 1&,,G>\\6# f5 FJJ/VZZ0!6::v6fnnf5 V]]$FG6==":;V]]$HI6=="<= G,,f5 K!23 K!9:C"
F 	 Z W^^$ ; K( G
 	 
# EN (;
;WE ; K(
" 	6==&)I'

 	fmmV,
 	!V]]F+(6==*=>I'6==!#
 	#V]]F+v}}%6==!%

 	3V]]CV]]#
QLFrB   c                   V   ] tR tRtRtRtRtRR.tR.tRt	R	R
]
! ]]4      3R]
! ]]4      R3R]
! ]]4      R3R]
! ]]4      3R]
! ]]]]]4      3R]
! ]]4      3R]
! ]]]]]4      3R]
! ]]4      3R]
! ]]]]P                   ]4      3R]
! ]]P                   ]4      3R]
! ]]P                   ]]]]4      3.R]! R4      R]3]! R4      R]3R]R3R]R3.R]! R4      R]P                   3R]R 3R!]R3R]R3.R ]! R4      R]3]! R4      R]R3R!]R"3.R]! R4      R#]R3R$]R3.RR%]3./tR&tR'# )(r+   i  zz
Lexer for *NextedText*, a human-friendly data format.

.. versionchanged:: 2.16
    Added support for *NextedText* v3.0.

NestedTextzhttps://nestedtext.org
nestedtextntz*.ntz2.9r1   z^([ ]*)(#.*)$z^([ ]*)(\{)inline_dictz^([ ]*)(\[)inline_listz^([ ]*)(>)$z^([ ]*)(>)( )(.*?)([ \t]*)$z^([ ]*)(-)$z^([ ]*)(-)( )(.*?)([ \t]*)$z^([ ]*)(:)$z^([ ]*)(:)( )([^\n]*?)([ \t]*)$z^([ ]*)([^\{\[\s].*?)(:)$z)^([ ]*)([^\{\[\s].*?)(:)( )(.*?)([ \t]*)$r  z[^\{\}\[\],\s]+inline_valuer   r  r6   r~   z[^\{\}\[\],:\s]+r  inline_dict_valuer  r   r  r  r  rC   N)rG   rH   rI   rJ   rK   rL   rP   rM   rN   rQ   r   r   r   r   r
   r   r   r   r   rT   rU   rC   rB   r?   r+   r+     s&    D
"CT"GIM 	x
G<= Xj+>N Xj+>N Xj+>? ,Xj+z[_ak-lm Xj+>? ,Xj+z[_ak-lm Xj+>? 0*kS]_c_g_gis1tu *8J++VW :8JPTPXPXZegqsw  zD  <E  FA!
D 	L!&N#;K(E6"
 	L! $((+; 34K(E6"
 	L! $'N#;'K*
 	L!K/K/

 	
#
}AFrB   c            	       N  a  ] tR tRt o RtRtRtR.tRR.tRt	]
P                  ]
P                  ,          ]
P                  ,          tRtR	tR
tR]]! ]P(                  ]4      R3]]! ]P(                  ]4      R3]]! ]]]4      3R]3R]3R]3R]3.RR]! ]4      R3./tR tRtV tR# )r,   iU  z)
Lexer for Singularity definition files.
SingularityzAhttps://www.sylabs.io/guides/3.0/user-guide/definition_files.htmlsingularityz*.defz2.6zS^(\s*)(bootstrap|from|osversion|mirrorurl|include|registry|namespace|includecmd)(:)zT^(%(?:pre|post|setup|environment|help|labels|test|runscript|files|startscript))(\s*)z6^(%app(?:install|help|run|labels|env|test|files))(\s*)r1   scriptz	\s*#.*?\nz"\b(([0-9]+\.?[0-9]*)|(\.[0-9]+))\br  z
(?!^\s*%).z(.+?(?=^\s*%))|(.*)r6   c                    ^ p\         P                  ! RV \         P                  4      '       d
   VR,          p\         P                  ! \        P                  R,          V 4      '       d
   VR,          pV# )zdThis is a quite simple script file, but there are a few keywords
which seem unique to this language.z&\b(?:osversion|includecmd|mirrorurl)\bg      ?:r  NNg\(\?)re   rf   r   r,   _section)r=   results   & r?   r@   SingularityLexer.analyse_textt  sU     99>bmmTTcMF99%..r2D99dNFrB   rC   N) rG   rH   rI   rJ   rK   rL   rP   rM   rN   rQ   re   r   rg   DOTALLr   _headersr  _appsectr   r   Headingr   r   r
   r   r   r   r   rT   r@   rU   rV   rW   s   @r?   r,   r,   U  s      D
MCoG-(IMMMBLL(2994EeHfHHH 	x<hGx<hGx
GT:;7#2F;
#D!
 	#U9%5v>
F
 
rB   c                   ^    ] tR tRtRtRtRR.t. tRtRt	RR	]
3R
]3R]3R]3R]3R]3./tRtR# )r-   i  z|
Lexer for Unix/Linux config files using colon-separated values, e.g.

* ``/etc/group``
* ``/etc/passwd``
* ``/etc/shadow``
zUnix/Linux config files
unixconfiglinuxconfigzUhttps://en.wikipedia.org/wiki/Configuration_file#Unix_and_Unix-like_operating_systemsz2.12r1   r  r~   r  r   z"((?!\n)[a-zA-Z0-9\_\-\s\(\),]){2,}z[^:\n]+rC   N)rG   rH   rI   rJ   rK   rL   rM   rN   rP   rQ   r   r   r   r   r
   r   rT   rU   rC   rB   r?   r-   r-     sh     %D]+GI
aCM 	gJ;2D9 
	FrB   )r   r   r   r   r   r   r   r   r    r!   r"   r#   r$   r%   r&   r'   r(   r)   r*   r+   r,   r-   )4rK   re   pygments.lexerr   r   r   r   r   r   r   r	   pygments.tokenr
   r   r   r   r   r   r   r   r   r   r   r   pygments.lexers.shellr   pygments.lexers.datar   __all__r   r   r   r   r   r   r   r   r   r    r!   r"   r#   r$   r%   r&   r'   r(   r)   r*   r+   r,   r-   rC   rB   r?   <module>r     sl   
& & &= = = = + *E3z 3l: <): )X':: ':T5j 5pK(K: K\:Z :z(j (V~Z ~B+Z +\
 8 *  Ff' fR,: ,^,J ,^6Z 6r6j 6r)* )Xf
 fPOj Od)z )Xj rB   