Текст, оптимальный по скорости - http://livehh.ru/entry/2317961518