bottom self adaptation