# 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.

aa
aaa
abcompile
adapter
adaptor
adopted
advantages
albeit
aligns
allocations
allowlist
allowlisting
alt
amend
amended
amortized
analyses
andahalf
animal
animated
annoying
anon
aoo
applier
approval
approximation
arbitrarily
asdf
asserter
assure
asterisk
atomic
augmented
auth
authority
autobianchi
automatic
averaged
averages
axis
ba
baba
backed
background
bail
bailing
bailout
bar'baz
bar\'baz
barbar
bash
bat
bazbaz
bbb
bc
bench
benchmarker
benchmarkers
besides
beta
bigger
bitmask
bkonyi
bla
blah
blorp
bold
boo
bots
boundarykey
bowtie
boz
bq
brand
brave
brown
bt
btw
builddir
bulkcompile
busy
busywait
bye
c's
ca
cafebabe
calloc
camel
capitalized
categorization
causal
cb
cc
ccc
cdee
certificate
cf
characteristics
charset
checkme
checkout
chunked
cipd
circular
cloneable
cm
cmd
cmp
cnn
coded
codepath
collisions
columns
commented
commit
commits
companion
comparative
comparer
compiler's
complement
complicated
concurrently
confidence
confident
confirm
consecutive
considering
constr
constrains
consts
contract
conversions
coo
corge
corners
cov
coverages
cp
csi
ct
ctrl
cumulative
cursor
cuts
cx
da
dacoharkes
dadd
daemon
dart$doc$test$tester
dart\$doc\$test\$tester
dartanalyzer
dartdocs
dartdoctest
dartdoctestrun
dartfile
dartfmt
darttest
dash
datatype
datatypes
day
days
db
ddart
dds
debugger
declarative
decrease
decrements
dectcem
defintions
deleting
denylist
depended
depfile
desc
descending
descriptors
deviation
dfast
dfuzz
di
diagnosticable
dictionaries
dictionary
differentiate
dijkstra
dijkstras
dinteractive
dirname
disagree
disagreement
disconnect
discovering
discrepancies
dispatcher
dispose
dist
div
divergent
doctest
doctype
doesnt
dog
donly
doo
downstream
draw
dry
dsemi
dumping
dumps
dupe
durations
dw
e's
ea
ease
ec
echo
edits
ei
einst
elapse
elegantly
ell
emethod
entrypoints
eoo
epoch
equally
erase
err
esc
estat
et
everytime
evicting
exceed
excess
exe
exercised
exercises
exitcode
exiting
expanded
expansive
explainer
extern
f\u
fac
faking
falling
favors
fi
fibonacci
filesystem
filler
filters
fisk
five
fl
floor
fluctuate
foo'bar'baz
foos
forbidden
forces
foreground
forrest
forty
foundation
fox
frequency
frozen
fulfill
func
futu
futures
fuzz
fuzzed
fuzzing
fx
gallery
gamma
gave
gc
gcd
gesture
gi
gm
goo
google
graphic
grault
greeting
gtgt
gulp
gunk
hackish
hardly
hest
heuristics
hi
hints
hits
hkt
home
hoo
hook
hosted
hosting
hot
hotreload
hunk
hurray
i'm
ia
identification
idle
ikg
illustrate
image
images
implemen
implementor
implementors
imprecision
inclosure
inconsistencies
increasing
incrementally
increments
indents
ing
inlinable
inlineable
insights
instrument
insufficient
intdiv
interactive
interchangeable
internet
interpolate
introducer
inv
ioo
ish
it'll
italic
iter
jlcontreras
joo
jumped
kernels
kitty
ko
koo
la
launch
launching
law
le
legs
lengths
lightly
likewise
lily
linebreaks
lints
listening
listing
ln
logd
logs
loo
lookahead
loopback
mac
maker
matters
mds
meaningless
measured
measurement
mf
mfs
micro
minimize
minimizer
minimizing
minitest
minst
mintty
minutes
mis
mismatched
misnamed
miss
misses
misspelled
mistake
mistakes
mmethod
mod
modelled
month
moo
mouse
mstat
mul
mx
mxn
mysdk
naively
naturally
negatable
newworld
ninja
noisy
nominal
nondefault
nonexisting
noo
noted
nottest
null'ed
numerator
ob
obool
observable
offers
oh
okay
ol
onull
oo
oobar
oocf
ooo
oovf
opacity
operate
ops
optimal
oracle
outbound
outliers
overhead
overlay
overly
ox
pack
paging
paint
parallax
parameterized
partfoo
party
pause
paused
pc
periodic
periodically
person
phrase
pink
placement
planned
plug
policy
pooled
population
portions
pp
preliminary
prematurely
press
pretends
printouts
processes
processors
producer
profile
profiler
proportional
protected
proved
proxy
pseudocode
pubspec
pv
px
py
python
quicker
quit
quot
quux
quuz
reality
recompiles
redir
redirections
rediscover
reducer
reenable
referential
refusing
regards
regenerate
regressions
reify
reject
remap
remaps
rendition
reorder
reordering
repaint
repro
reproduce
reproduction
resuming
retaining
retainingpath
rev
revealed
risky
rk
row
rows
runtimes
rv
sanitize
saves
scans
scenarios
scheduler
screen
scripts
scroll
sdkroot
sdks
secondary
secondtest
segment
selection
semifuzz
sensitive
series
services
setups
severe
sheets
shipped
shortest
shot
sidebar
sigint
signalled
sigwinch
slashes
slight
sliver
smoke
snull
somehow
sorter
spans
spell
spellcheck
spelled
spelling
spent
spills
splay
splitting
spurious
sqrt
squared
sssp
stacks
stashed
stat
stats
stay
std
stress
stringy
strip
strongest
stub's
stupid
subcommand
subdir
subfolder
subtool
subtools
successes
summarization
summarized
sup
supermixin
supplement
suspension
t\b\f\u
t\u
ta
tails
templates
theoretically
thereof
thread
ticks
timed
timeout
timer
timings
tinv
tk
told
touch
tpt
transitively
translators
transparent
triangle
triggers
trimming
tripped
tripping
truncated
tt
tta
ttest
ttta
tttta
txt
typeargs
typeparam
typeparambounds
ugly
unassignment
unawaited
unbreak
unconverted
uncover
uncovers
underline
undocumented
unpacked
unpatched
unpaused
unregistered
unsurprisingly
untransformed
untrimmed
unusual
unversioned
upload
upward
uuid
val
verbatim
versioned
vf
vp
vt
vte
waited
waits
walt
warmup
week
weekly
wherever
whiskers
wins
wording
workflow
worlds
wrongly
ws
x's
xlate
xrequired
xxx
xxxxxxxx
xxxxxxxxxxxx
xyz
y's
year
yxxx
yy
zipf's
zyx
zz
