(cherry picked from commit e0bbb0c6) (cherry picked from commit e053ebc2) (cherry picked from commit feaf21fc) (cherry picked from commit bdcdd8b1)