(cherry picked from commit e890ff6ea2ddc541f4181337c0805a7cdea1174d)
(cherry picked from commit ad3759624703c4434634bea8b6357a56b893e6a0)