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