Apache Kalumet
Copyright 2013 The Apache Software Foundation

This product includes software developed at
The Apache Software Foundation (http://www.apache.org/).
Licensed under the Apache License 2.0.

This product includes software developed at
SLF4J (http://www.slf4j.org/).
Licensed under the MIT License.

This product includes software developed at
NextApp (http://www.nextapp.com).
Licensed under the Mozilla Public License.
