HEX
Server: Apache/2.4.67 (Debian)
System: Linux vps-b2547eb4 6.1.0-41-cloud-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.158-1 (2025-11-09) x86_64
User: root (0)
PHP: 8.2.31
Disabled: NONE
Upload Files
File: //lib/python3/dist-packages/pygments/lexers/__pycache__/configs.cpython-311.pyc
�

�E�ca�����dZddlZddlmZmZmZmZmZmZm	Z	m
Z
ddlmZm
Z
mZmZmZmZmZmZmZmZmZmZddlmZddlmZgd�ZGd�d	e��ZGd
�de��ZGd�d
e��Zd�Z Gd�de��Z!Gd�de��Z"Gd�de��Z#Gd�de��Z$Gd�de��Z%Gd�de��Z&Gd�de��Z'Gd�de��Z(Gd�d e��Z)Gd!�d"e��Z*Gd#�d$e��Z+Gd%�d&e��Z,Gd'�d(e��Z-Gd)�d*e��Z.Gd+�d,e��Z/Gd-�d.e��Z0Gd/�d0e��Z1dS)1z�
    pygments.lexers.configs
    ~~~~~~~~~~~~~~~~~~~~~~~

    Lexers for configuration file formats.

    :copyright: Copyright 2006-2022 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�RegeditLexer�PropertiesLexer�KconfigLexer�Cfengine3Lexer�ApacheConfLexer�SquidConfLexer�NginxConfLexer�LighttpdConfLexer�DockerLexer�TerraformLexer�TermcapLexer�
TerminfoLexer�PkgConfigLexer�PacmanConfLexer�AugeasLexer�	TOMLLexer�NestedTextLexer�SingularityLexer�UnixConfigLexerc
��eZdZdZdZgd�Zgd�ZddgZdefde	j
fd	eee��fd
ee
jeeeeee��dfdee
jeeee��fd
e
jfgdefdeeeee��fdedfgd�Zd�ZdS)rz5
    Lexer for configuration files in INI style.
    �INI)�ini�cfg�dosini)z*.iniz*.cfgz*.infz
.editorconfigz	*.servicez*.socketz*.devicez*.mountz*.automountz*.swapz*.targetz*.pathz*.timerz*.slicez*.scopez
text/x-iniztext/inf�\s+�[;#].*z(\[.*?\])([ \t]*)$u0(.*?)([  \t]*)([=:])([ \t]*)([^;#\n]*)(\\)(\s+)�valueu8(.*?)([ \t]*)([=:])([  \t]*)([^ ;#\n]*(?: +[^ ;#\n]+)*)z(.+?)$z(\s*)(.*)(\\)([ \t]*)�.*$�#pop��rootr4c�r�|�d��}|dkrdS|ddko||dz
dkS)N�
�Fr�[��])�find)�text�nposs  �9/usr/lib/python3/dist-packages/pygments/lexers/configs.py�analyse_textzIniLexer.analyse_textBs?���y�y������!�8�8��5��A�w�#�~�5�$�t�A�v�,�#�"5�5�N)�__name__�
__module__�__qualname__�__doc__�name�aliases�	filenames�	mimetypesrr�Singlerrr�	Attributer
rr�tokensrC�rDrBrrs#���������D�&�&�&�G����I��z�*�I��Z� �
���'�
"�H�H�W�j�$A�$A�B�
@�
�X�d�n�j�(�J���J�(�(�
�
�I�
�X�d�n�j�(�J��
O�
O�
Q����'�
��Z� �
%�
�X�j�&�$�
�
;�
;�
=�
�V�V�$�	
���F�,6�6�6�6�6rDrc� �eZdZdZdZdZdgZdgZdgZde	fde
fd	ejfd
e
eeeje��fde
eje
ee
��dfd
e
eje
ee
��dfgdedfde
ejee��dfdedfed��gd�Zd�ZdS)rzZ
    Lexer for Windows Registry files produced by regedit.

    .. versionadded:: 1.6
    �regz8http://en.wikipedia.org/wiki/Windows_Registry#.REG_files�registryz*.regztext/x-windows-registryzWindows Registry Editor.*r2r3z(\[)(-?)(HKEY_[A-Z_]+)(.*?\])$z)("(?:\\"|\\\\|[^"])+")([ \t]*)(=)([ \t]*)r4z(.*?)([ \t]*)(=)([ \t]*)�-r6z1(dword|hex(?:\([0-9a-fA-F]\))?)(:)([0-9a-fA-F,]+)�.+r7c�,�|�d��S)NzWindows Registry Editor)�
startswith)r@s rBrCzRegeditLexer.analyse_textps�����8�9�9�9rDN)rErFrGrHrI�urlrJrKrLrrrrMrrr
r�BuiltinrN�VariablerrrrrOrCrPrDrBrrIs$���������D�
D�C��l�G��	�I�*�+�I�*�4�0�
�Z� �
���'�
.�
�X�g�x���w�
?�
?�
A�:�
�X�d�n�j�(�J�
G�
G�
�
�)�
�X�d�n�j�(�J�
G�
G�
�
�
� �8�V�$�
A�
�X�d�m�[�&�
9�
9�6�
C��F�F�#��G�F�O�O�

�!��F�4:�:�:�:�:rDrc
���eZdZdZdZddgZdgZdgZdefde	j
fd	ejd
fdejfgde
eeeee��d
dfde
eeee��dfgdefde
eeee��fdedfgd�ZdS)rz�
    Lexer for configuration files in Java's properties format.

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

    .. versionadded:: 1.4
    �
Properties�
properties�jpropertiesz*.propertiesztext/x-java-propertiesr2z
[!#].*|/{2}.*z([^\\\n]|\\.)*?(?=[ \f\t=:])�	separatorz.+?$z;([ \f\t]*)([=:]*)([ \f\t]*)(.*(?<!\\)(?:\\{2})*)(\\)(?!\\)$r4r6z([ \f\t]*)([=:]*)([ \f\t]*)(.*)z,(\s*)(.*(?<!\\)(?:\\{2})*)(\\)(?!\\)([ \t]*)r5)r8r_r4N)rErFrGrHrIrJrKrLrrrMrrNrr
rrrOrPrDrBrrts����������D��]�+�G�� �I�)�*�I��Z� �
�w�~�.�
,�d�n�k�J�
�d�n�%�

�L�
�X�j�(�J���
E�
E�w�PV�
X�
/�
�X�j�(�J��
?�
?��
I�	
��Z� �
<�
�X�j�&�$�
�
;�
;�
=�
�V�V�$�
�!��F�F�FrDrc�\�d}|dkrd}nd|dz
z}|dkrd}nd|z}d|�d	|�d
|�d�S)N���+z{1,%d}r=�z{%s}z(?:\t| z\t| {z})z.*\nrP)�level�	tab_width�space_repeat�level_repeats    rB�
_rx_indentri�s\���I��A�~�~�����9�q�=�1����z�z������~���*6�,�,�	�	�	�<�<�<�P�PrDc��eZdZdZdZgd�Zgd�ZdgZdZd�Z	d�Z
d	efd
ej
fedd�
��efdedfdejfdefdefdejfdej
fdejfdefgdefe	d��e	d��e	d��e	d��e	d��e	d��e	d��ed��g	e
d��e
d��e
d��e
d��e
d��e
d��e
d��d �	Zd!S)"rzC
    For Linux-style Kconfig files.

    .. versionadded:: 1.6
    �Kconfig)�kconfig�
menuconfigzlinux-configz
kernel-config)zKconfig*z*Config.in*zexternal.in*zstandard-modules.inztext/x-kconfigrc�@�t|��tjd|zfS)Nzindent%s)rir�Doc�res rB�call_indentzKconfigLexer.call_indent�s���5�!�!�6�:�z�E�/A�B�BrDc�f�t|��tjfdtft	d��gS)N�\s*\n�#pop:2)rirrorrrps rB�	do_indentzKconfigLexer.do_indent�s3����
�
��
�+�
�t���H���
�	
rDr2�#.*?\n)�mainmenu�configrm�choice�	endchoice�comment�menu�endmenuz
visible if�if�endif�source�prompt�selectz
depends onr�range�option�\b��suffixz(---help---|help)[\t ]*\n�helpz;(bool|tristate|string|hex|int|defconfig_list|modules|env)\bz[!=&|]z[()]�[0-9]+z'(''|[^'])*'z"(""|[^"])*"�\S+rs����r;rbr=r6)	r8r��indent7�indent6�indent5�indent4�indent3�indent2�indent1N)rErFrGrHrIrJrKrL�flagsrqrurrrMrrrrYr
rr�Integerr�DoublerrrOrPrDrBrr�s����������D�H�H�H�G�(�(�(�I�!�"�I�
�E�C�C�C�
�
�
��Z� �
���'�
�U�#�,1�	2�2�2�
�
�*�7�F�;�
K�
�\�
�
��!�
�k�"�
���'�
�f�m�,�
�f�m�,�
�T�N�#
�.�t��
�K��N�N��K��N�N��K��N�N��K��N�N��K��N�N��K��N�N��K��N�N��G�F�O�O�
� �9�Q�<�<��9�Q�<�<��9�Q�<�<��9�Q�<�<��9�Q�<�<��9�Q�<�<��9�Q�<�<�Y-�-�F�F�FrDrc�t�eZdZdZdZdZddgZdgZgZde	fde
eeeee��fd	e
eeeee
je��d
fde
eeeee
j��fde
ee
jeeejeee��fd
e
ejeee��fdedfde
e
je��fde
e
je��fde
eje��fde
jfdefdefdefdejfdejfde
jfdefgdejdfdejfdedfdefd efgdejd!fd"ejdfd#ejfgd$edfd%efde
jfdefgd&�Zd'S)(rzF
    Lexer for CFEngine3 policy files.

    .. versionadded:: 1.5
    �	CFEngine3zhttp://cfengine.org�	cfengine3�cf3z*.cfrvz(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+r2z\$[{(]�interpol�\\.r6�\n�.�#pushz[})]z	[^${()}]+z\)�,)r8r�r�r�N)rErFrGrHrIrXrJrKrLrrrrr�FunctionrrZ�Typer
�Reservedrr�Class�Declarationr�Floatr��Interpol�EscaperOrPrDrBrr�s(���������D�
�C��E�"�G���I��I��� �
.�
�X�g�z�7�J��
H�
H�
J�
5�
�X�g�z�7�J��
�{�
[�
[�
�
�2�
�X�g�z�7�J��
�
N�
N�
P�
G�
�X�k�4�=�+� �'�,�
�H�j�R�R�
S�$�
�X�g�&�
�H�d�
C�
C�
E�
�6�8�$�
�8�8�D�M�;�?�?�@�
!�8�8�D�J��#D�#D�E�
�(�(�7�#6��D�D�E�
���/�
�+�&�
�H��
�H��
�&�,�'�
�V�^�$�
�T�]�#�
�Z� �3
�8����4�
�V�]�#�
�6�6�"�
�F�O�
�6�N�
�����1�
�f�o�v�.�
�6�?�+�
��K��(�
�;��
�T�]�#�
�Z� �	
�Q.�.�F�F�FrDrc�*�eZdZdZdZgd�Zgd�ZdgZej	ej
zZdefde
fdeejeeej��fd	eejej��fd
ejdfdefgd
efdedfdefdefdefdefdejfdefdejfdefg
d�ZdS)rzo
    Lexer for configuration files following the Apache config file
    format.

    .. versionadded:: 0.6
    �
ApacheConf)�
apacheconf�aconf�apache)z	.htaccesszapache.confzapache2.confztext/x-apacheconfr2z#(.*\\\n)+.*$|(#.*?)$z"(<[^\s>/][^\s>]*)(?:(\s+)(.*))?(>)z(</[^\s>]+)(>)z[a-z]\w*r4z\.+z\\\nz\n+r6z\\z[^\S\n]+�\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"\\]+r7N)rErFrGrHrIrJrKrL�re�	MULTILINE�
IGNORECASEr�rrrr�TagrrYrr�Otherrr�rOrPrDrBrr;s���������D�/�/�/�G�<�<�<�I�$�%�I��L�2�=�(�E��Z� �
%�w�/�
2�
�X�d�h�
�F�D�H�
=�
=�
?�
�
�X�d�h���
)�
)�
+�
�$�,��0�
�T�N�	
��d�O�
�Z��(�
�D�M�
�*�%�
+�V�4�
�V��
%�v�|�4�� '�
(�0���?�
�4� �
���F�F�FrDrc��eZdZdZdZdZgd�ZdgZdgZe	j
ZdZdZ
d	Zd
ZdZdZd
Zdefdedfeedd���efee
dd���ejfeedd���efeedd���efeedd���efeedd���efedzezdzejfdefdefgdejdfdedfed��gd�ZdS)rzI
    Lexer for squid configuration files.

    .. versionadded:: 0.9
    �	SquidConfzhttp://www.squid-cache.org/)�	squidconf�
squid.conf�squidr�ztext/x-squidconf)��
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�ttlzno-queryrzround-robinzmulticast-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_communitya�(?:(?:(?:[3-9]\d?|2(?:5[0-5]|[0-4]?\d)?|1\d{0,2}|0x0*[0-9a-f]{1,2}|0+[1-3]?[0-7]{0,2})(?:\.(?:[3-9]\d?|2(?:5[0-5]|[0-4]?\d)?|1\d{0,2}|0x0*[0-9a-f]{1,2}|0+[1-3]?[0-7]{0,2})){3})|(?!.*::.*::)(?:(?!:)|:(?=:))(?:[0-9a-f]{0,4}(?:(?<=::)|(?<!::):)){6}(?:[0-9a-f]{0,4}(?:(?<=::)|(?<!::):)[0-9a-f]{0,4}(?:(?<=::)|(?<!:)|(?<=:)(?<!::):)|(?:25[0-4]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-4]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))r2�#r{r���prefixr�zstats/zlog/�=z(?:/(?:z|\b\d+\b))?z(?:\b\d+\b(?:-\b\d+|%)?)r�z	\s*TAG:.*r6rU)r8r{N) rErFrGrHrIrXrJrKrLr�r�r��keywords�opts�actions�
actions_stats�actions_log�acls�ip_rerrrrr�Constantrrr�rr�rrOrPrDrBrrfs����������D�
'�C�2�2�2�G���I�#�$�I��M�E�9�H�v�D��G�
�M�
;�K��D�	�
��Z� �
�7�I�&�
�U�8�E�%�
8�
8�
8�'�B�
�U�4��e�
4�
4�
4�d�m�D�
�U�7�5��
7�
7�
7��@�
�U�=��5�
A�
A�
A�6�J�
�U�;�w�t�
<�
<�
<�f�E�
�U�4��e�
4�
4�
4�g�>�
�Z�
�%�
'�.�
8�&�,�G�
(�&�1�
�T�N�

��6�=�&�1�
�G�V�$��G�F�O�O�
���F�F�FrDrc�t�eZdZdZdZdZdgZdgZdgZde	e
ee��fde
d	fe
d
��gdedfde
jd	fe
d
��gd
edfdedfe
d
��gdejfdejfdejfde	eeej��fdefdejfde	eeej��fdefdefdefdefdefgd�ZdS)r zJ
    Lexer for Nginx configuration files.

    .. versionadded:: 0.11
    zNginx configuration filezhttp://nginx.net/�nginxz
nginx.confztext/x-nginx-confz(include)(\s+)([^\s;]+)z[^\s;#]+�stmt�base�\}rtz\{�block�;r6�#.*\nzon|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;#]*r2z[$;])r8r�r�r�N)rErFrGrHrIrXrJrKrLrrrrrr�	NamespacerrMr�rZrr�r�RegexrrOrPrDrBr r �sX��������
&�D�
�C��i�G���I�$�%�I�(���'�:�t�)L�)L�M�
�'�6�*��G�F�O�O�
��K��*�
�'�+�V�4��G�F�O�O�
��K��)�
�;��'��G�F�O�O�
��w�~�&�
��
�&�
�d�m�,�
(�
�X�d�K���
8�
8�
:�
 �&�)�
�v�~�.�
!�8�8�K��V�\�#R�#R�S�
�{�#�
�V�$�
�4� �
�Z� �
�d�O�
�! � �F�F�FrDr c��eZdZdZdZdZddgZdgZdgZdd	e	j
fd
efdefde
fd
e
fdefdejfdefdejfdefg
iZdS)r!zM
    Lexer for Lighttpd configuration files.

    .. versionadded:: 0.11
    zLighttpd configuration filezhttp://lighttpd.net/�lighttpd�lightyz
lighttpd.confztext/x-lighttpd-confr8r�z/\S*z[a-zA-Z._-]+r�r�z=>|=~|\+=|==|=|\+z\$[A-Z]+z[(){}\[\],]z"([^"\\]*(?:\\.[^"\\]*)*)"r2N)rErFrGrHrIrXrJrKrLrrMrrrr
rYrrr�rrOrPrDrBr!r!s���������
)�D�
 �C��8�$�G� �!�I�'�(�I�	�
�w�~�&�
�d�O�
�g�&�
+�V�4�
���
!�8�,�
�$�,�'�
�[�)�
*�F�M�:�
�Z� �
��F�F�FrDr!c���eZdZdZdZdZddgZddgZdgZd	Z	d
Z
dZej
ejzZdd
efdeeeeeeee��fde�d�eeeee����fde�de�d�eeeee����fde�d�eeeee��ee����fde�de�d�eeeee����fde	zeeee��fde
�d�eee��fdee��fg	iZdS)r"zJ
    Lexer for Docker configuration files.

    .. versionadded:: 2.0
    �Dockerzhttp://docker.io�docker�
dockerfile�
Dockerfilez*.dockerztext/x-dockerfile-configz-(?:MAINTAINER|EXPOSE|WORKDIR|USER|STOPSIGNAL)z-(?:RUN|CMD|ENTRYPOINT|ENV|ARG|LABEL|ADD|COPY)z
(?:\s*\\?\s*)r8z#.*z1(FROM)([ \t]*)(\S*)([ \t]*)(?:(AS)([ \t]*)(\S*))?z(ONBUILD)(\s+)(�)z(HEALTHCHECK)(\s+)((z	--\w+=\w+z)*)z#(VOLUME|ENTRYPOINT|CMD|SHELL)(\s+)(z
)(\[.*?\])z(LABEL|ENV|ARG)(\s+)((z\w+=\w+z(%s|VOLUME)\b(\s+)(.*)�(z)(\s+)z(.*\\\n)*.+N)rErFrGrHrIrXrJrKrL�	_keywords�_bash_keywords�_lbr�r�r�r�rrrrrr	rrrOrPrDrBr"r"5s���������
�D�
�C���&�G��z�*�I�+�,�I�A�I�F�N�
�C��M�B�L�(�E�	�
�W��
A�
�X�g�z�6�:�w�
�TZ�
[�
[�
]�
]�&)�c�c�
+�X�X�g�z�5�5�QZ�K[�K[�-\�-\�]�]�8;���S�S�S�
A����*�e�e�I�.>�.>�?�?�
A�
A�CF�3�3�
H����*�e�e�I�.>�.>���i�@P�@P�Q�Q�
S�
S�8;���S�S�S�
A����*�e�e�I�.>�.>�?�?�
A�
&�)�
4�h�h�w�
�TZ�6[�6[�\�\�+�^�^�
-�x�x���/L�/L�M�
�U�U�9�-�-�.�
��F�F�FrDr"c�"�eZdZdZdZdZddgZdgZddgZd	Z	d
�
d�e	����ZdZ
d
ZdZdZdZdZdZdZdZdZeezezezezezezezezZd
�
d�e����Zd�Zed��ed��deej��feddd���ej fee
dd���e!j"fed��ed��de#fgd e$j%d!fd"e$j&fed��d#ee'ej(e'e)e'e*��fd$ee'ej+e'e)e'��fd%ee'e,jje'e)e'��fed&zeej-e*��fd'ee*ej(e*��fed(zee!j.e'ej/e'ej0e'e*��fd)efg
d*eej0��fd+eej0��fgd,e*fgd-e$j%fd.e$j%d/fd0e$j%d1fd2e$j%fgd3e'fd4e'fd5ee1e'��fgd6�Z2d7S)8r#zH
    Lexer for terraformi ``.tf`` files.

    .. versionadded:: 2.1
    �	Terraformzhttps://www.terraform.io/�	terraform�tfz*.tfzapplication/x-tfzapplication/x-terraform)�backend�data�module�output�provider�provisioner�resource�variablez({})�|)	r��number�bool�list�tuple�map�set�object�null)	�abs�ceil�floor�log�max�mix�parseint�pow�signum)�chomp�format�
formatlist�indent�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�tryc#��K�|�d��}|t|�d��fV�|�d��tj|�d��fV�|�d��|_|�d��|_|jtj|�d��fV�|���|_|�d��}d}g}tj	|j
|j��D]�}|r'|������}n&|������}||kr�|D]7}|���tj|���fV��8|���tj|���fV�|���|_nK|�
|����|D]2}|���t|���fV��3t|j
��|_dS)Nr=rbr;T)�startr
�groupr�	Delimiter�pos�end�Heredocr
�finditerr@�strip�rstrip�appendr�len)	�self�match�ctxrU�hdname�tolerant�lines�check�amatchs	         rB�heredoc_callbackzTerraformLexer.heredoc_callback�s�������A�����X�u�{�{�1�~�~�-�-�-�-��k�k�!�n�n�f�.����A���>�>�>�>��+�+�a�.�.����)�)�A�,�,����g�v�~�u�{�{�1�~�~�5�5�5�5��)�)�+�+������Q���������%�c�h���8�8�	<�	<�E��
/����
�
�+�+�-�-������
�
�,�,�.�.������#�I�I�F� �,�,�.�.�&�.�&�,�,�.�.�H�H�H�H�H��k�k�m�m�V�%5�u�{�{�}�}�D�D�D�D��)�)�+�+��������U�#�#�#�#� �
<�
<���l�l�n�n�e�V�\�\�^�^�;�;�;�;�;��c�h�-�-����rD�basic�
whitespacez(".*"))�true�falser�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\*/r6z[*/]r�r2z(\\)(\n))r8rirmrnr{rjN)3rErFrGrHrIrXrJrKrL�classesr�r��
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_rerhrrrr�rrr�rr�rr�	MultilinerMrrYr
rrNrr�r�r�rZrrOrPrDrBr#r#Ys|���������D�
%�C��D�!�G���I�#�%>�?�I�6�G�����z�z�'�2�2�3�3�J�Y�E�=������W��[��A��`��T��!I��!�#3�3�6J�J�M_�_���2�3�5J�K�Ma�b�!�"�H��-�-��
�
�8� 4� 4�5�5�K�# �# �# �N
�G�G����G�L�!�!������/�/�0��U�$�U�5�
A�
A�
A�4�=�Q��U�5��u�
5�
5�
5�w�|�D��G�L�!�!��G�M�"�"�
���
�$��)�9�5�
�w�~�.��G�L�!�!�8�
�X�j�$�,�
�H�j�R]�
^�
^�
`�3�
�X�j�$�.�*�h�
�
S�
S�
U�
-�
�X�j�'�.�"7��X�z�
Z�
Z�
\��7�
"�H�H�T�]�K�$H�$H�I�%�h�h�{�D�L�+�&V�&V�W��U�
U�
�X�g�&�
�D�J�
�D�M�[e�gr�
s�
s�
u�/�0@�A�? 
�D0���$�-�1H�1H�I�
>�
�X�d�m�
$�
$�
&�
�#�K�0�
��w�(�)�
�W�&��0�
�W�&��/�
�g�'�(�	
��J��
�Z� �
�(�(�4��4�4�5�
�CF�F�F�F�FrDr#c	���eZdZdZdZdgZddgZgZdefde	j
dfdefgd	ed
fdedfd
efde	j
fgdeee��fdedfdeee��fdedfdefde	jfgdefded
fdefdefgd�ZdS)r$zm
    Lexer for termcap database source.

    This is very simple and minimal.

    .. versionadded:: 2.1
    �Termcap�termcapztermcap.src�^#.*z
^[^\s#:|]+�namesr2r�r6�:�defs�\|z[^:|]+z(\\)(\n[ \t]*)z\n[ \t]*rt�(#)([0-9]+)r�r�z	[^\s:=#]+z\\072z[^:\\]+r��r8r�r�r�N)rErFrGrHrIrJrKrLrrr�rrrNrrr
rr�rrOrPrDrBr$r$s���������D��k�G��M�*�I��I��g��
�D�H�g�.�
�Z� �
��J��'�
�;��'�
�K� �
���'�	
�����z� :� :�;�
�*�h�/�
�X�X�h��7�7�8�
�8�V�$�
�;��
�4�:�&�

��w��
�;��'�
��!�
�7�O�	
�)��F�F�FrDr$c��eZdZdZdZdgZddgZgZdefde	j
dfdefgd	ed
fdee
e��dfd
e
fde	jfgdefd	edfdeee��fdedfdee
e��fde	jfgdefdee
e��d
fdefdefgd�ZdS)r%zn
    Lexer for terminfo database source.

    This is very simple and minimal.

    .. versionadded:: 2.1
    �Terminfo�terminfozterminfo.srcz^#.*$z
^[^\s#,|]+r�r2r�r6z(,)([ \t]*)r�r�z[^,|]+z\n[ \t]+rtr�r�r�z	[^\s,=#]+z\\[,\\]z[^\\,]+r�r�N)rErFrGrHrIrJrKrLrrr�rrrrNr
rr�rrOrPrDrBr%r%2s&���������D��l�G��^�,�I��I��w��
�D�H�g�.�
�Z� �
��J��'�
�X�X�k�:�>�>��G�
�K� �
���'�	
��*�%�
�J��)�
�X�X�h��7�7�8�
�8�V�$�
�X�X�k�:�>�>�?�
�4�:�&�

���!�
�X�X�k�:�>�>��G�
��!�
�7�O�	
�)��F�F�FrDr%c
�2�eZdZdZdZdZdgZdgZgZde	j
fdeej
e��fdeeje��d	fed
��defdefd
efgdefdejdfgdejdfdej
fged
��de	j
dfdedfdefdefd
efgd�ZdS)r&z�
    Lexer for pkg-config
    (see also `manual page <http://linux.die.net/man/1/pkg-config>`_).

    .. versionadded:: 2.1
    �	PkgConfigz4http://www.freedesktop.org/wiki/Software/pkg-config/�	pkgconfigz*.pc�#.*$z	^(\w+)(=)z^([\w.]+)(:)�spvalue�interpr2z
[^${}#=:\n.]+r�z\$\$z\$\{�curlyr�r6r�r�z[^${}#\n\s]+)r8r�r�r�N)rErFrGrHrIrXrJrKrLrrMrrrNr
r�rrrrrr�rOrPrDrBr&r&as-���������D�
@�C��m�G���I��I��g�n�%��8�8�D�N�H�=�=�>��
�X�d�h��
,�
,�i�
9�
�G�H����Z� �
�t�$�
�4�L�!
�(�d�O��f�o�w�/�
��F�O�V�,�
�T�^�$�
�

�G�H���
�g�n�f�-�
�J��'��Z� �
�d�#�
�4�L�

�=)�)�F�F�FrDr&c
���eZdZdZdZdZdgZdgZgZdde	j
fdeee
e��fd	eejee��fd
eeeje��fedd�
��ejfdefdefgiZdS)r'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.

    .. versionadded:: 2.1
    �
PacmanConfz3https://www.archlinux.org/pacman/pacman.conf.5.html�
pacmanconfzpacman.confr8r�z^(\s*)(\[.*?\])(\s*)$z
(\w+)(\s*)(=)z^(\s*)(\w+)(\s*)$)z$repoz$archz%oz%ur�r�r2r�N)rErFrGrHrIrXrJrKrLrrMrrrrrNr
rrZrrOrPrDrBr'r'�s���������$�D�
?�C��n�G���I��I�	�
�g�n�%�&�x�x�
�G�Z�'P�'P�Q��
�X�d�n�j�(�
;�
;�
=�"�
�X�j�$�.�*�
=�
=�
?��U��
 �!�!�!��]�

��Z� �
�4�L�7
��F�F�FrDr'c��eZdZdZdZdZdgZdgZdee	j
eej
��fdee	j
eej��fdeeje��fd	eeejee	je��fd
ejdfdefd
efdejdfdejdfdeej
eej��fdejfdefgdejfdejfdejdfgdejfdejfdejdfgdejfd
ejdfdejdfdejfgd�ZdS)r(z6
    Lexer for Augeas.

    .. versionadded:: 2.4
    �Augeaszhttp://augeas.net�augeasz*.augz(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�r2r�z[^"]r6z[^/]z[^*)]r�z\*\)z[)*])r8r�r�r{N)rErFrGrHrIrXrJrKrrr�rrr�rZrYrr�rr}r
rr�r�r�rOrPrDrBr(r(�s���������
�D�
�C��j�G��	�I�'����1B�J�PT�P^�(_�(_�`�
#�X�X�g�.A�:�t�}�%]�%]�^�
f�hp�hp�qu�q}�@J�iK�iK�
L�
H�(�(�S^�`d�`m�oz�}D�}I�KV�KW�KW�
X�
�g�'��3�
�X�&�
�H�%�
�6�=�(�+�
�F�L�'�*�
#�X�X�d�n�k�4�=�%Y�%Y�Z�
�4�=�!�
�Z� �

��V�]�#�
�f�m�$�
�6�=�&�)�
��V�]�#�
�f�l�#�
�F�L�&�)�
��w�(�)�
�g�'��1�
�g�'��0�
�g�'�(�	
�3��F�F�FrDr(c���eZdZdZdZdZdgZgd�Zddee	e
��fde	fd	e	fd
ejfde
fde
fd
e
fde
jfdefdejfdejfdejfdejfdejfdefdefdefgiZdS)r)z\
    Lexer for TOML, a simple language
    for config files.

    .. versionadded:: 2.4
    �TOMLz!https://github.com/toml-lang/toml�toml)z*.toml�Pipfilezpoetry.lockr8z^(\s*)(\[.*?\])$�[ \t]+r�z#.*?$z"(\\\\|\\[^\\]|[^"\\])*"z\'\'\'(.*)\'\'\'z
\'[^\']*\'z
(true|false)$z[a-zA-Z_][\w\-]*z>\d{4}-\d{2}-\d{2}(?:T| )\d{2}:\d{2}:\d{2}(?:Z|[-+]\d{2}:\d{2})z'(\d+\.\d*|\d*\.\d+)([eE][+-]?[0-9]+)?j?z\d+[eE][+-]?[0-9]+j?z[+-]?(?:(inf(?:inity)?)|nan)z[+-]?\d+z[]{}:(),;[]z\.r�N)rErFrGrHrIrXrJrKrrrrrMrr�rrr�r�rr
rOrPrDrBr)r)s����������D�
-�C��h�G�4�4�4�I�	�
 �(�(�:�w�"?�"?�@��
�#�
�J��
�w�~�&�
(�&�1�
 �&�)�
�F�#�
�w�/�0�
 �$�'�
O�PV�P^�_�8���F�
$�f�l�3�
,�f�l�;�
�&�.�)��[�)�
�K� ��8��C#
�%�F�F�FrDr)c�@�eZdZdZdZdZddgZdgZdZdd	e	e
e��fd
e	e
ee
e
e
��fde	e
ee
e
e
��fe�d��e	e
eeee
e
��fe�d
��e	e
eeee
e
��fde	e
eee
e
e
��fgiZdS)r*z\
    Lexer for NextedText, a human-friendly data
    format.

    .. versionadded:: 2.9
    �
NestedTextzhttps://nestedtext.org�
nestedtext�ntz*.ntz#^(\s*)({0})(.*?)({0}: ?)(.*?)(\s*)$r8z
^(\s*)(#.*?)$z^(\s*)(>)( ?)(.*?)(\s*)$z^(\s*)(-)( ?)(.*?)(\s*)$�'r�z^(\s*)(.*?)(:)( ?)(.*?)(\s*)$N)rErFrGrHrIrXrJrK�_quoted_dict_itemrrrrrr�rrOrPrDrBr*r*6s���������D�
"�C��T�"�G���I�>��	�
�x�x�
�G�<�<�=�
(�(�(�:�{�J�X^�`j�*k�*k�l�
(�(�(�:�{�J�X^�`j�*k�*k�l�
�
%�
%�c�
*�
*�H�H�Z��d�T_�ag�is�,t�,t�u�
�
%�
%�c�
*�
*�H�H�Z��d�T_�ag�is�,t�,t�u�
-�x�x�
�D�+�Wa�ci�ku�/v�/v�w�

�	�F�F�FrDr*c��eZdZdZdZdZdgZddgZej	ej
zejzZdZ
dZdZeeeje��d	feeeje��d	fe
eeee��fd
efdefdefd
efgdee��dfgd�Zd�ZdS)r+zL
    Lexer for Singularity definition files.

    .. versionadded:: 2.6
    �SingularityzAhttps://www.sylabs.io/guides/3.0/user-guide/definition_files.html�singularityz*.defzS^(\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*)�scriptz	\s*#.*?\nz"\b(([0-9]+\.?[0-9]*)|(\.[0-9]+))\br�z
(?!^\s*%).z(.+?(?=^\s*%))|(.*)r6)r8r�c��d}tjd|tj��r|dz
}tjtjdd�|��r|dz
}|S)zlThis is a quite simple script file, but there are a few keywords
        which seem unique to this language.rz&\b(?:osversion|includecmd|mirrorurl)\bg�?r=Ng\��(\�?)r��searchr�r+�_section)r@�results  rBrCzSingularityLexer.analyse_textqsZ����
�9�>��b�m�T�T�	��c�M�F�
�9�%�.�q�r�r�2�D�9�9�	��d�N�F��
rDN)rErFrGrHrIrXrJrKr�r�r��DOTALLr��_headersr��_appsectrr�Headingrrrrrr	rrOrCrPrDrBr+r+Qs���������D�
M�C��o�G��-�(�I��M�B�L�(�2�9�4�E�e�H�f�H�H�H��x�x����<�<�h�G�
�x�x����<�<�h�G�
�x�x�
�G�T�:�:�;�
�7�#�
2�F�;�
�
�#�
�D�!�
�$�U�U�9�%5�%5�v�>�
�
�
�F�
�
�
�
�
rDr+c�N�eZdZdZdZddgZgZddefdefde	fd	e
fd
efdefgiZ
dS)
r,z�
    Lexer for Unix/Linux config files using colon-separated values, e.g.

    * ``/etc/group``
    * ``/etc/passwd``
    * ``/etc/shadow``
    
    .. versionadded:: 2.12
    zUnix/Linux config files�
unixconfig�linuxconfigr8r�r�r�r�z"((?!\n)[a-zA-Z0-9\_\-\s\(\),]){2,}z[^:\n]+N)rErFrGrHrIrJrKrrrrrrrOrPrDrBr,r,~so��������%�D��]�+�G��I�	�
�g��
�J��
�;��
���
2�D�9�
�� �

�	�F�F�FrDr,)2rHr��pygments.lexerrrrrrrr	r
�pygments.tokenrrr
rrrrrrrrr�pygments.lexers.shellr�pygments.lexers.datar�__all__rrrrirrrrr r!r"r#r$r%r&r'r(r)r*r+r,rPrDrB�<module>r�s�����
�	�	�	�&�&�&�&�&�&�&�&�&�&�&�&�&�&�&�&�&�&�&�&�=�=�=�=�=�=�=�=�=�=�=�=�=�=�=�=�=�=�=�=�=�=�=�=�=�=�=�=�+�+�+�+�+�+�*�*�*�*�*�*�E�E�E��*6�*6�*6�*6�*6�z�*6�*6�*6�Z(:�(:�(:�(:�(:�:�(:�(:�(:�V%�%�%�%�%�j�%�%�%�PQ�Q�Q�(J�J�J�J�J�:�J�J�J�Z;�;�;�;�;�Z�;�;�;�|(�(�(�(�(�j�(�(�(�V@�@�@�@�@�Z�@�@�@�F,�,�,�,�,�Z�,�,�,�^�����
����:!�!�!�!�!�*�!�!�!�Hg�g�g�g�g�'�g�g�g�T,�,�,�,�,�:�,�,�,�^,�,�,�,�,�J�,�,�,�^7�7�7�7�7�Z�7�7�7�t7�7�7�7�7�j�7�7�7�t*�*�*�*�*�*�*�*�*�Z2�2�2�2�2�
�2�2�2�h�����j����6*�*�*�*�*�z�*�*�*�Z�����j�����rD