<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE language><language name="Varnish Test Case language" version="14" kateversion="5.79" section="Configuration" extensions="*.vtc" author="Xavier Guerrin (xavier@tuxfamily.org)" license="WTFPL" priority="9"><highlighting><list name="VSLGrouping"><item>raw</item><item>request</item><item>session</item><item>vxid</item></list><list name="VSLTags"><item>Backend</item><item>BackendClose</item><item>BackendOpen</item><item>BackendReuse</item><item>Backend_health</item><item>Begin</item><item>BereqAcct</item><item>BereqHeader</item><item>BereqMethod</item><item>BereqProtocol</item><item>BereqURL</item><item>BerespHeader</item><item>BerespProtocol</item><item>BerespReason</item><item>BerespStatus</item><item>BogoHeader</item><item>CLI</item><item>Debug</item><item>ESI_BodyBytes</item><item>ESI_xmlerror</item><item>End</item><item>Error</item><item>ExpBan</item><item>ExpKill</item><item>FetchError</item><item>Fetch_Body</item><item>Gzip</item><item>Hash</item><item>Hit</item><item>HitPass</item><item>HttpGarbage</item><item>Length</item><item>Link</item><item>LostHeader</item><item>ObjHeader</item><item>ObjProtocol</item><item>ObjReason</item><item>ObjStatus</item><item>PipeAcct</item><item>ReqAcct</item><item>ReqHeader</item><item>ReqMethod</item><item>ReqProtocol</item><item>ReqStart</item><item>ReqURL</item><item>RespHeader</item><item>RespProtocol</item><item>RespReason</item><item>RespStatus</item><item>SessClose</item><item>SessOpen</item><item>Storage</item><item>TTL</item><item>Timestamp</item><item>VCL_Error</item><item>VCL_Log</item><item>VCL_acl</item><item>VCL_call</item><item>VCL_return</item><item>VCL_trace</item><item>VSL</item><item>WorkThread</item></list><contexts><context name="vtcnormal_text" attribute="Normal Text"><IncludeRules context="global_directives_restricted"/><IncludeRules context="global_directives"/></context><context name="comments" attribute="Comment" lineEndContext="#pop"><DetectChar char="#" attribute="Comment" context="shell-like-comment"/></context><context name="common_expectation_end" attribute="Normal Text" lineEndContext="#pop#pop#pop#pop"><IncludeRules context="comments"/></context><context name="http_expectation_operator" attribute="Normal Text" lineEndContext="#pop#pop"><IncludeRules context="comments"/><StringDetect String="==" attribute="Comparison Operator" context="common_expectation_second_arg"/><StringDetect String="!=" attribute="Comparison Operator" context="common_expectation_second_arg"/><StringDetect String=">=" attribute="Comparison Operator" context="common_expectation_second_arg"/><StringDetect String="&lt;=" attribute="Comparison Operator" context="common_expectation_second_arg"/><AnyChar String=">&lt;~" attribute="Comparison Operator" context="common_expectation_second_arg"/><StringDetect String="!~" attribute="Comparison Operator" context="common_expectation_second_arg"/></context><context name="string-arg" attribute="Normal Text"><RegExpr String="HTTP/[0-9.]+" attribute="HTTP announce" context="#pop"/><RegExpr String="\s+(GET|HEAD|POST|PUT|DELETE|TRACE|OPTIONS|CONNECT|PATCH)" attribute="HTTP method" context="#pop"/><RegExpr String="\s+(PROPFIND|PROPPATCH|MKCOL|COPY|MOVE|LOCK|UNLOCK|CONNECT|PATCH)" attribute="HTTP WebDAV method" context="#pop"/><RegExpr String="\s+(PURGE|PURGESTR)" attribute="HTTP custom method" context="#pop"/><IncludeRules context="brace-strings"/><IncludeRules context="quoted-strings"/><IncludeRules context="unquoted-strings"/></context><context name="common_expectation_second_arg" attribute="Normal Text" lineEndContext="#pop#pop#pop"><IncludeRules context="comments"/><RegExpr String="[0-9\.]+(\s+|$)" attribute="Float" context="common_expectation_end"/><RegExpr String="[0-9]+(\s+|$)" attribute="Decimal" context="common_expectation_end"/><StringDetect String="&lt;undef>" attribute="Keyword" context="common_expectation_end"/><RegExpr String="req\.(method|url|proto|bodylen)|resp\.(proto|status|msg|chunklen|bodylen|body)" attribute="HTTP Property" context="common_expectation_end"/><RegExpr String="(req|resp)\.http\.X\-[\-_A-Za-z0-9]*" attribute="HTTP X- Header" context="common_expectation_end"/><RegExpr String="(req|resp)\.http\.[A-Za-z][\-_A-Za-z0-9]*" attribute="HTTP Header" context="common_expectation_end"/><RegExpr String="HTTP/[0-9\.]+" attribute="HTTP announce" context="common_expectation_end"/><RegExpr String="\s+(GET|HEAD|POST|PUT|DELETE|TRACE|OPTIONS|CONNECT|PATCH)" attribute="HTTP method" context="common_expectation_end"/><RegExpr String="\s+(PROPFIND|PROPPATCH|MKCOL|COPY|MOVE|LOCK|UNLOCK|CONNECT|PATCH)" attribute="HTTP WebDAV method" context="common_expectation_end"/><RegExpr String="\s+(PURGE|PURGESTR)" attribute="HTTP custom method" context="common_expectation_end"/><DetectChar char="{" attribute="String" context="common_expectation_arg2_brace-string" beginRegion="string_block"/><DetectChar char='"' attribute="String" context="common_expectation_arg2_quoted-string"/><RegExpr String="[^ ]" attribute="Normal Text" context="common_expectation_arg2_unquoted-string" lookAhead="1"/></context><context name="varnish_expectation_second_arg" attribute="Normal Text" lineEndContext="#pop"><Int attribute="Decimal" context="common_expectation_end"/></context><context name="brace-string-internal" attribute="String"><DetectChar char="}" attribute="String" context="#pop"/></context><context name="int-arg" attribute="Normal Text" lineEndContext="#pop"><Int attribute="Decimal" context="#pop"/></context><context name="common_options" attribute="Normal Text"><IncludeRules context="macro_accepted"/><IncludeRules context="base_elements"/></context><context name="http_expectation" attribute="Normal Text" lineEndContext="#pop"><IncludeRules context="comments"/><RegExpr String="[0-9\.]+(\s+|$)" attribute="Float" context="http_expectation_operator"/><RegExpr String="[0-9]+(\s+|$)" attribute="Decimal" context="http_expectation_operator"/><StringDetect String="&lt;undef>" attribute="Keyword" context="http_expectation_operator"/><RegExpr String="req\.(method|url|proto|bodylen)|resp\.(proto|status|msg|chunklen|bodylen|body)" attribute="HTTP Property" context="http_expectation_operator"/><RegExpr String="(req|resp)\.http\.X\-[\-_A-Za-z0-9]*" attribute="HTTP X- Header" context="http_expectation_operator"/><RegExpr String="(req|resp)\.http\.[A-Za-z][\-_A-Za-z0-9]*" attribute="HTTP Header" context="http_expectation_operator"/><RegExpr String="HTTP/[0-9\.]+" attribute="HTTP announce" context="http_expectation_operator"/><RegExpr String="\s+(GET|HEAD|POST|PUT|DELETE|TRACE|OPTIONS|CONNECT|PATCH)" attribute="HTTP method" context="http_expectation_operator"/><RegExpr String="\s+(PROPFIND|PROPPATCH|MKCOL|COPY|MOVE|LOCK|UNLOCK|CONNECT|PATCH)" attribute="HTTP WebDAV method" context="http_expectation_operator"/><RegExpr String="\s+(PURGE|PURGESTR)" attribute="HTTP custom method" context="http_expectation_operator"/><DetectChar char="{" attribute="String" context="http_expectation_arg1_brace-string" beginRegion="string_block"/><DetectChar char='"' attribute="String" context="http_expectation_arg1_quoted-string"/><RegExpr String="[^ ]" attribute="Normal Text" context="http_expectation_arg1_unquoted-string" lookAhead="1"/></context><context name="quoted-strings" attribute="Normal Text"><DetectChar char='"' attribute="String" context="quoted-string"/></context><context name="send_instruction" attribute="Normal Text" lineEndContext="#pop"><IncludeRules context="string-arg"/><IncludeRules context="comments"/></context><context name="strings" attribute="Normal Text"><DetectChar char='"' attribute="String" context="string"/></context><context name="brace-strings" attribute="Normal Text" lineEndContext="#pop"><DetectChar char="{" attribute="String" context="brace-string" beginRegion="string_block"/></context><context name="client_definition" attribute="Normal Text"><IncludeRules context="clientserver_common_definition"/><StringDetect String="txreq" attribute="Action Keyword" context="txreq_options" firstNonSpace="1"/><StringDetect String="rxresphdrs" attribute="Action Keyword" firstNonSpace="1"/><StringDetect String="rxresp" attribute="Action Keyword" context="rxresp_options" firstNonSpace="1"/><StringDetect String="rxchunk" attribute="Action Keyword" firstNonSpace="1"/><StringDetect String="loop" attribute="Action Keyword" context="client_loop_instruction" firstNonSpace="1"/><DetectChar char="}" attribute="Region Marker" context="client_postdefinition" endRegion="client_block"/></context><context name="client_options" attribute="Normal Text"><RegExpr String="\-(?:run|start|wait)" attribute="Keyword"/><StringDetect String="-repeat" attribute="Keyword" context="int-arg"/><StringDetect String="-connect" attribute="Keyword" context="string-arg"/><StringDetect String="-expect" attribute="Keyword" context="http_expectation"/><IncludeRules context="common_options"/></context><context name="clientserver_common_definition" attribute="Normal Text"><IncludeRules context="comments"/><StringDetect String="timeout" attribute="Action Keyword" context="timeout_instruction" firstNonSpace="1"/><StringDetect String="gunzip" attribute="Action Keyword" firstNonSpace="1"/><StringDetect String="expect_close" attribute="Action Keyword" firstNonSpace="1"/><StringDetect String="expect" attribute="Action Keyword" context="http_expectation" firstNonSpace="1"/><StringDetect String="sendhex" attribute="Action Keyword" context="send_instruction" firstNonSpace="1"/><StringDetect String="send" attribute="Action Keyword" context="send_instruction" firstNonSpace="1"/><StringDetect String="chunkedlen" attribute="Action Keyword" context="chunkedlen_instruction" firstNonSpace="1"/><StringDetect String="chunked" attribute="Action Keyword" context="send_instruction" firstNonSpace="1"/><StringDetect String="delay" attribute="Action Keyword" context="delay_instruction" firstNonSpace="1"/><StringDetect String="sema" attribute="Action Keyword" context="sema_instruction" firstNonSpace="1"/><StringDetect String="close" attribute="Action Keyword" firstNonSpace="1"/><StringDetect String="accept" attribute="Action Keyword" firstNonSpace="1"/><StringDetect String="fatal" attribute="Action Keyword" firstNonSpace="1"/><StringDetect String="non-fatal" attribute="Action Keyword" firstNonSpace="1"/></context><context name="clierr_command" attribute="String" lineEndContext="#pop"><IncludeRules context="comments"/></context><context name="delay_instruction" attribute="Normal Text" lineEndContext="#pop"><Float attribute="Float"/><Int attribute="Decimal"/><IncludeRules context="comments"/></context><context name="global_directives" attribute="Normal Text"><IncludeRules context="comments"/><StringDetect String="client" attribute="Keyword" context="client_declaration" firstNonSpace="1"/><StringDetect String="server" attribute="Keyword" context="server_declaration" firstNonSpace="1"/><StringDetect String="varnish" attribute="Keyword" context="varnish_declaration" firstNonSpace="1"/><StringDetect String="logexpect" attribute="Keyword" context="logexpect_declaration" firstNonSpace="1"/><StringDetect String="sema" attribute="Keyword" context="sema_instruction" firstNonSpace="1"/><StringDetect String="shell" attribute="Keyword" context="shell_instruction" firstNonSpace="1"/><StringDetect String="delay" attribute="Keyword" context="delay_instruction" firstNonSpace="1"/><StringDetect String="loop" attribute="Keyword" context="global_loop_instruction" firstNonSpace="1"/></context><context name="logexpect_options" attribute="Normal Text"><RegExpr String="\-(?:start|run|wait)" attribute="Keyword"/></context><context name="logexpect_regex" attribute="String" lineEndContext="#pop"><IncludeRules context="brace-strings"/><IncludeRules context="quoted-strings"/></context><context name="logexpect_tag" attribute="Normal Text" lineEndContext="#pop"><keyword String="VSLTags" attribute="VSL Tag" context="logexpect_regex"/><AnyChar String="*=" attribute="Logical Operator" context="logexpect_regex"/></context><context name="logexpect_vxid" attribute="Normal Text" lineEndContext="#pop"><Int attribute="Decimal" context="logexpect_tag"/><AnyChar String="*=" attribute="Logical Operator" context="logexpect_tag"/></context><context name="sema_instruction" attribute="Normal Text" lineEndContext="#pop"><DetectIdentifier attribute="Sema Identifier" context="sema_identified"/></context><context name="server_definition" attribute="Normal Text"><IncludeRules context="clientserver_common_definition"/><StringDetect String="rxreqhdrs" attribute="Action Keyword" firstNonSpace="1"/><StringDetect String="rxreq" attribute="Action Keyword" firstNonSpace="1"/><StringDetect String="rxbody" attribute="Action Keyword" firstNonSpace="1"/><StringDetect String="txresp" attribute="Action Keyword" context="txresp_options" firstNonSpace="1"/><StringDetect String="loop" attribute="Action Keyword" context="server_loop_instruction" firstNonSpace="1"/><DetectChar char="}" attribute="Region Marker" context="server_postdefinition" endRegion="server_block"/></context><context name="server_options" attribute="Normal Text"><RegExpr String="\-(?:break|start|wait)" attribute="Keyword"/><StringDetect String="-repeat" attribute="Keyword" context="int-arg"/><StringDetect String="-listen " attribute="Keyword" context="string-arg"/><StringDetect String="-expect" attribute="Keyword" context="http_expectation"/><IncludeRules context="common_options"/></context><context name="tx_options" attribute="Normal Text" lineEndContext="#pop"><IncludeRules context="comments"/><StringDetect String="-nolen" attribute="Tx Keyword"/><RegExpr String="\-(?:body|gzipbody|hdr|proto) " attribute="Tx Keyword" context="string-arg"/><RegExpr String="\-(?:bodylen|gzip(?:len|residual|level))" attribute="Tx Keyword" context="int-arg"/><LineContinue attribute="Normal Text"/></context><context name="varnish_errvclcode-internal" attribute="Normal Text"><DetectChar char="{" attribute="Normal Text" context="varnish_errvclcode-internal"/><DetectChar char="}" attribute="Normal Text" context="#pop"/></context><context name="varnish_errvcldefined" attribute="Normal Text" lineEndContext="#pop"><DetectChar char="{" attribute="Region Marker" context="varnish_errvclcode" beginRegion="errvclcode_block"/></context><context name="varnish_options" attribute="Normal Text"><RegExpr String="\-(?:start|stop|wait|wait-running|wait-stopped)" attribute="Keyword"/><RegExpr String="\-(?:arg|cli|cliok|storage) " attribute="Keyword" context="string-arg"/><StringDetect String="-clierr " attribute="Keyword" context="clierr_options"/><StringDetect String="-expect" attribute="Keyword" context="varnish_expectation"/><IncludeRules context="common_options"/></context><context name="varnish_postvcldefinition" attribute="Normal Text" lineEndContext="#pop#pop#pop#pop#pop"><IncludeRules context="varnish_options"/><LineContinue attribute="Normal Text"/></context><context name="base_elements" attribute="Normal Text"><RegExpr String="HTTP/[0-9.]+" attribute="HTTP announce"/><RegExpr String="\s+(GET|HEAD|POST|PUT|DELETE|TRACE|OPTIONS|CONNECT|PATCH)" attribute="HTTP method"/><RegExpr String="\s+(PROPFIND|PROPPATCH|MKCOL|COPY|MOVE|LOCK|UNLOCK|CONNECT|PATCH)" attribute="HTTP WebDAV method"/><RegExpr String="\s+(PURGE|PURGESTR)" attribute="HTTP custom method"/><Float attribute="Float"/><Int attribute="Decimal"/><IncludeRules context="strings"/><IncludeRules context="comments"/></context><context name="brace-string" attribute="String"><DetectChar char="{" attribute="String" context="brace-string-internal"/><DetectChar char="}" attribute="String" context="#pop#pop" endRegion="string_block"/></context><context name="chunkedlen_instruction" attribute="Normal Text" lineEndContext="#pop"><Int attribute="Decimal"/><IncludeRules context="comments"/></context><context name="client_declaration" attribute="Normal Text" lineEndContext="#pop"><DetectIdentifier attribute="Client Identifier" context="client_identified"/></context><context name="client_identified" attribute="String" lineEndContext="#pop"><IncludeRules context="client_options"/><DetectChar char="{" attribute="Region Marker" context="client_definition" beginRegion="client_block"/><LineContinue attribute="Normal Text"/></context><context name="client_loop_code" attribute="Normal Text"><DetectChar char="}" attribute="Region Marker" context="#pop#pop#pop" endRegion="loop_block"/><IncludeRules context="client_definition"/></context><context name="client_loop_defined" attribute="Normal Text"><DetectChar char="{" attribute="Region Marker" context="client_loop_code" beginRegion="loop_block"/></context><context name="client_loop_instruction" attribute="Normal Text"><Int attribute="Decimal" context="client_loop_defined"/></context><context name="client_postdefinition" attribute="Normal Text" lineEndContext="#pop#pop#pop#pop"><IncludeRules context="client_options"/><LineContinue attribute="Normal Text"/></context><context name="clierr_options" attribute="Normal Text" lineEndContext="#pop"><Int attribute="Decimal" context="clierr_command"/><RegExpr String='"[0-9]+" ' attribute="Decimal" context="clierr_command"/><IncludeRules context="comments"/></context><context name="common_expectation_arg2_brace-string" attribute="String"><DetectChar char="{" attribute="String" context="brace-string-internal"/><DetectChar char="}" attribute="String" context="common_expectation_end" endRegion="string_block"/></context><context name="common_expectation_arg2_quoted-string" attribute="String" lineEndContext="#pop#pop"><StringDetect String='\"' attribute="String"/><DetectChar char='"' attribute="String" context="common_expectation_end"/></context><context name="common_expectation_arg2_unquoted-string" attribute="String" lineEndContext="#pop#pop"><AnyChar String="&#9; " attribute="Normal Text" context="common_expectation_end"/></context><context name="errvcl_expected_error_brace" attribute="String" lineEndContext="#pop"><DetectChar char="{" attribute="String" context="brace-string-internal"/><DetectChar char="}" attribute="String" context="varnish_errvcldefined" endRegion="string_block"/></context><context name="errvcl_expected_error_quoted" attribute="String" lineEndContext="#pop"><StringDetect String='\"' attribute="String"/><DetectChar char='"' attribute="String" context="varnish_errvcldefined"/></context><context name="feature_instruction" attribute="String" lineEndContext="#pop"><IncludeRules context="strings"/><IncludeRules context="comments"/></context><context name="global_directives_restricted" attribute="Normal Text"><StringDetect String="varnishtest" attribute="Keyword" context="varnishtest_declaration" firstNonSpace="1"/><StringDetect String="feature" attribute="Keyword" context="feature_instruction" firstNonSpace="1"/><RegExpr String="^\s*random\s*$" attribute="Keyword" column="0"/></context><context name="global_loop_code" attribute="Normal Text"><DetectChar char="}" attribute="Region Marker" context="#pop#pop#pop" endRegion="loop_block"/><IncludeRules context="global_directives"/></context><context name="global_loop_defined" attribute="Normal Text"><DetectChar char="{" attribute="Region Marker" context="global_loop_code" beginRegion="loop_block"/></context><context name="global_loop_instruction" attribute="Normal Text"><Int attribute="Decimal" context="global_loop_defined"/></context><context name="http_expectation_arg1_brace-string" attribute="String"><DetectChar char="{" attribute="String" context="brace-string-internal"/><DetectChar char="}" attribute="String" context="http_expectation_operator" endRegion="string_block"/></context><context name="http_expectation_arg1_quoted-string" attribute="String" lineEndContext="#pop#pop"><StringDetect String='\"' attribute="String"/><DetectChar char='"' attribute="String" context="http_expectation_operator"/></context><context name="http_expectation_arg1_unquoted-string" attribute="String" lineEndContext="#pop#pop"><AnyChar String="&#9; " attribute="Normal Text" context="http_expectation_operator"/></context><context name="logexpect_declaration" attribute="Normal Text" lineEndContext="#pop"><DetectIdentifier attribute="LogExpect Identifier" context="logexpect_identified"/></context><context name="logexpect_definition" attribute="Normal Text"><DetectChar char="}" attribute="Region Marker" context="logexpect_postdefinition" endRegion="logexpect_block"/><StringDetect String="expect" attribute="Action Keyword" context="logexpect_skip" firstNonSpace="1"/></context><context name="logexpect_grouping_arg" attribute="Normal Text" lineEndContext="#pop"><keyword String="VSLGrouping" attribute="VSL Grouping" context="#pop"/></context><context name="logexpect_headtailmode_arg" attribute="Normal Text" lineEndContext="#pop"><AnyChar String="01" attribute="Decimal" context="#pop"/></context><context name="logexpect_identified" attribute="Normal Text" lineEndContext="#pop"><LineContinue attribute="Normal Text"/><IncludeRules context="logexpect_options"/><StringDetect String="-v" attribute="Keyword" context="logexpect_varnishinstance_arg"/><StringDetect String="-g" attribute="Keyword" context="logexpect_grouping_arg"/><StringDetect String="-d" attribute="Keyword" context="logexpect_headtailmode_arg"/><StringDetect String="-q" attribute="Keyword" context="logexpect_query_arg"/><DetectChar char="{" attribute="Region Marker" context="logexpect_definition" beginRegion="logexpect_block"/></context><context name="logexpect_postdefinition" attribute="Normal Text" lineEndContext="#pop#pop#pop#pop"><IncludeRules context="logexpect_options"/></context><context name="logexpect_query_arg" attribute="Normal Text" lineEndContext="#pop"><IncludeRules context="string-arg"/></context><context name="logexpect_skip" attribute="Normal Text" lineEndContext="#pop"><Int attribute="Decimal" context="logexpect_vxid"/><DetectChar char="*" attribute="Logical Operator" context="logexpect_vxid"/></context><context name="logexpect_varnishinstance_arg" attribute="Normal Text" lineEndContext="#pop"><DetectIdentifier attribute="Varnish Identifier" context="#pop"/></context><context name="macro_accepted" attribute="String" lineEndContext="#pop"><StringDetect String="${" attribute="String" context="macro_identifier"/></context><context name="macro_identifier" attribute="String" lineEndContext="#pop#pop"><DetectChar char="}" attribute="String" context="#pop"/></context><context name="quoted-string" attribute="String" lineEndContext="#pop#pop"><StringDetect String='\"' attribute="String"/><DetectChar char='"' attribute="String" context="#pop#pop"/></context><context name="rxresp_options" attribute="Normal Text" lineEndContext="#pop"><IncludeRules context="comments"/><StringDetect String="-no_obj" attribute="RxResp Keyword"/><LineContinue attribute="Normal Text"/></context><context name="sema_identified" attribute="Normal Text" lineEndContext="#pop#pop"><StringDetect String="sync" attribute="Keyword"/><Int attribute="Decimal"/><IncludeRules context="comments"/></context><context name="server_declaration" attribute="Normal Text" lineEndContext="#pop"><DetectIdentifier attribute="Server Identifier" context="server_identified"/></context><context name="server_identified" attribute="String" lineEndContext="#pop"><IncludeRules context="server_options"/><DetectChar char="{" attribute="Region Marker" context="server_definition" beginRegion="server_block"/><LineContinue attribute="Normal Text"/></context><context name="server_loop_code" attribute="Normal Text"><DetectChar char="}" attribute="Region Marker" context="#pop#pop#pop" endRegion="loop_block"/><IncludeRules context="server_definition"/></context><context name="server_loop_defined" attribute="Normal Text"><DetectChar char="{" attribute="Region Marker" context="server_loop_code" beginRegion="loop_block"/></context><context name="server_loop_instruction" attribute="Normal Text"><Int attribute="Decimal" context="server_loop_defined"/></context><context name="server_postdefinition" attribute="Normal Text" lineEndContext="#pop#pop#pop#pop"><IncludeRules context="server_options"/><LineContinue attribute="Normal Text"/></context><context name="shell-like-comment" attribute="Comment" lineEndContext="#pop"><DetectSpaces/><IncludeRules context="##Comments"/><DetectIdentifier/></context><context name="shell_code" attribute="Normal Text" fallthroughContext="Command##Bash"><DetectChar char="}" attribute="Region Marker" context="#pop#pop" endRegion="shell_block"/><IncludeRules context="##Bash"/></context><context name="shell_instruction" attribute="Normal Text"><DetectChar char="{" attribute="Region Marker" context="shell_code" beginRegion="shell_block"/><IncludeRules context="quoted-strings"/><IncludeRules context="comments"/></context><context name="status-arg" attribute="String" lineEndContext="#pop"><RegExpr String='("[12345][0-9]{2}"|[12345][0-9]{2})(?![0-9])' attribute="Decimal" context="#pop"/></context><context name="string" attribute="String" lineEndContext="#pop"><StringDetect String='\"' attribute="String"/><DetectChar char='"' attribute="String" context="#pop"/></context><context name="timeout_instruction" attribute="Normal Text" lineEndContext="#pop"><IncludeRules context="int-arg"/><IncludeRules context="comments"/></context><context name="txreq_options" attribute="String" lineEndContext="#pop"><IncludeRules context="tx_options"/><RegExpr String="\-(?:req|url)" attribute="TxReq Keyword" context="string-arg"/></context><context name="txresp_options" attribute="Normal Text" lineEndContext="#pop"><IncludeRules context="tx_options"/><StringDetect String="-msg" attribute="TxResp Keyword" context="string-arg"/><StringDetect String="-status" attribute="TxResp Keyword" context="status-arg"/></context><context name="unquoted-string" attribute="String" lineEndContext="#pop#pop"><AnyChar String="&#9; " attribute="Normal Text" context="#pop#pop"/></context><context name="unquoted-strings" attribute="String" lineEndContext="#pop"><RegExpr String="[^ ]" attribute="String" context="unquoted-string"/></context><context name="varnish_declaration" attribute="Normal Text" lineEndContext="#pop"><DetectIdentifier attribute="Varnish Identifier" context="varnish_identified"/></context><context name="varnish_errvclannounced" attribute="Normal Text"><DetectChar char='"' attribute="String" context="errvcl_expected_error_quoted"/><DetectChar char="{" attribute="String" context="errvcl_expected_error_brace" beginRegion="string_block"/></context><context name="varnish_errvclcode" attribute="Normal Text"><DetectChar char="{" attribute="Normal Text" context="varnish_errvclcode-internal"/><DetectChar char="}" attribute="Region Marker" context="varnish_postvcldefinition" endRegion="errvclcode_block"/></context><context name="varnish_expectation" attribute="Normal Text" lineEndContext="#pop"><IncludeRules context="comments"/><RegExpr String="backend_(?:busy|conn|fail|recycle|req|retry|reuse|toolate|unhealthy)|bans_(?:added|completed|deleted|dups|lurker_(?:contention|obj_killed|tested|tests_tested)|obj|obj_killed|persisted_(bytes|fragmentation)|req|tested|tests_tested)|busy_(?:sleep|wakeup)|cache_(?:hit(pass)?|miss)|client_(?:req|req_4(?:00|11|13|17))|esi_(?:errors|warnings)|exp_(?:mailed|received)|fetch_(?:1xx|204|304|bad|chunked|close|eof|failed|head|length|oldhttp|zero)|hcb_(?:insert|lock|nolock)|n_(?:backend|expired|gunzip|gzip|lru_moved|lru_nuked|obj_purged|object|objectcore|objecthead|purges|vampireobject|vcl|vcl_avail|vcl_discard|waitinglist)|s_(?:fetch|pass|pipe|pipe_(?:hdrbytes|in|out)|req|(req|resp)_(?:body|hdr)bytes|sess|synth)|sess_(?:closed|conn|drop|dropped|fail|herd|pipe_overflow|pipeline|queued|readahead)|shm_(?:cont|cycles|flushes|records|writes)|sms_(?:balloc|bfree|nbytes|nobj|nreq)|thread_(?:queue_len|created|destroyed|failed|limited)|vsm_(?:cooling|free|overflow(ed)?|user)|(?:bans|losthdr|pools|threads|uptime|vmods)|LCK\.(?:sm[spaf]|hsl|hcb|hcl|vcl|stat|sessmem|wstat|herder|wq|objhdr|exp|lru|cli|ban|vbp|vbe|backend)\.(?:creat|destroy|locks)|SMA\.[a-zA-Z0-9_\-]+\.(?:c_(?:req|fail|bytes|freed)|g_(?:alloc|bytes|space))|SMF\.[a-zA-Z0-9_\-]+\.(?:c_(?:req|fail|bytes|freed)|g_(?:alloc|bytes|space|smf|smf_frag|smf_large))|VBE\..+\.(?:happy|vcls|be(?:req|resp)_(?:body|hdr)bytes|pipe_(?:in|hdrbytes|out))|MEMPOOL\.vbc\.(?:pool|surplus|timeout)" attribute="VarnishStat metric" context="varnish_expectation_operator"/></context><context name="varnish_expectation_operator" attribute="Normal Text" lineEndContext="#pop#pop"><IncludeRules context="comments"/><StringDetect String="==" attribute="Comparison Operator" context="varnish_expectation_second_arg"/><StringDetect String="!=" attribute="Comparison Operator" context="varnish_expectation_second_arg"/><StringDetect String=">=" attribute="Comparison Operator" context="varnish_expectation_second_arg"/><StringDetect String="&lt;=" attribute="Comparison Operator" context="varnish_expectation_second_arg"/><AnyChar String=">&lt;" attribute="Comparison Operator" context="varnish_expectation_second_arg"/></context><context name="varnish_identified" attribute="Normal Text" lineEndContext="#pop"><IncludeRules context="varnish_options"/><RegExpr String="\s*\-vcl(?:\+backend)?" attribute="Keyword" context="varnish_vclannounced"/><RegExpr String="\s*\-errvcl" attribute="Keyword" context="varnish_errvclannounced"/><LineContinue attribute="Normal Text"/></context><context name="varnish_vclannounced" attribute="Normal Text"><DetectChar char="{" attribute="Region Marker" context="varnish_vcldefinition" beginRegion="varnish_block"/></context><context name="varnish_vcldefinition" attribute="Normal Text"><IncludeRules context="##Varnish Configuration Language"/><DetectChar char="}" attribute="Region Marker" context="varnish_postvcldefinition" endRegion="varnish_block"/></context><context name="varnishtest_declaration" attribute="Normal Text" lineEndContext="#pop"><IncludeRules context="strings"/><IncludeRules context="comments"/></context></contexts><itemDatas><itemData name="Normal Text" defStyleNum="dsNormal"/><itemData name="Comment" defStyleNum="dsComment"/><itemData name="Keyword" defStyleNum="dsKeyword"/><itemData name="Tx Keyword" defStyleNum="dsOthers"/><itemData name="TxReq Keyword" defStyleNum="dsOthers"/><itemData name="TxResp Keyword" defStyleNum="dsOthers"/><itemData name="RxResp Keyword" defStyleNum="dsOthers"/><itemData name="Action Keyword" defStyleNum="dsKeyword"/><itemData name="Comparison Operator" defStyleNum="dsOthers"/><itemData name="Logical Operator" defStyleNum="dsOthers"/><itemData name="String" defStyleNum="dsString"/><itemData name="Region Marker" defStyleNum="dsNormal"/><itemData name="HTTP Property" defStyleNum="dsAttribute" bold="0" italic="0"/><itemData name="HTTP Header" defStyleNum="dsExtension" bold="0" italic="0"/><itemData name="HTTP X- Header" defStyleNum="dsExtension" bold="0" italic="1"/><itemData name="HTTP announce" defStyleNum="dsFunction" bold="1"/><itemData name="HTTP method" defStyleNum="dsFunction" bold="1"/><itemData name="HTTP WebDAV method" defStyleNum="dsFunction" bold="1"/><itemData name="HTTP custom method" defStyleNum="dsFunction" bold="1"/><itemData name="VarnishStat metric" defStyleNum="dsAttribute" bold="0" italic="0"/><itemData name="VSL Tag" defStyleNum="dsAttribute" bold="0" italic="0"/><itemData name="VSL Grouping" defStyleNum="dsAttribute" bold="0" italic="0"/><itemData name="Decimal" defStyleNum="dsDecVal"/><itemData name="Float" defStyleNum="dsFloat" spellChecking="0"/><itemData name="Client Identifier" defStyleNum="dsExtension" bold="0" underline="1"/><itemData name="Server Identifier" defStyleNum="dsExtension" bold="0" underline="1"/><itemData name="Varnish Identifier" defStyleNum="dsExtension" bold="0" underline="1"/><itemData name="LogExpect Identifier" defStyleNum="dsExtension" bold="0" underline="1"/><itemData name="Sema Identifier" defStyleNum="dsExtension" bold="0" underline="1"/></itemDatas></highlighting><general><comments><comment name="singleLine" start="#"/></comments><keywords casesensitive="1"/></general></language>