(cherry picked from commit 7af4e7dd5146607086230916a761a8baed8e0c09)
(cherry picked from commit b019eccfa9acfcb3c92a22dfc0598d69e7c13e7d)