Department of Computer Science, Brigham Young University, Provo, UT 84602, USA.|Department of Computer Science, Brigham Young University, Provo, UT 84602, USA.|Department of Computer Science, Brigham Young University, Provo, UT 84602, USA.|Department of Computer Science, Brigham Young University, Provo, UT 84602, USA.|Department of Computer Science, Brigham Young University, Provo, UT 84602, USA.|Department of Computer Science, Brigham Young University, Provo, UT 84602, USA.