The crimson-1.1.3.jar file comes from the Apache XML project
(http://xml.apache.org/crimson/), and is licensed under the Apache Software
License, Version 1.1, which can be found in the LICENSE.crimson-1.1.3.txt
file.
