(cherry picked from commit 575c6440) (cherry picked from commit 6009ab93) (cherry picked from commit 834ccbe0) (cherry picked from commit 5376a0ec)