(C)opyright 2014-2016 Grigori Fursin, Anton Lokhmotov and contributors