从beiyuu直接复制代码过来，删掉没参考价值的。