(cherry picked from commit f6a9dd61)
(cherry picked from commit 8c9a6398)
(cherry picked from commit f31a1384)