Contributed by Ahmed Hussein. (cherry picked from commit d10f77e3c91225f86ed9c0f0e6a9adf2e1434674) (cherry picked from commit 1bb9667137bc80e63dea3e53bb2746be011a2a9a)
Contributed by Ahmed Hussein. (cherry picked from commit d10f77e3c91225f86ed9c0f0e6a9adf2e1434674) (cherry picked from commit 1bb9667137bc80e63dea3e53bb2746be011a2a9a)