(cherry picked from commit 68b621471197105b2a846a2827afdaa23ec03edc)
(cherry picked from commit 219a478e72122194be581a8d50f4dafffb4b5e37)