# ----------------------------------------------------------------------
# Folders created by the various REEF runtimes during testing
# ----------------------------------------------------------------------
REEF_LOCAL_RUNTIME
REEF_MESOS_RUNTIME
#
# ----------------------------------------------------------------------
# Files generated during builds
# ----------------------------------------------------------------------
target
generated
build
StyleCop.Cache
#
# ----------------------------------------------------------------------
# IDE settings
# ----------------------------------------------------------------------
.externalToolBuilders
nbactions*.xml
nb-configuration.xml
.settings
.classpath
.project
*.iml
.idea
atlassian-ide-plugin.xml
*.sln.DotSettings.user
*.VC.opendb
*.VC.db
*.vcxproj.user
#
# ----------------------------------------------------------------------
# OS Files
# ----------------------------------------------------------------------
.DS_Store
#
# ----------------------------------------------------------------------
# Temporary Files
# ----------------------------------------------------------------------
tmp
*~
\#*
#
# ----------------------------------------------------------------------
# Unknown Files. Please clean up over time
# ----------------------------------------------------------------------
ml-data
tang.conf
*.sw[op]
profile-*.json
