/* Author: Shi Chuan */