(cherry picked from commit 99a7517b99ee167320c487bfc4eeb6eb718b605d)
(cherry picked from commit a65b1d108e7d3e7982bbff13465478f8e501fc9c)