# ignore .gitignore in sub module projects
datasketches-memory*/.gitignore

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

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

# Additional tools
.clover/

#OSX files
.DS_Store

# Compiler output, class files
*.class
bin

# Log file
*.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
test-output/
local/
reports/
.pmd
tmp

# Build artifacts
target/
out/
build/
jarsIn/
*.jar
build.xml
*.properties
*.releaseBackup
*.next
*.asc

# Jekyll
_site/
_*
_*/
