Author: Nguyen Ba Tanh.