Copyright (c) 2009 PPMT. All rights reseverd.