(cherry picked from commit 852986d02f546b8153fe53631c358c53e9cb104a)
(cherry picked from commit 4f8c69bd031fc06dc34a46a5248d4dfc4ef6ae27)