(cherry picked from commit 16b62ed183e32f10ce9b1002f4097144317650f1)
(cherry picked from commit ee2dca9b34a907c8356ceccf0b23efba2893a01c)