(cherry picked from commit 3802fee661b59cb43f07b3b44a8f8e94a500d111)
(cherry picked from commit 2a58b04a9835b741c61a11b849ea36fb2f4210fc)