Copyright (c) by William D. Rich. All rights reserved.