kirillrakhman
inline fun <T, R : Any> Iterable<T>.firstNotNull(selector: (T) -> R?): R? { forEach { selector(it)?.let { return it } } return null }