разработано совместно с товарищем Sfinks_m отсюда