(cherry picked from commit 56db6bf307325225b71a5537d72266a28b4f28f2)
(cherry picked from commit d71097ac313e267f426d1e81d14f0ffc55304b84)