(cherry picked from commit 2e6f92f6) (cherry picked from commit 53e87f7a) (cherry picked from commit 398ae5bb) (cherry picked from commit 845b96d4)