(cherry picked from commit 878c832f)
(cherry picked from commit 44db01c1)
(cherry picked from commit f4f6a8f8)