Gitblit
Copyright 2011 gitblit.com

This product includes software developed at
The Apache Software Foundation (http://www.apache.org/).

This is an aggregated NOTICE file for the projects included
in this distribution or linked to by this distribution.

---------------------------------------------------------------------------
Bootstrap
---------------------------------------------------------------------------
   Bootstrap, released under the
   Apache Software License, Version 2.0.

   http://twitter.github.com/bootstrap

---------------------------------------------------------------------------
google-code-prettify
---------------------------------------------------------------------------
   google-code-prettify, released under the
   Apache Software License, Version 2.0.

   http://code.google.com/p/google-code-prettify

---------------------------------------------------------------------------
Commons Daemon
---------------------------------------------------------------------------
   Commons Daemon, released under the
   Apache Software License, Version 2.0.

   http://commons.apache.org/daemon
   
---------------------------------------------------------------------------
JGit
---------------------------------------------------------------------------
   JGit, released under the
   Eclipse Distribution License 1.0.

   http://eclipse.org/jgit
   
---------------------------------------------------------------------------
Apache Wicket
---------------------------------------------------------------------------
   Apache Wicket, released under the
   Apache Software License, Version 2.0.

   http://wicket.apache.org
   
---------------------------------------------------------------------------
Jetty
---------------------------------------------------------------------------
   Jetty, released under the
   Apache Software License, Version 2.0.

   http://eclipse.org/jetty

---------------------------------------------------------------------------
Apache Lucene
---------------------------------------------------------------------------
   Apache Lucene, released under the
   Apache Software License, Version 2.0.

   http://lucene.apache.org

---------------------------------------------------------------------------
Groovy
---------------------------------------------------------------------------
   Groovy, released under the
   Apache Software License, Version 2.0.

   http://groovy.codehaus.org

---------------------------------------------------------------------------
SLF4J
---------------------------------------------------------------------------
   SLF4J, released under the
   MIT/X11 License.

   http://www.slf4j.org
   
---------------------------------------------------------------------------
Log4j
---------------------------------------------------------------------------
   Log4j, released under the
   Apache Software License, Version 2.0.

   http://logging.apache.org/log4j   
 
---------------------------------------------------------------------------
BouncyCastle
---------------------------------------------------------------------------
   BouncyCastle, released under the
   MIT/X11 License.

   http://www.bouncycastle.org
   
---------------------------------------------------------------------------
JSch
---------------------------------------------------------------------------
   JSch - Java Secure Channel, released under the
   BSD License.

   http://www.jcraft.com/jsch

---------------------------------------------------------------------------
Rome
---------------------------------------------------------------------------
   Rome RSS and Atom Java Utilities, released under the
   Apache Software License, Version 1.1.

   http://rome.dev.java.net

---------------------------------------------------------------------------
jdom
---------------------------------------------------------------------------
   jdom xml library, released under the
   Apache-style Software License.

   http://www.jdom.org

---------------------------------------------------------------------------
google-gson
---------------------------------------------------------------------------
   google-gson, released under the
   Apache-style Software License.

   http://code.google.com/p/google-gson

---------------------------------------------------------------------------
javamail
---------------------------------------------------------------------------
   javamail, released under multiple licenses
   CDDL-1.0, BSD, GPL-2.0, GNU-Classpath.

   http://kenai.com/projects/javamail

---------------------------------------------------------------------------
JUnit
---------------------------------------------------------------------------
   JUnit, released under the
   Common Public License.

   http://junit.org

---------------------------------------------------------------------------
Fancybox image viewer
---------------------------------------------------------------------------
   Fancybox image viewer, released under the
   MIT and GPL Licenses.

   http://fancybox.net
   
---------------------------------------------------------------------------
FatCow Icons
---------------------------------------------------------------------------
   FatCow Icons, released under the
   Creative Commons CC-BY License.

   http://www.fatcow.com/free-icons

---------------------------------------------------------------------------
Git logo
---------------------------------------------------------------------------
   Git logo, released under the
   Creative Commons CC-BY License.

   http://henrik.nyh.se/2007/06/alternative-git-logo-and-favicon

---------------------------------------------------------------------------
Git logo
---------------------------------------------------------------------------
   Git logo, released under the
   Creative Commons Attribution 3.0 Unported License.

   http://git-scm.com/downloads/logos
   
---------------------------------------------------------------------------
magnifying glass search icon
---------------------------------------------------------------------------
   magnifying glass search icon, released under the
   Creative Commons CC-BY License.

   http://gnome.org

---------------------------------------------------------------------------
GLYHPICONS
---------------------------------------------------------------------------
   GLPYHICONS, released under the
   Creative Commons CC-BY License.

   http://glyphicons.com
      
---------------------------------------------------------------------------
UnboundID
---------------------------------------------------------------------------
   UnboundID, released under the
   GNU LESSER GENERAL PUBLIC LICENSE.

   http://www.unboundid.com

---------------------------------------------------------------------------
JCalendar
---------------------------------------------------------------------------
   JCalendar, released under the
   GNU LESSER GENERAL PUBLIC LICENSE.

   http://www.toedter.com/en/jcalendar
   
---------------------------------------------------------------------------
Commons-Compress
---------------------------------------------------------------------------
   Commons-Compress, released under the
   Apache Software License, Version 2.0.

   http://commons.apache.org/compress

---------------------------------------------------------------------------
XZ for Java
---------------------------------------------------------------------------
   XZ for Java, released under the
   Public Domain

   http://tukaani.org/xz/java.html

---------------------------------------------------------------------------
Iconic
---------------------------------------------------------------------------
   Iconic, release under the
   Creative Commons Share Alike 3.0 License.
   
   http://somerandomdude.com/work/iconic
   
---------------------------------------------------------------------------
AngularJS
---------------------------------------------------------------------------
   AngularJS, release under the
   MIT License.
   
   http://angularjs.org/   
   
---------------------------------------------------------------------------
FreeMarker
---------------------------------------------------------------------------
   FreeMarker, release under a
   modified BSD License. (http://www.freemarker.org/docs/app_license.html)
   
   http://www.freemarker.org/

---------------------------------------------------------------------------
Waffle
---------------------------------------------------------------------------
   Waffle, release under the
   Eclipse Public License, version 1.0
   
   http://dblock.github.io/waffle

---------------------------------------------------------------------------
JNA
---------------------------------------------------------------------------
   JNA, release under the
   Lesser GNU Public License, version 2.1
   
   https://github.com/twall/jna
   
---------------------------------------------------------------------------
Guava
---------------------------------------------------------------------------
   Guava, release under the
   Apache License 2.0.
   
   https://code.google.com/p/guava-libraries

---------------------------------------------------------------------------
libpam4j
---------------------------------------------------------------------------
   libpam4j, release under the
   MIT license.
   
   https://github.com/kohsuke/libpam4j

---------------------------------------------------------------------------
commons-codec
---------------------------------------------------------------------------
   commons-codec, release under the
   Apache License 2.0.
   
   http://commons.apache.org/proper/commons-codec

---------------------------------------------------------------------------
pegdown
---------------------------------------------------------------------------
   pegdown, release under the
   Apache License 2.0.
   
   https://github.com/sirthias/pegdown

---------------------------------------------------------------------------
font-awesome
---------------------------------------------------------------------------
   font-awesome, release under the
   SIL OFL 1.1.
   
   https://github.com/FortAwesome/Font-Awesome

---------------------------------------------------------------------------
AUI (excerpts)
---------------------------------------------------------------------------
   AUI, release under the
   Apache License 2.0
   
   https://bitbucket.org/atlassian/aui

---------------------------------------------------------------------------
Jedis
---------------------------------------------------------------------------
   Jedis, release under the
   MIT license
   
   https://github.com/xetorthio/jedis

---------------------------------------------------------------------------
args4j
---------------------------------------------------------------------------
   args4j, release under the
   Apache License 2.0
   
   http://args4j.kohsuke.org

---------------------------------------------------------------------------
jQuery
---------------------------------------------------------------------------
   jQuery, release under the
   MIT License
   
   https://jquery.org

---------------------------------------------------------------------------
flotr2
---------------------------------------------------------------------------
   flotr2, release under the
   BSD License
   
   http://humblesoftware.com/flotr2
   