Permission to use, copy, modify, and distribute this software and its documentation for any purpose and without fee is hereby granted. This software is provided "as is" without express or implied warranty.