(cherry picked from commit 4bd7885845b1135e019869c733a42209da5df8e9)
(cherry picked from commit de517af8cce44d34f01fc889c9b03c01ee489351)