# 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
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
blah
blindly
blocked
blorp
boo
bootstrap
bots
bowtie
boz
bq
brand
brave
brown
builddir
bulk2
bulkcompile
c's
cafebabe
callable
camel
capitalized
casing
causal
cc
ccc
charcode
charset
checkout
cipd
circular
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
cov
crashes
cumulative
dacoharkes
dadd
daemon
dartanalyzer
dartfile
dartfmt
dash
dashes
day
db
debugger
decrease
decrements
def
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
doctype
doesnt
dog
doo
downstream
dumping
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
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
gallery
gamma
gave
gc
gen
generators
git
goo
google
greeting
gtgt
gulp
gunk
hackish
harness
helper2
hest
heuristics
hi
hints
home
hoo
hosting
hot
hotreload
hunk
hurray
i'm
ia
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
lengths
lightly
likewise
lily
linebreaks
lints
linux
listening
ll
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
modelled
month
moo
mx
mysdk
naturally
negatable
newest
newworld
nil
ninja
nondefault
nonexisting
noo
numerator
observable
observatory
oh
okay
ooo
operate
ops
optimal
oracle
outbound
overlay
party
pause
paused
pc
periodic
periodically
person
phrase
pink
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
quot
r"
r"\s
r"k
r"tools
rd
reachability
reality
recompile
recompiles
redir
redirections
reducer
referring
reflectee
reflective
regenerate
regressions
reify
reload
remap
remaps
repeating
repro
resource
respected
response
retaining
retainingpath
retains
rev
risky
runtimes
say
scans
scheduler
screen
scripts
sdkroot
sdks
secondary
segment
sensitive
services
severe
sheets
shipped
shortest
shot
signalled
slight
smoke
somehow
spans
spell
spellcheck
spelled
spelling
spent
splay
splitting
spurious
sqrt
squared
sssp
stacks
stashed
stat
stats
std
stdio
strip
strongest
stub's
stupid
subcommand
subdir
subtool
subtools
subtyping1a
subtyping1b
subtyping2a
subtyping2b
suite
summarization
summarized
superinterface
supermixin
supplement
suspension
t\b\f\u
t\u0008\f\u
tails
talk
templates
thereof
thing
threw
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
unpacked
unregistered
untransformed
untrimmed
unusual
upload
uppercase
upward
uses8
usual
val
vars
verbatim
versioning
waiting
walt
warmup
wherever
wins
workflow
worlds
wrongly
ws
x's
xlate
xrequired
xxx
y's
year
