Неправильный ответ.
Правильный ответ:
1. http://old.reactor.cc/post/3133098
2. http://old.reactor.cc/post/3133058
3. http://old.reactor.cc/post/3133055