# Compiled python files.
*.pyc
# Files open in vi.
*.swp
# Compiled cfg files.
*.cfgc
# gclient files
.gclient*
# recipe DEPS
infra/bots/.recipe_deps
# common code
**/res/common
# TAGS
*TAGS
*tags
# Files used by bugdroid.
.bugdroid_password
services/bugdroid/bugdroid_log.txt
# Data files used by webpages_playback.py
# Eclipse project files
.project
.pydevproject
**/client_secret.json
**/client_secret_swarming.json
**/client_secret_skia-buildbots.json
**/client_secret_skia-swarming-bots.json
**/service-account.json
**/google_storage_token.data
**/gcloud_token.data
**/gcloud_token_skia-buildbots.data
**/gcloud_token_skia-swarming-bots.data
git_cookie_authdaemon/third_party
google_oauth_token.data
oauth-token.cache
# Bower and Node related directories
node_modules
bower_components
package-lock.json
# Sublime project files
*.sublime-project
*.sublime-workspace
# Generated Go files.
go/depot_tools/gen_version.go
go/skiaversion/gen_version.go
# Generated for Go package.
pdfium/build
# Generated by the 'absent' tool
prometheus/sys/absent.rules
# Server executables/config
**/res/vul/
**/res/js/core-debug.js
**/res/js/core.js
fuzzer/res/css/fuzzer.css
fuzzer/third_party
perf/bqtoken.data
perf/res/css/perf.css
perf/res/common
perf/third_party
perf/timestamp.json
perf/local.toml
perf/client_secrets.json
perf/go/ingester/testdata/local-ingest-test/
push/third_party
push/res/common
sksysmon/third_party
sksysmon/res/common
doc/res/common
doc/res/css/docs.css
doc/third_party
alertserver/third_party
status/third_party
android_ingest/third_party
android_compile/third_party
res/imp/res
res/imp/9/res
res/imp/9/res/js
res/imp/9/bower_components
# Ignore all SQLite databases, because tests will create their own unique ones.
*.db
# Logfiles from launched buildslaves.
launch_slaves.log*
tracedb/local_perf.toml
fiddle/fiddle_secwrap
fiddle/res/css
prometheus/tmp
# Jupyter
.ipynb_checkpoints
# Prober
prober/allprobers.json5
proberk/allprobersk.json
# Push
push/allskiapush.json5
# AP
dist
# jsdoc
common/out
push/out
ap/out
jsdoc/out
# lottiecap
lottiecap/filmstrip.png
# promk
promk/tmp
promk/tmpconf
promk/prometheus/absent_*.yml
# kube
**/chat_config.txt
.vscode
tracedb/build
skolo/build
# Symlinks.
autoroll/res/res

status/res/imp/task_driver_sk-bundle.css
status/res/imp/task_driver_sk-bundle.js
gold-client/build
