Synced with the source at e611387d4610b5dc5841be5d377456287e515d85.