(cherry picked from commit 2eee65e1) (cherry picked from commit 3f7b718f) (cherry picked from commit 77cc78eb)