The BigDecimal project is licensed under the
Apache License, Version 2.0 <LICENSE-APACHE>
or the MIT license <LICENSE-MIT> at your option.

All files in the project carrying such notice may
not be copied, modified, or distributed, except
according to these terms.
