http://www.cnblogs.com/xd502djj/archive/2011/03/01/1968041.html
http://www.cnblogs.com/zhuiluoyu/p/6154898.html