(cherry picked from commit 3bac86ab) (cherry picked from commit 47741ff9) (cherry picked from commit 89395b63) (cherry picked from commit 3976f244)