(cherry picked from commit 63c40c2ad66e5b32d96cecad0b123db28783ae5c)
(cherry picked from commit 3ba699f6182aeda64cbfe64dd603d0b1fcc6d8e4)