(cherry picked from commit 2296d56)
(cherry picked from commit 6b58cef)
(cherry picked from commit 8c7df49)