Synced with the source at 5991fee8b38bc05ac57a891e8656cc3f28da4368.