(cherry picked from commit fa8cf4d1b4896a602dc383d5e266768392a9790c) (cherry picked from commit 83a4f92a3f0c0134709bcb0a534e31b7c7056643) (cherry picked from commit e9a338ff644e4ac06f09762b30e90af8027377d7)
(cherry picked from commit fa8cf4d1b4896a602dc383d5e266768392a9790c) (cherry picked from commit 83a4f92a3f0c0134709bcb0a534e31b7c7056643) (cherry picked from commit e9a338ff644e4ac06f09762b30e90af8027377d7)