# Copyright (c) 2019, the Dart project authors.  Please see the AUTHORS file
# for details. All rights reserved. Use of this source code is governed by a
# BSD-style license that can be found in the LICENSE file.

# Blank lines and comments are ignored.
# Comments can also be inline like 'correct # this is ok'.
# Note that at least one space before the hash is required.

# Comments on a line by itself will be considered a header of the file and
# automatic tools might move it to the top of the file.

a0x
a1x
a2x
aa
aaa
abc
abcompile
actions
adopted
affected
albeit
allocations
allowlist
allowlisting
alt
amortized
analyses
animal
anon
aoo
approval
approximation
arbitrarily
asdf
asserter
assure
auth
authority
auto
autobianchi
automatic
b0x
b1x
b2x
ba
baba
backed
bail
bailout
bash
bat
bbb
bc
bench
benchmark
besides
beta
bigger
bkonyi
blah
blindly
blocked
blorp
boo
bootstrap
bots
boundarykey
bowtie
boz
bq
brand
brave
brown
builddir
bulk2
bulkcompile
c's
c59cdee365b94ce066344840f9e3412d642019b
ca
cafebabe
callable
camel
capitalized
casing
causal
cb
cc
ccc
charcode
charset
checkme
checkout
cipd
circular
class1a
class1b
class2c
class2d
class2e
class2f
class3d
class5a
class5b
class5c
class5d
cli
cloneable
cmp
cnn
coded
codepath
collisions
commented
commit
companion
comparator
comparer
comparisons
compilations
compiler's
complement
completers
confidence
confident
confirm
consecutive
considering
consolidated
constrains
consts
contract
conversion
conversions
coo
costly
cov
cp
crashes
cumulative
cx
dacoharkes
dadd
daemon
dartanalyzer
dartfile
dartfmt
dash
dashes
day
db
ddart
dds
debugger
decrease
decrements
def
defintions
deleting
denylist
depended
depfile
desc
descriptors
detector
deviation
dfast
di
dictionaries
dictionary
differences
differs
dijkstra
dijkstras
dillfile
dills
dinteractive
dirname
disagree
disagreement
disallowed
disconnect
discovering
dispatcher
dispose
dist
divergent
doctype
doesnt
dog
doo
downstream
dumping
dumps
dupe
durations
dw
dyn
e's
e2e
ease
ec
edits
elapse
ell
entrypoint
entrypoints
eoo
epoch
err
everytime
evicting
exceed
excess
exe
execute
exercised
exercises
exitcode
exiting
exits
expanded
expands
expansion
expansive
explain
extern
fac
faking
falling
favors
fetched
fi
fibonacci
filesystem
filler
finder
fisk
five
flagged
floor
fluctuate
foo"bar"baz
foo'bar'baz
foo1
foo10
foo12
foo13
foo14
foo15
foo2
foo4
foo5
foo6
foo7
foo8
foo9
foo\"bar'baz
foo\"bar\"baz
foo\"bar\'baz
foos
forbidden
forces
foreign
forrest
foundation
fox
fulfill
func
futures
fx
gallery
gamma
gave
gc
gen
generators
git
goo
google
greeting
gtgt
gulp
gunk
hackish
harness
helper2
hest
heuristics
hi
hints
home
hoo
hosted
hosting
hot
hotreload
hunk
hurray
i'm
ia
idle
ikg
illustrate
image
images
implementor
inclosure
increased
incrementally
increments
infinity
inspect
insufficient
intact
interactive
internet
interpolate
inv
invalidating
invocation1a
invocation1b
invocation2a
invocation2b
invocation3a
invocation3b
invocation4a
invocation4b
invocation5a
invocation5b
invocation6a
invocation6b
invocation7a
invocation7b
invocation7c
invocation7d
invocation7e
ioo
isolate
isolates
issue41210b
issue41436c
issue41496b
issue41498b
issue41499b
it'll
iter
joo
jumped
kernels
kill
ko
koo
la
launching
lc
ld
le
legs
lengths
lightly
likewise
lily
linebreaks
lints
linux
listening
ll
ln
local1a
local1b
local1c
local1d
local1e
local1f
local1g
local1h
local1i
local2a
local2b
local2c
local2d
local2e
local2f
local2g
local2h
local3a
local3b
local3c
local3d
local3e
local3f
local3g
local3h
logd
logs
loo
loopback
mac
maker
matters
mc
mds
measured
met
metric
metrics
mf
micro
minimize
minutes
mismatched
misnamed
miss
misspelled
mistake
mistakes
mod
modelled
month
moo
mul
mx
mysdk
naturally
negatable
newest
newworld
nil
ninja
nondefault
nonexisting
noo
numerator
observable
observatory
oh
okay
ooo
operate
ops
optimal
oracle
outbound
overlay
pack
paging
party
pause
paused
pc
periodic
periodically
person
phrase
pink
placement
places
plug
pointed
policy
pooled
population
portions
pp
preliminary
prematurely
pretends
producer
profile
profiler
promotes
propagated
protected
proved
provider
pseudocode
pubspec
pv
px
py
python
quicker
quot
quux
qux
r"
r"\s
r"k
r"tools
rd
reachability
reality
recompile
recompiles
redir
redirections
reducer
referring
reflectee
reflective
regenerate
regressions
reify
released
reload
remap
remaps
repeating
repro
resource
respected
response
result1
result2
retaining
retainingpath
retains
rev
risky
runtimes
say
scans
scheduler
screen
scripts
sdkroot
sdks
secondary
segment
selection
sensitive
services
setups
severe
sheets
shipped
shortest
shot
signalled
slight
smoke
somehow
spans
spawn
spell
spellcheck
spelled
spelling
spent
splay
splitting
spurious
sqrt
squared
sssp
stacks
stashed
stat
stats
stay
std
stdio
strip
strongest
stub's
stupid
subcommand
subdir
subfolder
subtool
subtools
subtyping1a
subtyping1b
subtyping2a
subtyping2b
suite
summarization
summarized
superinterface
supermixin
supplement
suspension
symbolic
t\b\f\u
t\u0008\f\u
tails
talk
templates
test3a
test3b
thereof
thing
threw
timed
timeout
timer
timing
timings
tinv
title
tpt
transitively
translators
triangle
trigger
triggers
trimming
tripped
tripping
trivially
truncated
tt
ttest
txt
typeargs
typeparam
typeparambounds
ugly
unassignment
unawaited
unbreak
unconverted
unpacked
unpaused
unregistered
untransformed
untrimmed
unusual
unversioned
upload
uppercase
upward
uses8
usual
uuid
v1
v2
val
vars
verbatim
versioned
versioning
vp
waited
waiting
waits
walt
warmup
week
wherever
whiskers
wins
workflow
worlds
wrongly
ws
x's
xlate
xrequired
xxx
xxxxxxxx
xxxxxxxxxxxx
y's
year
yxxx
