# Eclipse project files 
**/.classpath
**/.project
**/.cproject
**/.settings/
**/.checkstyle

# IntelliJ project files
**/*.iml
**/*.ipr
**/*.iws

# Additional tools
**/.clover/

# OSX files
**/.DS_Store

# Compiler output, class files
**/*.class
bin/

# Log files
**/*.log

# BlueJ files
**/*.ctxt

# Mobile Tools for Java (J2ME)
**/.mtj.tmp/

# Package Files #
**/*.jar
**/*.war
**/*.ear
**/*.zip
**/*.tar.gz
**/*.rar

# virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml
**/hs_err_pid*

#Test config and output
**/target/
**/test-output/
**/local/
**/reports/
**/.pmd
**/tmp/
**/*.txt
**/streamA.txt
**/*.tsv
**/results/

# Build artifacts
cpp/Default/
**/out/
**/jarsIn/
**/build.xml
**/.idea
**/*.properties
**/*.releaseBackup
**/*.next
**/*.tag

# Jekyll
**/Gemfile
**/Gemfile.lock
**/_site/
**/_*
**/_*/
results/
doc/