<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
	<key>comment</key>
	<string>D language</string>
	<key>fileTypes</key>
	<array>
		<string>d</string>
		<string>di</string>
	</array>
	<key>firstLineMatch</key>
	<string>^#!.*\bg?dmd\b.</string>
	<key>foldingStartMarker</key>
	<string>(?x)/\*\*(?!\*)|^(?![^{]*?//|[^{]*?/\*(?!.*?\*/.*?\{)).*?\{\s*($|//|/\*(?!.*?\*/.*\S))</string>
	<key>foldingStopMarker</key>
	<string>(?&lt;!\*)\*\*/|^\s*\}</string>
	<key>keyEquivalent</key>
	<string>^~D</string>
	<key>name</key>
	<string>D</string>
	<key>patterns</key>
	<array>
		<dict>
			<key>captures</key>
			<dict>
				<key>0</key>
				<dict>
					<key>name</key>
					<string>punctuation.definition.comment.d</string>
				</dict>
			</dict>
			<key>match</key>
			<string>/\*\*/</string>
			<key>name</key>
			<string>comment.block.empty.d</string>
		</dict>
		<dict>
			<key>include</key>
			<string>text.html.javadoc</string>
		</dict>
		<dict>
			<key>begin</key>
			<string>(?x)^\s*
					((?:\b(public|private|protected|static|final|native|synchronized|abstract|export)\b\s*)*) # modifier
					(class|interface)\s+
					(\w+)\s* # identifier
					(?:\(\s*([^\)]+)\s*\)|)\s* # Template type
					(?:
					  \s*(:)\s*
					  (\w+)
					  (?:\s*,\s*(\w+))?
					  (?:\s*,\s*(\w+))?
					  (?:\s*,\s*(\w+))?
					  (?:\s*,\s*(\w+))?
					  (?:\s*,\s*(\w+))?
					  (?:\s*,\s*(\w+))?
					)? # super class
					</string>
			<key>beginCaptures</key>
			<dict>
				<key>1</key>
				<dict>
					<key>name</key>
					<string>storage.modifier.d</string>
				</dict>
				<key>10</key>
				<dict>
					<key>name</key>
					<string>entity.other.inherited-class.d</string>
				</dict>
				<key>11</key>
				<dict>
					<key>name</key>
					<string>entity.other.inherited-class.d</string>
				</dict>
				<key>12</key>
				<dict>
					<key>name</key>
					<string>entity.other.inherited-class.d</string>
				</dict>
				<key>13</key>
				<dict>
					<key>name</key>
					<string>entity.other.inherited-class.d</string>
				</dict>
				<key>3</key>
				<dict>
					<key>name</key>
					<string>storage.type.structure.d</string>
				</dict>
				<key>4</key>
				<dict>
					<key>name</key>
					<string>entity.name.type.class.d</string>
				</dict>
				<key>5</key>
				<dict>
					<key>name</key>
					<string>storage.type.template.d</string>
				</dict>
				<key>6</key>
				<dict>
					<key>name</key>
					<string>punctuation.separator.inheritance.d</string>
				</dict>
				<key>7</key>
				<dict>
					<key>name</key>
					<string>entity.other.inherited-class.d</string>
				</dict>
				<key>8</key>
				<dict>
					<key>name</key>
					<string>entity.other.inherited-class.d</string>
				</dict>
				<key>9</key>
				<dict>
					<key>name</key>
					<string>entity.other.inherited-class.d</string>
				</dict>
			</dict>
			<key>end</key>
			<string>(?={)</string>
			<key>name</key>
			<string>meta.definition.class.d</string>
			<key>patterns</key>
			<array>
				<dict>
					<key>begin</key>
					<string>\b(_|:)\b</string>
					<key>captures</key>
					<dict>
						<key>1</key>
						<dict>
							<key>name</key>
							<string>storage.modifier.d</string>
						</dict>
					</dict>
					<key>end</key>
					<string>(?={)</string>
					<key>name</key>
					<string>meta.definition.class.extends.d</string>
					<key>patterns</key>
					<array>
						<dict>
							<key>include</key>
							<string>#all-types</string>
						</dict>
					</array>
				</dict>
			</array>
		</dict>
		<dict>
			<key>begin</key>
			<string>(?x)^\s*
					((?:\b(public|private|protected|static|final|native|synchronized|abstract|export)\b\s*)*) # modifier
					(struct)\s+
					(\w+)\s* # identifier
					(?:\(\s*([^\)]+)\s*\)|)\s* # Template type
					</string>
			<key>beginCaptures</key>
			<dict>
				<key>1</key>
				<dict>
					<key>name</key>
					<string>storage.modifier.d</string>
				</dict>
				<key>3</key>
				<dict>
					<key>name</key>
					<string>storage.type.structure.d</string>
				</dict>
				<key>4</key>
				<dict>
					<key>name</key>
					<string>entity.name.type.struct.d</string>
				</dict>
				<key>5</key>
				<dict>
					<key>name</key>
					<string>storage.type.template.d</string>
				</dict>
			</dict>
			<key>end</key>
			<string>(?={)</string>
			<key>name</key>
			<string>meta.definition.struct.d</string>
			<key>patterns</key>
			<array>
				<dict>
					<key>begin</key>
					<string>\b(_|:)\b</string>
					<key>captures</key>
					<dict>
						<key>1</key>
						<dict>
							<key>name</key>
							<string>storage.modifier.d</string>
						</dict>
					</dict>
					<key>end</key>
					<string>(?={)</string>
					<key>name</key>
					<string>meta.definition.class.extends.d</string>
					<key>patterns</key>
					<array>
						<dict>
							<key>include</key>
							<string>#all-types</string>
						</dict>
					</array>
				</dict>
			</array>
		</dict>
		<dict>
			<key>begin</key>
			<string>(?x)^\s*
					((?:\b(public|private|protected|static|final|native|synchronized|abstract|threadsafe|transient|export)\b\s*)*) # modifier
					(\b(this))\s* # identifier
					(?!.*;)  # abort if line has a ;
					(?=\()</string>
			<key>captures</key>
			<dict>
				<key>1</key>
				<dict>
					<key>name</key>
					<string>storage.modifier.d</string>
				</dict>
				<key>3</key>
				<dict>
					<key>name</key>
					<string>entity.name.function.constructor.d</string>
				</dict>
			</dict>
			<key>end</key>
			<string>(?={)</string>
			<key>name</key>
			<string>meta.definition.constructor.d</string>
			<key>patterns</key>
			<array>
				<dict>
					<key>include</key>
					<string>$base</string>
				</dict>
			</array>
		</dict>
		<dict>
			<key>begin</key>
			<string>(?x)
    				(?:  ^                                 # begin-of-line
    				  |  (?: (?&lt;!else|new|=) )             #  or word + space before name
    				)
					((?:\b(?:public|private|protected|static|final|native|synchronized|abstract|threadsafe|transient|export)\b\s*)*) # modifier
    				(~this) # actual name
    				 \s*(\()                           # start bracket or end-of-line
    			</string>
			<key>captures</key>
			<dict>
				<key>1</key>
				<dict>
					<key>name</key>
					<string>storage.modifier.d</string>
				</dict>
				<key>2</key>
				<dict>
					<key>name</key>
					<string>entity.name.function.destructor.d</string>
				</dict>
			</dict>
			<key>end</key>
			<string>\)</string>
			<key>endCaptures</key>
			<dict>
				<key>0</key>
				<dict>
					<key>name</key>
					<string>punctuation.definition.parameters.d</string>
				</dict>
			</dict>
			<key>name</key>
			<string>meta.definition.destructor.d</string>
			<key>patterns</key>
			<array>
				<dict>
					<key>include</key>
					<string>$base</string>
				</dict>
			</array>
		</dict>
		<dict>
			<key>begin</key>
			<string>(?x)^\s*
					((?:\b(?:public|private|protected|static|final|native|lazy|synchronized|abstract|threadsafe|transient|export)\b\s*)*) # modifier
					(\b(?:void|boolean|byte|char|short|int|float|long|double|[\w_]+[\w0-9_]*|(?:\w+\.)*[A-Z]\w+)\b(?:&lt;(?:(?:(?:\w+\.)*[A-Z]\w+)(?:\s*,\s*)?)+&gt;|(?:\[\s*\])*)?)\s* # type
					(\w+)\s* # identifier
					(?!.*;)  # abort if line has a ;
					(?=\()</string>
			<key>beginCaptures</key>
			<dict>
				<key>1</key>
				<dict>
					<key>name</key>
					<string>storage.modifier.d</string>
				</dict>
				<key>2</key>
				<dict>
					<key>name</key>
					<string>storage.type.structure.d</string>
				</dict>
				<key>3</key>
				<dict>
					<key>name</key>
					<string>entity.name.function.d</string>
				</dict>
			</dict>
			<key>end</key>
			<string>(?={)</string>
			<key>name</key>
			<string>meta.definition.method.d</string>
			<key>patterns</key>
			<array>
				<dict>
					<key>include</key>
					<string>$base</string>
				</dict>
			</array>
		</dict>
		<dict>
			<key>match</key>
			<string>\b([A-Z][A-Z0-9_]+)\b</string>
			<key>name</key>
			<string>constant.other.d</string>
		</dict>
		<dict>
			<key>include</key>
			<string>#comments</string>
		</dict>
		<dict>
			<key>include</key>
			<string>#all-types</string>
		</dict>
		<dict>
			<key>match</key>
			<string>\b(private|protected|public|export)\b</string>
			<key>name</key>
			<string>storage.modifier.access-control.d</string>
		</dict>
		<dict>
			<key>match</key>
			<string>\b(auto|static|override|final|const|abstract|volatile|synchronized|lazy)\b</string>
			<key>name</key>
			<string>storage.modifier.d</string>
		</dict>
		<dict>
			<key>match</key>
			<string>\b(template|interface|class|enum|struct|union)\b</string>
			<key>name</key>
			<string>storage.type.structure.d</string>
		</dict>
		<dict>
			<key>match</key>
			<string>\b(ushort|int|uint|long|ulong|float|void|byte|ubyte|double|bit|char|wchar|ucent|cent|short|bool|dchar|real|ireal|ifloat|idouble|creal|cfloat|cdouble|lazy)\b</string>
			<key>name</key>
			<string>storage.type.d</string>
		</dict>
		<dict>
			<key>match</key>
			<string>\b(try|catch|finally|throw)\b</string>
			<key>name</key>
			<string>keyword.control.exception.d</string>
		</dict>
		<dict>
			<key>match</key>
			<string>\b(return|break|case|continue|default|do|while|for|switch|if|else)\b</string>
			<key>name</key>
			<string>keyword.control.d</string>
		</dict>
		<dict>
			<key>match</key>
			<string>\b(if|else|switch|iftype)\b</string>
			<key>name</key>
			<string>keyword.control.conditional.d</string>
		</dict>
		<dict>
			<key>match</key>
			<string>\b(goto|break|continue)\b</string>
			<key>name</key>
			<string>keyword.control.branch.d</string>
		</dict>
		<dict>
			<key>match</key>
			<string>\b(while|for|do|foreach(_reverse)?)\b</string>
			<key>name</key>
			<string>keyword.control.repeat.d</string>
		</dict>
		<dict>
			<key>match</key>
			<string>\b(version|return|with|invariant|body|scope|in|out|inout|asm|mixin|function|delegate)\b</string>
			<key>name</key>
			<string>keyword.control.statement.d</string>
		</dict>
		<dict>
			<key>match</key>
			<string>\b(pragma)\b</string>
			<key>name</key>
			<string>keyword.control.pragma.d</string>
		</dict>
		<dict>
			<key>match</key>
			<string>\b(alias|typedef)\b</string>
			<key>name</key>
			<string>keyword.control.alias.d</string>
		</dict>
		<dict>
			<key>match</key>
			<string>\b(import)\b</string>
			<key>name</key>
			<string>keyword.control.import.d</string>
		</dict>
		<dict>
			<key>captures</key>
			<dict>
				<key>1</key>
				<dict>
					<key>name</key>
					<string>keyword.control.module.d</string>
				</dict>
				<key>2</key>
				<dict>
					<key>name</key>
					<string>entity.name.function.package.d</string>
				</dict>
			</dict>
			<key>match</key>
			<string>^\s*(module)\s+([^ ;]+?);</string>
			<key>name</key>
			<string>meta.module.d</string>
		</dict>
		<dict>
			<key>match</key>
			<string>\b(true|false)\b</string>
			<key>name</key>
			<string>constant.language.boolean.d</string>
		</dict>
		<dict>
			<key>match</key>
			<string>\b(__FILE__|__LINE__|__DATE__|__TIME__|__TIMESTAMP__|null)\b</string>
			<key>name</key>
			<string>constant.language.d</string>
		</dict>
		<dict>
			<key>match</key>
			<string>\b(this|super)\b</string>
			<key>name</key>
			<string>variable.language.d</string>
		</dict>
		<dict>
			<key>match</key>
			<string>\b((0(x|X)[0-9a-fA-F]*)|(([0-9]+\.?[0-9]*)|(\.[0-9]+))((e|E)(\+|-)?[0-9]+)?)([LlFfUuDd]|UL|ul)?\b</string>
			<key>name</key>
			<string>constant.numeric.d</string>
		</dict>
		<dict>
			<key>include</key>
			<string>#string_escaped_char</string>
		</dict>
		<dict>
			<key>include</key>
			<string>#strings</string>
		</dict>
		<dict>
			<key>match</key>
			<string>(==|!=|&lt;=|&gt;=|&lt;&gt;|&lt;|&gt;)</string>
			<key>name</key>
			<string>keyword.operator.comparison.d</string>
		</dict>
		<dict>
			<key>match</key>
			<string>(\-\-|\+\+)</string>
			<key>name</key>
			<string>keyword.operator.increment-decrement.d</string>
		</dict>
		<dict>
			<key>match</key>
			<string>(\-|\+|\*|\/|~|%)</string>
			<key>name</key>
			<string>keyword.operator.arithmetic.d</string>
		</dict>
		<dict>
			<key>match</key>
			<string>(!|&amp;&amp;|\|\|)</string>
			<key>name</key>
			<string>keyword.operator.logical.d</string>
		</dict>
		<dict>
			<key>match</key>
			<string>\b(opNeg|opCom|opPostInc|opPostDec|opCast|opAdd|opSub|opSub_r|opMul|opDiv|opDiv_r|opMod|opMod_r|opAnd|opOr|opXor|opShl|opShl_r|opShr|opShr_r|opUShr|opUShr_r|opCat|opCat_r|opEquals|opEquals|opCmp|opCmp|opCmp|opCmp|opAddAssign|opSubAssign|opMulAssign|opDivAssign|opModAssign|opAndAssign|opOrAssign|opXorAssign|opShlAssign|opShrAssign|opUShrAssign|opCatAssign|opIndex|opIndexAssign|opCall|opSlice|opSliceAssign|opPos|opAdd_r|opMul_r|opAnd_r|opOr_r|opXor_r)\b</string>
			<key>name</key>
			<string>keyword.operator.overload.d</string>
		</dict>
		<dict>
			<key>match</key>
			<string>\b(new|delete|typeof|typeid|cast|align|is)\b</string>
			<key>name</key>
			<string>keyword.operator.d</string>
		</dict>
		<dict>
			<key>match</key>
			<string>\b(new|throws)\b</string>
			<key>name</key>
			<string>keyword.other.class-fns.d</string>
		</dict>
		<dict>
			<key>match</key>
			<string>\b(package|extern)\b</string>
			<key>name</key>
			<string>keyword.other.external.d</string>
		</dict>
		<dict>
			<key>match</key>
			<string>\b(deprecated|unittest|debug)\b</string>
			<key>name</key>
			<string>keyword.other.debug.d</string>
		</dict>
		<dict>
			<key>match</key>
			<string>\b(u_char|u_short|u_int|u_long|ushort|uint|u_quad_t|quad_t|qaddr_t|caddr_t|daddr_t|dev_t|fixpt_t|blkcnt_t|blksize_t|gid_t|in_addr_t|in_port_t|ino_t|key_t|mode_t|nlink_t|id_t|pid_t|off_t|segsz_t|swblk_t|uid_t|id_t|clock_t|size_t|ssize_t|time_t|useconds_t|suseconds_t)\b</string>
			<key>name</key>
			<string>support.type.sys-types.c</string>
		</dict>
		<dict>
			<key>match</key>
			<string>\b(pthread_attr_t|pthread_cond_t|pthread_condattr_t|pthread_mutex_t|pthread_mutexattr_t|pthread_once_t|pthread_rwlock_t|pthread_rwlockattr_t|pthread_t|pthread_key_t)\b</string>
			<key>name</key>
			<string>support.type.pthread.c</string>
		</dict>
		<dict>
			<key>match</key>
			<string>\b(int8_t|int16_t|int32_t|int64_t|uint8_t|uint16_t|uint32_t|uint64_t|int_least8_t|int_least16_t|int_least32_t|int_least64_t|uint_least8_t|uint_least16_t|uint_least32_t|uint_least64_t|int_fast8_t|int_fast16_t|int_fast32_t|int_fast64_t|uint_fast8_t|uint_fast16_t|uint_fast32_t|uint_fast64_t|intptr_t|uintptr_t|intmax_t|intmax_t|uintmax_t|uintmax_t)\b</string>
			<key>name</key>
			<string>support.type.stdint.c</string>
		</dict>
	</array>
	<key>repository</key>
	<dict>
		<key>all-types</key>
		<dict>
			<key>patterns</key>
			<array>
				<dict>
					<key>include</key>
					<string>#support-type-built-ins-d</string>
				</dict>
				<dict>
					<key>include</key>
					<string>#support-type-d</string>
				</dict>
				<dict>
					<key>include</key>
					<string>#storage-type-d</string>
				</dict>
			</array>
		</dict>
		<key>comments</key>
		<dict>
			<key>patterns</key>
			<array>
				<dict>
					<key>begin</key>
					<string>/\*</string>
					<key>captures</key>
					<dict>
						<key>0</key>
						<dict>
							<key>name</key>
							<string>punctuation.definition.comment.d</string>
						</dict>
					</dict>
					<key>end</key>
					<string>\*/</string>
					<key>name</key>
					<string>comment.block.d</string>
				</dict>
				<dict>
					<key>begin</key>
					<string>/\+</string>
					<key>captures</key>
					<dict>
						<key>0</key>
						<dict>
							<key>name</key>
							<string>punctuation.definition.comment.d</string>
						</dict>
					</dict>
					<key>end</key>
					<string>\+/</string>
					<key>name</key>
					<string>comment.block.nested.d</string>
				</dict>
				<dict>
					<key>captures</key>
					<dict>
						<key>1</key>
						<dict>
							<key>name</key>
							<string>punctuation.definition.comment.d</string>
						</dict>
					</dict>
					<key>match</key>
					<string>(//).*$\n?</string>
					<key>name</key>
					<string>comment.line.double-slash.d</string>
				</dict>
			</array>
		</dict>
		<key>constant_placeholder</key>
		<dict>
			<key>match</key>
			<string>(?i:%(\([a-z_]+\))?#?0?\-?[ ]?\+?([0-9]*|\*)(\.([0-9]*|\*))?[hL]?[a-z%])</string>
			<key>name</key>
			<string>constant.other.placeholder.d</string>
		</dict>
		<key>regular_expressions</key>
		<dict>
			<key>comment</key>
			<string>Change disabled to 1 to turn off syntax highlighting in “r” strings.</string>
			<key>disabled</key>
			<integer>1</integer>
			<key>patterns</key>
			<array>
				<dict>
					<key>include</key>
					<string>source.regexp.python</string>
				</dict>
			</array>
		</dict>
		<key>statement-remainder</key>
		<dict>
			<key>patterns</key>
			<array>
				<dict>
					<key>begin</key>
					<string>\(</string>
					<key>end</key>
					<string>(?=\))</string>
					<key>name</key>
					<string>meta.definition.param-list.d</string>
					<key>patterns</key>
					<array>
						<dict>
							<key>include</key>
							<string>#all-types</string>
						</dict>
					</array>
				</dict>
				<dict>
					<key>begin</key>
					<string>(throws)</string>
					<key>captures</key>
					<dict>
						<key>1</key>
						<dict>
							<key>name</key>
							<string>keyword.other.class-fns.d</string>
						</dict>
					</dict>
					<key>end</key>
					<string>(?={)</string>
					<key>name</key>
					<string>meta.definition.throws.d</string>
					<key>patterns</key>
					<array>
						<dict>
							<key>include</key>
							<string>#all-types</string>
						</dict>
					</array>
				</dict>
			</array>
		</dict>
		<key>storage-type-d</key>
		<dict>
			<key>match</key>
			<string>\b(void|byte|short|char|int|long|float|double|boolean|([a-z]\w+\.)*[A-Z]\w+)\b</string>
			<key>name</key>
			<string>storage.type.d</string>
		</dict>
		<key>string_escaped_char</key>
		<dict>
			<key>patterns</key>
			<array>
				<dict>
					<key>match</key>
					<string>\\(\\|[abefnprtv'"?]|[0-3]\d{,2}|x[0-9a-fA-F]{2}|u[0-9a-fA-F]{4}|U[0-9a-fA-F]{8}|&amp;\w+;)</string>
					<key>name</key>
					<string>constant.character.escape.d</string>
				</dict>
				<dict>
					<key>match</key>
					<string>\\.</string>
					<key>name</key>
					<string>invalid.illegal.unknown-escape.d</string>
				</dict>
			</array>
		</dict>
		<key>strings</key>
		<dict>
			<key>patterns</key>
			<array>
				<dict>
					<key>begin</key>
					<string>"</string>
					<key>beginCaptures</key>
					<dict>
						<key>0</key>
						<dict>
							<key>name</key>
							<string>punctuation.definition.string.begin.d</string>
						</dict>
					</dict>
					<key>end</key>
					<string>"</string>
					<key>endCaptures</key>
					<dict>
						<key>0</key>
						<dict>
							<key>name</key>
							<string>punctuation.definition.string.end.d</string>
						</dict>
					</dict>
					<key>name</key>
					<string>string.quoted.double.d</string>
					<key>patterns</key>
					<array>
						<dict>
							<key>include</key>
							<string>#string_escaped_char</string>
						</dict>
					</array>
				</dict>
				<dict>
					<key>begin</key>
					<string>(r)(")</string>
					<key>beginCaptures</key>
					<dict>
						<key>1</key>
						<dict>
							<key>name</key>
							<string>storage.type.string.d</string>
						</dict>
						<key>2</key>
						<dict>
							<key>name</key>
							<string>punctuation.definition.string.begin.d</string>
						</dict>
					</dict>
					<key>end</key>
					<string>((?&lt;=")(")|")</string>
					<key>endCaptures</key>
					<dict>
						<key>1</key>
						<dict>
							<key>name</key>
							<string>punctuation.definition.string.end.d</string>
						</dict>
						<key>2</key>
						<dict>
							<key>name</key>
							<string>meta.empty-string.double.d</string>
						</dict>
					</dict>
					<key>name</key>
					<string>string.quoted.double.raw.d</string>
					<key>patterns</key>
					<array>
						<dict>
							<key>include</key>
							<string>#regular_expressions</string>
						</dict>
					</array>
				</dict>
				<dict>
					<key>begin</key>
					<string>`</string>
					<key>beginCaptures</key>
					<dict>
						<key>0</key>
						<dict>
							<key>name</key>
							<string>punctuation.definition.string.begin.d</string>
						</dict>
					</dict>
					<key>end</key>
					<string>((?&lt;=`)(`)|`)</string>
					<key>endCaptures</key>
					<dict>
						<key>1</key>
						<dict>
							<key>name</key>
							<string>punctuation.definition.string.end.d</string>
						</dict>
						<key>2</key>
						<dict>
							<key>name</key>
							<string>meta.empty-string.double.d</string>
						</dict>
					</dict>
					<key>name</key>
					<string>string.quoted.double.raw.backtick.d</string>
				</dict>
				<dict>
					<key>begin</key>
					<string>'</string>
					<key>beginCaptures</key>
					<dict>
						<key>0</key>
						<dict>
							<key>name</key>
							<string>punctuation.definition.string.begin.d</string>
						</dict>
					</dict>
					<key>end</key>
					<string>'</string>
					<key>endCaptures</key>
					<dict>
						<key>0</key>
						<dict>
							<key>name</key>
							<string>punctuation.definition.string.end.d</string>
						</dict>
					</dict>
					<key>name</key>
					<string>string.quoted.single.d</string>
					<key>patterns</key>
					<array>
						<dict>
							<key>include</key>
							<string>#string_escaped_char</string>
						</dict>
					</array>
				</dict>
			</array>
		</dict>
		<key>support-type-built-ins-classes-d</key>
		<dict>
			<key>match</key>
			<string>\b(AbstractServer|ArchiveMember|ArgParser|Barrier|BomSniffer|Buffer|BufferInput|BufferOutput|BufferSlice|BufferedFile|BufferedStream|BzipInput|BzipOutput|CFile|CacheInvalidatee|CacheInvalidator|CacheServer|CacheThread|Certificate|CertificateStore|CertificateStoreCtx|ChunkInput|ChunkOutput|ClassInfo|Cluster|ClusterCache|ClusterQueue|ClusterThread|CmdParser|ComObject|Compress|Condition|Conduit|Cookie|CookieParser|CookieStack|CounterInput|CounterOutput|DataFileInput|DataFileOutput|DataInput|DataOutput|Database|DatagramConduit|DeviceConduit|DigestInput|DigestOutput|DocPrinter|Document|DummyInputStream|DummyOutputStream|EndianInput|EndianOutput|EndianProtocol|EndianStream|EventSeekInputStream|EventSeekOutputStream|FTPConnection|Fiber|Field|File|FileConduit|FileFolder|FileGroup|FileInput|FileOutput|FilePath|FileScan|FilterStream|Foo|FormatOutput|GreedyInput|GreedyOutput|Gregorian|GrowBuffer|HeapCopy|HeapSlice|Hierarchy|HttpClient|HttpCookies|HttpCookiesView|HttpGet|HttpHeaders|HttpHeadersView|HttpParams|HttpPost|HttpStack|HttpTokens|HttpTriplet|IPv4Address|IUnknown|InputFilter|InternetAddress|InternetHost|Layout|LineInput|LineIterator|LinkedFolder|Log|MapInput|MapOutput|MappedBuffer|Md2|Md4|MemoryQueue|MemoryStream|MmFile|MmFileStream|ModuleInfo|MulticastConduit|Mutex|NativeProtocol|NetCall|NetHost|NetworkAlert|NetworkCache|NetworkCall|NetworkClient|NetworkCombo|NetworkMessage|NetworkQueue|NetworkRegistry|NetworkTask|NotImplemented|Object|Observer|OutBuffer|OutputFilter|PersistQueue|Pipe|PipeConduit|Print|PrivateKey|Process|Properties|Protocol|ProtocolReader|ProtocolWriter|PublicKey|PullParser|QueueFile|QueueServer|QueueThread|QueuedCache|QuoteIterator|Random|Range|ReadWriteMutex|Reader|Record|RegExp|RegExpT|RegexIterator|RollCall|SSLCtx|SSLServerSocket|SSLSocketConduit|SaxParser|SelectionKey|Semaphore|ServerSocket|ServerThread|Service|SimpleIterator|SliceInputStream|SliceSeekInputStream|SliceSeekOutputStream|SliceStream|SnoopInput|SnoopOutput|Socket|SocketConduit|SocketListener|SocketSet|SocketStream|Sprint|Stream|StreamIterator|TArrayStream|TaskServer|TaskThread|TcpSocket|Telnet|TempFile|Text|TextFileInput|TextFileOutput|TextView|Thread|ThreadGroup|ThreadLocal|ThreadPool|Token|TypeInfo|TypeInfo_AC|TypeInfo_Aa|TypeInfo_Ab|TypeInfo_Ac|TypeInfo_Ad|TypeInfo_Ae|TypeInfo_Af|TypeInfo_Ag|TypeInfo_Ah|TypeInfo_Ai|TypeInfo_Aj|TypeInfo_Ak|TypeInfo_Al|TypeInfo_Am|TypeInfo_Ao|TypeInfo_Ap|TypeInfo_Aq|TypeInfo_Ar|TypeInfo_Array|TypeInfo_As|TypeInfo_AssociativeArray|TypeInfo_At|TypeInfo_Au|TypeInfo_Av|TypeInfo_Aw|TypeInfo_C|TypeInfo_Class|TypeInfo_D|TypeInfo_Delegate|TypeInfo_Enum|TypeInfo_Function|TypeInfo_Interface|TypeInfo_P|TypeInfo_Pointer|TypeInfo_StaticArray|TypeInfo_Struct|TypeInfo_Tuple|TypeInfo_Typedef|TypeInfo_a|TypeInfo_b|TypeInfo_c|TypeInfo_d|TypeInfo_e|TypeInfo_f|TypeInfo_g|TypeInfo_h|TypeInfo_i|TypeInfo_j|TypeInfo_k|TypeInfo_l|TypeInfo_m|TypeInfo_o|TypeInfo_p|TypeInfo_q|TypeInfo_r|TypeInfo_s|TypeInfo_t|TypeInfo_u|TypeInfo_v|TypeInfo_w|TypedInput|TypedOutput|URIerror|UdpSocket|UnCompress|UniText|UnicodeBom|UnicodeFile|UnknownAddress|Uri|UtfInput|UtfOutput|VirtualFolder|WrapSeekInputStream|WrapSeekOutputStream|Writer|XmlPrinter|ZipArchive|ZipBlockReader|ZipBlockWriter|ZipEntry|ZipEntryVerifier|ZipFile|ZipFileGroup|ZipFolder|ZipSubFolder|ZipSubFolderEntry|ZipSubFolderGroup|ZlibInput|ZlibOutput)\b</string>
			<key>name</key>
			<string>support.type.built-ins.classes.d</string>
		</dict>
		<key>support-type-built-ins-d</key>
		<dict>
			<key>patterns</key>
			<array>
				<dict>
					<key>include</key>
					<string>#support-type-built-ins-exceptions-d</string>
				</dict>
				<dict>
					<key>include</key>
					<string>#support-type-built-ins-classes-d</string>
				</dict>
				<dict>
					<key>include</key>
					<string>#support-type-built-ins-interfaces-d</string>
				</dict>
				<dict>
					<key>include</key>
					<string>#support-type-built-ins-structs-d</string>
				</dict>
			</array>
		</dict>
		<key>support-type-built-ins-exceptions-d</key>
		<dict>
			<key>match</key>
			<string>\b(AddressException|ArrayBoundsError|ArrayBoundsException|AssertError|AssertException|Base64CharException|Base64Exception|BzipClosedException|BzipException|ClusterEmptyException|ClusterFullException|ConvError|ConvOverflowError|ConversionException|CorruptedIteratorException|DatabaseException|DateParseError|Exception|FTPException|FiberException|FileException|FinalizeException|FormatError|HostException|IOException|IllegalArgumentException|IllegalElementException|InvalidKeyException|InvalidTypeException|LocaleException|ModuleCtorError|NoSuchElementException|OpenException|OpenRJException|OutOfMemoryException|PlatformException|ProcessCreateException|ProcessException|ProcessForkException|ProcessKillException|ProcessWaitException|ReadException|RegExpException|RegexException|RegistryException|SeekException|SharedLibException|SocketAcceptException|SocketException|StdioException|StreamException|StreamFileException|StringException|SwitchError|SwitchException|SyncException|TextException|ThreadError|ThreadException|UnboxException|UnicodeException|UtfException|VariantTypeMismatchException|Win32Exception|WriteException|XmlException|ZipChecksumException|ZipException|ZipExhaustedException|ZipNotSupportedException|ZlibClosedException|ZlibException|OurUnwindException|SysError)\b</string>
			<key>name</key>
			<string>support.type.built-ins.exceptions.d</string>
		</dict>
		<key>support-type-built-ins-interfaces-d</key>
		<dict>
			<key>match</key>
			<string>\b(Buffered|HttpParamsView|ICache|IChannel|IClassFactory|ICluster|IConduit|IConsumer|IEvent|IHierarchy|ILevel|IListener|IMessage|IMessageLoader|IOStream|IReadable|ISelectable|ISelectionSet|ISelector|IServer|IUnknown|IWritable|IXmlPrinter|InputStream|OutputStream|PathView|VfsFile|VfsFiles|VfsFolder|VfsFolderEntry|VfsFolders|VfsHost|VfsSync|ZipReader|ZipWriter)\b</string>
			<key>name</key>
			<string>support.type.built-ins.interfaces.d</string>
		</dict>
		<key>support-type-built-ins-structs-d</key>
		<dict>
			<key>match</key>
			<string>\b(ABC|ABCFLOAT|ACCEL|ACCESSTIMEOUT|ACCESS_ALLOWED_ACE|ACCESS_DENIED_ACE|ACE_HEADER|ACL|ACL_REVISION_INFORMATION|ACL_SIZE_INFORMATION|ACTION_HEADER|ADAPTER_STATUS|ADDJOB_INFO_1|ANIMATIONINFO|APPBARDATA|Argument|Atomic|Attribute|BITMAP|BITMAPCOREHEADER|BITMAPCOREINFO|BITMAPINFO|BITMAPINFOHEADER|BITMAPV4HEADER|BLOB|BROWSEINFO|BY_HANDLE_FILE_INFORMATION|Bar|Baz|BitArray|Box|BracketResult|ByteSwap|CANDIDATEFORM|CANDIDATELIST|CBTACTIVATESTRUCT|CBT_CREATEWND|CHARFORMAT|CHARRANGE|CHARSET|CHARSETINFO|CHAR_INFO|CIDA|CIEXYZ|CIEXYZTRIPLE|CLIENTCREATESTRUCT|CMINVOKECOMMANDINFO|COLORADJUSTMENT|COLORMAP|COMMCONFIG|COMMPROP|COMMTIMEOUTS|COMPAREITEMSTRUCT|COMPCOLOR|COMPOSITIONFORM|COMSTAT|CONNECTDLGSTRUCT|CONSOLE_CURSOR_INFO|CONTEXT|CONVCONTEXT|CONVINFO|COORD|COPYDATASTRUCT|CPINFO|CPLINFO|CREATESTRUCT|CREATE_PROCESS_DEBUG_INFO|CREATE_THREAD_DEBUG_INFO|CRITICAL_SECTION|CRITICAL_SECTION_DEBUG|CURRENCYFMT|CURSORSHAPE|CWPRETSTRUCT|CWPSTRUCT|CharClass|CharRange|Clock|CodePage|Console|DATATYPES_INFO_1|DCB|DDEACK|DDEADVISE|DDEDATA|DDELN|DDEML_MSG_HOOK_DATA|DDEPOKE|DDEUP|DEBUGHOOKINFO|DEBUG_EVENT|DELETEITEMSTRUCT|DEVMODE|DEVNAMES|DEV_BROADCAST_HDR|DEV_BROADCAST_OEM|DEV_BROADCAST_PORT|DEV_BROADCAST_VOLUME|DIBSECTION|DIR|DISCDLGSTRUCT|DISK_GEOMETRY|DISK_PERFORMANCE|DOCINFO|DOC_INFO_1|DOC_INFO_2|DRAGLISTINFO|DRAWITEMSTRUCT|DRAWTEXTPARAMS|DRIVER_INFO_1|DRIVER_INFO_2|DRIVER_INFO_3|DRIVE_LAYOUT_INFORMATION|Date|DateParse|DateTime|DirEntry|DynArg|EDITSTREAM|EMPTYRECORD|EMR|EMRABORTPATH|EMRANGLEARC|EMRARC|EMRBITBLT|EMRCREATEBRUSHINDIRECT|EMRCREATECOLORSPACE|EMRCREATEDIBPATTERNBRUSHPT|EMRCREATEMONOBRUSH|EMRCREATEPALETTE|EMRCREATEPEN|EMRELLIPSE|EMREOF|EMREXCLUDECLIPRECT|EMREXTCREATEFONTINDIRECTW|EMREXTCREATEPEN|EMREXTFLOODFILL|EMREXTSELECTCLIPRGN|EMREXTTEXTOUTA|EMRFILLPATH|EMRFILLRGN|EMRFORMAT|EMRFRAMERGN|EMRGDICOMMENT|EMRINVERTRGN|EMRLINETO|EMRMASKBLT|EMRMODIFYWORLDTRANSFORM|EMROFFSETCLIPRGN|EMRPLGBLT|EMRPOLYDRAW|EMRPOLYDRAW16|EMRPOLYLINE|EMRPOLYLINE16|EMRPOLYPOLYLINE|EMRPOLYPOLYLINE16|EMRPOLYTEXTOUTA|EMRRESIZEPALETTE|EMRRESTOREDC|EMRROUNDRECT|EMRSCALEVIEWPORTEXTEX|EMRSELECTCLIPPATH|EMRSELECTCOLORSPACE|EMRSELECTOBJECT|EMRSELECTPALETTE|EMRSETARCDIRECTION|EMRSETBKCOLOR|EMRSETCOLORADJUSTMENT|EMRSETDIBITSTODEVICE|EMRSETMAPPERFLAGS|EMRSETMITERLIMIT|EMRSETPALETTEENTRIES|EMRSETPIXELV|EMRSETVIEWPORTEXTEX|EMRSETVIEWPORTORGEX|EMRSETWORLDTRANSFORM|EMRSTRETCHBLT|EMRSTRETCHDIBITS|EMRTEXT|ENCORRECTTEXT|ENDROPFILES|ENHMETAHEADER|ENHMETARECORD|ENOLEOPFAILED|ENPROTECTED|ENSAVECLIPBOARD|ENUMLOGFONT|ENUMLOGFONTEX|ENUM_SERVICE_STATUS|EVENTLOGRECORD|EVENTMSG|EXCEPTION_DEBUG_INFO|EXCEPTION_POINTERS|EXCEPTION_RECORD|EXIT_PROCESS_DEBUG_INFO|EXIT_THREAD_DEBUG_INFO|EXTLOGFONT|EXTLOGPEN|EXT_BUTTON|EmptySlot|EndOfCDRecord|Environment|FILETIME|FILTERKEYS|FINDREPLACE|FINDTEXTEX|FIND_NAME_BUFFER|FIND_NAME_HEADER|FIXED|FLOATING_SAVE_AREA|FMS_GETDRIVEINFO|FMS_GETFILESEL|FMS_LOAD|FMS_TOOLBARLOAD|FOCUS_EVENT_RECORD|FONTSIGNATURE|FORMATRANGE|FORMAT_PARAMETERS|FORM_INFO_1|FileConst|FileHeader|FileRoots|FileSystem|FoldingCaseData|Foo|FtpConnectionDetail|FtpFeature|FtpFileInfo|FtpResponse|GC|GCP_RESULTS|GCStats|GENERIC_MAPPING|GLYPHMETRICS|GLYPHMETRICSFLOAT|GROUP_INFO_2|GUID|HANDLETABLE|HD_HITTESTINFO|HD_ITEM|HD_LAYOUT|HD_NOTIFY|HELPINFO|HELPWININFO|HIGHCONTRAST|HSZPAIR|HeaderElement|HttpConst|HttpHeader|HttpHeaderName|HttpResponses|HttpStatus|HttpToken|ICONINFO|ICONMETRICS|IMAGEINFO|IMAGE_DOS_HEADER|INPUT_RECORD|ITEMIDLIST|IeeeFlags|Interface|JOB_INFO_1|JOB_INFO_2|KERNINGPAIR|LANA_ENUM|LAYERPLANEDESCRIPTOR|LDT_ENTRY|LIST_ENTRY|LOAD_DLL_DEBUG_INFO|LOCALESIGNATURE|LOCALGROUP_INFO_0|LOCALGROUP_MEMBERS_INFO_0|LOCALGROUP_MEMBERS_INFO_3|LOGBRUSH|LOGCOLORSPACE|LOGFONT|LOGFONTA|LOGFONTW|LOGPALETTE|LOGPEN|LUID_AND_ATTRIBUTES|LV_COLUMN|LV_DISPINFO|LV_FINDINFO|LV_HITTESTINFO|LV_ITEM|LV_KEYDOWN|LocalFileHeader|MAT2|MD5_CTX|MDICREATESTRUCT|MEASUREITEMSTRUCT|MEMORYSTATUS|MEMORY_BASIC_INFORMATION|MENUEX_TEMPLATE_HEADER|MENUEX_TEMPLATE_ITEM|MENUITEMINFO|MENUITEMTEMPLATE|MENUITEMTEMPLATEHEADER|MENUTEMPLATE|MENU_EVENT_RECORD|METAFILEPICT|METARECORD|MINIMIZEDMETRICS|MINMAXINFO|MODEMDEVCAPS|MODEMSETTINGS|MONCBSTRUCT|MONCONVSTRUCT|MONERRSTRUCT|MONHSZSTRUCT|MONITOR_INFO_1|MONITOR_INFO_2|MONLINKSTRUCT|MONMSGSTRUCT|MOUSEHOOKSTRUCT|MOUSEKEYS|MOUSE_EVENT_RECORD|MSG|MSGBOXPARAMS|MSGFILTER|MULTIKEYHELP|NAME_BUFFER|NCB|NCCALCSIZE_PARAMS|NDDESHAREINFO|NETCONNECTINFOSTRUCT|NETINFOSTRUCT|NETRESOURCE|NEWCPLINFO|NEWTEXTMETRIC|NEWTEXTMETRICEX|NMHDR|NM_LISTVIEW|NM_TREEVIEW|NM_UPDOWNW|NONCLIENTMETRICS|NS_SERVICE_INFO|NUMBERFMT|OFNOTIFY|OFSTRUCT|OPENFILENAME|OPENFILENAMEA|OPENFILENAMEW|OSVERSIONINFO|OUTLINETEXTMETRIC|OUTPUT_DEBUG_STRING_INFO|OVERLAPPED|OffsetTypeInfo|PAINTSTRUCT|PALETTEENTRY|PANOSE|PARAFORMAT|PARTITION_INFORMATION|PERF_COUNTER_BLOCK|PERF_COUNTER_DEFINITION|PERF_DATA_BLOCK|PERF_INSTANCE_DEFINITION|PERF_OBJECT_TYPE|PIXELFORMATDESCRIPTOR|POINT|POINTFLOAT|POINTFX|POINTL|POINTS|POLYTEXT|PORT_INFO_1|PORT_INFO_2|PREVENT_MEDIA_REMOVAL|PRINTER_DEFAULTS|PRINTER_INFO_1|PRINTER_INFO_2|PRINTER_INFO_3|PRINTER_INFO_4|PRINTER_INFO_5|PRINTER_NOTIFY_INFO|PRINTER_NOTIFY_INFO_DATA|PRINTER_NOTIFY_OPTIONS|PRINTER_NOTIFY_OPTIONS_TYPE|PRINTPROCESSOR_INFO_1|PRIVILEGE_SET|PROCESS_HEAPENTRY|PROCESS_INFORMATION|PROPSHEETHEADER|PROPSHEETHEADER_U1|PROPSHEETHEADER_U2|PROPSHEETHEADER_U3|PROPSHEETPAGE|PROPSHEETPAGE_U1|PROPSHEETPAGE_U2|PROTOCOL_INFO|PROVIDOR_INFO_1|PSHNOTIFY|PUNCTUATION|PassByCopy|PassByRef|Phase1Info|PropertyConfigurator|QUERY_SERVICE_CONFIG|QUERY_SERVICE_LOCK_STATUS|RASAMB|RASCONN|RASCONNSTATUS|RASDIALEXTENSIONS|RASDIALPARAMS|RASENTRYNAME|RASPPPIP|RASPPPIPX|RASPPPNBF|RASTERIZER_STATUS|REASSIGN_BLOCKS|RECT|RECTL|REMOTE_NAME_INFO|REPASTESPECIAL|REQRESIZE|RGBQUAD|RGBTRIPLE|RGNDATA|RGNDATAHEADER|RIP_INFO|Runtime|SCROLLINFO|SECURITY_ATTRIBUTES|SECURITY_DESCRIPTOR|SECURITY_QUALITY_OF_SERVICE|SELCHANGE|SERIALKEYS|SERVICE_ADDRESS|SERVICE_ADDRESSES|SERVICE_INFO|SERVICE_STATUS|SERVICE_TABLE_ENTRY|SERVICE_TYPE_INFO_ABS|SERVICE_TYPE_VALUE_ABS|SESSION_BUFFER|SESSION_HEADER|SET_PARTITION_INFORMATION|SHFILEINFO|SHFILEOPSTRUCT|SHITEMID|SHNAMEMAPPING|SID|SID_AND_ATTRIBUTES|SID_IDENTIFIER_AUTHORITY|SINGLE_LIST_ENTRY|SIZE|SMALL_RECT|SOUNDSENTRY|STARTUPINFO|STICKYKEYS|STRRET|STYLEBUF|STYLESTRUCT|SYSTEMTIME|SYSTEM_AUDIT_ACE|SYSTEM_INFO|SYSTEM_INFO_U|SYSTEM_POWER_STATUS|Signal|SjLj_Function_Context|SpecialCaseData|TAPE_ERASE|TAPE_GET_DRIVE_PARAMETERS|TAPE_GET_MEDIA_PARAMETERS|TAPE_GET_POSITION|TAPE_PREPARE|TAPE_SET_DRIVE_PARAMETERS|TAPE_SET_MEDIA_PARAMETERS|TAPE_SET_POSITION|TAPE_WRITE_MARKS|TBADDBITMAP|TBBUTTON|TBNOTIFY|TBSAVEPARAMS|TCHOOSECOLOR|TCHOOSEFONT|TC_HITTESTINFO|TC_ITEM|TC_ITEMHEADER|TC_KEYDOWN|TEXTMETRIC|TEXTMETRICA|TEXTRANGE|TFINDTEXT|TIME_ZONE_INFORMATION|TOGGLEKEYS|TOKEN_CONTROL|TOKEN_DEFAULT_DACL|TOKEN_GROUPS|TOKEN_OWNER|TOKEN_PRIMARY_GROUP|TOKEN_PRIVILEGES|TOKEN_SOURCE|TOKEN_STATISTICS|TOKEN_USER|TOOLINFO|TOOLTIPTEXT|TPAGESETUPDLG|TPMPARAMS|TRANSMIT_FILE_BUFFERS|TREEITEM|TSMALLPOINT|TTHITTESTINFO|TTPOLYCURVE|TTPOLYGONHEADER|TVARIANT|TV_DISPINFO|TV_HITTESTINFO|TV_INSERTSTRUCT|TV_ITEM|TV_KEYDOWN|TV_SORTCB|Time|TimeOfDay|TimeSpan|Tuple|UDACCEL|ULARGE_INTEGER|UNIVERSAL_NAME_INFO|UNLOAD_DLL_DEBUG_INFO|USEROBJECTFLAGS|USER_INFO_0|USER_INFO_2|USER_INFO_3|UnicodeData|VALENT|VA_LIST|VERIFY_INFORMATION|VS_FIXEDFILEINFO|Variant|VfsFilterInfo|WIN32_FILE_ATTRIBUTE_DATA|WIN32_FIND_DATA|WIN32_FIND_DATAW|WIN32_STREAM_ID|WINDOWINFO|WINDOWPLACEMENT|WINDOWPOS|WINDOW_BUFFER_SIZE_RECORD|WNDCLASS|WNDCLASSA|WNDCLASSEX|WNDCLASSEXA|WSADATA|WallClock|XFORM|ZipEntryInfo)\b</string>
			<key>name</key>
			<string>support.type.built-ins.structs.d</string>
		</dict>
		<key>support-type-d</key>
		<dict>
			<key>match</key>
			<string>\b((?:tango|std)\.[\w\.]+)\b</string>
			<key>name</key>
			<string>support.type.d</string>
		</dict>
	</dict>
	<key>scopeName</key>
	<string>source.d</string>
	<key>uuid</key>
	<string>D7C3A109-0466-4C28-9ECF-10753300FF46</string>
</dict>
</plist>
