(cherry picked from commit 27d96dd506797fe82b3b5bf8d3af8a9eb84d6412)
(cherry picked from commit faa2820694d8aa40df2ed31325deb28f6de63b7a) (cherry picked from commit 911e90973cbac0c25a59bf4b1d60155a2c0b2632)