(cherry picked from commit 4182a6bae035a7a453f9e2b7d128e5c1a91dcf30)
(cherry picked from commit 31c15603cbe33aea19298600b02ba3653f170ef1)