(cherry picked from commit 16a876d0) (cherry picked from commit 642cbe1c) (cherry picked from commit 2d9e6004)