Author: Pokrovskii Boris.