(cherry picked from commit 63c40c2ad66e5b32d96cecad0b123db28783ae5c)
(cherry picked from commit 42ea5da20db5528621dc3dd1351627faee3f644c)