Update runtime files.
diff --git a/runtime/syntax/cs.vim b/runtime/syntax/cs.vim
index 111bc85..116afe0 100644
--- a/runtime/syntax/cs.vim
+++ b/runtime/syntax/cs.vim
@@ -1,12 +1,12 @@
 " Vim syntax file
-" Language:		C#
-" Maintainer:		Nick Jensen <nickspoon@gmail.com>
-" Former Maintainer:	Anduin Withers <awithers@anduin.com>
-" Former Maintainer:	Johannes Zellner <johannes@zellner.org>
-" Last Change:		2018-05-02
-" Filenames:		*.cs
-" License:		Vim (see :h license)
-" Repository:		https://github.com/nickspoons/vim-cs
+" Language:            C#
+" Maintainer:          Nick Jensen <nickspoon@gmail.com>
+" Former Maintainers:  Anduin Withers <awithers@anduin.com>
+"                      Johannes Zellner <johannes@zellner.org>
+" Last Change:         2018-06-29
+" Filenames:           *.cs
+" License:             Vim (see :h license)
+" Repository:          https://github.com/nickspoons/vim-cs
 "
 " REFERENCES:
 " [1] ECMA TC39: C# Language Specification (WD13Oct01.doc)
@@ -19,146 +19,190 @@
 set cpo&vim
 
 
-syn keyword csType			bool byte char decimal double float int long object sbyte short string T uint ulong ushort var void dynamic
-syn keyword csStorage			delegate enum interface namespace struct
-syn keyword csRepeat			break continue do for foreach goto return while
-syn keyword csConditional		else if switch
-syn keyword csLabel			case default
-" there's no :: operator in C#
-syn match csOperatorError		display +::+
+syn keyword	csType	bool byte char decimal double float int long object sbyte short string T uint ulong ushort var void dynamic
+syn keyword	csStorage	delegate enum interface namespace struct
+syn keyword	csRepeat	break continue do for foreach goto return while
+syn keyword	csConditional	else if switch
+syn keyword	csLabel	case default
+syn match	csOperatorError	display +::+
+syn match	csGlobal	display +global::+
 " user labels (see [1] 8.6 Statements)
-syn match   csLabel			display +^\s*\I\i*\s*:\([^:]\)\@=+
-syn keyword csModifier			abstract const extern internal override private protected public readonly sealed static virtual volatile
-syn keyword csConstant			false null true
-syn keyword csException			try catch finally throw when
-syn keyword csLinq			ascending by descending equals from group in into join let on orderby select where
-syn keyword csAsync			async await
+syn match	csLabel	display +^\s*\I\i*\s*:\([^:]\)\@=+
+syn keyword	csModifier	abstract const extern internal override private protected public readonly sealed static virtual volatile
+syn keyword	csConstant	false null true
+syn keyword	csException	try catch finally throw when
+syn keyword	csLinq	ascending by descending equals from group in into join let on orderby select where
+syn keyword	csAsync	async await
 
-syn keyword csUnspecifiedStatement	as base checked event fixed get in is lock nameof operator out params ref set sizeof stackalloc this typeof unchecked unsafe using
-syn keyword csUnsupportedStatement	add remove value
-syn keyword csUnspecifiedKeyword	explicit implicit
+syn keyword	csUnspecifiedStatement	as base checked event fixed in is lock nameof operator out params ref sizeof stackalloc this typeof unchecked unsafe using
+syn keyword	csUnsupportedStatement	add remove value
+syn keyword	csUnspecifiedKeyword	explicit implicit
 
 " Contextual Keywords
-syn match csContextualStatement	/\<yield[[:space:]\n]\+\(return\|break\)/me=s+5
-syn match csContextualStatement	/\<partial[[:space:]\n]\+\(class\|struct\|interface\)/me=s+7
-syn match csContextualStatement	/\<\(get\|set\)[[:space:]\n]*{/me=s+3
-syn match csContextualStatement	/\<where\>[^:]\+:/me=s+5
+syn match	csContextualStatement	/\<yield[[:space:]\n]\+\(return\|break\)/me=s+5
+syn match	csContextualStatement	/\<partial[[:space:]\n]\+\(class\|struct\|interface\)/me=s+7
+syn match	csContextualStatement	/\<\(get\|set\)\(;\|[[:space:]\n]*{\)/me=s+3
+syn match	csContextualStatement	/\<where\>[^:]\+:/me=s+5
+
+" Punctuation
+syn match	csBraces	"[{}\[\]]" display
+syn match	csParens	"[()]" display
+syn match	csOpSymbols	"[+\-><=]\{1,2}" display
+syn match	csOpSymbols	"[!><+\-*/]=" display
+syn match	csOpSymbols	"[!*/^]" display
+syn match	csOpSymbols	"=>" display
+syn match	csEndColon	";" display
+syn match	csLogicSymbols	"&&" display
+syn match	csLogicSymbols	"||" display
+syn match	csLogicSymbols	"?" display
+syn match	csLogicSymbols	":" display
 
 " Comments
 "
 " PROVIDES: @csCommentHook
-"
-" TODO: include strings ?
-"
-syn keyword csTodo		contained TODO FIXME XXX NOTE HACK
-syn region  csComment		start="/\*"  end="\*/" contains=@csCommentHook,csTodo,@Spell
-syn match   csComment		"//.*$" contains=@csCommentHook,csTodo,@Spell
+syn keyword	csTodo	contained TODO FIXME XXX NOTE HACK TBD
+syn region	csComment	start="/\*"  end="\*/" contains=@csCommentHook,csTodo,@Spell
+syn match	csComment	"//.*$" contains=@csCommentHook,csTodo,@Spell
 
 " xml markup inside '///' comments
-syn cluster xmlRegionHook	add=csXmlCommentLeader
-syn cluster xmlCdataHook	add=csXmlCommentLeader
-syn cluster xmlStartTagHook	add=csXmlCommentLeader
-syn keyword csXmlTag		contained Libraries Packages Types Excluded ExcludedTypeName ExcludedLibraryName
-syn keyword csXmlTag		contained ExcludedBucketName TypeExcluded Type TypeKind TypeSignature AssemblyInfo
-syn keyword csXmlTag		contained AssemblyName AssemblyPublicKey AssemblyVersion AssemblyCulture Base
-syn keyword csXmlTag		contained BaseTypeName Interfaces Interface InterfaceName Attributes Attribute
-syn keyword csXmlTag		contained AttributeName Members Member MemberSignature MemberType MemberValue
-syn keyword csXmlTag		contained ReturnValue ReturnType Parameters Parameter MemberOfPackage
-syn keyword csXmlTag		contained ThreadingSafetyStatement Docs devdoc example overload remarks returns summary
-syn keyword csXmlTag		contained threadsafe value internalonly nodoc exception param permission platnote
-syn keyword csXmlTag		contained seealso b c i pre sub sup block code note paramref see subscript superscript
-syn keyword csXmlTag		contained list listheader item term description altcompliant altmember
+syn cluster	xmlRegionHook	add=csXmlCommentLeader
+syn cluster	xmlCdataHook	add=csXmlCommentLeader
+syn cluster	xmlStartTagHook	add=csXmlCommentLeader
+syn keyword	csXmlTag	contained Libraries Packages Types Excluded ExcludedTypeName ExcludedLibraryName
+syn keyword	csXmlTag	contained ExcludedBucketName TypeExcluded Type TypeKind TypeSignature AssemblyInfo
+syn keyword	csXmlTag	contained AssemblyName AssemblyPublicKey AssemblyVersion AssemblyCulture Base
+syn keyword	csXmlTag	contained BaseTypeName Interfaces Interface InterfaceName Attributes Attribute
+syn keyword	csXmlTag	contained AttributeName Members Member MemberSignature MemberType MemberValue
+syn keyword	csXmlTag	contained ReturnValue ReturnType Parameters Parameter MemberOfPackage
+syn keyword	csXmlTag	contained ThreadingSafetyStatement Docs devdoc example overload remarks returns summary
+syn keyword	csXmlTag	contained threadsafe value internalonly nodoc exception param permission platnote
+syn keyword	csXmlTag	contained seealso b c i pre sub sup block code note paramref see subscript superscript
+syn keyword	csXmlTag	contained list listheader item term description altcompliant altmember
 
 syn cluster xmlTagHook add=csXmlTag
 
-syn match   csXmlCommentLeader	+\/\/\/+    contained
-syn match   csXmlComment	+\/\/\/.*$+ contains=csXmlCommentLeader,@csXml,@Spell
-syntax include @csXml syntax/xml.vim
-hi def link xmlRegion Comment
+syn match	csXmlCommentLeader	+\/\/\/+    contained
+syn match	csXmlComment	+\/\/\/.*$+ contains=csXmlCommentLeader,@csXml,@Spell
+syn include	@csXml syntax/xml.vim
+hi def link	xmlRegion Comment
 
 
 " [1] 9.5 Pre-processing directives
-syn region	csPreCondit
-    \ start="^\s*#\s*\(define\|undef\|if\|elif\|else\|endif\|line\|error\|warning\)"
-    \ skip="\\$" end="$" contains=csComment keepend
-syn region	csRegion matchgroup=csPreCondit start="^\s*#\s*region.*$"
-    \ end="^\s*#\s*endregion" transparent fold contains=TOP
-syn region	csSummary start="^\s*/// <summary" end="^\(\s*///\)\@!" transparent fold keepend
+syn region	csPreCondit	start="^\s*#\s*\(define\|undef\|if\|elif\|else\|endif\|line\|error\|warning\)" skip="\\$" end="$" contains=csComment keepend
+syn region	csRegion	matchgroup=csPreCondit start="^\s*#\s*region.*$" end="^\s*#\s*endregion" transparent fold contains=TOP
+syn region	csSummary	start="^\s*/// <summary" end="^\%\(\s*///\)\@!" transparent fold keepend
 
 
-syn region	csClassType start="\(@\)\@<!class\>"hs=s+6 end="[:\n{]"he=e-1 contains=csClass
-syn region	csNewType start="\(@\)\@<!new\>"hs=s+4 end="[\(\<{\[]"he=e-1 contains=csNew contains=csNewType
-syn region	csIsType start="\v (is|as) "hs=s+4 end="\v[A-Za-z0-9]+" oneline contains=csIsAs
-syn keyword	csNew new contained
-syn keyword	csClass class contained
-syn keyword	csIsAs is as
+syn region	csClassType	start="@\@1<!\<class\>"hs=s+6 end="[:\n{]"me=e-1 contains=csClass
+syn region	csNewType	start="@\@1<!\<new\>"hs=s+4 end="[;\n{(<\[]"me=e-1 contains=csNew contains=csNewType
+syn region	csIsType	start=" is "hs=s+4 end="[A-Za-z0-9]\+" oneline contains=csIsAs
+syn region	csIsType	start=" as "hs=s+4 end="[A-Za-z0-9]\+" oneline contains=csIsAs
+syn keyword	csNew	new contained
+syn keyword	csClass	class contained
+syn keyword	csIsAs	is as
 
 " Strings and constants
-syn match   csSpecialError	contained "\\."
-syn match   csSpecialCharError	contained "[^']"
+syn match	csSpecialError	"\\." contained
+syn match	csSpecialCharError	"[^']" contained
 " [1] 9.4.4.4 Character literals
-syn match   csSpecialChar	contained +\\["\\'0abfnrtvx]+
-" unicode characters
-syn match   csUnicodeNumber	+\\\(u\x\{4}\|U\x\{8}\)+ contained contains=csUnicodeSpecifier
-syn match   csUnicodeSpecifier	+\\[uU]+ contained
-syn region  csVerbatimString	start=+@"+ end=+"+ skip=+""+ contains=csVerbatimSpec,@Spell
-syn match   csVerbatimSpec	+@"+he=s+1 contained
-syn region  csString		start=+"+  end=+"+ end=+$+ contains=csSpecialChar,csSpecialError,csUnicodeNumber,@Spell
-syn match   csCharacter		"'[^']*'" contains=csSpecialChar,csSpecialCharError
-syn match   csCharacter		"'\\''" contains=csSpecialChar
-syn match   csCharacter		"'[^\\]'"
-syn match   csNumber		"\<\(0[0-7]*\|0[xX]\x\+\|\d\+\)[lL]\=\>"
-syn match   csNumber		"\(\<\d\+\.\d*\|\.\d\+\)\([eE][-+]\=\d\+\)\=[fFdD]\="
-syn match   csNumber		"\<\d\+[eE][-+]\=\d\+[fFdD]\=\>"
-syn match   csNumber		"\<\d\+\([eE][-+]\=\d\+\)\=[fFdD]\>"
+syn match	csSpecialChar	+\\["\\'0abfnrtvx]+ contained display
+syn match	csUnicodeNumber	+\\u\x\{4}+ contained contains=csUnicodeSpecifier display
+syn match	csUnicodeNumber	+\\U\x\{8}+ contained contains=csUnicodeSpecifier display
+syn match	csUnicodeSpecifier	+\\[uU]+ contained display
+
+syn region	csString	matchgroup=csQuote start=+"+  end=+"+ end=+$+ extend contains=csSpecialChar,csSpecialError,csUnicodeNumber,@Spell
+syn match	csCharacter	"'[^']*'" contains=csSpecialChar,csSpecialCharError display
+syn match	csCharacter	"'\\''" contains=csSpecialChar display
+syn match	csCharacter	"'[^\\]'" display
+syn match	csNumber	"\<0[0-7]*[lL]\=\>" display
+syn match	csNumber	"\<0[xX]\x\+[lL]\=\>" display
+syn match	csNumber	"\<\d\+[lL]\=\>" display
+syn match	csNumber	"\<\d\+\.\d*\%\([eE][-+]\=\d\+\)\=[fFdD]\=" display
+syn match	csNumber	"\.\d\+\%\([eE][-+]\=\d\+\)\=[fFdD]\=" display
+syn match	csNumber	"\<\d\+[eE][-+]\=\d\+[fFdD]\=\>" display
+syn match	csNumber	"\<\d\+\%\([eE][-+]\=\d\+\)\=[fFdD]\>" display
+
+syn region	csInterpolatedString	matchgroup=csQuote start=+\$"+ end=+"+ end=+$+ extend contains=csInterpolation,csEscapedInterpolation,csSpecialChar,csSpecialError,csUnicodeNumber,@Spell
+
+syn region	csInterpolation	matchgroup=csInterpolationDelimiter start=+{+ end=+}+ keepend contained contains=@csAll,csBracketed,csInterpolationAlign,csInterpolationFormat
+syn match	csEscapedInterpolation	"{{" transparent contains=NONE display
+syn match	csEscapedInterpolation	"}}" transparent contains=NONE display
+syn region	csInterpolationAlign	matchgroup=csInterpolationAlignDel start=+,+ end=+}+ end=+:+me=e-1 contained contains=csNumber,csConstant,csCharacter,csParens,csOpSymbols,csString,csBracketed display
+syn match	csInterpolationFormat	+:[^}]\+}+ contained contains=csInterpolationFormatDel display
+syn match	csInterpolationAlignDel	+,+ contained display
+syn match	csInterpolationFormatDel	+:+ contained display
+
+syn region	csVerbatimString	matchgroup=csQuote start=+@"+ end=+"+ skip=+""+ extend contains=csVerbatimQuote,@Spell
+syn match	csVerbatimQuote	+""+ contained
+syn match	csQuoteError	+@$"+he=s+2,me=s+2
+
+syn region	csInterVerbString	matchgroup=csQuote start=+\$@"+ end=+"+ skip=+""+ extend contains=csInterpolation,csEscapedInterpolation,csSpecialChar,csSpecialError,csUnicodeNumber,csVerbatimQuote,@Spell
+
+syn region	csBracketed	matchgroup=csParens start=+(+ end=+)+ contained transparent contains=@csAll,csBracketed
+
+syn cluster	csAll	contains=csCharacter,csClassType,csComment,csContextualStatement,csEndColon,csInterpolatedString,csIsType,csLabel,csLogicSymbols,csNewType,csConstant,csNumber,csOpSymbols,csOperatorError,csParens,csPreCondit,csRegion,csString,csSummary,csUnicodeNumber,csUnicodeSpecifier,csVerbatimString
 
 " The default highlighting.
-hi def link csType			Type
-hi def link csNewType			Type
-hi def link csClassType			Type
-hi def link csIsType			Type
-hi def link csStorage			StorageClass
-hi def link csClass			StorageClass
-hi def link csRepeat			Repeat
-hi def link csConditional		Conditional
-hi def link csLabel			Label
-hi def link csModifier			StorageClass
-hi def link csConstant			Constant
-hi def link csException			Exception
-hi def link csUnspecifiedStatement	Statement
-hi def link csUnsupportedStatement	Statement
-hi def link csUnspecifiedKeyword	Keyword
-hi def link csNew			Statement
-hi def link csLinq			Statement
-hi def link csIsAs 			Keyword
-hi def link csAsync			Keyword
-hi def link csContextualStatement	Statement
-hi def link csOperatorError		Error
-hi def link csInterfaceDeclaration	Include
+hi def link	csType	Type
+hi def link	csNewType	Type
+hi def link	csClassType	Type
+hi def link	csIsType	Type
+hi def link	csStorage	StorageClass
+hi def link	csClass	StorageClass
+hi def link	csRepeat	Repeat
+hi def link	csConditional	Conditional
+hi def link	csLabel	Label
+hi def link	csModifier	StorageClass
+hi def link	csConstant	Constant
+hi def link	csException	Exception
+hi def link	csUnspecifiedStatement	Statement
+hi def link	csUnsupportedStatement	Statement
+hi def link	csUnspecifiedKeyword	Keyword
+hi def link	csNew	Statement
+hi def link	csLinq	Statement
+hi def link	csIsAs 	Keyword
+hi def link	csAsync	Keyword
+hi def link	csContextualStatement	Statement
+hi def link	csOperatorError	Error
+hi def link	csInterfaceDeclaration	Include
 
-hi def link csTodo			Todo
-hi def link csComment			Comment
+hi def link	csTodo	Todo
+hi def link	csComment	Comment
 
-hi def link csSpecialError		Error
-hi def link csSpecialCharError		Error
-hi def link csString			String
-hi def link csVerbatimString		String
-hi def link csVerbatimSpec		SpecialChar
-hi def link csPreCondit			PreCondit
-hi def link csCharacter			Character
-hi def link csSpecialChar		SpecialChar
-hi def link csNumber			Number
-hi def link csUnicodeNumber		SpecialChar
-hi def link csUnicodeSpecifier		SpecialChar
+hi def link	csEndColon	Statement
+hi def link	csOpSymbols	Operator
+hi def link	csLogicSymbols	Boolean
+hi def link	csBraces	Function
+hi def link	csParens	Operator
+
+hi def link	csSpecialError	Error
+hi def link	csSpecialCharError	Error
+hi def link	csString	String
+hi def link	csQuote	String
+hi def link	csQuoteError	Error
+hi def link	csInterpolatedString	String
+hi def link	csVerbatimString	String
+hi def link	csInterVerbString	String
+hi def link	csVerbatimQuote	SpecialChar
+hi def link	csPreCondit	PreCondit
+hi def link	csCharacter	Character
+hi def link	csSpecialChar	SpecialChar
+hi def link	csNumber	Number
+hi def link	csUnicodeNumber	SpecialChar
+hi def link	csUnicodeSpecifier	SpecialChar
+hi def link	csInterpolationDelimiter	Delimiter
+hi def link	csInterpolationAlignDel	csInterpolationDelimiter
+hi def link	csInterpolationFormat	csInterpolationDelimiter
+hi def link	csInterpolationFormatDel	csInterpolationDelimiter
 
 " xml markup
-hi def link csXmlCommentLeader		Comment
-hi def link csXmlComment		Comment
-hi def link csXmlTag			Statement
+hi def link	csXmlCommentLeader	Comment
+hi def link	csXmlComment	Comment
+hi def link	csXmlTag	Statement
 
 let b:current_syntax = "cs"
 
 let &cpo = s:cs_cpo_save
 unlet s:cs_cpo_save
 
-" vim: ts=8
+" vim: vts=16,28
diff --git a/runtime/syntax/pf.vim b/runtime/syntax/pf.vim
index 81add10..b928dc4 100644
--- a/runtime/syntax/pf.vim
+++ b/runtime/syntax/pf.vim
@@ -2,12 +2,13 @@
 " Language:        OpenBSD packet filter configuration (pf.conf)
 " Original Author: Camiel Dobbelaar <cd@sentia.nl>
 " Maintainer:      Lauri Tirkkonen <lotheac@iki.fi>
-" Last Change:     2016 Jul 06
+" Last Change:     2018 Jul 16
 
 if exists("b:current_syntax")
   finish
 endif
 
+let b:current_syntax = "pf"
 setlocal foldmethod=syntax
 syn iskeyword @,48-57,_,-,+
 syn sync fromstart
@@ -17,7 +18,7 @@
 syn keyword	pfCmd		queue set table
 syn match	pfCmd		/^\s*load\sanchor\>/
 syn keyword	pfTodo		TODO XXX contained
-syn keyword	pfWildAddr	all any
+syn keyword	pfWildAddr	any no-route urpf-failed self
 syn match	pfComment	/#.*$/ contains=pfTodo
 syn match	pfCont		/\\$/
 syn match	pfErrClose	/}/
@@ -36,57 +37,6 @@
 syn region	pfString	start=/"/ skip=/\\"/ end=/"/ contains=pfIPv4,pfIPv6,pfNetmask,pfTable,pfVar
 syn region	pfString	start=/'/ skip=/\\'/ end=/'/ contains=pfIPv4,pfIPv6,pfNetmask,pfTable,pfVar
 
-syn keyword	pfService	802-11-iapp Microsoft-SQL-Monitor
-syn keyword	pfService	Microsoft-SQL-Server NeXTStep NextStep
-syn keyword	pfService	afpovertcp afs3-bos afs3-callback afs3-errors
-syn keyword	pfService	afs3-fileserver afs3-kaserver afs3-prserver
-syn keyword	pfService	afs3-rmtsys afs3-update afs3-vlserver
-syn keyword	pfService	afs3-volser amt-redir-tcp amt-redir-tls
-syn keyword	pfService	amt-soap-http amt-soap-https asf-rmcp at-echo
-syn keyword	pfService	at-nbp at-rtmp at-zis auth authentication
-syn keyword	pfService	bfd-control bfd-echo bftp bgp bgpd biff bootpc
-syn keyword	pfService	bootps canna cddb cddbp chargen chat cmd
-syn keyword	pfService	cmip-agent cmip-man comsat conference
-syn keyword	pfService	conserver courier csnet-ns cso-ns cvspserver
-syn keyword	pfService	daap datametrics daytime dhcpd-sync
-syn keyword	pfService	dhcpv6-client dhcpv6-server discard domain
-syn keyword	pfService	echo efs eklogin ekshell ekshell2 epmap eppc
-syn keyword	pfService	exec finger ftp ftp-data git gopher hostname
-syn keyword	pfService	hostnames hprop http https hunt hylafax iapp
-syn keyword	pfService	icb ident imap imap2 imap3 imaps ingreslock
-syn keyword	pfService	ipp iprop ipsec-msft ipsec-nat-t ipx irc
-syn keyword	pfService	isakmp iscsi isisd iso-tsap kauth kdc kerberos
-syn keyword	pfService	kerberos-adm kerberos-iv kerberos-sec
-syn keyword	pfService	kerberos_master kf kip klogin kpasswd kpop
-syn keyword	pfService	krb524 krb_prop krbupdate krcmd kreg kshell kx
-syn keyword	pfService	l2tp ldap ldaps ldp link login mail mdns
-syn keyword	pfService	mdnsresponder microsoft-ds ms-sql-m ms-sql-s
-syn keyword	pfService	msa msp mtp mysql name nameserver netbios-dgm
-syn keyword	pfService	netbios-ns netbios-ssn netnews netplan netrjs
-syn keyword	pfService	netstat netwall newdate nextstep nfs nfsd
-syn keyword	pfService	nicname nnsp nntp ntalk ntp null openwebnet
-syn keyword	pfService	ospf6d ospfapi ospfd photuris pop2 pop3 pop3pw
-syn keyword	pfService	pop3s poppassd portmap postgresql postoffice
-syn keyword	pfService	pptp presence printer prospero prospero-np
-syn keyword	pfService	puppet pwdgen qotd quote radacct radius
-syn keyword	pfService	radius-acct rdp readnews remotefs resource rfb
-syn keyword	pfService	rfe rfs rfs_server ripd ripng rje rkinit rlp
-syn keyword	pfService	routed router rpc rpcbind rsync rtelnet rtsp
-syn keyword	pfService	sa-msg-port sane-port sftp shell sieve silc
-syn keyword	pfService	sink sip smtp smtps smux snmp snmp-trap
-syn keyword	pfService	snmptrap snpp socks source spamd spamd-cfg
-syn keyword	pfService	spamd-sync spooler spop3 ssdp ssh submission
-syn keyword	pfService	sunrpc supdup supfiledbg supfilesrv support
-syn keyword	pfService	svn svrloc swat syslog syslog-tls systat
-syn keyword	pfService	tacacs tacas+ talk tap tcpmux telnet tempo
-syn keyword	pfService	tftp time timed timeserver timserver tsap
-syn keyword	pfService	ttylink ttytst ub-dns-control ulistserv untp
-syn keyword	pfService	usenet users uucp uucp-path uucpd vnc vxlan
-syn keyword	pfService	wais webster who whod whois www x400 x400-snd
-syn keyword	pfService	xcept xdmcp xmpp-bosh xmpp-client xmpp-server
-syn keyword	pfService	z3950 zabbix-agent zabbix-trapper zebra
-syn keyword	pfService	zebrasrv
-
 hi def link pfCmd	Statement
 hi def link pfComment	Comment
 hi def link pfCont	Statement
@@ -103,4 +53,281 @@
 hi def link pfVarAssign	Identifier
 hi def link pfWildAddr	Type
 
-let b:current_syntax = "pf"
+" from OpenBSD src/etc/services r1.95
+syn keyword	pfService	802-11-iapp
+syn keyword	pfService	Microsoft-SQL-Monitor
+syn keyword	pfService	Microsoft-SQL-Server
+syn keyword	pfService	NeXTStep
+syn keyword	pfService	NextStep
+syn keyword	pfService	afpovertcp
+syn keyword	pfService	afs3-bos
+syn keyword	pfService	afs3-callback
+syn keyword	pfService	afs3-errors
+syn keyword	pfService	afs3-fileserver
+syn keyword	pfService	afs3-kaserver
+syn keyword	pfService	afs3-prserver
+syn keyword	pfService	afs3-rmtsys
+syn keyword	pfService	afs3-update
+syn keyword	pfService	afs3-vlserver
+syn keyword	pfService	afs3-volser
+syn keyword	pfService	amt-redir-tcp
+syn keyword	pfService	amt-redir-tls
+syn keyword	pfService	amt-soap-http
+syn keyword	pfService	amt-soap-https
+syn keyword	pfService	asf-rmcp
+syn keyword	pfService	at-echo
+syn keyword	pfService	at-nbp
+syn keyword	pfService	at-rtmp
+syn keyword	pfService	at-zis
+syn keyword	pfService	auth
+syn keyword	pfService	authentication
+syn keyword	pfService	bfd-control
+syn keyword	pfService	bfd-echo
+syn keyword	pfService	bftp
+syn keyword	pfService	bgp
+syn keyword	pfService	bgpd
+syn keyword	pfService	biff
+syn keyword	pfService	bootpc
+syn keyword	pfService	bootps
+syn keyword	pfService	canna
+syn keyword	pfService	cddb
+syn keyword	pfService	cddbp
+syn keyword	pfService	chargen
+syn keyword	pfService	chat
+syn keyword	pfService	cmd
+syn keyword	pfService	cmip-agent
+syn keyword	pfService	cmip-man
+syn keyword	pfService	comsat
+syn keyword	pfService	conference
+syn keyword	pfService	conserver
+syn keyword	pfService	courier
+syn keyword	pfService	csnet-ns
+syn keyword	pfService	cso-ns
+syn keyword	pfService	cvspserver
+syn keyword	pfService	daap
+syn keyword	pfService	datametrics
+syn keyword	pfService	daytime
+syn keyword	pfService	dhcpd-sync
+syn keyword	pfService	dhcpv6-client
+syn keyword	pfService	dhcpv6-server
+syn keyword	pfService	discard
+syn keyword	pfService	domain
+syn keyword	pfService	echo
+syn keyword	pfService	efs
+syn keyword	pfService	eklogin
+syn keyword	pfService	ekshell
+syn keyword	pfService	ekshell2
+syn keyword	pfService	epmap
+syn keyword	pfService	eppc
+syn keyword	pfService	exec
+syn keyword	pfService	finger
+syn keyword	pfService	ftp
+syn keyword	pfService	ftp-data
+syn keyword	pfService	git
+syn keyword	pfService	gopher
+syn keyword	pfService	gre-in-udp
+syn keyword	pfService	gre-udp-dtls
+syn keyword	pfService	hostname
+syn keyword	pfService	hostnames
+syn keyword	pfService	hprop
+syn keyword	pfService	http
+syn keyword	pfService	https
+syn keyword	pfService	hunt
+syn keyword	pfService	hylafax
+syn keyword	pfService	iapp
+syn keyword	pfService	icb
+syn keyword	pfService	ident
+syn keyword	pfService	imap
+syn keyword	pfService	imap2
+syn keyword	pfService	imap3
+syn keyword	pfService	imaps
+syn keyword	pfService	ingreslock
+syn keyword	pfService	ipp
+syn keyword	pfService	iprop
+syn keyword	pfService	ipsec-msft
+syn keyword	pfService	ipsec-nat-t
+syn keyword	pfService	ipx
+syn keyword	pfService	irc
+syn keyword	pfService	isakmp
+syn keyword	pfService	iscsi
+syn keyword	pfService	isisd
+syn keyword	pfService	iso-tsap
+syn keyword	pfService	kauth
+syn keyword	pfService	kdc
+syn keyword	pfService	kerberos
+syn keyword	pfService	kerberos-adm
+syn keyword	pfService	kerberos-iv
+syn keyword	pfService	kerberos-sec
+syn keyword	pfService	kerberos_master
+syn keyword	pfService	kf
+syn keyword	pfService	kip
+syn keyword	pfService	klogin
+syn keyword	pfService	kpasswd
+syn keyword	pfService	kpop
+syn keyword	pfService	krb524
+syn keyword	pfService	krb_prop
+syn keyword	pfService	krbupdate
+syn keyword	pfService	krcmd
+syn keyword	pfService	kreg
+syn keyword	pfService	kshell
+syn keyword	pfService	kx
+syn keyword	pfService	l2tp
+syn keyword	pfService	ldap
+syn keyword	pfService	ldaps
+syn keyword	pfService	ldp
+syn keyword	pfService	link
+syn keyword	pfService	login
+syn keyword	pfService	mail
+syn keyword	pfService	mdns
+syn keyword	pfService	mdnsresponder
+syn keyword	pfService	microsoft-ds
+syn keyword	pfService	ms-sql-m
+syn keyword	pfService	ms-sql-s
+syn keyword	pfService	msa
+syn keyword	pfService	msp
+syn keyword	pfService	mtp
+syn keyword	pfService	mysql
+syn keyword	pfService	name
+syn keyword	pfService	nameserver
+syn keyword	pfService	netbios-dgm
+syn keyword	pfService	netbios-ns
+syn keyword	pfService	netbios-ssn
+syn keyword	pfService	netnews
+syn keyword	pfService	netplan
+syn keyword	pfService	netrjs
+syn keyword	pfService	netstat
+syn keyword	pfService	netwall
+syn keyword	pfService	newdate
+syn keyword	pfService	nextstep
+syn keyword	pfService	nfs
+syn keyword	pfService	nfsd
+syn keyword	pfService	nicname
+syn keyword	pfService	nnsp
+syn keyword	pfService	nntp
+syn keyword	pfService	ntalk
+syn keyword	pfService	ntp
+syn keyword	pfService	null
+syn keyword	pfService	openwebnet
+syn keyword	pfService	ospf6d
+syn keyword	pfService	ospfapi
+syn keyword	pfService	ospfd
+syn keyword	pfService	photuris
+syn keyword	pfService	pop2
+syn keyword	pfService	pop3
+syn keyword	pfService	pop3pw
+syn keyword	pfService	pop3s
+syn keyword	pfService	poppassd
+syn keyword	pfService	portmap
+syn keyword	pfService	postgresql
+syn keyword	pfService	postoffice
+syn keyword	pfService	pptp
+syn keyword	pfService	presence
+syn keyword	pfService	printer
+syn keyword	pfService	prospero
+syn keyword	pfService	prospero-np
+syn keyword	pfService	puppet
+syn keyword	pfService	pwdgen
+syn keyword	pfService	qotd
+syn keyword	pfService	quote
+syn keyword	pfService	radacct
+syn keyword	pfService	radius
+syn keyword	pfService	radius-acct
+syn keyword	pfService	rdp
+syn keyword	pfService	readnews
+syn keyword	pfService	remotefs
+syn keyword	pfService	resource
+syn keyword	pfService	rfb
+syn keyword	pfService	rfe
+syn keyword	pfService	rfs
+syn keyword	pfService	rfs_server
+syn keyword	pfService	ripd
+syn keyword	pfService	ripng
+syn keyword	pfService	rje
+syn keyword	pfService	rkinit
+syn keyword	pfService	rlp
+syn keyword	pfService	routed
+syn keyword	pfService	router
+syn keyword	pfService	rpc
+syn keyword	pfService	rpcbind
+syn keyword	pfService	rsync
+syn keyword	pfService	rtelnet
+syn keyword	pfService	rtsp
+syn keyword	pfService	sa-msg-port
+syn keyword	pfService	sane-port
+syn keyword	pfService	sftp
+syn keyword	pfService	shell
+syn keyword	pfService	sieve
+syn keyword	pfService	silc
+syn keyword	pfService	sink
+syn keyword	pfService	sip
+syn keyword	pfService	smtp
+syn keyword	pfService	smtps
+syn keyword	pfService	smux
+syn keyword	pfService	snmp
+syn keyword	pfService	snmp-trap
+syn keyword	pfService	snmptrap
+syn keyword	pfService	snpp
+syn keyword	pfService	socks
+syn keyword	pfService	source
+syn keyword	pfService	spamd
+syn keyword	pfService	spamd-cfg
+syn keyword	pfService	spamd-sync
+syn keyword	pfService	spooler
+syn keyword	pfService	spop3
+syn keyword	pfService	ssdp
+syn keyword	pfService	ssh
+syn keyword	pfService	submission
+syn keyword	pfService	sunrpc
+syn keyword	pfService	supdup
+syn keyword	pfService	supfiledbg
+syn keyword	pfService	supfilesrv
+syn keyword	pfService	support
+syn keyword	pfService	svn
+syn keyword	pfService	svrloc
+syn keyword	pfService	swat
+syn keyword	pfService	syslog
+syn keyword	pfService	syslog-tls
+syn keyword	pfService	systat
+syn keyword	pfService	tacacs
+syn keyword	pfService	tacas+
+syn keyword	pfService	talk
+syn keyword	pfService	tap
+syn keyword	pfService	tcpmux
+syn keyword	pfService	telnet
+syn keyword	pfService	tempo
+syn keyword	pfService	tftp
+syn keyword	pfService	time
+syn keyword	pfService	timed
+syn keyword	pfService	timeserver
+syn keyword	pfService	timserver
+syn keyword	pfService	tsap
+syn keyword	pfService	ttylink
+syn keyword	pfService	ttytst
+syn keyword	pfService	ub-dns-control
+syn keyword	pfService	ulistserv
+syn keyword	pfService	untp
+syn keyword	pfService	usenet
+syn keyword	pfService	users
+syn keyword	pfService	uucp
+syn keyword	pfService	uucp-path
+syn keyword	pfService	uucpd
+syn keyword	pfService	vnc
+syn keyword	pfService	vxlan
+syn keyword	pfService	wais
+syn keyword	pfService	webster
+syn keyword	pfService	who
+syn keyword	pfService	whod
+syn keyword	pfService	whois
+syn keyword	pfService	www
+syn keyword	pfService	x400
+syn keyword	pfService	x400-snd
+syn keyword	pfService	xcept
+syn keyword	pfService	xdmcp
+syn keyword	pfService	xmpp-bosh
+syn keyword	pfService	xmpp-client
+syn keyword	pfService	xmpp-server
+syn keyword	pfService	z3950
+syn keyword	pfService	zabbix-agent
+syn keyword	pfService	zabbix-trapper
+syn keyword	pfService	zebra
+syn keyword	pfService	zebrasrv
diff --git a/runtime/syntax/sudoers.vim b/runtime/syntax/sudoers.vim
index df1eb99..31f5f2b 100644
--- a/runtime/syntax/sudoers.vim
+++ b/runtime/syntax/sudoers.vim
@@ -1,7 +1,8 @@
 " Vim syntax file
 " Language:             sudoers(5) configuration files
 " Previous Maintainer:  Nikolai Weibull <now@bitwi.se>
-" Latest Revision:      2011-02-24
+" Latest Revision:      2018-07-19
+" Recent Changes:	Support for #include and #includedir.
 
 if exists("b:current_syntax")
   finish
@@ -24,6 +25,7 @@
 syn keyword sudoersTodo               contained TODO FIXME XXX NOTE
 
 syn region  sudoersComment            display oneline start='#' end='$' contains=sudoersTodo
+syn region  sudoersInclude            display oneline start='#\(include\|includedir\)' end='$'
 
 syn keyword sudoersAlias              User_Alias Runas_Alias nextgroup=sudoersUserAlias skipwhite skipnl
 syn keyword sudoersAlias              Host_Alias nextgroup=sudoersHostAlias skipwhite skipnl
@@ -335,6 +337,7 @@
 hi def link sudoersStringValue              String
 hi def link sudoersListValue                String
 hi def link sudoersPASSWD                   Special
+hi def link sudoersInclude                  Statement
 
 let b:current_syntax = "sudoers"