Author: Mai Yaoxiang.