# ----------------------------------------------------------------------
# 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
#
# ----------------------------------------------------------------------
# OS Files
# ----------------------------------------------------------------------
.DS_Store
#
# ----------------------------------------------------------------------
# Temporary Files
# ----------------------------------------------------------------------
tmp
*~
\#*
#
# ----------------------------------------------------------------------
# Unknown Files. Please clean up over time
# ----------------------------------------------------------------------
ml-data
tang.conf
*.sw[op]
profile-*.json
