Code written by:
 Alexey Galakhov <agalakhov@gmail.com>
 Vitaliy Tomin <highwaystar.ru@gmail.com>

Based on the reverse-engineering done by:
 Nicolas Boichat <nicolas@boichat.ch>
 Benoit Bolsee <benoit.bolsee@online.be>
