(cherry picked from commit ce4bb4e7) (cherry picked from commit 1586ee02) (cherry picked from commit 58c923b7)