Permission to use, copy, modify, and distribute this software is freely granted, provided that this notice is preserved.