(cherry picked from commit 823ac1645025b68cf9a2fcab02c597619efc06bb)
(cherry picked from commit ab3980e73a318c4cdc66001de97073daa8c2aec0)