Synced with the source at 88e10da2f6493bbaae2f5e26bf25170618bc9fd6.