(cherry picked from commit 309a543f) (cherry picked from commit 0e7aa51a) (cherry picked from commit b1b04c73)