This example was contributed by Charles Duffy. It has been separated from the parent page because the code has several issues that make it dubious.